Skip to content

Commit 366a0a4

Browse files
committed
Modeler cleanup - taking PlatformInitializer out of DI
1 parent 84f9b2a commit 366a0a4

17 files changed

Lines changed: 117 additions & 357 deletions

File tree

modeler/cayenne-modeler-generic-ext/src/main/java/org/apache/cayenne/modeler/generic/GenericCayenneModelerModule.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

modeler/cayenne-modeler-generic-ext/src/main/java/org/apache/cayenne/modeler/generic/GenericMain.java

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,11 @@
1818
****************************************************************/
1919
package org.apache.cayenne.modeler.generic;
2020

21-
import java.util.Collection;
21+
import org.apache.cayenne.modeler.Application;
2222

23-
import org.apache.cayenne.di.Module;
24-
import org.apache.cayenne.modeler.Main;
23+
public final class GenericMain {
2524

26-
public class GenericMain extends Main {
27-
28-
/**
29-
* Main method that starts the CayenneModeler.
30-
*/
3125
public static void main(String[] args) {
32-
try {
33-
new GenericMain(args).launch();
34-
}
35-
catch (Exception e) {
36-
e.printStackTrace();
37-
System.exit(1);
38-
}
39-
}
40-
41-
protected GenericMain(String[] args) {
42-
super(args);
43-
}
44-
45-
@Override
46-
protected Collection<Module> appendModules(Collection<Module> modules) {
47-
modules = super.appendModules(modules);
48-
modules.add(new GenericCayenneModelerModule());
49-
return modules;
26+
Application.launch(args, new GenericPlatformInitializer());
5027
}
5128
}

modeler/cayenne-modeler-generic-ext/src/main/java/org/apache/cayenne/modeler/generic/GenericPlatformInitializer.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,24 @@
2121
import com.jgoodies.looks.plastic.PlasticLookAndFeel;
2222
import com.jgoodies.looks.plastic.PlasticTheme;
2323
import com.jgoodies.looks.plastic.PlasticXPLookAndFeel;
24-
import org.apache.cayenne.modeler.service.platform.PlatformInitializer;
24+
import org.apache.cayenne.modeler.ui.UIPlatformInitializer;
2525
import org.apache.cayenne.modeler.toolkit.icon.IconFactory;
2626
import org.slf4j.Logger;
2727
import org.slf4j.LoggerFactory;
2828

2929
import javax.swing.*;
3030
import java.awt.*;
3131

32-
public class GenericPlatformInitializer implements PlatformInitializer {
32+
public class GenericPlatformInitializer implements UIPlatformInitializer {
3333

34-
private static Logger logger = LoggerFactory.getLogger(GenericPlatformInitializer.class);
34+
private static final Logger LOGGER = LoggerFactory.getLogger(GenericPlatformInitializer.class);
3535

36-
static final String DEFAULT_LAF_NAME = PlasticXPLookAndFeel.class.getName();
36+
private static final String DEFAULT_LAF_NAME = PlasticXPLookAndFeel.class.getName();
3737

38-
// note that another theme - "Desert Blue" doesn't support Chinese and
39-
// Japanese chars
40-
static final String DEFAULT_THEME_NAME = "Sky Bluer";
41-
42-
public void setupMenus(JFrame frame) {
43-
// noop - default menus are fine
44-
}
38+
// note that another theme - "Desert Blue" doesn't support Chinese and Japanese chars
39+
private static final String DEFAULT_THEME_NAME = "Sky Bluer";
4540

41+
@Override
4642
public void initLookAndFeel() {
4743

4844
PlasticTheme theme = findTheme();
@@ -56,7 +52,7 @@ public void initLookAndFeel() {
5652
// override some default styles and colors
5753
overrideUIDefaults();
5854
} catch (Exception e) {
59-
logger.warn("Error installing L&F: " + DEFAULT_LAF_NAME, e);
55+
LOGGER.warn("Error installing L&F: " + DEFAULT_LAF_NAME, e);
6056
}
6157
}
6258

@@ -89,7 +85,7 @@ private void overrideUIDefaults() {
8985
UIManager.put("MainToolBar.border", BorderFactory.createLineBorder(Color.GRAY));
9086
}
9187

92-
protected PlasticTheme findTheme() {
88+
private PlasticTheme findTheme() {
9389

9490
for (Object object : PlasticLookAndFeel.getInstalledThemes()) {
9591
PlasticTheme theme = (PlasticTheme) object;
@@ -99,5 +95,4 @@ protected PlasticTheme findTheme() {
9995
}
10096
return null;
10197
}
102-
10398
}

modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXCayenneModelerModule.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXMain.java

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,37 +19,11 @@
1919

2020
package org.apache.cayenne.modeler.osx;
2121

22-
import java.util.Collection;
22+
import org.apache.cayenne.modeler.Application;
2323

24-
import org.apache.cayenne.di.Module;
25-
import org.apache.cayenne.modeler.Main;
24+
public final class OSXMain {
2625

27-
/**
28-
* Main class to start CayenneModeler on MacOSX.
29-
*/
30-
public class OSXMain extends Main {
31-
32-
/**
33-
* Main method that starts the CayenneModeler.
34-
*/
3526
public static void main(String[] args) {
36-
try {
37-
new OSXMain(args).launch();
38-
}
39-
catch (Exception e) {
40-
e.printStackTrace();
41-
System.exit(1);
42-
}
43-
}
44-
45-
protected OSXMain(String[] args) {
46-
super(args);
47-
}
48-
49-
@Override
50-
protected Collection<Module> appendModules(Collection<Module> modules) {
51-
modules = super.appendModules(modules);
52-
modules.add(new OSXCayenneModelerModule());
53-
return modules;
27+
Application.launch(args, new OSXPlatformInitializer());
5428
}
5529
}

modeler/cayenne-modeler-mac-ext/src/main/java/org/apache/cayenne/modeler/osx/OSXPlatformInitializer.java

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
****************************************************************/
1919
package org.apache.cayenne.modeler.osx;
2020

21-
import org.apache.cayenne.di.Inject;
22-
import org.apache.cayenne.modeler.service.platform.PlatformInitializer;
21+
import org.apache.cayenne.modeler.Application;
2322
import org.apache.cayenne.modeler.service.action.GlobalActions;
23+
import org.apache.cayenne.modeler.ui.UIPlatformInitializer;
2424
import org.apache.cayenne.modeler.ui.action.AboutAction;
2525
import org.apache.cayenne.modeler.ui.action.ConfigurePreferencesAction;
2626
import org.apache.cayenne.modeler.ui.action.ExitAction;
@@ -32,31 +32,12 @@
3232
import java.util.HashSet;
3333
import java.util.Set;
3434

35-
public class OSXPlatformInitializer implements PlatformInitializer {
36-
37-
@Inject
38-
protected GlobalActions globalActions;
35+
public class OSXPlatformInitializer implements UIPlatformInitializer {
3936

4037
@Override
4138
public void initLookAndFeel() {
42-
4339
// override some default styles and colors, assuming that Aqua theme will be used
44-
overrideUIDefaults();
45-
46-
Desktop desktop = Desktop.getDesktop();
47-
48-
desktop.setAboutHandler(e -> globalActions.getAction(AboutAction.class).showAboutDialog());
49-
desktop.setPreferencesHandler(e -> globalActions.getAction(ConfigurePreferencesAction.class).showPreferencesDialog());
50-
desktop.setQuitHandler((e, r) -> {
51-
if (!globalActions.getAction(ExitAction.class).exit()) {
52-
r.cancelQuit();
53-
} else {
54-
r.performQuit();
55-
}
56-
});
57-
}
5840

59-
private void overrideUIDefaults() {
6041
Color lightGrey = new Color(0xEEEEEE);
6142
Color darkGrey = new Color(225, 225, 225);
6243
Border darkBorder = BorderFactory.createLineBorder(darkGrey);
@@ -108,7 +89,21 @@ public void paintBorder(Component c, Graphics g, int x, int y, int width, int he
10889
}
10990

11091
@Override
111-
public void setupMenus(JFrame frame) {
92+
public void setupMenus(Application app, JFrame frame) {
93+
94+
GlobalActions globalActions = app.getActionManager();
95+
96+
Desktop desktop = Desktop.getDesktop();
97+
desktop.setAboutHandler(e -> globalActions.getAction(AboutAction.class).showAboutDialog());
98+
desktop.setPreferencesHandler(e -> globalActions.getAction(ConfigurePreferencesAction.class).showPreferencesDialog());
99+
desktop.setQuitHandler((e, r) -> {
100+
if (!globalActions.getAction(ExitAction.class).exit()) {
101+
r.cancelQuit();
102+
} else {
103+
r.performQuit();
104+
}
105+
});
106+
112107
// set additional look and feel for the window
113108
frame.getRootPane().putClientProperty("apple.awt.brushMetalLook", Boolean.TRUE);
114109

modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinCayenneModelerModule.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinMain.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,11 @@
1818
****************************************************************/
1919
package org.apache.cayenne.modeler.win;
2020

21-
import org.apache.cayenne.di.Module;
22-
import org.apache.cayenne.modeler.Main;
21+
import org.apache.cayenne.modeler.Application;
2322

24-
import java.util.Collection;
23+
public final class WinMain {
2524

26-
public class WinMain extends Main {
27-
28-
/**
29-
* Main method that starts the CayenneModeler.
30-
*/
3125
public static void main(String[] args) {
32-
try {
33-
new WinMain(args).launch();
34-
} catch (Exception e) {
35-
e.printStackTrace();
36-
System.exit(1);
37-
}
38-
}
39-
40-
protected WinMain(String[] args) {
41-
super(args);
42-
}
43-
44-
@Override
45-
protected Collection<Module> appendModules(Collection<Module> modules) {
46-
modules = super.appendModules(modules);
47-
modules.add(new WinCayenneModelerModule());
48-
return modules;
26+
Application.launch(args, new WinPlatformInitializer());
4927
}
5028
}

modeler/cayenne-modeler-win-ext/src/main/java/org/apache/cayenne/modeler/win/WinPlatformInitializer.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,17 @@
1919
package org.apache.cayenne.modeler.win;
2020

2121
import com.jgoodies.looks.windows.WindowsLookAndFeel;
22-
import org.apache.cayenne.modeler.service.platform.PlatformInitializer;
22+
import org.apache.cayenne.modeler.ui.UIPlatformInitializer;
2323
import org.apache.cayenne.modeler.toolkit.icon.IconFactory;
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
2626

27-
import javax.swing.JFrame;
28-
import javax.swing.UIManager;
29-
import javax.swing.BorderFactory;
30-
import java.awt.Color;
27+
import javax.swing.*;
28+
import java.awt.*;
3129

32-
public class WinPlatformInitializer implements PlatformInitializer {
30+
public class WinPlatformInitializer implements UIPlatformInitializer {
3331

34-
private static Logger logger = LoggerFactory.getLogger(WinPlatformInitializer.class);
35-
36-
@Override
37-
public void setupMenus(JFrame frame) {
38-
}
32+
private static final Logger LOGGER = LoggerFactory.getLogger(WinPlatformInitializer.class);
3933

4034
@Override
4135
public void initLookAndFeel() {
@@ -44,7 +38,7 @@ public void initLookAndFeel() {
4438
// override some default styles and colors
4539
overrideUIDefaults();
4640
} catch (Exception e) {
47-
logger.warn("Error installing L&F: " + WindowsLookAndFeel.class.getName(), e);
41+
LOGGER.warn("Error installing L&F: " + WindowsLookAndFeel.class.getName(), e);
4842
}
4943
}
5044

0 commit comments

Comments
 (0)