Author: DartPeng
Date: 2009-11-28 14:23:31 -0500 (Sat, 28 Nov 2009)
New Revision: 18906
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java
Log:
JBIDE-5296
done
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java 2009-11-28
18:57:19 UTC (rev 18905)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/editors/SmooksProcessGraphicalEditor.java 2009-11-28
19:23:31 UTC (rev 18906)
@@ -96,6 +96,10 @@
public class SmooksProcessGraphicalEditor extends FormPage implements
ISelectionChangedListener,
ISourceSynchronizeListener, IPropertyListener, ISmooksModelValidateListener,
IProcessProvider,
PropertyChangeListener {
+
+ private boolean processChanged = false;
+
+ private boolean lockProcessChangeEvent = false;
private List<IAction> processPanelActions = new ArrayList<IAction>();
@@ -199,8 +203,9 @@
process.addPropertyChangeListener(this);
}
ProcessTaskAnalyzer analyzer = new ProcessTaskAnalyzer();
+ lockProcessChangeEvent = true;
analyzer.analyzeTaskNode(process, getSmooksResourceListType());
-
+ lockProcessChangeEvent = false;
if (getProcessGraphViewer() != null) {
getProcessGraphViewer().setInput(process);
}
@@ -821,7 +826,7 @@
dirty = (((IEditorPart) object).isDirty() || dirty);
}
}
- return dirty;
+ return( dirty || processChanged);
}
/*
@@ -839,6 +844,7 @@
((IEditorPart) object).doSave(monitor);
}
}
+ processChanged = false;
firePropertyChange(PROP_DIRTY);
}
@@ -1120,6 +1126,7 @@
}
public void propertyChange(PropertyChangeEvent evt) {
+ if(lockProcessChangeEvent) return;
String name = evt.getPropertyName();
Object newtask = evt.getNewValue();
if (ProcessType.PRO_ADD_CHILD.equals(name) ||
ProcessType.PRO_REMOVE_CHILD.equals(name)) {
@@ -1127,6 +1134,8 @@
getProcessGraphViewer().refresh();
getProcessGraphViewer().applyLayout();
}
+ processChanged = true;
+ getManagedForm().dirtyStateChanged();
}
if (ProcessType.PRO_ADD_CHILD.equals(name)) {
Show replies by date