@Override protected void okPressed() { if (mDialog.canUpdateINIFile()) { mDialog.updateINIFile(); if (mSection == null) { mSection = mCurrentWidget.getSection(); } super.okPressed(); } else { super.cancelPressed(); } }
public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(InstallOptionsModel.PROPERTY_INDEX)) { mDialog.moveChild(mCurrentWidget, ((Integer) evt.getNewValue()).intValue()); } else if (evt.getPropertyName().equals(InstallOptionsModel.PROPERTY_CHILDREN)) { if (Common.objectsAreEqual(mCurrentWidget, evt.getOldValue()) && evt.getNewValue() instanceof InstallOptionsWidget) { InstallOptionsWidget widget = (InstallOptionsWidget) evt.getNewValue(); mCurrentWidget.removeModelCommandListener(InstallOptionsWidgetEditorDialog.this); mCurrentWidget.removePropertyChangeListener(InstallOptionsWidgetEditorDialog.this); mCurrentWidget = widget; mSection = mCurrentWidget.getSection(); mCurrentWidget.addModelCommandListener(InstallOptionsWidgetEditorDialog.this); mCurrentWidget.addPropertyChangeListener(InstallOptionsWidgetEditorDialog.this); Display.getDefault() .asyncExec( new Runnable() { public void run() { mPage.selectionChanged(null, new StructuredSelection(mCurrentWidget)); } }); } } }