This is an automated email from the ASF dual-hosted git repository.
aadamchik 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 4cf4e2bad CAY-2918 Remove OGNL Binding Architecture from CayenneModeler
4cf4e2bad is described below
commit 4cf4e2bad6098500bde3f03c0f10c07b53a5003d
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun Apr 12 15:45:08 2026 -0400
CAY-2918 Remove OGNL Binding Architecture from CayenneModeler
getting rid of "bindToProperty"
---
.../modeler/dialog/pref/EncodingSelector.java | 16 +++---
.../modeler/dialog/pref/GeneralPreferences.java | 21 ++++----
.../org/apache/cayenne/swing/BindingBuilder.java | 14 -----
.../org/apache/cayenne/swing/BindingFactory.java | 8 ---
.../org/apache/cayenne/swing/PropertyBinding.java | 59 ----------------------
5 files changed, 17 insertions(+), 101 deletions(-)
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelector.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelector.java
index a1a182105..797a738f1 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelector.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/EncodingSelector.java
@@ -20,7 +20,13 @@
package org.apache.cayenne.modeler.dialog.pref;
-import java.awt.Component;
+import org.apache.cayenne.modeler.util.CayenneController;
+import org.apache.cayenne.swing.BindingBuilder;
+import org.apache.cayenne.swing.ObjectBinding;
+import org.apache.cayenne.util.Util;
+
+import javax.swing.*;
+import java.awt.*;
import java.beans.PropertyChangeListener;
import java.io.ByteArrayOutputStream;
import java.io.OutputStreamWriter;
@@ -28,13 +34,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Vector;
-import javax.swing.DefaultComboBoxModel;
-
-import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.swing.BindingBuilder;
-import org.apache.cayenne.swing.ObjectBinding;
-import org.apache.cayenne.util.Util;
-
/**
* A controller for stream encoding picker component.
*
@@ -122,6 +121,7 @@ public class EncodingSelector extends CayenneController {
return charsets;
}
+ @Override
public void bindingUpdated(String expression, Object newValue) {
if (ENCODING_PROPERTY_BINDING.equals(expression)) {
this.encoding = (newValue != null) ? newValue.toString() : null;
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
index c679ec3cb..f748fbbf0 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
@@ -22,8 +22,10 @@ package org.apache.cayenne.modeler.dialog.pref;
import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.cayenne.pref.CayennePreferenceEditor;
import org.apache.cayenne.pref.PreferenceEditor;
-import org.apache.cayenne.swing.BindingBuilder;
-import org.apache.cayenne.swing.ObjectBinding;
+import java.awt.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.prefs.Preferences;
import java.awt.*;
import java.util.HashMap;
@@ -51,8 +53,6 @@ public class GeneralPreferences extends CayenneController {
protected Preferences preferences;
- protected ObjectBinding encodingBinding;
-
public GeneralPreferences(PreferenceDialog parentController) {
super(parentController);
this.view = new GeneralPreferencesView();
@@ -62,10 +62,6 @@ public class GeneralPreferences extends CayenneController {
this.editor = (CayennePreferenceEditor) editor;
this.view.setEnabled(true);
initBindings();
-
- encodingBinding.updateView();
-
view.getAutoLoadProject().setSelected(autoLoadProjectPreference);
-
view.getDeletePrompt().setSelected(deletePromptPreference);
} else {
this.view.setEnabled(false);
}
@@ -86,13 +82,14 @@ public class GeneralPreferences extends CayenneController {
// build child controllers...
EncodingSelector encodingSelector = new EncodingSelector(this,
view.getEncodingSelector());
-
- // create bindings...
- BindingBuilder builder = new
BindingBuilder(getApplication().getBindingFactory(), this);
- this.encodingBinding = builder.bindToProperty(encodingSelector,
"encoding", EncodingSelector.ENCODING_PROPERTY_BINDING);
+
encodingSelector.addPropertyChangeListener(EncodingSelector.ENCODING_PROPERTY_BINDING,
+ evt -> setEncoding((String) evt.getNewValue()));
+
encodingSelector.bindingUpdated(EncodingSelector.ENCODING_PROPERTY_BINDING,
encoding);
view.getAutoLoadProject().addActionListener(e ->
setAutoLoadProject(view.getAutoLoadProject().isSelected()));
view.getDeletePrompt().addActionListener(e ->
setDeletePrompt(view.getDeletePrompt().isSelected()));
+
view.getAutoLoadProject().setSelected(autoLoadProjectPreference);
+ view.getDeletePrompt().setSelected(deletePromptPreference);
}
public String getEncoding() {
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingBuilder.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingBuilder.java
index f4e92117d..fc71fcba1 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingBuilder.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingBuilder.java
@@ -73,20 +73,6 @@ public class BindingBuilder {
return factory;
}
- /**
- * Binds to an instance of BoundComponent.
- *
- * @since 1.2
- */
- public ObjectBinding bindToProperty(
- BoundComponent component,
- String property,
- String boundProperty) {
- ObjectBinding binding = factory
- .bindToProperty(component, property, boundProperty);
- return initBinding(binding, delegate);
- }
-
public ObjectBinding bindToStateChange(AbstractButton button, String
property) {
ObjectBinding binding = factory.bindToStateChange(button, property);
return initBinding(binding, delegate);
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingFactory.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingFactory.java
index 258a7fa8d..1164bd32a 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingFactory.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/BindingFactory.java
@@ -57,14 +57,6 @@ public class BindingFactory {
return prepareBinding(binding);
}
- public ObjectBinding bindToProperty(
- BoundComponent component,
- String property,
- String boundProperty) {
- PropertyBinding binding = new PropertyBinding(component, property,
boundProperty);
- return prepareBinding(binding);
- }
-
/**
* Binds to AbstractButton item state change events. Most common
AbstractButton
* subclasses are JButton, JCheckBox, JRadioButton.
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/PropertyBinding.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/PropertyBinding.java
deleted file mode 100644
index 87976c0b5..000000000
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/swing/PropertyBinding.java
+++ /dev/null
@@ -1,59 +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.swing;
-
-import java.awt.Component;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-/**
- * A binding for connecting to children that implement BoundComponent.
- *
- * @since 1.2
- */
-public class PropertyBinding extends BindingBase {
-
- protected BoundComponent boundComponent;
- protected String boundExpression;
-
- public PropertyBinding(BoundComponent boundComponent, String
propertyExpression,
- String boundExpression) {
- super(propertyExpression);
-
- this.boundExpression = boundExpression;
- this.boundComponent = boundComponent;
- this.boundComponent.addPropertyChangeListener(boundExpression,
- new PropertyChangeListener() {
-
- public void propertyChange(PropertyChangeEvent event) {
- setValue(event.getNewValue());
- }
-
- });
- }
-
- public Component getView() {
- return boundComponent.getView();
- }
-
- public void updateView() {
- boundComponent.bindingUpdated(boundExpression, getValue());
- }
-}