Skip to content

Commit 42c8d01

Browse files
committed
Modeler controller hierarchy cleanup
1 parent 51b076b commit 42c8d01

76 files changed

Lines changed: 1266 additions & 1451 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import org.apache.cayenne.di.Inject;
2525
import org.apache.cayenne.di.Injector;
2626
import org.apache.cayenne.modeler.action.ActionManager;
27-
import org.apache.cayenne.modeler.dialog.LogConsole;
28-
import org.apache.cayenne.modeler.dialog.pref.ClasspathPreferences;
27+
import org.apache.cayenne.modeler.dialog.LogConsoleController;
28+
import org.apache.cayenne.modeler.dialog.pref.ClasspathPreferencesController;
2929
import org.apache.cayenne.modeler.undo.CayenneUndoManager;
3030
import org.apache.cayenne.modeler.util.AdapterMapping;
3131
import org.apache.cayenne.modeler.util.WidgetFactory;
@@ -62,6 +62,7 @@ public class Application {
6262
private static Application instance;
6363

6464
protected FileClassLoadingService modelerClassLoader;
65+
protected LogConsoleController logConsoleController;
6566
protected CayenneModelerController frameController;
6667
protected String name;
6768
protected AdapterMapping adapterMapping;
@@ -138,46 +139,39 @@ public AdapterMapping getAdapterMapping() {
138139
return adapterMapping;
139140
}
140141

141-
/**
142-
* Returns action controller.
143-
*/
142+
144143
public ActionManager getActionManager() {
145144
return injector.getInstance(ActionManager.class);
146145
}
147146

148-
/**
149-
* Returns undo-edits controller.
150-
*/
151147
public CayenneUndoManager getUndoManager() {
152148
return undoManager;
153149
}
154150

155-
/**
156-
* Returns controller for the main frame.
157-
*/
158151
public CayenneModelerController getFrameController() {
159152
return frameController;
160153
}
161154

162-
/**
163-
* Starts the application.
164-
*/
155+
public LogConsoleController getLogConsoleController() {
156+
return logConsoleController;
157+
}
158+
165159
public void startup() {
160+
this.logConsoleController = new LogConsoleController(this);
161+
166162
// init subsystems
167163
initPreferences();
168164
initClassLoader();
169165

170166
this.adapterMapping = new AdapterMapping();
171-
172167
this.undoManager = new CayenneUndoManager(this);
173-
174168
this.frameController = new CayenneModelerController(this);
175169

176170
// open up
177171
frameController.onStartup();
178172

179173
// After prefs have been loaded, we can now show the console if needed
180-
LogConsole.getInstance().showConsoleIfNeeded();
174+
logConsoleController.showConsoleIfNeeded();
181175
getFrame().setVisible(true);
182176
}
183177

@@ -216,7 +210,7 @@ public void initClassLoader() {
216210

217211
// init from preferences...
218212
Preferences classLoaderPreference = Application.getInstance().getPreferencesNode(
219-
ClasspathPreferences.class,
213+
ClasspathPreferencesController.class,
220214
"");
221215

222216
String[] keys;

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
import org.apache.cayenne.modeler.editor.DbImportController;
2727
import org.apache.cayenne.modeler.editor.EditorPanel;
2828
import org.apache.cayenne.modeler.init.platform.PlatformInitializer;
29+
import org.apache.cayenne.modeler.mvc.RootController;
2930
import org.apache.cayenne.modeler.pref.ComponentGeometry;
3031
import org.apache.cayenne.modeler.pref.FSPath;
31-
import org.apache.cayenne.modeler.util.CayenneController;
3232
import org.apache.cayenne.modeler.util.FileFilters;
3333
import org.apache.cayenne.project.Project;
3434
import org.apache.cayenne.project.validation.ProjectValidator;
@@ -57,7 +57,7 @@
5757
/**
5858
* Controller of the main application frame.
5959
*/
60-
public class CayenneModelerController extends CayenneController {
60+
public class CayenneModelerController extends RootController {
6161

6262
private final ProjectController projectController;
6363
private final CayenneModelerFrame frame;
@@ -67,7 +67,7 @@ public class CayenneModelerController extends CayenneController {
6767
public CayenneModelerController(Application application) {
6868
super(application);
6969

70-
this.frame = new CayenneModelerFrame(application.getActionManager());
70+
this.frame = new CayenneModelerFrame(application.getActionManager(), application.getLogConsoleController());
7171
application.getInjector().getInstance(PlatformInitializer.class).setupMenus(frame);
7272
this.projectController = new ProjectController(this);
7373
this.dbImportController = new DbImportController();

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
package org.apache.cayenne.modeler;
2121

2222
import org.apache.cayenne.modeler.action.*;
23-
import org.apache.cayenne.modeler.dialog.LogConsole;
23+
import org.apache.cayenne.modeler.dialog.LogConsoleController;
2424
import org.apache.cayenne.modeler.dialog.welcome.WelcomeScreen;
2525
import org.apache.cayenne.modeler.editor.EditorPanel;
2626
import org.apache.cayenne.modeler.event.model.RecentFileListListener;
@@ -45,6 +45,7 @@
4545
*/
4646
public class CayenneModelerFrame extends JFrame {
4747

48+
private final LogConsoleController logConsoleController;
4849
private final ActionManager actionManager;
4950
private final List<RecentFileListListener> recentFileListeners;
5051

@@ -56,8 +57,9 @@ public class CayenneModelerFrame extends JFrame {
5657
private JCheckBoxMenuItem logMenu;
5758
private Component dockComponent;
5859

59-
public CayenneModelerFrame(ActionManager actionManager) {
60+
public CayenneModelerFrame(ActionManager actionManager, LogConsoleController logConsoleController) {
6061
this.actionManager = actionManager;
62+
this.logConsoleController = logConsoleController;
6163
this.recentFileListeners = new ArrayList<>();
6264

6365
setIconImage(ModelerUtil.buildIcon("CayenneModeler.png").getImage());
@@ -169,9 +171,9 @@ protected void initMenus() {
169171
toolMenu.addSeparator();
170172
logMenu = actionManager.getAction(ShowLogConsoleAction.class).buildCheckBoxMenu();
171173

172-
if (!LogConsole.getInstance().getConsoleProperty(LogConsole.DOCKED_PROPERTY)
173-
&& LogConsole.getInstance().getConsoleProperty(LogConsole.SHOW_CONSOLE_PROPERTY)) {
174-
LogConsole.getInstance().setConsoleProperty(LogConsole.SHOW_CONSOLE_PROPERTY, false);
174+
if (!logConsoleController.getConsoleProperty(LogConsoleController.DOCKED_PROPERTY)
175+
&& logConsoleController.getConsoleProperty(LogConsoleController.SHOW_CONSOLE_PROPERTY)) {
176+
logConsoleController.setConsoleProperty(LogConsoleController.SHOW_CONSOLE_PROPERTY, false);
175177
}
176178

177179
updateLogConsoleMenu();
@@ -198,7 +200,7 @@ protected void initMenus() {
198200
* Selects/deselects menu item, depending on status of log console
199201
*/
200202
public void updateLogConsoleMenu() {
201-
logMenu.setSelected(LogConsole.getInstance().getConsoleProperty(LogConsole.SHOW_CONSOLE_PROPERTY));
203+
logMenu.setSelected(logConsoleController.getConsoleProperty(LogConsoleController.SHOW_CONSOLE_PROPERTY));
202204
}
203205

204206
/**

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@
2424
import org.apache.cayenne.configuration.DataChannelDescriptor;
2525
import org.apache.cayenne.configuration.DataNodeDescriptor;
2626
import org.apache.cayenne.map.Attribute;
27-
import org.apache.cayenne.map.Relationship;
28-
import org.apache.cayenne.modeler.action.ActionManager;
29-
import org.apache.cayenne.modeler.event.display.*;
30-
import org.apache.cayenne.modeler.event.model.*;
3127
import org.apache.cayenne.map.DataMap;
3228
import org.apache.cayenne.map.DbAttribute;
3329
import org.apache.cayenne.map.DbEntity;
@@ -41,6 +37,7 @@
4137
import org.apache.cayenne.map.Procedure;
4238
import org.apache.cayenne.map.ProcedureParameter;
4339
import org.apache.cayenne.map.QueryDescriptor;
40+
import org.apache.cayenne.map.Relationship;
4441
import org.apache.cayenne.map.event.AttributeEvent;
4542
import org.apache.cayenne.map.event.DbAttributeListener;
4643
import org.apache.cayenne.map.event.DbEntityListener;
@@ -55,15 +52,18 @@
5552
import org.apache.cayenne.map.event.ObjEntityListener;
5653
import org.apache.cayenne.map.event.ObjRelationshipListener;
5754
import org.apache.cayenne.map.event.RelationshipEvent;
55+
import org.apache.cayenne.modeler.action.ActionManager;
5856
import org.apache.cayenne.modeler.action.RevertAction;
5957
import org.apache.cayenne.modeler.action.SaveAction;
6058
import org.apache.cayenne.modeler.action.SaveAsAction;
6159
import org.apache.cayenne.modeler.editor.CallbackType;
6260
import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
61+
import org.apache.cayenne.modeler.event.display.*;
62+
import org.apache.cayenne.modeler.event.model.*;
63+
import org.apache.cayenne.modeler.mvc.ChildController;
6364
import org.apache.cayenne.modeler.pref.DataMapDefaults;
6465
import org.apache.cayenne.modeler.pref.DataNodeDefaults;
6566
import org.apache.cayenne.modeler.pref.ProjectStatePreferences;
66-
import org.apache.cayenne.modeler.util.CayenneController;
6767
import org.apache.cayenne.modeler.util.Comparators;
6868
import org.apache.cayenne.modeler.util.state.DisplayEventTypes;
6969
import org.apache.cayenne.modeler.util.state.MultipleObjectsDisplayEventType;
@@ -90,7 +90,7 @@
9090
/**
9191
* A controller that works with the project tree, tracking selection and dispatching project events.
9292
*/
93-
public class ProjectController extends CayenneController {
93+
public class ProjectController extends ChildController<CayenneModelerController> {
9494

9595
private static final Logger LOGGER = LoggerFactory.getLogger(ProjectController.class);
9696

@@ -1192,7 +1192,7 @@ public void setDirty(boolean dirty) {
11921192
application.getActionManager().getAction(RevertAction.class).setEnabled(dirty);
11931193

11941194
if (dirty) {
1195-
((CayenneModelerController) getParent()).onProjectModified();
1195+
parent.onProjectModified();
11961196
}
11971197
}
11981198
}

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ConfigurePreferencesAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.awt.event.ActionEvent;
2323

2424
import org.apache.cayenne.modeler.Application;
25-
import org.apache.cayenne.modeler.dialog.pref.PreferenceDialog;
25+
import org.apache.cayenne.modeler.dialog.pref.PreferenceDialogController;
2626
import org.apache.cayenne.modeler.util.CayenneAction;
2727

2828

@@ -41,7 +41,7 @@ public void performAction(ActionEvent e) {
4141
}
4242

4343
public void showPreferencesDialog() {
44-
new PreferenceDialog(getApplication().getFrameController()).startupAction(null);
44+
new PreferenceDialogController(getApplication().getFrameController()).startupAction(null);
4545

4646
}
4747

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateQueryAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.apache.cayenne.map.event.MapEvent;
2727
import org.apache.cayenne.modeler.Application;
2828
import org.apache.cayenne.modeler.ProjectController;
29-
import org.apache.cayenne.modeler.dialog.query.QueryType;
29+
import org.apache.cayenne.modeler.dialog.query.QueryTypeController;
3030
import org.apache.cayenne.modeler.event.display.QueryDisplayEvent;
3131
import org.apache.cayenne.modeler.util.CayenneAction;
3232

@@ -52,7 +52,7 @@ public void performAction(ActionEvent e) {
5252
}
5353

5454
protected void createQuery() {
55-
new QueryType(getProjectController()).startupAction();
55+
new QueryTypeController(getProjectController()).startupAction();
5656
}
5757

5858
public void createQuery(DataChannelDescriptor domain, DataMap dataMap, QueryDescriptor query) {

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateRelationshipAction.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import org.apache.cayenne.map.event.RelationshipEvent;
3232
import org.apache.cayenne.modeler.Application;
3333
import org.apache.cayenne.modeler.ProjectController;
34-
import org.apache.cayenne.modeler.dialog.DbRelationshipDialog;
35-
import org.apache.cayenne.modeler.dialog.objentity.ObjRelationshipInfo;
34+
import org.apache.cayenne.modeler.dialog.DbRelationshipDialogController;
35+
import org.apache.cayenne.modeler.dialog.objentity.ObjRelationshipInfoController;
3636
import org.apache.cayenne.modeler.event.display.RelationshipDisplayEvent;
3737
import org.apache.cayenne.modeler.util.CayenneAction;
3838
import org.apache.cayenne.util.DeleteRuleUpdater;
@@ -85,15 +85,15 @@ public void performAction(ActionEvent e) {
8585
ObjEntity objEnt = getProjectController().getSelectedObjEntity();
8686
if (objEnt != null) {
8787

88-
new ObjRelationshipInfo(getProjectController())
88+
new ObjRelationshipInfoController(getProjectController())
8989
.createRelationship(objEnt)
9090
.startupAction();
9191

9292
} else {
9393
DbEntity dbEnt = getProjectController().getSelectedDbEntity();
9494
if (dbEnt != null) {
9595

96-
new DbRelationshipDialog(getProjectController())
96+
new DbRelationshipDialogController(getProjectController())
9797
.createNewRelationship(dbEnt)
9898
.startUp();
9999
}

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DBConnectionAwareAction.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@
2121

2222
import org.apache.cayenne.map.DataMap;
2323
import org.apache.cayenne.modeler.Application;
24-
import org.apache.cayenne.modeler.dialog.db.DataSourceWizard;
24+
import org.apache.cayenne.modeler.dialog.db.DataSourceWizardController;
2525
import org.apache.cayenne.modeler.pref.DBConnectionInfo;
2626
import org.apache.cayenne.modeler.pref.DataMapDefaults;
2727
import org.apache.cayenne.modeler.util.CayenneAction;
2828

2929
import static org.apache.cayenne.modeler.pref.DBConnectionInfo.*;
3030

3131
/**
32-
* Base action that provides DBConnectionInfo for the current DataMap or calls {@link DataSourceWizard} dialog to
32+
* Base action that provides DBConnectionInfo for the current DataMap or calls {@link DataSourceWizardController} dialog to
3333
* create one.
3434
*
3535
* @since 4.2
@@ -44,7 +44,7 @@ protected DBConnectionInfo getConnectionInfo(String title, DataMap dataMap) {
4444

4545
DBConnectionInfo connectionInfo = getConnectionInfoFromPreferences(dataMap);
4646
if (connectionInfo == null) {
47-
DataSourceWizard connectWizard = getDataSourceWizard(title);
47+
DataSourceWizardController connectWizard = getDataSourceWizard(title);
4848
if (connectWizard == null) {
4949
return null;
5050
}
@@ -55,16 +55,16 @@ protected DBConnectionInfo getConnectionInfo(String title, DataMap dataMap) {
5555
return connectionInfo;
5656
}
5757

58-
protected DataSourceWizard getDataSourceWizard(String title, String[] buttons) {
59-
DataSourceWizard connectWizard = new DataSourceWizard(getProjectController(), title, buttons);
58+
protected DataSourceWizardController getDataSourceWizard(String title, String[] buttons) {
59+
DataSourceWizardController connectWizard = new DataSourceWizardController(getProjectController(), title, buttons);
6060
if (!connectWizard.startupAction()) {
6161
return null;
6262
}
6363
return connectWizard;
6464
}
6565

66-
protected DataSourceWizard getDataSourceWizard(String title) {
67-
DataSourceWizard connectWizard = new DataSourceWizard(getProjectController(), title);
66+
protected DataSourceWizardController getDataSourceWizard(String title) {
67+
DataSourceWizardController connectWizard = new DataSourceWizardController(getProjectController(), title);
6868
if (!connectWizard.startupAction()) {
6969
return null;
7070
}
@@ -89,7 +89,7 @@ private DBConnectionInfo getConnectionInfoFromPreferences(DataMap dataMap) {
8989
return connectionInfo;
9090
}
9191

92-
protected void saveConnectionInfo(DataMap dataMap, DataSourceWizard connectWizard) {
92+
protected void saveConnectionInfo(DataMap dataMap, DataSourceWizardController connectWizard) {
9393
DataMapDefaults dataMapDefaults = getProjectController().getSelectedDataMapPreferences(dataMap);
9494

9595
String dbAdapter = connectWizard.getConnectionInfo().getDbAdapter();

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
import org.apache.cayenne.configuration.ConfigurationNode;
2323
import org.apache.cayenne.modeler.Application;
24-
import org.apache.cayenne.modeler.dialog.LogConsole;
2524
import org.apache.cayenne.pref.RenamedPreferences;
2625

2726
import java.awt.event.ActionEvent;
@@ -49,7 +48,7 @@ public boolean exit() {
4948
}
5049

5150
// stop logging before JVM shutdown to prevent hanging
52-
LogConsole.getInstance().stopLogging();
51+
application.getLogConsoleController().stopLogging();
5352

5453
RenamedPreferences.removeNewPreferences();
5554

modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/FindAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
import org.apache.cayenne.modeler.ProjectController;
4545
import org.apache.cayenne.modeler.ProjectTreeModel;
4646
import org.apache.cayenne.modeler.ProjectTreeView;
47-
import org.apache.cayenne.modeler.dialog.FindDialog;
47+
import org.apache.cayenne.modeler.dialog.FindDialogController;
4848
import org.apache.cayenne.modeler.editor.EditorPanel;
4949
import org.apache.cayenne.modeler.event.display.AttributeDisplayEvent;
5050
import org.apache.cayenne.modeler.event.display.EmbeddableAttributeDisplayEvent;
@@ -126,7 +126,7 @@ public void performAction(ActionEvent e) {
126126
} else if (searchResults.size() == 1) {
127127
jumpToResult(searchResults.iterator().next());
128128
} else {
129-
new FindDialog(getApplication().getFrameController(), searchResults).startupAction();
129+
new FindDialogController(getApplication().getFrameController(), searchResults).startupAction();
130130
}
131131
}
132132

0 commit comments

Comments
 (0)