This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit ae9a0e9b8549c4e32e3988845059d9dab162a345 Author: Andrus Adamchik <[email protected]> AuthorDate: Tue May 5 18:08:01 2026 -0400 Modeler cleanup unify dialog opening API --- .../apache/cayenne/modeler/toolkit/AppDialog.java | 12 ++++++ .../ui/action/CreateRelationshipAction.java | 4 +- .../modeler/ui/action/DBConnectionAwareAction.java | 3 +- .../modeler/ui/action/GenerateDBAction.java | 2 +- .../cayenne/modeler/ui/action/MigrateAction.java | 6 +-- .../cayenne/modeler/ui/action/ValidateAction.java | 22 +++++----- .../autorelationship/InferRelationshipsDialog.java | 8 ---- .../modeler/ui/datasource/DataSourceDialog.java | 21 +++------ .../ui/dbactionoptions/DbActionOptionsDialog.java | 6 --- .../modeler/ui/dbgen/DBGeneratorOptionsDialog.java | 11 +---- .../modeler/ui/dbmerge/MergerOptionsDialog.java | 8 ---- .../ui/dbrelationship/DbRelationshipDialog.java | 19 +------- .../cayenne/modeler/ui/errors/ErrorDialog.java | 7 +-- .../modeler/ui/errors/ErrorsController.java | 2 +- .../apache/cayenne/modeler/ui/find/FindDialog.java | 11 ----- .../preferences/classpath/ClasspathPrefsPanel.java | 2 +- .../classpath/maven/MavenDependencyDialog.java | 3 -- .../creator/DBConnectorCreatorDialog.java | 7 +-- .../duplicator/DBConnectorDuplicatorDialog.java | 7 +-- .../templateeditor/TemplateEditorFindDialog.java | 8 ---- .../editor/datamap/dbimport/DefaultPopUpMenu.java | 9 +--- .../dbimport/ReverseEngineeringTreePanel.java | 1 - .../datamap/defaults/DefaultsUpdateDialog.java | 8 ---- .../datamap/main/locking/LockingUpdateDialog.java | 7 --- .../dbentity/properties/DbRelationshipPanel.java | 2 +- .../objentity/attrinfo/ObjAttributeInfoDialog.java | 8 ---- .../objentity/properties/ObjAttributePanel.java | 2 +- .../objentity/properties/ObjRelationshipPanel.java | 2 +- .../relinfo/ObjRelationshipInfoDialog.java | 10 +---- .../ui/project/querytype/QueryTypeDialog.java | 8 ---- .../project/validator/ProjectValidatorDialog.java | 50 ++++++---------------- .../modeler/ui/validation/ValidationDialog.java | 8 ---- 32 files changed, 65 insertions(+), 219 deletions(-) diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppDialog.java index 5a14ec237..c641aafe0 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppDialog.java @@ -90,6 +90,18 @@ public abstract class AppDialog extends JDialog { getRootPane().registerKeyboardAction(closeAction, escReleased, JComponent.WHEN_IN_FOCUSED_WINDOW); } + /** + * Standard dialog launch: pack, set dispose-on-close, center on owner, wire ESC, show. + * Blocks until the dialog is closed for modal dialogs. + */ + public void open() { + pack(); + setDefaultCloseOperation(DISPOSE_ON_CLOSE); + centerOnOwner(); + makeCloseableOnEscape(); + setVisible(true); + } + /** * Logs the error and shows a modal error dialog anchored on this dialog. */ diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/CreateRelationshipAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/CreateRelationshipAction.java index 41fa83776..7fb3c57b3 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/CreateRelationshipAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/CreateRelationshipAction.java @@ -87,7 +87,7 @@ public class CreateRelationshipAction extends ModelerAbstractAction { new ObjRelationshipInfoDialog(getProjectSession(), app.getFrame()) .createRelationship(objEnt) - .startupAction(); + .open(); } else { DbEntity dbEnt = getProjectSession().getSelectedDbEntity(); @@ -95,7 +95,7 @@ public class CreateRelationshipAction extends ModelerAbstractAction { new DbRelationshipDialog(getProjectSession(), app.getFrame()) .createNewRelationship(dbEnt) - .startUp(); + .open(); } } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DBConnectionAwareAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DBConnectionAwareAction.java index 6ce606299..c86f64bc6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DBConnectionAwareAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DBConnectionAwareAction.java @@ -55,7 +55,8 @@ public abstract class DBConnectionAwareAction extends ModelerAbstractAction { getProjectSession(), app.getFrame(), title); - if (!connectWizard.startupAction()) { + connectWizard.open(); + if (connectWizard.isCanceled()) { return null; } return connectWizard; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/GenerateDBAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/GenerateDBAction.java index 4b1e4fabc..abf42df34 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/GenerateDBAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/GenerateDBAction.java @@ -58,6 +58,6 @@ public class GenerateDBAction extends ModelerAbstractAction { getProjectSession(), app.getFrame(), "Generate DB Schema: Options", - dataMaps).startupAction(); + dataMaps).open(); } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MigrateAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MigrateAction.java index 3d0769f26..10f753927 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MigrateAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/MigrateAction.java @@ -82,7 +82,7 @@ public class MigrateAction extends DBConnectionAwareAction { app.getFrame(), "Migrate DB Schema: Options", connectWizard.getConnector(), - map, selectedCatalog, selectedSchema, mergerTokenFactoryProvider).startupAction(); + map, selectedCatalog, selectedSchema, mergerTokenFactoryProvider).open(); } protected DbActionOptionsDialog createDialog(Collection<String> catalogs, Collection<String> schemas, @@ -125,13 +125,13 @@ public class MigrateAction extends DBConnectionAwareAction { return null; } DbActionOptionsDialog optionsDialog = getStartDialog(catalogs, schemas, currentCatalog, currentSchema); - optionsDialog.setVisible(true); + optionsDialog.open(); while ((optionsDialog.getChoice() != DbActionOptionsDialog.CANCEL)) { if (optionsDialog.getChoice() == DbActionOptionsDialog.SELECT) { return optionsDialog; } optionsDialog = createDialog(catalogs, schemas, currentCatalog, currentSchema, optionsDialog.getChoice()); - optionsDialog.setVisible(true); + optionsDialog.open(); } return null; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ValidateAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ValidateAction.java index cbf491821..cd6a315dd 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ValidateAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ValidateAction.java @@ -45,6 +45,7 @@ public class ValidateAction extends ModelerAbstractAction { super("Validate Project", application); } + @Override public KeyStroke getAcceleratorKey() { return KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx() | InputEvent.SHIFT_DOWN_MASK); @@ -62,10 +63,11 @@ public class ValidateAction extends ModelerAbstractAction { if (!validationResult.getFailures().isEmpty()) { showFailures(validationResult.getFailures()); - } - else { - disposeDialog(); - ProjectValidatorDialog.showOnSuccess(app); + } else { + if (dialog != null && dialog.isDisplayable()) { + dialog.dispose(); + } + JOptionPane.showMessageDialog(app.getFrame(), "Cayenne project is valid."); } } @@ -76,20 +78,16 @@ public class ValidateAction extends ModelerAbstractAction { */ public void showFailures(List<ValidationFailure> failures) { if (dialog == null || !dialog.isDisplayable()) { - dialog = new ProjectValidatorDialog(getProjectSession(), app.getFrame()); + dialog = new ProjectValidatorDialog(getProjectSession(), app.getFrame(), failures); dialog.addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { dialog = null; } }); - } - dialog.showOnFailures(failures); - } - - private void disposeDialog() { - if (dialog != null && dialog.isDisplayable()) { - dialog.dispose(); + dialog.open(); + } else { + dialog.refresh(failures); } } } \ No newline at end of file diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsDialog.java index 24c0a0c9d..c713af586 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsDialog.java @@ -105,14 +105,6 @@ public class InferRelationshipsDialog extends ProjectDialog { initBindings(); } - public void open() { - // show dialog even on empty DataMap, as custom generation may still take advantage of it - pack(); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { getRootPane().setDefaultButton(generateButton); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/datasource/DataSourceDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/datasource/DataSourceDialog.java index 69bac0173..72885a72b 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/datasource/DataSourceDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/datasource/DataSourceDialog.java @@ -50,8 +50,8 @@ import java.util.Map; /** * Modal dialog for selecting/editing a saved DB Connector and testing the resulting - * connection. Returns true from {@link #startupAction()} when the user chose a working - * connector and clicked Continue, false on Cancel or test failure. + * connection. After {@link #open()} returns, call {@link #isCanceled()} to check whether + * the user confirmed a working connection or cancelled. */ public class DataSourceDialog extends ProjectDialog { @@ -80,14 +80,7 @@ public class DataSourceDialog extends ProjectDialog { initLayout(); initBindings(); - } - /** - * Pops up the dialog, blocks until closed, returns true if the user confirmed - * a working connection. - */ - public boolean startupAction() { - canceled = true; refreshDataSources(); initFavouriteDataSource(); @@ -98,13 +91,11 @@ public class DataSourceDialog extends ProjectDialog { editor.setConnector(connector); - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); + this.canceled = true; + } - return !canceled; + public boolean isCanceled() { + return canceled; } public DBConnector getConnector() { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbactionoptions/DbActionOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbactionoptions/DbActionOptionsDialog.java index 1a8c3a397..51e2573bb 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbactionoptions/DbActionOptionsDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbactionoptions/DbActionOptionsDialog.java @@ -27,7 +27,6 @@ import org.apache.cayenne.modeler.toolkit.AppDialog; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; -import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import java.awt.BorderLayout; @@ -54,14 +53,9 @@ public class DbActionOptionsDialog extends AppDialog { Collection<String> catalogs, Collection<String> schemas, String currentCatalog, String currentSchema) throws HeadlessException { super(application, owner, title, ModalityType.APPLICATION_MODAL); - makeCloseableOnEscape(); init(); initController(); initFromModel(catalogs, schemas, currentCatalog, currentSchema); - - pack(); - setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); - centerOnOwner(); } protected void init() { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbgen/DBGeneratorOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbgen/DBGeneratorOptionsDialog.java index 7607ccbb0..c107deb5a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbgen/DBGeneratorOptionsDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbgen/DBGeneratorOptionsDialog.java @@ -149,14 +149,6 @@ public class DBGeneratorOptionsDialog extends ProjectDialog { sqlPreview.setText(textForSQL); } - public void startupAction() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { getRootPane().setDefaultButton(generateButton); @@ -320,7 +312,8 @@ public class DBGeneratorOptionsDialog extends ProjectDialog { session, app.getFrame(), "Generate DB Schema: Connect to Database"); - if (!connectWizard.startupAction()) { + connectWizard.open(); + if (connectWizard.isCanceled()) { return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbmerge/MergerOptionsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbmerge/MergerOptionsDialog.java index bfc1a8865..8593087ee 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbmerge/MergerOptionsDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbmerge/MergerOptionsDialog.java @@ -137,14 +137,6 @@ public class MergerOptionsDialog extends ProjectDialog { sqlPreview.setText(textForSQL); } - public void startupAction() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { getRootPane().setDefaultButton(generateButton); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java index 8456d0ef5..f2e4c0b3d 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/dbrelationship/DbRelationshipDialog.java @@ -152,26 +152,10 @@ public class DbRelationshipDialog extends ProjectDialog { return this; } - public void startUp() { - pack(); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - dispose(); - } - public Optional<DbRelationship> getRelationship() { return cancelPressed ? Optional.empty() : Optional.of(relationship); } - @Override - public void setVisible(boolean b) { - if (b && cancelPressed) { - return; - } - super.setVisible(b); - } - private void initLayout() { getRootPane().setDefaultButton(saveButton); getContentPane().setLayout(new BorderLayout()); @@ -284,12 +268,11 @@ public class DbRelationshipDialog extends ProjectDialog { cancelPressed = false; save(); dispose(); - setVisible(false); }); cancelButton.addActionListener(e -> { cancelPressed = true; - setVisible(false); + dispose(); }); addWindowListener(new WindowAdapter() { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorDialog.java index 70256541c..79c9ec311 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorDialog.java @@ -60,8 +60,6 @@ class ErrorDialog extends AppDialog implements ActionListener { title, modal ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS); - makeCloseableOnEscape(); - setThrowable(Util.unwindException(throwable)); setDetailed(detailed); @@ -121,10 +119,6 @@ class ErrorDialog extends AppDialog implements ActionListener { JButton[] buttons = (showHide != null) ? new JButton[]{close, showHide} : new JButton[]{close}; pane.add(new CMButtonPanel(buttons), BorderLayout.SOUTH); - - // prepare to display - this.pack(); - this.centerOnOwner(); } protected String infoHTML(Application application) { @@ -183,6 +177,7 @@ class ErrorDialog extends AppDialog implements ActionListener { } } + @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == close) { this.dispose(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorsController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorsController.java index 8c5c8bce6..8bb94a241 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorsController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/errors/ErrorsController.java @@ -16,7 +16,7 @@ public class ErrorsController { LOGGER.error("CayenneModeler Error", th); } - new ErrorDialog(application, "CayenneModeler Error", th, true, false).setVisible(true); + new ErrorDialog(application, "CayenneModeler Error", th, true, false).open(); } /** diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/find/FindDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/find/FindDialog.java index 86efad950..8c7e95503 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/find/FindDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/find/FindDialog.java @@ -67,17 +67,6 @@ public class FindDialog extends AppDialog { initBindings(); } - /** - * Packs, centers on owner, enables ESC to close, and shows the dialog. - */ - public void open() { - pack(); - centerOnOwner(); - makeCloseableOnEscape(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - setVisible(true); - } - private void initLayout() { table.getColumnModel().getColumn(0).setCellRenderer(new IconCellRenderer()); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/ClasspathPrefsPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/ClasspathPrefsPanel.java index 6f4ce1fa1..d690cdb56 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/ClasspathPrefsPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/ClasspathPrefsPanel.java @@ -104,7 +104,7 @@ public class ClasspathPrefsPanel extends AppPanel { addDirButton.addActionListener(e -> chooseClassEntry(null, "Select Java Class Directory.", JFileChooser.DIRECTORIES_ONLY)); addMvnButton.addActionListener(e -> - new MavenDependencyDialog(app, SwingUtilities.getWindowAncestor(this), this).setVisible(true)); + new MavenDependencyDialog(app, SwingUtilities.getWindowAncestor(this), this).open()); deleteEntryButton.addActionListener(e -> removeEntryClicked()); DefaultFormBuilder sidebar = new DefaultFormBuilder( diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/maven/MavenDependencyDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/maven/MavenDependencyDialog.java index 657bc9b53..41221b45f 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/maven/MavenDependencyDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/classpath/maven/MavenDependencyDialog.java @@ -76,9 +76,6 @@ public class MavenDependencyDialog extends AppDialog { initLayout(); initBindings(); - pack(); - centerOnOwner(); - makeCloseableOnEscape(); } private void initLayout() { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/creator/DBConnectorCreatorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/creator/DBConnectorCreatorDialog.java index e094b5316..538b406e1 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/creator/DBConnectorCreatorDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/creator/DBConnectorCreatorDialog.java @@ -76,6 +76,7 @@ public class DBConnectorCreatorDialog extends AppDialog { initLayout(); initBindings(); + setResizable(false); } /** @@ -83,11 +84,7 @@ public class DBConnectorCreatorDialog extends AppDialog { * null if the user cancelled. */ public DBConnector startupAction() { - pack(); - setResizable(false); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); + open(); return createConnector(); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/duplicator/DBConnectorDuplicatorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/duplicator/DBConnectorDuplicatorDialog.java index ec03a898e..d1de2130e 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/duplicator/DBConnectorDuplicatorDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/duplicator/DBConnectorDuplicatorDialog.java @@ -63,6 +63,7 @@ public class DBConnectorDuplicatorDialog extends AppDialog { initLayout(); initBindings(); + setResizable(false); } /** @@ -70,11 +71,7 @@ public class DBConnectorDuplicatorDialog extends AppDialog { * null if the user cancelled. */ public DBConnector startupAction() { - pack(); - setResizable(false); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); + open(); return createConnector(); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/templateeditor/TemplateEditorFindDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/templateeditor/TemplateEditorFindDialog.java index 6633d3340..97e6b7db7 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/templateeditor/TemplateEditorFindDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/cgen/templateeditor/TemplateEditorFindDialog.java @@ -68,15 +68,7 @@ public class TemplateEditorFindDialog extends AppDialog { initLayout(); initBindings(); - } - - public void open() { - pack(); setResizable(false); - centerOnOwner(); - makeCloseableOnEscape(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - setVisible(true); } protected void initLayout() { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DefaultPopUpMenu.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DefaultPopUpMenu.java index b92d626dd..94ff4cfc3 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DefaultPopUpMenu.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DefaultPopUpMenu.java @@ -22,16 +22,13 @@ package org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport; import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.action.DbImportActions; import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.DbImportTreeNode; -import javax.swing.JMenuItem; -import javax.swing.JPopupMenu; -import javax.swing.JTree; +import javax.swing.*; public class DefaultPopUpMenu extends JPopupMenu { protected JMenuItem delete; protected DbImportTreeNode selectedElement; protected DbImportTreeNode parentElement; - protected JTree tree; protected final DbImportActions actions; public DefaultPopUpMenu(DbImportActions actions) { @@ -56,8 +53,4 @@ public class DefaultPopUpMenu extends JPopupMenu { public void setParentElement(DbImportTreeNode parentElement) { this.parentElement = parentElement; } - - public void setTree(JTree tree) { - this.tree = tree; - } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringTreePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringTreePanel.java index 0e55693c1..26dd92fbb 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringTreePanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringTreePanel.java @@ -121,7 +121,6 @@ class ReverseEngineeringTreePanel extends JPanel { if (popupMenu != null) { popupMenu.setSelectedElement(selectedElement); popupMenu.setParentElement(selectedElement.getParent()); - popupMenu.setTree(reverseEngineeringTree); popupMenu.show(e.getComponent(), e.getX(), e.getY()); } } else if (reverseEngineeringTree.getSelectionPath() != null) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/defaults/DefaultsUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/defaults/DefaultsUpdateDialog.java index 75a897a82..537e05514 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/defaults/DefaultsUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/defaults/DefaultsUpdateDialog.java @@ -67,14 +67,6 @@ public abstract class DefaultsUpdateDialog extends ProjectDialog { initBindings(); } - public void open() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - /** * @return true if "update all" radio is selected, false if "don't override existing". */ diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/locking/LockingUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/locking/LockingUpdateDialog.java index f360c673b..218e70e32 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/locking/LockingUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/locking/LockingUpdateDialog.java @@ -77,13 +77,6 @@ public class LockingUpdateDialog extends ProjectDialog { initBindings(); } - public void open() { - pack(); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { CellConstraints cc = new CellConstraints(); FormLayout layout = new FormLayout( diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipPanel.java index 9a187d687..ca95137d0 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbRelationshipPanel.java @@ -269,7 +269,7 @@ public class DbRelationshipPanel extends JPanel implements DbEntityDisplayListen DbRelationship rel = model.getRelationship(row); new DbRelationshipDialog(session, session.app().getFrame()) .modifyRelationship(rel) - .startUp(); + .open(); } private void valueChanged(ListSelectionEvent e) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributeInfoDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributeInfoDialog.java index db2f79e1d..d7725a1f6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributeInfoDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributeInfoDialog.java @@ -173,14 +173,6 @@ public class ObjAttributeInfoDialog extends ProjectDialog implements TreeSelecti return saveButton; } - public void startupAction() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { CellConstraints cc = new CellConstraints(); PanelBuilder builder = new PanelBuilder( diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributePanel.java index b1e8a0af4..7b8cbcebe 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributePanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributePanel.java @@ -434,7 +434,7 @@ public class ObjAttributePanel extends JPanel implements ObjEntityDisplayListene new ObjAttributeInfoDialog( session, session.app().getFrame(), - row, model).startupAction(); + row, model).open(); // This is required for a table to be updated properly table.cancelEditing(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjRelationshipPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjRelationshipPanel.java index 7b2255c97..297918de0 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjRelationshipPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjRelationshipPanel.java @@ -379,7 +379,7 @@ public class ObjRelationshipPanel extends JPanel implements ObjEntityDisplayList ObjRelationshipTableModel model = (ObjRelationshipTableModel) table.getModel(); new ObjRelationshipInfoDialog(session, session.app().getFrame()) .modifyRelationship(model.getRelationship(row)) - .startupAction(); + .open(); // This is required for a table to be updated properly table.cancelEditing(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java index 3764caa03..e31d6da9f 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipInfoDialog.java @@ -172,14 +172,6 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele return this; } - public void startupAction() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { getRootPane().setDefaultButton(saveButton); setLayout(new BorderLayout()); @@ -374,7 +366,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele DbRelationshipDialog dialog = new DbRelationshipDialog(session, this).createNewRelationship(dbEntity); - dialog.startUp(); + dialog.open(); Optional<DbRelationship> dbRelationship = dialog.getRelationship(); if (dbRelationship.isPresent()) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/querytype/QueryTypeDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/querytype/QueryTypeDialog.java index 9c505ce9a..1054f7141 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/querytype/QueryTypeDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/querytype/QueryTypeDialog.java @@ -78,14 +78,6 @@ public class QueryTypeDialog extends ProjectDialog { initBindings(); } - public void open() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - /** * Fires the standard "query added" notification sequence on the given session. * Used both internally on Create, and externally by paste handling. diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/ProjectValidatorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/ProjectValidatorDialog.java index ea9d9d218..28aedc8b6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/ProjectValidatorDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/validator/ProjectValidatorDialog.java @@ -22,36 +22,23 @@ package org.apache.cayenne.modeler.ui.project.validator; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; -import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.event.display.TablePopupHandler; +import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.service.action.GlobalActions; import org.apache.cayenne.modeler.toolkit.ProjectDialog; import org.apache.cayenne.modeler.ui.action.DisableValidationInspectionAction; import org.apache.cayenne.modeler.ui.action.ShowValidationOptionAction; import org.apache.cayenne.modeler.ui.action.ValidateAction; -import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.project.validation.Inspection; import org.apache.cayenne.project.validation.ProjectValidationFailure; import org.apache.cayenne.validation.ValidationFailure; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.JTable; -import javax.swing.ListSelectionModel; +import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableCellRenderer; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.FlowLayout; -import java.awt.Window; -import java.util.Collections; +import java.awt.*; import java.util.List; /** @@ -60,38 +47,29 @@ import java.util.List; */ public class ProjectValidatorDialog extends ProjectDialog { - public static final Color WARNING_COLOR = new Color(245, 194, 194); + private static final Color WARNING_COLOR = new Color(245, 194, 194); private final JTable problemsTable; private final JButton refreshButton; private final JButton closeButton; - private List<ValidationFailure> validationObjects = Collections.emptyList(); + private List<ValidationFailure> validationObjects; - public ProjectValidatorDialog(ProjectSession session, Window owner) { + public ProjectValidatorDialog(ProjectSession session, Window owner, List<ValidationFailure> failures) { super(session, owner, "Validation Problems", ModalityType.MODELESS); + this.validationObjects = failures; this.problemsTable = new JTable(); this.refreshButton = new JButton("Refresh"); this.closeButton = new JButton("Close"); initLayout(); initBindings(); - - // TODO: use preferences - setSize(450, 350); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); + problemsTable.setModel(new ValidatorTableModel()); } - public void showOnFailures(List<ValidationFailure> failures) { + public void refresh(List<ValidationFailure> failures) { validationObjects = failures; problemsTable.setModel(new ValidatorTableModel()); - setVisible(true); - } - - public static void showOnSuccess(Application application) { - JOptionPane.showMessageDialog(application.getFrame(), "Cayenne project is valid."); } private void initLayout() { @@ -121,16 +99,16 @@ public class ProjectValidatorDialog extends ProjectDialog { buttons.add(closeButton); buttons.add(refreshButton); + JPanel content = builder.getPanel(); + content.setPreferredSize(new Dimension(450, 300)); + getContentPane().setLayout(new BorderLayout()); - getContentPane().add(builder.getPanel(), BorderLayout.CENTER); + getContentPane().add(content, BorderLayout.CENTER); getContentPane().add(buttons, BorderLayout.SOUTH); } private void initBindings() { - closeButton.addActionListener(e -> { - setVisible(false); - dispose(); - }); + closeButton.addActionListener(e -> dispose()); refreshButton.addActionListener(e -> app.getActionManager().getAction(ValidateAction.class).actionPerformed(e)); problemsTable.getSelectionModel().addListSelectionListener(e -> fireFailedObjectSelection()); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/validation/ValidationDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/validation/ValidationDialog.java index d57ed0bc3..fe4e51d6b 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/validation/ValidationDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/validation/ValidationDialog.java @@ -82,14 +82,6 @@ public class ValidationDialog extends AppDialog { initBindings(); } - public void open() { - pack(); - setDefaultCloseOperation(DISPOSE_ON_CLOSE); - centerOnOwner(); - makeCloseableOnEscape(); - setVisible(true); - } - private void initLayout() { CellConstraints cc = new CellConstraints(); PanelBuilder builder = new PanelBuilder(new FormLayout(
