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(); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
