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
The following commit(s) were added to refs/heads/master by this push:
new 1a7691001 Modeler cleanup
1a7691001 is described below
commit 1a76910012868bfbf87866421e6e4fcb0cd451f6
Author: Andrus Adamchik <[email protected]>
AuthorDate: Mon Apr 20 19:32:15 2026 -0400
Modeler cleanup
proper parent/child controller initialization
---
...ler.java => EncodingPreferencesController.java} | 12 +++----
...ectorView.java => EncodingPreferencesView.java} | 5 ++-
.../dialog/pref/GeneralPreferencesController.java | 40 ++++++++++------------
.../dialog/pref/GeneralPreferencesView.java | 14 ++++----
4 files changed, 32 insertions(+), 39 deletions(-)
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelectorController.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingPreferencesController.java
similarity index 92%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelectorController.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingPreferencesController.java
index 5bc20a804..ce7edbb24 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelectorController.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingPreferencesController.java
@@ -21,30 +21,28 @@
package org.apache.cayenne.modeler.dialog.pref;
import org.apache.cayenne.modeler.mvc.ChildController;
-import org.apache.cayenne.modeler.mvc.RootController;
import org.apache.cayenne.util.Util;
import javax.swing.*;
-import java.awt.*;
import java.io.ByteArrayOutputStream;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.Collections;
import java.util.Vector;
-public class EncodingSelectorController extends
ChildController<RootController> {
+public class EncodingPreferencesController extends
ChildController<GeneralPreferencesController> {
public static final String ENCODING_PROPERTY = "encoding";
- private final EncodingSelectorView view;
+ private final EncodingPreferencesView view;
private final String systemEncoding;
private String encoding;
private boolean defaultEncoding;
- public EncodingSelectorController(RootController parent,
EncodingSelectorView view) {
+ public EncodingPreferencesController(GeneralPreferencesController parent) {
super(parent);
- this.view = view;
+ this.view = new EncodingPreferencesView();
// init static models...
this.systemEncoding = detectPlatformEncoding();
@@ -64,7 +62,7 @@ public class EncodingSelectorController extends
ChildController<RootController>
}
@Override
- public Component getView() {
+ public EncodingPreferencesView getView() {
return view;
}
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelectorView.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingPreferencesView.java
similarity index 96%
rename from
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelectorView.java
rename to
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingPreferencesView.java
index 7034041bb..8958d0f10 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelectorView.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingPreferencesView.java
@@ -27,16 +27,15 @@ import java.awt.*;
/**
* A panel for file encoding selection.
- *
*/
-public class EncodingSelectorView extends JPanel {
+public class EncodingPreferencesView extends JPanel {
private final JRadioButton defaultEncoding;
private final JRadioButton otherEncoding;
private final JComboBox encodingChoices;
private final JLabel defaultEncodingLabel;
- public EncodingSelectorView() {
+ public EncodingPreferencesView() {
this.defaultEncoding = new JRadioButton();
this.otherEncoding = new JRadioButton();
this.encodingChoices = new JComboBox();
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesController.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesController.java
index 9bce28649..3b51dfa20 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesController.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesController.java
@@ -44,37 +44,33 @@ public class GeneralPreferencesController extends
ChildController<PreferenceDial
private boolean autoLoadProjectPreference;
private String encoding;
private boolean deletePromptPreference;
- private Preferences preferences;
+ private final Preferences preferences;
public GeneralPreferencesController(PreferenceDialogController parent) {
super(parent);
- this.view = new GeneralPreferencesView();
- this.view.setEnabled(true);
- initBindings();
- }
-
- @Override
- public Component getView() {
- return view;
- }
-
- protected void initBindings() {
- // init model objects
- preferences =
application.getPreferencesNode(GeneralPreferencesController.class, "");
+ this.preferences =
application.getPreferencesNode(GeneralPreferencesController.class, "");
this.encoding = preferences.get(ENCODING_PREFERENCE, null);
this.autoLoadProjectPreference =
preferences.getBoolean(AUTO_LOAD_PROJECT_PREFERENCE, false);
this.deletePromptPreference =
preferences.getBoolean(DELETE_PROMPT_PREFERENCE, false);
- // build child controllers...
- EncodingSelectorController encodingSelectorController = new
EncodingSelectorController(this, view.getEncodingSelector());
-
encodingSelectorController.addPropertyChangeListener(EncodingSelectorController.ENCODING_PROPERTY,
evt -> setEncoding((String) evt.getNewValue()));
- encodingSelectorController.setSelectedEncoding(encoding);
+ // TODO: confusing: "encodingController" is dangling in the air, yet
it doesn't go out of scope as it is a
+ // listener for its own view events
+ EncodingPreferencesController encodingController = new
EncodingPreferencesController(this);
+
encodingController.addPropertyChangeListener(EncodingPreferencesController.ENCODING_PROPERTY,
evt -> setEncoding((String) evt.getNewValue()));
+ encodingController.setSelectedEncoding(encoding);
+
+ this.view = new GeneralPreferencesView(encodingController.getView());
+ this.view.setEnabled(true);
+ this.view.getAutoLoadProject().addActionListener(e ->
setAutoLoadProject(view.getAutoLoadProject().isSelected()));
+ this.view.getDeletePrompt().addActionListener(e ->
setDeletePrompt(view.getDeletePrompt().isSelected()));
+ this.view.getAutoLoadProject().setSelected(autoLoadProjectPreference);
+ this.view.getDeletePrompt().setSelected(deletePromptPreference);
+ }
- view.getAutoLoadProject().addActionListener(e ->
setAutoLoadProject(view.getAutoLoadProject().isSelected()));
- view.getDeletePrompt().addActionListener(e ->
setDeletePrompt(view.getDeletePrompt().isSelected()));
- view.getAutoLoadProject().setSelected(autoLoadProjectPreference);
- view.getDeletePrompt().setSelected(deletePromptPreference);
+ @Override
+ public Component getView() {
+ return view;
}
public String getEncoding() {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java
index 3c656773a..04f1221fe 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java
@@ -29,13 +29,13 @@ import java.awt.*;
public class GeneralPreferencesView extends JPanel {
- protected EncodingSelectorView encodingSelector;
- protected JLabel encodingSelectorLabel;
- protected JCheckBox autoLoadProjectBox;
- protected JCheckBox deletePromptBox;
+ private final EncodingPreferencesView encodingSelector;
+ private final JLabel encodingSelectorLabel;
+ private final JCheckBox autoLoadProjectBox;
+ private final JCheckBox deletePromptBox;
- public GeneralPreferencesView() {
- this.encodingSelector = new EncodingSelectorView();
+ public GeneralPreferencesView(EncodingPreferencesView encodingSelector) {
+ this.encodingSelector = encodingSelector;
this.encodingSelectorLabel = new JLabel("File Encoding:");
this.autoLoadProjectBox = new JCheckBox("Automatically Load Last
Opened Project");
this.deletePromptBox = new JCheckBox("Always Delete Items Without
Prompt");
@@ -69,7 +69,7 @@ public class GeneralPreferencesView extends JPanel {
deletePromptBox.setEnabled(b);
}
- public EncodingSelectorView getEncodingSelector() {
+ public EncodingPreferencesView getEncodingSelector() {
return encodingSelector;
}