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 } |