svn commit: r17013 - trunk/src: argouml-app argouml-app/src/org/argouml/profile/internal/ocl argouml-app/src/org/argouml/ui/explorer argouml-app/src/org/argouml/ui/explorer/rules argouml-app/src/org/argouml/uml/ui argouml-app/src/org/argouml/uml/ui/foundation/core argouml-core-model-mdr/src/org/argouml/model/mdr
Alexander Lepekhine <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: lepekhine
Date: 2009-04-01 10:01:28-0700
New Revision: 17013
Added:
trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelTemplateParameter.java
Modified:
trunk/src/argouml-app/build.xml
trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java
trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java
trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoModelElementToTemplateParameter.java
trunk/src/argouml-app/src/org/argouml/uml/ui/ElementPropPanelFactory.java
trunk/src/argouml-app/src/org/argouml/uml/ui/UmlObjectPropPanelFactory.java
trunk/src/argouml-core-model-mdr/src/org/argouml/model/mdr/UmlFactoryMDRImpl.java
Log:
Added template parameter support
Modified: trunk/src/argouml-app/build.xml
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/build.xml?view=diff&pathrev=17013&r1=17012&r2=17013
==============================================================================
--- trunk/src/argouml-app/build.xml (original)
+++ trunk/src/argouml-app/build.xml 2009-04-01 10:01:28-0700
@@ -67,9 +67,12 @@
<fileset dir="../argouml-core-infra/build/">
<include name="*.jar"/>
</fileset>
- <fileset dir="../argouml-core-model/build/">
- <include name="*.jar"/>
- </fileset>
+ <fileset dir="../argouml-core-model/build/">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="../argouml-core-model-mdr/build/">
+ <include name="*.jar"/>
+ </fileset>
</path>
<!-- This runtime classpath is used for tests and other things started
Modified: trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java?view=diff&pathrev=17013&r1=17012&r2=17013
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java (original)
+++ trunk/src/argouml-app/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java 2009-04-01 10:01:28-0700
@@ -67,7 +67,7 @@
// XXX this seems to be a bug of the parser,
// it always requires a context
- LOG.debug("OCL: " + ocl);
+ //LOG.debug("OCL: " + ocl);
if (ocl.contains("ore")) {
// TODO: Convert this to some sensible logging
System.out.println("VOILA!");
Modified: trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java?view=diff&pathrev=17013&r1=17012&r2=17013
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/explorer/ExplorerPopup.java 2009-04-01 10:01:28-0700
@@ -97,6 +97,8 @@
*/
private static final Object[] MODEL_ELEMENT_MENUITEMS =
new Object[] {
+ Model.getMetaTypes().getTemplateParameter(),
+ "button.new-template-parameter",
Model.getMetaTypes().getPackage(),
"button.new-package",
Model.getMetaTypes().getActor(),
Modified: trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoModelElementToTemplateParameter.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoModelElementToTemplateParameter.java?view=diff&pathrev=17013&r1=17012&r2=17013
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoModelElementToTemplateParameter.java (original)
+++ trunk/src/argouml-app/src/org/argouml/ui/explorer/rules/GoModelElementToTemplateParameter.java 2009-04-01 10:01:28-0700
@@ -12,7 +12,7 @@
@Override
public Collection getChildren(Object parent) {
- if (Model.getFacade().isAModelElement(parent)) {
+ if (Model.getFacade().isAClassifier(parent)) {
return Model.getFacade().getTemplateParameters(parent);
}
return Collections.emptyList();
@@ -24,11 +24,11 @@
}
public Set getDependencies(Object parent) {
- if (Model.getFacade().isAModelElement(parent)) {
- Set set = new HashSet();
- set.add(parent);
- return set;
- }
+// if (Model.getFacade().isAClassifier(parent)) {
+// Set set = new HashSet();
+// set.add(parent);
+// return set;
+// }
return Collections.emptySet();
}
Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/ElementPropPanelFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/ElementPropPanelFactory.java?view=diff&pathrev=17013&r1=17012&r2=17013
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/ElementPropPanelFactory.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/ElementPropPanelFactory.java 2009-04-01 10:01:28-0700
@@ -99,6 +99,7 @@
import org.argouml.uml.ui.foundation.core.PropPanelParameter;
import org.argouml.uml.ui.foundation.core.PropPanelPermission;
import org.argouml.uml.ui.foundation.core.PropPanelRelationship;
+import org.argouml.uml.ui.foundation.core.PropPanelTemplateParameter;
import org.argouml.uml.ui.foundation.core.PropPanelUsage;
import org.argouml.uml.ui.foundation.extension_mechanisms.PropPanelStereotype;
import org.argouml.uml.ui.foundation.extension_mechanisms.PropPanelTagDefinition;
@@ -201,6 +202,8 @@
return new PropPanelStimulus();
} else if (Model.getFacade().isATaggedValue(element)) {
return new PropPanelTaggedValue();
+ } else if (Model.getFacade().isATemplateParameter(element)) {
+ return new PropPanelTemplateParameter();
} else if (Model.getFacade().isATagDefinition(element)) {
return new PropPanelTagDefinition();
} else if (Model.getFacade().isATransition(element)) {
Modified: trunk/src/argouml-app/src/org/argouml/uml/ui/UmlObjectPropPanelFactory.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/UmlObjectPropPanelFactory.java?view=diff&pathrev=17013&r1=17012&r2=17013
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/ui/UmlObjectPropPanelFactory.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/UmlObjectPropPanelFactory.java 2009-04-01 10:01:28-0700
@@ -26,6 +26,7 @@
import org.argouml.model.Model;
import org.argouml.uml.ui.foundation.core.PropPanelElementResidence;
+import org.argouml.uml.ui.foundation.core.PropPanelTemplateParameter;
import org.argouml.uml.ui.model_management.PropPanelElementImport;
/**
@@ -59,9 +60,9 @@
if (Model.getFacade().isAElementResidence(object)) {
return new PropPanelElementResidence();
}
-// if (Model.getFacade().isATemplateParameter(object)) {
-// return new PropPanelTemplateParameter();
-// }
+ if (Model.getFacade().isATemplateParameter(object)) {
+ return new PropPanelTemplateParameter();
+ }
return null;
}
Added: trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelTemplateParameter.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelTemplateParameter.java?view=markup&pathrev=17013
==============================================================================
--- (empty file)
+++ trunk/src/argouml-app/src/org/argouml/uml/ui/foundation/core/PropPanelTemplateParameter.java 2009-04-01 10:01:28-0700
@@ -0,0 +1,53 @@
+package org.argouml.uml.ui.foundation.core;
+
+import javax.swing.JTextField;
+
+import org.argouml.uml.ui.UMLPlainTextDocument;
+import org.argouml.uml.ui.UMLTextField2;
+import org.omg.uml.foundation.core.ModelElement;
+import org.omg.uml.foundation.core.TemplateParameter;
+
+public class PropPanelTemplateParameter extends PropPanelStructuralFeature {
+
+ private static final long serialVersionUID = 8466952187322427678L;
+
+ public PropPanelTemplateParameter() {
+ super("label.template-parameter", null);
+ addField("Name", new UMLTextField2(new UMLTemplateParameterDocument("TemplateParameter")));
+ // TODO: we don't need Type and DefaultValue for Java but they should be implemented to comply with UML
+ addField("Type", new JTextField(""));
+ addField("Default Value", new JTextField(""));
+ }
+
+ public static class UMLTemplateParameterDocument extends UMLPlainTextDocument {
+
+ private static final long serialVersionUID = -2597673735297949111L;
+
+ public UMLTemplateParameterDocument(String name) {
+ super(name);
+ }
+
+ private ModelElement getParameter() {
+ Object target = getTarget();
+ if (target instanceof TemplateParameter) {
+ Object parameter = ( (TemplateParameter)target).getParameter();
+ if (parameter instanceof ModelElement) {
+ return (ModelElement)parameter;
+ }
+ throw new IllegalArgumentException(parameter.getClass().getName() +" is not a ModelElement");
+ }
+ throw new IllegalArgumentException(target.getClass().getName() +" is not a TemplateParameter");
+ }
+
+ @Override
+ protected void setProperty(String text) {
+ getParameter().setName(text);
+ }
+
+ @Override
+ protected String getProperty() {
+ return getParameter().getName();
+ }
+ }
+
+}
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=17013&r1=17012&r2=17013
==============================================================================
--- 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 2009-04-01 10:01:28-0700
@@ -347,6 +347,12 @@
UmlClass.class, Reception.class
});
+ // specifies valid elements for a classifier to contain
+ validContainmentMap.put(Classifier.class,
+ new Class<?>[] {
+ TemplateParameter.class
+ });
+
// specifies valid elements for an Interface to contain
validContainmentMap.put(Interface.class,
new Class<?>[] {
@@ -581,6 +587,16 @@
} else if (elementType == this.metaTypes.getExtensionPoint()) {
element = this.modelImpl.getUseCasesFactory().
buildExtensionPoint(container);
+ } else if (elementType == this.metaTypes.getTemplateParameter()) {
+ TemplateParameter t = (TemplateParameter) Model.getCoreFactory().createTemplateParameter();
+ DataType d = getCore().createDataType();
+ d.setName("T");
+ t.setParameter(d);
+ if (container instanceof ModelElement) {
+ t.setTemplate((ModelElement)container);
+ ((ModelElement) container).getTemplateParameter().add(t);
+ }
+ return t;
} else {
// build all other elements using existing buildNode
element = buildNode(elementType);
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=1508905
To unsubscribe from this discussion, e-mail: [[email protected]].