1 6 7 package com.jaspersoft.jasperserver.irplugin.gui.explorer; 8 9 import com.jaspersoft.jasperserver.api.metadata.xml.domain.impl.ResourceDescriptor; 10 import com.jaspersoft.jasperserver.irplugin.JServer; 11 import it.businesslogic.ireport.util.Misc; 12 import java.awt.Color ; 13 import java.awt.Component ; 14 import java.awt.Cursor ; 15 import java.awt.Dialog ; 16 import java.awt.Frame ; 17 import java.awt.Window ; 18 import java.util.List ; 19 import javax.swing.DefaultListModel ; 20 import javax.swing.DefaultListSelectionModel ; 21 import javax.swing.JDialog ; 22 import javax.swing.JOptionPane ; 23 import javax.swing.ListSelectionModel ; 24 import javax.swing.SwingUtilities ; 25 import javax.swing.UIManager ; 26 import javax.swing.table.DefaultTableModel ; 27 import javax.swing.table.TableColumn ; 28 import org.exolab.castor.util.Iterator; 29 30 34 public class ResourceChooser extends javax.swing.JPanel { 35 36 private JServer server = null; 37 private JDialog dialog = null; 38 private int dialogResult = JOptionPane.CANCEL_OPTION; 39 40 private ResourceDescriptor root = null; 41 private ResourceDescriptor currentParent = null; 42 private ResourceDescriptor selectedDescriptor = null; 43 44 45 public ResourceChooser() { 46 initComponents(); 47 48 jComboBoxLookIn.removeAllItems(); 49 jList1.setModel(new DefaultListModel ()); 50 51 jScrollPane2.getViewport().setBackground(Color.WHITE); 52 adjustListView(); 53 54 setRoot(new ResourceDescriptor()); 55 getRoot().setUriString("/"); 56 getRoot().setChildren(null); getRoot().setWsType( ResourceDescriptor.TYPE_FOLDER); 58 59 jList1.setCellRenderer(new ExplorerCellRenderer()); 60 TableColumn col = jTable1.getColumnModel().getColumn(0); 61 col.setCellRenderer(new ExplorerTableCellRenderer()); 62 jList1.getSelectionModel().setSelectionMode(DefaultListSelectionModel.SINGLE_SELECTION); 63 jTable1.setSelectionMode( DefaultListSelectionModel.SINGLE_SELECTION ); 64 jTable1.getSelectionModel().addListSelectionListener( 65 new javax.swing.event.ListSelectionListener () { 66 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 67 jTable1ValueChanged(evt); 68 } 69 }); 70 71 jComboBoxLookIn.setRenderer( new ExplorerCellRenderer(true) ); 72 73 jButtonDetails.setIcon(UIManager.getIcon("FileChooser.detailsViewIcon")); 74 jButtonDetails.setText(""); 75 76 jButtonList.setIcon(UIManager.getIcon("FileChooser.listViewIcon")); 77 jButtonList.setText(""); 78 79 jButtonUp.setIcon(UIManager.getIcon("FileChooser.upFolderIcon")); 80 jButtonUp.setText(""); 81 82 jTextField1.requestFocusInWindow(); 83 84 jTextField1.getDocument().addDocumentListener( new javax.swing.event.DocumentListener () { 85 public void changedUpdate(javax.swing.event.DocumentEvent evt) { 86 updateSelectedDescriptor(); 87 } 88 public void insertUpdate(javax.swing.event.DocumentEvent evt) { 89 updateSelectedDescriptor(); 90 } 91 public void removeUpdate(javax.swing.event.DocumentEvent evt) { 92 updateSelectedDescriptor(); 93 } 94 }); 95 } 96 97 public JServer getServer() { 98 return server; 99 } 100 101 public void setServer(JServer server) { 102 this.server = server; 103 } 104 105 public void updateSelectedDescriptor() 106 { 107 selectedDescriptor = null; 109 } 110 111 112 116 public List list(ResourceDescriptor rd) throws Exception  117 { 118 java.util.List list = new java.util.ArrayList (); 119 120 if (getServer() != null && rd.getWsType().equals(ResourceDescriptor.TYPE_FOLDER) 121 && rd.getChildren() == null) 122 { 123 return getServer().getWSClient().list(rd); 124 } 125 126 return list; 127 } 128 129 145 public int showDialog(Component parent, String approveButtonText) 146 { 147 dialogResult = JOptionPane.CANCEL_OPTION; 148 if (approveButtonText == null) approveButtonText = "Open resource"; 149 jButtonOpen.setText(approveButtonText); 150 151 Window w = SwingUtilities.getWindowAncestor(parent); 152 if (w instanceof Frame ) dialog = new JDialog ((Frame )w, true); 153 else if (w instanceof Dialog ) dialog = new JDialog ((Dialog )w, true); 154 else dialog = new JDialog ((Frame )null, true); 155 dialog.getContentPane().setLayout(new java.awt.GridBagLayout ()); 156 java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints (); 157 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 158 gridBagConstraints.weightx = 1.0; 159 gridBagConstraints.weighty = 1.0; 160 dialog.getContentPane().add(this, gridBagConstraints); 161 dialog.pack(); 162 Misc.centerFrame(dialog); 163 164 jComboBoxLookIn.removeAllItems(); 165 setCurrentParent( getRoot() ); 166 167 dialog.setVisible(true); 168 return getDialogResult(); 169 } 170 171 172 177 private void initComponents() { 179 java.awt.GridBagConstraints gridBagConstraints; 180 181 buttonGroup1 = new javax.swing.ButtonGroup (); 182 jPanelTop = new javax.swing.JPanel (); 183 jLabel1 = new javax.swing.JLabel (); 184 jComboBoxLookIn = new javax.swing.JComboBox (); 185 jButtonUp = new javax.swing.JButton (); 186 jButtonList = new javax.swing.JToggleButton (); 187 jButtonDetails = new javax.swing.JToggleButton (); 188 jPanel1 = new javax.swing.JPanel (); 189 jScrollPane1 = new javax.swing.JScrollPane (); 190 jList1 = new javax.swing.JList (); 191 jScrollPane2 = new javax.swing.JScrollPane (); 192 jTable1 = new javax.swing.JTable (); 193 jPanel2 = new javax.swing.JPanel (); 194 jLabel2 = new javax.swing.JLabel (); 195 jLabel3 = new javax.swing.JLabel (); 196 jTextField1 = new javax.swing.JTextField (); 197 jComboBox2 = new javax.swing.JComboBox (); 198 jButtonOpen = new javax.swing.JButton (); 199 jButtonClose = new javax.swing.JButton (); 200 201 setLayout(new java.awt.GridBagLayout ()); 202 203 jPanelTop.setLayout(new java.awt.GridBagLayout ()); 204 205 jPanelTop.setMinimumSize(new java.awt.Dimension (10, 30)); 206 jPanelTop.setPreferredSize(new java.awt.Dimension (10, 30)); 207 jLabel1.setText("Look in:"); 208 gridBagConstraints = new java.awt.GridBagConstraints (); 209 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 210 jPanelTop.add(jLabel1, gridBagConstraints); 211 212 jComboBoxLookIn.setModel(new javax.swing.DefaultComboBoxModel (new String [] { "Item 1", "Item 2", "Item 3", "Item 4" })); 213 jComboBoxLookIn.addActionListener(new java.awt.event.ActionListener () { 214 public void actionPerformed(java.awt.event.ActionEvent evt) { 215 jComboBoxLookInActionPerformed(evt); 216 } 217 }); 218 219 gridBagConstraints = new java.awt.GridBagConstraints (); 220 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 221 gridBagConstraints.weightx = 1.0; 222 gridBagConstraints.insets = new java.awt.Insets (4, 0, 4, 4); 223 jPanelTop.add(jComboBoxLookIn, gridBagConstraints); 224 225 jButtonUp.setText("Up"); 226 jButtonUp.setMargin(new java.awt.Insets (0, 0, 0, 0)); 227 jButtonUp.addActionListener(new java.awt.event.ActionListener () { 228 public void actionPerformed(java.awt.event.ActionEvent evt) { 229 jButtonUpActionPerformed(evt); 230 } 231 }); 232 233 gridBagConstraints = new java.awt.GridBagConstraints (); 234 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 0); 235 jPanelTop.add(jButtonUp, gridBagConstraints); 236 237 buttonGroup1.add(jButtonList); 238 jButtonList.setSelected(true); 239 jButtonList.setText("List"); 240 jButtonList.setMargin(new java.awt.Insets (0, 0, 0, 0)); 241 jButtonList.addActionListener(new java.awt.event.ActionListener () { 242 public void actionPerformed(java.awt.event.ActionEvent evt) { 243 jButtonListActionPerformed(evt); 244 } 245 }); 246 247 gridBagConstraints = new java.awt.GridBagConstraints (); 248 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 0); 249 jPanelTop.add(jButtonList, gridBagConstraints); 250 251 buttonGroup1.add(jButtonDetails); 252 jButtonDetails.setLabel("Details"); 253 jButtonDetails.setMargin(new java.awt.Insets (0, 0, 0, 0)); 254 jButtonDetails.addActionListener(new java.awt.event.ActionListener () { 255 public void actionPerformed(java.awt.event.ActionEvent evt) { 256 jButtonDetailsActionPerformed(evt); 257 } 258 }); 259 260 gridBagConstraints = new java.awt.GridBagConstraints (); 261 gridBagConstraints.insets = new java.awt.Insets (4, 0, 4, 4); 262 jPanelTop.add(jButtonDetails, gridBagConstraints); 263 264 gridBagConstraints = new java.awt.GridBagConstraints (); 265 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 266 gridBagConstraints.weightx = 1.0; 267 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 268 add(jPanelTop, gridBagConstraints); 269 270 jPanel1.setLayout(new java.awt.GridBagLayout ()); 271 272 jPanel1.setBackground(new java.awt.Color (255, 255, 255)); 273 jScrollPane1.setPreferredSize(new java.awt.Dimension (400, 200)); 274 jList1.setLayoutOrientation(javax.swing.JList.VERTICAL_WRAP); 275 jList1.setVisibleRowCount(-1); 276 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 277 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 278 jList1ValueChanged(evt); 279 } 280 }); 281 jList1.addMouseListener(new java.awt.event.MouseAdapter () { 282 public void mouseClicked(java.awt.event.MouseEvent evt) { 283 jList1MouseClicked(evt); 284 } 285 }); 286 287 jScrollPane1.setViewportView(jList1); 288 289 gridBagConstraints = new java.awt.GridBagConstraints (); 290 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 291 gridBagConstraints.weightx = 1.0; 292 gridBagConstraints.weighty = 1.0; 293 jPanel1.add(jScrollPane1, gridBagConstraints); 294 295 jScrollPane2.setBackground(new java.awt.Color (255, 255, 255)); 296 jScrollPane2.setOpaque(false); 297 jScrollPane2.setPreferredSize(new java.awt.Dimension (400, 200)); 298 jTable1.setModel(new javax.swing.table.DefaultTableModel ( 299 new Object [][] { 300 301 }, 302 new String [] { 303 "Name", "Label", "Type" 304 } 305 ) { 306 Class [] types = new Class [] { 307 java.lang.Object .class, java.lang.String .class, java.lang.String .class 308 }; 309 boolean[] canEdit = new boolean [] { 310 false, false, false 311 }; 312 313 public Class getColumnClass(int columnIndex) { 314 return types [columnIndex]; 315 } 316 317 public boolean isCellEditable(int rowIndex, int columnIndex) { 318 return canEdit [columnIndex]; 319 } 320 }); 321 jTable1.setIntercellSpacing(new java.awt.Dimension (0, 0)); 322 jTable1.setRequestFocusEnabled(false); 323 jTable1.setShowHorizontalLines(false); 324 jTable1.setShowVerticalLines(false); 325 jTable1.addMouseListener(new java.awt.event.MouseAdapter () { 326 public void mouseClicked(java.awt.event.MouseEvent evt) { 327 jTable1MouseClicked(evt); 328 } 329 }); 330 331 jScrollPane2.setViewportView(jTable1); 332 333 gridBagConstraints = new java.awt.GridBagConstraints (); 334 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 335 gridBagConstraints.weightx = 1.0; 336 gridBagConstraints.weighty = 1.0; 337 jPanel1.add(jScrollPane2, gridBagConstraints); 338 339 gridBagConstraints = new java.awt.GridBagConstraints (); 340 gridBagConstraints.gridx = 0; 341 gridBagConstraints.gridy = 1; 342 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 343 gridBagConstraints.weightx = 1.0; 344 gridBagConstraints.weighty = 1.0; 345 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 346 add(jPanel1, gridBagConstraints); 347 348 jPanel2.setLayout(new java.awt.GridBagLayout ()); 349 350 jPanel2.setMinimumSize(new java.awt.Dimension (10, 60)); 351 jPanel2.setPreferredSize(new java.awt.Dimension (10, 60)); 352 jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 353 jLabel2.setText("Resource name:"); 354 jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); 355 gridBagConstraints = new java.awt.GridBagConstraints (); 356 gridBagConstraints.gridx = 0; 357 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 358 jPanel2.add(jLabel2, gridBagConstraints); 359 360 jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); 361 jLabel3.setText("Type:"); 362 jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); 363 gridBagConstraints = new java.awt.GridBagConstraints (); 364 gridBagConstraints.gridx = 0; 365 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 366 jPanel2.add(jLabel3, gridBagConstraints); 367 368 jTextField1.addKeyListener(new java.awt.event.KeyAdapter () { 369 public void keyPressed(java.awt.event.KeyEvent evt) { 370 jTextField1KeyPressed(evt); 371 } 372 }); 373 374 gridBagConstraints = new java.awt.GridBagConstraints (); 375 gridBagConstraints.gridx = 1; 376 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 377 gridBagConstraints.weightx = 1.0; 378 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 379 jPanel2.add(jTextField1, gridBagConstraints); 380 381 gridBagConstraints = new java.awt.GridBagConstraints (); 382 gridBagConstraints.gridx = 1; 383 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 384 gridBagConstraints.weightx = 1.0; 385 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 386 jPanel2.add(jComboBox2, gridBagConstraints); 387 388 jButtonOpen.setText("Open resource"); 389 jButtonOpen.setMargin(new java.awt.Insets (2, 12, 2, 12)); 390 jButtonOpen.addActionListener(new java.awt.event.ActionListener () { 391 public void actionPerformed(java.awt.event.ActionEvent evt) { 392 jButtonOpenActionPerformed(evt); 393 } 394 }); 395 396 gridBagConstraints = new java.awt.GridBagConstraints (); 397 gridBagConstraints.gridx = 2; 398 gridBagConstraints.insets = new java.awt.Insets (0, 16, 0, 4); 399 jPanel2.add(jButtonOpen, gridBagConstraints); 400 401 jButtonClose.setText("Cancel"); 402 jButtonClose.setMargin(new java.awt.Insets (2, 12, 2, 12)); 403 jButtonClose.addActionListener(new java.awt.event.ActionListener () { 404 public void actionPerformed(java.awt.event.ActionEvent evt) { 405 jButtonCloseActionPerformed(evt); 406 } 407 }); 408 409 gridBagConstraints = new java.awt.GridBagConstraints (); 410 gridBagConstraints.gridx = 2; 411 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 412 gridBagConstraints.insets = new java.awt.Insets (0, 16, 0, 4); 413 jPanel2.add(jButtonClose, gridBagConstraints); 414 415 gridBagConstraints = new java.awt.GridBagConstraints (); 416 gridBagConstraints.gridx = 0; 417 gridBagConstraints.gridy = 2; 418 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 419 gridBagConstraints.weightx = 1.0; 420 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 0); 421 add(jPanel2, gridBagConstraints); 422 423 } 425 private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { 427 if (evt.getKeyCode() == evt.VK_ENTER) 428 { 429 jButtonOpenActionPerformed(null); 430 } 431 432 } 434 private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) { 436 selectedDescriptor = null; 437 this.setDialogResult( JOptionPane.OK_OPTION); 438 dialog.setVisible(false); 439 dialog.dispose(); 440 441 } 443 private void jButtonOpenActionPerformed(java.awt.event.ActionEvent evt) { 445 if (jTextField1.getText().trim().length() == 0) return; 446 447 if (getSelectedDescriptor() == null) 448 { 449 String uri = jTextField1.getText().trim(); 452 while (uri.endsWith("/")) uri = uri.substring(0,uri.length()-1); 453 if (uri.length() == 0) return; 454 if (uri.indexOf("/") >= 0) 455 { 456 ResourceDescriptor nrd = new ResourceDescriptor(); 457 nrd.setUriString(uri); 458 nrd.setWsType(ResourceDescriptor.TYPE_FOLDER); 459 try { 460 nrd = getServer().getWSClient().get(nrd, null); 461 462 if (!nrd.getWsType().equals("-")) { 464 if (nrd.getWsType().equals(ResourceDescriptor.TYPE_FOLDER)) 465 { 466 openFolder(nrd); 467 return; 468 } 469 else 470 { 471 selectedDescriptor = nrd; 472 } 473 } 474 475 } catch (Exception ex){ 476 } 478 479 } 480 else 481 { 482 ResourceDescriptor nrd = new ResourceDescriptor(); 483 uri = ((ResourceDescriptor)jComboBoxLookIn.getSelectedItem()).getUriString() + "/" + uri; 484 nrd.setUriString(uri); 485 nrd.setWsType(ResourceDescriptor.TYPE_FOLDER); 486 try { 487 nrd = getServer().getWSClient().get(nrd, null); 488 if (nrd.getWsType() != null) { 490 if (nrd.getWsType().equals(ResourceDescriptor.TYPE_FOLDER)) 491 { 492 openFolder(nrd); 493 return; 494 } 495 else 496 { 497 selectedDescriptor = nrd; 498 } 499 } 500 } catch (Exception ex){ 501 } 503 504 } 505 506 if (getSelectedDescriptor() == null) 507 { 508 JOptionPane.showMessageDialog(this, uri + "\nResource not found or not valid.\nPlease verify the correct file name was given."); 509 return; 510 } 511 } 512 513 this.setDialogResult( JOptionPane.OK_OPTION); 514 dialog.setVisible(false); 515 dialog.dispose(); 516 517 } 519 520 524 public void openFolder(ResourceDescriptor nrd) 525 { 526 try { 527 528 nrd.setChildren(null); 529 530 jComboBoxLookIn.setSelectedIndex(0); 532 String path = nrd.getUriString(); 533 534 String complete_path = ""; 535 while (path.startsWith("/")) path =path.substring(1); 536 while (path.endsWith("/")) path = path.substring(0,path.length() -1); 537 while (path.indexOf("/") >= 0) 538 { 539 String folderName = path.substring(0, path.indexOf("/")); 540 541 path = path.substring(path.indexOf("/")+1); 542 543 complete_path += "/" + folderName; 544 ResourceDescriptor nr = new ResourceDescriptor(); 545 nr.setUriString(complete_path); 546 nr.setName(folderName); 547 nr.setWsType(ResourceDescriptor.TYPE_FOLDER); 548 nr.setChildren(null); 549 jComboBoxLookIn.addItem(nr); 550 } 551 552 jComboBoxLookIn.addItem(nrd); 553 jComboBoxLookIn.setSelectedItem(nrd); 554 555 jTextField1.setText(nrd.getUriString()); 556 jTextField1.setSelectionStart(0); 557 jTextField1.setSelectionEnd(nrd.getUriString().length()); 558 jTextField1.requestFocusInWindow(); 559 560 } catch (Exception ex) 561 { 562 ex.printStackTrace(); 563 } 564 } 565 566 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 568 if (jList1.getSelectedIndex() < 0) jTable1.getSelectionModel().clearSelection(); 569 else 570 { 571 jTable1.getSelectionModel().setSelectionInterval(jList1.getSelectedIndex(),jList1.getSelectedIndex()); 572 } 573 selectionChanged(); 574 } 576 577 578 private void jTable1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 579 580 if (jTable1.getSelectedRowCount() == 0) jList1.getSelectionModel().clearSelection(); 581 else 582 { 583 jList1.getSelectionModel().setSelectionInterval(jTable1.getSelectedRow(),jTable1.getSelectedRow()); 584 } 585 selectionChanged(); 586 } 587 588 589 private void selectionChanged() 590 { 591 selectedDescriptor = null; 592 if (jList1.getSelectedIndex() >= 0) 593 { 594 ResourceDescriptor rd = (ResourceDescriptor)jList1.getSelectedValue(); 595 if (rd.getWsType() != null && !rd.getWsType().equals(ResourceDescriptor.TYPE_FOLDER)) 596 { 597 selectedDescriptor = rd; 598 jTextField1.setText( rd.getName()); 599 } 600 } 601 } 602 603 private void jButtonUpActionPerformed(java.awt.event.ActionEvent evt) { 605 if (jComboBoxLookIn.getSelectedIndex() > 0) 606 { 607 jComboBoxLookIn.setSelectedIndex(jComboBoxLookIn.getSelectedIndex()-1); 608 } 609 610 } 612 private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1) 614 { 615 if (jTable1.getSelectedRow() >= 0) 616 { 617 ResourceDescriptor rd = (ResourceDescriptor)jTable1.getValueAt(jTable1.getSelectedRow(), 0); 618 if (rd.getWsType() != null && rd.getWsType().equals(ResourceDescriptor.TYPE_FOLDER)) 619 { 620 setCurrentParent(rd); 621 } 622 } 623 } 624 } 626 private void jList1MouseClicked(java.awt.event.MouseEvent evt) { 628 if (evt.getClickCount() == 2 && 629 evt.getButton() == evt.BUTTON1) 630 { 631 ResourceDescriptor rd = (ResourceDescriptor)jList1.getSelectedValue(); 632 if (rd.getWsType() != null && rd.getWsType().equals(ResourceDescriptor.TYPE_FOLDER)) 633 { 634 setCurrentParent(rd); 635 } 636 } 637 638 } 640 private void jComboBoxLookInActionPerformed(java.awt.event.ActionEvent evt) { 642 setCurrentParent( (ResourceDescriptor)jComboBoxLookIn.getSelectedItem()); 643 644 } 646 private void jButtonDetailsActionPerformed(java.awt.event.ActionEvent evt) { adjustListView(); 648 } 650 private void jButtonListActionPerformed(java.awt.event.ActionEvent evt) { 652 adjustListView(); 653 654 } 656 public void adjustListView() 657 { 658 jScrollPane1.setVisible(jButtonList.isSelected()); 659 jScrollPane2.setVisible(!jButtonList.isSelected()); 660 661 jPanel1.doLayout(); 662 jPanel1.updateUI(); 663 } 666 667 public ResourceDescriptor getRoot() { 668 return root; 669 } 670 671 public void setRoot(ResourceDescriptor root) { 672 this.root = root; 673 } 674 675 public ResourceDescriptor getCurrentParent() { 676 return currentParent; 677 } 678 679 public void setCurrentParent(ResourceDescriptor currentParent) { 680 681 if (this.currentParent == currentParent && 682 currentParent != null && currentParent.getChildren() != null) return; 684 this.currentParent = currentParent; 685 686 boolean found = false; 688 for (int i=0; i<jComboBoxLookIn.getItemCount(); ++i) 689 { 690 ResourceDescriptor tmprd = (ResourceDescriptor)jComboBoxLookIn.getItemAt(i); 691 if (tmprd == currentParent) 692 { 693 jComboBoxLookIn.setSelectedIndex(i); 694 found = true; 695 while (jComboBoxLookIn.getItemCount() > i+1) 696 { 697 jComboBoxLookIn.removeItemAt(i+1); 698 } 699 break; 700 } 701 } 702 703 if (!found && currentParent != null) 704 { 705 jComboBoxLookIn.addItem( currentParent ); 706 jComboBoxLookIn.setSelectedItem(currentParent); 707 } 708 709 refreshContent(); 710 } 711 712 717 private void refreshContent() 718 { 719 if (dialog == null) return; 720 try { 721 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); 722 723 DefaultListModel dlm = (DefaultListModel )jList1.getModel(); 724 DefaultTableModel dtm = (DefaultTableModel )jTable1.getModel(); 725 726 dlm.removeAllElements(); 727 dtm.setRowCount(0); 728 729 if (currentParent == null) return; 730 if (getServer() == null) return; 731 732 if (currentParent != null) 733 { 734 List children = currentParent.getChildren(); 735 if (children == null) 736 { 737 try { 738 children = list(currentParent); 739 for (int i=0; i<children.size(); ++i) 740 { 741 ((ResourceDescriptor)children.get(i)).setChildren(null); 742 } 743 currentParent.setChildren( children ); 744 } catch (Exception ex) 745 { 746 JOptionPane.showMessageDialog(this,"Unable to list " + currentParent); 747 ex.printStackTrace(); 748 } 749 } 750 751 if (children != null) 752 { 753 for (int i=0; i<children.size(); ++i) 754 { 755 ResourceDescriptor rd = ((ResourceDescriptor)children.get(i)); 756 dlm.addElement(rd); 757 dtm.addRow(new Object []{rd, rd.getLabel(), rd.getWsType()}); 758 } 759 } 760 } 761 } 762 finally 763 { 764 jList1.updateUI(); 765 jTable1.updateUI(); 766 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 767 } 768 } 769 770 public int getDialogResult() { 771 return dialogResult; 772 } 773 774 public void setDialogResult(int dialogResult) { 775 this.dialogResult = dialogResult; 776 } 777 778 public ResourceDescriptor getSelectedDescriptor() { 779 return selectedDescriptor; 780 } 781 782 783 784 private javax.swing.ButtonGroup buttonGroup1; 786 private javax.swing.JButton jButtonClose; 787 private javax.swing.JToggleButton jButtonDetails; 788 private javax.swing.JToggleButton jButtonList; 789 private javax.swing.JButton jButtonOpen; 790 private javax.swing.JButton jButtonUp; 791 private javax.swing.JComboBox jComboBox2; 792 private javax.swing.JComboBox jComboBoxLookIn; 793 private javax.swing.JLabel jLabel1; 794 private javax.swing.JLabel jLabel2; 795 private javax.swing.JLabel jLabel3; 796 private javax.swing.JList jList1; 797 private javax.swing.JPanel jPanel1; 798 private javax.swing.JPanel jPanel2; 799 private javax.swing.JPanel jPanelTop; 800 private javax.swing.JScrollPane jScrollPane1; 801 private javax.swing.JScrollPane jScrollPane2; 802 private javax.swing.JTable jTable1; 803 private javax.swing.JTextField jTextField1; 804 806 } 807 | Popular Tags |