Horus Doc || Java GUI Reference || Doxygen's quick Index  

ImageSocket Class Reference

List of all members.

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)

Constructor & Destructor Documentation

ImageSocket::ImageSocket boolean    input [inline]
 

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 }


Member Function Documentation

void ImageSocket::isInput boolean    in [inline]
 

00038 {
00039     _isInput = in;
00040 }

boolean ImageSocket::empty   [inline]
 

00043 {
00044     return (_elem == null);
00045 }

HxCorba.ImageRep ImageSocket::getImageRep   [inline]
 

00048 {
00049     if(_elem == null) return null;
00050 
00051     return _elem.getImageRep();
00052 }

String ImageSocket::getImageName   [inline]
 

00055 {
00056     if(_elem == null) return null;
00057 
00058     return _elem.getImageName();
00059 }

void ImageSocket::setImageRep HxCorba.ImageRep    data [inline]
 

00062 {
00063     setElement(new ImageElement(data));
00064 }

void ImageSocket::setLink Color    c [inline]
 

00067 {
00068     _linkColor = c;
00069     repaint();
00070 }

void ImageSocket::setElement ImageElement    e [inline]
 

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 }

void ImageSocket::removeElement   [inline]
 

00085 {
00086     remove(_elem);
00087     _elem = null;
00088     repaint();
00089 }

void ImageSocket::remove Component    c [inline]
 

00092 {
00093     super.remove(c);
00094 
00095     if(c == _elem) _elem = null;
00096 }

void ImageSocket::paint Graphics    g [inline]
 

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 }

void ImageSocket::dragOver DropTargetDragEvent    event [inline]
 

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 }

void ImageSocket::drop final DropTargetDropEvent    event [inline]
 

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 }

void ImageSocket::dragEnter DropTargetDragEvent    event [inline]
 

00168 {
00169     _draggedOver = true;
00170     repaint();
00171 }

void ImageSocket::dragExit DropTargetEvent    event [inline]
 

00175 {
00176     _draggedOver = false;
00177     repaint();
00178 }

void ImageSocket::dropActionChanged DropTargetDragEvent    event [inline]
 

00181 {}

void ImageSocket::dragGestureRecognized DragGestureEvent    event [inline]
 

00186 {
00187     if(_elem != null)
00188         _elem.dragGestureRecognized(event);
00189 }


The documentation for this class was generated from the following file:
Generated on Mon Jan 27 15:11:20 2003 for JavaReference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001