Ejemplo n.º 1
0
  private void tabListValueChanged(
      javax.swing.event.ListSelectionEvent evt) { // GEN-FIRST:event_tabListValueChanged
    // TODO add your handling code here:
    // System.out.println("[JvxDbMgr]: " + evt.getFirstIndex() +" "+ evt.getLastIndex() +" "+
    // evt.getValueIsAdjusting());
    if (evt.getValueIsAdjusting()) return;
    // System.out.println("[JvxDbMgr]: IN: " + evt.getFirstIndex() +" "+ evt.getLastIndex() +" "+
    // evt.getValueIsAdjusting());
    try {
      // TODO add your handling code here:
      int sels[] = tabList.getSelectedIndices();
      ListModel model = tabList.getModel();
      Object vals[][] = new Object[sels.length][];
      int row = 0;
      int ncols = 0;
      for (int ind : sels) {
        String sel = (String) model.getElementAt(ind);
        List<String> fields = dbMeta.getTableFields(sel.trim());
        List<Object> rows = new ArrayList<Object>();
        rows.add(Boolean.FALSE);
        rows.add(sel);
        rows.addAll(rows.size(), fields);
        ncols = Math.max(ncols, rows.size());
        vals[row++] = rows.toArray();
      }
      List<String> names = new ArrayList<String>();
      names.add("Select");
      names.add("Table");
      for (int i = 0; i < ncols - 2; i++) {
        // "Table", "Field1", "Field2", "Field2",
        names.add("Field" + (i + 1));
      }
      for (int i = 0; i < row; i++) {
        if (vals[i].length < ncols) {
          List<Object> l = new ArrayList<Object>(Arrays.asList(vals[i]));
          for (int j = vals[i].length; j < ncols; j++) l.add("");
          vals[i] = l.toArray();
        }
      }
      dbTab.setModel(
          new javax.swing.table.DefaultTableModel(vals, names.toArray()) {
            @Override
            public Class<?> getColumnClass(int col) {
              return getValueAt(0, col).getClass();
            }
          });

    } catch (SQLException ex) {
      Logger.getLogger(JvxDBMgr.class.getName()).log(Level.SEVERE, null, ex);
    }
  } // GEN-LAST:event_tabListValueChanged