Author: bobtarling
Date: 2008-05-14 15:53:47-0700
New Revision: 14741
Modified:
trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
Log:
Reject events we don't want as early as possible
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java?view=diff&rev=14741&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java&r1=14740&r2=14741
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/FigClassifierBox.java 2008-05-14 15:53:47-0700
@@ -28,6 +28,7 @@
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
import java.util.Iterator;
import java.util.Vector;
@@ -35,6 +36,7 @@
import org.argouml.model.AddAssociationEvent;
import org.argouml.model.AssociationChangeEvent;
+import org.argouml.model.DeleteInstanceEvent;
import org.argouml.model.Model;
import org.argouml.model.RemoveAssociationEvent;
import org.argouml.model.UmlChangeEvent;
@@ -43,7 +45,6 @@
import org.argouml.uml.diagram.ui.ActionAddNote;
import org.argouml.uml.diagram.ui.ActionCompartmentDisplay;
import org.argouml.uml.diagram.ui.ActionEdgesDisplay;
-import org.argouml.uml.diagram.ui.CompartmentFigText;
import org.argouml.uml.diagram.ui.FigCompartmentBox;
import org.argouml.uml.diagram.ui.FigEmptyRect;
import org.argouml.uml.diagram.ui.FigOperationsCompartment;
@@ -147,6 +148,35 @@
updateOperations();
super.renderingChanged();
}
+
+ /**
+ * We are getting events we don't want. Filter them out.
+ * TODO: Can we instruct the model event pump not to send these in the
+ * first place? See defect 5095.
+ * @param event the event
+ */
+ public void propertyChange(PropertyChangeEvent event) {
+ if (event instanceof DeleteInstanceEvent
+ || event.getSource() != getOwner()) {
+ super.propertyChange(event);
+ }
+
+ if (event.getPropertyName().equals("generalization")
+ && Model.getFacade().isAGeneralization(event.getOldValue())) {
+ return;
+ } else if (event.getPropertyName().equals("association")
+ && Model.getFacade().isAAssociationEnd(event.getOldValue())) {
+ return;
+ } else if (event.getPropertyName().equals("supplierDependency")
+ && Model.getFacade().isAUsage(event.getOldValue())) {
+ return;
+ } else if (event.getPropertyName().equals("clientDependency")
+ && Model.getFacade().isAAbstraction(event.getOldValue())) {
+ return;
+ }
+
+ super.propertyChange(event);
+ }
protected void updateLayout(UmlChangeEvent event) {
super.updateLayout(event);
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java?view=diff&rev=14741&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java&r1=14740&r2=14741
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/FigNodeModelElement.java 2008-05-14 15:53:47-0700
@@ -935,6 +935,15 @@
removeFromDiagram();
return;
}
+
+ // We are getting events we don't want. Filter them out.
+ if (pve.getPropertyName().equals("supplierDependency")
+ && Model.getFacade().isADependency(pve.getOldValue())) {
+ // TODO: Can we instruct the model event pump not to send these in
+ // the first place? See defect 5095.
+ return;
+ }
+
// We handle and consume editing events
if (pName.equals("editing")
&& Boolean.FALSE.equals(pve.getNewValue())) {
@@ -975,7 +984,14 @@
try {
modelChanged(event);
} catch (InvalidElementException e) {
- LOG.debug("modelChanged method accessed deleted element ", e);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("event = " + event.getClass().getName());
+ LOG.debug("source = " + event.getSource());
+ LOG.debug("old = " + event.getOldValue());
+ LOG.debug("name = " + event.getPropertyName());
+ LOG.debug("modelChanged method accessed deleted element ",
+ e);
+ }
}
if (event.getSource() == owner
@@ -987,8 +1003,11 @@
public void run() {
try {
updateLayout(event);
- }
- catch (InvalidElementException e) {
+ } catch (InvalidElementException e) {
+ LOG.debug("event = " + event.getClass().getName());
+ LOG.debug("source = " + event.getSource());
+ LOG.debug("old = " + event.getOldValue());
+ LOG.debug("name = " + event.getPropertyName());
LOG.debug(
"updateLayout method accessed deleted element ",
e);
@@ -2072,7 +2091,7 @@
/**
* Determine if this Fig is the sole selected target in
* the TargetManager
- * @return true if this si the sole target.
+ * @return true if this is the sole target.
*/
protected boolean isSingleTarget() {
return TargetManager.getInstance().getSingleModelTarget()
@@ -2095,7 +2114,8 @@
*
* @return current practical stereotype view
*/
- private int getPracticalView() {
+ private int getPracticalView() {
+ // TODO assert modelElement != null???
int practicalView = getStereotypeView();
Object modelElement = getOwner();
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.