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 7fb27a7e85a5afa6db5af8363b75f079b9bffe65 Author: Andrus Adamchik <[email protected]> AuthorDate: Tue May 5 18:08:01 2026 -0400 Modeler cleanup --- .../{util => }/NameGeneratorPreferences.java | 4 +- .../DbAdapters.java} | 60 ++----- .../ProjectComparators.java} | 4 +- .../cayenne/modeler/project/ProjectSession.java | 5 +- .../AppTabbedPane.java} | 29 ++-- .../cayenne/modeler/toolkit/ProjectTabbedPane.java | 9 +- .../ColumnViewPanel.java} | 26 +-- .../{util => toolkit/filechooser}/FileFilters.java | 111 +----------- .../cayenne/modeler/toolkit/icon/IconFactory.java | 2 +- .../modeler/toolkit/text/LimitedTextField.java | 49 ------ .../modeler/toolkit/text/LineNumberedBorder.java | 188 ++++++++++----------- .../EntityTreeAttributeRelationshipFilter.java | 2 +- .../{util => toolkit/tree}/EntityTreeFilter.java | 2 +- .../{util => toolkit/tree}/EntityTreeModel.java | 7 +- .../tree}/EntityTreeRelationshipFilter.java | 2 +- .../modeler/toolkit/{ => url}/UrlOpener.java | 2 +- .../toolkit/{ => valuetype}/ValueTypes.java | 2 +- .../org/apache/cayenne/modeler/ui/MainFrame.java | 2 +- .../cayenne/modeler/ui/about/AboutFrame.java | 64 +++---- .../modeler/ui/action/DocumentationAction.java | 2 +- .../modeler/ui/action/ImportDataMapAction.java | 2 +- .../modeler/ui/action/ImportEOModelAction.java | 72 +++++++- .../cayenne/modeler/ui/action/ProjectOpener.java | 2 +- .../autorelationship/InferRelationshipsDialog.java | 11 +- .../autorelationship/InferRelationshipsPanel.java | 3 - .../modeler/ui/dbgen/DBGeneratorOptionsDialog.java | 4 +- .../modeler/ui/entitysync/EntitySyncDialog.java | 2 +- .../cayenne/modeler/ui/errors/ErrorDialog.java | 2 +- .../preferences/classpath/ClasspathPrefsPanel.java | 2 +- .../preferences/dbconnector/DBConnectorEditor.java | 4 +- .../creator/DBConnectorCreatorDialog.java | 4 +- .../project/editor/datadomain/DataDomainView.java | 8 +- .../datadomain/graph/action/SaveAsImageAction.java | 2 +- .../ui/project/editor/datamap/DataMapView.java | 6 +- .../dbimport/ReverseEngineeringConfigPanel.java | 2 +- .../editor/datamap/main/DataMapMainView.java | 4 +- .../main/superclass/SuperclassUpdateDialog.java | 4 +- .../ui/project/editor/dbentity/DbEntityView.java | 8 +- .../dbentity/properties/DbAttributePanel.java | 32 ++-- .../project/editor/embeddable/EmbeddableView.java | 6 +- .../attributes/EmbeddableAttributesView.java | 2 +- .../editor/embeddable/main/EmbeddableMainView.java | 4 +- .../ui/project/editor/objentity/ObjEntityView.java | 8 +- .../objentity/attrinfo/ObjAttributeInfoDialog.java | 12 +- ...er.java => ObjAttributePathNavigatorPanel.java} | 6 +- .../editor/objentity/main/ObjEntityMainView.java | 6 +- .../properties/DbAttributePathComboBoxEditor.java | 4 +- .../DbRelationshipPathComboBoxEditor.java | 4 +- .../objentity/properties/ObjAttributePanel.java | 2 +- .../properties/ObjAttributeTableModel.java | 2 +- .../properties/PathChooserComboBoxCellEditor.java | 2 +- .../relinfo/ObjRelationshipInfoDialog.java | 14 +- ...java => ObjRelationshipPathNavigatorPanel.java} | 19 +-- .../editor/procedure/ProcedureParameterTab.java | 33 +--- .../editor/procedure/ProcedureQueryView.java | 4 +- .../editor/procedure/ProcedureTabbedView.java | 7 +- .../editor/query/RawQueryPropertiesPanel.java | 4 +- .../editor/query/ejbql/EjbqlTabbedView.java | 4 +- .../query/selectquery/SelectQueryMainTab.java | 4 +- .../query/selectquery/SelectQueryOrderingTab.java | 8 +- .../query/selectquery/SelectQueryPrefetchTab.java | 4 +- .../query/selectquery/SelectQueryTabbedView.java | 15 +- .../query/sqltemplate/SQLTemplateMainTab.java | 4 +- .../query/sqltemplate/SQLTemplatePrefetchTab.java | 10 +- .../query/sqltemplate/SQLTemplateScriptsTab.java | 10 +- .../query/sqltemplate/SQLTemplateTabbedView.java | 6 +- .../modeler/ui/project/tree/ProjectTree.java | 30 ++-- .../ui/project/tree/ProjectTreeFactory.java | 12 +- .../modeler/util/ApplicationFileFilterTest.java | 1 + .../modeler/util/DataMapFileFilterTest.java | 1 + .../modeler/util/EOModelFileFilterTest.java | 1 + 71 files changed, 395 insertions(+), 600 deletions(-) diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/NameGeneratorPreferences.java similarity index 94% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/NameGeneratorPreferences.java index 51d3b4d84..759bf43a1 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NameGeneratorPreferences.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/NameGeneratorPreferences.java @@ -16,11 +16,10 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler; import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator; import org.apache.cayenne.dbsync.naming.ObjectNameGenerator; -import org.apache.cayenne.modeler.Application; import java.util.Arrays; import java.util.Vector; @@ -29,6 +28,7 @@ import java.util.prefs.Preferences; /** * Helper class to store/read information about naming strategies have been used */ +// TODO: this requires some refactoring (or removal)? public class NameGeneratorPreferences { private static final String STRATEGIES_PREFERENCE = "recentNameGenerators"; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbadapter/DbAdapters.java similarity index 69% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbadapter/DbAdapters.java index 49b18e42f..440b1306a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAdapterInfo.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbadapter/DbAdapters.java @@ -17,16 +17,7 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; - -import java.awt.Component; -import java.util.Collections; -import java.util.Map; -import java.util.TreeMap; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JList; -import javax.swing.ListCellRenderer; +package org.apache.cayenne.modeler.dbadapter; import org.apache.cayenne.dba.JdbcAdapter; import org.apache.cayenne.dba.db2.DB2Adapter; @@ -43,17 +34,19 @@ import org.apache.cayenne.dba.sqlite.SQLiteAdapter; import org.apache.cayenne.dba.sqlserver.SQLServerAdapter; import org.apache.cayenne.dba.sybase.SybaseAdapter; -public final class DbAdapterInfo { +import java.util.Collections; +import java.util.Map; +import java.util.TreeMap; - private static final Map<String, String> DEFAULT_ADAPTER_LABELS = new TreeMap<String, String>(); - private static final String[] standardAdapters = new String[] { JdbcAdapter.class.getName(), +public final class DbAdapters { + + private static final Map<String, String> DEFAULT_ADAPTER_LABELS = new TreeMap<>(); + private static final String[] STANDARD_ADAPTERS = new String[]{JdbcAdapter.class.getName(), MySQLAdapter.class.getName(), OracleAdapter.class.getName(), SybaseAdapter.class.getName(), PostgresAdapter.class.getName(), H2Adapter.class.getName(), HSQLDBAdapter.class.getName(), DB2Adapter.class.getName(), SQLServerAdapter.class.getName(), FrontBaseAdapter.class.getName(), FirebirdAdapter.class.getName(), DerbyAdapter.class.getName(), - IngresAdapter.class.getName(), SQLiteAdapter.class.getName() }; - - private static final Map<String, String> IMMUTABLE_LABELS = Collections.unmodifiableMap(DEFAULT_ADAPTER_LABELS); + IngresAdapter.class.getName(), SQLiteAdapter.class.getName()}; static { DEFAULT_ADAPTER_LABELS.put(JdbcAdapter.class.getName(), "Generic JDBC Adapter"); @@ -72,38 +65,11 @@ public final class DbAdapterInfo { DEFAULT_ADAPTER_LABELS.put(SQLiteAdapter.class.getName(), "SQLite Adapter"); } - public static Map getStandardAdapterLabels() { - return IMMUTABLE_LABELS; + public static Map<String, String> getStandardAdapterLabels() { + return Collections.unmodifiableMap(DEFAULT_ADAPTER_LABELS); } - public static ListCellRenderer getListRenderer() { - return new DbAdapterListRenderer(DEFAULT_ADAPTER_LABELS); - } - - public static String[] getStandardAdapters() { - return standardAdapters; - } - - static final class DbAdapterListRenderer extends DefaultListCellRenderer { - - Map adapterLabels; - - DbAdapterListRenderer(Map adapterLabels) { - this.adapterLabels = (adapterLabels != null) ? adapterLabels : Collections.EMPTY_MAP; - } - - public Component getListCellRendererComponent(JList list, Object object, int index, boolean arg3, boolean arg4) { - - if (object instanceof Class) { - object = ((Class<?>) object).getName(); - } - - Object label = adapterLabels.get(object); - if (label == null) { - label = object; - } - - return super.getListCellRendererComponent(list, label, index, arg3, arg4); - } + public static String[] standardAdapters() { + return STANDARD_ADAPTERS; } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/Comparators.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectComparators.java similarity index 98% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/Comparators.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectComparators.java index d0038bdb0..0edaa66a8 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/Comparators.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectComparators.java @@ -17,7 +17,7 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler.project; import org.apache.cayenne.configuration.ConfigurationNode; import org.apache.cayenne.configuration.DataNodeDescriptor; @@ -37,7 +37,7 @@ import java.util.Comparator; /** * A collection of useful Comparators used by the modeler. */ -public class Comparators { +public class ProjectComparators { private static final Comparator<ConfigurationNode> dataDomainChildren = new DataDomainChildrenComparator(); private static final Comparator<ConfigurationNode> dataMapChildren = new DataMapChildrenComparator(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectSession.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectSession.java index e1c82ccbb..bd24f92dd 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectSession.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/project/ProjectSession.java @@ -41,7 +41,6 @@ import org.apache.cayenne.modeler.event.model.*; import org.apache.cayenne.modeler.service.action.GlobalActions; import org.apache.cayenne.modeler.ui.project.editor.objentity.callbacks.CallbackType; import org.apache.cayenne.modeler.ui.project.editor.objentity.callbacks.ObjCallbackMethod; -import org.apache.cayenne.modeler.util.Comparators; import org.apache.cayenne.project.ConfigurationNodeParentGetter; import org.apache.cayenne.project.Project; @@ -139,8 +138,8 @@ public class ProjectSession { * would be set. */ result.sort(parent instanceof DataMap - ? Comparators.forDataMapChildren() - : Comparators.forDataDomainChildren()); + ? ProjectComparators.forDataMapChildren() + : ProjectComparators.forDataDomainChildren()); return result; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppTabbedPane.java similarity index 62% copy from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java copy to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppTabbedPane.java index 6f25b1ef7..1b6af865f 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/AppTabbedPane.java @@ -16,23 +16,18 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; -import org.apache.cayenne.map.Attribute; -import org.apache.cayenne.map.Relationship; +package org.apache.cayenne.modeler.toolkit; -/** - * EntityTreeFilter is an interface for deciding which attributes or - * relationships should appear in the tree - */ -public interface EntityTreeFilter { - /** - * Checks if attribute should appear in the tree - */ - boolean attributeMatch(Object node, Attribute<?,?,?> attr); - - /** - * Checks if relationship should appear in the tree - */ - boolean relationshipMatch(Object node, Relationship<?,?,?> rel); +import org.apache.cayenne.modeler.Application; + +import javax.swing.*; + +public abstract class AppTabbedPane extends JTabbedPane { + + protected final Application app; + + protected AppTabbedPane(Application app) { + this.app = app; + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ProjectTabbedPane.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ProjectTabbedPane.java index 2156e72a2..60fb22a9c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ProjectTabbedPane.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ProjectTabbedPane.java @@ -22,26 +22,21 @@ package org.apache.cayenne.modeler.toolkit; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.project.ProjectSession; -import javax.swing.JTabbedPane; - /** * Base for tabbed-pane containers in the modeler that need {@link ProjectSession} access * (selection state, model events, dirty flag) plus the {@link Application} reference. * Sibling of {@link ProjectPanel}, for editors whose root component is a {@code JTabbedPane}. */ -public abstract class ProjectTabbedPane extends JTabbedPane { +public abstract class ProjectTabbedPane extends AppTabbedPane { protected final ProjectSession session; protected ProjectTabbedPane(ProjectSession session) { + super(session.app()); this.session = session; } protected Application app() { return session.app(); } - - protected ProjectSession session() { - return session; - } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/MultiColumnBrowser.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/columnview/ColumnViewPanel.java similarity index 95% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/MultiColumnBrowser.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/columnview/ColumnViewPanel.java index f2ebd7f0e..d118d3409 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/MultiColumnBrowser.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/columnview/ColumnViewPanel.java @@ -17,8 +17,9 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.toolkit; +package org.apache.cayenne.modeler.toolkit.columnview; +import org.apache.cayenne.modeler.toolkit.Renderers; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; import javax.swing.*; @@ -35,22 +36,9 @@ import java.util.ArrayList; import java.util.List; /** - * A simple non-editable tree browser with multiple columns for display and - * navigation of a tree structure. This type of browser is ideal for showing - * deeply (or infinitely) nested trees/graphs. The most famous example of its - * use is Mac OS X Finder column view. - * - * <p> - * MultiColumnBrowser starts at the root of the tree and automatically expands - * to the right as navigation goes deeper. MultiColumnBrowser uses the same - * TreeModel as a regular JTree for its navigation model. - * </p> - * - * <p> - * Users are notified of selection changes via a TreeSelectionEvents. - * </p> + * A tree browser in the style of macOS Finder "column view" */ -public class MultiColumnBrowser extends JPanel { +public class ColumnViewPanel extends JPanel { protected static final ImageIcon rightArrow = IconFactory.buildIcon("icon-arrow-closed.png"); @@ -71,11 +59,11 @@ public class MultiColumnBrowser extends JPanel { */ private boolean fireDisabled; - public MultiColumnBrowser() { + public ColumnViewPanel() { this(DEFAULT_MIN_COLUMNS_COUNT); } - public MultiColumnBrowser(int minColumns) { + public ColumnViewPanel(int minColumns) { if (minColumns < DEFAULT_MIN_COLUMNS_COUNT) { throw new IllegalArgumentException("Expected " + DEFAULT_MIN_COLUMNS_COUNT + " or more columns, got: " + minColumns); @@ -443,7 +431,7 @@ public class MultiColumnBrowser extends JPanel { this.children = (treeNode != null) ? model.getChildCount(treeNode) : 0; // must fire an event to refresh the view - super.fireContentsChanged(MultiColumnBrowser.this, 0, Math.max(oldChildren, children)); + super.fireContentsChanged(ColumnViewPanel.this, 0, Math.max(oldChildren, children)); } public Object getElementAt(int index) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/FileFilters.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/filechooser/FileFilters.java similarity index 52% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/FileFilters.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/filechooser/FileFilters.java index 1e3f3f3bd..903f0e4d0 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/FileFilters.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/filechooser/FileFilters.java @@ -17,10 +17,10 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler.toolkit.filechooser; -import java.io.File; import javax.swing.filechooser.FileFilter; +import java.io.File; /** * A collection of common file filters used by CayenneModeler JFileChoosers. @@ -28,9 +28,6 @@ import javax.swing.filechooser.FileFilter; public class FileFilters { protected static final FileFilter applicationFilter = new ApplicationFileFilter(); - protected static final FileFilter velotemplateFilter = new VelotemplateFileFilter(); - protected static final FileFilter eomodelFilter = new EOModelFileFilter(); - protected static final FileFilter eomodelSelectFilter = new EOModelSelectFilter(); protected static final FileFilter dataMapFilter = new DataMapFileFilter(); private static final String DATA_MAP_LOCATION_SUFFIX = ".map.xml"; @@ -49,35 +46,6 @@ public class FileFilters { return dataMapFilter; } - /** - * Returns a FileFilter used to select Velocity template files. Filters files with - * ".vm" extension. - */ - public static FileFilter getVelotemplateFilter() { - return velotemplateFilter; - } - - /** - * Returns a FileFilter used to filter EOModels. This filter will only display - * directories and index.eomodeld files. - */ - public static FileFilter getEOModelFilter() { - return eomodelFilter; - } - - /** - * Returns FileFilter that defines the rules for EOModel selection. This filter will - * only allow selection of the following files/directories: - * <ul> - * <li>Directories with name matching <code>*.eomodeld</code> that contain - * <code>index.eomodeld</code>.</li> - * <li><code>index.eomodeld</code> files contained within <code>*.eomodeld</code> - * directory.</li> - * </ul> - */ - public static FileFilter getEOModelSelectFilter() { - return eomodelSelectFilter; - } /** * Returns filter that checks if file has specified extension @@ -86,25 +54,6 @@ public class FileFilters { return new ExtensionFileFilter(ext, description); } - static final class VelotemplateFileFilter extends FileFilter { - - /** - * Accepts all *.vm files. - */ - public boolean accept(File f) { - if (f.isDirectory()) { - return true; - } - - String name = f.getName(); - return (name.endsWith(".vm") && !name.equals(".vm")); - } - - public String getDescription() { - return "Velocity Templates (*.vm)"; - } - } - static final class ApplicationFileFilter extends FileFilter { /** @@ -150,62 +99,6 @@ public class FileFilters { } } - static final class EOModelFileFilter extends FileFilter { - - static final String EOM_SUFFIX = ".eomodeld"; - static final String EOM_INDEX = "index" + EOM_SUFFIX; - - /** - * Accepts all directories and <code>*.eomodeld/index.eomodeld</code> files. - */ - public boolean accept(File f) { - if (f.isDirectory()) { - return true; - } - - File parent = f.getParentFile(); - return parent != null - && parent.getName().endsWith(EOM_SUFFIX) - && EOM_INDEX.equals(f.getName()); - } - - public String getDescription() { - return "*" + EOM_SUFFIX; - } - } - - static final class EOModelSelectFilter extends FileFilter { - - /** - * Accepts all directories and <code>*.eomodeld/index.eomodeld</code> files. - * - * @see EOModelSelectFilter#accept(File) - */ - public boolean accept(File f) { - if (f.isDirectory()) { - if (f.getName().endsWith(EOModelFileFilter.EOM_SUFFIX) - && new File(f, EOModelFileFilter.EOM_INDEX).exists()) { - - return true; - } - } - else if (f.isFile()) { - File parent = f.getParentFile(); - if (parent != null - && parent.getName().endsWith(EOModelFileFilter.EOM_SUFFIX) - && EOModelFileFilter.EOM_INDEX.equals(f.getName())) { - return true; - } - } - - return false; - } - - public String getDescription() { - return "*" + EOModelFileFilter.EOM_SUFFIX; - } - } - /** * filter that checks if file has specified extension */ diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/icon/IconFactory.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/icon/IconFactory.java index 167de98ee..2dd30b764 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/icon/IconFactory.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/icon/IconFactory.java @@ -29,7 +29,7 @@ import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.map.Procedure; import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.map.Relationship; -import org.apache.cayenne.modeler.toolkit.ValueTypes; +import org.apache.cayenne.modeler.toolkit.valuetype.ValueTypes; import javax.swing.*; import java.awt.*; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LimitedTextField.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LimitedTextField.java deleted file mode 100644 index 8a1f31f0c..000000000 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LimitedTextField.java +++ /dev/null @@ -1,49 +0,0 @@ -/***************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - ****************************************************************/ -package org.apache.cayenne.modeler.toolkit.text; - -import javax.swing.JTextField; -import javax.swing.text.AttributeSet; -import javax.swing.text.BadLocationException; -import javax.swing.text.PlainDocument; - -public class LimitedTextField extends JTextField { - - public LimitedTextField(int limit) { - setDocument(new LimitedDocument(limit)); - } - - private static class LimitedDocument extends PlainDocument { - - private final int limit; - - LimitedDocument(int limit) { - this.limit = limit; - } - - @Override - public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { - if (str == null) return; - - if ((getLength() + str.length()) <= limit) { - super.insertString(offset, str, attr); - } - } - } -} diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LineNumberedBorder.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LineNumberedBorder.java index 37dc11741..ba89b4399 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LineNumberedBorder.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/LineNumberedBorder.java @@ -23,98 +23,98 @@ import javax.swing.border.AbstractBorder; import javax.swing.text.Document; import java.awt.*; -public class LineNumberedBorder extends AbstractBorder { - private int etalon; - private int lineNumberWidth; - private CMTextPane pane; - - public LineNumberedBorder(CMTextPane pane) { - setEtalon(10); - this.pane = pane; - } - - public Insets getBorderInsets(Component c) { - return getBorderInsets(c, new Insets(0, 0, 0, 0)); - } - - public Insets getBorderInsets(Component c, Insets insets) { - if (c instanceof JTextPane) { - int width = lineNumberWidth((JTextPane) c); - insets.left = width; - } - return insets; - } - - /** - * Returns the width, in pixels - */ - private int lineNumberWidth(JTextPane textPane) { - int lineCount = getEtalon(); - setLineNumberWidth(textPane.getFontMetrics(textPane.getFont()) - .stringWidth(lineCount + " ")); - return getLineNumberWidth(); - } - - public void paintBorder(Component c, Graphics g, int x, int y, int width, - int height) { - - java.awt.Rectangle clip = g.getClipBounds(); - - FontMetrics fm = g.getFontMetrics(); - int fontHeight = fm.getHeight(); - int ybaseline = y + fm.getAscent(); - - int startingLineNumber = (clip.y / fontHeight) + 1; - - if (ybaseline < clip.y) { - ybaseline = y + startingLineNumber * fontHeight - - (fontHeight - fm.getAscent()); - } - - - int yend = ybaseline + height; - if (yend > (y + height)) { - yend = y + height; - } - - int lnxstart = x; - int widhtBorder = getLineNumberWidth() - 2; - - g.setColor(new Color(255, 255, 224)); - g.fillRect(lnxstart, 0, lnxstart + widhtBorder, yend); - g.setColor(new Color(214, 214, 214)); - g.drawRect(lnxstart - 1, -1, lnxstart + widhtBorder, yend + 1); - - int end = pane.getEndPositionInDocument(); - Document doc = pane.getDocument(); - int endline = doc.getDefaultRootElement().getElementIndex(end) + 1; - - while (startingLineNumber <= endline) { - g.setColor(Color.gray); - g.drawString(startingLineNumber + " ", lnxstart + 1, ybaseline); - ybaseline += fontHeight; - startingLineNumber++; - } - - setEtalon(startingLineNumber-1); - } - - public int getEtalon() { - return etalon; - } - - public void setEtalon(int etalon) { - if(etalon<10){ - etalon = 10; - } - this.etalon = etalon; - } - - public int getLineNumberWidth() { - return lineNumberWidth; - } - - public void setLineNumberWidth(int lineNumberWidth) { - this.lineNumberWidth = lineNumberWidth; - } +class LineNumberedBorder extends AbstractBorder { + private int etalon; + private int lineNumberWidth; + private CMTextPane pane; + + public LineNumberedBorder(CMTextPane pane) { + setEtalon(10); + this.pane = pane; + } + + public Insets getBorderInsets(Component c) { + return getBorderInsets(c, new Insets(0, 0, 0, 0)); + } + + public Insets getBorderInsets(Component c, Insets insets) { + if (c instanceof JTextPane) { + int width = lineNumberWidth((JTextPane) c); + insets.left = width; + } + return insets; + } + + /** + * Returns the width, in pixels + */ + private int lineNumberWidth(JTextPane textPane) { + int lineCount = getEtalon(); + setLineNumberWidth(textPane.getFontMetrics(textPane.getFont()) + .stringWidth(lineCount + " ")); + return getLineNumberWidth(); + } + + public void paintBorder(Component c, Graphics g, int x, int y, int width, + int height) { + + java.awt.Rectangle clip = g.getClipBounds(); + + FontMetrics fm = g.getFontMetrics(); + int fontHeight = fm.getHeight(); + int ybaseline = y + fm.getAscent(); + + int startingLineNumber = (clip.y / fontHeight) + 1; + + if (ybaseline < clip.y) { + ybaseline = y + startingLineNumber * fontHeight + - (fontHeight - fm.getAscent()); + } + + + int yend = ybaseline + height; + if (yend > (y + height)) { + yend = y + height; + } + + int lnxstart = x; + int widhtBorder = getLineNumberWidth() - 2; + + g.setColor(new Color(255, 255, 224)); + g.fillRect(lnxstart, 0, lnxstart + widhtBorder, yend); + g.setColor(new Color(214, 214, 214)); + g.drawRect(lnxstart - 1, -1, lnxstart + widhtBorder, yend + 1); + + int end = pane.getEndPositionInDocument(); + Document doc = pane.getDocument(); + int endline = doc.getDefaultRootElement().getElementIndex(end) + 1; + + while (startingLineNumber <= endline) { + g.setColor(Color.gray); + g.drawString(startingLineNumber + " ", lnxstart + 1, ybaseline); + ybaseline += fontHeight; + startingLineNumber++; + } + + setEtalon(startingLineNumber - 1); + } + + public int getEtalon() { + return etalon; + } + + public void setEtalon(int etalon) { + if (etalon < 10) { + etalon = 10; + } + this.etalon = etalon; + } + + public int getLineNumberWidth() { + return lineNumberWidth; + } + + public void setLineNumberWidth(int lineNumberWidth) { + this.lineNumberWidth = lineNumberWidth; + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeAttributeRelationshipFilter.java similarity index 97% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeAttributeRelationshipFilter.java index 315f2f280..00a75daf6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeAttributeRelationshipFilter.java @@ -17,7 +17,7 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler.toolkit.tree; import org.apache.cayenne.map.Attribute; import org.apache.cayenne.map.DbRelationship; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeFilter.java similarity index 96% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeFilter.java index 6f25b1ef7..9c1a7de35 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeFilter.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler.toolkit.tree; import org.apache.cayenne.map.Attribute; import org.apache.cayenne.map.Relationship; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java similarity index 95% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeModel.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java index 69591d20b..c6504538b 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeModel.java @@ -17,12 +17,13 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler.toolkit.tree; import org.apache.cayenne.configuration.ConfigurationNode; import org.apache.cayenne.map.Attribute; import org.apache.cayenne.map.Entity; import org.apache.cayenne.map.Relationship; +import org.apache.cayenne.modeler.project.ProjectComparators; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; @@ -78,7 +79,7 @@ public class EntityTreeModel implements TreeModel { // wonder if linear search will be faster, considering that // this comparator uses reflection? - return Arrays.binarySearch(sortedChildren(node), (ConfigurationNode)child, Comparators.forNamedObjects()); + return Arrays.binarySearch(sortedChildren(node), (ConfigurationNode)child, ProjectComparators.forNamedObjects()); } public void addTreeModelListener(TreeModelListener listener) { @@ -121,7 +122,7 @@ public class EntityTreeModel implements TreeModel { sortedForNode = nodes.toArray(new ConfigurationNode[0]); - Arrays.sort(sortedForNode, Comparators.forEntityChildren()); + Arrays.sort(sortedForNode, ProjectComparators.forEntityChildren()); sortedChildren.put(node, sortedForNode); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeRelationshipFilter.java similarity index 97% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeRelationshipFilter.java index 988fcc44e..05db819d2 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/tree/EntityTreeRelationshipFilter.java @@ -17,7 +17,7 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.util; +package org.apache.cayenne.modeler.toolkit.tree; import org.apache.cayenne.map.Attribute; import org.apache.cayenne.map.DbRelationship; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/UrlOpener.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java similarity index 98% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/UrlOpener.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java index d66722e0e..0402ede3c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/UrlOpener.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java @@ -17,7 +17,7 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.toolkit; +package org.apache.cayenne.modeler.toolkit.url; import org.apache.cayenne.modeler.service.os.OperatingSystem; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ValueTypes.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/valuetype/ValueTypes.java similarity index 98% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ValueTypes.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/valuetype/ValueTypes.java index d74dc4072..d4fa61b64 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/ValueTypes.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/valuetype/ValueTypes.java @@ -17,7 +17,7 @@ * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.toolkit; +package org.apache.cayenne.modeler.toolkit.valuetype; import org.apache.cayenne.value.GeoJson; import org.apache.cayenne.value.Json; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java index dce638a09..626549255 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java @@ -39,7 +39,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.ProjectView; import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportResultDialog; import org.apache.cayenne.modeler.ui.welcome.WelcomeScreen; -import org.apache.cayenne.modeler.util.FileFilters; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.apache.cayenne.project.Project; import org.apache.cayenne.project.validation.ProjectValidator; import org.apache.cayenne.validation.ValidationFailure; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/about/AboutFrame.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/about/AboutFrame.java index 560bf0e77..58ed06fcc 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/about/AboutFrame.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/about/AboutFrame.java @@ -25,18 +25,18 @@ import org.apache.cayenne.util.Util; import javax.swing.*; import java.awt.*; +import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; +import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; +import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; import java.time.LocalDate; /** * Displays the Cayenne license and build information. */ -public class AboutFrame extends JFrame implements FocusListener, KeyListener, MouseListener { +public class AboutFrame extends JFrame { private static final String ABOUT_STRING = "(c) 2001-%d Apache Software Foundation and individual authors.<br><br>https://cayenne.apache.org/<br>"; @@ -94,9 +94,26 @@ public class AboutFrame extends JFrame implements FocusListener, KeyListener, Mo } private void initBindings() { - addMouseListener(this); - addFocusListener(this); - addKeyListener(this); + addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + dispose(); + } + }); + + addFocusListener(new FocusAdapter() { + @Override + public void focusLost(FocusEvent e) { + dispose(); + } + }); + + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + dispose(); + } + }); } private static String getInfoString() { @@ -131,37 +148,4 @@ public class AboutFrame extends JFrame implements FocusListener, KeyListener, Mo return infoString; } - - public void keyPressed(KeyEvent e) { - dispose(); - } - - public void focusLost(FocusEvent e) { - dispose(); - } - - public void focusGained(FocusEvent e) { - } - - public void keyReleased(KeyEvent e) { - } - - public void keyTyped(KeyEvent e) { - } - - public void mouseClicked(MouseEvent e) { - dispose(); - } - - public void mouseEntered(MouseEvent e) { - } - - public void mouseExited(MouseEvent e) { - } - - public void mousePressed(MouseEvent e) { - } - - public void mouseReleased(MouseEvent e) { - } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DocumentationAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DocumentationAction.java index 79da844cc..df5187aeb 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DocumentationAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/DocumentationAction.java @@ -23,7 +23,7 @@ import java.awt.event.ActionEvent; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.toolkit.AppAction; -import org.apache.cayenne.modeler.toolkit.UrlOpener; +import org.apache.cayenne.modeler.toolkit.url.UrlOpener; import org.apache.cayenne.util.LocalizedStringsHandler; public class DocumentationAction extends AppAction { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportDataMapAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportDataMapAction.java index 17eaa814b..bde0e983d 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportDataMapAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportDataMapAction.java @@ -28,7 +28,7 @@ import org.apache.cayenne.map.DataMap; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.toolkit.AppAction; import org.apache.cayenne.modeler.toolkit.filechooser.CMFileChooserPrefs; -import org.apache.cayenne.modeler.util.FileFilters; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.apache.cayenne.resource.Resource; import org.apache.cayenne.resource.URLResource; import org.slf4j.Logger; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportEOModelAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportEOModelAction.java index acf091316..eec84b13e 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportEOModelAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ImportEOModelAction.java @@ -44,18 +44,17 @@ import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.DbEntity; import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.map.QueryDescriptor; -import org.apache.cayenne.modeler.event.model.ObjEntityEvent; -import org.apache.cayenne.modeler.event.model.DbEntityEvent; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.event.display.DataMapDisplayEvent; import org.apache.cayenne.modeler.event.display.DataNodeDisplayEvent; import org.apache.cayenne.modeler.event.model.DataNodeEvent; +import org.apache.cayenne.modeler.event.model.DbEntityEvent; +import org.apache.cayenne.modeler.event.model.ObjEntityEvent; import org.apache.cayenne.modeler.event.model.QueryEvent; +import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.AppAction; import org.apache.cayenne.modeler.toolkit.filechooser.CMFileChooserPrefs; import org.apache.cayenne.modeler.ui.errors.ErrorsController; -import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.FileFilters; import org.apache.cayenne.wocompat.EOModelProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -336,15 +335,18 @@ public class ImportEOModelAction extends AppAction { */ static class EOModelChooser extends JFileChooser { + private static final FileFilter eomodelFilter = new EOModelFileFilter(); + private static final FileFilter eomodelSelectFilter = new EOModelSelectFilter(); + protected FileFilter selectFilter; protected JDialog cachedDialog; + public EOModelChooser(String title) { - super.setFileFilter(FileFilters.getEOModelFilter()); + super.setFileFilter(eomodelFilter); super.setDialogTitle(title); super.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); - - this.selectFilter = FileFilters.getEOModelSelectFilter(); + this.selectFilter = eomodelSelectFilter; } public int showOpenDialog(Component parent) { @@ -376,4 +378,60 @@ public class ImportEOModelAction extends AppAction { return cachedDialog; } } + + static final class EOModelFileFilter extends FileFilter { + + static final String EOM_SUFFIX = ".eomodeld"; + static final String EOM_INDEX = "index" + EOM_SUFFIX; + + /** + * Accepts all directories and <code>*.eomodeld/index.eomodeld</code> files. + */ + public boolean accept(File f) { + if (f.isDirectory()) { + return true; + } + + File parent = f.getParentFile(); + return parent != null + && parent.getName().endsWith(EOM_SUFFIX) + && EOM_INDEX.equals(f.getName()); + } + + public String getDescription() { + return "*" + EOM_SUFFIX; + } + } + + static final class EOModelSelectFilter extends FileFilter { + + /** + * Accepts all directories and <code>*.eomodeld/index.eomodeld</code> files. + * + * @see EOModelSelectFilter#accept(File) + */ + public boolean accept(File f) { + if (f.isDirectory()) { + if (f.getName().endsWith(EOModelFileFilter.EOM_SUFFIX) + && new File(f, EOModelFileFilter.EOM_INDEX).exists()) { + + return true; + } + } + else if (f.isFile()) { + File parent = f.getParentFile(); + if (parent != null + && parent.getName().endsWith(EOModelFileFilter.EOM_SUFFIX) + && EOModelFileFilter.EOM_INDEX.equals(f.getName())) { + return true; + } + } + + return false; + } + + public String getDescription() { + return "*" + EOModelFileFilter.EOM_SUFFIX; + } + } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ProjectOpener.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ProjectOpener.java index 66715fd8f..b02d14dd0 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ProjectOpener.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/action/ProjectOpener.java @@ -24,7 +24,7 @@ import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.pref.RecentProjectsPrefs; import org.apache.cayenne.modeler.ui.project.overwrite.OverwriteDialog; -import org.apache.cayenne.modeler.util.FileFilters; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.apache.cayenne.project.Project; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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 c713af586..9c441f862 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 @@ -30,7 +30,7 @@ import org.apache.cayenne.modeler.toolkit.ProjectDialog; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit; import org.apache.cayenne.modeler.undo.InferRelationshipsUndoableEdit; -import org.apache.cayenne.modeler.util.NameGeneratorPreferences; +import org.apache.cayenne.modeler.NameGeneratorPreferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,8 +62,6 @@ public class InferRelationshipsDialog extends ProjectDialog { private static final Logger LOGGER = LoggerFactory.getLogger(InferRelationshipsDialog.class); public static final String SELECTED_PROPERTY = "selected"; - public static final int SELECT = 1; - public static final int CANCEL = 0; private final DataMap dataMap; private final List<InferredRelationship> inferredRelationships = new ArrayList<>(); @@ -79,9 +77,6 @@ public class InferRelationshipsDialog extends ProjectDialog { private ObjectNameGenerator strategy; private PropertyChangeSupport propertyChangeSupport; - @SuppressWarnings("unused") - private int choice = CANCEL; - public InferRelationshipsDialog(ProjectSession session, Window owner, DataMap dataMap) { super(session, owner, "Infer Relationships", ModalityType.APPLICATION_MODAL); this.dataMap = dataMap; @@ -367,7 +362,6 @@ public class InferRelationshipsDialog extends ProjectDialog { createNames(); entitySelector.initBindings(); - choice = SELECT; } private void generateAction() { @@ -376,8 +370,7 @@ public class InferRelationshipsDialog extends ProjectDialog { for (InferredRelationship temp : selectedEntities) { DbRelationship rel = new DbRelationship(uniqueRelName(temp.getSource(), temp.getName())); - DbRelationshipEvent e = DbRelationshipEvent.ofAdd( - app.getFrame(), rel, temp.getSource()); + DbRelationshipEvent e = DbRelationshipEvent.ofAdd(app.getFrame(), rel, temp.getSource()); session.fireDbRelationshipEvent(e); rel.setSourceEntity(temp.getSource()); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsPanel.java index 69d7baab9..d08bea5b2 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/autorelationship/InferRelationshipsPanel.java @@ -29,9 +29,6 @@ public class InferRelationshipsPanel extends JPanel { public InferRelationshipsPanel() { this.table = new JTable(); - - // TODO: andrus 04/07/2006 - is there an easy way to stick that checkbox in the - // table header???? this.checkAll = new JCheckBox(); this.checkAllLabel = new JLabel("Check All DBRelationships"); 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 c107deb5a..62c724eb4 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 @@ -33,7 +33,7 @@ import org.apache.cayenne.modeler.toolkit.ProjectDialog; import org.apache.cayenne.modeler.ui.datasource.DataSourceDialog; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.validation.ValidationDialog; -import org.apache.cayenne.modeler.util.DbAdapterInfo; +import org.apache.cayenne.modeler.dbadapter.DbAdapters; import org.apache.cayenne.validation.ValidationResult; import javax.swing.Box; @@ -128,7 +128,7 @@ public class DBGeneratorOptionsDialog extends ProjectDialog { this.tabs = new JTabbedPane(SwingConstants.TOP); this.adapters = new JComboBox<>(); this.adapters.setEditable(true); - this.adapters.setModel(new DefaultComboBoxModel<>(DbAdapterInfo.getStandardAdapters())); + this.adapters.setModel(new DefaultComboBoxModel<>(DbAdapters.standardAdapters())); this.adapters.setSelectedIndex(0); this.sqlPreview = new JTextArea(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/entitysync/EntitySyncDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/entitysync/EntitySyncDialog.java index 793784de4..7df14e555 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/entitysync/EntitySyncDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/entitysync/EntitySyncDialog.java @@ -31,7 +31,7 @@ import org.apache.cayenne.map.DbEntity; import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.toolkit.AppDialog; -import org.apache.cayenne.modeler.util.NameGeneratorPreferences; +import org.apache.cayenne.modeler.NameGeneratorPreferences; import javax.swing.JButton; import javax.swing.JCheckBox; 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 79c9ec311..c2572e095 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 @@ -21,7 +21,7 @@ package org.apache.cayenne.modeler.ui.errors; import org.apache.cayenne.modeler.Application; -import org.apache.cayenne.modeler.toolkit.UrlOpener; +import org.apache.cayenne.modeler.toolkit.url.UrlOpener; import org.apache.cayenne.modeler.toolkit.buttons.CMButtonPanel; import org.apache.cayenne.modeler.toolkit.AppDialog; import org.apache.cayenne.util.LocalizedStringsHandler; 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 d690cdb56..3d7bcb5db 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 @@ -29,7 +29,7 @@ import org.apache.cayenne.modeler.toolkit.filechooser.CMFileChooserPrefs; import org.apache.cayenne.modeler.toolkit.table.CMTable; import org.apache.cayenne.modeler.toolkit.AppPanel; import org.apache.cayenne.modeler.ui.preferences.classpath.maven.MavenDependencyDialog; -import org.apache.cayenne.modeler.util.FileFilters; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import javax.swing.BorderFactory; import javax.swing.JButton; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/DBConnectorEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/DBConnectorEditor.java index bdc1c8910..f7d7b9728 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/DBConnectorEditor.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/preferences/dbconnector/DBConnectorEditor.java @@ -24,7 +24,7 @@ import com.jgoodies.forms.layout.FormLayout; import org.apache.cayenne.modeler.dbconnector.DBConnector; import org.apache.cayenne.modeler.toolkit.text.CMPasswordField; import org.apache.cayenne.modeler.toolkit.text.CMTextField; -import org.apache.cayenne.modeler.util.DbAdapterInfo; +import org.apache.cayenne.modeler.dbadapter.DbAdapters; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; @@ -62,7 +62,7 @@ public class DBConnectorEditor extends JPanel { this.labels = new ArrayList<>(); adapters.setEditable(true); - adapters.setModel(new DefaultComboBoxModel<>(DbAdapterInfo.getStandardAdapters())); + adapters.setModel(new DefaultComboBoxModel<>(DbAdapters.standardAdapters())); adapters.setSelectedIndex(0); 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 538b406e1..8aa13a172 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 @@ -25,7 +25,7 @@ import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.dbconnector.DBConnector; import org.apache.cayenne.modeler.toolkit.AppDialog; import org.apache.cayenne.modeler.ui.preferences.dbconnector.DBConnectorPrefsPanel; -import org.apache.cayenne.modeler.util.DbAdapterInfo; +import org.apache.cayenne.modeler.dbadapter.DbAdapters; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; @@ -66,7 +66,7 @@ public class DBConnectorCreatorDialog extends AppDialog { this.connectorName = new JTextField(suggestName()); - DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>(DbAdapterInfo.getStandardAdapters()); + DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>(DbAdapters.standardAdapters()); model.insertElementAt(NO_ADAPTER, 0); this.adapters = new JComboBox<>(model); this.adapters.setSelectedIndex(0); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainView.java index 408169224..4cc349487 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/DataDomainView.java @@ -57,7 +57,7 @@ public class DataDomainView extends ProjectTabbedPane { private void initLayout() { setTabPlacement(JTabbedPane.TOP); - addTab("Main", new JScrollPane(new DataDomainMainView(session()))); + addTab("Main", new JScrollPane(new DataDomainMainView(session))); addTab("Db Import", dbImportView); addTab("Class Generation", cgenView); addTab("Graph", graphTab); @@ -66,9 +66,9 @@ public class DataDomainView extends ProjectTabbedPane { private void initBindings() { addChangeListener(this::stateChanged); - session().addDomainDisplayListener(this::currentDomainChanged); - session().addObjEntityDisplayListener(this::onEntitySelected); - session().addDbEntityDisplayListener(this::onEntitySelected); + session.addDomainDisplayListener(this::currentDomainChanged); + session.addObjEntityDisplayListener(this::onEntitySelected); + session.addDbEntityDisplayListener(this::onEntitySelected); } private void onEntitySelected(ObjEntityDisplayEvent e) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/graph/action/SaveAsImageAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/graph/action/SaveAsImageAction.java index ada688a76..9fcae2bea 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/graph/action/SaveAsImageAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datadomain/graph/action/SaveAsImageAction.java @@ -22,7 +22,7 @@ import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.toolkit.AppAction; import org.apache.cayenne.modeler.toolkit.filechooser.CMFileChooserPrefs; import org.apache.cayenne.modeler.ui.project.editor.datadomain.graph.DataDomainGraphTab; -import org.apache.cayenne.modeler.util.FileFilters; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.jgraph.JGraph; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/DataMapView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/DataMapView.java index e87cf3ad1..fc21c1b4a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/DataMapView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/DataMapView.java @@ -38,13 +38,13 @@ public class DataMapView extends ProjectTabbedPane { private void initLayout() { setTabPlacement(JTabbedPane.TOP); - addTab("DataMap", new JScrollPane(new DataMapMainView(session()))); - addTab("DB Import", new JScrollPane(new DbImportView(session()))); + addTab("DataMap", new JScrollPane(new DataMapMainView(session))); + addTab("DB Import", new JScrollPane(new DbImportView(session))); addTab("Class Generation", new JScrollPane(new CgenPanel(session))); } private void initBindings() { - session().addDataMapDisplayListener(this::currentDataMapChanged); + session.addDataMapDisplayListener(this::currentDataMapChanged); } private void currentDataMapChanged(DataMapDisplayEvent e) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringConfigPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringConfigPanel.java index 3d148fe4a..08747306a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringConfigPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/ReverseEngineeringConfigPanel.java @@ -28,7 +28,7 @@ import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.NameGeneratorPreferences; +import org.apache.cayenne.modeler.NameGeneratorPreferences; import javax.swing.*; import java.awt.*; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java index 396ba2b54..48f8ff414 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/DataMapMainView.java @@ -39,7 +39,7 @@ import org.apache.cayenne.modeler.ui.project.editor.datamap.main.locking.Locking import org.apache.cayenne.modeler.ui.project.editor.datamap.main.pkg.PackageUpdateDialog; import org.apache.cayenne.modeler.ui.project.editor.datamap.main.schema.SchemaUpdateDialog; import org.apache.cayenne.modeler.ui.project.editor.datamap.main.superclass.SuperclassUpdateDialog; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.Util; import org.apache.cayenne.validation.ValidationException; @@ -165,7 +165,7 @@ public class DataMapMainView extends ProjectPanel { // now add the entities if (nodes.length > 0) { - Arrays.sort(nodes, Comparators.forNamedObjects()); + Arrays.sort(nodes, ProjectComparators.forNamedObjects()); System.arraycopy(nodes, 0, objects, 1, nodes.length); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java index 78d98c5fb..ea27d3810 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/main/superclass/SuperclassUpdateDialog.java @@ -23,7 +23,7 @@ import org.apache.cayenne.map.DataMap; import org.apache.cayenne.modeler.event.model.ObjEntityEvent; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.datamap.defaults.DefaultsUpdateDialog; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.util.Util; import java.awt.Window; @@ -43,7 +43,7 @@ public class SuperclassUpdateDialog extends DefaultsUpdateDialog { String defaultSuperclass = dataMap.getDefaultSuperclass(); dataMap.getObjEntities().stream() - .sorted(Comparators.forDataMapChildren()).forEach(entity -> { + .sorted(ProjectComparators.forDataMapChildren()).forEach(entity -> { if (doAll || Util.isEmptyString(entity.getSuperClassName())) { if (!Util.nullSafeEquals(defaultSuperclass, entity.getSuperClassName())) { entity.setSuperClassName(defaultSuperclass); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/DbEntityView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/DbEntityView.java index f831f462e..d595eb366 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/DbEntityView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/DbEntityView.java @@ -60,14 +60,14 @@ public class DbEntityView extends ProjectTabbedPane { } private void initBindings() { - session().addDbEntityDisplayListener(this::currentDbEntityChanged); - session().addDbAttributeDisplayListener(this::currentDbAttributeChanged); - session().addDbRelationshipDisplayListener(this::currentDbRelationshipChanged); + session.addDbEntityDisplayListener(this::currentDbEntityChanged); + session.addDbAttributeDisplayListener(this::currentDbAttributeChanged); + session.addDbRelationshipDisplayListener(this::currentDbRelationshipChanged); addChangeListener(this::stateChanged); } private void resetRemoveButtons() { - GlobalActions globalActions = app().getActionManager(); + GlobalActions globalActions = app.getActionManager(); globalActions.getAction(RemoveAttributeAction.class).setEnabled(false); globalActions.getAction(RemoveRelationshipAction.class).setEnabled(false); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributePanel.java index 441f421f8..955b05b85 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributePanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/dbentity/properties/DbAttributePanel.java @@ -21,27 +21,25 @@ package org.apache.cayenne.modeler.ui.project.editor.dbentity.properties; import org.apache.cayenne.dba.TypesMapping; import org.apache.cayenne.map.DbAttribute; import org.apache.cayenne.map.DbEntity; +import org.apache.cayenne.modeler.event.display.DbAttributeDisplayEvent; +import org.apache.cayenne.modeler.event.display.DbEntityDisplayEvent; +import org.apache.cayenne.modeler.event.display.DbEntityDisplayListener; +import org.apache.cayenne.modeler.event.display.TablePopupHandler; import org.apache.cayenne.modeler.event.model.DbAttributeEvent; import org.apache.cayenne.modeler.event.model.DbAttributeListener; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.service.action.GlobalActions; +import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; +import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; +import org.apache.cayenne.modeler.toolkit.table.BoardTableCellRenderer; +import org.apache.cayenne.modeler.toolkit.table.CMComboBoxCellEditor; +import org.apache.cayenne.modeler.toolkit.table.CMTable; +import org.apache.cayenne.modeler.toolkit.table.CMTablePanel; +import org.apache.cayenne.modeler.toolkit.table.CMTablePrefs; import org.apache.cayenne.modeler.ui.action.CopyAttributeRelationshipAction; import org.apache.cayenne.modeler.ui.action.CutAttributeRelationshipAction; import org.apache.cayenne.modeler.ui.action.PasteAction; import org.apache.cayenne.modeler.ui.action.RemoveAttributeRelationshipAction; -import org.apache.cayenne.modeler.event.display.DbAttributeDisplayEvent; -import org.apache.cayenne.modeler.event.display.DbEntityDisplayEvent; -import org.apache.cayenne.modeler.event.display.DbEntityDisplayListener; -import org.apache.cayenne.modeler.event.display.TablePopupHandler; -import org.apache.cayenne.modeler.toolkit.table.CMTablePrefs; -import org.apache.cayenne.modeler.toolkit.table.BoardTableCellRenderer; -import org.apache.cayenne.modeler.toolkit.table.CMTable; -import org.apache.cayenne.modeler.toolkit.table.CMTablePanel; -import org.apache.cayenne.modeler.toolkit.table.CMTextFieldCellEditor; -import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; -import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; -import org.apache.cayenne.modeler.toolkit.table.CMComboBoxCellEditor; -import org.apache.cayenne.modeler.toolkit.text.LimitedTextField; import javax.swing.*; import javax.swing.event.ListSelectionEvent; @@ -178,7 +176,7 @@ public class DbAttributePanel extends JPanel implements DbEntityDisplayListener, String[] types = TypesMapping.getDatabaseTypes(); Arrays.sort(types); - JComboBox comboBox = new CMComboBox<>(types); + JComboBox<String> comboBox = new CMComboBox<>(types); // Types.NULL makes no sense as a column type comboBox.removeItem("NULL"); @@ -187,12 +185,6 @@ public class DbAttributePanel extends JPanel implements DbEntityDisplayListener, TableColumn typeColumn = table.getColumnModel().getColumn(DbAttributeTableModel.DB_ATTRIBUTE_TYPE); typeColumn.setCellEditor(new CMComboBoxCellEditor(comboBox)); - TableColumn lengthColumn = table.getColumnModel().getColumn(DbAttributeTableModel.DB_ATTRIBUTE_MAX); - lengthColumn.setCellEditor(new CMTextFieldCellEditor(new LimitedTextField(10))); - - TableColumn scaleColumn = table.getColumnModel().getColumn(DbAttributeTableModel.DB_ATTRIBUTE_SCALE); - scaleColumn.setCellEditor(new CMTextFieldCellEditor(new LimitedTextField(10))); - CMTablePrefs.of(session.app().getPreferencesRepository(), "dbEntity/attributeTable") .bind(table, null, DbAttributeTableModel.DB_ATTRIBUTE_NAME); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/EmbeddableView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/EmbeddableView.java index 1ad6462df..efb0eacfc 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/EmbeddableView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/EmbeddableView.java @@ -56,8 +56,8 @@ public class EmbeddableView extends ProjectTabbedPane { } private void initBindings() { - session().addEmbeddableAttributeDisplayListener(this::currentEmbeddableAttributeChanged); - session().addEmbeddableDisplayListener(this::currentEmbeddableChanged); + session.addEmbeddableAttributeDisplayListener(this::currentEmbeddableAttributeChanged); + session.addEmbeddableDisplayListener(this::currentEmbeddableChanged); addChangeListener(this::stateChanged); } @@ -74,7 +74,7 @@ public class EmbeddableView extends ProjectTabbedPane { } private void resetRemoveButtons() { - GlobalActions globalActions = app().getActionManager(); + GlobalActions globalActions = app.getActionManager(); globalActions.getAction(RemoveAttributeAction.class).setEnabled(false); globalActions.getAction(RemoveCallbackMethodAction.class).setEnabled(false); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributesView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributesView.java index 073e0163b..2b1d832c5 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributesView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/attributes/EmbeddableAttributesView.java @@ -31,7 +31,7 @@ import org.apache.cayenne.modeler.event.model.EmbeddableAttributeListener; import org.apache.cayenne.modeler.event.model.EmbeddableEvent; import org.apache.cayenne.modeler.event.model.EmbeddableListener; import org.apache.cayenne.modeler.service.action.GlobalActions; -import org.apache.cayenne.modeler.toolkit.ValueTypes; +import org.apache.cayenne.modeler.toolkit.valuetype.ValueTypes; import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; import org.apache.cayenne.modeler.toolkit.table.CMComboBoxCellEditor; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java index cb094f25a..a87aaf59e 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/embeddable/main/EmbeddableMainView.java @@ -34,7 +34,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.event.display.EmbeddableDisplayEvent; import org.apache.cayenne.modeler.event.display.EmbeddableDisplayListener; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.Util; import org.apache.cayenne.validation.ValidationException; @@ -137,7 +137,7 @@ public class EmbeddableMainView extends ProjectPanel implements EmbeddableDispla while (it.hasNext()) { DataMap dataMap = (DataMap) it.next(); Iterator<ObjEntity> ent = dataMap.getObjEntities().stream() - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .iterator(); while (ent.hasNext()) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/ObjEntityView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/ObjEntityView.java index 9740ed6f0..9b46b7353 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/ObjEntityView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/ObjEntityView.java @@ -66,9 +66,9 @@ public class ObjEntityView extends ProjectTabbedPane { } private void initBindings() { - session().addObjEntityDisplayListener(this::currentObjEntityChanged); - session().addObjAttributeDisplayListener(this::currentObjAttributeChanged); - session().addObjRelationshipDisplayListener(this::currentObjRelationshipChanged); + session.addObjEntityDisplayListener(this::currentObjEntityChanged); + session.addObjAttributeDisplayListener(this::currentObjAttributeChanged); + session.addObjRelationshipDisplayListener(this::currentObjRelationshipChanged); addChangeListener(this::stateChanged); } @@ -88,7 +88,7 @@ public class ObjEntityView extends ProjectTabbedPane { } private void resetRemoveButtons() { - GlobalActions globalActions = app().getActionManager(); + GlobalActions globalActions = app.getActionManager(); globalActions.getAction(RemoveAttributeAction.class).setEnabled(false); globalActions.getAction(RemoveRelationshipAction.class).setEnabled(false); 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 d7725a1f6..b11d8acab 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 @@ -35,8 +35,8 @@ import org.apache.cayenne.modeler.event.display.ObjAttributeDisplayEvent; import org.apache.cayenne.modeler.event.display.ObjEntityDisplayEvent; import org.apache.cayenne.modeler.event.model.ObjAttributeEvent; import org.apache.cayenne.modeler.event.model.ObjEntityEvent; -import org.apache.cayenne.modeler.toolkit.MultiColumnBrowser; -import org.apache.cayenne.modeler.toolkit.ValueTypes; +import org.apache.cayenne.modeler.toolkit.columnview.ColumnViewPanel; +import org.apache.cayenne.modeler.toolkit.valuetype.ValueTypes; import org.apache.cayenne.modeler.toolkit.buttons.CMButtonPanel; import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; @@ -45,8 +45,8 @@ import org.apache.cayenne.modeler.toolkit.table.CMTablePrefs; import org.apache.cayenne.modeler.toolkit.ProjectDialog; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.objentity.properties.ObjAttributeTableModel; -import org.apache.cayenne.modeler.util.EntityTreeAttributeRelationshipFilter; -import org.apache.cayenne.modeler.util.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeAttributeRelationshipFilter; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.CayenneMapEntry; @@ -114,7 +114,7 @@ public class ObjAttributeInfoDialog extends ProjectDialog implements TreeSelecti private final JCheckBox usedForLockingCheckBox; private final JCheckBox lazyCheckBox; private final JTextField commentField; - private final MultiColumnBrowser pathBrowser; + private final ColumnViewPanel pathBrowser; private final Map<String, Embeddable> stringToEmbeddables = new HashMap<>(); private final List<String> embeddableNames = new ArrayList<>(); @@ -147,7 +147,7 @@ public class ObjAttributeInfoDialog extends ProjectDialog implements TreeSelecti this.commentField = new JTextField(); this.overrideAttributeTable = new CMTable(); - this.pathBrowser = new ObjAttributePathBrowser(selectPathButton, saveButton); + this.pathBrowser = new ObjAttributePathNavigatorPanel(selectPathButton, saveButton); this.pathBrowser.setPreferredColumnSize(BROWSER_CELL_DIM); this.pathBrowser.setDefaultRenderer(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributePathBrowser.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributePathNavigatorPanel.java similarity index 93% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributePathBrowser.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributePathNavigatorPanel.java index a853e4b49..21782e307 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributePathBrowser.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/attrinfo/ObjAttributePathNavigatorPanel.java @@ -18,7 +18,7 @@ ****************************************************************/ package org.apache.cayenne.modeler.ui.project.editor.objentity.attrinfo; -import org.apache.cayenne.modeler.ui.project.editor.objentity.relinfo.ObjRelationshipPathBrowser; +import org.apache.cayenne.modeler.ui.project.editor.objentity.relinfo.ObjRelationshipPathNavigatorPanel; import org.apache.cayenne.map.DbAttribute; import org.apache.cayenne.map.DbRelationship; @@ -27,12 +27,12 @@ import javax.swing.tree.TreePath; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -public class ObjAttributePathBrowser extends ObjRelationshipPathBrowser { +public class ObjAttributePathNavigatorPanel extends ObjRelationshipPathNavigatorPanel { private final JButton selectPathButton; private final JButton doneButton; - public ObjAttributePathBrowser(JButton selectPathButton, JButton doneButton) { + public ObjAttributePathNavigatorPanel(JButton selectPathButton, JButton doneButton) { this.selectPathButton = selectPathButton; this.doneButton = doneButton; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java index 1df9bd33f..a658b3920 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/main/ObjEntityMainView.java @@ -48,7 +48,7 @@ import org.apache.cayenne.modeler.ui.project.editor.datadomain.graph.action.Show import org.apache.cayenne.modeler.ui.project.editor.objentity.classname.ClassNameUpdaterController; import org.apache.cayenne.modeler.ui.project.editor.objentity.duplicates.DuplicatedAttributesDialog; import org.apache.cayenne.modeler.ui.project.editor.query.ExistingSelectionProcessor; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.Util; import org.apache.cayenne.validation.ValidationException; @@ -281,7 +281,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL EntityResolver resolver = session.entityResolver(); DataMap map = session.getSelectedDataMap(); DbEntity[] dbEntities = resolver.getDbEntities().toArray(new DbEntity[0]); - Arrays.sort(dbEntities, Comparators.forDataMapChildren()); + Arrays.sort(dbEntities, ProjectComparators.forDataMapChildren()); DefaultComboBoxModel<DbEntity> dbModel = new DefaultComboBoxModel<>(dbEntities); dbModel.setSelectedItem(entity.getDbEntity()); @@ -297,7 +297,7 @@ public class ObjEntityMainView extends ProjectPanel implements ObjEntityDisplayL // do not show this entity or any of the subentities List<ObjEntity> objEntities = map.getObjEntities().stream() .filter(object -> entity != object && !object.isSubentityOf(entity)) - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .collect(Collectors.toList()); objEntities.add(0, NO_INHERITANCE); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java index 3768e398a..4f6e817df 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java @@ -27,8 +27,8 @@ import org.apache.cayenne.map.MappingNamespace; import org.apache.cayenne.map.ObjAttribute; import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.modeler.toolkit.Renderers; -import org.apache.cayenne.modeler.util.EntityTreeAttributeRelationshipFilter; -import org.apache.cayenne.modeler.util.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeAttributeRelationshipFilter; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; import org.apache.cayenne.util.CayenneMapEntry; import org.apache.cayenne.util.Util; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java index 5fa3f4741..9969f61bc 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java @@ -24,8 +24,8 @@ import org.apache.cayenne.map.DbRelationship; import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.modeler.toolkit.Renderers; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.EntityTreeModel; -import org.apache.cayenne.modeler.util.EntityTreeRelationshipFilter; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeRelationshipFilter; import javax.swing.*; import javax.swing.text.JTextComponent; 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 7b8cbcebe..b054c4e04 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 @@ -50,7 +50,7 @@ import org.apache.cayenne.modeler.ui.action.PasteAction; import org.apache.cayenne.modeler.ui.action.RemoveAttributeRelationshipAction; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.objentity.attrinfo.ObjAttributeInfoDialog; -import org.apache.cayenne.modeler.toolkit.ValueTypes; +import org.apache.cayenne.modeler.toolkit.valuetype.ValueTypes; import javax.swing.*; import javax.swing.event.ListSelectionEvent; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java index f4491807c..2e9a80894 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/ObjAttributeTableModel.java @@ -35,7 +35,7 @@ import org.apache.cayenne.modeler.event.display.ObjEntityDisplayEvent; import org.apache.cayenne.modeler.event.model.ObjAttributeEvent; import org.apache.cayenne.modeler.event.model.ObjEntityEvent; import org.apache.cayenne.modeler.project.DbEntityOps; -import org.apache.cayenne.modeler.toolkit.ValueTypes; +import org.apache.cayenne.modeler.toolkit.valuetype.ValueTypes; import org.apache.cayenne.modeler.toolkit.table.CMTableModel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.project.extension.info.ObjectInfo; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java index b118311b8..6c35728de 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java @@ -29,7 +29,7 @@ import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; import org.apache.cayenne.modeler.toolkit.table.CMTableModel; -import org.apache.cayenne.modeler.util.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; import org.apache.cayenne.util.Util; import javax.swing.*; 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 e31d6da9f..094dc6c12 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 @@ -32,7 +32,7 @@ import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.map.ObjRelationship; import org.apache.cayenne.modeler.event.display.ObjRelationshipDisplayEvent; import org.apache.cayenne.modeler.event.model.ObjRelationshipEvent; -import org.apache.cayenne.modeler.toolkit.MultiColumnBrowser; +import org.apache.cayenne.modeler.toolkit.columnview.ColumnViewPanel; import org.apache.cayenne.modeler.toolkit.buttons.CMButtonPanel; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; import org.apache.cayenne.modeler.toolkit.ProjectDialog; @@ -40,9 +40,9 @@ import org.apache.cayenne.modeler.ui.dbrelationship.DbRelationshipDialog; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.undo.CreateRelationshipUndoableEdit; import org.apache.cayenne.modeler.undo.RelationshipUndoableEdit; -import org.apache.cayenne.modeler.util.Comparators; -import org.apache.cayenne.modeler.util.EntityTreeModel; -import org.apache.cayenne.modeler.util.EntityTreeRelationshipFilter; +import org.apache.cayenne.modeler.project.ProjectComparators; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeRelationshipFilter; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.DeleteRuleUpdater; import org.apache.cayenne.util.Util; @@ -100,7 +100,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele private final JComboBox<String> deleteRule; private final JCheckBox usedForLocking; private final JTextField comment; - private final MultiColumnBrowser pathBrowser; + private final ColumnViewPanel pathBrowser; private final JButton newRelButton; private final JButton saveButton; private final JButton cancelButton; @@ -135,7 +135,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele this.usedForLocking = new JCheckBox(); this.comment = new JTextField(); - this.pathBrowser = new ObjRelationshipPathBrowser(); + this.pathBrowser = new ObjRelationshipPathNavigatorPanel(); this.pathBrowser.setPreferredColumnSize(BROWSER_CELL_DIM); this.pathBrowser.setDefaultRenderer(); @@ -462,7 +462,7 @@ public class ObjRelationshipInfoDialog extends ProjectDialog implements TreeSele objectTargets = new ArrayList<>(); if (dbTarget != null) { objectTargets.addAll(dbTarget.getDataMap().getMappedEntities(dbTarget)); - objectTargets.sort(Comparators.forNamedObjects()); + objectTargets.sort(ProjectComparators.forNamedObjects()); } targetCombo.removeAllItems(); for (ObjEntity s : objectTargets) { diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipPathBrowser.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipPathNavigatorPanel.java similarity index 93% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipPathBrowser.java rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipPathNavigatorPanel.java index e11c339fd..e829a4ca6 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipPathBrowser.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/relinfo/ObjRelationshipPathNavigatorPanel.java @@ -18,22 +18,21 @@ ****************************************************************/ package org.apache.cayenne.modeler.ui.project.editor.objentity.relinfo; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; +import org.apache.cayenne.map.DbRelationship; +import org.apache.cayenne.modeler.toolkit.columnview.ColumnViewPanel; -import javax.swing.SwingUtilities; +import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.tree.TreePath; - -import org.apache.cayenne.map.DbRelationship; -import org.apache.cayenne.modeler.toolkit.MultiColumnBrowser; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; /** * Multi-column browser for obj relationships */ -public class ObjRelationshipPathBrowser extends MultiColumnBrowser { +public class ObjRelationshipPathNavigatorPanel extends ColumnViewPanel { /** * Listener, which performs adding of new column @@ -45,11 +44,11 @@ public class ObjRelationshipPathBrowser extends MultiColumnBrowser { */ protected ListSelectionListener panelRemover; - public ObjRelationshipPathBrowser() { + public ObjRelationshipPathNavigatorPanel() { this(DEFAULT_MIN_COLUMNS_COUNT); } - public ObjRelationshipPathBrowser(int minColumns) { + public ObjRelationshipPathNavigatorPanel(int minColumns) { super(minColumns); } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTab.java index fc4a76302..45854a8a5 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureParameterTab.java @@ -30,33 +30,29 @@ import org.apache.cayenne.modeler.event.display.TablePopupHandler; import org.apache.cayenne.modeler.event.model.ProcedureEvent; import org.apache.cayenne.modeler.event.model.ProcedureParameterEvent; import org.apache.cayenne.modeler.event.model.ProcedureParameterListener; -import org.apache.cayenne.modeler.toolkit.table.CMTablePrefs; +import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.service.action.GlobalActions; +import org.apache.cayenne.modeler.toolkit.AppAction; +import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.toolkit.combobox.AutoCompletion; import org.apache.cayenne.modeler.toolkit.combobox.CMComboBox; -import org.apache.cayenne.modeler.toolkit.table.CMComboBoxCellEditor; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; +import org.apache.cayenne.modeler.toolkit.table.CMComboBoxCellEditor; import org.apache.cayenne.modeler.toolkit.table.CMTable; import org.apache.cayenne.modeler.toolkit.table.CMTablePanel; -import org.apache.cayenne.modeler.toolkit.table.CMTextFieldCellEditor; -import org.apache.cayenne.modeler.toolkit.text.LimitedTextField; +import org.apache.cayenne.modeler.toolkit.table.CMTablePrefs; import org.apache.cayenne.modeler.ui.action.CopyAttributeRelationshipAction; import org.apache.cayenne.modeler.ui.action.CopyProcedureParameterAction; import org.apache.cayenne.modeler.ui.action.CreateProcedureParameterAction; import org.apache.cayenne.modeler.ui.action.CutAttributeRelationshipAction; import org.apache.cayenne.modeler.ui.action.CutProcedureParameterAction; -import org.apache.cayenne.modeler.toolkit.AppAction; import org.apache.cayenne.modeler.ui.action.PasteAction; import org.apache.cayenne.modeler.ui.action.RemoveAttributeRelationshipAction; import org.apache.cayenne.modeler.ui.action.RemoveProcedureParameterAction; -import org.apache.cayenne.modeler.toolkit.ProjectPanel; -import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.query.ExistingSelectionProcessor; import javax.swing.*; import javax.swing.event.ChangeEvent; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableColumn; import java.awt.*; @@ -90,12 +86,7 @@ public class ProcedureParameterTab extends ProjectPanel implements ProcedurePara session.addProcedureDisplayListener(this); session.addProcedureParameterListener(this); - table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { - - public void valueChanged(ListSelectionEvent e) { - processExistingSelection(e); - } - }); + table.getSelectionModel().addListSelectionListener(this::processExistingSelection); moveDown.addActionListener(this); moveUp.addActionListener(this); @@ -281,26 +272,18 @@ public class ProcedureParameterTab extends ProjectPanel implements ProcedurePara .getColumn(ProcedureParameterTableModel.PARAMETER_TYPE); String[] dbTypes = TypesMapping.getDatabaseTypes(); Arrays.sort(dbTypes); - JComboBox typesEditor = new CMComboBox<>(dbTypes); + JComboBox<String> typesEditor = new CMComboBox<>(dbTypes); AutoCompletion.enable(typesEditor, session::getSelectedDataMap); typesColumn.setCellEditor(new CMComboBoxCellEditor(typesEditor)); // direction column tweaking TableColumn directionColumn = table.getColumnModel() .getColumn(ProcedureParameterTableModel.PARAMETER_DIRECTION); - JComboBox directionEditor = new CMComboBox<>( + JComboBox<String> directionEditor = new CMComboBox<>( ProcedureParameterTableModel.PARAMETER_DIRECTION_NAMES); directionEditor.setEditable(false); directionColumn.setCellEditor(new CMComboBoxCellEditor(directionEditor)); - TableColumn precisionColumn = table.getColumnModel().getColumn(ProcedureParameterTableModel.PARAMETER_PRECISION); - LimitedTextField limitedPrecisionField = new LimitedTextField(10); - precisionColumn.setCellEditor(new CMTextFieldCellEditor(limitedPrecisionField)); - - TableColumn lengthColumn = table.getColumnModel().getColumn(ProcedureParameterTableModel.PARAMETER_LENGTH); - LimitedTextField limitedLengthField = new LimitedTextField(10); - lengthColumn.setCellEditor(new CMTextFieldCellEditor(limitedLengthField)); - moveUp.setEnabled(false); moveDown.setEnabled(false); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java index 703f7aa15..f862a4b8a 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureQueryView.java @@ -38,7 +38,7 @@ import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.Renderers; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.query.CapsStrategy; import org.apache.cayenne.query.ProcedureQuery; @@ -160,7 +160,7 @@ public class ProcedureQueryView extends ProjectPanel { Procedure[] roots = map.getProcedures().toArray(new Procedure[0]); if (roots.length > 1) { - Arrays.sort(roots, Comparators.forDataMapChildren()); + Arrays.sort(roots, ProjectComparators.forDataMapChildren()); } DefaultComboBoxModel<Procedure> model = new DefaultComboBoxModel<>(roots); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTabbedView.java index 8dc5bfaa8..d88714e94 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTabbedView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/procedure/ProcedureTabbedView.java @@ -52,8 +52,8 @@ public class ProcedureTabbedView extends ProjectTabbedPane { } private void initBindings() { - session().addProcedureDisplayListener(this::currentProcedureChanged); - session().addProcedureParameterDisplayListener(this::currentProcedureParameterChanged); + session.addProcedureDisplayListener(this::currentProcedureChanged); + session.addProcedureParameterDisplayListener(this::currentProcedureParameterChanged); addChangeListener(this::stateChanged); } @@ -67,8 +67,7 @@ public class ProcedureTabbedView extends ProjectTabbedPane { } private void currentProcedureChanged(ProcedureDisplayEvent e) { - app().getActionManager().getAction( - RemoveProcedureParameterAction.class).setEnabled(false); + app.getActionManager().getAction(RemoveProcedureParameterAction.class).setEnabled(false); if (e.getProcedure() == null) setVisible(false); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/RawQueryPropertiesPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/RawQueryPropertiesPanel.java index 4a0f97bb5..b4e0c12dc 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/RawQueryPropertiesPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/RawQueryPropertiesPanel.java @@ -33,7 +33,7 @@ import org.apache.cayenne.modeler.toolkit.checkbox.CMCheckBox; import org.apache.cayenne.modeler.toolkit.combobox.CMUndoableComboBox; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.Renderers; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; @@ -123,7 +123,7 @@ public abstract class RawQueryPropertiesPanel extends SelectPropertiesPanel { List<ObjEntity> objEntities = new ArrayList<>(map.getObjEntities()); if (objEntities.size() > 1) { - objEntities.sort(Comparators.forDataMapChildren()); + objEntities.sort(ProjectComparators.forDataMapChildren()); } entities.setEnabled(fetchingDO && isEnabled()); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlTabbedView.java index 5eba1f394..d44424f21 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlTabbedView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/ejbql/EjbqlTabbedView.java @@ -47,7 +47,7 @@ public class EjbqlTabbedView extends ProjectTabbedPane { } private void initBindings() { - session().addQueryDisplayListener(e -> initFromModel()); + session.addQueryDisplayListener(e -> initFromModel()); addChangeListener(this::stateChanged); } @@ -57,7 +57,7 @@ public class EjbqlTabbedView extends ProjectTabbedPane { } private void initFromModel() { - if (!QueryDescriptor.EJBQL_QUERY.equals(session().getSelectedQuery().getType())) { + if (!QueryDescriptor.EJBQL_QUERY.equals(session.getSelectedQuery().getType())) { setVisible(false); return; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java index f15e7022e..b2e17669c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryMainTab.java @@ -37,7 +37,7 @@ import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.ui.project.editor.ExpressionConvertor; import org.apache.cayenne.modeler.ui.project.editor.query.BaseQueryMainTab; import org.apache.cayenne.modeler.ui.project.editor.query.ObjectQueryPropertiesPanel; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.util.CayenneMapEntry; import org.apache.cayenne.util.Util; @@ -150,7 +150,7 @@ public class SelectQueryMainTab extends BaseQueryMainTab { ObjEntity[] roots = map.getObjEntities().toArray(new ObjEntity[0]); if (roots.length > 1) { - Arrays.sort(roots, Comparators.forDataMapChildren()); + Arrays.sort(roots, ProjectComparators.forDataMapChildren()); } DefaultComboBoxModel<ObjEntity> model = new DefaultComboBoxModel<>(roots); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryOrderingTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryOrderingTab.java index 05070baec..01bc19698 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryOrderingTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryOrderingTab.java @@ -23,14 +23,14 @@ import org.apache.cayenne.map.Entity; import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.map.SelectQueryDescriptor; import org.apache.cayenne.modeler.event.model.QueryEvent; -import org.apache.cayenne.modeler.toolkit.MultiColumnBrowser; +import org.apache.cayenne.modeler.toolkit.columnview.ColumnViewPanel; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; import org.apache.cayenne.modeler.toolkit.splitpane.CMSplitPanePrefs; import org.apache.cayenne.modeler.toolkit.table.CMTable; import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.toolkit.AppAction; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; import org.apache.cayenne.query.Ordering; import org.apache.cayenne.query.SortOrder; import org.apache.cayenne.util.CayenneMapEntry; @@ -59,7 +59,7 @@ public class SelectQueryOrderingTab extends ProjectPanel { protected SelectQueryDescriptor selectQuery; - protected MultiColumnBrowser browser; + protected ColumnViewPanel browser; protected CMTable table; protected CardLayout cardLayout; @@ -147,7 +147,7 @@ public class SelectQueryOrderingTab extends ProjectPanel { } protected JPanel createSelectorPanel() { - browser = new MultiColumnBrowser(); + browser = new ColumnViewPanel(); browser.setPreferredColumnSize(BROWSER_CELL_DIM); browser.setDefaultRenderer(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryPrefetchTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryPrefetchTab.java index 6541301be..addf8dd9c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryPrefetchTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryPrefetchTab.java @@ -26,8 +26,8 @@ import org.apache.cayenne.map.Entity; import org.apache.cayenne.map.Relationship; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.AppAction; -import org.apache.cayenne.modeler.util.EntityTreeFilter; -import org.apache.cayenne.modeler.util.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeFilter; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; import javax.swing.BorderFactory; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryTabbedView.java index 409df75fd..147afc680 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryTabbedView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/selectquery/SelectQueryTabbedView.java @@ -19,13 +19,12 @@ package org.apache.cayenne.modeler.ui.project.editor.query.selectquery; -import javax.swing.JScrollPane; -import javax.swing.JTabbedPane; -import javax.swing.event.ChangeEvent; - import org.apache.cayenne.map.QueryDescriptor; -import org.apache.cayenne.modeler.toolkit.ProjectTabbedPane; import org.apache.cayenne.modeler.project.ProjectSession; +import org.apache.cayenne.modeler.toolkit.ProjectTabbedPane; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; public class SelectQueryTabbedView extends ProjectTabbedPane { @@ -51,7 +50,7 @@ public class SelectQueryTabbedView extends ProjectTabbedPane { } private void initBindings() { - session().addQueryDisplayListener(e -> initFromModel()); + session.addQueryDisplayListener(e -> initFromModel()); addChangeListener(this::stateChanged); } @@ -61,13 +60,13 @@ public class SelectQueryTabbedView extends ProjectTabbedPane { } private void initFromModel() { - if (!QueryDescriptor.SELECT_QUERY.equals(session().getSelectedQuery().getType())) { + if (!QueryDescriptor.SELECT_QUERY.equals(session.getSelectedQuery().getType())) { setVisible(false); return; } // if no root, reset tabs to show the first panel.. - if (session().getSelectedQuery().getRoot() == null) { + if (session.getSelectedQuery().getRoot() == null) { lastSelectionIndex = 0; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateMainTab.java index c954b116c..fcfa2d3ab 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateMainTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateMainTab.java @@ -34,7 +34,7 @@ import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.modeler.toolkit.combobox.CMUndoableComboBox; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextField; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.extension.info.ObjectInfo; import org.apache.cayenne.query.CapsStrategy; import org.apache.cayenne.query.SQLTemplate; @@ -132,7 +132,7 @@ public class SQLTemplateMainTab extends BaseQueryMainTab { ObjEntity[] roots = map.getObjEntities().toArray(new ObjEntity[0]); if (roots.length > 1) { - Arrays.sort(roots, Comparators.forDataMapChildren()); + Arrays.sort(roots, ProjectComparators.forDataMapChildren()); } DefaultComboBoxModel<ObjEntity> model = new DefaultComboBoxModel<>(roots); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplatePrefetchTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplatePrefetchTab.java index 8025c309b..7c26515d8 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplatePrefetchTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplatePrefetchTab.java @@ -30,9 +30,9 @@ import org.apache.cayenne.map.SQLTemplateDescriptor; import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.project.ProjectSession; import org.apache.cayenne.modeler.toolkit.AppAction; -import org.apache.cayenne.modeler.util.EntityTreeFilter; -import org.apache.cayenne.modeler.util.EntityTreeModel; -import org.apache.cayenne.modeler.toolkit.MultiColumnBrowser; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeFilter; +import org.apache.cayenne.modeler.toolkit.tree.EntityTreeModel; +import org.apache.cayenne.modeler.toolkit.columnview.ColumnViewPanel; import org.apache.cayenne.modeler.toolkit.icon.IconFactory; import org.apache.cayenne.modeler.toolkit.splitpane.CMSplitPanePrefs; import org.apache.cayenne.modeler.toolkit.table.CMTable; @@ -71,7 +71,7 @@ public class SQLTemplatePrefetchTab extends ProjectPanel { protected SQLTemplateDescriptor sqlTemplate; - protected MultiColumnBrowser browser; + protected ColumnViewPanel browser; protected CMTable table; protected CardLayout cardLayout; @@ -174,7 +174,7 @@ public class SQLTemplatePrefetchTab extends ProjectPanel { protected JPanel createSelectorPanel() { - browser = new MultiColumnBrowser(); + browser = new ColumnViewPanel(); browser.setPreferredColumnSize(BROWSER_CELL_DIM); browser.setDefaultRenderer(); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java index 9c665c8cd..af118a37d 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateScriptsTab.java @@ -27,7 +27,7 @@ import org.apache.cayenne.map.QueryDescriptor; import org.apache.cayenne.map.SQLTemplateDescriptor; import org.apache.cayenne.modeler.toolkit.ProjectPanel; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.DbAdapterInfo; +import org.apache.cayenne.modeler.dbadapter.DbAdapters; import org.apache.cayenne.modeler.toolkit.text.CMUndoableTextPane; import org.apache.cayenne.modeler.toolkit.text.CMTextPane; import org.apache.cayenne.util.Util; @@ -78,7 +78,7 @@ public class SQLTemplateScriptsTab extends ProjectPanel { } private void prepareScriptAreas() { - for(String key : DbAdapterInfo.getStandardAdapters()) { + for(String key : DbAdapters.standardAdapters()) { CMTextPane currPane = new CMUndoableTextPane(app.getUndoManager(), new SQLSyntax()); currPane.setName(key); currPane.getDocument().addDocumentListener(new CustomListener(currPane.getName())); @@ -101,10 +101,10 @@ public class SQLTemplateScriptsTab extends ProjectPanel { scripts = new JList<>(); scripts.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - scripts.setCellRenderer(new DbAdapterListRenderer(DbAdapterInfo.getStandardAdapterLabels())); + scripts.setCellRenderer(new DbAdapterListRenderer(DbAdapters.getStandardAdapterLabels())); - keys = new ArrayList<>(DbAdapterInfo.getStandardAdapters().length + 1); - keys.addAll(Arrays.asList(DbAdapterInfo.getStandardAdapters())); + keys = new ArrayList<>(DbAdapters.standardAdapters().length + 1); + keys.addAll(Arrays.asList(DbAdapters.standardAdapters())); Collections.sort(keys); keys.add(0, DEFAULT_LABEL); scripts.setModel(new DefaultComboBoxModel<>(keys.toArray(new String[0]))); diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateTabbedView.java index 31c8f458c..0d0bb40f3 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateTabbedView.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/query/sqltemplate/SQLTemplateTabbedView.java @@ -51,7 +51,7 @@ public class SQLTemplateTabbedView extends ProjectTabbedPane { } private void initBindings() { - session().addQueryDisplayListener(e -> initFromModel()); + session.addQueryDisplayListener(e -> initFromModel()); addChangeListener(this::stateChanged); } @@ -61,13 +61,13 @@ public class SQLTemplateTabbedView extends ProjectTabbedPane { } private void initFromModel() { - if (!QueryDescriptor.SQL_TEMPLATE.equals(session().getSelectedQuery().getType())) { + if (!QueryDescriptor.SQL_TEMPLATE.equals(session.getSelectedQuery().getType())) { setVisible(false); return; } // if no root, reset tabs to show the first panel.. - if (session().getSelectedQuery().getRoot() == null) { + if (session.getSelectedQuery().getRoot() == null) { lastSelectionIndex = 0; } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java index b56c026f4..a1b1c5d4f 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTree.java @@ -81,7 +81,7 @@ import org.apache.cayenne.modeler.ui.action.ObjEntitySyncAction; import org.apache.cayenne.modeler.ui.action.PasteAction; import org.apache.cayenne.modeler.ui.action.RemoveAction; import org.apache.cayenne.modeler.project.ProjectSession; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import org.apache.cayenne.project.Project; import org.apache.cayenne.reflect.PropertyUtils; import org.apache.cayenne.resource.Resource; @@ -469,7 +469,7 @@ public class ProjectTree extends JTree Procedure procedure = e.getProcedure(); DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(procedure, false); - positionNode(node, currentNode, Comparators.forDataMapChildren()); + positionNode(node, currentNode, ProjectComparators.forDataMapChildren()); navigateTo(currentNode); } @@ -482,7 +482,7 @@ public class ProjectTree extends JTree }; updateNode(path); - positionNode(Comparators.forDataMapChildren(), path); + positionNode(ProjectComparators.forDataMapChildren(), path); navigateTo(path); } } @@ -505,7 +505,7 @@ public class ProjectTree extends JTree QueryDescriptor query = e.getQuery(); DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(query, false); - positionNode(node, currentNode, Comparators.forDataMapChildren()); + positionNode(node, currentNode, ProjectComparators.forDataMapChildren()); navigateTo(currentNode); } @@ -518,7 +518,7 @@ public class ProjectTree extends JTree }; updateNode(path); - positionNode(Comparators.forDataMapChildren(), path); + positionNode(ProjectComparators.forDataMapChildren(), path); navigateTo(path); } } @@ -533,7 +533,7 @@ public class ProjectTree extends JTree Object[] path = new Object[]{e.getDomain()}; updateNode(path); if (e.isNameChange()) { - positionNode(Comparators.forNamedObjects(), path); + positionNode(ProjectComparators.forNamedObjects(), path); navigateTo(path); } } @@ -547,7 +547,7 @@ public class ProjectTree extends JTree if (node != null) { if (e.isNameChange()) { positionNode((DefaultMutableTreeNode) node.getParent(), node, - Comparators.forDataDomainChildren()); + ProjectComparators.forDataDomainChildren()); navigateTo(node); } else { getProjectModel().nodeChanged(node); @@ -572,7 +572,7 @@ public class ProjectTree extends JTree if (!found) { DefaultMutableTreeNode newMapNode = new DefaultMutableTreeNode(domain.getDataMap(aMapsName), false); - positionNode(node, newMapNode, Comparators.forNamedObjects()); + positionNode(node, newMapNode, ProjectComparators.forNamedObjects()); break; } } @@ -612,7 +612,7 @@ public class ProjectTree extends JTree DataNodeDescriptor dataNode = e.getDataNode(); DefaultMutableTreeNode currentNode = ProjectTreeFactory.wrapProjectNode(dataNode); - positionNode(node, currentNode, Comparators.forDataDomainChildren()); + positionNode(node, currentNode, ProjectComparators.forDataDomainChildren()); navigateTo(currentNode); } @@ -637,7 +637,7 @@ public class ProjectTree extends JTree if (e.isNameChange()) { session.updateEntityResolver(); - positionNode(Comparators.forDataDomainChildren(), path); + positionNode(ProjectComparators.forDataDomainChildren(), path); navigateTo(path); } } @@ -652,7 +652,7 @@ public class ProjectTree extends JTree session.entityResolver().addDataMap(e.getDataMap()); - positionNode(domainNode, newMapNode, Comparators.forDataDomainChildren()); + positionNode(domainNode, newMapNode, ProjectComparators.forDataDomainChildren()); if (session.app().getFrame().getDbImportResultDialog().isGlobalImport()) { setSelected(newMapNode); } else { @@ -728,7 +728,7 @@ public class ProjectTree extends JTree }; updateNode(path); - positionNode(Comparators.forDataMapChildren(), path); + positionNode(ProjectComparators.forDataMapChildren(), path); navigateTo(path); } } @@ -748,7 +748,7 @@ public class ProjectTree extends JTree } DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(entity, false); - positionNode(mapNode, currentNode, Comparators.forDataMapChildren()); + positionNode(mapNode, currentNode, ProjectComparators.forDataMapChildren()); navigateTo(currentNode); } @@ -778,7 +778,7 @@ public class ProjectTree extends JTree } DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(embeddable, false); - positionNode(mapNode, currentNode, Comparators.forDataMapChildren()); + positionNode(mapNode, currentNode, ProjectComparators.forDataMapChildren()); navigateTo(currentNode); } @@ -791,7 +791,7 @@ public class ProjectTree extends JTree }; updateNode(path); - positionNode(Comparators.forDataMapChildren(), path); + positionNode(ProjectComparators.forDataMapChildren(), path); navigateTo(path); } } diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTreeFactory.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTreeFactory.java index f84a23c06..b4bf2c0bd 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTreeFactory.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/tree/ProjectTreeFactory.java @@ -23,7 +23,7 @@ import org.apache.cayenne.configuration.ConfigurationNode; import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.configuration.DataNodeDescriptor; import org.apache.cayenne.map.DataMap; -import org.apache.cayenne.modeler.util.Comparators; +import org.apache.cayenne.modeler.project.ProjectComparators; import javax.swing.tree.DefaultMutableTreeNode; import java.util.ArrayList; @@ -133,23 +133,23 @@ class ProjectTreeFactory { //Should be sorted manually because dataMap don't provide sorted collection. dataMap.getObjEntities().stream() - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .forEach(e -> makeNode(e)); dataMap.getEmbeddables().stream() - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .forEach(e -> makeNode(e)); dataMap.getDbEntities().stream() - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .forEach(e -> makeNode(e)); dataMap.getProcedures().stream() - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .forEach(e -> makeNode(e)); dataMap.getQueryDescriptors().stream() - .sorted(Comparators.forDataMapChildren()) + .sorted(ProjectComparators.forDataMapChildren()) .forEach(e -> makeNode(e)); return popNode(); diff --git a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/ApplicationFileFilterTest.java b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/ApplicationFileFilterTest.java index 65e0370b5..339ad739a 100644 --- a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/ApplicationFileFilterTest.java +++ b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/ApplicationFileFilterTest.java @@ -19,6 +19,7 @@ package org.apache.cayenne.modeler.util; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/DataMapFileFilterTest.java b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/DataMapFileFilterTest.java index 3193aabd1..8c0df1e3b 100644 --- a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/DataMapFileFilterTest.java +++ b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/DataMapFileFilterTest.java @@ -19,6 +19,7 @@ package org.apache.cayenne.modeler.util; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/EOModelFileFilterTest.java b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/EOModelFileFilterTest.java index 27616923b..a99ce4d74 100644 --- a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/EOModelFileFilterTest.java +++ b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/util/EOModelFileFilterTest.java @@ -19,6 +19,7 @@ package org.apache.cayenne.modeler.util; +import org.apache.cayenne.modeler.toolkit.filechooser.FileFilters; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;
