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:20 UTC
[1/3] cayenne git commit: CAY-2479 Modeler: update cgen dialog
Repository: cayenne
Updated Branches:
refs/heads/STABLE-4.0 20f9d3899 -> 37d832443
CAY-2479 Modeler: update cgen dialog
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/f8d8e50e
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/f8d8e50e
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/f8d8e50e
Branch: refs/heads/STABLE-4.0
Commit: f8d8e50ec48b7a70463b3593bbdcd77542af77c1
Parents: d3fa7b7
Author: Arseni Bulatski <an...@gmail.com>
Authored: Tue Sep 25 15:08:54 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Sep 25 15:12:51 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 4 +
.../cayenne/gen/ClassGenerationAction.java | 2 +-
.../gen/ClientClassGenerationAction.java | 9 +-
.../modeler/action/GenerateCodeAction.java | 30 +----
.../dialog/codegen/ClassesTabController.java | 129 +++++++++++++++---
.../modeler/dialog/codegen/ClassesTabPanel.java | 89 +++++++++++--
.../dialog/codegen/ClientModeController.java | 39 ------
.../dialog/codegen/CodeGeneratorController.java | 18 ++-
.../codegen/CodeGeneratorControllerBase.java | 133 ++++++++++++++++---
.../dialog/codegen/CodeGeneratorDialog.java | 22 +--
.../dialog/codegen/CustomModeController.java | 60 ++-------
.../modeler/dialog/codegen/CustomModePanel.java | 45 ++-----
.../dialog/codegen/GeneratorController.java | 91 ++++---------
.../dialog/codegen/GeneratorTabController.java | 13 +-
.../dialog/codegen/StandardModeController.java | 30 +----
.../dialog/codegen/StandardModePanel.java | 18 +--
16 files changed, 403 insertions(+), 329 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 3766f3b..f4f8281 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -12,6 +12,10 @@ Release: 4.0.1
Date:
----------------------------------
+Changes/New Features:
+
+CAY-2479 Modeler: update cgen dialog
+
Bug Fixes:
CAY-2320 Modeler: Limit input into numeric fields to 10 digits
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
index c063a5d..dbbf151 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
@@ -524,7 +524,7 @@ public class ClassGenerationAction {
*
* @since 4.0 throws exception
*/
- public void addEntities(Collection<ObjEntity> entities) throws CayenneException {
+ public void addEntities(Collection<ObjEntity> entities) throws CayenneRuntimeException {
if (artifactsGenerationMode == ArtifactsGenerationMode.ENTITY
|| artifactsGenerationMode == ArtifactsGenerationMode.ALL) {
if (entities != null) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
index bca02a2..576b8a8 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClientClassGenerationAction.java
@@ -19,12 +19,13 @@
package org.apache.cayenne.gen;
-import java.util.Collection;
-
import org.apache.cayenne.CayenneException;
+import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.QueryDescriptor;
+import java.util.Collection;
+
/**
* @since 3.0
*/
@@ -77,9 +78,9 @@ public class ClientClassGenerationAction extends ClassGenerationAction {
* @since 4.0 throws exception
*/
@Override
- public void addEntities(Collection<ObjEntity> entities) throws CayenneException {
+ public void addEntities(Collection<ObjEntity> entities) throws CayenneRuntimeException {
if (!dataMap.isClientSupported()) {
- throw new CayenneException("Can't create client classes. Check client supported option on DataMap configuration.");
+ throw new CayenneRuntimeException("Can't create client classes. Check client supported option on DataMap configuration.");
}
if (entities != null) {
for (ObjEntity entity : entities) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java
index 57ccca1..bdb2e15 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/GenerateCodeAction.java
@@ -27,7 +27,6 @@ import org.apache.cayenne.modeler.util.CayenneAction;
import org.apache.cayenne.project.Project;
import java.awt.event.ActionEvent;
-import java.util.ArrayList;
import java.util.Collection;
public class GenerateCodeAction extends CayenneAction {
@@ -46,31 +45,8 @@ public class GenerateCodeAction extends CayenneAction {
public void performAction(ActionEvent e) {
Collection<DataMap> dataMaps;
- DataMap dataMap = getProjectController().getCurrentDataMap();
-
- if (dataMap != null) {
- dataMaps = new ArrayList<>();
- dataMaps.add(dataMap);
-
- new CodeGeneratorController(getApplication().getFrameController(), dataMaps).startup();
- } else if (getProjectController().getCurrentDataNode() != null) {
- Collection<String> nodeMaps = getProjectController().getCurrentDataNode().getDataMapNames();
- Project project = getProjectController().getProject();
- dataMaps = ((DataChannelDescriptor) project.getRootNode()).getDataMaps();
-
- Collection<DataMap> resultMaps = new ArrayList<>();
- for (DataMap map : dataMaps) {
- if (nodeMaps.contains(map.getName())) {
- resultMaps.add(map);
- }
- }
-
- new CodeGeneratorController(getApplication().getFrameController(), resultMaps).startup();
- } else {
- Project project = getProjectController().getProject();
- dataMaps = ((DataChannelDescriptor) project.getRootNode()).getDataMaps();
-
- new CodeGeneratorController(getApplication().getFrameController(), dataMaps).startup();
- }
+ Project project = getProjectController().getProject();
+ dataMaps = ((DataChannelDescriptor) project.getRootNode()).getDataMaps();
+ new CodeGeneratorController(getApplication().getFrameController(), dataMaps).startup();
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/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 a4611a2..2191e8c 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
@@ -19,17 +19,21 @@
package org.apache.cayenne.modeler.dialog.codegen;
-import java.awt.Component;
-
-import javax.swing.JLabel;
-
+import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.modeler.util.CayenneController;
import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.swing.ImageRendererColumn;
import org.apache.cayenne.swing.ObjectBinding;
import org.apache.cayenne.swing.TableBindingBuilder;
import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.PredicateUtils;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.*;
+import java.util.List;
+import java.util.function.Consumer;
public class ClassesTabController extends CayenneController {
@@ -37,11 +41,28 @@ public class ClassesTabController extends CayenneController {
protected ClassesTabPanel view;
protected ObjectBinding tableBinding;
+ protected Collection<DataMap> dataMaps;
+ protected Map<DataMap, List<Object>> objectList;
+ private Map<DataMap, ObjectBinding> objectBindings;
+ private List<Object> currentCollection;
- public ClassesTabController(CodeGeneratorControllerBase parent) {
+ public ClassesTabController(CodeGeneratorControllerBase parent, Collection<DataMap> dataMaps) {
super(parent);
- this.view = new ClassesTabPanel();
+ currentCollection = new ArrayList<>();
+
+ this.objectList = new HashMap<>();
+ for (DataMap dataMap : dataMaps) {
+ List<Object> list = new ArrayList<>();
+ list.add(dataMap);
+ list.addAll(dataMap.getObjEntities());
+ list.addAll(dataMap.getEmbeddables());
+ objectList.put(dataMap, list);
+ }
+
+ this.objectBindings = new HashMap<>();
+ this.dataMaps = dataMaps;
+ this.view = new ClassesTabPanel(dataMaps);
initBindings();
}
@@ -62,7 +83,7 @@ public class ClassesTabController extends CayenneController {
builder.bindToAction(view.getCheckAll(), "checkAllAction()");
TableBindingBuilder tableBuilder = new TableBindingBuilder(builder);
-
+
tableBuilder.addColumn(
"",
"parent.setCurrentClass(#item), selected",
@@ -81,10 +102,27 @@ public class ClassesTabController extends CayenneController {
"parent.getProblem(#item)",
String.class,
false,
- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
-
- this.tableBinding = tableBuilder.bindToTable(view.getTable(), "parent.classes");
- view.getTable().getColumnModel().getColumn(1).setCellRenderer(new ImageRendererColumn());
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXX");
+
+ for (final DataMap dataMap : dataMaps) {
+ if (view.getDataMapTables().get(dataMap) != null) {
+ currentCollection = objectList.get(dataMap);
+ objectBindings.put(dataMap, tableBuilder.bindToTable(view.getDataMapTables().get(dataMap), "currentCollection"));
+ view.getDataMapTables().get(dataMap).getColumnModel().getColumn(1).setCellRenderer(new ImageRendererColumn());
+ }
+ if (view.getDataMapJCheckBoxMap().get(dataMap) != null) {
+ view.getDataMapJCheckBoxMap().get(dataMap).addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent val) {
+ ClassesTabController.this.checkDataMap(dataMap, ((JCheckBox) val.getSource()).isSelected());
+ }
+ });
+ }
+ }
+ }
+
+ public List<Object> getCurrentCollection() {
+ return currentCollection;
}
public boolean isSelected() {
@@ -94,18 +132,25 @@ public class ClassesTabController extends CayenneController {
public void setSelected(boolean selected) {
getParentController().setSelected(selected);
classSelectedAction();
+
+ for (DataMap dataMap : dataMaps) {
+ if (view.isAllCheckBoxesFromDataMapSelected(dataMap)) {
+ view.getDataMapJCheckBoxMap().get(dataMap).setSelected(true);
+ } else {
+ view.getDataMapJCheckBoxMap().get(dataMap).setSelected(false);
+ }
+ }
}
/**
* A callback action that updates the state of Select All checkbox.
*/
public void classSelectedAction() {
- int selectedCount = getParentController().getSelectedEntitiesSize() + getParentController().getSelectedEmbeddablesSize() ;
+ int selectedCount = getParentController().getSelectedEntitiesSize() + getParentController().getSelectedEmbeddablesSize() + getParentController().getSelectedDataMapsSize();
if (selectedCount == 0) {
view.getCheckAll().setSelected(false);
- }
- else if (selectedCount == getParentController().getClasses().size()) {
+ } else if (selectedCount == getParentController().getClasses().size()) {
view.getCheckAll().setSelected(true);
}
}
@@ -116,11 +161,57 @@ public class ClassesTabController extends CayenneController {
*/
public void checkAllAction() {
- Predicate predicate = view.getCheckAll().isSelected() ? PredicateUtils
- .truePredicate() : PredicateUtils.falsePredicate();
+ if (getParentController().updateSelection(view.getCheckAll().isSelected() ?
+ new Predicate() {
+ @Override
+ public boolean evaluate(Object o) {
+ return true;
+ }
+ } : new Predicate() {
+ @Override
+ public boolean evaluate(Object o) {
+ return false;
+ }
+ })) {
+ for (DataMap dataMap : dataMaps) {
+ if (objectBindings.get(dataMap) != null) {
+ currentCollection = objectList.get(dataMap);
+ objectBindings.get(dataMap).updateView();
+ }
+ }
+ }
+ }
+
+ private void checkDataMap(DataMap dataMap, boolean selected) {
+ if (getParentController().updateDataMapSelection(selected ? new Predicate() {
+ @Override
+ public boolean evaluate(Object o) {
+ return true;
+ }
+ } : new Predicate() {
+ @Override
+ public boolean evaluate(Object o) {
+ return false;
+ }
+ }, dataMap)) {
+ if (objectBindings.get(dataMap) != null) {
+ currentCollection = objectList.get(dataMap);
+ objectBindings.get(dataMap).updateView();
+ }
+ if (isAllMapsSelected()) {
+ view.getCheckAll().setSelected(true);
+ }
+ }
+ }
- if (getParentController().updateSelection(predicate)) {
- tableBinding.updateView();
+ private boolean isAllMapsSelected() {
+ for (DataMap dataMap : dataMaps) {
+ if (view.getDataMapJCheckBoxMap().get(dataMap) != null) {
+ if (!view.getDataMapJCheckBoxMap().get(dataMap).isSelected()) {
+ return false;
+ }
+ }
}
+ return true;
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
index ea164b1..3bba9cf3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClassesTabPanel.java
@@ -19,12 +19,9 @@
package org.apache.cayenne.modeler.dialog.codegen;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
+import org.apache.cayenne.map.DataMap;
+import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
@@ -32,6 +29,16 @@ import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.UIManager;
+import javax.swing.border.EmptyBorder;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
/**
*/
@@ -41,7 +48,13 @@ public class ClassesTabPanel extends JPanel {
protected JCheckBox checkAll;
protected JLabel checkAllLabel;
- public ClassesTabPanel() {
+ private Map<DataMap, JTable> dataMapTables;
+
+ private Map<DataMap, JCheckBox> dataMapJCheckBoxMap;
+
+ public ClassesTabPanel(Collection<DataMap> dataMaps) {
+ dataMapTables = new HashMap<>();
+ dataMapJCheckBoxMap = new HashMap<>();
this.table = new JTable();
this.table.setRowHeight(22);
@@ -52,39 +65,87 @@ public class ClassesTabPanel extends JPanel {
this.checkAllLabel = new JLabel("Check All Classes");
checkAll.addItemListener(new ItemListener() {
-
+ @Override
public void itemStateChanged(ItemEvent event) {
if (checkAll.isSelected()) {
checkAllLabel.setText("Uncheck All Classess");
- }
- else {
+ for(DataMap dataMap : dataMapJCheckBoxMap.keySet()) {
+ dataMapJCheckBoxMap.get(dataMap).setSelected(true);
+ }
+ } else {
checkAllLabel.setText("Check All Classes");
+ for(DataMap dataMap : dataMapJCheckBoxMap.keySet()) {
+ dataMapJCheckBoxMap.get(dataMap).setSelected(false);
+ }
}
}
});
// assemble
- JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
+ JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
topPanel.setBorder(UIManager.getBorder("ToolBar.border"));
topPanel.add(checkAll);
topPanel.add(checkAllLabel);
+ JPanel panel = new JPanel();
+ panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
+ for(DataMap dataMap : dataMaps) {
+ JTable table = new JTable();
+ table.setRowHeight(22);
+ dataMapTables.put(dataMap, table);
+ JPanel scrollTable = new JPanel(new BorderLayout());
+ scrollTable.add(dataMapTables.get(dataMap).getTableHeader(), BorderLayout.NORTH);
+ scrollTable.add(dataMapTables.get(dataMap), BorderLayout.CENTER);
+ scrollTable.setPreferredSize(new Dimension(dataMapTables.get(dataMap).getPreferredSize().width,
+ (dataMap.getEmbeddables().size() + dataMap.getObjEntities().size()) * dataMapTables.get(dataMap).getRowHeight() + 45));
+ JPanel labelPanel = new JPanel(new BorderLayout());
+ labelPanel.setPreferredSize(new Dimension(dataMapTables.get(dataMap).getPreferredSize().width, 20));
+ JLabel dataMapLabel = new JLabel(dataMap.getName());
+ dataMapLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
+ dataMapLabel.setBorder(new EmptyBorder(8, 8, 8, 0));
+ labelPanel.add(dataMapLabel, BorderLayout.CENTER);
+
+ JCheckBox dataMapCheckBox = new JCheckBox();
+ dataMapJCheckBoxMap.put(dataMap, dataMapCheckBox);
+ labelPanel.add(dataMapCheckBox, BorderLayout.WEST);
+
+ JPanel currPanel = new JPanel(new BorderLayout());
+ currPanel.add(labelPanel, BorderLayout.NORTH);
+ currPanel.add(scrollTable, BorderLayout.CENTER);
+
+ panel.add(currPanel);
+ }
+
JScrollPane tablePanel = new JScrollPane(
- table,
+ panel,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
// set some minimal preferred size, so that it is smaller than other forms used in
// the dialog... this way we get the right automated overall size
- tablePanel.setPreferredSize(new Dimension(300, 200));
+ tablePanel.setPreferredSize(new Dimension(450, 400));
setLayout(new BorderLayout());
add(topPanel, BorderLayout.NORTH);
add(tablePanel, BorderLayout.CENTER);
}
- public JTable getTable() {
- return table;
+ public boolean isAllCheckBoxesFromDataMapSelected(DataMap dataMap) {
+ JTable table = dataMapTables.get(dataMap);
+ for(int i = 0; i < table.getRowCount(); i++) {
+ if(!(Boolean)table.getModel().getValueAt(i, 0)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public Map<DataMap, JTable> getDataMapTables() {
+ return dataMapTables;
+ }
+
+ public Map<DataMap, JCheckBox> getDataMapJCheckBoxMap() {
+ return dataMapJCheckBoxMap;
}
public JCheckBox getCheckAll() {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
index 248b4b2..f4ce823 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/ClientModeController.java
@@ -24,14 +24,11 @@ import org.apache.cayenne.gen.ClientClassGenerationAction;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.modeler.pref.DataMapDefaults;
-import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.validation.BeanValidationFailure;
import org.apache.cayenne.validation.ValidationResult;
import org.apache.commons.collections.Predicate;
import java.util.ArrayList;
-import java.util.Map.Entry;
-import java.util.Set;
import java.util.TreeMap;
public class ClientModeController extends StandardModeController {
@@ -40,19 +37,6 @@ public class ClientModeController extends StandardModeController {
public ClientModeController(CodeGeneratorControllerBase parent) {
super(parent);
-
- this.checkPredicate = new Predicate() {
-
- public boolean evaluate(Object object) {
- if (object instanceof ObjEntity) {
- ObjEntity entity = (ObjEntity) object;
- return entity.isClientAllowed()
- && getParentController().getProblem(entity.getName()) == null;
- }
-
- return false;
- }
- };
}
public void validateEntity(ValidationResult validationBuffer, ObjEntity entity) {
@@ -90,35 +74,12 @@ public class ClientModeController extends StandardModeController {
protected GeneratorControllerPanel createView() {
this.view = new StandardModePanel();
-
- Set<Entry<DataMap, DataMapDefaults>> entities = getMapPreferences().entrySet();
- for (Entry<DataMap, DataMapDefaults> entry : entities) {
- StandardPanelComponent dataMapLine = createDataMapLineBy(entry.getKey(), entry.getValue());
- dataMapLine.getDataMapName().setText(dataMapLine.getDataMap().getName());
- BindingBuilder builder = new BindingBuilder(getApplication().getBindingFactory(), dataMapLine);
- builder.bindToTextField(
- dataMapLine.getSuperclassPackage(),
- "preferences.superclassPackage").updateView();
- this.view.addDataMapLine(dataMapLine);
- }
-
return view;
}
- private StandardPanelComponent createDataMapLineBy(DataMap dataMap, DataMapDefaults preferences) {
- StandardPanelComponent dataMapLine = new StandardPanelComponent();
- dataMapLine.setDataMap(dataMap);
- dataMapLine.setPreferences(preferences);
-
- return dataMapLine;
- }
-
@Override
protected ClassGenerationAction newGenerator() {
return new ClientClassGenerationAction();
}
- public Predicate getDefaultEntityFilter() {
- return checkPredicate;
- }
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
index 731cc61..610d6c7 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorController.java
@@ -50,7 +50,7 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase {
public CodeGeneratorController(CayenneController parent, Collection<DataMap> dataMaps) {
super(parent, dataMaps);
- this.classesSelector = new ClassesTabController(this);
+ this.classesSelector = new ClassesTabController(this, dataMaps);
this.generatorSelector = new GeneratorTabController(this);
}
@@ -124,9 +124,21 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase {
label = label + "One embeddable selected";
}
else {
- label =label + sizeEmb + " embeddables selected";
+ label = label + sizeEmb + " embeddables selected";
}
-
+
+ label = label.concat("; ");
+
+ int sizeDataMap = getSelectedDataMapsSize();
+
+ if(sizeDataMap == 0) {
+ label = label + "No datamaps selected";
+ } else if(sizeDataMap == 1) {
+ label = label + "One datamap selected";
+ } else {
+ label = label + sizeDataMap + " datamaps selected";
+ }
+
view.getClassesCount().setText(label);
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
index ad8c306..2ab529a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/CodeGeneratorControllerBase.java
@@ -52,8 +52,9 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
protected List<Object> classes;
- protected Set selectedEntities;
- protected Set selectedEmbeddables;
+ private Set<String> selectedEntities;
+ private Set<String> selectedEmbeddables;
+ private Set<String> selectedDataMaps;
protected transient Object currentClass;
@@ -61,14 +62,16 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
super(parent);
this.dataMaps = dataMaps;
- this.classes = new ArrayList();
+ this.classes = new ArrayList<>();
for(DataMap dataMap:dataMaps){
- this.classes.addAll(new ArrayList(dataMap.getObjEntities()));
- this.classes.addAll(new ArrayList(dataMap.getEmbeddables()));
+ this.classes.addAll(dataMap.getObjEntities());
+ this.classes.addAll(dataMap.getEmbeddables());
+ this.classes.add(dataMap);
}
- this.selectedEntities = new HashSet();
- this.selectedEmbeddables = new HashSet();
+ this.selectedEntities = new HashSet<>();
+ this.selectedEmbeddables = new HashSet<>();
+ this.selectedDataMaps = new HashSet<>();
}
public List<Object> getClasses() {
@@ -99,6 +102,62 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
this.validation = validationBuffer;
}
+ public boolean updateDataMapSelection(Predicate predicate, DataMap dataMap) {
+
+ boolean modified = false;
+
+ for (Object classObj : classes) {
+ boolean select = predicate.evaluate(classObj);
+ if (classObj instanceof ObjEntity) {
+ if(dataMap.getObjEntities().contains(classObj)) {
+ if (select) {
+ if (selectedEntities.add(((ObjEntity) classObj).getName())) {
+ modified = true;
+ }
+ } else {
+ if (selectedEntities.remove(((ObjEntity) classObj).getName())) {
+ modified = true;
+ }
+ }
+ }
+ }
+ else if (classObj instanceof Embeddable) {
+ if(dataMap.getEmbeddables().contains(classObj)) {
+ if (select) {
+ if (selectedEmbeddables.add(((Embeddable) classObj).getClassName())) {
+ modified = true;
+ }
+ } else {
+ if (selectedEmbeddables
+ .remove(((Embeddable) classObj).getClassName())) {
+ modified = true;
+ }
+ }
+ }
+ } else {
+ if(dataMap == classObj) {
+ if (select) {
+ if (selectedDataMaps.add(((DataMap) classObj).getName())) {
+ modified = true;
+ }
+ } else {
+ if (selectedDataMaps.remove(((DataMap) classObj).getName())) {
+ modified = true;
+ }
+ }
+ }
+ }
+
+ }
+
+ if (modified) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
+
+ return modified;
+ }
+
+
public boolean updateSelection(Predicate predicate) {
boolean modified = false;
@@ -130,6 +189,16 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
modified = true;
}
}
+ } else if(classObj instanceof DataMap) {
+ if(select) {
+ if(selectedDataMaps.add(((DataMap) classObj).getName())) {
+ modified = true;
+ }
+ } else {
+ if(selectedDataMaps.remove(((DataMap) classObj).getName())) {
+ modified = true;
+ }
+ }
}
}
@@ -139,6 +208,7 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
}
return modified;
+
}
public List<Embeddable> getSelectedEmbeddables() {
@@ -168,6 +238,17 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
return selected;
}
+ public List<DataMap> getSelectedDataMaps() {
+ List<DataMap> selected = new ArrayList<>(selectedDataMaps.size());
+ for(Object classObj : classes) {
+ if(classObj instanceof DataMap
+ && selectedDataMaps.contains(((DataMap) classObj).getName())) {
+ selected.add((DataMap) classObj);
+ }
+ }
+ return selected;
+ }
+
public int getSelectedEntitiesSize() {
return selectedEntities.size();
}
@@ -176,6 +257,10 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
return selectedEmbeddables.size();
}
+ public int getSelectedDataMapsSize() {
+ return selectedDataMaps.size();
+ }
+
/**
* Returns the first encountered validation problem for an antity matching the name or
* null if the entity is valid or the entity is not present.
@@ -183,14 +268,14 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
public String getProblem(Object obj) {
String name = null;
-
+
if (obj instanceof ObjEntity) {
name = ((ObjEntity) obj).getName();
}
else if (obj instanceof Embeddable) {
name = ((Embeddable) obj).getClassName();
}
-
+
if (validation == null) {
return null;
}
@@ -205,12 +290,16 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
public boolean isSelected() {
if (currentClass instanceof ObjEntity) {
- return currentClass != null ? selectedEntities
- .contains(((ObjEntity) currentClass).getName()) : false;
+ return selectedEntities
+ .contains(((ObjEntity) currentClass).getName());
}
if (currentClass instanceof Embeddable) {
- return currentClass != null ? selectedEmbeddables
- .contains(((Embeddable) currentClass).getClassName()) : false;
+ return selectedEmbeddables
+ .contains(((Embeddable) currentClass).getClassName());
+ }
+ if(currentClass instanceof DataMap) {
+ return selectedDataMaps
+ .contains(((DataMap) currentClass).getName());
}
return false;
@@ -245,6 +334,17 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
}
}
}
+ if(currentClass instanceof DataMap) {
+ if(selectedFlag) {
+ if(selectedDataMaps.add(((DataMap) currentClass).getName())) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
+ } else {
+ if(selectedDataMaps.remove(((DataMap) currentClass).getName())) {
+ firePropertyChange(SELECTED_PROPERTY, null, null);
+ }
+ }
+ }
}
public Object getCurrentClass() {
@@ -261,13 +361,16 @@ public abstract class CodeGeneratorControllerBase extends CayenneController {
public JLabel getItemName(Object obj) {
String className;
- Icon icon = null;
+ Icon icon;
if (obj instanceof Embeddable) {
className = ((Embeddable) obj).getClassName();
icon = CellRenderers.iconForObject(new Embeddable());
- } else {
+ } else if(obj instanceof ObjEntity) {
className = ((ObjEntity) obj).getName();
icon = CellRenderers.iconForObject(new ObjEntity());
+ } else {
+ className = ((DataMap) obj).getName();
+ icon = CellRenderers.iconForObject(new DataMap());
}
JLabel labelIcon = new JLabel();
labelIcon.setIcon(icon);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/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 72d6167..9033052 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
@@ -28,9 +28,9 @@ import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.ScrollPaneConstants;
-import javax.swing.SwingConstants;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
@@ -43,17 +43,19 @@ public class CodeGeneratorDialog extends JDialog {
protected JTabbedPane tabs;
- protected JButton generateButton;
+ private JButton generateButton;
protected JButton cancelButton;
- protected JLabel classesCount;
+ private JLabel classesCount;
- public CodeGeneratorDialog(Component generatorPanel, Component entitySelectorPanel) {
+ CodeGeneratorDialog(Component generatorPanel, Component entitySelectorPanel) {
super(Application.getFrame());
- this.tabs = new JTabbedPane(SwingConstants.TOP);
- this.tabs.setFocusable(false);
+ JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
+ splitPane.setFocusable(false);
+
this.generateButton = new JButton("Generate");
getRootPane().setDefaultButton(generateButton);
+
this.cancelButton = new JButton("Cancel");
this.classesCount = new JLabel("No classes selected");
classesCount.setFont(classesCount.getFont().deriveFont(10f));
@@ -62,12 +64,12 @@ public class CodeGeneratorDialog extends JDialog {
generatorPanel,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- scrollPane.setPreferredSize(new Dimension(800, 400));
+ scrollPane.setPreferredSize(new Dimension(630, 500));
// assemble
- tabs.addTab("Code Generator", scrollPane);
- tabs.addTab("Classes", entitySelectorPanel);
+ splitPane.setLeftComponent(entitySelectorPanel);
+ splitPane.setRightComponent(scrollPane);
JPanel messages = new JPanel(new BorderLayout());
messages.add(classesCount, BorderLayout.WEST);
@@ -81,7 +83,7 @@ public class CodeGeneratorDialog extends JDialog {
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
- contentPane.add(tabs, BorderLayout.CENTER);
+ contentPane.add(splitPane, BorderLayout.CENTER);
contentPane.add(buttons, BorderLayout.SOUTH);
setTitle("Code Generation");
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/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 0250f9c..e94e77a 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
@@ -28,15 +28,14 @@ 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 javax.swing.DefaultComboBoxModel;
+import java.awt.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.Map.Entry;
+import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
@@ -46,27 +45,13 @@ import java.util.TreeMap;
public class CustomModeController extends GeneratorController {
// correspond to non-public constants on MapClassGenerator.
- static final String MODE_DATAMAP = "datamap";
- static final String MODE_ENTITY = "entity";
- static final String MODE_ALL = "all";
-
- static final String DATA_MAP_MODE_LABEL = "DataMap generation";
- static final String ENTITY_MODE_LABEL = "Entity and Embeddable generation";
- static final String ALL_MODE_LABEL = "Generate all";
-
- static final Map<String, String> modesByLabel = new HashMap<>();
-
- static {
- modesByLabel.put(DATA_MAP_MODE_LABEL, MODE_DATAMAP);
- modesByLabel.put(ENTITY_MODE_LABEL, MODE_ENTITY);
- modesByLabel.put(ALL_MODE_LABEL, MODE_ALL);
- }
+ private static final String MODE_ENTITY = "entity";
protected CustomModePanel view;
- protected CodeTemplateManager templateManager;
+ private CodeTemplateManager templateManager;
- protected ObjectBinding superTemplate;
- protected ObjectBinding subTemplate;
+ private ObjectBinding superTemplate;
+ private ObjectBinding subTemplate;
private CustomPreferencesUpdater preferencesUpdater;
@@ -77,9 +62,6 @@ public class CustomModeController extends GeneratorController {
public CustomModeController(CodeGeneratorControllerBase parent) {
super(parent);
- Object[] modeChoices = new Object[] { ENTITY_MODE_LABEL, DATA_MAP_MODE_LABEL, ALL_MODE_LABEL };
- view.getGenerationMode().setModel(new DefaultComboBoxModel(modeChoices));
-
// bind preferences and init defaults...
Set<Entry<DataMap, DataMapDefaults>> entities = getMapPreferences().entrySet();
@@ -119,8 +101,6 @@ public class CustomModeController extends GeneratorController {
builder.bindToAction(view.getManageTemplatesLink(), "popPreferencesAction()");
- builder.bindToComboSelection(view.getGenerationMode(), "customPreferencesUpdater.mode").updateView();
-
builder.bindToStateChange(view.getOverwrite(), "customPreferencesUpdater.overwrite").updateView();
builder.bindToStateChange(view.getPairs(), "customPreferencesUpdater.pairs").updateView();
@@ -165,25 +145,9 @@ public class CustomModeController extends GeneratorController {
protected GeneratorControllerPanel createView() {
this.view = new CustomModePanel();
- Set<Entry<DataMap, DataMapDefaults>> entities = getMapPreferences().entrySet();
- for (Entry<DataMap, DataMapDefaults> entry : entities) {
- StandardPanelComponent dataMapLine = createDataMapLineBy(entry.getKey(), entry.getValue());
- dataMapLine.getDataMapName().setText(dataMapLine.getDataMap().getName());
- BindingBuilder builder = new BindingBuilder(getApplication().getBindingFactory(), dataMapLine);
- builder.bindToTextField(dataMapLine.getSuperclassPackage(), "preferences.superclassPackage").updateView();
- this.view.addDataMapLine(dataMapLine);
- }
return view;
}
- private StandardPanelComponent createDataMapLineBy(DataMap dataMap, DataMapDefaults preferences) {
- StandardPanelComponent dataMapLine = new StandardPanelComponent();
- dataMapLine.setDataMap(dataMap);
- dataMapLine.setPreferences(preferences);
-
- return dataMapLine;
- }
-
protected void updateTemplates() {
this.templateManager = getApplication().getCodeTemplateManager();
@@ -198,8 +162,8 @@ public class CustomModeController extends GeneratorController {
Collections.sort(subTemplates);
subTemplates.addAll(customTemplates);
- this.view.getSubclassTemplate().setModel(new DefaultComboBoxModel(subTemplates.toArray()));
- this.view.getSuperclassTemplate().setModel(new DefaultComboBoxModel(superTemplates.toArray()));
+ this.view.getSubclassTemplate().setModel(new DefaultComboBoxModel<>(subTemplates.toArray(new String[0])));
+ this.view.getSuperclassTemplate().setModel(new DefaultComboBoxModel<>(superTemplates.toArray(new String[0])));
superTemplate.updateView();
subTemplate.updateView();
@@ -211,14 +175,12 @@ public class CustomModeController extends GeneratorController {
public Collection<ClassGenerationAction> createGenerator() {
- mode = modesByLabel.get(view.getGenerationMode().getSelectedItem()).toString();
-
Collection<ClassGenerationAction> generators = super.createGenerator();
- String superKey = view.getSuperclassTemplate().getSelectedItem().toString();
+ String superKey = Objects.requireNonNull(view.getSuperclassTemplate().getSelectedItem()).toString();
String superTemplate = templateManager.getTemplatePath(superKey);
- String subKey = view.getSubclassTemplate().getSelectedItem().toString();
+ String subKey = Objects.requireNonNull(view.getSubclassTemplate().getSelectedItem()).toString();
String subTemplate = templateManager.getTemplatePath(subKey);
for (ClassGenerationAction generator : generators) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/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 dcf8767..b951c58 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
@@ -34,24 +34,20 @@ import java.awt.FlowLayout;
public class CustomModePanel extends GeneratorControllerPanel {
- protected JComboBox generationMode;
- protected JComboBox subclassTemplate;
- protected JComboBox superclassTemplate;
+ private JComboBox<String> subclassTemplate;
+ private JComboBox<String> superclassTemplate;
protected JCheckBox pairs;
- protected JCheckBox overwrite;
- protected JCheckBox usePackagePath;
- protected JTextField outputPattern;
- protected JCheckBox createPropertyNames;
+ private JCheckBox overwrite;
+ private JCheckBox usePackagePath;
+ private JTextField outputPattern;
+ private JCheckBox createPropertyNames;
- private DefaultFormBuilder builder;
-
- protected ActionLink manageTemplatesLink;
+ private ActionLink manageTemplatesLink;
public CustomModePanel() {
- this.generationMode = new JComboBox();
- this.superclassTemplate = new JComboBox();
- this.subclassTemplate = new JComboBox();
+ this.superclassTemplate = new JComboBox<>();
+ this.subclassTemplate = new JComboBox<>();
this.pairs = new JCheckBox();
this.overwrite = new JCheckBox();
this.usePackagePath = new JCheckBox();
@@ -71,16 +67,13 @@ public class CustomModePanel extends GeneratorControllerPanel {
// assemble
FormLayout layout = new FormLayout(
- "right:77dlu, 3dlu, fill:200:grow, 6dlu, fill:50dlu, 3dlu", "");
- builder = new DefaultFormBuilder(layout);
+ "right:77dlu, 1dlu, fill:100:grow, 1dlu, left:80dlu, 1dlu", "");
+ DefaultFormBuilder builder = new DefaultFormBuilder(layout);
builder.setDefaultDialogBorder();
builder.append("Output Directory:", outputFolder, selectOutputFolder);
builder.nextLine();
- builder.append("Generation Mode:", generationMode);
- builder.nextLine();
-
builder.append("Subclass Template:", subclassTemplate);
builder.nextLine();
@@ -105,32 +98,22 @@ public class CustomModePanel extends GeneratorControllerPanel {
setLayout(new BorderLayout());
add(builder.getPanel(), BorderLayout.CENTER);
- JPanel links = new JPanel(new FlowLayout(FlowLayout.TRAILING));
+ JPanel links = new JPanel(new FlowLayout(FlowLayout.RIGHT));
links.add(manageTemplatesLink);
add(links, BorderLayout.SOUTH);
add(builder.getPanel(), BorderLayout.CENTER);
}
- public void addDataMapLine(StandardPanelComponent dataMapLine) {
- dataMapLines.add(dataMapLine);
- builder.append(dataMapLine, 4);
- builder.nextLine();
- }
-
- public JComboBox getGenerationMode() {
- return generationMode;
- }
-
public ActionLink getManageTemplatesLink() {
return manageTemplatesLink;
}
- public JComboBox getSubclassTemplate() {
+ public JComboBox<String> getSubclassTemplate() {
return subclassTemplate;
}
- public JComboBox getSuperclassTemplate() {
+ public JComboBox<String> getSuperclassTemplate() {
return superclassTemplate;
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
index 6d3452b..8d39ceb 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
@@ -19,7 +19,7 @@
package org.apache.cayenne.modeler.dialog.codegen;
-import org.apache.cayenne.CayenneException;
+import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.gen.ArtifactsGenerationMode;
import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.map.DataMap;
@@ -50,7 +50,6 @@ import javax.swing.JTextField;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
@@ -160,10 +159,9 @@ public abstract class GeneratorController extends CayenneController {
// remove generic entities...
Collection<ObjEntity> selectedEntities = new ArrayList<>(getParentController().getSelectedEntities());
- Iterator<ObjEntity> it = selectedEntities.iterator();
- while (it.hasNext()) {
- if (it.next().isGeneric()) {
- it.remove();
+ for(ObjEntity objEntity : selectedEntities) {
+ if(objEntity.isGeneric()) {
+ selectedEntities.remove(objEntity);
}
}
@@ -172,6 +170,13 @@ public abstract class GeneratorController extends CayenneController {
for (DataMap map : getParentController().getDataMaps()) {
try {
ClassGenerationAction generator = newGenerator();
+
+ if(getParentController().getSelectedDataMaps().contains(map)) {
+ mode = ArtifactsGenerationMode.ALL.getLabel();
+ } else {
+ mode = ArtifactsGenerationMode.ENTITY.getLabel();
+ }
+
generator.setArtifactsGenerationMode(mode);
generator.setDataMap(map);
@@ -195,15 +200,8 @@ public abstract class GeneratorController extends CayenneController {
generator.setDestDir(outputDir);
generator.setMakePairs(true);
- for (StandardPanelComponent dataMapLine : dataMapLines) {
- if (dataMapLine.getDataMap() == map && !Util.isEmptyString(dataMapLine.getSuperclassPackage().getText())) {
- generator.setSuperPkg(dataMapLine.getSuperclassPackage().getText());
- break;
- }
- }
-
generators.add(generator);
- } catch (CayenneException exception) {
+ } catch (CayenneRuntimeException exception) {
JOptionPane.showMessageDialog(this.getView(), exception.getUnlabeledMessage());
return null;
}
@@ -258,7 +256,7 @@ public abstract class GeneratorController extends CayenneController {
return null;
}
- protected ValidationFailure validateEmbeddable(Embeddable embeddable) {
+ private ValidationFailure validateEmbeddable(Embeddable embeddable) {
String name = embeddable.getClassName();
@@ -314,7 +312,7 @@ public abstract class GeneratorController extends CayenneController {
}
}
- protected ValidationFailure validateEntity(ObjEntity entity) {
+ private ValidationFailure validateEntity(ObjEntity entity) {
String name = entity.getName();
@@ -344,7 +342,7 @@ public abstract class GeneratorController extends CayenneController {
return null;
}
- protected ValidationFailure validateAttribute(ObjAttribute attribute) {
+ private ValidationFailure validateAttribute(ObjAttribute attribute) {
String name = attribute.getEntity().getName();
@@ -375,7 +373,7 @@ public abstract class GeneratorController extends CayenneController {
return null;
}
- protected ValidationFailure validateEmbeddedAttribute(ObjAttribute attribute) {
+ private ValidationFailure validateEmbeddedAttribute(ObjAttribute attribute) {
String name = attribute.getEntity().getName();
@@ -424,7 +422,7 @@ public abstract class GeneratorController extends CayenneController {
return null;
}
- protected ValidationFailure validateRelationship(ObjRelationship relationship, boolean clientValidation) {
+ private ValidationFailure validateRelationship(ObjRelationship relationship, boolean clientValidation) {
String name = relationship.getSourceEntity().getName();
@@ -473,55 +471,23 @@ public abstract class GeneratorController extends CayenneController {
* Returns a predicate for default entity selection in a given mode.
*/
public Predicate getDefaultClassFilter() {
- final ObjEntity selectedEntity = Application.getInstance().getFrameController().getProjectController()
- .getCurrentObjEntity();
-
- final Embeddable selectedEmbeddable = Application.getInstance().getFrameController().getProjectController()
- .getCurrentEmbeddable();
-
- // select a single entity
- if (selectedEntity != null) {
- final boolean hasProblem = getParentController().getProblem(selectedEntity.getName()) != null;
-
- return new Predicate() {
-
- public boolean evaluate(Object object) {
- return !hasProblem && object == selectedEntity;
+ return new Predicate() {
+ @Override
+ public boolean evaluate(Object o) {
+ if (o instanceof ObjEntity) {
+ return GeneratorController.this.getParentController().getProblem(((ObjEntity) o).getName()) == null;
}
- };
- }
- // select a single embeddable
- else if (selectedEmbeddable != null) {
- final boolean hasProblem = getParentController().getProblem(selectedEmbeddable.getClassName()) != null;
- return new Predicate() {
-
- public boolean evaluate(Object object) {
- return !hasProblem && object == selectedEmbeddable;
+ if (o instanceof Embeddable) {
+ return GeneratorController.this.getParentController().getProblem(((Embeddable) o).getClassName()) == null;
}
- };
- }
- // select all entities
- else {
-
- return new Predicate() {
- public boolean evaluate(Object object) {
- if (object instanceof ObjEntity) {
- return getParentController().getProblem(((ObjEntity) object).getName()) == null;
- }
-
- if (object instanceof Embeddable) {
- return getParentController().getProblem(((Embeddable) object).getClassName()) == null;
- }
-
- return false;
- }
- };
- }
+ return false;
+ }
+ };
}
- public File getOutputDir() {
+ private File getOutputDir() {
String dir = ((GeneratorControllerPanel) getView()).getOutputFolder().getText();
return dir != null ? new File(dir) : new File(System.getProperty("user.dir"));
}
@@ -600,4 +566,5 @@ public abstract class GeneratorController extends CayenneController {
}
return path.toString();
}
+
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
index ddc7d5b..5d7594f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
@@ -27,6 +27,7 @@ import org.apache.cayenne.swing.BindingBuilder;
import org.apache.cayenne.util.Util;
import java.awt.Component;
+import java.awt.Dimension;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -65,6 +66,7 @@ public class GeneratorTabController extends CayenneController {
this.view = new GeneratorTabPanel(GENERATION_MODES, modePanels);
initBindings();
+ view.setPreferredSize(new Dimension(600, 480));
}
public Component getView() {
@@ -82,8 +84,6 @@ public class GeneratorTabController extends CayenneController {
getApplication().getBindingFactory(),
this);
- builder.bindToAction(view.getGenerationMode(), "updateModeAction()");
-
CayenneProjectPreferences cayPrPref = application.getCayenneProjectPreferences();
this.preferences = (PreferenceDetail) cayPrPref.getProjectDetailObject(
@@ -97,21 +97,12 @@ public class GeneratorTabController extends CayenneController {
builder.bindToComboSelection(
view.getGenerationMode(),
"preferences.property['mode']").updateView();
-
- updateModeAction();
}
public PreferenceDetail getPreferences() {
return preferences;
}
- /**
- * Resets selection to default values for a given controller.
- */
- public void updateModeAction() {
- firePropertyChange(GENERATOR_PROPERTY, null, getGeneratorController());
- }
-
public GeneratorController getGeneratorController() {
Object name = view.getGenerationMode().getSelectedItem();
return (GeneratorController) controllers.get(name);
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
index e700779..1c3a27a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModeController.java
@@ -19,17 +19,13 @@
package org.apache.cayenne.modeler.dialog.codegen;
-import org.apache.cayenne.gen.ArtifactsGenerationMode;
import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.modeler.pref.DataMapDefaults;
-import org.apache.cayenne.swing.BindingBuilder;
import java.awt.Component;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Map.Entry;
-import java.util.Set;
import java.util.TreeMap;
public class StandardModeController extends GeneratorController {
@@ -65,42 +61,22 @@ public class StandardModeController extends GeneratorController {
protected GeneratorControllerPanel createView() {
this.view = new StandardModePanel();
-
- Set<Entry<DataMap, DataMapDefaults>> entities = getMapPreferences().entrySet();
- for (Entry<DataMap, DataMapDefaults> entry : entities) {
- StandardPanelComponent dataMapLine = createDataMapLineBy(entry.getKey(), entry.getValue());
- dataMapLine.getDataMapName().setText(dataMapLine.getDataMap().getName());
- BindingBuilder builder = new BindingBuilder(getApplication().getBindingFactory(), dataMapLine);
- builder.bindToTextField(
- dataMapLine.getSuperclassPackage(),
- "preferences.superclassPackage").updateView();
- this.view.addDataMapLine(dataMapLine);
- }
return view;
}
- private StandardPanelComponent createDataMapLineBy(DataMap dataMap, DataMapDefaults preferences) {
- StandardPanelComponent dataMapLine = new StandardPanelComponent();
- dataMapLine.setDataMap(dataMap);
- dataMapLine.setPreferences(preferences);
-
- return dataMapLine;
- }
-
public Component getView() {
return view;
}
@Override
protected ClassGenerationAction newGenerator() {
- return new ClassGenerationAction();
+ ClassGenerationAction action = new ClassGenerationAction();
+ getApplication().getInjector().injectMembers(action);
+ return action;
}
@Override
public Collection<ClassGenerationAction> createGenerator() {
- mode = view.getCreateDataMapClass().isSelected()
- ? ArtifactsGenerationMode.ALL.getLabel()
- : ArtifactsGenerationMode.ENTITY.getLabel();
return super.createGenerator();
}
}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/f8d8e50e/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
index 199d511..cbb3f35 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/StandardModePanel.java
@@ -22,37 +22,21 @@ package org.apache.cayenne.modeler.dialog.codegen;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;
-import javax.swing.JCheckBox;
import java.awt.BorderLayout;
public class StandardModePanel extends GeneratorControllerPanel {
private DefaultFormBuilder builder;
- protected JCheckBox createDataMapClass;
public StandardModePanel() {
FormLayout layout = new FormLayout(
- "right:77dlu, 3dlu, fill:200:grow, 6dlu, fill:50dlu, 3dlu", "");
+ "right:77dlu, 1dlu, fill:100:grow, 1dlu, left:80dlu, 1dlu", "");
builder = new DefaultFormBuilder(layout);
builder.append("Output Directory:", outputFolder, selectOutputFolder);
builder.nextLine();
- createDataMapClass = new JCheckBox();
- builder.append("Create DataMap class:", createDataMapClass);
- builder.nextLine();
-
setLayout(new BorderLayout());
add(builder.getPanel(), BorderLayout.CENTER);
}
-
- public void addDataMapLine(StandardPanelComponent dataMapLine) {
- dataMapLines.add(dataMapLine);
- builder.append(dataMapLine, 4);
- builder.nextLine();
- }
-
- public JCheckBox getCreateDataMapClass() {
- return createDataMapClass;
- }
}
\ No newline at end of file
[2/3] cayenne git commit: CAY-2476 Modeler: Fixed wrong behaviour of
code generation dialog
Posted by nt...@apache.org.
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;
}
+
}
[3/3] cayenne git commit: Merge PR #325
Posted by nt...@apache.org.
Merge PR #325
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/37d83244
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/37d83244
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/37d83244
Branch: refs/heads/STABLE-4.0
Commit: 37d8324438e618099fcf8e1ff179d961c069e25a
Parents: 20f9d38 7bd2ca9
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Oct 1 18:04:53 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Oct 1 18:04:53 2018 +0300
----------------------------------------------------------------------
RELEASE-NOTES.txt | 2 +
.../cayenne/gen/ClassGenerationAction.java | 2 +-
.../gen/ClientClassGenerationAction.java | 9 +-
.../cayenne/modeler/CodeTemplateManager.java | 3 +
.../modeler/action/GenerateCodeAction.java | 30 +----
.../dialog/codegen/ClassesTabController.java | 132 +++++++++++++++---
.../modeler/dialog/codegen/ClassesTabPanel.java | 89 +++++++++++--
.../dialog/codegen/ClientModeController.java | 39 ------
.../dialog/codegen/CodeGeneratorController.java | 18 ++-
.../codegen/CodeGeneratorControllerBase.java | 133 ++++++++++++++++---
.../dialog/codegen/CodeGeneratorDialog.java | 24 ++--
.../dialog/codegen/CustomModeController.java | 100 ++++++--------
.../modeler/dialog/codegen/CustomModePanel.java | 57 +++-----
.../dialog/codegen/GeneratorController.java | 91 ++++---------
.../dialog/codegen/GeneratorTabController.java | 13 +-
.../dialog/codegen/StandardModeController.java | 30 +----
.../dialog/codegen/StandardModePanel.java | 18 +--
17 files changed, 441 insertions(+), 349 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/37d83244/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --cc RELEASE-NOTES.txt
index 7b5e681,6b18383..ef6fa06
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@@ -12,11 -12,10 +12,13 @@@ Release: 4.0.
Date:
----------------------------------
+=======
Changes/New Features:
-CAY-2479 Modeler: update cgen dialog
+CAY-2473 Modeler: cleanup attributes and relationship editors
+CAY-2475 Modeler: move inheritance icon to name column in objAttr table and objRel table
+ CAY-2476 Modeler: Fixed wrong behaviour of code generation dialog
++CAY-2479 Modeler: update cgen dialog
Bug Fixes: