\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
\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
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