Skip to main content

[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

Hi Alexey,

The patch looks good. However, I'm missing the unit test for it.
Also, did you make sure all the existing unit tests in org.eclipse.stp.xef.test are passing? You can find a little howto on running the tests here: http://wiki.eclipse.org/STP/Policy_editor_documentation#Running_the_XEF_unit_tests

Cheers,

David

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


----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
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();
+    }
 }


Back to the top