svn commit: r18641 - trunk/src: argouml-app/src/org/argouml/uml/ui/foundation/core argouml-core-model-mdr/src/org/argouml/model/mdr argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/model argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
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.