Public Methods | |
| ImageSocket (boolean input) | |
| void | isInput (boolean in) |
| boolean | empty () |
| HxCorba.ImageRep | getImageRep () |
| String | getImageName () |
| void | setImageRep (HxCorba.ImageRep data) |
| void | setLink (Color c) |
| void | setElement (ImageElement e) |
| void | removeElement () |
| void | remove (Component c) |
| void | paint (Graphics g) |
| void | dragOver (DropTargetDragEvent event) |
| void | drop (final DropTargetDropEvent event) |
| void | dragEnter (DropTargetDragEvent event) |
| void | dragExit (DropTargetEvent event) |
| void | dropActionChanged (DropTargetDragEvent event) |
| void | dragGestureRecognized (DragGestureEvent event) |
|
|
00026 {
00027 setSize(ImageElement.componentSize());
00028
00029 DragSource dragSource = DragSource.getDefaultDragSource();
00030 dragSource.createDefaultDragGestureRecognizer((Component)this,
00031 DnDConstants.ACTION_COPY_OR_MOVE, this);
00032
00033 new DropTarget((Component)this, (DropTargetListener)this);
00034 _isInput = input;
00035 }
|
|
|
00038 {
00039 _isInput = in;
00040 }
|
|
|
00043 {
00044 return (_elem == null);
00045 }
|
|
|
00048 {
00049 if(_elem == null) return null;
00050
00051 return _elem.getImageRep();
00052 }
|
|
|
00055 {
00056 if(_elem == null) return null;
00057
00058 return _elem.getImageName();
00059 }
|
|
|
00062 {
00063 setElement(new ImageElement(data));
00064 }
|
|
|
00067 {
00068 _linkColor = c;
00069 repaint();
00070 }
|
|
|
00073 {
00074 _elem = e;
00075 _elem.setLocation(0,0);
00076
00077 Component parent = _elem.getParent();
00078 add(_elem);
00079
00080 if(parent != null) parent.repaint();
00081 repaint();
00082 }
|
|
|
00085 {
00086 remove(_elem);
00087 _elem = null;
00088 repaint();
00089 }
|
|
|
00092 {
00093 super.remove(c);
00094
00095 if(c == _elem) _elem = null;
00096 }
|
|
|
00099 {
00100 if(_elem != null) {
00101 super.paint(g);
00102 return;
00103 }
00104
00105 if(_draggedOver && _isInput) {
00106 g.setColor(Color.gray);
00107 g.drawRect(0,0,getSize().width - 1, getSize().height - 1);
00108 }
00109
00110 if(_linkColor != null) {
00111 g.setColor(_linkColor);
00112 g.drawRect(0,0,getSize().width - 1, getSize().height - 1);
00113 }
00114 }
|
|
|
00119 {
00120 boolean acceptable = empty() && _isInput &&
00121 event.isDataFlavorSupported(HxCorbaDataFlavor.imageFlavor);
00122
00123 if(acceptable) {
00124 event.acceptDrag(event.getDropAction());
00125 //setDragPosition(event.getLocation());
00126 }else
00127 event.rejectDrag();
00128 }
|
|
|
00132 {
00133 boolean acceptable = empty() && _isInput &&
00134 event.isDataFlavorSupported(HxCorbaDataFlavor.imageFlavor);
00135
00136 if(!acceptable) {
00137 event.rejectDrop();
00138 return;
00139 }
00140
00141 try {
00142 event.acceptDrop(event.getDropAction());
00143 Transferable transferable = event.getTransferable();
00144 final ObjectTransfer data = (ObjectTransfer)transferable.getTransferData(
00145 HxCorbaDataFlavor.imageFlavor);
00146
00147 Thread t = new Thread() {
00148 public void run() {
00149 doDrop((ObjectTransfer)data, ImageElement.getLocalDrag(), event);
00150 }
00151 };
00152 t.start();
00153 //SwingUtilities.invokeLater(t);
00154
00155 event.getDropTargetContext().dropComplete(true);
00156 }
00157 catch (java.io.IOException e) {
00158 e.printStackTrace();
00159 event.rejectDrop();
00160 }catch (UnsupportedFlavorException e) {
00161 e.printStackTrace();
00162 event.rejectDrop();
00163 }
00164 }
|
|
|
00168 {
00169 _draggedOver = true;
00170 repaint();
00171 }
|
|
|
00175 {
00176 _draggedOver = false;
00177 repaint();
00178 }
|
|
|
00181 {}
|
|
|
00186 {
00187 if(_elem != null)
00188 _elem.dragGestureRecognized(event);
00189 }
|
1.2.12 written by Dimitri van Heesch,
© 1997-2001