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

StubBrowser Class Reference

Inheritance diagram for StubBrowser::

StubListener List of all members.

Public Methods

 StubBrowser ()
 StubBrowser (HxCorba.App app)
void setPopupUser (Object user)
void setFrame (JFrame frame)
void addStubAction (String id, String label, Object user, String method)
void actionPerformed (ActionEvent e)
void mousePressed (MouseEvent e)
void mouseEntered (MouseEvent e)
void mouseExited (MouseEvent e)
void mouseClicked (MouseEvent e)
void mouseReleased (MouseEvent e)
void stubAdded (String intfId, String name, Object stub)
void stubRemoved (String intfId, String name)
void setGuard (StubRepositoryGuard g)
void valueChanged (TreeSelectionEvent e)
void dragGestureRecognized (DragGestureEvent event)
void dragDropEnd (DragSourceDropEvent event)
void dragEnter (DragSourceDragEvent event)
void dragOver (DragSourceDragEvent event)
void dragExit (DragSourceEvent event)
void dropActionChanged (DragSourceDragEvent event)
void lostOwnership (Clipboard clipboard, Transferable contents)
void dragOver (DropTargetDragEvent event)
void drop (DropTargetDropEvent event)
void dragEnter (DropTargetDragEvent event)
void dragExit (DropTargetEvent event)
void dropActionChanged (DropTargetDragEvent event)

Static Public Methods

void main (String[] args)

Constructor & Destructor Documentation

StubBrowser::StubBrowser   [inline]
 

00072 {
00073     this(null);
00074 }

StubBrowser::StubBrowser HxCorba.App    app [inline]
 

00077 {
00078     _app = app;
00079     doInit();
00080 }


Member Function Documentation

void StubBrowser::main String    args[] [inline, static]
 

00035 {
00036     JFrame f = new JFrame("StubBrowser");
00037     f.setDefaultCloseOperation(3); //EXIT_ON_CLOSE
00038 
00039     OutputStreamArea.println("Initializing CorbaMediator...");
00040     final CorbaMediator med = new FullCorbaMediator(args);
00041 
00042     OutputStreamArea.println("Registering App Servant...");
00043     StubManagerAppServant servant = new StubManagerAppServant();
00044     final String appName = med.registerApp(servant, "StubBrowser");
00045     if(appName != null) {
00046         OutputStreamArea.println("Registered as "+appName);
00047         f.setTitle(appName);
00048 
00049         f.addWindowListener(new WindowAdapter() {
00050             public void windowClosing(WindowEvent evt) {
00051                 med.unregisterApp(appName);
00052                 System.exit(0);
00053             }
00054         });
00055     }
00056 
00057     StubBrowser stb = new StubBrowser();
00058 
00059     //System.loadLibrary("HxLibJavam");
00060     OutputStreamArea out = new OutputStreamArea(10,50);
00061     ErrorStreamArea err = new ErrorStreamArea(f, 0, 0);
00062     stb.add(out, BorderLayout.SOUTH);
00063 
00064     f.getContentPane().add(stb);
00065     f.setSize(700, 550);
00066     f.show();
00067 
00068     OutputStreamArea.println("Done");
00069 }

void StubBrowser::setPopupUser Object    user [inline]
 

00083 {
00084     _popupUser = user;
00085 }

void StubBrowser::setFrame JFrame    frame [inline]
 

00088 {
00089     _frame = frame;
00090 }

void StubBrowser::addStubAction String    id,
String    label,
Object    user,
String    method
[inline]
 

00093 {
00094 /*    JButton b = new JButton(label);
00095     b.addActionListener(new StubAction(user, method));
00096 
00097     JPanel p = getStubActions(id);
00098     p.add(b);*/
00099 }

void StubBrowser::actionPerformed ActionEvent    e [inline]
 

00102 {
00103     Object src = e.getSource();
00104 
00105     if((src == _butCut) || (src == _butCopy)) {
00106         Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
00107         Transferable tr = getSelectedTransferable(DataFlavor.stringFlavor);
00108         if(tr != null) clip.setContents(tr, this);
00109     }
00110 
00111     if((src == _butCut) || (src == _butDelete)) {
00112         if(_selectedStub != null) {
00113             int row = _tree.getMinSelectionRow();
00114             _guard.removeStub(_selectedType, _selectedStub);
00115             if(row >= _tree.getRowCount()) row = row-1;
00116             _tree.setSelectionRow(row);
00117         }
00118     }
00119 
00120     if(src == _butPaste) {
00121         Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
00122         Transferable tr = clip.getContents(this);
00123         if(tr == null) return;
00124 
00125         try {
00126             String data = (String)tr.getTransferData(DataFlavor.stringFlavor);
00127             int index1 = data.indexOf('\t', 0);
00128             int index2 = data.indexOf('\t', index1+1);
00129             if((index1 == -1) || (index2 == -1))
00130                 return;
00131 
00132             String id = data.substring(0, index1);
00133             String ior = data.substring(index1+1, index2);
00134             String name = data.substring(index2+1);
00135             doDrop(id, name, ior);
00136         }catch(java.io.IOException ex) {
00137         }catch(UnsupportedFlavorException ex) {
00138         }
00139     }
00140 }

void StubBrowser::mousePressed MouseEvent    e [inline]
 

00144 {
00145     if(_popupUser == null) return;
00146 
00147     if(e.isMetaDown()) { //Right button
00148         Point pt = e.getPoint();
00149         TreePath path = _tree.getPathForLocation(pt.x, pt.y);
00150         _tree.setSelectionPath(path);
00151 
00152         if(_selectedType == null) return;
00153         JPopupMenu pm = getPopupMenu(_selectedType);
00154         if(pm != null) pm.show(_tree, pt.x, pt.y);
00155     }
00156 }

void StubBrowser::mouseEntered MouseEvent    e [inline]
 

00159 {}

void StubBrowser::mouseExited MouseEvent    e [inline]
 

00160 {}

void StubBrowser::mouseClicked MouseEvent    e [inline]
 

00161 {}

void StubBrowser::mouseReleased MouseEvent    e [inline]
 

00162 {}

void StubBrowser::stubAdded String    intfId,
String    name,
Object    stub
[inline]
 

Reimplemented from StubListener.

00166 {
00167     if(_renaming) return; //this is the stub we are renaming
00168 
00169     DefaultTreeModel tModel = (DefaultTreeModel)_tree.getModel();
00170     StringTreeNode root = (StringTreeNode)tModel.getRoot();
00171 
00172     int index = root.getChild(intfId);
00173     if(index == -1) {
00174         StringTreeNode node = new StringTreeNode(intfId) {
00175             public boolean isLeaf() { return false; }
00176             public void setUserObject(Object obj) {} //rename not allowed
00177         };
00178         root.insert(node, 0);
00179         tModel.nodesWereInserted(root, new int[] {0});
00180         index = 0;
00181     }
00182     StringTreeNode typeNode = (StringTreeNode)root.getChildAt(index);
00183 
00184     index = typeNode.getChild(name);
00185     if(index != -1) return; //already exists
00186 
00187     StringTreeNode stubNode = new StringTreeNode(name) {
00188         public void setUserObject(Object obj)
00189         {
00190             boolean ok = renameSelected(obj.toString());
00191             if(ok) super.setUserObject(obj);
00192         }
00193     };
00194 
00195     typeNode.insert(stubNode, 0);
00196     tModel.nodesWereInserted(typeNode, new int[] {0});
00197 
00198     _tree.setRootVisible(true);
00199     _tree.expandRow(0);
00200     _tree.setRootVisible(false);
00201 }

void StubBrowser::stubRemoved String    intfId,
String    name
[inline]
 

Reimplemented from StubListener.

00205 {
00206     if(_renaming) return; //this is the stub we are renaming
00207 
00208     DefaultTreeModel tModel = (DefaultTreeModel)_tree.getModel();
00209     StringTreeNode root = (StringTreeNode)tModel.getRoot();
00210 
00211     int index = root.getChild(intfId);
00212     if(index == -1) return;
00213     StringTreeNode typeNode = (StringTreeNode)root.getChildAt(index);
00214 
00215     index = typeNode.getChild(name);
00216     if(index == -1) return;
00217     StringTreeNode stubNode = (StringTreeNode)typeNode.getChildAt(index);
00218 
00219     typeNode.remove(index);
00220     tModel.nodesWereRemoved(typeNode, new int[] {index}, new Object[] {stubNode});
00221 }

void StubBrowser::setGuard StubRepositoryGuard    g [inline]
 

00224 {
00225     _guard = g;
00226 }

void StubBrowser::valueChanged TreeSelectionEvent    e [inline]
 

00231 {
00232     TreePath path = e.getNewLeadSelectionPath();
00233     int pathSize = 0;
00234     if(path != null) pathSize = path.getPathCount();
00235 
00236     _selectedType = null;
00237     _selectedStub = null;
00238     if(pathSize > 1) _selectedType = path.getPathComponent(1).toString();
00239     if(pathSize > 2) _selectedStub = path.getPathComponent(2).toString();
00240 
00241     StubInfo info = null;
00242     if(_selectedStub != null)
00243         info = getStubInfo(_selectedType, _selectedStub);
00244 
00245     // info will be null if object is null, or it's not an
00246     // org.omg.CORBA.Object
00247 
00248     _infoPanel.removeAll();
00249     if(info != null)
00250         _infoPanel.add(new StubInfoPanel(info), BorderLayout.CENTER);
00251     _infoPanel.validate();
00252     _infoPanel.repaint();
00253 
00254     _butDelete.setEnabled((_selectedStub != null) && (_app == null));
00255     _butCut.setEnabled((_selectedStub != null) && (_app == null) && (info != null));
00256     _butCopy.setEnabled((_selectedStub != null) && (info != null));
00257     _butPaste.setEnabled(true);
00258     _butRefresh.setEnabled(_selectedType != null);
00259 }

void StubBrowser::dragGestureRecognized DragGestureEvent    event [inline]
 

00263 {
00264     /*boolean drag = false;
00265     Iterator it = event.iterator();
00266     while(it.hasNext()) {
00267         Object ev = it.next();
00268         if(ev instanceof MouseEvent)
00269             if(((MouseEvent)ev).getID() == MouseEvent.MOUSE_DRAGGED)
00270                 drag = true;
00271     }
00272     if(!drag) return;*/
00273 
00274     // a drag gesture has been initiated
00275 
00276     // Avoid the node to enter in edit mode (JDK bug?)
00277     _tree.setEditable(false);
00278 
00279     Transferable data = getSelectedTransferable(HxCorbaDataFlavor.objectFlavor);
00280     if(data != null)
00281         event.getDragSource().startDrag(event,
00282             DragSource.DefaultMoveNoDrop, data, this);
00283 }

void StubBrowser::dragDropEnd DragSourceDropEvent    event [inline]
 

00287 {
00288     _tree.setEditable(_app == null);
00289 }

void StubBrowser::dragEnter DragSourceDragEvent    event [inline]
 

00291 {}

void StubBrowser::dragOver DragSourceDragEvent    event [inline]
 

00292 {}

void StubBrowser::dragExit DragSourceEvent    event [inline]
 

00293 {}

void StubBrowser::dropActionChanged DragSourceDragEvent    event [inline]
 

00294 {}

void StubBrowser::lostOwnership Clipboard    clipboard,
Transferable    contents
[inline]
 

00297 {}

void StubBrowser::dragOver DropTargetDragEvent    event [inline]
 

00301 {
00302     if(event.isDataFlavorSupported(HxCorbaDataFlavor.objectFlavor))
00303         event.acceptDrag(event.getDropAction());
00304     else
00305         event.rejectDrag();
00306 }

void StubBrowser::drop DropTargetDropEvent    event [inline]
 

00310 {
00311     try {
00312         Transferable transferable = event.getTransferable();
00313         event.acceptDrop(event.getDropAction());
00314         final ObjectTransfer data = (ObjectTransfer)transferable.getTransferData(
00315             HxCorbaDataFlavor.objectFlavor);
00316         Thread t = new Thread() {
00317             public void run() {
00318                 doDrop(data.getType(), data.getName(), data.getIOR());
00319             }
00320         };
00321         t.start();
00322         event.getDropTargetContext().dropComplete(true);
00323     }
00324     catch (java.io.IOException exception) {
00325         exception.printStackTrace();
00326         event.rejectDrop();
00327     }catch (UnsupportedFlavorException ufException ) {
00328         ufException.printStackTrace();
00329         event.rejectDrop();
00330     }
00331 }

void StubBrowser::dragEnter DropTargetDragEvent    event [inline]
 

00334 {}

void StubBrowser::dragExit DropTargetEvent    event [inline]
 

00335 {}

void StubBrowser::dropActionChanged DropTargetDragEvent    event [inline]
 

00336 {}


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