Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-32 b170fcd55 -> dae3e16ed


# IGNITE-32: Implemented renaming.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/dae3e16e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/dae3e16e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/dae3e16e

Branch: refs/heads/ignite-32
Commit: dae3e16ed67feb8b4e823fea0aaf152a5bca4e6c
Parents: b170fcd
Author: AKuznetsov <akuznet...@gridgain.com>
Authored: Thu Jan 29 13:29:42 2015 +0700
Committer: AKuznetsov <akuznet...@gridgain.com>
Committed: Thu Jan 29 13:29:42 2015 +0700

----------------------------------------------------------------------
 .../schema-load/src/main/java/media/style.css   |  16 +++
 .../ignite/schema/model/PojoDescriptor.java     |  28 ++++
 .../org/apache/ignite/schema/ui/Controls.java   |  15 +++
 .../apache/ignite/schema/ui/SchemaLoadApp.java  | 131 ++++++++++++++++---
 4 files changed, 169 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dae3e16e/modules/schema-load/src/main/java/media/style.css
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/style.css 
b/modules/schema-load/src/main/java/media/style.css
index 89959f1..90e1667 100644
--- a/modules/schema-load/src/main/java/media/style.css
+++ b/modules/schema-load/src/main/java/media/style.css
@@ -67,6 +67,22 @@
     -fx-background-color: -fx-box-border, eeeeee;
 }
 
+.titled-pane {
+    -fx-font-size: 14;
+}
+
+.titled-pane:focused {
+    -fx-text-fill: -fx-text-base-color;
+}
+
+.titled-pane:focused > .title {
+    -fx-color: eeeeee;
+}
+
+.titled-pane:focused > .title > .arrow-button .arrow {
+    -fx-background-color: black;
+}
+
 #banner {
    -fx-font-size: 20px;
    -fx-font-weight: bold;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dae3e16e/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
----------------------------------------------------------------------
diff --git 
a/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
 
b/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
index e215dcb..7bcb14a 100644
--- 
a/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
+++ 
b/modules/schema-load/src/main/java/org/apache/ignite/schema/model/PojoDescriptor.java
@@ -176,6 +176,13 @@ public class PojoDescriptor {
     }
 
     /**
+     * @param name New key class name.
+     */
+    public void keyClassName(String name) {
+        keyClsName.set(name);
+    }
+
+    /**
      * @return Value class name.
      */
     public String valueClassName() {
@@ -183,6 +190,13 @@ public class PojoDescriptor {
     }
 
     /**
+     * @param name New value class name.
+     */
+    public void valueClassName(String name) {
+        valClsName.set(name);
+    }
+
+    /**
      * @return Collection of key fields.
      */
     public Collection<PojoField> keyFields() {
@@ -264,6 +278,20 @@ public class PojoDescriptor {
     }
 
     /**
+     * Revert changes to key class name made by user.
+     */
+    public void revertKeyClassName() {
+       keyClsName.set(keyClsNamePrev);
+    }
+
+    /**
+     * Revert changes to value class name made by user.
+     */
+    public void revertValueClassName() {
+        valClsName.set(valClsNamePrev);
+    }
+
+    /**
      * Revert changes to java names made by user.
      */
     public void revertJavaNames() {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dae3e16e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/Controls.java
----------------------------------------------------------------------
diff --git 
a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/Controls.java 
b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/Controls.java
index 5ec47a3..e4f1ef7 100644
--- 
a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/Controls.java
+++ 
b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/Controls.java
@@ -345,6 +345,21 @@ public class Controls {
     }
 
     /**
+     * Create titled pane.
+     *
+     * @param title Title.
+     * @param node Node.
+     * @return New {@code TitledPane} instance.
+     */
+    public static TitledPane titledPane(String title, Node node) {
+        TitledPane tp = new TitledPane(title, node);
+
+        tp.setExpanded(false);
+
+        return tp;
+    }
+
+    /**
      * Create table column.
      *
      * @param colName Column name to display.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dae3e16e/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
----------------------------------------------------------------------
diff --git 
a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
 
b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
index 9d53a06..07467e6 100644
--- 
a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
+++ 
b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java
@@ -87,10 +87,22 @@ public class SchemaLoadApp extends Application {
     /** */
     private BorderPane rootPane;
 
+    /** Header pane. */
+    private BorderPane hdrPane;
+
+    /** */
+    private HBox dbIcon;
+
+    /** */
+    private HBox genIcon;
+
     /** */
     private Label titleLb;
 
     /** */
+    private Label subTitleLb;
+
+    /** */
     private Button prevBtn;
 
     /** */
@@ -273,8 +285,10 @@ public class SchemaLoadApp extends Application {
 
                 unlockUI(connLayerPnl, connPnl, nextBtn);
 
+                hdrPane.setLeft(genIcon);
+
                 titleLb.setText("Generate XML And POJOs");
-                titleLb.setGraphic(imageView("text_tree", 48));
+                subTitleLb.setText(jdbcUrlTf.getText());
 
                 rootPane.setCenter(genLayerPnl);
 
@@ -422,11 +436,16 @@ public class SchemaLoadApp extends Application {
     /**
      * @return Header pane with title label.
      */
-    private Pane createHeaderPane() {
+    private BorderPane createHeaderPane() {
+        dbIcon = hBox(0, true, imageView("data_connection", 48));
+        genIcon = hBox(0, true, imageView("text_tree", 48));
+
         titleLb = label("");
         titleLb.setId("banner");
 
-        BorderPane bp = borderPane(null, hBox(10, true, titleLb), null, null, 
hBox(0, true, imageView("ignite", 48)));
+        subTitleLb = label("");
+
+        BorderPane bp = borderPane(null, vBox(5, titleLb, subTitleLb), null, 
dbIcon, hBox(0, true, imageView("ignite", 48)));
         bp.setId("banner");
 
         return bp;
@@ -470,8 +489,10 @@ public class SchemaLoadApp extends Application {
             "This will discard all your changes."))
             return;
 
+        hdrPane.setLeft(dbIcon);
+
         titleLb.setText("Connect To Database");
-        titleLb.setGraphic(imageView("data_connection", 48));
+        subTitleLb.setText("Specify database connection properties...");
 
         rootPane.setCenter(connLayerPnl);
 
@@ -581,7 +602,8 @@ public class SchemaLoadApp extends Application {
 
         connPnl.wrap();
 
-        ComboBox<String> rdbmsCb = connPnl.addLabeled("DB Server type:", 
comboBox("tt", RDBMS_NAMES), 2);
+        ComboBox<String> rdbmsCb = connPnl.addLabeled("DB Server preset:",
+            comboBox("Select database server to get predefined settings", 
RDBMS_NAMES), 2);
 
         jdbcDrvJarTf = connPnl.addLabeled("Driver JAR:", textField("Path to 
driver jar"));
 
@@ -776,16 +798,12 @@ public class SchemaLoadApp extends Application {
         openFolderCh = genPnl.add(checkBox("Reveal output folder",
             "Open output folder in system file manager after generation 
complete", true), 3);
 
-        genPnl.add(new Separator(), 3);
-
-        GridPaneEx regexPnl = paneEx(0, 0, 0, 0);
+        GridPaneEx regexPnl = paneEx(5, 5, 5, 5);
         regexPnl.addColumn();
         regexPnl.addColumn(100, 100, Double.MAX_VALUE, Priority.ALWAYS);
         regexPnl.addColumn();
         regexPnl.addColumn(100, 100, Double.MAX_VALUE, Priority.ALWAYS);
 
-        regexPnl.add(label("Replace \"Key class name\", \"Value class name\" 
or  \"Java name\" for selected tables:"), 4);
-
         regexTf = regexPnl.addLabeled("  Regexp:", textField("Regular 
expression. For example: (\\w+)"));
 
         replaceTf = regexPnl.addLabeled("  Replace with:", textField("Replace 
text. For example: $1_SomeText"));
@@ -826,11 +844,15 @@ public class SchemaLoadApp extends Application {
                         String replace = replaceTf.getText();
 
                         try {
-//                            fieldsTbl.getSelectionModel().getSelectedItems()
+                            switch 
(replaceCb.getSelectionModel().getSelectedIndex()) {
+                                case 0: renameKeyClassNames(regex, replace);
+                                    break;
+
+                                case 1: renameValueClassNames(regex, replace);
+                                    break;
 
-                            for (PojoDescriptor pojo : selItems)
-                                for (PojoField field : pojo.fields())
-                                    
field.javaName(field.javaName().replaceAll(regex, replace));
+                                default: renameJavaNames(regex, replace);
+                            }
                         }
                         catch (Exception e) {
                             MessageBox.errorDialog(owner, "Failed to rename " 
+ target + "!", e);
@@ -859,8 +881,15 @@ public class SchemaLoadApp extends Application {
                         "Are you sure you want to revert " + target + " for 
all selected " + src + "?"))
                         return;
 
-                    for (PojoDescriptor pojo : selItems)
-                        pojo.revertJavaNames();
+                    switch (replaceCb.getSelectionModel().getSelectedIndex()) {
+                        case 0: revertKeyClassNames();
+                            break;
+
+                        case 1: revertValueClassNames();
+                            break;
+
+                        default: revertJavaNames();
+                    }
                 }
             })
         ), 2).setPadding(new Insets(0, 0, 0, 10));
@@ -872,7 +901,7 @@ public class SchemaLoadApp extends Application {
                     curPojo = newItem;
 
                     fieldsTbl.setItems(curPojo.fields());
-                    fieldsTbl.getSelectionModel().clearAndSelect(0);
+                    fieldsTbl.getSelectionModel().clearSelection();
 
                     keyValPnl.setDisable(false);
                 }
@@ -885,12 +914,71 @@ public class SchemaLoadApp extends Application {
             }
         });
 
-        genPnl.add(regexPnl, 3);
+        genPnl.add(titledPane("Rename \"Key class name\", \"Value class name\" 
or  \"Java name\" for selected tables",
+            regexPnl), 3);
 
         genLayerPnl = stackPane(genPnl);
     }
 
     /**
+     * Rename key class name for selected tables.
+     *
+     * @param regex Regex to search.
+     * @param replace Text for replacement.
+     */
+    private void renameKeyClassNames(String regex, String replace) {
+        for (PojoDescriptor pojo : 
pojosTbl.getSelectionModel().getSelectedItems())
+            pojo.keyClassName(pojo.keyClassName().replaceAll(regex, replace));
+    }
+
+    /**
+     * Rename value class name for selected tables.
+     *
+     * @param regex Regex to search.
+     * @param replace Text for replacement.
+     */
+    private void renameValueClassNames(String regex, String replace) {
+        for (PojoDescriptor pojo : 
pojosTbl.getSelectionModel().getSelectedItems())
+            pojo.valueClassName(pojo.valueClassName().replaceAll(regex, 
replace));
+    }
+
+    /**
+     * Rename fields java name for current or selected tables.
+     *
+     * @param regex Regex to search.
+     * @param replace Text for replacement.
+     */
+    private void renameJavaNames(String regex, String replace) {
+        for (PojoDescriptor pojo : 
pojosTbl.getSelectionModel().getSelectedItems())
+            for (PojoField field : pojo.fields())
+                field.javaName(field.javaName().replaceAll(regex, replace));
+    }
+
+    /**
+     * Revert key class name for selected tables to initial value.
+     */
+    private void revertKeyClassNames() {
+        for (PojoDescriptor pojo : 
pojosTbl.getSelectionModel().getSelectedItems())
+            pojo.revertKeyClassName();
+    }
+
+    /**
+     * Revert value class name for selected tables to initial value.
+     */
+    private void revertValueClassNames() {
+        for (PojoDescriptor pojo : 
pojosTbl.getSelectionModel().getSelectedItems())
+            pojo.revertValueClassName();
+    }
+
+    /**
+     * Revert fields java name for selected or current table to initial value.
+     */
+    private void revertJavaNames() {
+        for (PojoDescriptor pojo : 
pojosTbl.getSelectionModel().getSelectedItems())
+            pojo.revertJavaNames();
+    }
+
+    /**
      * @return Selected tree view items.
      */
     private Collection<PojoDescriptor> selectedItems() {
@@ -921,7 +1009,8 @@ public class SchemaLoadApp extends Application {
 
         createGeneratePane();
 
-        rootPane = borderPane(createHeaderPane(), createConnectionPane(), 
createButtonsPane(), null, null);
+        hdrPane = createHeaderPane();
+        rootPane = borderPane(hdrPane, createConnectionPane(), 
createButtonsPane(), null, null);
 
         primaryStage.setScene(scene(rootPane));
 
@@ -975,8 +1064,8 @@ public class SchemaLoadApp extends Application {
 
         xmlSingleFileCh.setSelected(userPrefs.getBoolean("xml.single", true));
 
-        regexTf.setText(userPrefs.get("naming.pattern", ""));
-        replaceTf.setText(userPrefs.get("naming.replace", ""));
+        regexTf.setText(userPrefs.get("naming.pattern", "(\\w+)"));
+        replaceTf.setText(userPrefs.get("naming.replace", "$1_SomeText"));
 
         primaryStage.show();
     }

Reply via email to