Update cgen tab in datamap
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/838b21ab Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/838b21ab Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/838b21ab Branch: refs/heads/master Commit: 838b21ab41cda1161195a97ef666411f3db3c468 Parents: e6ba48c Author: Arseni Bulatski <[email protected]> Authored: Thu Nov 22 16:08:11 2018 +0300 Committer: Arseni Bulatski <[email protected]> Committed: Thu Nov 22 16:09:48 2018 +0300 ---------------------------------------------------------------------- .../editor/cgen/ClassesTabController.java | 16 +++--- .../modeler/editor/cgen/ClassesTabPanel.java | 31 +----------- .../editor/cgen/CodeGeneratorController.java | 9 ++-- .../cgen/CodeGeneratorControllerBase.java | 15 ++++-- .../modeler/editor/cgen/CodeGeneratorPane.java | 53 ++++++++++++++++++-- .../modeler/editor/cgen/CustomModePanel.java | 4 +- .../editor/cgen/GeneratorTabController.java | 2 +- .../modeler/editor/cgen/GeneratorTabPanel.java | 27 +++------- .../modeler/editor/cgen/StandardModePanel.java | 2 +- 9 files changed, 84 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java index fe3dc4d..b219aae 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabController.java @@ -43,8 +43,6 @@ public class ClassesTabController extends CayenneController { this.view = new ClassesTabPanel(); builder = new BindingBuilder(getApplication().getBindingFactory(), this); - - builder.bindToAction(view.getCheckAll(), "checkAllAction()"); } public void startup(){ @@ -61,6 +59,8 @@ public class ClassesTabController extends CayenneController { } protected void initBindings() { + builder.bindToAction(((CodeGeneratorPane)parent.getView()).getCheckAll(), "checkAllAction()"); + TableBindingBuilder tableBuilder = new TableBindingBuilder(builder); tableBuilder.addColumn( @@ -74,14 +74,14 @@ public class ClassesTabController extends CayenneController { "parent.getItemName(#item)", JLabel.class, false, - "XXXXXXXXXXXXXXXXXXXXXXXXXXX"); + "XXXXXXXXXXXXXXXXXXXXXXXXXX"); tableBuilder.addColumn( "Comments, Warnings", "parent.getProblem(#item)", String.class, false, - "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); this.tableBinding = tableBuilder.bindToTable(view.getTable(), "parent.classes"); view.getTable().getColumnModel().getColumn(1).setCellRenderer(new ImageRendererColumn()); @@ -109,10 +109,10 @@ public class ClassesTabController extends CayenneController { getParentController().enableGenerateButton(true); } if (selectedCount < getParentController().getClasses().size()) { - view.getCheckAll().setSelected(false); + ((CodeGeneratorPane)parent.getView()).getCheckAll().setSelected(false); } else if (selectedCount == getParentController().getClasses().size()) { - view.getCheckAll().setSelected(true); + ((CodeGeneratorPane)parent.getView()).getCheckAll().setSelected(true); } getParentController().updateSelectedEntities(); } @@ -122,10 +122,10 @@ public class ClassesTabController extends CayenneController { * change. */ public void checkAllAction() { - if (getParentController().updateSelection(view.getCheckAll().isSelected() ? o -> true : o -> false)) { + if (getParentController().updateSelection(((CodeGeneratorPane)parent.getView()).getCheckAll().isSelected() ? o -> true : o -> false)) { tableBinding.updateView(); getParentController().updateSelectedEntities(); - if(view.getCheckAll().isSelected()) { + if(((CodeGeneratorPane)parent.getView()).getCheckAll().isSelected()) { getParentController().enableGenerateButton(true); } else { getParentController().enableGenerateButton(false); http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabPanel.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabPanel.java index 0cca129..b537dcc 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/ClassesTabPanel.java @@ -19,16 +19,12 @@ package org.apache.cayenne.modeler.editor.cgen; -import javax.swing.JCheckBox; -import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ScrollPaneConstants; -import javax.swing.UIManager; import java.awt.BorderLayout; import java.awt.Dimension; -import java.awt.FlowLayout; /** * @since 4.1 @@ -36,30 +32,10 @@ import java.awt.FlowLayout; public class ClassesTabPanel extends JPanel { protected JTable table; - private JCheckBox checkAll; - private JLabel checkAllLabel; - ClassesTabPanel() { this.table = new JTable(); this.table.setRowHeight(22); - this.checkAll = new JCheckBox(); - this.checkAllLabel = new JLabel("Check All Classes"); - - checkAll.addItemListener(event -> { - if (checkAll.isSelected()) { - checkAllLabel.setText("Uncheck All Classess"); - } - else { - checkAllLabel.setText("Check All Classes"); - } - }); - - // assemble - JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEADING)); - topPanel.setBorder(UIManager.getBorder("ToolBar.border")); - topPanel.add(checkAll); - topPanel.add(checkAllLabel); JScrollPane tablePanel = new JScrollPane( table, @@ -68,18 +44,13 @@ public class ClassesTabPanel extends JPanel { // 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(450, 200)); + tablePanel.setPreferredSize(new Dimension(530, 200)); setLayout(new BorderLayout()); - add(topPanel, BorderLayout.NORTH); add(tablePanel, BorderLayout.CENTER); } public JTable getTable() { return table; } - - public JCheckBox getCheckAll() { - return checkAll; - } } http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java index 36f88a2..b2fc012 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java @@ -38,8 +38,8 @@ import org.apache.cayenne.swing.BindingBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.JOptionPane; +import java.awt.Component; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.function.Predicate; @@ -81,6 +81,7 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase impleme generatorSelector.setSelectedController(modeController); classesSelector.startup(); initFromModel = false; + validate(modeController); } private boolean isDefaultConfig(CgenConfiguration cgenConfiguration) { @@ -108,7 +109,7 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase impleme getApplication().getBindingFactory(), this); - builder.bindToAction(((GeneratorTabPanel)generatorSelector.getView()).getGenerateButton(), "generateAction()"); + builder.bindToAction(view.getGenerateButton(), "generateAction()"); builder.bindToAction(this, "classesSelectedAction()", SELECTED_PROPERTY); builder.bindToAction(generatorSelector, "generatorSelectedAction()", GeneratorTabController.GENERATOR_PROPERTY); @@ -159,7 +160,7 @@ public class CodeGeneratorController extends CodeGeneratorControllerBase impleme } public void enableGenerateButton(boolean enable) { - ((GeneratorTabPanel)generatorSelector.getView()).getGenerateButton().setEnabled(enable); + view.getGenerateButton().setEnabled(enable); } @Override http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorControllerBase.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorControllerBase.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorControllerBase.java index 1c41cb8..ec99134 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorControllerBase.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorControllerBase.java @@ -32,14 +32,21 @@ import org.apache.cayenne.modeler.util.ModelerUtil; import org.apache.cayenne.validation.ValidationFailure; import org.apache.cayenne.validation.ValidationResult; -import javax.swing.*; -import java.awt.*; +import javax.swing.Icon; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import java.awt.Component; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.function.Predicate; import java.util.prefs.Preferences; import java.util.stream.Collectors; @@ -275,7 +282,7 @@ public abstract class CodeGeneratorControllerBase extends CayenneController { public String getProblem(Object obj) { String name = null; - + if (obj instanceof ObjEntity) { name = ((ObjEntity) obj).getName(); } http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorPane.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorPane.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorPane.java index 3875391..d563c61 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorPane.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorPane.java @@ -19,33 +19,80 @@ package org.apache.cayenne.modeler.editor.cgen; +import org.apache.cayenne.modeler.util.ModelerUtil; + +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.ScrollPaneConstants; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; +import java.awt.FlowLayout; /** * @since 4.1 */ -public class CodeGeneratorPane extends JSplitPane { +public class CodeGeneratorPane extends JPanel { + + private JPanel toolBarPanel; + private JButton generateButton; + private JCheckBox checkAll; + private JLabel checkAllLabel; public CodeGeneratorPane(Component generatorPanel, Component entitySelectorPanel) { super(); + this.setLayout(new BorderLayout()); + + this.toolBarPanel = new JPanel(); + toolBarPanel.setLayout(new BorderLayout()); + + this.generateButton = new JButton("Generate"); + generateButton.setIcon(ModelerUtil.buildIcon("icon-dbi-runImport.png")); + generateButton.setEnabled(false); + generateButton.setPreferredSize(new Dimension(115, 25)); + + toolBarPanel.add(generateButton, BorderLayout.EAST); + + this.checkAll = new JCheckBox(); + this.checkAllLabel = new JLabel("Check All Classes"); + checkAll.addItemListener(event -> { + if (checkAll.isSelected()) { + checkAllLabel.setText("Uncheck All Classess"); + } + else { + checkAllLabel.setText("Check All Classes"); + } + }); + JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEADING)); + topPanel.add(checkAll); + topPanel.add(checkAllLabel); + toolBarPanel.add(topPanel, BorderLayout.WEST); + + add(toolBarPanel, BorderLayout.NORTH); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); JScrollPane scrollPane = new JScrollPane( generatorPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - scrollPane.setPreferredSize(new Dimension(300,400)); + scrollPane.setPreferredSize(new Dimension(150,400)); // assemble splitPane.setRightComponent(scrollPane); splitPane.setLeftComponent(entitySelectorPanel); - setLayout(new BorderLayout()); add(splitPane, BorderLayout.CENTER); } + + public JButton getGenerateButton() { + return generateButton; + } + + public JCheckBox getCheckAll() { + return checkAll; + } } http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java index 18a1929..d29c3c4 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java @@ -102,7 +102,7 @@ public class CustomModePanel extends GeneratorControllerPanel { // assemble FormLayout layout = new FormLayout( - "right:79dlu, 1dlu, fill:300:grow, 1dlu, left:100dlu, 100dlu", ""); + "right:74dlu, 1dlu, fill:240:grow, 1dlu, left:100dlu, 100dlu", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); @@ -139,8 +139,6 @@ public class CustomModePanel extends GeneratorControllerPanel { JPanel links = new JPanel(new FlowLayout(FlowLayout.TRAILING)); links.add(manageTemplatesLink); add(links, BorderLayout.SOUTH); - - add(builder.getPanel(), BorderLayout.CENTER); } public void setDisableSuperComboBoxes(boolean val){ http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabController.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabController.java index 0956cc3..f13caab 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabController.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabController.java @@ -60,7 +60,7 @@ public class GeneratorTabController extends CayenneController { } this.view = new GeneratorTabPanel(GENERATION_MODES, modePanels); initBindings(); - view.setPreferredSize(new Dimension(600, 480)); + view.setPreferredSize(new Dimension(550, 480)); } public Component getView() { http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabPanel.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabPanel.java index 49e0db7..726f125 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabPanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/GeneratorTabPanel.java @@ -21,11 +21,12 @@ package org.apache.cayenne.modeler.editor.cgen; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.layout.FormLayout; -import org.apache.cayenne.modeler.util.ModelerUtil; -import org.apache.cayenne.swing.components.TopBorder; -import javax.swing.*; -import java.awt.*; +import javax.swing.JComboBox; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Component; import java.util.Objects; /** @@ -37,20 +38,8 @@ public class GeneratorTabPanel extends JPanel { private CardLayout modeLayout; private JPanel modesPanel; - private JButton generateButton; - public GeneratorTabPanel(String[] modeNames, Component[] modePanels) { setLayout(new BorderLayout()); - this.generateButton = new JButton("Generate"); - generateButton.setIcon(ModelerUtil.buildIcon("icon-gen_java.png")); - generateButton.setPreferredSize(new Dimension(180, 30)); - generateButton.setEnabled(false); - JPanel buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT)); - buttons.setBorder(TopBorder.create()); - buttons.add(Box.createHorizontalStrut(50)); - buttons.add(generateButton); - add(buttons, BorderLayout.NORTH); - JPanel panel = new JPanel(); this.generationMode = new JComboBox<>(modeNames); this.modeLayout = new CardLayout(); @@ -59,7 +48,7 @@ public class GeneratorTabPanel extends JPanel { generationMode.addItemListener(e -> modeLayout.show(modesPanel, Objects.requireNonNull(generationMode.getSelectedItem()).toString())); // assemble - FormLayout layout = new FormLayout("right:77dlu, 3dlu, fill:300, fill:300dlu:grow", ""); + FormLayout layout = new FormLayout("right:77dlu, 3dlu, fill:240, fill:300dlu:grow", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.setDefaultDialogBorder(); builder.append("Type:", generationMode, 1); @@ -79,8 +68,4 @@ public class GeneratorTabPanel extends JPanel { public JComboBox getGenerationMode() { return generationMode; } - - public JButton getGenerateButton() { - return generateButton; - } } http://git-wip-us.apache.org/repos/asf/cayenne/blob/838b21ab/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/StandardModePanel.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/StandardModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/StandardModePanel.java index 85c2d5f..8412e96 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/StandardModePanel.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/StandardModePanel.java @@ -33,7 +33,7 @@ public class StandardModePanel extends GeneratorControllerPanel { public StandardModePanel(CodeGeneratorControllerBase codeGeneratorControllerBase) { super(Application.getInstance().getFrameController().getProjectController(), codeGeneratorControllerBase); FormLayout layout = new FormLayout( - "right:88dlu, 1dlu, fill:300:grow, 1dlu, left:100dlu, 100dlu", ""); + "right:83dlu, 1dlu, fill:240:grow, 1dlu, left:100dlu, 100dlu", ""); DefaultFormBuilder builder = new DefaultFormBuilder(layout); builder.append("Output Directory:", outputFolder.getComponent(), selectOutputFolder);
