
commonsrc.ingenias.editor.widget.DnDJTreeObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
The INGENIAS Meta-Editor core. It is a set of facilities to generate an editor from a detailed xml description
The newest version!
/*
This code has been extracted and modified from an original
work from Rob Kenworthy and an example from Sheetal Gupta
(http://java.sun.com/docs/books/tutorial/dnd/sheetal.html)
*/
package ingenias.editor.widget;
import ingenias.editor.entities.Entity;
import ingenias.editor.events.DndObjectTreeTransferable;
import ingenias.generator.browser.Browser;
import ingenias.generator.browser.BrowserImp;
import ingenias.generator.browser.GraphEntity;
import ingenias.generator.browser.GraphEntityImp;
import javax.swing.JTree;
import java.awt.dnd.*;
import java.awt.Point;
import java.awt.datatransfer.*;
import java.awt.Cursor;
import java.io.*;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.*;
import java.awt.Component;
import org.jgraph.JGraph;
import org.jgraph.graph.AttributeMap;
import org.jgraph.graph.CellView;
import org.jgraph.graph.ConnectionSet;
import org.jgraph.graph.DefaultGraphCell;
import org.jgraph.graph.DefaultGraphModel;
import org.jgraph.graph.GraphConstants;
import org.jgraph.graph.GraphLayoutCache;
import org.jgraph.graph.GraphModel;
import org.jgraph.graph.GraphTransferable;
import org.jgraph.graph.ParentMap;
import org.jgraph.plaf.basic.BasicGraphUI;
import javax.swing.JViewport;
import java.awt.*;
import java.awt.*;
import java.awt.dnd.*;
import java.awt.event.*;
import java.awt.geom.Rectangle2D;
import java.awt.datatransfer.*;
import javax.swing.*;
import java.util.*;
import java.awt.Point;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
import org.jgraph.JGraph;
public class DnDJTreeObject extends JTree implements java.io.Serializable,
DragSourceListener,DragGestureListener{
public JScrollPane getContainer() {
return container;
}
public void setContainer(JScrollPane container) {
this.container = container;
}
DropTarget dropTarget=null;
DragSource dragSource=null;
JScrollPane container=null;
Vector expansionPaths=new Vector();
boolean dragOn=false;
DefaultMutableTreeNode nodeInTransfer=null;
TreeNode root=null;
private Browser browser;
public DnDJTreeObject(JScrollPane jsp,TreeNode tn) {
super(tn);
this.setAutoscrolls(true);
this.container=jsp;
final JTree jt=this;
this.root=tn;
dragSource=new DragSource();
dragSource.createDefaultDragGestureRecognizer(this,
DnDConstants.ACTION_COPY,this);
this.setEditable(true);
}
public TreeNode getRoot(){
return root;
}
public void storeTreeExpansionPaths(){
TreePath[] tp=this.getPathBetweenRows(0,this.getRowCount()-1);
expansionPaths=new Vector();
for (int k=0;k10)){
container.validate();
container.getVerticalScrollBar().setValue(container.getVerticalScrollBar().getValue()-10);
}
// this.getLocation()
if (dmtn!=null){
this.setSelectionPath(new TreePath(dmtn.getPath()));
} else {
}
}
public void dragOver (DropTargetDragEvent event) {
this.moveMouseWithDrag(event.getLocation());
}
public void setBrowser(Browser browser) {
this.browser=browser;
}
@Override
public void dropActionChanged(DragSourceDragEvent dsde) {
// TODO Auto-generated method stub
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy