Inheritance diagram for StubBrowser::
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) |
|
00072 { 00073 this(null); 00074 } |
|
00077 { 00078 _app = app; 00079 doInit(); 00080 } |
|
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 } |
|
00083 { 00084 _popupUser = user; 00085 } |
|
00088 { 00089 _frame = frame; 00090 } |
|
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 } |
|
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 } |
|
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 } |
|
00159 {} |
|
00160 {} |
|
00161 {} |
|
00162 {} |
|
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 } |
|
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 } |
|
00224 { 00225 _guard = g; 00226 } |
|
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 } |
|
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 } |
|
00287 { 00288 _tree.setEditable(_app == null); 00289 } |
|
00291 {} |
|
00292 {} |
|
00293 {} |
|
00294 {} |
|
00297 {} |
|
00301 { 00302 if(event.isDataFlavorSupported(HxCorbaDataFlavor.objectFlavor)) 00303 event.acceptDrag(event.getDropAction()); 00304 else 00305 event.rejectDrag(); 00306 } |
|
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 } |
|
00334 {} |
|
00335 {} |
|
00336 {} |