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;
     }
 

Reply via email to