svn commit: r17623 - trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui
Bob Tarling <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: bobtarling
Date: 2009-12-10 06:59:02-0800
New Revision: 17623
Modified:
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/Ordered.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionArgumentListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionSequenceActionListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationConnectionListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndQualifiersListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassAttributeListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassOperationListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierFeatureListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierParameterListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableContentsListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableFeaturesListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEnumerationLiteralsListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEventParameterListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExtendExtensionPointListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkConnectionListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLUseCaseExtensionPointListModel.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java
Log:
Provide a getModelElements method for ordered lists
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/Ordered.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/Ordered.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/Ordered.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/Ordered.java 2009-12-10 06:59:02-0800
@@ -24,9 +24,12 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
+
/**
* A marker interface to be implemented by ordered list models (ie can have
* items reordered)
*/
interface Ordered {
+ Collection getModelElements();
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/RowSelector.java 2009-12-10 06:59:02-0800
@@ -160,7 +160,7 @@
* By recording the model element being moved the add event can detected
* when the element is added and mark it as selected.
*/
- private Object movedModelElement;
+ private MovedModelElement movedModelElement = new MovedModelElement();
/**
* The label that contains the +/- symbol to indicate
@@ -401,14 +401,14 @@
}
public void componentAdded(ContainerEvent arg0) {
- // TODO Auto-generated method stub
-
+ LOG.info("The RowSelector is being added to a panel");
}
/**
* Remove all the listeners that were added in the constructor
*/
- public void componentRemoved(ContainerEvent event) {
+ public void componentRemoved(ContainerEvent event) {
+ LOG.info("The RowSelector is being removed from a panel");
getList().removeListSelectionListener(deleteAction);
if (moveUpAction != null) {
getList().removeListSelectionListener(moveUpAction);
@@ -419,6 +419,7 @@
this.removeMouseListener(this);
this.removeContainerListener(this);
getModel().removeListDataListener(this);
+ ((UMLModelElementListModel) getModel()).removeModelEventListener();
}
@@ -569,10 +570,11 @@
@Override
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
- movedModelElement = getList().getSelectedValues()[0];
+ movedModelElement.setElement(getList().getSelectedValues()[0]);
+ assert (movedModelElement != null);
Model.getUmlHelper().move(
target,
- movedModelElement,
+ movedModelElement.getElement(),
UmlHelper.Direction.UP);
}
}
@@ -613,10 +615,11 @@
@Override
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
- movedModelElement = getList().getSelectedValues()[0];
+ movedModelElement.setElement(getList().getSelectedValues()[0]);
+ assert (movedModelElement != null);
Model.getUmlHelper().move(
target,
- movedModelElement,
+ movedModelElement.getElement(),
UmlHelper.Direction.DOWN);
}
}
@@ -656,10 +659,11 @@
@Override
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
- movedModelElement = getList().getSelectedValues()[0];
+ movedModelElement.setElement(getList().getSelectedValues()[0]);
+ assert (movedModelElement != null);
Model.getUmlHelper().move(
target,
- movedModelElement,
+ movedModelElement.getElement(),
UmlHelper.Direction.TOP);
}
}
@@ -700,11 +704,25 @@
@Override
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
- movedModelElement = getList().getSelectedValues()[0];
+ movedModelElement.setElement(getList().getSelectedValues()[0]);
+ assert (movedModelElement != null);
Model.getUmlHelper().move(
target,
- movedModelElement,
+ movedModelElement.getElement(),
UmlHelper.Direction.BOTTOM);
}
}
+
+ private class MovedModelElement {
+ private Object element;
+
+ public Object getElement() {
+ return element;
+ }
+
+ public void setElement(Object element) {
+ LOG.info("Setting moved model element to " + element);
+ this.element = element;
+ }
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionArgumentListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionArgumentListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionArgumentListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionArgumentListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -37,6 +38,11 @@
implements Ordered {
/**
+ * The UID.
+ */
+ private static final long serialVersionUID = -3265997785192090331L;
+
+ /**
* Constructor.
*/
public UMLActionArgumentListModel(final Object modelElement) {
@@ -49,7 +55,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- setAllElements(Model.getFacade().getActualArguments(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -60,8 +66,8 @@
return Model.getFacade().isAArgument(element);
}
- /**
- * The UID.
- */
- private static final long serialVersionUID = -3265997785192090331L;
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getActualArguments(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionSequenceActionListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionSequenceActionListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionSequenceActionListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLActionSequenceActionListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -49,7 +50,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- setAllElements(Model.getFacade().getActions(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -59,4 +60,9 @@
protected boolean isValidElement(Object element) {
return Model.getFacade().isAAction(element);
}
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getActions(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationConnectionListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationConnectionListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationConnectionListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationConnectionListModel.java 2009-12-10 06:59:02-0800
@@ -105,4 +105,9 @@
return Model.getFacade().isAAssociationEnd(o)
&& Model.getFacade().getConnections(getTarget()).contains(o);
}
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getConnections(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndQualifiersListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndQualifiersListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndQualifiersListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndQualifiersListModel.java 2009-12-10 06:59:02-0800
@@ -25,6 +25,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -50,7 +51,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- setAllElements(Model.getFacade().getQualifiers(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -61,4 +62,10 @@
return Model.getFacade().isAAttribute(o)
&& Model.getFacade().getQualifiers(getTarget()).contains(o);
}
+
+ @Override
+ public Collection getModelElements() {
+ // TODO Auto-generated method stub
+ return Model.getFacade().getQualifiers(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassAttributeListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassAttributeListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassAttributeListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassAttributeListModel.java 2009-12-10 06:59:02-0800
@@ -24,10 +24,10 @@
package org.argouml.core.propertypanels.ui;
-import java.util.List;
+import java.util.Collection;
+import org.apache.log4j.Logger;
import org.argouml.model.Model;
-import org.argouml.uml.ui.UMLModelElementOrderedListModel2;
/**
*
@@ -38,12 +38,16 @@
extends UMLModelElementListModel
implements Ordered {
+ private static final Logger LOG =
+ Logger.getLogger(UMLClassAttributeListModel.class);
+
/**
* Constructor for UMLClassifierStructuralFeatureListModel.
*/
public UMLClassAttributeListModel(Object modelElement) {
super("feature", true, false, Model.getMetaTypes().getAttribute());
setTarget(modelElement);
+ LOG.info("Constructed UMLClassAttributeListModel");
}
/*
@@ -51,15 +55,19 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
-
- setAllElements(Model.getFacade().getAttributes(getTarget()));
+ setAllElements(getModelElements());
}
}
+
+ public Collection getModelElements() {
+ return Model.getFacade().getAttributes(getTarget());
+ }
/*
* @see org.argouml.uml.ui.UMLModelElementListModel2#isValidElement(Object)
*/
protected boolean isValidElement(Object element) {
- return (Model.getFacade().getAttributes(getTarget()).contains(element));
+ return Model.getFacade().isAAttribute(element)
+ && (getModelElements().contains(element));
}
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassOperationListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassOperationListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassOperationListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassOperationListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -50,9 +51,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- List opsAndReceps =
- Model.getFacade().getOperationsAndReceptions(getTarget());
- setAllElements(opsAndReceps);
+ setAllElements(getModelElements());
}
}
@@ -64,4 +63,10 @@
return (Model.getFacade().getOperationsAndReceptions(getTarget())
.contains(element));
}
+
+ @Override
+ public Collection getModelElements() {
+ return
+ Model.getFacade().getOperationsAndReceptions(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierFeatureListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierFeatureListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierFeatureListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierFeatureListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -51,7 +52,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- setAllElements(Model.getFacade().getFeatures(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -61,4 +62,9 @@
protected boolean isValidElement(Object element) {
return Model.getFacade().getFeatures(getTarget()).contains(element);
}
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getFeatures(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierParameterListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierParameterListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierParameterListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierParameterListModel.java 2009-12-10 06:59:02-0800
@@ -57,7 +57,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- setAllElements(Model.getFacade().getParameters(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -67,4 +67,9 @@
protected boolean isValidElement(Object element) {
return Model.getFacade().getParameters(getTarget()).contains(element);
}
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getParameters(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableContentsListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableContentsListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableContentsListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableContentsListModel.java 2009-12-10 06:59:02-0800
@@ -131,6 +131,26 @@
fireIntervalAdded(this, 0, getSize() - 1);
}
}
+
+ public void removeModelEventListener() {
+ Collection bases = Model.getFacade().getBases(getTarget());
+ Iterator it = bases.iterator();
+ while (it.hasNext()) {
+ Object base = it.next();
+ Model.getPump().removeModelEventListener(
+ this,
+ base,
+ "ownedElement");
+ }
+
+ // make sure we know it when a classifier is added as a base
+ Model.getPump().removeModelEventListener(
+ this,
+ getTarget(),
+ "base");
+ }
+
+
/*
* @see org.argouml.uml.ui.UMLModelElementListModel2#isValidElement(Object)
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableFeaturesListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableFeaturesListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableFeaturesListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLClassifierRoleAvailableFeaturesListModel.java 2009-12-10 06:59:02-0800
@@ -139,4 +139,23 @@
protected boolean isValidElement(Object element) {
return false;
}
+
+
+ public void removeModelEventListener() {
+ Collection bases = Model.getFacade().getBases(getTarget());
+ Iterator it = bases.iterator();
+ while (it.hasNext()) {
+ Object base = it.next();
+ Model.getPump().removeModelEventListener(
+ this,
+ base,
+ "feature");
+ }
+
+ // make sure we know it when a classifier is added as a base
+ Model.getPump().removeModelEventListener(
+ this,
+ getTarget(),
+ "base");
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEnumerationLiteralsListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEnumerationLiteralsListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEnumerationLiteralsListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEnumerationLiteralsListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -56,8 +57,7 @@
*/
protected void buildModelList() {
if (Model.getFacade().isAEnumeration(getTarget())) {
- setAllElements(
- Model.getFacade().getEnumerationLiterals(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -66,10 +66,13 @@
*/
protected boolean isValidElement(Object element) {
if (Model.getFacade().isAEnumeration(getTarget())) {
- List literals =
- Model.getFacade().getEnumerationLiterals(getTarget());
- return literals.contains(element);
+ return getModelElements().contains(element);
}
return false;
}
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getEnumerationLiterals(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEventParameterListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEventParameterListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEventParameterListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLEventParameterListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,8 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
+
import org.argouml.model.Model;
/**
@@ -46,15 +48,18 @@
* @see org.argouml.uml.ui.UMLModelElementListModel2#buildModelList()
*/
protected void buildModelList() {
- //setAllElements(((MEvent)getTarget()).getParameters());
- setAllElements(Model.getFacade().getParameters(getTarget()));
+ setAllElements(getModelElements());
}
/*
* @see org.argouml.uml.ui.UMLModelElementListModel2#isValidElement(Object)
*/
protected boolean isValidElement(Object element) {
- return Model.getFacade().getParameters(getTarget()).contains(element);
+ return getModelElements().contains(element);
}
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getParameters(getTarget());
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExtendExtensionPointListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExtendExtensionPointListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExtendExtensionPointListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExtendExtensionPointListModel.java 2009-12-10 06:59:02-0800
@@ -24,6 +24,7 @@
package org.argouml.core.propertypanels.ui;
+import java.util.Collection;
import java.util.List;
import org.argouml.model.Model;
@@ -52,7 +53,7 @@
* @see org.argouml.uml.ui.UMLModelElementListModel2#buildModelList()
*/
protected void buildModelList() {
- setAllElements(Model.getFacade().getExtensionPoints(getTarget()));
+ setAllElements(getModelElements());
}
/*
@@ -60,6 +61,11 @@
*/
protected boolean isValidElement(Object o) {
return Model.getFacade().isAExtensionPoint(o)
- && Model.getFacade().getExtensionPoints(getTarget()).contains(o);
+ && getModelElements().contains(o);
+ }
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getExtensionPoints(getTarget());
}
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkConnectionListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkConnectionListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkConnectionListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLLinkConnectionListModel.java 2009-12-10 06:59:02-0800
@@ -24,12 +24,9 @@
package org.argouml.core.propertypanels.ui;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.Collection;
import org.argouml.model.Model;
-import org.argouml.uml.ui.UMLModelElementOrderedListModel2;
/**
*
@@ -52,7 +49,7 @@
*/
protected void buildModelList() {
if (getTarget() != null) {
- setAllElements(Model.getFacade().getConnections(getTarget()));
+ setAllElements(getModelElements());
}
}
@@ -60,6 +57,11 @@
* @see org.argouml.uml.ui.UMLModelElementListModel2#isValidElement(Object)
*/
protected boolean isValidElement(Object element) {
- return Model.getFacade().getConnections(getTarget()).contains(element);
+ return getModelElements().contains(element);
+ }
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getConnections(getTarget());
}
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLModelElementListModel.java 2009-12-10 06:59:02-0800
@@ -75,6 +75,8 @@
private AbstractActionNewModelElement newAction = null;
private AbstractActionRemoveElement removeAction = null;
+ private static int count = 0;
+ private final int instance = count++;
/**
* Flag to indicate whether list events should be fired
@@ -304,21 +306,25 @@
* differences between NSUML and MDR - tfm - 20060302
*/
public void propertyChange(final PropertyChangeEvent e) {
+ final UMLModelElementListModel lm = this;
Runnable doWorkRunnable = new Runnable() {
public void run() {
try {
if (e instanceof AttributeChangeEvent) {
try {
if (isValidEvent(e)) {
+ LOG.info("Rebuilding model");
rebuildModelList();
}
} catch (InvalidElementException iee) {
return;
}
- } else if (e instanceof AddAssociationEvent) {
+ } else
+ if (e instanceof AddAssociationEvent) {
if (isValidEvent(e)) {
Object o = getChangedElement(e);
if (o instanceof Collection) {
+ LOG.info("Elements added");
ArrayList tempList = new ArrayList((Collection) o);
Iterator it = tempList.iterator();
while (it.hasNext()) {
@@ -328,7 +334,25 @@
} else {
/* TODO: If this is an ordered list, then you have to
add in the right location! */
- addElement(o);
+ if (!lm.contains(o)) {
+ if (lm instanceof Ordered) {
+ Ordered ordered = (Ordered) lm;
+ Collection elements = ordered.getModelElements();
+ if (elements instanceof List) {
+ LOG.info("Element inserted " + instance + " " + o);
+ final int posn = ((List) elements).indexOf(o);
+ add(posn, o);
+ } else {
+ LOG.info("Element addedx" + instance);
+ addElement(o);
+ }
+ int posn = 1;
+ add(posn, o);
+ } else {
+ LOG.info("Element addedy " + o);
+ addElement(o);
+ }
+ }
}
}
} else if (e instanceof RemoveAssociationEvent) {
@@ -348,6 +372,7 @@
}
}
if (valid) {
+ LOG.info("Remove is valid" + instance);
Object o = getChangedElement(e);
if (o instanceof Collection) {
Iterator it = ((Collection) o).iterator();
@@ -356,8 +381,11 @@
removeElement(o3);
}
} else {
+ LOG.info("Removing" + instance + " " + o);
removeElement(o);
}
+ } else {
+ LOG.info("Remove is not valid for " + instance + " " + getChangedElement(e));
}
}
} catch (InvalidElementException e) {
@@ -377,6 +405,7 @@
* Delete and rebuild the model list from scratch.
*/
private void rebuildModelList() {
+ LOG.info("Rebuilding");
removeAllElements();
buildingModel = true;
try {
@@ -504,6 +533,10 @@
rebuildModelList();
}
+
+ public void removeModelEventListener() {
+ Model.getPump().removeModelEventListener(this, listTarget, eventName);
+ }
/**
* This function allows subclasses to listen to more modelelements.
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLUseCaseExtensionPointListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLUseCaseExtensionPointListModel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLUseCaseExtensionPointListModel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLUseCaseExtensionPointListModel.java 2009-12-10 06:59:02-0800
@@ -25,6 +25,7 @@
package org.argouml.core.propertypanels.ui;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -60,13 +61,20 @@
* @see org.argouml.uml.ui.UMLModelElementListModel2#buildModelList()
*/
protected void buildModelList() {
- setAllElements(Model.getFacade().getExtensionPoints(getTarget()));
+ setAllElements(getModelElements());
}
/*
* @see org.argouml.uml.ui.UMLModelElementListModel2#isValidElement(Object)
*/
protected boolean isValidElement(Object o) {
- return Model.getFacade().getExtensionPoints(getTarget()).contains(o);
+ return getModelElements().contains(o);
}
+
+ @Override
+ public Collection getModelElements() {
+ return Model.getFacade().getExtensionPoints(getTarget());
+ }
+
+
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java?view=diff&pathrev=17623&r1=17622&r2=17623
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/XmlPropertyPanel.java 2009-12-10 06:59:02-0800
@@ -75,6 +75,9 @@
if (comp instanceof RowSelector) {
RowSelector rs = (RowSelector) comp;
rs.removeListSelectionListener(this);
+ // TODO: Why do we have to call this manually
+ // when the component is listening for its own removal?
+ rs.componentRemoved(null);
}
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2429211
To unsubscribe from this discussion, e-mail: [[email protected]].