package de.ovgu.cide.configuration; import java.util.HashMap; import java.util.HashSet; import java.util.Set; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import de.ovgu.cide.features.IFeature; import de.ovgu.cide.features.IFeatureModel; import de.ovgu.cide.utils.ColorHelper; public class NonValidatingConfigurationListPage extends AbstractConfigurationPage { public NonValidatingConfigurationListPage(String pageName, IFeatureModel featureModel) { super(pageName, featureModel); setPageComplete(true); } protected Table table; protected final HashMap<IFeature, TableItem> featureItems = new HashMap<IFeature, TableItem>(); @Override protected Control createMainControl(Composite composite) { table = new Table(composite, SWT.CHECK | SWT.BORDER); for (IFeature feature : ColorHelper.sortFeatures(featureModel .getFeatures())) { TableItem item = new TableItem(table, SWT.NONE); item.setText("Feature: " + feature.getName()); item.setData(feature); item.setChecked(initialSelection != null && initialSelection.contains(feature)); featureItems.put(feature, item); } return table; } @Override public Set<IFeature> getSelectedFeatures() { Set<IFeature> result = new HashSet<IFeature>(); for (TableItem item : table.getItems()) { if (item.getChecked() && !item.getGrayed()) result.add((IFeature) item.getData()); } return result; } @Override public Set<IFeature> getNotSelectedFeatures() { Set<IFeature> result = new HashSet<IFeature>(); for (TableItem item : table.getItems()) { if (!item.getChecked() && !item.getGrayed()) result.add((IFeature) item.getData()); } return result; } @Override public String getTitle() { return "Select Features for Configuration"; } }