Author: bobtarling
Date: 2010-08-14 09:58:44-0700
New Revision: 18641
Removed:
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLAssociationEndQualifiersListModel.java
Modified:
trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/metamodel.xml
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/NavigateSiblingAction.java
Log:
Allow to create new qualifier in association end
Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java?view=diff&pathrev=18641&r1=18640&r2=18641
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/UMLAssociationEndQualifiersListModel.java 2010-08-14 09:58:44-0700
@@ -46,7 +46,10 @@
/**
* @author [email protected]
+ * @deprecated This class is only provided by property panels which are now
+ * external to ArgoUML
*/
+@Deprecated
public class UMLAssociationEndQualifiersListModel
extends UMLModelElementOrderedListModel2 {
Modified: trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java?view=diff&pathrev=18641&r1=18640&r2=18641
==============================================================================
--- trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java (original)
+++ trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java 2010-08-14 09:58:44-0700
@@ -352,6 +352,12 @@
ComponentInstance.class, NodeInstance.class
});
+ // specifies valid elements for a Model to contain
+ validContainmentMap.put(AssociationEnd.class,
+ new Class<?>[] {
+ Attribute.class
+ });
+
// specifies valid elements for a Package to contain
validContainmentMap.put(UmlPackage.class,
new Class<?>[] {
@@ -552,52 +558,72 @@
// specifies valid elements for an State to contain
validContainmentMap.put(State.class,
new Class<?>[] {
- CallEvent.class, ChangeEvent.class, SignalEvent.class, TimeEvent.class
+ CallEvent.class, ChangeEvent.class, SignalEvent.class,
+ TimeEvent.class
});
// specifies valid elements for an CallState to contain
validContainmentMap.put(CallState.class,
new Class<?>[] {
CallAction.class,
- CallEvent.class, ChangeEvent.class, SignalEvent.class, TimeEvent.class
+ CallEvent.class, ChangeEvent.class, SignalEvent.class,
+ TimeEvent.class
});
// specifies valid elements for an SimpleState to contain
validContainmentMap.put(SimpleState.class,
new Class<?>[] {
Transition.class,
- CallAction.class, CreateAction.class, DestroyAction.class, ReturnAction.class, SendAction.class, TerminateAction.class, UninterpretedAction.class, ActionSequence.class,
- CallEvent.class, ChangeEvent.class, SignalEvent.class, TimeEvent.class
+ CallAction.class, CreateAction.class, DestroyAction.class,
+ ReturnAction.class, SendAction.class,
+ TerminateAction.class,
+ UninterpretedAction.class, ActionSequence.class,
+ CallEvent.class, ChangeEvent.class, SignalEvent.class,
+ TimeEvent.class
});
// specifies valid elements for an SimpleState to contain
validContainmentMap.put(FinalState.class,
new Class<?>[] {
Transition.class,
- CallAction.class, CreateAction.class, DestroyAction.class, ReturnAction.class, SendAction.class, TerminateAction.class, UninterpretedAction.class, ActionSequence.class
+ CallAction.class, CreateAction.class, DestroyAction.class,
+ ReturnAction.class, SendAction.class, TerminateAction.class,
+ UninterpretedAction.class, ActionSequence.class
});
// specifies valid elements for an SubactivityState to contain
validContainmentMap.put(SubactivityState.class,
new Class<?>[] {
Transition.class,
- CallAction.class, CreateAction.class, DestroyAction.class, ReturnAction.class, SendAction.class, TerminateAction.class, UninterpretedAction.class, ActionSequence.class,
- CallEvent.class, ChangeEvent.class, SignalEvent.class, TimeEvent.class
+ CallAction.class, CreateAction.class, DestroyAction.class,
+ ReturnAction.class, SendAction.class, TerminateAction.class,
+ UninterpretedAction.class, ActionSequence.class,
+ CallEvent.class, ChangeEvent.class, SignalEvent.class,
+ TimeEvent.class
});
// specifies valid elements for an ActionState to contain
validContainmentMap.put(ActionState.class,
new Class<?>[] {
- CallAction.class, CreateAction.class, DestroyAction.class, ReturnAction.class, SendAction.class, TerminateAction.class, UninterpretedAction.class, ActionSequence.class,
- CallEvent.class, ChangeEvent.class, SignalEvent.class, TimeEvent.class
+ CallAction.class, CreateAction.class, DestroyAction.class,
+ ReturnAction.class, SendAction.class, TerminateAction.class,
+ UninterpretedAction.class, ActionSequence.class,
+ CallEvent.class, ChangeEvent.class, SignalEvent.class,
+ TimeEvent.class
});
// specifies valid elements for an ActionState to contain
validContainmentMap.put(CompositeState.class,
new Class<?>[] {
Transition.class,
- Pseudostate.class, SynchState.class, StubState.class, CompositeState.class, SimpleState.class, FinalState.class, SubmachineState.class,
- CallAction.class, CreateAction.class, DestroyAction.class, ReturnAction.class, SendAction.class, TerminateAction.class, UninterpretedAction.class, ActionSequence.class
+ Pseudostate.class, SynchState.class, StubState.class,
+ CompositeState.class, SimpleState.class,
+ FinalState.class,
+ SubmachineState.class,
+ CallAction.class, CreateAction.class, DestroyAction.class,
+ ReturnAction.class, SendAction.class,
+ TerminateAction.class,
+ UninterpretedAction.class, ActionSequence.class
});
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java?view=diff&pathrev=18641&r1=18640&r2=18641
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/GetterSetterManagerImpl.java 2010-08-14 09:58:44-0700
@@ -33,6 +33,7 @@
import org.argouml.kernel.NonUndoableCommand;
import org.argouml.kernel.Project;
import org.argouml.kernel.ProjectManager;
+import org.argouml.model.MetaTypes;
import org.argouml.model.Model;
import org.argouml.profile.Profile;
import org.argouml.profile.ProfileException;
@@ -106,6 +107,7 @@
addGetterSetter("internalTransition", new InternalTransitionGetterSetter());
addGetterSetter("classifier", new ClassifierGetterSetter());
addGetterSetter("baseClass", new BaseClassGetterSetter());
+ addGetterSetter("qualifier", new QualifierGetterSetter());
// UML2 only
addGetterSetter("ownedOperation", new FeatureGetterSetter());
@@ -2073,4 +2075,28 @@
}
}
}
+
+ private class QualifierGetterSetter extends ListGetterSetter {
+
+ public Collection getOptions(Object modelElement, Class<?> type) {
+ return Model.getFacade().getQualifiers(modelElement);
+ }
+
+ public Object get(Object modelElement, Class<?> type) {
+ // not needed
+ return null;
+ }
+
+ public void set(Object element, Object x) {
+ // not needed
+ }
+
+ public boolean isValidElement(Object element, Class<?> type) {
+ return getOptions(element, type).contains(element);
+ }
+
+ public Object getMetaType() {
+ return Model.getMetaTypes().getAttribute();
+ }
+ }
}
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/metamodel.xml
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/metamodel.xml?view=diff&pathrev=18641&r1=18640&r2=18641
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/metamodel.xml (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model/metamodel.xml 2010-08-14 09:58:44-0700
@@ -510,7 +510,7 @@
<checkbox name="targetScope" type="ScopeKind" label="label.static" />
<checkbox name="ordering" type="OrderingKind" label="label.ordered" />
</checkgroup>
- <list name="qualifier" type="Attribute" label="label.qualifiers" />
+ <list name="qualifier" type="Attribute" new="true" label="label.qualifiers" />
<list name="specification" type="Classifier" />
<separator />
<optionbox name="aggregation" type="AggregationKind" />
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java?view=diff&pathrev=18641&r1=18640&r2=18641
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/ListFactory.java 2010-08-14 09:58:44-0700
@@ -111,8 +111,6 @@
model = new UMLActivityGraphPartitionListModel(modelElement);
} else if ("predecessor".equals(propName)) {
model = new UMLMessagePredecessorListModel(modelElement);
- } else if ("qualifier".equals(propName)) {
- model = new UMLAssociationEndQualifiersListModel(modelElement);
} else if ("resident".equals(propName)) {
model = new UMLContainerResidentListModel(modelElement);
} else if ("residentElement".equals(propName)) {
Modified: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/NavigateSiblingAction.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/NavigateSiblingAction.java?view=diff&pathrev=18641&r1=18640&r2=18641
==============================================================================
--- trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/NavigateSiblingAction.java (original)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/NavigateSiblingAction.java 2010-08-14 09:58:44-0700
@@ -53,7 +53,11 @@
final Object owner =
Model.getFacade().getModelElementContainer(modelElement);
if (Model.getFacade().isAAttribute(modelElement)) {
- list = Model.getFacade().getAttributes(owner);
+ if (Model.getFacade().isAAssociationEnd(Model.getFacade().getOwner(modelElement))) {
+ list = Model.getFacade().getQualifiers(owner);
+ } else {
+ list = Model.getFacade().getAttributes(owner);
+ }
} else if (Model.getFacade().isAOperation(modelElement)
|| Model.getFacade().isAReception(modelElement)) {
list = Model.getFacade().getOperationsAndReceptions(owner);
Removed: 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=markup&pathrev=18640
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2646952
To unsubscribe from this discussion, e-mail: [[email protected]].
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.