Public Methods | |
AppBrowser () | |
void | setFrame (JFrame f) |
void | actionPerformed (ActionEvent e) |
void | valueChanged (TreeSelectionEvent e) |
void | tableChanged (TableModelEvent 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 | 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) |
Protected Methods | |
void | showDialog (JPanel p, String name) |
|
00061 { 00062 createContents(); 00063 00064 _butNewNS.setEnabled(false); 00065 _butNewSrv.setEnabled(false); 00066 _butDelete.setEnabled(false); 00067 _butPing.setEnabled(false); 00068 _butRefresh.setEnabled(false); 00069 _butView.setEnabled(false); 00070 00071 for(int i=0; i<_allButtons.length; i++) 00072 _allButtons[i].addActionListener(this); 00073 00074 _tree.getSelectionModel().setSelectionMode( 00075 TreeSelectionModel.SINGLE_TREE_SELECTION); 00076 00077 //DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer(); 00078 //renderer.setLeafIcon(new ImageIcon(CorbaToolsRes.get_application())); 00079 //_tree.setCellRenderer(renderer); 00080 00081 ApplicationsManager appMgr = ApplicationsManager.defaultAppMgr(); 00082 if(appMgr != null) { 00083 _treeModel = new AppTreeModel(appMgr); 00084 _tree.setModel(_treeModel); 00085 _tree.setRootVisible(true); 00086 //_tree.setEditable(true); 00087 _tree.getSelectionModel().addTreeSelectionListener(this); 00088 _tree.setSelectionRow(0); //select root 00089 00090 _tree.setDropTarget(new DropTarget(_tree, this)); 00091 00092 int action = DnDConstants.ACTION_COPY_OR_MOVE; 00093 DragSource dSource = DragSource.getDefaultDragSource(); 00094 dSource.createDefaultDragGestureRecognizer(_table, action, this); 00095 } 00096 else { 00097 // Set leaf with error message 00098 TreeNode root = new DefaultMutableTreeNode("Cannot find root NameServer"); 00099 _tree.setModel(new DefaultTreeModel(root)); 00100 _tree.setRootVisible(true); 00101 //_tree.setEditable(true); 00102 } 00103 00104 setPreferredSize(new Dimension(700,300)); 00105 _frame = null; 00106 } |
|
00037 { 00038 OutputStreamArea.println("Initializing CorbaMediator..."); 00039 CorbaMediator med = new FullCorbaMediator(args); 00040 00041 JFrame f = new JFrame("App Browser"); 00042 f.setDefaultCloseOperation(3); //EXIT_ON_CLOSE 00043 00044 //System.loadLibrary("HxLibJavam"); 00045 OutputStreamArea out = new OutputStreamArea(10,60); 00046 ErrorStreamArea err = new ErrorStreamArea(f, 0, 0); 00047 00048 AppBrowser app = new AppBrowser(); 00049 app.setFrame(f); 00050 00051 f.getContentPane().add(app); 00052 f.getContentPane().add(out, BorderLayout.SOUTH); 00053 f.pack(); 00054 f.show(); 00055 00056 OutputStreamArea.println("Done"); 00057 } |
|
00119 { 00120 _frame = f; 00121 } |
|
00137 { 00138 AppTreeNode root = (AppTreeNode)_treeModel.getRoot(); 00139 AppTableModel rootModel = root.getTableModel(); 00140 ApplicationsManager rootManager = rootModel.getManager(); 00141 00142 if(e.getSource() == _butNewNS) { 00143 doNewNameServer(root, rootModel, rootManager); 00144 return; 00145 } 00146 else if(e.getSource() == _butNewSrv) { 00147 doNewServer(root, rootModel, rootManager); 00148 return; 00149 } 00150 00151 AppTreeNode node = (AppTreeNode)_tree.getLastSelectedPathComponent(); 00152 AppTableModel tModel = node.getTableModel(); 00153 ApplicationsManager manager = tModel.getManager(); 00154 00155 if(e.getSource() == _butRefresh) doRefresh(node, tModel, manager); 00156 else if(e.getSource() == _butDelete) doDelete(node, tModel, manager); 00157 else if(e.getSource() == _butView) doView(node, tModel, manager); 00158 else if(e.getSource() == _butPing) doPing(node, tModel, manager); 00159 } |
|
00163 { 00164 if(_table.isEditing()) 00165 { 00166 TableCellEditor editor = _table.getCellEditor( 00167 _table.getEditingRow(), _table.getEditingColumn()); 00168 editor.stopCellEditing(); 00169 } 00170 00171 AppTreeNode node = (AppTreeNode)_tree.getLastSelectedPathComponent(); 00172 if(_tableModel != null) _tableModel.removeTableModelListener(this); 00173 _tableModel = null; 00174 String tableText = " "; 00175 00176 if(node != null) { 00177 _tableModel = node.getTableModel(); 00178 _tableModel.addTableModelListener(this); 00179 if(_tableModel == null) tableText = node+" is not responding"; 00180 else tableText = "Contents of "+node+" NameServer"; 00181 } 00182 00183 _butNewNS.setEnabled(node == _treeModel.getRoot()); 00184 _butNewSrv.setEnabled(node == _treeModel.getRoot()); 00185 _butDelete.setEnabled(node == _treeModel.getRoot()); 00186 _butView.setEnabled(_tableModel != null); 00187 _butPing.setEnabled(_tableModel != null); 00188 _butRefresh.setEnabled(_tableModel != null); 00189 00190 if(_tableModel == null) _table.setModel(new DefaultTableModel()); 00191 else _table.setModel(_tableModel); 00192 _table.sizeColumnsToFit(-1); 00193 _tableLabel.setText(tableText); 00194 } |
|
00198 { 00199 if(e.getType() != TableModelEvent.UPDATE) return; 00200 00201 int col = e.getColumn(); 00202 int row = e.getFirstRow(); 00203 if(col == TableModelEvent.ALL_COLUMNS) return; 00204 00205 if(!_tableModel.getColumnName(col).equals("Name")) return; 00206 if(!_tableModel.getValueAt(row, "Type").equals("NameServers")) return; 00207 00208 // The name of a NameServer has changed 00209 _treeModel.fireNodeRenamed((String)_tableModel.getValueAt(row, col)); 00210 _tree.setSelectionRow(0); //select root 00211 } |
|
00215 { 00216 // This method is called when the user edits the name of the app (with 00217 // no dragging). Maybe this doesn't happen with JDK1.3, but with JDK1.2 00218 // we have to check if there has been some dragging: 00219 00220 boolean drag = false; 00221 java.util.Iterator it = event.iterator(); 00222 while(it.hasNext()) { 00223 Object ev = it.next(); 00224 if(ev instanceof MouseEvent) 00225 if(((MouseEvent)ev).getID() == MouseEvent.MOUSE_DRAGGED) 00226 drag = true; 00227 } 00228 if(!drag) return; 00229 00230 // a drag gesture has been initiated 00231 00232 int row = _table.getSelectedRow(); 00233 if(row != -1) { 00234 String type = (String)_tableModel.getValueAt(row, "Type"); 00235 String name = (String)_tableModel.getValueAt(row, "Name"); 00236 String ior = (String)_tableModel.getValueAt(row, "IOR"); 00237 Transferable data = new AppTransfer(type, name, ior); 00238 event.getDragSource().startDrag(event, 00239 DragSource.DefaultMoveNoDrop, data, this); 00240 } 00241 } |
|
00245 {} |
|
00246 {} |
|
00247 { } |
|
00248 {} |
|
00249 { } |
|
00254 { 00255 int row = _tree.getRowForLocation(event.getLocation().x,event.getLocation().y); 00256 if(row == 0) { //root 00257 if(event.isDataFlavorSupported(HxCorbaDataFlavor.appFlavor)) { 00258 event.acceptDrag(event.getDropAction()); 00259 return; 00260 } 00261 } 00262 00263 event.rejectDrag(); 00264 } |
|
00268 { 00269 int row = _tree.getRowForLocation(event.getLocation().x,event.getLocation().y); 00270 if(!(row == 0) && event.isDataFlavorSupported(HxCorbaDataFlavor.appFlavor)) { 00271 event.rejectDrop(); 00272 return; 00273 } 00274 00275 event.acceptDrop(event.getDropAction()); 00276 00277 AppTreeNode root = (AppTreeNode)_treeModel.getRoot(); 00278 AppTableModel rootModel = root.getTableModel(); 00279 ApplicationsManager rootManager = rootModel.getManager(); 00280 00281 try { 00282 Transferable transferable = event.getTransferable(); 00283 AppTransfer data = 00284 (AppTransfer)transferable.getTransferData(HxCorbaDataFlavor.appFlavor); 00285 org.omg.CORBA.Object obj = CorbaMediator.instance().string_to_object(data.getIOR()); 00286 String resName = rootManager.putApplication(data.getType(), data.getName(), obj); 00287 rootModel.refreshData(); 00288 if(data.getType().equals("NameServers")) 00289 _treeModel.fireNodeInserted(resName); 00290 event.getDropTargetContext().dropComplete(true); 00291 } 00292 catch (java.io.IOException exception) { 00293 exception.printStackTrace(); 00294 event.rejectDrop(); 00295 }catch (UnsupportedFlavorException ufException ) { 00296 ufException.printStackTrace(); 00297 event.rejectDrop(); 00298 } 00299 } |
|
00302 {} |
|
00303 {} |
|
00304 {} |
|
00313 { 00314 JDialog dlg = new JDialog(_frame, name, false); 00315 dlg.getContentPane().add(p); 00316 dlg.pack(); 00317 dlg.setVisible(true); 00318 } |