Author: bszanto
Date: 2008-08-02 14:10:19-0700
New Revision: 15494
Modified:
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java
branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java
branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java
Log:
All DnD/"Add to diagram" capabilities are integrated with the each diagram, thus fixing every know bug.
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/i18n/misc.properties 2008-08-02 14:10:19-0700
@@ -99,6 +99,7 @@
misc.link.stimuli = Link->Stimuli
misc.message.action = Message->Action
misc.message.click-on-diagram-to-add = Click on diagram to add {0}
+misc.message.click-on-diagram-to-add-as-cr = Click on diagram to add a new Classifier Role with {0} as base
misc.methods-of-class = Methods of Class
misc.model = Model
misc.model-element.behavior = ModelElement->Behavior
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/ActivityDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -27,8 +27,10 @@
import java.util.Map;
-import org.argouml.model.Model;
+import org.argouml.kernel.ProjectManager;
+import org.argouml.uml.diagram.ArgoDiagram;
import org.argouml.uml.diagram.state.ui.StateDiagramRenderer;
+import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigNode;
@@ -73,15 +75,11 @@
Map styleAttributes) {
FigNode figNode = null;
-
- if (Model.getFacade().isAPartition(node)) {
- figNode = new FigPartition(gm, node);
- } else if (Model.getFacade().isACallState(node)) {
- figNode = new FigCallState(gm, node);
- } else if (Model.getFacade().isAObjectFlowState(node)) {
- figNode = new FigObjectFlowState(gm, node);
- } else if (Model.getFacade().isASubactivityState(node)) {
- figNode = new FigSubactivityState(gm, node);
+ ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
+ .getActiveDiagram();
+ if (diag instanceof UMLDiagram
+ && ((UMLDiagram) diag).doesAccept(node)) {
+ figNode = ((UMLDiagram) diag).drop(node, null);
} else {
figNode = super.getFigNodeFor(gm, lay, node, styleAttributes);
if (figNode == null) return null;
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/activity/ui/UMLActivityDiagram.java 2008-08-02 14:10:19-0700
@@ -24,6 +24,7 @@
package org.argouml.uml.diagram.activity.ui;
+import java.awt.Point;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyVetoException;
import java.util.ArrayList;
@@ -36,6 +37,7 @@
import javax.swing.Action;
+import org.apache.log4j.Logger;
import org.argouml.i18n.Translator;
import org.argouml.model.ActivityGraphsHelper;
import org.argouml.model.DeleteInstanceEvent;
@@ -78,6 +80,12 @@
public class UMLActivityDiagram extends UMLDiagram {
/**
+ * Logger.
+ */
+ private static final Logger LOG =
+ Logger.getLogger(UMLActivityDiagram.class);
+
+ /**
* The UID.
*/
private static final long serialVersionUID = 6223128918989919230L;
@@ -744,5 +752,49 @@
private boolean isStateInPartition(Object state, Object partition) {
return Model.getFacade().getContents(partition).contains(state);
}
+
+ @Override
+ public boolean doesAccept(Object objectToAccept) {
+ if (Model.getFacade().isAPartition(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isACallState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAObjectFlowState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isASubactivityState(objectToAccept)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public FigNode drop(Object droppedObject, Point location) {
+ FigNode figNode = null;
+ GraphModel gm = getGraphModel();
+
+ if (Model.getFacade().isAPartition(droppedObject)) {
+ figNode = new FigPartition(gm, droppedObject);
+ } else if (Model.getFacade().isACallState(droppedObject)) {
+ figNode = new FigCallState(gm, droppedObject);
+ } else if (Model.getFacade().isAObjectFlowState(droppedObject)) {
+ figNode = new FigObjectFlowState(gm, droppedObject);
+ } else if (Model.getFacade().isASubactivityState(droppedObject)) {
+ figNode = new FigSubactivityState(gm, droppedObject);
+ }
+
+ if (figNode != null) {
+ // if location is null here the position of the new figNode is set
+ // after in org.tigris.gef.base.ModePlace.mousePressed(MouseEvent e)
+ if (location != null) {
+ figNode.setLocation(location.x, location.y);
+ }
+ LOG.debug("Dropped object " + droppedObject + " converted to "
+ + figNode);
+ } else {
+ LOG.debug("Dropped object NOT added " + figNode);
+ }
+
+ return figNode;
+ }
}
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/CollabDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -32,11 +32,9 @@
import org.argouml.uml.CommentEdge;
import org.argouml.uml.diagram.ArgoDiagram;
import org.argouml.uml.diagram.UmlDiagramRenderer;
-import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.static_structure.ui.FigEdgeNote;
import org.argouml.uml.diagram.ui.FigDependency;
import org.argouml.uml.diagram.ui.FigGeneralization;
-import org.argouml.uml.diagram.ui.FigMessage;
import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.GraphModel;
@@ -87,13 +85,7 @@
FigNode figNode = null;
ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
.getActiveDiagram();
- if (Model.getFacade().isAClassifierRole(node)) {
- figNode = new FigClassifierRole(gm, lay, node);
- } else if (Model.getFacade().isAMessage(node)) {
- figNode = new FigMessage(gm, lay, node);
- } else if (Model.getFacade().isAComment(node)) {
- figNode = new FigComment(gm, node);
- } else if (diag instanceof UMLDiagram
+ if (diag instanceof UMLDiagram
&& ((UMLDiagram) diag).doesAccept(node)) {
figNode = ((UMLDiagram) diag).drop(node, null);
} else {
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/collaboration/ui/UMLCollaborationDiagram.java 2008-08-02 14:10:19-0700
@@ -25,12 +25,10 @@
package org.argouml.uml.diagram.collaboration.ui;
import java.awt.Point;
-import java.awt.event.MouseEvent;
import java.beans.PropertyVetoException;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import javax.swing.Action;
@@ -38,6 +36,7 @@
import org.argouml.i18n.Translator;
import org.argouml.model.Model;
import org.argouml.uml.diagram.collaboration.CollabDiagramGraphModel;
+import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.ui.ActionAddAssociationRole;
import org.argouml.uml.diagram.ui.ActionAddMessage;
import org.argouml.uml.diagram.ui.ActionSetMode;
@@ -51,8 +50,6 @@
import org.tigris.gef.base.LayerPerspective;
import org.tigris.gef.base.LayerPerspectiveMutable;
import org.tigris.gef.base.ModeCreatePolyEdge;
-import org.tigris.gef.base.ModePlace;
-import org.tigris.gef.graph.GraphFactory;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.Fig;
import org.tigris.gef.presentation.FigNode;
@@ -435,14 +432,23 @@
/**
* A sequence diagram can accept all classifiers. It will add them as a new
- * Classifier Role with that classifier as a base.
+ * Classifier Role with that classifier as a base. All other accepted figs
+ * are added as is.
* @param objectToAccept
- * @return
+ * @return true if the diagram can accept the object, else false
* @see org.argouml.uml.diagram.ui.UMLDiagram#doesAccept(java.lang.Object)
*/
@Override
public boolean doesAccept(Object objectToAccept) {
- if (Model.getFacade().isAClassifier(objectToAccept)) {
+ if (Model.getFacade().isAClassifierRole(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAMessage(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComment(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAClassifierRole(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAClassifier(objectToAccept)) {
return true;
}
return false;
@@ -491,36 +497,41 @@
@Override
public FigNode drop(Object droppedObject, Point location) {
- FigClassifierRole newCR = null;
+ FigNode figNode = null;
+ GraphModel gm = getGraphModel();
+ Layer lay = Globals.curEditor().getLayerManager().getActiveLayer();
+
if (Model.getFacade().isAClassifierRole(droppedObject)) {
- newCR = makeNewFigCR(droppedObject, location);
+ figNode = new FigClassifierRole(gm, lay, droppedObject);
+ } else if (Model.getFacade().isAMessage(droppedObject)) {
+ figNode = new FigMessage(gm, lay, droppedObject);
+ } else if (Model.getFacade().isAComment(droppedObject)) {
+ figNode = new FigComment(gm, droppedObject);
+ } else if (Model.getFacade().isAClassifierRole(droppedObject)) {
+ figNode = makeNewFigCR(droppedObject, location);
} else if (Model.getFacade().isAClassifier(droppedObject)){
- newCR = makeNewFigCR(makeNewCR(droppedObject), location);
+ figNode = makeNewFigCR(makeNewCR(droppedObject), location);
}
- if (newCR != null) {
- add(newCR);
+ if (figNode != null) {
LOG.debug("Dropped object " + droppedObject + " converted to "
- + newCR);
+ + figNode);
} else {
LOG.debug("Dropped object NOT added " + droppedObject);
}
- return newCR;
+ return figNode;
}
@Override
public String getInstructions(Object droppedObject) {
- if (Model.getFacade().isAClassifier(droppedObject)) {
- //TODO: i18n
- return "Click on diagram to add as a new Classifier Role";
+ if (Model.getFacade().isAClassifierRole(droppedObject)) {
+ return super.getInstructions(droppedObject);
+ } else if (Model.getFacade().isAClassifier(droppedObject)) {
+ return Translator.localize(
+ "misc.message.click-on-diagram-to-add-as-cr",
+ new Object[] {Model.getFacade().toString(droppedObject)});
}
return super.getInstructions(droppedObject);
}
-
-
- @Override
- public ModePlace getModePlace(GraphFactory gf, String instructions) {
- return new ModePlace(gf, instructions);
- }
/**
* The UID.
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/DeploymentDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -28,20 +28,19 @@
import java.util.Map;
import org.apache.log4j.Logger;
+import org.argouml.kernel.ProjectManager;
import org.argouml.model.Model;
import org.argouml.uml.CommentEdge;
+import org.argouml.uml.diagram.ArgoDiagram;
import org.argouml.uml.diagram.UmlDiagramRenderer;
-import org.argouml.uml.diagram.static_structure.ui.FigClass;
-import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.static_structure.ui.FigEdgeNote;
-import org.argouml.uml.diagram.static_structure.ui.FigInterface;
import org.argouml.uml.diagram.static_structure.ui.FigLink;
import org.argouml.uml.diagram.ui.FigAssociation;
import org.argouml.uml.diagram.ui.FigAssociationClass;
import org.argouml.uml.diagram.ui.FigAssociationEnd;
import org.argouml.uml.diagram.ui.FigDependency;
import org.argouml.uml.diagram.ui.FigGeneralization;
-import org.argouml.uml.diagram.ui.FigNodeAssociation;
+import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigEdge;
@@ -74,29 +73,15 @@
FigNode figNode = null;
- if (Model.getFacade().isANode(node)) {
- figNode = new FigMNode(gm, node);
- } else if (Model.getFacade().isAAssociation(node)) {
- figNode = new FigNodeAssociation(gm, node);
- } else if (Model.getFacade().isANodeInstance(node)) {
- figNode = new FigNodeInstance(gm, node);
- } else if (Model.getFacade().isAComponent(node)) {
- figNode = new FigComponent(gm, node);
- } else if (Model.getFacade().isAComponentInstance(node)) {
- figNode = new FigComponentInstance(gm, node);
- } else if (Model.getFacade().isAClass(node)) {
- figNode = new FigClass(gm, node);
- } else if (Model.getFacade().isAInterface(node)) {
- figNode = new FigInterface(gm, node);
- } else if (Model.getFacade().isAObject(node)) {
- figNode = new FigObject(gm, node);
- } else if (Model.getFacade().isAComment(node)) {
- figNode = new FigComment(gm, node);
+ ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
+ .getActiveDiagram();
+ if (diag instanceof UMLDiagram
+ && ((UMLDiagram) diag).doesAccept(node)) {
+ figNode = ((UMLDiagram) diag).drop(node, null);
} else {
LOG.debug("TODO: DeploymentDiagramRenderer getFigNodeFor");
return null;
}
-
lay.add(figNode);
return figNode;
}
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/deployment/ui/UMLDeploymentDiagram.java 2008-08-02 14:10:19-0700
@@ -24,6 +24,7 @@
package org.argouml.uml.diagram.deployment.ui;
+import java.awt.Point;
import java.beans.PropertyVetoException;
import java.util.ArrayList;
import java.util.Collection;
@@ -36,14 +37,19 @@
import org.argouml.model.Model;
import org.argouml.ui.CmdCreateNode;
import org.argouml.uml.diagram.deployment.DeploymentDiagramGraphModel;
+import org.argouml.uml.diagram.static_structure.ui.FigClass;
+import org.argouml.uml.diagram.static_structure.ui.FigComment;
+import org.argouml.uml.diagram.static_structure.ui.FigInterface;
import org.argouml.uml.diagram.ui.ActionSetAddAssociationMode;
import org.argouml.uml.diagram.ui.ActionSetMode;
+import org.argouml.uml.diagram.ui.FigNodeAssociation;
import org.argouml.uml.diagram.ui.RadioAction;
import org.argouml.uml.diagram.ui.UMLDiagram;
import org.argouml.util.ToolBarUtility;
import org.tigris.gef.base.LayerPerspective;
import org.tigris.gef.base.LayerPerspectiveMutable;
import org.tigris.gef.base.ModeCreatePolyEdge;
+import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigNode;
/**
@@ -519,5 +525,69 @@
}
}
}
+
+ @Override
+ public boolean doesAccept(Object objectToAccept) {
+ if (Model.getFacade().isANode(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAAssociation(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isANodeInstance(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComponent(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComponentInstance(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAClass(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAInterface(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAObject(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComment(objectToAccept)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public FigNode drop(Object droppedObject, Point location) {
+ FigNode figNode = null;
+ GraphModel gm = getGraphModel();
+
+ if (Model.getFacade().isANode(droppedObject)) {
+ figNode = new FigMNode(gm, droppedObject);
+ } else if (Model.getFacade().isAAssociation(droppedObject)) {
+ figNode = new FigNodeAssociation(gm, droppedObject);
+ } else if (Model.getFacade().isANodeInstance(droppedObject)) {
+ figNode = new FigNodeInstance(gm, droppedObject);
+ } else if (Model.getFacade().isAComponent(droppedObject)) {
+ figNode = new FigComponent(gm, droppedObject);
+ } else if (Model.getFacade().isAComponentInstance(droppedObject)) {
+ figNode = new FigComponentInstance(gm, droppedObject);
+ } else if (Model.getFacade().isAClass(droppedObject)) {
+ figNode = new FigClass(gm, droppedObject);
+ } else if (Model.getFacade().isAInterface(droppedObject)) {
+ figNode = new FigInterface(gm, droppedObject);
+ } else if (Model.getFacade().isAObject(droppedObject)) {
+ figNode = new FigObject(gm, droppedObject);
+ } else if (Model.getFacade().isAComment(droppedObject)) {
+ figNode = new FigComment(gm, droppedObject);
+ }
+
+ if (figNode != null) {
+ // if location is null here the position of the new figNode is set
+ // after in org.tigris.gef.base.ModePlace.mousePressed(MouseEvent e)
+ if (location != null) {
+ figNode.setLocation(location.x, location.y);
+ }
+ LOG.debug("Dropped object " + droppedObject + " converted to "
+ + figNode);
+ } else {
+ LOG.debug("Dropped object NOT added " + figNode);
+ }
+
+ return figNode;
+ }
}
\ No newline at end of file
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/StateDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -27,12 +27,13 @@
import java.util.Map;
import org.apache.log4j.Logger;
+import org.argouml.kernel.ProjectManager;
import org.argouml.model.Model;
import org.argouml.uml.CommentEdge;
+import org.argouml.uml.diagram.ArgoDiagram;
import org.argouml.uml.diagram.UmlDiagramRenderer;
-import org.argouml.uml.diagram.activity.ui.FigActionState;
-import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.static_structure.ui.FigEdgeNote;
+import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigEdge;
@@ -80,55 +81,12 @@
Map styleAttributes) {
FigNode figNode = null;
-
- if (Model.getFacade().isAActionState(node)) {
- figNode = new FigActionState(gm, node);
- } else if (Model.getFacade().isAFinalState(node)) {
- figNode = new FigFinalState(gm, node);
- } else if (Model.getFacade().isAStubState(node)) {
- figNode = new FigStubState(gm, node);
- } else if (Model.getFacade().isASubmachineState(node)) {
- figNode = new FigSubmachineState(gm, node);
- } else if (Model.getFacade().isACompositeState(node)) {
- figNode = new FigCompositeState(gm, node);
- } else if (Model.getFacade().isASynchState(node)) {
- figNode = new FigSynchState(gm, node);
- } else if (Model.getFacade().isAState(node)) {
- figNode = new FigSimpleState(gm, node);
- } else if (Model.getFacade().isAComment(node)) {
- figNode = new FigComment(gm, node);
- } else if (Model.getFacade().isAPseudostate(node)) {
- Object pState = node;
- Object kind = Model.getFacade().getKind(pState);
- if (kind == null) {
- LOG.warn("found a null type pseudostate");
- return null;
- }
- if (kind.equals(Model.getPseudostateKind().getInitial())) {
- figNode = new FigInitialState(gm, node);
- } else if (kind.equals(
- Model.getPseudostateKind().getChoice())) {
- figNode = new FigBranchState(gm, node);
- } else if (kind.equals(
- Model.getPseudostateKind().getJunction())) {
- figNode = new FigJunctionState(gm, node);
- } else if (kind.equals(
- Model.getPseudostateKind().getFork())) {
- figNode = new FigForkState(gm, node);
- } else if (kind.equals(
- Model.getPseudostateKind().getJoin())) {
- figNode = new FigJoinState(gm, node);
- } else if (kind.equals(
- Model.getPseudostateKind().getShallowHistory())) {
- figNode = new FigShallowHistoryState(gm, node);
- } else if (kind.equals(
- Model.getPseudostateKind().getDeepHistory())) {
- figNode = new FigDeepHistoryState(gm, node);
- } else {
- LOG.warn("found a type not known");
- }
- }
- if (figNode == null) {
+ ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
+ .getActiveDiagram();
+ if (diag instanceof UMLDiagram
+ && ((UMLDiagram) diag).doesAccept(node)) {
+ figNode = ((UMLDiagram) diag).drop(node, null);
+ } else {
LOG.debug("TODO: StateDiagramRenderer getFigNodeFor");
return null;
}
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/state/ui/UMLStateDiagram.java 2008-08-02 14:10:19-0700
@@ -24,6 +24,7 @@
package org.argouml.uml.diagram.state.ui;
+import java.awt.Point;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyVetoException;
import java.util.Collection;
@@ -37,7 +38,9 @@
import org.argouml.model.Model;
import org.argouml.ui.CmdCreateNode;
import org.argouml.uml.diagram.UMLMutableGraphSupport;
+import org.argouml.uml.diagram.activity.ui.FigActionState;
import org.argouml.uml.diagram.state.StateDiagramGraphModel;
+import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.ui.ActionSetMode;
import org.argouml.uml.diagram.ui.RadioAction;
import org.argouml.uml.diagram.ui.UMLDiagram;
@@ -54,6 +57,7 @@
import org.tigris.gef.base.LayerPerspective;
import org.tigris.gef.base.LayerPerspectiveMutable;
import org.tigris.gef.base.ModeCreatePolyEdge;
+import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigNode;
@@ -727,4 +731,95 @@
// Do nothing.
}
+ @Override
+ public boolean doesAccept(Object objectToAccept) {
+ if (Model.getFacade().isAActionState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAFinalState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAStubState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isASubmachineState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isACompositeState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isASynchState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAState(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComment(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAPseudostate(objectToAccept)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public FigNode drop(Object droppedObject, Point location) {
+ FigNode figNode = null;
+ GraphModel gm = getGraphModel();
+
+ if (Model.getFacade().isAActionState(droppedObject)) {
+ figNode = new FigActionState(gm, droppedObject);
+ } else if (Model.getFacade().isAFinalState(droppedObject)) {
+ figNode = new FigFinalState(gm, droppedObject);
+ } else if (Model.getFacade().isAStubState(droppedObject)) {
+ figNode = new FigStubState(gm, droppedObject);
+ } else if (Model.getFacade().isASubmachineState(droppedObject)) {
+ figNode = new FigSubmachineState(gm, droppedObject);
+ } else if (Model.getFacade().isACompositeState(droppedObject)) {
+ figNode = new FigCompositeState(gm, droppedObject);
+ } else if (Model.getFacade().isASynchState(droppedObject)) {
+ figNode = new FigSynchState(gm, droppedObject);
+ } else if (Model.getFacade().isAState(droppedObject)) {
+ figNode = new FigSimpleState(gm, droppedObject);
+ } else if (Model.getFacade().isAComment(droppedObject)) {
+ figNode = new FigComment(gm, droppedObject);
+ } else if (Model.getFacade().isAPseudostate(droppedObject)) {
+ Object pState = droppedObject;
+ Object kind = Model.getFacade().getKind(pState);
+ if (kind == null) {
+ LOG.warn("found a null type pseudostate");
+ return null;
+ }
+ if (kind.equals(Model.getPseudostateKind().getInitial())) {
+ figNode = new FigInitialState(gm, droppedObject);
+ } else if (kind.equals(
+ Model.getPseudostateKind().getChoice())) {
+ figNode = new FigBranchState(gm, droppedObject);
+ } else if (kind.equals(
+ Model.getPseudostateKind().getJunction())) {
+ figNode = new FigJunctionState(gm, droppedObject);
+ } else if (kind.equals(
+ Model.getPseudostateKind().getFork())) {
+ figNode = new FigForkState(gm, droppedObject);
+ } else if (kind.equals(
+ Model.getPseudostateKind().getJoin())) {
+ figNode = new FigJoinState(gm, droppedObject);
+ } else if (kind.equals(
+ Model.getPseudostateKind().getShallowHistory())) {
+ figNode = new FigShallowHistoryState(gm, droppedObject);
+ } else if (kind.equals(
+ Model.getPseudostateKind().getDeepHistory())) {
+ figNode = new FigDeepHistoryState(gm, droppedObject);
+ } else {
+ LOG.warn("found a type not known");
+ }
+ }
+
+ if (figNode != null) {
+ // if location is null here the position of the new figNode is set
+ // after in org.tigris.gef.base.ModePlace.mousePressed(MouseEvent e)
+ if (location != null) {
+ figNode.setLocation(location.x, location.y);
+ }
+ LOG.debug("Dropped object " + droppedObject + " converted to "
+ + figNode);
+ } else {
+ LOG.debug("Dropped object NOT added " + figNode);
+ }
+
+ return figNode;
+ }
}
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/ClassDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -29,29 +29,24 @@
import java.util.Map;
import org.apache.log4j.Logger;
+import org.argouml.kernel.ProjectManager;
import org.argouml.model.CoreFactory;
import org.argouml.model.Model;
import org.argouml.uml.CommentEdge;
+import org.argouml.uml.diagram.ArgoDiagram;
import org.argouml.uml.diagram.GraphChangeAdapter;
import org.argouml.uml.diagram.UmlDiagramRenderer;
-import org.argouml.uml.diagram.deployment.ui.FigComponent;
-import org.argouml.uml.diagram.deployment.ui.FigComponentInstance;
-import org.argouml.uml.diagram.deployment.ui.FigMNode;
-import org.argouml.uml.diagram.deployment.ui.FigNodeInstance;
-import org.argouml.uml.diagram.deployment.ui.FigObject;
import org.argouml.uml.diagram.ui.FigAssociation;
import org.argouml.uml.diagram.ui.FigAssociationClass;
import org.argouml.uml.diagram.ui.FigAssociationEnd;
import org.argouml.uml.diagram.ui.FigDependency;
import org.argouml.uml.diagram.ui.FigEdgeModelElement;
import org.argouml.uml.diagram.ui.FigGeneralization;
-import org.argouml.uml.diagram.ui.FigNodeAssociation;
import org.argouml.uml.diagram.ui.FigNodeModelElement;
import org.argouml.uml.diagram.ui.FigPermission;
import org.argouml.uml.diagram.ui.FigRealization;
import org.argouml.uml.diagram.ui.FigUsage;
-import org.argouml.uml.diagram.use_case.ui.FigActor;
-import org.argouml.uml.diagram.use_case.ui.FigUseCase;
+import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigEdge;
@@ -114,44 +109,13 @@
if (node == null) {
throw new IllegalArgumentException("A node must be supplied");
}
- if (Model.getFacade().isAClass(node)) {
- figNode = new FigClass(gm, node);
- } else if (Model.getFacade().isAInterface(node)) {
- figNode = new FigInterface(gm, node);
- } else if (Model.getFacade().isAModel(node)) {
- figNode = new FigModel(gm, node);
- } else if (Model.getFacade().isASubsystem(node)) {
- figNode = new FigSubsystem(gm, node);
- } else if (Model.getFacade().isAPackage(node)) {
- figNode = new FigPackage(gm, node);
- } else if (Model.getFacade().isAComment(node)) {
- figNode = new FigComment(gm, node);
- } else if (Model.getFacade().isAAssociation(node)) {
- figNode = new FigNodeAssociation(gm, node);
- } else if (Model.getFacade().isAEnumeration(node)) {
- figNode = new FigEnumeration(gm, node);
- } else if (Model.getFacade().isADataType(node)) {
- figNode = new FigDataType(gm, node);
- } else if (Model.getFacade().isAStereotype(node)) {
- figNode = new FigStereotypeDeclaration(gm, node);
- } else if (Model.getFacade().isAException(node)) {
- figNode = new FigException(gm, node);
- } else if (Model.getFacade().isASignal(node)) {
- figNode = new FigSignal(gm, node);
- } else if (Model.getFacade().isAActor(node)) {
- figNode = new FigActor(gm, node);
- } else if (Model.getFacade().isAUseCase(node)) {
- figNode = new FigUseCase(gm, node);
- } else if (Model.getFacade().isAObject(node)) {
- figNode = new FigObject(gm, node);
- } else if (Model.getFacade().isANodeInstance(node)) {
- figNode = new FigNodeInstance(gm, node);
- } else if (Model.getFacade().isAComponentInstance(node)) {
- figNode = new FigComponentInstance(gm, node);
- } else if (Model.getFacade().isANode(node)) {
- figNode = new FigMNode(gm, node);
- } else if (Model.getFacade().isAComponent(node)) {
- figNode = new FigComponent(gm, node);
+ ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
+ .getActiveDiagram();
+ if (diag instanceof UMLDiagram
+ && ((UMLDiagram) diag).doesAccept(node)) {
+ figNode = (FigNodeModelElement)
+ ((UMLDiagram) diag).drop(node, null);
+
} else {
LOG.error("TODO: ClassDiagramRenderer getFigNodeFor " + node);
throw new IllegalArgumentException(
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/static_structure/ui/UMLClassDiagram.java 2008-08-02 14:10:19-0700
@@ -24,6 +24,7 @@
package org.argouml.uml.diagram.static_structure.ui;
+import java.awt.Point;
import java.beans.PropertyVetoException;
import java.util.Collection;
@@ -32,16 +33,25 @@
import org.apache.log4j.Logger;
import org.argouml.i18n.Translator;
import org.argouml.model.Model;
+import org.argouml.uml.diagram.deployment.ui.FigComponent;
+import org.argouml.uml.diagram.deployment.ui.FigComponentInstance;
+import org.argouml.uml.diagram.deployment.ui.FigMNode;
+import org.argouml.uml.diagram.deployment.ui.FigNodeInstance;
+import org.argouml.uml.diagram.deployment.ui.FigObject;
import org.argouml.uml.diagram.static_structure.ClassDiagramGraphModel;
+import org.argouml.uml.diagram.ui.FigNodeAssociation;
import org.argouml.uml.diagram.ui.ModeCreateDependency;
import org.argouml.uml.diagram.ui.ModeCreatePermission;
import org.argouml.uml.diagram.ui.ModeCreateUsage;
import org.argouml.uml.diagram.ui.UMLDiagram;
+import org.argouml.uml.diagram.use_case.ui.FigActor;
+import org.argouml.uml.diagram.use_case.ui.FigUseCase;
import org.argouml.uml.ui.foundation.core.ActionAddAttribute;
import org.argouml.uml.ui.foundation.core.ActionAddOperation;
import org.argouml.util.ToolBarUtility;
import org.tigris.gef.base.LayerPerspective;
import org.tigris.gef.base.LayerPerspectiveMutable;
+import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigNode;
/**
@@ -601,4 +611,108 @@
// Do nothing.
}
+ @Override
+ public boolean doesAccept(Object objectToAccept) {
+ if (Model.getFacade().isAClass(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAInterface(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAModel(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isASubsystem(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAPackage(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComment(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAAssociation(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAEnumeration(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isADataType(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAStereotype(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAException(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isASignal(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAActor(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAUseCase(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAObject(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isANodeInstance(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComponentInstance(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isANode(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComponent(objectToAccept)) {
+ return true;
+ }
+ return false;
+
+ }
+
+ @Override
+ public FigNode drop(Object droppedObject, Point location) {
+ FigNode figNode = null;
+ GraphModel gm = getGraphModel();
+
+ if (Model.getFacade().isAClass(droppedObject)) {
+ figNode = new FigClass(gm, droppedObject);
+ } else if (Model.getFacade().isAInterface(droppedObject)) {
+ figNode = new FigInterface(gm, droppedObject);
+ } else if (Model.getFacade().isAModel(droppedObject)) {
+ figNode = new FigModel(gm, droppedObject);
+ } else if (Model.getFacade().isASubsystem(droppedObject)) {
+ figNode = new FigSubsystem(gm, droppedObject);
+ } else if (Model.getFacade().isAPackage(droppedObject)) {
+ figNode = new FigPackage(gm, droppedObject);
+ } else if (Model.getFacade().isAComment(droppedObject)) {
+ figNode = new FigComment(gm, droppedObject);
+ } else if (Model.getFacade().isAAssociation(droppedObject)) {
+ figNode = new FigNodeAssociation(gm, droppedObject);
+ } else if (Model.getFacade().isAEnumeration(droppedObject)) {
+ figNode = new FigEnumeration(gm, droppedObject);
+ } else if (Model.getFacade().isADataType(droppedObject)) {
+ figNode = new FigDataType(gm, droppedObject);
+ } else if (Model.getFacade().isAStereotype(droppedObject)) {
+ figNode = new FigStereotypeDeclaration(gm, droppedObject);
+ } else if (Model.getFacade().isAException(droppedObject)) {
+ figNode = new FigException(gm, droppedObject);
+ } else if (Model.getFacade().isASignal(droppedObject)) {
+ figNode = new FigSignal(gm, droppedObject);
+ } else if (Model.getFacade().isAActor(droppedObject)) {
+ figNode = new FigActor(gm, droppedObject);
+ } else if (Model.getFacade().isAUseCase(droppedObject)) {
+ figNode = new FigUseCase(gm, droppedObject);
+ } else if (Model.getFacade().isAObject(droppedObject)) {
+ figNode = new FigObject(gm, droppedObject);
+ } else if (Model.getFacade().isANodeInstance(droppedObject)) {
+ figNode = new FigNodeInstance(gm, droppedObject);
+ } else if (Model.getFacade().isAComponentInstance(droppedObject)) {
+ figNode = new FigComponentInstance(gm, droppedObject);
+ } else if (Model.getFacade().isANode(droppedObject)) {
+ figNode = new FigMNode(gm, droppedObject);
+ } else if (Model.getFacade().isAComponent(droppedObject)) {
+ figNode = new FigComponent(gm, droppedObject);
+ }
+
+ if (figNode != null) {
+ // if location is null here the position of the new figNode is set
+ // after in org.tigris.gef.base.ModePlace.mousePressed(MouseEvent e)
+ if (location != null) {
+ figNode.setLocation(location.x, location.y);
+ }
+ LOG.debug("Dropped object " + droppedObject + " converted to "
+ + figNode);
+ } else {
+ LOG.debug("Dropped object NOT added " + figNode);
+ }
+ return figNode;
+ }
+
} /* end class UMLClassDiagram */
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/ActionAddExistingNode.java 2008-08-02 14:10:19-0700
@@ -27,8 +27,6 @@
import java.awt.event.ActionEvent;
-import javax.swing.Action;
-
import org.argouml.kernel.ProjectManager;
import org.argouml.ui.targetmanager.TargetManager;
import org.argouml.uml.diagram.ArgoDiagram;
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/AddExistingNodeCommand.java 2008-08-02 14:10:19-0700
@@ -127,6 +127,7 @@
getModePlace(this, instructions);
placeMode.setAddRelatedEdges(true);
} else {
+ // TODO: work here !
instructions =
Translator.localize(
"misc.message.click-on-diagram-to-add",
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java 2008-08-02 14:10:19-0700
@@ -40,11 +40,15 @@
import org.argouml.kernel.ProjectManager;
import org.argouml.ui.TransferableModelElements;
import org.argouml.uml.diagram.ArgoDiagram;
+import org.argouml.uml.diagram.use_case.ui.UMLUseCaseDiagram;
import org.tigris.gef.base.Diagram;
import org.tigris.gef.base.Editor;
+import org.tigris.gef.base.Globals;
+import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.ConnectionConstrainer;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.graph.presentation.JGraph;
+import org.tigris.gef.presentation.FigNode;
/**
* This is a JGraph with Drag and Drop capabilities.
@@ -194,8 +198,19 @@
Iterator i = modelElements.iterator();
while (i.hasNext()) {
- ((UMLDiagram )diagram).drop(i.next(),
+ FigNode figNode = ((UMLDiagram )diagram).drop(i.next(),
dropTargetDropEvent.getLocation());
+
+// if (diagram instanceof UMLUseCaseDiagram) {
+ GraphModel gm = diagram.getGraphModel();
+ if (!gm.getNodes().contains(figNode.getOwner())) {
+ gm.getNodes().add(figNode.getOwner());
+ }
+
+ Globals.curEditor().getLayerManager().getActiveLayer()
+ .add(figNode);
+// }
+
}
// ActionAddExistingNodes.addNodes(modelElements,
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/ui/UMLDiagram.java 2008-08-02 14:10:19-0700
@@ -593,7 +593,8 @@
* @return The instructions.
*/
public String getInstructions(Object droppedObject) {
- return "";
+ return Translator.localize("misc.message.click-on-diagram-to-add",
+ new Object[] {Model.getFacade().toString(droppedObject),});
}
/**
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UMLUseCaseDiagram.java 2008-08-02 14:10:19-0700
@@ -24,6 +24,7 @@
package org.argouml.uml.diagram.use_case.ui;
+import java.awt.Point;
import java.beans.PropertyVetoException;
import java.util.Collection;
import java.util.HashSet;
@@ -34,6 +35,8 @@
import org.argouml.i18n.Translator;
import org.argouml.model.Model;
import org.argouml.ui.CmdCreateNode;
+import org.argouml.uml.diagram.static_structure.ui.FigComment;
+import org.argouml.uml.diagram.static_structure.ui.FigPackage;
import org.argouml.uml.diagram.ui.ActionAddExtensionPoint;
import org.argouml.uml.diagram.ui.ActionSetAddAssociationMode;
import org.argouml.uml.diagram.ui.ActionSetMode;
@@ -44,6 +47,7 @@
import org.tigris.gef.base.LayerPerspective;
import org.tigris.gef.base.LayerPerspectiveMutable;
import org.tigris.gef.base.ModeCreatePolyEdge;
+import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigNode;
/**
@@ -463,5 +467,47 @@
FigNode oldEncloser, FigNode newEncloser) {
// Do nothing.
}
+
+ @Override
+ public boolean doesAccept(Object objectToAccept) {
+ if (Model.getFacade().isAActor(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAUseCase(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAComment(objectToAccept)) {
+ return true;
+ } else if (Model.getFacade().isAPackage(objectToAccept)) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public FigNode drop(Object droppedObject, Point location) {
+ FigNode figNode = null;
+ GraphModel gm = getGraphModel();
+
+ if (Model.getFacade().isAActor(droppedObject)) {
+ figNode = new FigActor(gm, droppedObject);
+ } else if (Model.getFacade().isAUseCase(droppedObject)) {
+ figNode = new FigUseCase(gm, droppedObject);
+ } else if (Model.getFacade().isAComment(droppedObject)) {
+ figNode = new FigComment(gm, droppedObject);
+ } else if (Model.getFacade().isAPackage(droppedObject)) {
+ figNode = new FigPackage(gm, droppedObject);
+ }
+ if (figNode != null) {
+ // if location is null here the position of the new figNode is set
+ // after in org.tigris.gef.base.ModePlace.mousePressed(MouseEvent e)
+ if (location != null) {
+ figNode.setLocation(location.x, location.y);
+ }
+ LOG.debug("Dropped object " + droppedObject + " converted to "
+ + figNode);
+ } else {
+ LOG.debug("Dropped object NOT added " + figNode);
+ }
+ return figNode;
+ }
}
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-app/src/org/argouml/uml/diagram/use_case/ui/UseCaseDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -27,18 +27,19 @@
import java.util.Map;
import org.apache.log4j.Logger;
+import org.argouml.kernel.ProjectManager;
import org.argouml.model.Model;
import org.argouml.uml.CommentEdge;
+import org.argouml.uml.diagram.ArgoDiagram;
import org.argouml.uml.diagram.GraphChangeAdapter;
import org.argouml.uml.diagram.UmlDiagramRenderer;
-import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.static_structure.ui.FigEdgeNote;
-import org.argouml.uml.diagram.static_structure.ui.FigPackage;
import org.argouml.uml.diagram.ui.FigAssociation;
import org.argouml.uml.diagram.ui.FigDependency;
import org.argouml.uml.diagram.ui.FigEdgeModelElement;
import org.argouml.uml.diagram.ui.FigGeneralization;
import org.argouml.uml.diagram.ui.FigNodeModelElement;
+import org.argouml.uml.diagram.ui.UMLDiagram;
import org.tigris.gef.base.Layer;
import org.tigris.gef.graph.GraphModel;
import org.tigris.gef.presentation.FigEdge;
@@ -100,21 +101,19 @@
// Create a new version of the relevant fig
- if (Model.getFacade().isAActor(node)) {
- figNode = new FigActor(gm, node);
- } else if (Model.getFacade().isAUseCase(node)) {
- figNode = new FigUseCase(gm, node);
- } else if (Model.getFacade().isAComment(node)) {
- figNode = new FigComment(gm, node);
- } else if (Model.getFacade().isAPackage(node)) {
- figNode = new FigPackage(gm, node);
+ ArgoDiagram diag = ProjectManager.getManager().getCurrentProject()
+ .getActiveDiagram();
+ if (diag instanceof UMLDiagram
+ && ((UMLDiagram) diag).doesAccept(node)) {
+ figNode = (FigNodeModelElement) ((UMLDiagram) diag).drop(node, null);
+
} else {
LOG.debug(this.getClass().toString()
+ ": getFigNodeFor(" + gm.toString() + ", "
+ lay.toString() + ", " + node.toString()
+ ") - cannot create this sort of node.");
return null;
- // TODO: Shouldn't we throw an excdeption here?!?!
+ // TODO: Shouldn't we throw an exception here?!?!
}
lay.add(figNode);
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/SequenceDiagramRenderer.java 2008-08-02 14:10:19-0700
@@ -64,19 +64,11 @@
.getActiveDiagram();
if (diag instanceof UMLDiagram
&& ((UMLDiagram) diag).doesAccept(node)) {
- // if the user tries to add a classifier, a new CR should be created
- // with the classifier as a Base. This is done by
- // the diagram via the drop method.
result = ((UMLDiagram) diag).drop(node, null);
} else {
- if (Model.getFacade().isAClassifierRole(node)) {
- result = new FigClassifierRole(node);
- } else if (Model.getFacade().isAComment(node)) {
- result = new FigComment(gm, node);
- }
- LOG.debug("SequenceDiagramRenderer getFigNodeFor " + result);
- lay.add(result);
+ return null;
}
+ lay.add(result);
return result;
}
Modified: branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java?view=diff&rev=15494&p1=branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java&p2=branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java&r1=15493&r2=15494
==============================================================================
--- branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java (original)
+++ branches/gsoc2008/feature1_5138_bszanto/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/UMLSequenceDiagram.java 2008-08-02 14:10:19-0700
@@ -35,6 +35,7 @@
import org.argouml.model.Model;
import org.argouml.uml.diagram.sequence2.ActionSetAddMessageMode;
import org.argouml.uml.diagram.sequence2.SequenceDiagramGraphModel;
+import org.argouml.uml.diagram.static_structure.ui.FigComment;
import org.argouml.uml.diagram.ui.ActionSetMode;
import org.argouml.uml.diagram.ui.RadioAction;
import org.argouml.uml.diagram.ui.UMLDiagram;
@@ -259,27 +260,32 @@
@Override
public FigNode drop(Object droppedObject, Point location) {
- FigClassifierRole newCR = null;
- if (Model.getFacade().isAClassifierRole(droppedObject)) {
- newCR = makeNewFigCR(droppedObject, location);
+ FigNode figNode = null;
+
+ if (Model.getFacade().isAComment(droppedObject)) {
+ figNode = new FigComment(getGraphModel(), droppedObject);
+ } else if (Model.getFacade().isAClassifierRole(droppedObject)) {
+ figNode = makeNewFigCR(droppedObject, location);
} else if (Model.getFacade().isAClassifier(droppedObject)){
- newCR = makeNewFigCR(makeNewCR(droppedObject), location);
+ figNode = makeNewFigCR(makeNewCR(droppedObject), location);
}
- if (newCR != null) {
- add(newCR);
+ if (figNode != null) {
LOG.debug("Dropped object " + droppedObject + " converted to "
- + newCR);
+ + figNode);
} else {
LOG.debug("Dropped object NOT added " + droppedObject);
}
- return newCR;
+ return figNode;
}
@Override
public String getInstructions(Object droppedObject) {
- if (Model.getFacade().isAClassifier(droppedObject)) {
- //TODO: i18n
- return "Click on diagram to add as a new Classifier Role";
+ if (Model.getFacade().isAClassifierRole(droppedObject)) {
+ return super.getInstructions(droppedObject);
+ } else if (Model.getFacade().isAClassifier(droppedObject)) {
+ return Translator.localize(
+ "misc.message.click-on-diagram-to-add-as-cr",
+ new Object[] {Model.getFacade().toString(droppedObject)});
}
return super.getInstructions(droppedObject);
}
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.