📄 createtablefunctionpanel.java
字号:
try { Vector schemas = metaData.getHostedSchemasVector(); if (schemas == null || schemas.isEmpty()) { // try catalogs (ie. for mysql and others where schema not used) schemas = metaData.getHostedCatalogsVector(); } populateSchemaValues(schemas); } catch (DataSourceException e) { GUIUtilities.displayExceptionErrorDialog( "Error retrieving the catalog/schema names for the " + "selected connection.\n\nThe system returned:\n" + e.getExtendedMessage(), e); populateSchemaValues(new Vector<String>(0)); } // reset data types try { populateDataTypes(metaData.getDataTypesArray()); } catch (DataSourceException e) { GUIUtilities.displayExceptionErrorDialog( "Error retrieving the data types for the " + "selected connection.\n\nThe system returned:\n" + e.getExtendedMessage(), e); populateDataTypes(new String[0]); } } private void populateDataTypes(final String[] dataTypes) { GUIUtils.invokeAndWait(new Runnable() { public void run() { tablePanel.setDataTypes(dataTypes); } }); } private void populateSchemaValues(final Vector schemas) { GUIUtils.invokeAndWait(new Runnable() { public void run() { schemaModel.setElements(schemas); schemaCombo.setSelectedIndex(0); schemaCombo.setEnabled(true); } }); } public void setFocusComponent() { nameField.requestFocusInWindow(); nameField.selectAll(); } public void setSQLTextCaretPosition(int position) { sqlText.setCaretPosition(position); } protected void addButtonsPanel(JPanel buttonsPanel) { add(buttonsPanel, BorderLayout.SOUTH); } public void fireEditingStopped() { tablePanel.fireEditingStopped(); consPanel.fireEditingStopped(); } public void setColumnDataArray(ColumnData[] cda) { tablePanel.setColumnDataArray(cda, null); } public void setColumnConstraintVector(Vector ccv, boolean fillCombos) { consPanel.setData(ccv, fillCombos); } public void setColumnConstraintsArray(ColumnConstraint[] cca, boolean fillCombos) { Vector ccv = new Vector(cca.length); for (int i = 0; i < cca.length; i++) { ccv.add(cca[i]); } consPanel.setData(ccv, fillCombos); } /** * Indicates that a [long-running] process has begun or ended * as specified. This may trigger the glass pane on or off * or set the cursor appropriately. * * @param inProcess - true | false */ public void setInProcess(boolean inProcess) {} // ----------------------------------------------- // --- TableConstraintFunction implementations --- // ----------------------------------------------- public abstract Vector<String> getHostedSchemasVector(); public abstract Vector<String> getSchemaTables(String schemaName); public abstract Vector<String> getColumnNamesVector(String tableName, String schemaName); public void resetSQLText() { tablePanel.resetSQLText(); consPanel.resetSQLText(); } public void setSQLText() { sqlBuffer.setLength(0); sqlBuffer.append(CreateTableSQLSyntax.CREATE_TABLE); // check for a valid schema name if (schemaModel.getSize() > 0) { String schema = schemaCombo.getSelectedItem().toString(); if (!MiscUtils.isNull(schema)) { sqlBuffer.append(schemaCombo.getSelectedItem()). append(CreateTableSQLSyntax.DOT); } } sqlBuffer.append(nameField.getText()). append(CreateTableSQLSyntax.SPACE). append(CreateTableSQLSyntax.B_OPEN). append(tablePanel.getSQLText()). append(consPanel.getSQLText()); sqlBuffer.append(CreateTableSQLSyntax.B_CLOSE). append(CreateTableSQLSyntax.SEMI_COLON); setSQLText(sqlBuffer.toString()); } public void setSQLText(String values, int type) { sqlBuffer.setLength(0); sqlBuffer.append(CreateTableSQLSyntax.CREATE_TABLE); // check for a valid schema name if (schemaModel.getSize() > 0) { String schema = schemaCombo.getSelectedItem().toString(); if (!MiscUtils.isNull(schema)) { sqlBuffer.append(schemaCombo.getSelectedItem()). append(CreateTableSQLSyntax.DOT); } } sqlBuffer.append(nameField.getText()). append(CreateTableSQLSyntax.SPACE). append(CreateTableSQLSyntax.B_OPEN); if (type == TableModifier.COLUMN_VALUES) { sqlBuffer.append(values). append(consPanel.getSQLText()); } else if (type == TableModifier.CONSTRAINT_VALUES) { sqlBuffer.append(tablePanel.getSQLText()). append(values); } sqlBuffer.append(CreateTableSQLSyntax.B_CLOSE). append(CreateTableSQLSyntax.SEMI_COLON); setSQLText(sqlBuffer.toString()); } private void setSQLText(final String text) { GUIUtils.invokeLater(new Runnable() { public void run() { sqlText.setSQLText(text); } }); } public String getSQLText() { return sqlText.getSQLText(); } public String getTableName() { return nameField.getText(); } // ----------------------------------------------- // constraints panel only public void updateCellEditor(int col, int row, String value) {} public void columnValuesChanging(int col, int row, String value) {} public Vector getTableColumnDataVector() { return tablePanel.getTableColumnDataVector(); } public void stateChanged(ChangeEvent e) { if (tableTabs.getSelectedIndex() == 1) { tools.enableButtons(false); // if (table.isEditing()) // table.removeEditor(); } else { tools.enableButtons(true); } } /* private void tableTabs_changed() { if (tableTabs.getSelectedIndex() == 1) { tools.enableButtons(false); // if (table.isEditing()) // table.removeEditor(); } else { tools.enableButtons(true); } } */ public ColumnData[] getTableColumnDataAndConstraints() { String tableName = null; ColumnData[] cda = tablePanel.getTableColumnData(); ColumnConstraint[] cca = consPanel.getColumnConstraintArray(); for (int i = 0; i < cda.length; i++) { // reset the keys cda[i].setPrimaryKey(false); cda[i].setForeignKey(false); cda[i].resetConstraints(); tableName = cda[i].getTableName(); for (int j = 0; j < cca.length; j++) { if (cca[j].getColumn().equalsIgnoreCase(cda[i].getColumnName())) { if (cca[j].isPrimaryKey()) { cda[i].setPrimaryKey(true); } else if (cca[j].isForeignKey()) { cda[i].setForeignKey(true); } cca[j].setTable(tableName); cca[j].setNewConstraint(true); cda[i].addConstraint(cca[j]); } } } return cda; } public void columnValuesChanging() {} public ColumnData[] getTableColumnData() { return tablePanel.getTableColumnData(); } // ----------------------------------------------- // -------- TableFunction implementations -------- // ----------------------------------------------- public void moveColumnUp() { int index = tableTabs.getSelectedIndex(); if (index == 0) { tablePanel.moveColumnUp(); } } public void moveColumnDown() { int index = tableTabs.getSelectedIndex(); if (index == 0) { tablePanel.moveColumnDown(); } } public void deleteRow() { if (tableTabs.getSelectedIndex() == 0) { tablePanel.deleteRow(); } else if (tableTabs.getSelectedIndex() == 1) { consPanel.deleteSelectedRow(); } } public void insertBefore() { tablePanel.insertBefore(); } public void insertAfter() { if (tableTabs.getSelectedIndex() == 0) { tablePanel.insertAfter(); } else if (tableTabs.getSelectedIndex() == 1) { consPanel.insertRowAfter(); } } // ----------------------------------------------- public String getDisplayName() { return ""; } // ------------------------------------------------ // ----- TextEditorContainer implementations ------ // ------------------------------------------------ /** * Returns the SQL text pane as the TextEditor component * that this container holds. */ public TextEditor getTextEditor() { return sqlText; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -