📄 tableview.java
字号:
if ( t instanceof Table && f instanceof Field) { loadCmbForeignKey((Table) t, (Field) f); } } } catch ( Exception ex ) { ex.printStackTrace(); } return super.editCellAt(row, column, e); } }; } catch (Throwable exception) { System.err.println("Exception creating fieldRelationsTable property."); } }; return fieldRelationsTable; } /** * Gets the tab property (javax.swing.JTabbedPane) value. * @return The tab property value. */ public javax.swing.JTabbedPane getTab() { /* Returns the tab property value. */ if (fieldTab == null) { try { fieldTab = new javax.swing.JTabbedPane(); } catch (Throwable exception) { System.err.println("Exception creating tab property."); } }; return fieldTab; } /** * Gets the table property (org.dbgen.Table) value. * @return The table property value. * @see #setTable */ public Table getTable() { /* Returns the table property value. */ if (fieldTable == null) { try { fieldTable = new Table(); } catch (Throwable exception) { System.err.println("Exception creating table property."); } }; return fieldTable; } /** * Gets the tableNameField property (org.dbgen.view.TextField) value. * @return The tableNameField property value. */ public org.dbgen.view.TextField getTableNameField() { /* Returns the tableNameField property value. */ if (fieldTableNameField == null) { try { fieldTableNameField = new org.dbgen.view.TextField(); fieldTableNameField.addSetFieldListener(this, TABLE_NAME_FIELD); } catch (Throwable exception) { System.err.println("Exception creating tableNameField property."); } }; return fieldTableNameField; } /** * This method was created in VisualAge. */ public void initConnections() { /* getCmbMasterKey().addActionListener( new ActionListener() { public void actionPerformed( ActionEvent ev ) { JTable tbl = getRelationsTable(); tbl.revalidate(); tbl.repaint(); } } ); */ // getCmbMasterKey().addItemListener(this); } /** * This method was created by a SmartGuide. */ public void initialize() { GridBagConstraints c = new GridBagConstraints(); int i = 0; JPanel generalPanel = getGeneralPanel(); generalPanel.setLayout(new GridBagLayout()); //generalPanel.setBorder(new BevelBorder(BevelBorder.RAISED)); Util.addGridBagComponent(generalPanel, c, ++i, new JLabel("Table Name")); Util.addGridBagComponent(generalPanel, c, ++i, getTableNameField()); Util.addGridBagComponent(generalPanel, c, ++i, new JLabel("Class Name")); Util.addGridBagComponent(generalPanel, c, ++i, getClassNameField()); Util.addGridBagComponent(generalPanel, c, ++i, new JLabel("Package Name (overrides project setting)")); Util.addGridBagComponent(generalPanel, c, ++i, getPackageNameField()); // Table Fields JPanel fieldsPanel = getFieldsPanel(); fieldsPanel.setLayout(new BorderLayout()); //JScrollPane scrollPane = JTable.createScrollPaneForTable(getFieldsTable()); //scrollPane.setPreferredSize(new Dimension(400, 300)); JScrollPane scrollPane = new JScrollPane(getFieldsTable()); JPanel buttonsPanel = new JPanel(new GridLayout(1, 2)); buttonsPanel.add(addButton = new JButton("Add Data Field")); buttonsPanel.add(deleteButton = new JButton("Delete Data Field")); addButton.addActionListener(this); deleteButton.addActionListener(this); fieldsPanel.add(BorderLayout.CENTER, scrollPane); fieldsPanel.add(BorderLayout.SOUTH, buttonsPanel); // Relation Fields JPanel relationsPanel = getRelationsPanel(); relationsPanel.setLayout(new BorderLayout()); JScrollPane scrollPane2 = new JScrollPane(getRelationsTable()); JPanel buttonsPanel2 = new JPanel(new GridLayout(1, 3)); buttonsPanel2.add(addButton2 = new JButton("Add Relation")); buttonsPanel2.add(deleteButton2 = new JButton("Delete Relation")); buttonsPanel2.add(helpButton = new JButton("Help")); addButton2.addActionListener(this); deleteButton2.addActionListener(this); helpButton.addActionListener(this); relationsPanel.add(BorderLayout.CENTER, scrollPane2); relationsPanel.add(BorderLayout.SOUTH, buttonsPanel2); fieldCedMasterKey = new DefaultCellEditor( getCmbMasterKey()); fieldCedForeignTable = new DefaultCellEditor( getCmbForeignTable()); fieldCedForeignKey = new DefaultCellEditor( getCmbForeignKey()); fieldCedMasterKey.setClickCountToStart(2); fieldCedForeignTable.setClickCountToStart(2); fieldCedForeignKey.setClickCountToStart(2); /* relationsPanel = getRelationsPanel(); relationsPanel.setLayout(new BorderLayout()); relationsPanel.add(BorderLayout.CENTER, new JLabel("Not available yet.", SwingConstants.CENTER)); */ JTabbedPane tab = getTab(); tab.addTab("General", null, generalPanel); tab.addTab("Fields", null, fieldsPanel); tab.addTab("Relations", null, relationsPanel); setLayout(new BorderLayout()); add(BorderLayout.CENTER, tab); initConnections(); return; } /** * This method was created in VisualAge. */ public void loadCmbForeignKey( Table foreignTable, Field masterKey) { try { if ( foreignTable == null || masterKey == null ) { getForeignKeyComboBoxModel().setObjects(null); return; } Vector fields = new Vector(); Vector foreignKeys = foreignTable.getFields(); for ( int i=0; i<foreignKeys.size(); i++ ) { Field f = (Field) foreignKeys.elementAt(i); if ( f.getType() == masterKey.getType() && f.getLength() == masterKey.getLength() && f.getScale() == masterKey.getScale() ) fields.addElement(f); } getForeignKeyComboBoxModel().setObjects(fields); } catch ( Exception ex ) { ex.printStackTrace(); } } /** * This method was created in VisualAge. */ public void loadCmbForeignTable() { try { getForeignTableComboBoxModel().setObjects( getTable().getForeignTables()); } catch ( Exception ex ) { ex.printStackTrace(); } } /** * This method was created in VisualAge. */ public void loadCmbMasterKey() { try { getMasterKeyComboBoxModel().setObjects( getTable().getFields()); } catch ( Exception ex ) { ex.printStackTrace(); } } /** * This method was created by a SmartGuide. * @param id int * @param value java.lang.String */ public void setField(int id, String value) { switch (id) { case TABLE_NAME_FIELD: getTable().setTableName(value); break; case CLASS_NAME_FIELD: getTable().setClassName(value); break; case PACKAGE_NAME_FIELD: getTable().setPackageName(value); break; default: throw new RuntimeException("BUG: Cannot set table field id=" + id + " value=" + value); } // XXX - DEBUG //getTable().dump(); return; } /** * Sets the table property (org.dbgen.Table) value. * @param table The new value for the property. * @see #getTable */ public void setTable(Table table) { /* Get the old property value for fire property change event. */ Table oldValue = fieldTable; /* Set the table property (attribute) to the new value. */ fieldTable = table; /* Fire (signal/notify) the table property change event. */ firePropertyChange("table", oldValue, table); // getRelationsTable().editingStopped( new javax.swing.event.ChangeEvent(this)); /* Update General Information */ getTableNameField().setText(table.getTableName()); getClassNameField().setText(table.getClassName()); getPackageNameField().setText(table.getPackageName()); /* Update Fields Information */ getFieldsTable().setModel(new TableFieldsModel(table)); getFieldsTable().setDefaultEditor(FieldType.class, typeCellEditor); getFieldsTable().getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); /* Update Fields Information */ TableRelationsModel relationModel = new TableRelationsModel(table); // relationModel.setJTable(getRelationsTable()); relationTableSorter = new TableSorter(relationModel); getRelationsTable().setModel(relationTableSorter); relationTableSorter.addMouseListenerToHeaderInTable(getRelationsTable()); new TableHeaderRenderer( relationTableSorter, getRelationsTable().getTableHeader()); getRelationsTable().getColumnModel().getColumn(COLUMN_MASTER_KEY).setCellEditor( fieldCedMasterKey); getRelationsTable().getColumnModel().getColumn(COLUMN_FOREIGN_TABLE).setCellEditor( fieldCedForeignTable); getRelationsTable().getColumnModel().getColumn(COLUMN_FOREIGN_KEY).setCellEditor( fieldCedForeignKey); // getMasterKeyComboBoxModel().setObjects( getTable().getFields()); loadCmbMasterKey(); loadCmbForeignTable(); // fieldCedMasterKey.addCellEditorListener(this); // fieldCedForeignTable.addCellEditorListener(this); // fieldCedForeignKey.addCellEditorListener(this); getRelationsTable().getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); /* Update Relations Information */ // XXX - need implementation return; } /** * TESTING * @param args java.lang.String[] */ public static void test(java.lang.String[] args) { Table table = new Table(); table.setPackageName("org.dbgen.test"); table.setClassName("Zip"); table.setTableName("zip"); table.addField(new Field(true, "zip_code", java.sql.Types.VARCHAR, 10, 0)); table.addField(new Field(false, "state_code", java.sql.Types.CHAR, 2, 0)); table.addField(new Field(false, "city_name", java.sql.Types.VARCHAR, 30, 0)); table.addField(new Field(false, "county_name", java.sql.Types.VARCHAR, 30, 0)); table.addField(new Field(false, "county_code", java.sql.Types.VARCHAR, 4, 0)); JFrame frame = new JFrame("TableView Test"); TableView view = new TableView(); view.setTable(table); frame.getContentPane().add(view); frame.pack(); frame.show(); } /** * This method was created in VisualAge. * @param ev javax.swing.event.ListSelectionEvent */ public void valueChanged( ListSelectionEvent ev ) { if ( ev.getValueIsAdjusting() || getRelationsTable().getSelectedRowCount() <= 0) return; //System.out.println(getRelationsTable().getSelectedRowCount()); //System.out.println(getRelationsTable().getSelectedColumn()); // reload the foreign key column Object t = getRelationsTable().getValueAt( getRelationsTable().getSelectedRow(), COLUMN_FOREIGN_TABLE); if ( !(t instanceof Table)) return; Object f = getRelationsTable().getValueAt( getRelationsTable().getSelectedRow(), COLUMN_MASTER_KEY); if ( !(f instanceof Field)) return; loadCmbForeignKey((Table) t, (Field) f); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -