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/11/05 13:29:00 UTC

[03/10] cayenne git commit: CAY-2491 Made DB Import View have flexible design. Moved 'Refresh Db Schema' and 'Run Import' buttons to toolbar. Added show/hide advanced options functionality. Add space in DbImport tab label.

CAY-2491 Made DB Import View have flexible design. Moved 'Refresh Db Schema' and 'Run Import' buttons to toolbar. Added show/hide advanced options functionality. Add space in DbImport tab label.


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/438eec9b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/438eec9b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/438eec9b

Branch: refs/heads/master
Commit: 438eec9b9f3f1738bfff843526474e58e1d284c1
Parents: 9854138
Author: kkomyak <co...@gmail.com>
Authored: Mon Oct 29 15:21:49 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Oct 29 15:21:49 2018 +0300

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |  1 +
 .../modeler/editor/DataMapTabbedView.java       |  3 +-
 .../modeler/editor/dbimport/DbImportView.java   | 60 +++++++++++++++-----
 .../dbimport/ReverseEngineeringTreePanel.java   |  1 +
 4 files changed, 50 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index c0c093c..fd08cdc 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -24,6 +24,7 @@ CAY-2481 Support for Object[] as return type in SQLTemplate and SQLExec
 CAY-2485 Compact Slf4j Logger
 CAY-2487 Removed usage of CayenneException.
 CAY-2489 Add validation to the case of not to PK relationships
+CAY-2491 Remaster Db Import View
 
 Bug Fixes:
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
index ed1b6f1..b89b1c2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapTabbedView.java
@@ -24,7 +24,6 @@ import javax.swing.JTabbedPane;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.editor.dbimport.DbImportView;
 
-
 /**
  * Data map editing tabs container
  *
@@ -56,7 +55,7 @@ public class DataMapTabbedView extends JTabbedPane {
         JScrollPane dataMapView = new JScrollPane(new DataMapView(mediator));
         JScrollPane dbImportView = new JScrollPane(new DbImportView(mediator));
         addTab("DataMap", dataMapView);
-        addTab("DbImport", dbImportView);
+        addTab("DB Import", dbImportView);
     }
 }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
index 3f0bb3b..38e3d87 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportView.java
@@ -29,22 +29,29 @@ import org.apache.cayenne.modeler.action.ReverseEngineeringAction;
 import org.apache.cayenne.modeler.dialog.db.load.DbImportTreeNode;
 import org.apache.cayenne.modeler.dialog.db.load.TransferableNode;
 import org.apache.cayenne.modeler.util.CayenneAction;
+import org.apache.cayenne.modeler.util.ModelerUtil;
 
+import javax.swing.AbstractAction;
+import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JPanel;
 import javax.swing.JProgressBar;
 import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
 
 /**
  * @since 4.1
  */
 public class DbImportView extends JPanel {
 
-    private static final String MAIN_LAYOUT = "fill:160dlu, 5dlu, fill:50dlu, 5dlu, fill:160dlu";
-    private static final String HEADER_LAYOUT = "fill:70dlu, 15dlu, fill:75dlu";
+    private static final String MAIN_LAYOUT = "fill:160dlu:grow, 5dlu, fill:50dlu, 5dlu, fill:160dlu:grow";
+    private static final String HEADER_LAYOUT = "fill:80dlu:grow";
     private static final String BUTTON_PANEL_LAYOUT = "fill:50dlu";
     private static final String PROGRESS_PANEL_LAYOUT = "fill:160dlu, 60dlu, fill:160dlu";
     private static final int ALL_LINE_SPAN = 5;
+    private static final ImageIcon rightArrow = ModelerUtil.buildIcon("icon-arrow-closed.png");
+    private static final ImageIcon downArrow = ModelerUtil.buildIcon("icon-arrow-open.png");
 
     private TreeToolbarPanel treeToolbar;
     private ReverseEngineeringTreePanel treePanel;
@@ -104,14 +111,6 @@ public class DbImportView extends JPanel {
 
         DefaultFormBuilder reverseEngineeringHeaderBuilder = new DefaultFormBuilder(headerLayout);
         reverseEngineeringHeaderBuilder.append("Import Configuration");
-        ReverseEngineeringAction reverseEngineeringAction = projectController.getApplication().getActionManager().
-                getAction(ReverseEngineeringAction.class);
-        reverseEngineeringAction.setView(this);
-        CayenneAction.CayenneToolbarButton reverseEngineeringButton = (CayenneAction.CayenneToolbarButton)
-                reverseEngineeringAction.buildButton(0);
-        reverseEngineeringButton.setShowingText(true);
-        reverseEngineeringButton.setText("Run Import");
-        reverseEngineeringHeaderBuilder.append(reverseEngineeringButton);
         builder.append(reverseEngineeringHeaderBuilder.getPanel());
 
         DefaultFormBuilder databaseHeaderBuilder = new DefaultFormBuilder(headerLayout);
@@ -120,12 +119,26 @@ public class DbImportView extends JPanel {
                 getAction(LoadDbSchemaAction.class);
         loadDbSchemaAction.setDraggableTreePanel(draggableTreePanel);
         loadDbSchemaButton = (CayenneAction.CayenneToolbarButton) loadDbSchemaAction.buildButton(0);
-        loadDbSchemaButton.setShowingText(true);
+        loadDbSchemaButton.setShowingText(false);
         loadDbSchemaButton.setText("Refresh DB Schema");
-        databaseHeaderBuilder.append(loadDbSchemaButton);
+        treeToolbar.add(loadDbSchemaButton);
+
+        ReverseEngineeringAction reverseEngineeringAction = projectController.getApplication().getActionManager().
+                getAction(ReverseEngineeringAction.class);
+        reverseEngineeringAction.setView(this);
+        CayenneAction.CayenneToolbarButton reverseEngineeringButton = (CayenneAction.CayenneToolbarButton)
+                reverseEngineeringAction.buildButton(0);
+        reverseEngineeringButton.setShowingText(true);
+        reverseEngineeringButton.setText("Run Import");
+        JPanel reverseEngineeringButtonPanel = new JPanel();
+        reverseEngineeringButtonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
+        reverseEngineeringButtonPanel.add(reverseEngineeringButton);
+        treeToolbar.addSeparator();
+        treeToolbar.add(reverseEngineeringButtonPanel);
 
         builder.append("");
         builder.append(databaseHeaderBuilder.getPanel());
+
         builder.append(treePanel);
         builder.append(buttonBuilder.getPanel());
         builder.append(draggableTreePanel);
@@ -142,11 +155,31 @@ public class DbImportView extends JPanel {
         progressBarBuilder.append(loadDbSchemaProgress);
         builder.append(progressBarBuilder.getPanel(), ALL_LINE_SPAN);
 
+        createAdvancedOptionsHiderPanel(builder);
+
         builder.append(configPanel, ALL_LINE_SPAN);
         this.setLayout(new BorderLayout());
         add(builder.getPanel(), BorderLayout.CENTER);
     }
 
+    private void createAdvancedOptionsHiderPanel(DefaultFormBuilder builder) {
+        JPanel advancedOptionsPanel = new JPanel();
+        advancedOptionsPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
+        JButton hideButton = new JButton("Advanced Options");
+        hideButton.setIcon(configPanel.isVisible() ? downArrow : rightArrow);
+        hideButton.setBorderPainted(false);
+        hideButton.addActionListener(new AbstractAction() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                configPanel.setVisible(!configPanel.isVisible());
+                hideButton.setIcon(configPanel.isVisible() ? downArrow : rightArrow);
+            }
+        });
+        advancedOptionsPanel.add(hideButton);
+
+        builder.append(advancedOptionsPanel, ALL_LINE_SPAN);
+    }
+
     private void initFormElements() {
         DbImportTreeNode root = new DbImportTreeNode(new ReverseEngineering());
         DbImportTreeNode draggableTreeRoot = new DbImportTreeNode(new ReverseEngineering());
@@ -168,13 +201,14 @@ public class DbImportView extends JPanel {
         treeToolbar = new TreeToolbarPanel(projectController, reverseEngineeringTree, draggableTreePanel);
         treePanel = new ReverseEngineeringTreePanel(projectController, reverseEngineeringTree, draggableTree);
         treePanel.setTreeToolbar(treeToolbar);
-
         model.setDbSchemaTree(draggableTree);
         draggableTreeModel.setDbSchemaTree(draggableTree);
         ((ColorTreeRenderer) draggableTreePanel.getSourceTree().getCellRenderer()).
                 setReverseEngineeringTree(reverseEngineeringTree);
 
         configPanel = new ReverseEngineeringConfigPanel(projectController);
+        configPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
+        configPanel.setVisible(false);
     }
 
     public boolean isSkipRelationshipsLoading() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/438eec9b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
index 010e6c1..5f4e081 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
@@ -39,6 +39,7 @@ import org.apache.cayenne.modeler.dialog.db.load.SchemaPopUpMenu;
 
 import javax.swing.JScrollPane;
 import javax.swing.JTree;
+import javax.swing.ScrollPaneLayout;
 import javax.swing.SwingUtilities;
 import javax.swing.tree.DefaultTreeCellRenderer;
 import javax.swing.tree.TreePath;