Author: bobtarling
Date: 2011-04-08 10:17:29-0700
New Revision: 19201
Modified:
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java
Log:
For drag and drop to diagram adjust position for scrollbars
Modified: trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java?view=diff&pathrev=19201&r1=19200&r2=19201
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java (original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/DnDJGraph.java 2011-04-08 10:17:29-0700
@@ -39,6 +39,7 @@
package org.argouml.uml.diagram.ui;
+import java.awt.Point;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
@@ -60,6 +61,7 @@
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.MutableGraphModel;
@@ -194,8 +196,8 @@
* java.awt.dnd.DropTargetDropEvent)
*/
public void drop(DropTargetDropEvent dropTargetDropEvent) {
+
Transferable tr = dropTargetDropEvent.getTransferable();
- //if the flavor is not supported, then reject the drop:
if (!tr.isDataFlavorSupported(
TransferableModelElements.UML_COLLECTION_FLAVOR)) {
dropTargetDropEvent.rejectDrop();
@@ -203,11 +205,21 @@
}
dropTargetDropEvent.acceptDrop(dropTargetDropEvent.getDropAction());
- //get the model elements that are being transfered.
- Collection modelElements;
try {
- ArgoDiagram diagram = DiagramUtils.getActiveDiagram();
- modelElements =
+ final UMLDiagram diagram =
+ (UMLDiagram) DiagramUtils.getActiveDiagram();
+ final Editor editor = Globals.curEditor();
+ final Layer layer = editor.getLayerManager().getActiveLayer();
+ final MutableGraphModel gm =
+ (MutableGraphModel) diagram.getGraphModel();
+ final Point point = dropTargetDropEvent.getLocation();
+
+ int dx = getViewPosition().x;
+ int dy = getViewPosition().y;
+ point.translate(dx, dy);
+
+ //get the model elements that are being transfered.
+ Collection modelElements =
(Collection) tr.getTransferData(
TransferableModelElements.UML_COLLECTION_FLAVOR);
@@ -215,19 +227,15 @@
while (i.hasNext()) {
/* TODO: Why not call UMLDiagram.doesAccept() first,
* like in ClassDiagramRenderer? */
- DiagramElement figNode = ((UMLDiagram ) diagram).drop(i.next(),
- dropTargetDropEvent.getLocation());
+ final DiagramElement figNode = diagram.drop(i.next(), point);
if (figNode != null && figNode instanceof Owned) {
- MutableGraphModel gm =
- (MutableGraphModel) diagram.getGraphModel();
Object owner = ((Owned) figNode).getOwner();
if (!gm.getNodes().contains(owner)) {
gm.getNodes().add(owner);
}
- Globals.curEditor().getLayerManager().getActiveLayer()
- .add((Fig) figNode);
+ layer.add((Fig) figNode);
if (figNode instanceof FigNode && figNode instanceof Owned) {
gm.addNodeRelatedEdges(((Owned) figNode).getOwner());
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2718163
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.