[Squirrel-sql-commits] sql12/plugins/refactoring/src/net/sourceforge/squirrel_sql/plugins/refactori
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
Update of /cvsroot/squirrel-sql/sql12/plugins/refactoring/src/net/sourceforge/squirrel_sql/plugins/refactoring/gui In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv14081/plugins/refactoring/src/net/sourceforge/squirrel_sql/plugins/refactoring/gui Modified Files: DefaultListDialog.java AddViewDialog.java AddLookupTableDialog.java MergeColumnDialog.java Log Message: Finished implementing DB2 refactorings. Index: AddViewDialog.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/refactoring/src/net/sourceforge/squirrel_sql/plugins/refactoring/gui/AddViewDialog.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AddViewDialog.java 29 Dec 2007 18:21:46 -0000 1.1 --- AddViewDialog.java 14 Jan 2008 01:38:05 -0000 1.2 *************** *** 1,21 **** package net.sourceforge.squirrel_sql.plugins.refactoring.gui; /* ! * Copyright (C) 2007 Daniel Regli & Yannick Winiger ! * http://sourceforge.net/projects/squirrel-sql ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation; either version 2 ! * of the License, or any later version. ! * ! * This program is distributed in the hope that it will be useful, ! * but WITHOUT ANY WARRANTY; without even the implied warranty of ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! * GNU General Public License for more details. ! * ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ import net.sourceforge.squirrel_sql.fw.util.StringManager; --- 1,22 ---- package net.sourceforge.squirrel_sql.plugins.refactoring.gui; + /* ! * Copyright (C) 2007 Daniel Regli & Yannick Winiger ! * http://sourceforge.net/projects/squirrel-sql ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation; either version 2 ! * of the License, or any later version. ! * ! * This program is distributed in the hope that it will be useful, ! * but WITHOUT ANY WARRANTY; without even the implied warranty of ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! * GNU General Public License for more details. ! * ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ import net.sourceforge.squirrel_sql.fw.util.StringManager; *************** *** 31,277 **** import java.awt.event.KeyListener; ! public class AddViewDialog extends AbstractRefactoringTabbedDialog { ! ! /** ! * Internationalized strings for this class. ! */ ! private static final StringManager s_stringMgr = ! StringManagerFactory.getStringManager(AddViewDialog.class); ! /** ! * Logger for this class. ! */ ! private final static ILogger log = ! LoggerController.createLogger(AddViewDialog.class); ! ! ! protected interface i18n { ! ! String DIALOG_TITLE = ! s_stringMgr.getString("AddViewDialog.title"); ! ! String TABBEDPANE_PROPERTIES_LABEL = ! s_stringMgr.getString("AddViewDialog.propertiesTabname"); ! ! String TABBEDPANE_DEFINITION_LABEL = ! s_stringMgr.getString("AddViewDialog.definitionTabName"); ! ! String PROPERTIES_NAME_LABEL = ! s_stringMgr.getString("AddViewDialog.propertiesNameLabel"); ! ! String PROPERTIES_CHECK_OPTION_LABEL = ! s_stringMgr.getString("AddViewDialog.checkOptionLabel"); ! ! String PROPERTIES_LOCAL = ! s_stringMgr.getString("AddViewDialog.checkOptionLocal"); ! ! String PROPERTIES_CASCADED = ! s_stringMgr.getString("AddViewDialog.checkOptionCascaded"); ! ! } ! ! private DefinitionTab _definitionTab; ! private PropertiesTab _propertiesTab; ! private boolean _defintionComplete = false; ! ! ! public AddViewDialog() { ! super(new Dimension(400, 250)); ! ! init(); ! } ! ! ! private void init() { ! _propertiesTab = new PropertiesTab(); ! _definitionTab = new DefinitionTab(); ! pane.addTab(i18n.TABBEDPANE_PROPERTIES_LABEL, _propertiesTab); ! pane.addTab(i18n.TABBEDPANE_DEFINITION_LABEL, _definitionTab); ! setAllButtonEnabled(false); ! setTitle(AddViewDialog.i18n.DIALOG_TITLE); ! } ! private void checkInputCompletion() { ! if (_propertiesTab._viewNameField.getText().equals("") || !_defintionComplete) ! setAllButtonEnabled(false); ! else // if the check gets till here we have all the needed information ! setAllButtonEnabled(true); ! } ! public void enableCheckOptions(boolean enable) { ! _propertiesTab.enableCheckOptions(enable); ! } ! public String getViewName() { ! return _propertiesTab.getViewName(); ! } ! public String getViewDefinition() { ! return _definitionTab.getViewDefinition(); ! } ! public String getCheckOption() { ! return _propertiesTab.getCheckOption(); ! } ! private class PropertiesTab extends JPanel { ! private JTextField _viewNameField; ! private JCheckBox _checkOptionBox; ! private JRadioButton _localRadio; ! private JRadioButton _cascadeRadio; ! private ButtonGroup _radioGroup; ! public PropertiesTab() { ! init(); ! enableCheckOptions(false); ! } ! private void init() { ! setLayout(new GridBagLayout()); ! JLabel nameLabel = getBorderedLabel(i18n.PROPERTIES_NAME_LABEL, emptyBorder); ! _viewNameField = new JTextField(); ! _viewNameField.setPreferredSize(mediumField); ! _viewNameField.addKeyListener(new KeyListener() { ! public void keyTyped(KeyEvent keyEvent) { ! } ! public void keyPressed(KeyEvent keyEvent) { ! } ! public void keyReleased(KeyEvent keyEvent) { ! checkInputCompletion(); ! } ! }); ! JLabel checkOptionLabel = getBorderedLabel(i18n.PROPERTIES_CHECK_OPTION_LABEL, emptyBorder); ! _checkOptionBox = new JCheckBox(); ! _checkOptionBox.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent event) { ! enableCheckOptionRadios(_checkOptionBox.isSelected()); ! } ! }); ! _localRadio = new JRadioButton(i18n.PROPERTIES_LOCAL); ! _localRadio.setActionCommand(i18n.PROPERTIES_LOCAL); ! _cascadeRadio = new JRadioButton(i18n.PROPERTIES_CASCADED); ! _cascadeRadio.setActionCommand(i18n.PROPERTIES_CASCADED); ! _cascadeRadio.setSelected(true); ! _radioGroup = new ButtonGroup(); ! _radioGroup.add(_localRadio); ! _radioGroup.add(_cascadeRadio); ! Insets boxesInsets = new Insets(5, 5, 0, 5); ! add(nameLabel, new GridBagConstraints(0, 0, 1, 1, 1, 0, GridBagConstraints.NORTHEAST, GridBagConstraints.HORIZONTAL, boxesInsets, 0, 0)); ! add(_viewNameField, new GridBagConstraints(1, 0, 1, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, boxesInsets, 0, 0)); ! add(checkOptionLabel, new GridBagConstraints(0, 1, 1, 1, 1, 0, GridBagConstraints.NORTHEAST, GridBagConstraints.HORIZONTAL, boxesInsets, 0, 0)); ! add(_checkOptionBox, new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, boxesInsets, 0, 0)); ! add(_localRadio, new GridBagConstraints(1, 2, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, boxesInsets, 0, 0)); ! boxesInsets.bottom = 5; ! add(_cascadeRadio, new GridBagConstraints(1, 3, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, boxesInsets, 0, 0)); ! } ! private void enableCheckOptionRadios(boolean enable) { ! _localRadio.setEnabled(enable); ! _cascadeRadio.setEnabled(enable); ! } ! public void enableCheckOptions(boolean enable) { ! _checkOptionBox.setSelected(enable); ! _checkOptionBox.setEnabled(enable); ! enableCheckOptionRadios(enable); ! } ! public String getViewName() { ! return _viewNameField.getText(); ! } ! public String getCheckOption() { ! if (!_checkOptionBox.isSelected()) return null; ! return _radioGroup.getSelection().getActionCommand(); ! } ! } ! class DefinitionTab extends JPanel { ! JTextArea _definitionArea; ! public DefinitionTab() { ! init(); ! } ! private void init() { ! setLayout(new GridBagLayout()); ! _definitionArea = new JTextArea(); ! _definitionArea.setBorder(BorderFactory.createLineBorder(Color.black)); ! _definitionArea.setPreferredSize(mediumField); ! _definitionArea.setLineWrap(true); ! _definitionArea.setWrapStyleWord(true); ! _definitionArea.addKeyListener(new KeyListener() { ! public void keyTyped(KeyEvent keyEvent) { ! } ! public void keyPressed(KeyEvent keyEvent) { ! } ! public void keyReleased(KeyEvent keyEvent) { ! checkQuery(); ! } ! }); ! JScrollPane scrollTablePane = new JScrollPane(_definitionArea); ! //adding all Colums together ! add(scrollTablePane, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); ! } ! private void checkQuery() { ! String lowQuery = _definitionArea.getText().toLowerCase(); ! _defintionComplete = lowQuery.contains("select") && lowQuery.contains("from"); ! checkInputCompletion(); ! } ! public String getViewDefinition() { ! return _definitionArea.getText(); ! } ! } ! public static void main(String[] args) { ! AddViewDialog dialog = new AddViewDialog(); ! dialog.setVisible(true); ! } } --- 32,361 ---- import java.awt.event.KeyListener; + public class AddViewDialog extends AbstractRefactoringTabbedDialog + { ! private static final long serialVersionUID = -4707883598801686297L; + /** + * Internationalized strings for this class. + */ + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(AddViewDialog.class); ! /** ! * Logger for this class. ! */ ! @SuppressWarnings("unused") ! private final static ILogger log = LoggerController.createLogger(AddViewDialog.class); + protected interface i18n + { ! String DIALOG_TITLE = s_stringMgr.getString("AddViewDialog.title"); + String TABBEDPANE_PROPERTIES_LABEL = s_stringMgr.getString("AddViewDialog.propertiesTabname"); ! String TABBEDPANE_DEFINITION_LABEL = s_stringMgr.getString("AddViewDialog.definitionTabName"); + String PROPERTIES_NAME_LABEL = s_stringMgr.getString("AddViewDialog.propertiesNameLabel"); ! String PROPERTIES_CHECK_OPTION_LABEL = s_stringMgr.getString("AddViewDialog.checkOptionLabel"); + String PROPERTIES_LOCAL = s_stringMgr.getString("AddViewDialog.checkOptionLocal"); ! String PROPERTIES_CASCADED = s_stringMgr.getString("AddViewDialog.checkOptionCascaded"); + } ! private DefinitionTab _definitionTab; + private PropertiesTab _propertiesTab; ! private boolean _defintionComplete = false; + public AddViewDialog() + { + super(new Dimension(400, 250)); ! init(); ! } ! private void init() ! { ! _propertiesTab = new PropertiesTab(); ! _definitionTab = new DefinitionTab(); ! pane.addTab(i18n.TABBEDPANE_PROPERTIES_LABEL, _propertiesTab); ! pane.addTab(i18n.TABBEDPANE_DEFINITION_LABEL, _definitionTab); ! setAllButtonEnabled(false); ! setTitle(AddViewDialog.i18n.DIALOG_TITLE); ! } ! private void checkInputCompletion() ! { ! if (_propertiesTab._viewNameField.getText().equals("") || !_defintionComplete) ! setAllButtonEnabled(false); ! else ! // if the check gets till here we have all the needed information ! setAllButtonEnabled(true); ! } + public void enableCheckOptions(boolean enable) + { + _propertiesTab.enableCheckOptions(enable); + } ! public String getViewName() ! { ! return _propertiesTab.getViewName(); ! } + public String getViewDefinition() + { + return _definitionTab.getViewDefinition(); + } ! public String getCheckOption() ! { ! return _propertiesTab.getCheckOption(); ! } ! private class PropertiesTab extends JPanel ! { ! private static final long serialVersionUID = 6552656160947599842L; ! private JTextField _viewNameField; ! private JCheckBox _checkOptionBox; ! private JRadioButton _localRadio; ! private JRadioButton _cascadeRadio; ! private ButtonGroup _radioGroup; + public PropertiesTab() + { + init(); + enableCheckOptions(false); + } ! private void init() ! { ! setLayout(new GridBagLayout()); + JLabel nameLabel = getBorderedLabel(i18n.PROPERTIES_NAME_LABEL, emptyBorder); ! _viewNameField = new JTextField(); ! _viewNameField.setPreferredSize(mediumField); ! _viewNameField.addKeyListener(new KeyListener() ! { ! public void keyTyped(KeyEvent keyEvent) ! { ! } + public void keyPressed(KeyEvent keyEvent) + { + } ! public void keyReleased(KeyEvent keyEvent) ! { ! checkInputCompletion(); ! } ! }); + JLabel checkOptionLabel = getBorderedLabel(i18n.PROPERTIES_CHECK_OPTION_LABEL, emptyBorder); + _checkOptionBox = new JCheckBox(); + _checkOptionBox.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent event) + { + enableCheckOptionRadios(_checkOptionBox.isSelected()); + } + }); ! _localRadio = new JRadioButton(i18n.PROPERTIES_LOCAL); ! _localRadio.setActionCommand(i18n.PROPERTIES_LOCAL); + _cascadeRadio = new JRadioButton(i18n.PROPERTIES_CASCADED); + _cascadeRadio.setActionCommand(i18n.PROPERTIES_CASCADED); + _cascadeRadio.setSelected(true); ! _radioGroup = new ButtonGroup(); ! _radioGroup.add(_localRadio); ! _radioGroup.add(_cascadeRadio); + Insets boxesInsets = new Insets(5, 5, 0, 5); ! add(nameLabel, new GridBagConstraints( 0, ! 0, ! 1, ! 1, ! 1, ! 0, ! GridBagConstraints.NORTHEAST, ! GridBagConstraints.HORIZONTAL, ! boxesInsets, ! 0, ! 0)); ! add(_viewNameField, new GridBagConstraints( 1, ! 0, ! 1, ! 1, ! 1, ! 0, ! GridBagConstraints.NORTHWEST, ! GridBagConstraints.NONE, ! boxesInsets, ! 0, ! 0)); ! add(checkOptionLabel, new GridBagConstraints(0, ! 1, ! 1, ! 1, ! 1, ! 0, ! GridBagConstraints.NORTHEAST, ! GridBagConstraints.HORIZONTAL, ! boxesInsets, ! 0, ! 0)); ! add(_checkOptionBox, new GridBagConstraints( 1, ! 1, ! 1, ! 1, ! 1, ! 0, ! GridBagConstraints.WEST, ! GridBagConstraints.NONE, ! boxesInsets, ! 0, ! 0)); + add(_localRadio, new GridBagConstraints( 1, + 2, + 1, + 1, + 1, + 0, + GridBagConstraints.WEST, + GridBagConstraints.NONE, + boxesInsets, + 0, + 0)); + boxesInsets.bottom = 5; + add(_cascadeRadio, new GridBagConstraints(1, + 3, + 1, + 1, + 1, + 0, + GridBagConstraints.WEST, + GridBagConstraints.NONE, + boxesInsets, + 0, + 0)); + } ! private void enableCheckOptionRadios(boolean enable) ! { ! _localRadio.setEnabled(enable); ! _cascadeRadio.setEnabled(enable); ! } + public void enableCheckOptions(boolean enable) + { + _checkOptionBox.setSelected(enable); + _checkOptionBox.setEnabled(enable); + enableCheckOptionRadios(enable); + } ! public String getViewName() ! { ! return _viewNameField.getText(); ! } ! public String getCheckOption() ! { ! if (!_checkOptionBox.isSelected()) ! return null; ! return _radioGroup.getSelection().getActionCommand(); ! } ! } ! class DefinitionTab extends JPanel ! { ! private static final long serialVersionUID = 6541977721917288953L; ! JTextArea _definitionArea; + public DefinitionTab() + { + init(); + } ! private void init() ! { ! setLayout(new GridBagLayout()); + _definitionArea = new JTextArea(); + _definitionArea.setBorder(BorderFactory.createLineBorder(Color.black)); + _definitionArea.setPreferredSize(mediumField); + _definitionArea.setLineWrap(true); + _definitionArea.setWrapStyleWord(true); ! _definitionArea.addKeyListener(new KeyListener() ! { ! public void keyTyped(KeyEvent keyEvent) ! { ! } ! public void keyPressed(KeyEvent keyEvent) ! { ! } ! public void keyReleased(KeyEvent keyEvent) ! { ! checkQuery(); ! } ! }); + JScrollPane scrollTablePane = new JScrollPane(_definitionArea); ! // adding all Colums together ! add(scrollTablePane, new GridBagConstraints( 0, ! 0, ! 1, ! 1, ! 1, ! 1, ! GridBagConstraints.WEST, ! GridBagConstraints.BOTH, ! new Insets(5, 5, 5, 5), ! 0, ! 0)); ! } + private void checkQuery() + { + String lowQuery = _definitionArea.getText().toLowerCase(); ! _defintionComplete = lowQuery.contains("select") && lowQuery.contains("from"); ! checkInputCompletion(); ! } + public String getViewDefinition() + { + return _definitionArea.getText(); + } + } ! public static void main(String[] args) ! { ! AddViewDialog dialog = new AddViewDialog(); ! dialog.setVisible(true); ! } } Index: AddLookupTableDialog.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/refactoring/src/net/sourceforge/squirrel_sql/plugins/refactoring/gui/AddLookupTableDialog.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AddLookupTableDialog.java 29 Dec 2007 18:21:46 -0000 1.1 --- AddLookupTableDialog.java 14 Jan 2008 01:38:05 -0000 1.2 *************** *** 1,21 **** package net.sourceforge.squirrel_sql.plugins.refactoring.gui; /* ! * Copyright (C) 2007 Daniel Regli & Yannick Winiger ! * http://sourceforge.net/projects/squirrel-sql ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation; either version 2 ! * of the License, or any later version. ! * ! * This program is distributed in the hope that it will be useful, ! * but WITHOUT ANY WARRANTY; without even the implied warranty of ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! * GNU General Public License for more details. ! * ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ import net.sourceforge.squirrel_sql.fw.util.StringManager; --- 1,22 ---- package net.sourceforge.squirrel_sql.plugins.refactoring.gui; + /* ! * Copyright (C) 2007 Daniel Regli & Yannick Winiger ! * http://sourceforge.net/projects/squirrel-sql ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation; either version 2 ! * of the License, or any later version. ! * ! * This program is distributed in the hope that it will be useful, ! * but WITHOUT ANY WARRANTY; without even the implied warranty of ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! * GNU General Public License for more details. ! * ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ import net.sourceforge.squirrel_sql.fw.util.StringManager; *************** *** 34,458 **** import java.util.ArrayList; ! public class AddLookupTableDialog extends AbstractRefactoringTabbedDialog { ! /** Logger for this class. */ ! private static final ILogger s_log = LoggerController.createLogger(AddLookupTableDialog.class); ! ! /** Internationalized strings for this class. */ ! private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(AddLookupTableDialog.class); ! ! ! static interface i18n { ! String DIALOG_TITLE = s_stringMgr.getString("AddLookupTableDialog.dialogTitle"); ! String SOURCE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceTabLabel"); ! String LOOKUP_LABEL = s_stringMgr.getString("AddLookupTableDialog.lookupTabLabel"); ! String BEHAVIOUR_LABEL = s_stringMgr.getString("AddLookupTableDialog.behaviourTabLabel"); ! String SOURCE_TABLE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceTableLabel"); ! String SOURCE_COLUMN_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceColumnsLabel"); ! String SOURCE_FOREIGNKEY_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceForeignKeyLabel"); ! String SOURCE_MODE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceModeLabel"); ! String SOURCE_MODE_KEEP_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceModeKeepLabel"); ! String SOURCE_MODE_KEEP_TOOLTIP = s_stringMgr.getString("AddLookupTableDialog.sourceModeKeepTooltip"); ! String SOURCE_MODE_REPLACE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceModeReplaceLabel"); ! String SOURCE_MODE_REPLACE_TOOLTIP = s_stringMgr.getString("AddLookupTableDialog.sourceModeReplaceTooltip"); ! String LOOKUP_TABLE_LABEL = s_stringMgr.getString("AddLookupTableDialog.lookupTableLabel"); ! String LOOKUP_COLUMNS_LABEL = s_stringMgr.getString("AddLookupTableDialog.lookupColumnsLabel"); ! String LOOKUP_COLUMNSTABLE_HEADER1 = s_stringMgr.getString("AddLookupTableDialog.lookupColumnsTableHeader1"); ! String LOOKUP_COLUMNSTABLE_HEADER2 = s_stringMgr.getString("AddLookupTableDialog.lookupColumnsTableHeader2"); ! String BEHAVIOUR_DROP_LABEL = s_stringMgr.getString("AddLookupTableDialog.behaviourDropLabel"); ! String BEHAVIOUR_DROP_CASCADE_LABEL = s_stringMgr.getString("AddLookupTableDialog.behaviourDropCascadeLabel"); ! String BEHAVIOUR_DROP_CASCADE_TOOLIP = s_stringMgr.getString("AddLookupTableDialog.behaviourDropCascadeToolTip"); ! } ! ! private SourceTab _sourceTab; ! private LookupTab _lookupTab; ! private BehaviourTab _behaviourTab; ! ! private final String _tableName; ! private final String[] _columnNames; ! ! public static final int MODE_KEEP = 1; ! public static final int MODE_REPLACE = 2; ! ! ! public AddLookupTableDialog(String tableName, String[] columnNames) { ! super(new Dimension(430, 350)); ! _tableName = tableName; ! _columnNames = columnNames; ! init(); ! } ! ! ! private void init() { ! _sourceTab = new SourceTab(); ! _lookupTab = new LookupTab(); ! _behaviourTab = new BehaviourTab(); ! pane.addTab(i18n.SOURCE_LABEL, _sourceTab); ! pane.addTab(i18n.LOOKUP_LABEL, _lookupTab); ! ! setAllButtonEnabled(false); ! setTitle(i18n.DIALOG_TITLE); ! } ! ! public String getSourceColumn() { ! return _sourceTab.getColumn(); ! } ! public String getForeignKeyName() { ! return _sourceTab.getForeignKey(); ! } ! public int getMode() { ! return _sourceTab.getMode(); ! } ! public String getLookupTableName() { ! return _lookupTab.getTableName(); ! } ! public String getLookupPrimaryKey() { ! return _lookupTab.getPrimaryKey(); ! } ! public String getLookupSecondColumn() { ! return _lookupTab.getSecondColumn(); ! } ! public boolean getDropCascade() { ! return _behaviourTab.getDropCascade(); ! } ! private JPanel emptyBorderPanel(JComponent c) { ! JPanel panel = new JPanel(new GridLayout(1, 1)); ! panel.setBorder(emptyBorder); ! panel.add(c); ! return panel; ! } ! private class SourceTab extends JPanel { ! private JList _columnList; ! private JTextField _foreignKeyTextField; ! private ButtonGroup _modeButtonGroup; ! private JRadioButton _keepRadioButton; ! private JRadioButton _replaceRadioButton; ! public SourceTab() { ! init(); ! } ! private void init() { ! setLayout(new GridBagLayout()); ! setBorder(new EmptyBorder(10, 0, 0, 30)); ! GridBagConstraints gbc = new GridBagConstraints(); ! gbc.gridx = 0; ! gbc.gridy = -1; ! // Table ! JLabel tableLabel = getBorderedLabel(i18n.SOURCE_TABLE_LABEL + " ", emptyBorder); ! add(tableLabel, getLabelConstraints(gbc)); ! JTextField tableTextField = getSizedTextField(mediumField); ! tableTextField.setText(_tableName); ! tableTextField.setEditable(false); ! add(emptyBorderPanel(tableTextField), getFieldConstraints(gbc)); ! // Column ! JLabel columnLabel = getBorderedLabel(i18n.SOURCE_COLUMN_LABEL + " ", emptyBorder); ! add(columnLabel, getLabelConstraints(gbc)); ! _columnList = new JList(_columnNames); ! _columnList.addListSelectionListener(new ColumnListSelectionListener()); ! _columnList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ! JScrollPane columnScrollPane = new JScrollPane(_columnList); ! gbc = getFieldConstraints(gbc); ! gbc.weightx = 1; ! gbc.weighty = 1; ! gbc.fill = GridBagConstraints.BOTH; ! add(emptyBorderPanel(columnScrollPane), gbc); ! // Foreign Key ! JLabel foreignKeyLabel = getBorderedLabel(i18n.SOURCE_FOREIGNKEY_LABEL + " ", emptyBorder); ! add(foreignKeyLabel, getLabelConstraints(gbc)); ! _foreignKeyTextField = getSizedTextField(mediumField); ! add(emptyBorderPanel(_foreignKeyTextField), getFieldConstraints(gbc)); ! // Mode ! JLabel modeLabel = getBorderedLabel(i18n.SOURCE_MODE_LABEL + " ", emptyBorder); ! add(modeLabel, getLabelConstraints(gbc)); ! _keepRadioButton = new JRadioButton(i18n.SOURCE_MODE_KEEP_LABEL); ! _keepRadioButton.setToolTipText(i18n.SOURCE_MODE_KEEP_TOOLTIP); ! _keepRadioButton.setSelected(true); ! _keepRadioButton.addItemListener(new ModeItemListener()); ! _replaceRadioButton = new JRadioButton(i18n.SOURCE_MODE_REPLACE_LABEL); ! _replaceRadioButton.setToolTipText(i18n.SOURCE_MODE_REPLACE_TOOLTIP); ! _replaceRadioButton.addItemListener(new ModeItemListener()); ! _modeButtonGroup = new ButtonGroup(); ! _modeButtonGroup.add(_keepRadioButton); ! _modeButtonGroup.add(_replaceRadioButton); ! JPanel modePanel = new JPanel(new GridLayout(2, 1)); ! modePanel.add(_keepRadioButton); ! modePanel.add(_replaceRadioButton); ! add(modePanel, getFieldConstraints(gbc)); ! } ! public String getColumn() { ! return String.valueOf(_columnList.getSelectedValue()); ! } ! public String getForeignKey() { ! return _foreignKeyTextField.getText(); ! } ! public int getMode() { ! if (_keepRadioButton.isSelected()) { ! return MODE_KEEP; ! } else if (_replaceRadioButton.isSelected()) { ! return MODE_REPLACE; ! } else { ! throw new IllegalStateException("There should always be at least one mode selected!"); ! } ! } ! private class ColumnListSelectionListener implements ListSelectionListener { ! public void valueChanged(ListSelectionEvent e) { ! if (_columnList.getSelectedValue() == null) { ! setAllButtonEnabled(false); ! } else { ! String selected = String.valueOf(_columnList.getSelectedValue()); ! _lookupTab.onSourceColumnChange(selected); ! _foreignKeyTextField.setText("fk_" + selected); ! setAllButtonEnabled(true); ! } ! } ! } ! private class ModeItemListener implements ItemListener { ! public void itemStateChanged(ItemEvent e) { ! if (e.getStateChange() == ItemEvent.SELECTED) { ! _lookupTab.onSourceModeChange(getMode()); ! if (e.getItem().equals(_replaceRadioButton)) pane.addTab(i18n.BEHAVIOUR_LABEL, _behaviourTab); ! else pane.remove(_behaviourTab); ! } ! } ! } ! } ! private class LookupTab extends JPanel { ! private JTextField _tableTextField; ! private final JTable _columnTable = new JTable(); ! private final ColumnTableModel _columnTableModel = new ColumnTableModel(); ! public LookupTab() { ! init(); ! } ! private void init() { ! setLayout(new GridBagLayout()); ! setBorder(new EmptyBorder(10, 0, 0, 30)); ! GridBagConstraints gbc = new GridBagConstraints(); ! gbc.gridx = 0; ! gbc.gridy = -1; ! // Table ! JLabel tableLabel = getBorderedLabel(i18n.LOOKUP_TABLE_LABEL + " ", emptyBorder); ! add(tableLabel, getLabelConstraints(gbc)); ! _tableTextField = getSizedTextField(mediumField); ! _tableTextField.setEditable(true); ! add(emptyBorderPanel(_tableTextField), getFieldConstraints(gbc)); ! // Columns ! JLabel columnLabel = getBorderedLabel(i18n.LOOKUP_COLUMNS_LABEL + " ", emptyBorder); ! add(columnLabel, getLabelConstraints(gbc)); ! _columnTable.setModel(_columnTableModel); ! _columnTable.setRowSelectionAllowed(true); ! _columnTable.setColumnSelectionAllowed(false); ! _columnTable.setCellSelectionEnabled(true); ! _columnTable.getTableHeader().setReorderingAllowed(false); ! _columnTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ! JScrollPane columnScrollPane = new JScrollPane(_columnTable); ! gbc = getFieldConstraints(gbc); ! gbc.weightx = 1; ! gbc.weighty = 1; ! gbc.fill = GridBagConstraints.BOTH; ! add(emptyBorderPanel(columnScrollPane), gbc); ! } ! public void onSourceColumnChange(String column) { ! _tableTextField.setText(column); ! onChange(column, _sourceTab.getMode()); ! } ! public void onSourceModeChange(int mode) { ! onChange(_sourceTab.getColumn(), mode); ! } ! private void onChange(String column, int mode) { ! if (mode == MODE_KEEP) { ! _columnTableModel.clear(); ! _columnTableModel.addRow(new String[]{column, "Primary Key"}); ! } else if (mode == MODE_REPLACE) { ! _columnTableModel.clear(); ! _columnTableModel.addRow(new String[]{column + "Nr", "Primary Key"}); ! _columnTableModel.addRow(new String[]{column, ""}); ! } ! } ! public String getTableName() { ! return _tableTextField.getText(); ! } ! public String getPrimaryKey() { ! if (_columnTableModel.getRowCount() > 0) ! return String.valueOf(_columnTableModel.getValueAt(0, 0)); ! else return null; ! } ! public String getSecondColumn() { ! if (_columnTableModel.getRowCount() > 1) ! return String.valueOf(_columnTableModel.getValueAt(1, 0)); ! else return null; ! } ! class ColumnTableModel extends AbstractTableModel { ! private final ArrayList<String[]> _rowData = new ArrayList<String[]>(); ! private final String[] _columnNames = {i18n.LOOKUP_COLUMNSTABLE_HEADER1, i18n.LOOKUP_COLUMNSTABLE_HEADER2}; ! public String getColumnName(int col) { ! return _columnNames[col]; ! } ! public int getRowCount() { ! return _rowData.size(); ! } ! public int getColumnCount() { ! return _columnNames.length; ! } ! public Object getValueAt(int row, int col) { ! return _rowData.get(row)[col]; ! } ! public boolean isCellEditable(int row, int col) { ! return col == 0; ! } ! public void setValueAt(Object aValue, int rowIndex, int columnIndex) { ! _rowData.get(rowIndex)[columnIndex] = (String) aValue; ! } ! public void addRow(String[] rowData) { ! _rowData.add(rowData); ! fireTableDataChanged(); ! } ! public String[] deleteRow(int row) { ! String[] removedRow = _rowData.remove(row); ! fireTableDataChanged(); ! return removedRow; ! } ! public ArrayList<String[]> getData() { ! return _rowData; ! } ! public void clear() { ! _rowData.clear(); ! } ! } ! } ! private class BehaviourTab extends JPanel { ! private JCheckBox _dropCascade; ! public BehaviourTab() { ! init(); ! } ! private void init() { ! setLayout(new GridBagLayout()); ! // Drop Conflicts ! _dropCascade = new JCheckBox(i18n.BEHAVIOUR_DROP_CASCADE_LABEL); ! _dropCascade.setToolTipText(i18n.BEHAVIOUR_DROP_CASCADE_TOOLIP); ! JPanel dropPanel = new JPanel(new GridLayout(1, 1)); ! dropPanel.setBorder(BorderFactory.createTitledBorder(i18n.BEHAVIOUR_DROP_LABEL)); ! dropPanel.add(_dropCascade); ! add(dropPanel); ! } ! public boolean getDropCascade() { ! return _dropCascade.isSelected(); ! } ! } ! private JTextField getSizedTextField(Dimension mediumField) { ! JTextField result = new JTextField(); ! result.setPreferredSize(mediumField); ! return result; ! } ! public static void main(String[] args) { ! final AddLookupTableDialog dialog = new AddLookupTableDialog("City", new String[]{"CityNr", "Name", "State", "Country"}); ! SwingUtilities.invokeLater(new Runnable() { ! public void run() { ! dialog.setVisible(true); ! } ! }); ! } } --- 35,523 ---- import java.util.ArrayList; ! public class AddLookupTableDialog extends AbstractRefactoringTabbedDialog ! { ! private static final long serialVersionUID = -4903417767342627807L; ! /** Logger for this class. */ ! @SuppressWarnings("unused") ! private static final ILogger s_log = LoggerController.createLogger(AddLookupTableDialog.class); + /** Internationalized strings for this class. */ + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(AddLookupTableDialog.class); ! static interface i18n ! { ! String DIALOG_TITLE = s_stringMgr.getString("AddLookupTableDialog.dialogTitle"); + String SOURCE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceTabLabel"); ! String LOOKUP_LABEL = s_stringMgr.getString("AddLookupTableDialog.lookupTabLabel"); + String BEHAVIOUR_LABEL = s_stringMgr.getString("AddLookupTableDialog.behaviourTabLabel"); ! String SOURCE_TABLE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceTableLabel"); + String SOURCE_COLUMN_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceColumnsLabel"); ! String SOURCE_FOREIGNKEY_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceForeignKeyLabel"); + String SOURCE_MODE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceModeLabel"); ! String SOURCE_MODE_KEEP_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceModeKeepLabel"); + String SOURCE_MODE_KEEP_TOOLTIP = s_stringMgr.getString("AddLookupTableDialog.sourceModeKeepTooltip"); ! String SOURCE_MODE_REPLACE_LABEL = s_stringMgr.getString("AddLookupTableDialog.sourceModeReplaceLabel"); + String SOURCE_MODE_REPLACE_TOOLTIP = + s_stringMgr.getString("AddLookupTableDialog.sourceModeReplaceTooltip"); ! String LOOKUP_TABLE_LABEL = s_stringMgr.getString("AddLookupTableDialog.lookupTableLabel"); + String LOOKUP_COLUMNS_LABEL = s_stringMgr.getString("AddLookupTableDialog.lookupColumnsLabel"); ! String LOOKUP_COLUMNSTABLE_HEADER1 = ! s_stringMgr.getString("AddLookupTableDialog.lookupColumnsTableHeader1"); ! String LOOKUP_COLUMNSTABLE_HEADER2 = ! s_stringMgr.getString("AddLookupTableDialog.lookupColumnsTableHeader2"); ! String BEHAVIOUR_DROP_LABEL = s_stringMgr.getString("AddLookupTableDialog.behaviourDropLabel"); + String BEHAVIOUR_DROP_CASCADE_LABEL = + s_stringMgr.getString("AddLookupTableDialog.behaviourDropCascadeLabel"); ! String BEHAVIOUR_DROP_CASCADE_TOOLIP = ! s_stringMgr.getString("AddLookupTableDialog.behaviourDropCascadeToolTip"); ! } + private SourceTab _sourceTab; ! private LookupTab _lookupTab; ! private BehaviourTab _behaviourTab; ! private final String _tableName; ! private final String[] _columnNames; ! public static final int MODE_KEEP = 1; ! public static final int MODE_REPLACE = 2; ! public AddLookupTableDialog(String tableName, String[] columnNames) ! { ! super(new Dimension(430, 350)); ! _tableName = tableName; ! _columnNames = columnNames; ! init(); ! } ! private void init() ! { ! _sourceTab = new SourceTab(); ! _lookupTab = new LookupTab(); ! _behaviourTab = new BehaviourTab(); ! pane.addTab(i18n.SOURCE_LABEL, _sourceTab); ! pane.addTab(i18n.LOOKUP_LABEL, _lookupTab); ! setAllButtonEnabled(false); ! setTitle(i18n.DIALOG_TITLE); ! } ! public String getSourceColumn() ! { ! return _sourceTab.getColumn(); ! } ! public String getForeignKeyName() ! { ! return _sourceTab.getForeignKey(); ! } ! public int getMode() ! { ! return _sourceTab.getMode(); ! } + public String getLookupTableName() + { + return _lookupTab.getTableName(); + } ! public String getLookupPrimaryKey() ! { ! return _lookupTab.getPrimaryKey(); ! } ! public String getLookupSecondColumn() ! { ! return _lookupTab.getSecondColumn(); ! } + public boolean getDropCascade() + { + return _behaviourTab.getDropCascade(); + } ! private JPanel emptyBorderPanel(JComponent c) ! { ! JPanel panel = new JPanel(new GridLayout(1, 1)); ! panel.setBorder(emptyBorder); ! panel.add(c); ! return panel; ! } + private class SourceTab extends JPanel + { + private static final long serialVersionUID = -1731428049078527137L; ! private JList _columnList; + private JTextField _foreignKeyTextField; ! private ButtonGroup _modeButtonGroup; + private JRadioButton _keepRadioButton; ! private JRadioButton _replaceRadioButton; ! public SourceTab() ! { ! init(); ! } ! private void init() ! { ! setLayout(new GridBagLayout()); ! setBorder(new EmptyBorder(10, 0, 0, 30)); ! GridBagConstraints gbc = new GridBagConstraints(); ! gbc.gridx = 0; ! gbc.gridy = -1; + // Table + JLabel tableLabel = getBorderedLabel(i18n.SOURCE_TABLE_LABEL + " ", emptyBorder); + add(tableLabel, getLabelConstraints(gbc)); ! JTextField tableTextField = getSizedTextField(mediumField); ! tableTextField.setText(_tableName); ! tableTextField.setEditable(false); ! add(emptyBorderPanel(tableTextField), getFieldConstraints(gbc)); + // Column + JLabel columnLabel = getBorderedLabel(i18n.SOURCE_COLUMN_LABEL + " ", emptyBorder); + add(columnLabel, getLabelConstraints(gbc)); ! _columnList = new JList(_columnNames); ! _columnList.addListSelectionListener(new ColumnListSelectionListener()); ! _columnList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ! JScrollPane columnScrollPane = new JScrollPane(_columnList); ! gbc = getFieldConstraints(gbc); ! gbc.weightx = 1; ! gbc.weighty = 1; ! gbc.fill = GridBagConstraints.BOTH; ! add(emptyBorderPanel(columnScrollPane), gbc); ! // Foreign Key ! JLabel foreignKeyLabel = getBorderedLabel(i18n.SOURCE_FOREIGNKEY_LABEL + " ", emptyBorder); ! add(foreignKeyLabel, getLabelConstraints(gbc)); ! _foreignKeyTextField = getSizedTextField(mediumField); ! add(emptyBorderPanel(_foreignKeyTextField), getFieldConstraints(gbc)); ! // Mode ! JLabel modeLabel = getBorderedLabel(i18n.SOURCE_MODE_LABEL + " ", emptyBorder); ! add(modeLabel, getLabelConstraints(gbc)); ! _keepRadioButton = new JRadioButton(i18n.SOURCE_MODE_KEEP_LABEL); ! _keepRadioButton.setToolTipText(i18n.SOURCE_MODE_KEEP_TOOLTIP); ! _keepRadioButton.setSelected(true); ! _keepRadioButton.addItemListener(new ModeItemListener()); ! _replaceRadioButton = new JRadioButton(i18n.SOURCE_MODE_REPLACE_LABEL); ! _replaceRadioButton.setToolTipText(i18n.SOURCE_MODE_REPLACE_TOOLTIP); ! _replaceRadioButton.addItemListener(new ModeItemListener()); + _modeButtonGroup = new ButtonGroup(); + _modeButtonGroup.add(_keepRadioButton); + _modeButtonGroup.add(_replaceRadioButton); ! JPanel modePanel = new JPanel(new GridLayout(2, 1)); ! modePanel.add(_keepRadioButton); ! modePanel.add(_replaceRadioButton); ! add(modePanel, getFieldConstraints(gbc)); ! } + public String getColumn() + { + return String.valueOf(_columnList.getSelectedValue()); + } ! public String getForeignKey() ! { ! return _foreignKeyTextField.getText(); ! } + public int getMode() + { + if (_keepRadioButton.isSelected()) + { + return MODE_KEEP; + } else if (_replaceRadioButton.isSelected()) + { + return MODE_REPLACE; + } else + { + throw new IllegalStateException("There should always be at least one mode selected!"); + } + } ! private class ColumnListSelectionListener implements ListSelectionListener ! { ! public void valueChanged(ListSelectionEvent e) ! { ! if (_columnList.getSelectedValue() == null) ! { ! setAllButtonEnabled(false); ! } else ! { ! String selected = String.valueOf(_columnList.getSelectedValue()); ! _lookupTab.onSourceColumnChange(selected); ! _foreignKeyTextField.setText("fk_" + selected); ! setAllButtonEnabled(true); ! } ! } ! } + private class ModeItemListener implements ItemListener + { + public void itemStateChanged(ItemEvent e) + { + if (e.getStateChange() == ItemEvent.SELECTED) + { + _lookupTab.onSourceModeChange(getMode()); + if (e.getItem().equals(_replaceRadioButton)) + pane.addTab(i18n.BEHAVIOUR_LABEL, _behaviourTab); + else + pane.remove(_behaviourTab); + } + } + } + } ! private class LookupTab extends JPanel ! { ! private static final long serialVersionUID = 6999302068227311098L; + private JTextField _tableTextField; ! private final JTable _columnTable = new JTable(); + private final ColumnTableModel _columnTableModel = new ColumnTableModel(); ! public LookupTab() ! { ! init(); ! } + private void init() + { + setLayout(new GridBagLayout()); + setBorder(new EmptyBorder(10, 0, 0, 30)); ! GridBagConstraints gbc = new GridBagConstraints(); ! gbc.gridx = 0; ! gbc.gridy = -1; + // Table + JLabel tableLabel = getBorderedLabel(i18n.LOOKUP_TABLE_LABEL + " ", emptyBorder); + add(tableLabel, getLabelConstraints(gbc)); ! _tableTextField = getSizedTextField(mediumField); ! _tableTextField.setEditable(true); ! add(emptyBorderPanel(_tableTextField), getFieldConstraints(gbc)); + // Columns + JLabel columnLabel = getBorderedLabel(i18n.LOOKUP_COLUMNS_LABEL + " ", emptyBorder); + add(columnLabel, getLabelConstraints(gbc)); ! _columnTable.setModel(_columnTableModel); ! _columnTable.setRowSelectionAllowed(true); ! _columnTable.setColumnSelectionAllowed(false); ! _columnTable.setCellSelectionEnabled(true); ! _columnTable.getTableHeader().setReorderingAllowed(false); ! _columnTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + JScrollPane columnScrollPane = new JScrollPane(_columnTable); + gbc = getFieldConstraints(gbc); + gbc.weightx = 1; + gbc.weighty = 1; + gbc.fill = GridBagConstraints.BOTH; + add(emptyBorderPanel(columnScrollPane), gbc); + } ! public void onSourceColumnChange(String column) ! { ! _tableTextField.setText(column); ! onChange(column, _sourceTab.getMode()); ! } + public void onSourceModeChange(int mode) + { + onChange(_sourceTab.getColumn(), mode); + } ! private void onChange(String column, int mode) ! { ! if (mode == MODE_KEEP) ! { ! _columnTableModel.clear(); ! _columnTableModel.addRow(new String[] { column, "Primary Key" }); ! } else if (mode == MODE_REPLACE) ! { ! _columnTableModel.clear(); ! _columnTableModel.addRow(new String[] { column + "Nr", "Primary Key" }); ! _columnTableModel.addRow(new String[] { column, "" }); ! } ! } + public String getTableName() + { + return _tableTextField.getText(); + } ! public String getPrimaryKey() ! { ! if (_columnTableModel.getRowCount() > 0) ! return String.valueOf(_columnTableModel.getValueAt(0, 0)); ! else ! return null; ! } + public String getSecondColumn() + { + if (_columnTableModel.getRowCount() > 1) + return String.valueOf(_columnTableModel.getValueAt(1, 0)); + else + return null; + } ! class ColumnTableModel extends AbstractTableModel ! { ! private static final long serialVersionUID = 2291876910684420431L; + private final ArrayList<String[]> _rowData = new ArrayList<String[]>(); ! private final String[] _columnNames = ! { i18n.LOOKUP_COLUMNSTABLE_HEADER1, i18n.LOOKUP_COLUMNSTABLE_HEADER2 }; + public String getColumnName(int col) + { + return _columnNames[col]; + } ! public int getRowCount() ! { ! return _rowData.size(); ! } + public int getColumnCount() + { + return _columnNames.length; + } ! public Object getValueAt(int row, int col) ! { ! return _rowData.get(row)[col]; ! } + public boolean isCellEditable(int row, int col) + { + return col == 0; + } ! public void setValueAt(Object aValue, int rowIndex, int columnIndex) ! { ! _rowData.get(rowIndex)[columnIndex] = (String) aValue; ! } ! public void addRow(String[] rowData) ! { ! _rowData.add(rowData); ! fireTableDataChanged(); ! } + public String[] deleteRow(int row) + { + String[] removedRow = _rowData.remove(row); + fireTableDataChanged(); + return removedRow; + } ! public ArrayList<String[]> getData() ! { ! return _rowData; ! } + public void clear() + { + _rowData.clear(); + } + } + } ! private class BehaviourTab extends JPanel ! { ! private static final long serialVersionUID = -1528361503293831825L; ! private JCheckBox _dropCascade; ! public BehaviourTab() ! { ! init(); ! } ! private void init() ! { ! setLayout(new GridBagLayout()); + // Drop Conflicts + _dropCascade = new JCheckBox(i18n.BEHAVIOUR_DROP_CASCADE_LABEL); + _dropCascade.setToolTipText(i18n.BEHAVIOUR_DROP_CASCADE_TOOLIP); ! JPanel dropPanel = new JPanel(new GridLayout(1, 1)); ! dropPanel.setBorder(BorderFactory.createTitledBorder(i18n.BEHAVIOUR_DROP_LABEL)); ! dropPanel.add(_dropCascade); + add(dropPanel); + } ! public boolean getDropCascade() ! { ! return _dropCascade.isSelected(); ! } ! } + private JTextField getSizedTextField(Dimension mediumField) + { + JTextField result = new JTextField(); + result.setPreferredSize(mediumField); + return result; + } ! public static void main(String[] args) ! { ! final AddLookupTableDialog dialog = ! new AddLookupTableDialog("City", new String[] { "CityNr", "Name", "State", "Country" }); ! SwingUtilities.invokeLater(new Runnable() ! { ! public void run() ! { ! dialog.setVisible(true); ! } ! }); ! } } Index: DefaultListDialog.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/refactoring/src/net/sourceforge/squirrel_sql/plugins/refactoring/gui/DefaultListDialog.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DefaultListDialog.java 29 Dec 2007 18:21:47 -0000 1.1 --- DefaultListDialog.java 14 Jan 2008 01:38:05 -0000 1.2 *************** *** 1,21 **** package net.sourceforge.squirrel_sql.plugins.refactoring.gui; /* ! * Copyright (C) 2007 Daniel Regli & Yannick Winiger ! * http://sourceforge.net/projects/squirrel-sql ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation; either version 2 ! * of the License, or any later version. ! * ! * This program is distributed in the hope that it will be useful, ! * but WITHOUT ANY WARRANTY; without even the implied warranty of ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! * GNU General Public License for more details. ! * ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo; --- 1,22 ---- package net.sourceforge.squirrel_sql.plugins.refactoring.gui; + /* ! * Copyright (C) 2007 Daniel Regli & Yannick Winiger ! * http://sourceforge.net/projects/squirrel-sql ! * ! * This program is free software; you can redistribute it and/or ! * modify it under the terms of the GNU General Public License ! * as published by the Free Software Foundation; either version 2 ! * of the License, or any later version. ! * ! * This program is distributed in the hope that it will be useful, ! * but WITHOUT ANY WARRANTY; without even the implied warranty of ! * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! * GNU General Public License for more details. ! * ! * You should have received a copy of the GNU General Public License ! * along with this program; if not, write to the Free Software ! * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ import net.sourceforge.squirrel_sql.fw.sql.IDatabaseObjectInfo; *************** *** 33,268 **** import java.util.ArrayList; ! public class DefaultListDialog extends JDialog { ! /** ! * Internationalized strings for this class. ! */ ! private static final StringManager s_stringMgr = ! StringManagerFactory.getStringManager(DefaultListDialog.class); ! private final IDatabaseObjectInfo[] _objectInfo; ! private String _selectItem = ""; ! /** ! * If the dialog is used to select indexes. ! */ ! public static final int DIALOG_TYPE_INDEX = 3; ! /** ! * If the dilaog is used to select unique constraints. ! */ ! public static final int DIALOG_TYPE_UNIQUE_CONSTRAINTS = 4; ! /** ! * If the dialog is used to drop sequences. ! */ ! public static final int DIALOG_TYPE_FOREIGN_KEY = 5; ! private interface i18n { ! String TABLE_NAME_LABEL = ! s_stringMgr.getString("DefaultListDialog.tableNameLabel"); ! String CANCEL_BUTTON_LABEL = ! s_stringMgr.getString("AbstractRefactoringDialog.cancelButtonLabel"); ! String FOREIGN_KEY_LABEL = ! s_stringMgr.getString("DefaultListDialog.foreignKeyNameLabel"); ! String INDEX_LABEL = ! s_stringMgr.getString("DefaultListDialog.indexNameLabel"); ! String UNIQUE_CONSTRAINT_LABEL = ! s_stringMgr.getString("DefaultListDialog.uniqueConstraintLabel"); ! String OK_BUTTON_LABEL = ! s_stringMgr.getString("DefaultListDialog.selectButtonLabel"); ! } ! private JButton _executeButton = null; ! private JList _columnList; ! public DefaultListDialog(IDatabaseObjectInfo[] objectInfo, String tableName, int dialogType) { ! this._objectInfo = objectInfo; ! setTypeByID(dialogType); ! init(tableName); ! } ! /** ! * Finds and sets the correct title for the specific type dialog. ! * ! * @param dialogType dialog type. ! */ ! private void setTypeByID(int dialogType) { ! String object = ""; ! switch (dialogType) { ! case DIALOG_TYPE_INDEX: ! object = i18n.INDEX_LABEL; ! break; ! case DIALOG_TYPE_FOREIGN_KEY: ! object = i18n.FOREIGN_KEY_LABEL; ! break; ! case DIALOG_TYPE_UNIQUE_CONSTRAINTS: ! object = i18n.UNIQUE_CONSTRAINT_LABEL; ! break; ! default: ! } ! _selectItem = object; ! setTitle(s_stringMgr.getString("DefaultDropDialog.title", object)); ! } ! public String getSelectedIndex() { ! return _columnList.getSelectedValue().toString(); ! } ! public ArrayList<IDatabaseObjectInfo> getSelectedItems() { ! ArrayList<IDatabaseObjectInfo> idbo = new ArrayList<IDatabaseObjectInfo>(); ! String[] simpleNames = getSimpleNames(_objectInfo); ! for (int index : _columnList.getSelectedIndices()) { ! for (IDatabaseObjectInfo info : _objectInfo) { ! if (info.getSimpleName().equals(simpleNames[index])) { ! idbo.add(info); ! break; ! } ! } ! } ! return idbo; ! } ! public void addColumnSelectionListener(ActionListener columnListSelectionActionListener) { ! _executeButton.addActionListener(columnListSelectionActionListener); ! } ! /** ! * Creates the UI for this dialog. ! * ! * @param tableName the name of the table where the index is used. ! */ ! private void init(String tableName) { ! super.setModal(true); ! setSize(425, 250); ! EmptyBorder border = new EmptyBorder(new Insets(5, 5, 5, 5)); ! Dimension mediumField = new Dimension(126, 20); ! JPanel pane = new JPanel(); ! pane.setLayout(new GridBagLayout()); ! pane.setBorder(new EmptyBorder(10, 0, 0, 30)); ! GridBagConstraints c = new GridBagConstraints(); ! c.gridx = 0; ! c.gridy = -1; ! // Table name ! JLabel tableNameLabel = getBorderedLabel(i18n.TABLE_NAME_LABEL, border); ! pane.add(tableNameLabel, getLabelConstraints(c)); ! JTextField tableNameTextField = new JTextField(tableName); ! tableNameTextField.setPreferredSize(mediumField); ! tableNameTextField.setEditable(false); ! pane.add(tableNameTextField, getFieldConstraints(c)); ! // Column list ! JLabel columnListLabel = getBorderedLabel(_selectItem, border); ! columnListLabel.setVerticalAlignment(JLabel.NORTH); ! pane.add(columnListLabel, getLabelConstraints(c)); ! _columnList = new JList(getSimpleNames(_objectInfo)); ! _columnList.addListSelectionListener(new ColumnListSelectionListener()); ! _columnList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); ! JScrollPane sp = new JScrollPane(_columnList); ! c = getFieldConstraints(c); ! c.weightx = 1; ! c.weighty = 1; ! c.fill = GridBagConstraints.BOTH; ! pane.add(sp, c); ! Container contentPane = super.getContentPane(); ! contentPane.setLayout(new BorderLayout()); ! contentPane.add(pane, BorderLayout.CENTER); ! contentPane.add(getButtonPanel(), BorderLayout.SOUTH); ! } ! private JPanel getButtonPanel() { ! JPanel result = new JPanel(); ! _executeButton = new JButton(i18n.OK_BUTTON_LABEL); ! JButton cancelButton = new JButton(i18n.CANCEL_BUTTON_LABEL); ! cancelButton.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) { ! setVisible(false); ! } ! }); ! result.add(_executeButton); ! result.add(cancelButton); ! return result; ! } ! private String[] getSimpleNames(IDatabaseObjectInfo[] dbInfo) { ! ArrayList<String> simpleNames = new ArrayList<String>(); ! for (IDatabaseObjectInfo info : dbInfo) { ! if (!simpleNames.contains(info.getSimpleName())) simpleNames.add(info.getSimpleName()); ! } ! return simpleNames.toArray(new String[]{}); ! } ! private GridBagConstraints getLabelConstraints(GridBagConstraints c) { ! c.gridx = 0; ! c.gridy++; ! c.anchor = GridBagConstraints.NORTHEAST; ! c.fill = GridBagConstraints.NONE; ! c.weightx = 0; ! c.weighty = 0; ! return c; ! } ! private GridBagConstraints getFieldConstraints(GridBagConstraints c) { ! c.gridx++; ! c.anchor = Grid... [truncated message content] |