import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
* @created Aug 6, 2010
* @version 1.0
*/
-public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage implements ISelectionChangedListener{
+public class SelectFeatureTreeWizardPage extends AbstractPublishWizardPage
+ implements ISelectionChangedListener, IHasPersistableSettings{
+ private static final String DIALOG_SETTING_FEATURE_TREE_UUID = "dialogSettingFeatureTreeUuid";
private ListViewer viewer;
- private IStructuredSelection selection;
/**
* <p>Constructor for SelectFeatureTreeWizardPage.</p>
}
});
}
-
+
// when using a local factory we can set the input right here
if(getConfigurator() != null && getConfigurator().isLocal()){
refresh();
}
+ loadSettings();
+
setControl(composite);
}
+ @Override
+ public void loadSettings() {
+ String featureTreeUuidString = getDialogSettingValue(DIALOG_SETTING_FEATURE_TREE_UUID);
+
+ if(featureTreeUuidString != null){
+ setSelectedFeatureTree(featureTreeUuidString);
+
+ }
+ }
+
/** {@inheritDoc} */
@Override
public void selectionChanged(SelectionChangedEvent event) {
- selection = (IStructuredSelection) event.getSelection();
+ IStructuredSelection selection = (IStructuredSelection) event.getSelection();
setPageComplete(selection.size() == 1);
- if(selection.size() == 1){
- Element featureTreeElement = (Element) selection.getFirstElement();
+ Element featureTreeElement = (Element) selection.getFirstElement();
- UUID featureTreeUuid = XMLHelper.getUuid(featureTreeElement);
-
- getConfigurator().setFeatureTree(featureTreeUuid);
- setErrorMessage(null);
- }else if(selection.size() > 1){
- setErrorMessage("Please select only one feature tree.");
+ UUID featureTreeUuid = XMLHelper.getUuid(featureTreeElement);
+
+ setFeatureTree(featureTreeUuid.toString());
+ }
+
+ private void setSelectedFeatureTree(String featureTreeUuid){
+ List<Element> input = (ArrayList<Element>) viewer.getInput();
+
+ for(Element element : input){
+ UUID uuid = XMLHelper.getUuid(element);
+ if(uuid.toString().equals(featureTreeUuid)){
+ viewer.setSelection(new StructuredSelection(element));
+ break;
+ }
}
}
+ public void setFeatureTree(String featureTreeUuidString){
+ putDialogSettingValue(DIALOG_SETTING_FEATURE_TREE_UUID, featureTreeUuidString);
+ UUID featureTreeUuid = UUID.fromString(featureTreeUuidString);
+ getConfigurator().setFeatureTree(featureTreeUuid);
+ setPageComplete(featureTreeUuid != null);
+ }
+
/** {@inheritDoc} */
@Override
public boolean canFlipToNextPage() {
- return (isPageComplete() && selection.size() == 1);
+ return isPageComplete();
}
/**