Features columns in preferences looked like this:
authorp.ciardelli <p.ciardelli@localhost>
Thu, 2 Apr 2009 14:15:23 +0000 (14:15 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Thu, 2 Apr 2009 14:15:23 +0000 (14:15 +0000)
   a   b   c
   d   e   f
   g   h

Now look like this:

   a   d   g
   b   e   h
   c   f

eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/preference/FeaturePreferences.java

index 82993a8f79b2c7b3b772e2aa431fdb00678ccd0f..1320fa9812db443485cb4d1c7a8876918c1bf981 100644 (file)
@@ -40,6 +40,8 @@ public class FeaturePreferences extends PreferencePage implements
        \r
        private Map<Feature, Button> featureButtons;\r
 \r
+       private Composite container;\r
+\r
        public FeaturePreferences() {\r
                super();\r
                setDescription("Choose which features you would like to use for descriptive elements.");\r
@@ -55,7 +57,7 @@ public class FeaturePreferences extends PreferencePage implements
 \r
                featureButtons = new HashMap<Feature, Button>();\r
                \r
-               Composite container = new Composite(parent, SWT.NULL);\r
+               container = new Composite(parent, SWT.NULL);\r
                final GridLayout gridLayout = new GridLayout();\r
                gridLayout.numColumns = 3;\r
                container.setLayout(gridLayout);\r
@@ -63,21 +65,47 @@ public class FeaturePreferences extends PreferencePage implements
                List<Feature> features = \r
                                CdmSessionDataRepository.getDefault().getFeatures();\r
                \r
-               for (Feature feature : features) {\r
-                                               \r
-                       Button button = new Button(container, SWT.CHECK);\r
-                       button.setText(feature.getLabel());\r
-                       featureButtons.put(feature, button);\r
+               // Purpose of this code block: \r
+               //      fill first column, then second, then third\r
+               Object[] array = features.toArray();\r
+               int count = features.size();\r
+               int colheight = count / 3;\r
+               if (count % 3 > 0) {\r
+                       colheight++;\r
+               }\r
+               \r
+               for (int i = 0; i < colheight; i++) {\r
+                       \r
+                       createButton((Feature) array[i]);\r
                        \r
-                       if (PreferencesController.getFeaturePreference(feature)) {\r
-                               button.setSelection(true);\r
+                       if (i + colheight < count) {\r
+                               createButton((Feature) array[i + colheight]);\r
                        }\r
+\r
+                       if (i + (colheight * 2) < count) {\r
+                               createButton((Feature) array[i + (colheight * 2)]);\r
+                       }\r
+                       \r
                }\r
                \r
                return container;\r
        }\r
 \r
 \r
+       /**\r
+        * @param object\r
+        */\r
+       private void createButton(Feature feature) {\r
+               Button button = new Button(container, SWT.CHECK);\r
+               button.setText(feature.getLabel());\r
+               featureButtons.put(feature, button);\r
+               \r
+               if (PreferencesController.getFeaturePreference(feature)) {\r
+                       button.setSelection(true);\r
+               }\r
+       }\r
+\r
+\r
        /* (non-Javadoc)\r
         * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)\r
         */\r