[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [stp-dev] [xef] patch for opening add assertion dialog from outside
|
Hello David,
This patch allows to open Add Assertion dialog from outside.
Setting "ADD_ELEMENT_ON_OPEN" can be removed.
Fix: patch added.
--
Regards, Alexey
Index: C:/STP/org.eclipse.stp.xef/src/org/eclipse/stp/ui/xef/editor/XefEditor.java
===================================================================
--- C:/STP/org.eclipse.stp.xef/src/org/eclipse/stp/ui/xef/editor/XefEditor.java (revision 2010)
+++ C:/STP/org.eclipse.stp.xef/src/org/eclipse/stp/ui/xef/editor/XefEditor.java (working copy)
@@ -14,8 +14,8 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.stp.policy.common.editors.IPolicyDetailEditorInput;
import org.eclipse.stp.ui.xef.policy.editor.PolicyDetailEditorInputWrapper;
import org.eclipse.ui.IEditorInput;
@@ -25,8 +25,17 @@
public class XefEditor extends FormEditor {
XefEditPage policyEditPage;
- XMLEditPage xmlEditPage;
-
+ XMLEditPage xmlEditPage;
+
+ public final static String OPEN_ADD_DIALOG = "OPEN_ADD_DIALOG";
+ IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener(){
+ public void propertyChange(PropertyChangeEvent event) {
+ if(OPEN_ADD_DIALOG.equals(event.getProperty())) {
+ policyEditPage.block.addButtonListener.widgetSelected(null);
+ }
+ }
+ };
+
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
super.init(site, getXMLProviderEditorInput(input));
@@ -34,17 +43,7 @@
XMLProviderEditorInput ei = ((XMLProviderEditorInput) getEditorInput());
setPartName(ei.getSetting(Setting.TITLE));
- if (Boolean.valueOf(ei.getSetting(Setting.ADD_ELEMENT_ON_OPEN))) {
- addPageChangedListener(new IPageChangedListener() {
- boolean dialogOpened = false;
- public void pageChanged(PageChangedEvent event) {
- if (!dialogOpened) {
- dialogOpened = true;
- policyEditPage.block.addButtonListener.widgetSelected(null);
- }
- }
- });
- }
+ addPartPropertyListener(propertyChangeListener);
}
@@ -136,4 +135,9 @@
return false;
}
+ @Override
+ public void dispose() {
+ removePartPropertyListener(propertyChangeListener);
+ super.dispose();
+ }
}