You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/10/01 15:05:21 UTC
[2/3] cayenne git commit: CAY-2476 Modeler: Fixed wrong behaviour of
code generation dialog
CAY-2476 Modeler: Fixed wrong behaviour of code generation dialog
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/7bd2ca90
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/7bd2ca90
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/7bd2ca90
Branch: refs/heads/STABLE-4.0
Commit: 7bd2ca9002a9ce4747b1983f703eed88bb03f4dc
Parents: f8d8e50
Author: kkomyak <co...@gmail.com>
Authored: Wed Sep 19 12:21:39 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 16:15:01 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 1 +
.../cayenne/modeler/CodeTemplateManager.java | 3 ++
.../dialog/codegen/ClassesTabController.java | 11 ++++--
.../dialog/codegen/CodeGeneratorDialog.java | 2 -
.../dialog/codegen/CustomModeController.java | 40 ++++++++++++++++----
.../modeler/dialog/codegen/CustomModePanel.java | 12 +-----
6 files changed, 45 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7bd2ca90/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index f4f8281..6b18383 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -15,6 +15,7 @@ Date:
Changes/New Features:
CAY-2479 Modeler: update cgen dialog
+CAY-2476 Modeler: Fixed wrong behaviour of code generation dialog
Bug Fixes:
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7bd2ca90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
index b914b9b..6b2fe0f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CodeTemplateManager.java
@@ -39,6 +39,7 @@ public class CodeTemplateManager {
public static final String STANDARD_SERVER_SUPERCLASS = "Standard Server Superclass";
public static final String STANDARD_SERVER_SUBCLASS = "Standard Server Subclass";
+ public static final String SINGLE_SERVER_CLASS = "Single Server class";
static final String STANDARD_CLIENT_SUPERCLASS = "Standard Client Superclass";
static final String STANDARD_CLIENT_SUBCLASS = "Standard Client Subclass";
@@ -64,6 +65,7 @@ public class CodeTemplateManager {
standardSubclassTemplates = new ArrayList<>(3);
standardSubclassTemplates.add(STANDARD_SERVER_SUBCLASS);
standardSubclassTemplates.add(STANDARD_CLIENT_SUBCLASS);
+ standardSubclassTemplates.add(SINGLE_SERVER_CLASS);
updateCustomTemplates(getTemplatePreferences(application));
@@ -72,6 +74,7 @@ public class CodeTemplateManager {
standardTemplates.put(STANDARD_CLIENT_SUPERCLASS, ClientClassGenerationAction.SUPERCLASS_TEMPLATE);
standardTemplates.put(STANDARD_SERVER_SUBCLASS, ClassGenerationAction.SUBCLASS_TEMPLATE);
standardTemplates.put(STANDARD_CLIENT_SUBCLASS, ClientClassGenerationAction.SUBCLASS_TEMPLATE);
+ standardTemplates.put(SINGLE_SERVER_CLASS, ClassGenerationAction.SINGLE_CLASS_TEMPLATE);
}
/**
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7bd2ca90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
index 2191e8c..da83e4d 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabController.java
@@ -27,13 +27,16 @@ import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.swing.TableBindingBuilder;
import org.apache.commons.collections.Predicate;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
-import java.util.function.Consumer;
+import java.util.Map;
public class ClassesTabController extends CayenneController {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7bd2ca90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
index 9033052..44e3863 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorDialog.java
@@ -37,8 +37,6 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
-/**
- */
public class CodeGeneratorDialog extends JDialog {
protected JTabbedPane tabs;
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7bd2ca90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
index e94e77a..4d2254f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModeController.java
@@ -29,7 +29,11 @@ import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.util.Util;
import javax.swing.DefaultComboBoxModel;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
import java.awt.Component;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -39,11 +43,13 @@ import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
+import static org.apache.cayenne.modeler.CodeTemplateManager.*;
+import static org.apache.cayenne.modeler.dialog.pref.PreferenceDialog.TEMPLATES_KEY;
+
/**
* A controller for the custom generation mode.
*/
public class CustomModeController extends GeneratorController {
-
// correspond to non-public constants on MapClassGenerator.
private static final String MODE_ENTITY = "entity";
@@ -69,11 +75,11 @@ public class CustomModeController extends GeneratorController {
for (Entry<DataMap, DataMapDefaults> entry : entities) {
if (Util.isEmptyString(entry.getValue().getSuperclassTemplate())) {
- entry.getValue().setSuperclassTemplate(CodeTemplateManager.STANDARD_SERVER_SUPERCLASS);
+ entry.getValue().setSuperclassTemplate(STANDARD_SERVER_SUPERCLASS);
}
if (Util.isEmptyString(entry.getValue().getSubclassTemplate())) {
- entry.getValue().setSubclassTemplate(CodeTemplateManager.STANDARD_SERVER_SUBCLASS);
+ entry.getValue().setSubclassTemplate(STANDARD_SERVER_SUBCLASS);
}
if (Util.isEmptyString(entry.getValue().getProperty("mode"))) {
@@ -144,11 +150,10 @@ public class CustomModeController extends GeneratorController {
protected GeneratorControllerPanel createView() {
this.view = new CustomModePanel();
-
return view;
}
- protected void updateTemplates() {
+ private void updateTemplates() {
this.templateManager = getApplication().getCodeTemplateManager();
List<String> customTemplates = new ArrayList<>(templateManager.getCustomTemplates().keySet());
@@ -165,10 +170,27 @@ public class CustomModeController extends GeneratorController {
this.view.getSubclassTemplate().setModel(new DefaultComboBoxModel<>(subTemplates.toArray(new String[0])));
this.view.getSuperclassTemplate().setModel(new DefaultComboBoxModel<>(superTemplates.toArray(new String[0])));
+ JCheckBox pairs = this.view.getPairs();
+ updateView();
+ pairs.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ updateView();
+ }
+ });
+
superTemplate.updateView();
subTemplate.updateView();
}
+ private void updateView() {
+ boolean selected = view.getPairs().isSelected();
+ JComboBox<String> subclassTemplate = view.getSubclassTemplate();
+ subclassTemplate.setSelectedItem(selected ? STANDARD_SERVER_SUBCLASS : SINGLE_SERVER_CLASS);
+ view.getSuperclassTemplate().setEnabled(selected);
+ view.getOverwrite().setEnabled(!selected);
+ }
+
public Component getView() {
return view;
}
@@ -200,12 +222,16 @@ public class CustomModeController extends GeneratorController {
}
public void popPreferencesAction() {
- new PreferenceDialog(getApplication().getFrameController()).startupAction(PreferenceDialog.TEMPLATES_KEY);
+ new PreferenceDialog(getApplication().getFrameController()).startupAction(TEMPLATES_KEY);
updateTemplates();
}
@Override
protected ClassGenerationAction newGenerator() {
- return new ClassGenerationAction();
+ ClassGenerationAction action = new ClassGenerationAction();
+ getApplication().getInjector().injectMembers(action);
+ return action;
}
+
+
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/7bd2ca90/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
index b951c58..ddaceb2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CustomModePanel.java
@@ -27,8 +27,6 @@ import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JTextField;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
@@ -56,16 +54,7 @@ public class CustomModePanel extends GeneratorControllerPanel {
this.manageTemplatesLink = new ActionLink("Customize Templates...");
manageTemplatesLink.setFont(manageTemplatesLink.getFont().deriveFont(10f));
- pairs.addChangeListener(new ChangeListener() {
-
- public void stateChanged(ChangeEvent e) {
- superclassTemplate.setEnabled(pairs.isSelected());
- overwrite.setEnabled(!pairs.isSelected());
- }
- });
-
// assemble
-
FormLayout layout = new FormLayout(
"right:77dlu, 1dlu, fill:100:grow, 1dlu, left:80dlu, 1dlu", "");
DefaultFormBuilder builder = new DefaultFormBuilder(layout);
@@ -136,4 +125,5 @@ public class CustomModePanel extends GeneratorControllerPanel {
public JCheckBox getCreatePropertyNames() {
return createPropertyNames;
}
+
}