You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/01/08 17:31:40 UTC
[1/3] incubator-ignite git commit: # IGNITE-32 WIP: Added buttons for
fields reordering. Minor UI tweaks.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-32 8626532d7 -> 2238d6fd4
# IGNITE-32 WIP: Added buttons for fields reordering. Minor UI tweaks.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d4ba030c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d4ba030c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d4ba030c
Branch: refs/heads/ignite-32
Commit: d4ba030c7e1a46a9c11c5c01cc51c502a021cf33
Parents: 8626532
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jan 8 21:55:40 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jan 8 21:55:40 2015 +0700
----------------------------------------------------------------------
.../src/main/java/media/navigate_down_24x24.png | Bin 0 -> 861 bytes
.../src/main/java/media/navigate_up_24x24.png | Bin 0 -> 852 bytes
.../schema-load/src/main/java/media/style.css | 4 ++
.../org/apache/ignite/schema/ui/Controls.java | 42 ++++++++++-
.../org/apache/ignite/schema/ui/MessageBox.java | 8 ++-
.../apache/ignite/schema/ui/NamingDialog.java | 10 ++-
.../apache/ignite/schema/ui/SchemaLoadApp.java | 69 ++++++++++++++++---
7 files changed, 117 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/modules/schema-load/src/main/java/media/navigate_down_24x24.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/navigate_down_24x24.png b/modules/schema-load/src/main/java/media/navigate_down_24x24.png
new file mode 100644
index 0000000..a06dc3b
Binary files /dev/null and b/modules/schema-load/src/main/java/media/navigate_down_24x24.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/modules/schema-load/src/main/java/media/navigate_up_24x24.png
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/media/navigate_up_24x24.png b/modules/schema-load/src/main/java/media/navigate_up_24x24.png
new file mode 100644
index 0000000..e2fad4c
Binary files /dev/null and b/modules/schema-load/src/main/java/media/navigate_up_24x24.png differ
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/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 42a7d29..99f3d68 100644
--- a/modules/schema-load/src/main/java/media/style.css
+++ b/modules/schema-load/src/main/java/media/style.css
@@ -47,6 +47,10 @@
-fx-progress-color: gray
}
+.split-pane {
+ -fx-background-color: -fx-box-border, eeeeee;
+}
+
#banner {
-fx-font-size: 20px;
-fx-font-weight: bold;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/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 e785a11..061ffa1 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
@@ -117,7 +117,29 @@ public class Controls {
}
/**
- * Create button.
+ * Create border pane.
+ *
+ * @param top Optional top control.
+ * @param center Optional center control.
+ * @param bottom Optional bottom control.
+ * @param left Optional left control.
+ * @param right Optional right control.
+ * @return New {@code BorderPane} instance.
+ */
+ public static BorderPane borderPane(Node top, Node center, Node bottom, Node left, Node right) {
+ BorderPane bp = new BorderPane();
+
+ bp.setTop(top);
+ bp.setCenter(center);
+ bp.setBottom(bottom);
+ bp.setLeft(left);
+ bp.setRight(right);
+
+ return bp;
+ }
+
+ /**
+ * Create button with text only.
*
* @param text Button text.
* @param onAct Button action.
@@ -132,6 +154,24 @@ public class Controls {
}
/**
+ * Create button with icon only.
+ *
+ * @param icon Button icon.
+ * @param tip Tooltip text.
+ * @param onAct Button action.
+ * @return New {@code Button} instance.
+ */
+ public static Button button(ImageView icon, String tip, EventHandler<ActionEvent> onAct) {
+ Button btn = new Button();
+
+ btn.setGraphic(icon);
+ btn.setOnAction(onAct);
+ btn.setTooltip(new Tooltip(tip));
+
+ return btn;
+ }
+
+ /**
* Create pane with buttons.
*
* @param btns Buttons that will be added to pane.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
index 7696036..cc14783 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
@@ -32,6 +32,9 @@ public class MessageBox extends Stage {
/** Return value if CANCEL is chosen. */
public static final int CANCEL_OPTION = 2;
+ /** Owner window. */
+ private final Stage owner;
+
/** Dialog result. */
private int res = CANCEL_OPTION;
@@ -43,6 +46,8 @@ public class MessageBox extends Stage {
* @param msg Message to show.
*/
private MessageBox(Stage owner, MessageType type, String msg) {
+ this.owner = owner;
+
String title;
String iconFile;
@@ -110,7 +115,8 @@ public class MessageBox extends Stage {
public void showDialog() {
sizeToScene();
- centerOnScreen();
+ setX(owner.getX() + owner.getWidth() / 8);
+ setY(owner.getY() + owner.getHeight() / 4);
showAndWait();
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
index 5434a4e..7b70820 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
@@ -12,12 +12,17 @@ import static org.apache.ignite.schema.ui.Controls.*;
* Dialog with naming custom options.
*/
public class NamingDialog extends Stage {
+ /** Owner window. */
+ private final Stage owner;
+
/**
* Create naming dialog.
*
* @param owner Owner window.
*/
public NamingDialog(Stage owner) {
+ this.owner = owner;
+
setTitle("Custom Naming");
initStyle(StageStyle.UTILITY);
initModality(Modality.APPLICATION_MODAL);
@@ -26,8 +31,6 @@ public class NamingDialog extends Stage {
GridPaneEx pane = paneEx();
- pane.setGridLinesVisible(true);
-
pane.addColumn();
pane.addColumn(200, 200, Double.MAX_VALUE, Priority.ALWAYS);
@@ -55,7 +58,8 @@ public class NamingDialog extends Stage {
public void showDialog() {
sizeToScene();
- centerOnScreen();
+ setX(owner.getX() + owner.getWidth() / 6);
+ setY(owner.getY() + owner.getHeight() / 4);
showAndWait();
}}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d4ba030c/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 f6518f5..5ae7e8e 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
@@ -510,7 +510,7 @@ public class SchemaLoadApp extends Application {
/**
* Create connection pane with controls.
*/
- private void createConnectionPane() {
+ private Pane createConnectionPane() {
connPnl = paneEx();
connPnl.addColumn();
@@ -542,6 +542,8 @@ public class SchemaLoadApp extends Application {
pwdTf = connPnl.addLabeled("Password:", new PasswordField(), 2);
connLayerPnl = stackPane(connPnl);
+
+ return connLayerPnl;
}
/**
@@ -582,6 +584,51 @@ public class SchemaLoadApp extends Application {
tbl.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
tbl.setEditable(true);
+ final Button upBtn = button(imageView("navigate_up", 24), "Move selected column up",
+ new EventHandler<ActionEvent>() {
+ @Override public void handle(ActionEvent evt) {
+ TableView.TableViewSelectionModel<Field> selMdl = tbl.getSelectionModel();
+
+ int selIdx = selMdl.getSelectedIndex();
+
+ if (selIdx > 0) {
+ ObservableList<Field> items = tbl.getItems();
+
+ items.add(selIdx - 1, items.remove(selIdx));
+
+ selMdl.select(selIdx - 1);
+ }
+ }
+ });
+
+ upBtn.setDisable(true);
+
+ final Button downBtn = button(imageView("navigate_down", 24), "Move selected column down",
+ new EventHandler<ActionEvent>() {
+ @Override public void handle(ActionEvent evt) {
+ TableView.TableViewSelectionModel<Field> selMdl = tbl.getSelectionModel();
+
+ int selIdx = selMdl.getSelectedIndex();
+
+ ObservableList<Field> items = tbl.getItems();
+
+ if (selIdx < items.size() - 1) {
+ items.add(selIdx + 1, items.remove(selIdx));
+
+ selMdl.select(selIdx + 1);
+ }
+ }
+ });
+
+ downBtn.setDisable(true);
+
+ tbl.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
+ @Override public void changed(ObservableValue<? extends Number> observable, Number oldVal, Number newVal) {
+ upBtn.setDisable(newVal == null || newVal.intValue() == 0);
+ downBtn.setDisable(newVal == null || newVal.intValue() == tbl.getItems().size() - 1);
+ }
+ });
+
rootItem = new CheckBoxTreeItem<>("Database");
rootItem.setExpanded(true);
@@ -595,16 +642,22 @@ public class SchemaLoadApp extends Application {
/** {@inheritDoc} */
@Override public void changed(ObservableValue<? extends TreeItem<String>> val, TreeItem<String> oldItem,
TreeItem<String> newItem) {
- if (newItem != null && newItem.getParent() != null && newItem.isLeaf())
+ if (newItem != null && newItem.getParent() != null && newItem.isLeaf()) {
tbl.setItems(FXCollections.observableArrayList(
fields.get(newItem.getParent().getValue()).get(newItem.getValue())));
- else
+
+ tbl.getSelectionModel().select(0);
+ }
+ else {
tbl.setItems(noData);
+ upBtn.setDisable(true);
+ downBtn.setDisable(true);
+ }
}
});
- genPnl.add(splitPane(tree, tbl, 0.6), 3);
+ genPnl.add(splitPane(tree, borderPane(null, tbl, null, null, vBox(10, upBtn, downBtn)), 0.6), 3);
pkgTf = genPnl.addLabeled("Package:", textField());
@@ -674,17 +727,11 @@ public class SchemaLoadApp extends Application {
image("ignite", 64),
image("ignite", 128));
- rootPane = new BorderPane();
-
pi = progressIndicator(100);
- createConnectionPane();
-
createGeneratePane();
- rootPane.setTop(createHeaderPane());
- rootPane.setCenter(connLayerPnl);
- rootPane.setBottom(createButtonsPane());
+ rootPane = borderPane(createHeaderPane(), createConnectionPane(), createButtonsPane(), null, null);
primaryStage.setScene(scene(rootPane));
[3/3] incubator-ignite git commit: # IGNITE-32 WIP: Implemented table
fields reordering. Added option to reveal output folder in system file
manager. Minor UI tweaks.
Posted by sb...@apache.org.
# IGNITE-32 WIP: Implemented table fields reordering. Added option to reveal output folder in system file manager. Minor UI tweaks.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2238d6fd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2238d6fd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2238d6fd
Branch: refs/heads/ignite-32
Commit: 2238d6fd4113028109fd41bc45f595cfdd086b2a
Parents: 8103d87
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jan 8 23:31:40 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jan 8 23:31:40 2015 +0700
----------------------------------------------------------------------
.../org/apache/ignite/schema/pojo/PojoCodeGenerator.java | 4 ++--
.../src/main/java/org/apache/ignite/schema/ui/Controls.java | 8 ++++----
.../main/java/org/apache/ignite/schema/ui/MessageBox.java | 3 +--
.../main/java/org/apache/ignite/schema/ui/NamingDialog.java | 3 ++-
.../main/java/org/apache/ignite/schema/ui/SchemaLoadApp.java | 7 ++++---
5 files changed, 13 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2238d6fd/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
index e1b20bb..b98b629 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/pojo/PojoCodeGenerator.java
@@ -59,7 +59,7 @@ public class PojoCodeGenerator {
private static void add3(Collection<String> src, String line) {
src.add(TAB3 + line);
}
-
+
/**
* Generate java class code.
*
@@ -123,7 +123,7 @@ public class PojoCodeGenerator {
Iterator<GridCacheQueryTypeDescriptor> it = descs.iterator();
- while(it.hasNext()) {
+ while (it.hasNext()) {
GridCacheQueryTypeDescriptor desc = it.next();
add2(src, desc.getJavaType().getSimpleName() + " " + desc.getJavaName() + (it.hasNext() ? "," : ""));
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2238d6fd/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 061ffa1..99a60b3 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
@@ -121,9 +121,9 @@ public class Controls {
*
* @param top Optional top control.
* @param center Optional center control.
- * @param bottom Optional bottom control.
- * @param left Optional left control.
- * @param right Optional right control.
+ * @param bottom Optional bottom control.
+ * @param left Optional left control.
+ * @param right Optional right control.
* @return New {@code BorderPane} instance.
*/
public static BorderPane borderPane(Node top, Node center, Node bottom, Node left, Node right) {
@@ -177,7 +177,7 @@ public class Controls {
* @param btns Buttons that will be added to pane.
* @return New {@code HBox} instance with buttons.
*/
- public static Pane buttonsPane(Button ... btns) {
+ public static Pane buttonsPane(Button... btns) {
HBox hb = hBox(10, true, btns);
hb.setAlignment(Pos.BOTTOM_RIGHT);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2238d6fd/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
index cc14783..a6789da 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
@@ -168,7 +168,6 @@ public class MessageBox extends Stage {
showDialog(owner, MessageType.WARN, msg);
}
-
/**
* Show error dialog.
*
@@ -177,6 +176,6 @@ public class MessageBox extends Stage {
* @param e Optional exception to show.
*/
public static void errorDialog(Stage owner, String msg, Throwable e) {
- showDialog(owner, MessageType.ERROR, (e != null && e.getMessage() != null) ? msg + "\n" + e.getMessage() : msg);
+ showDialog(owner, MessageType.ERROR, (e != null && e.getMessage() != null) ? msg + "\n" + e.getMessage() : msg);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2238d6fd/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
----------------------------------------------------------------------
diff --git a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
index 7b70820..e4269ee 100644
--- a/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
+++ b/modules/schema-load/src/main/java/org/apache/ignite/schema/ui/NamingDialog.java
@@ -62,4 +62,5 @@ public class NamingDialog extends Stage {
setY(owner.getY() + owner.getHeight() / 4);
showAndWait();
- }}
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2238d6fd/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 52ac1cb..5547fdf 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
@@ -244,7 +244,7 @@ public class SchemaLoadApp extends Application {
for (Map.Entry<String, Map<String, List<Field>>> schema : fields.entrySet()) {
CheckBoxTreeItem<String> schemaItem = new CheckBoxTreeItem<>(schema.getKey());
- for(String tbl : schema.getValue().keySet())
+ for (String tbl : schema.getValue().keySet())
schemaItem.getChildren().add(new CheckBoxTreeItem<>(tbl));
rootItem.getChildren().add(schemaItem);
@@ -500,7 +500,7 @@ public class SchemaLoadApp extends Application {
try {
URL u = new URL("jar:" + drvJar.toURI() + "!/");
- URLClassLoader ucl = URLClassLoader.newInstance(new URL[] { u });
+ URLClassLoader ucl = URLClassLoader.newInstance(new URL[] {u});
drv = (Driver)Class.forName(drvCls, true, ucl).newInstance();
@@ -855,7 +855,8 @@ public class SchemaLoadApp extends Application {
appCls.getDeclaredMethod("setDockIconImage", Image.class)
.invoke(osxApp, fromFXImage(image("ignite", 128), null));
- } catch (Throwable ignore) {
+ }
+ catch (Throwable ignore) {
// No-op.
}
}
[2/3] incubator-ignite git commit: # IGNITE-32 WIP: Implemented table
fields reordering. Added option to reveal output folder in system file
manager. Minor UI tweaks.
Posted by sb...@apache.org.
# IGNITE-32 WIP: Implemented table fields reordering. Added option to reveal output folder in system file manager. Minor UI tweaks.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8103d876
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8103d876
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8103d876
Branch: refs/heads/ignite-32
Commit: 8103d876170027cd5fa38e5ff6a241580f9e1465
Parents: d4ba030
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jan 8 23:29:20 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jan 8 23:29:20 2015 +0700
----------------------------------------------------------------------
.../apache/ignite/schema/ui/SchemaLoadApp.java | 94 +++++++++++++-------
1 file changed, 61 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8103d876/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 5ae7e8e..52ac1cb 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
@@ -9,9 +9,12 @@ import javafx.concurrent.*;
import javafx.event.*;
import javafx.geometry.*;
import javafx.scene.*;
+import javafx.scene.control.Button;
import javafx.scene.control.*;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
import javafx.scene.control.cell.*;
-import javafx.scene.image.*;
+import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.stage.*;
import javafx.util.*;
@@ -21,11 +24,12 @@ import org.apache.ignite.schema.xml.*;
import org.gridgain.grid.cache.query.*;
import org.gridgain.grid.util.typedef.internal.*;
-import java.awt.Toolkit;
+import java.awt.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;
+import java.util.List;
import java.util.concurrent.*;
import java.util.prefs.*;
@@ -97,6 +101,9 @@ public class SchemaLoadApp extends Application {
private CheckBox dfltNamingCh;
/** */
+ private CheckBox openFolderCh;
+
+ /** */
private Button btnNaming;
/** */
@@ -112,7 +119,10 @@ public class SchemaLoadApp extends Application {
private LinkedHashMap<String, LinkedHashMap<String, GridCacheQueryTypeMetadata>> metas;
/** Map with fields descriptors. */
- private Map<String, Map<String, Collection<Field>>> fields;
+ private Map<String, Map<String, List<Field>>> fields;
+
+ /** Fields collection of currently selected table. */
+ private List<Field> curFields;
/** */
private final ObservableList<Field> noData = FXCollections.emptyObservableList();
@@ -197,7 +207,7 @@ public class SchemaLoadApp extends Application {
LinkedHashMap<String, GridCacheQueryTypeMetadata> tbls = meta.getValue();
- Map<String, Collection<Field>> tblsFields = U.newHashMap(tbls.size());
+ Map<String, List<Field>> tblsFields = U.newHashMap(tbls.size());
fields.put(schema, tblsFields);
@@ -208,7 +218,7 @@ public class SchemaLoadApp extends Application {
Collection<GridCacheQueryTypeDescriptor> vals = type.getValueDescriptors();
- Collection<Field> tblFields = new ArrayList<>(keys.size() + vals.size());
+ List<Field> tblFields = new ArrayList<>(keys.size() + vals.size());
tblsFields.put(type.getTableName(), tblFields);
@@ -231,7 +241,7 @@ public class SchemaLoadApp extends Application {
rootItem.getChildren().clear();
- for (Map.Entry<String, Map<String, Collection<Field>>> schema : fields.entrySet()) {
+ for (Map.Entry<String, Map<String, List<Field>>> schema : fields.entrySet()) {
CheckBoxTreeItem<String> schemaItem = new CheckBoxTreeItem<>(schema.getKey());
for(String tbl : schema.getValue().keySet())
@@ -277,6 +287,12 @@ public class SchemaLoadApp extends Application {
private void generate() {
lockUI(genLayerPnl, genPnl, prevBtn, nextBtn);
+ final String outFolder = outFolderTf.getText();
+
+ final String pkg = pkgTf.getText();
+
+ final File destFolder = new File(outFolder);
+
Task<Void> task = new Task<Void>() {
private void checkEmpty(Collection<GridCacheQueryTypeDescriptor> items,
final TreeItem<String> treeItem, String msg) {
@@ -296,11 +312,6 @@ public class SchemaLoadApp extends Application {
@Override protected Void call() throws Exception {
long started = System.currentTimeMillis();
- String outFolder = outFolderTf.getText();
- String pkg = pkgTf.getText();
-
- File destFolder = new File(outFolder);
-
if (!destFolder.exists() && !destFolder.mkdirs())
throw new IOException("Failed to create output folder: " + destFolder);
@@ -375,6 +386,14 @@ public class SchemaLoadApp extends Application {
unlockUI(genLayerPnl, genPnl, prevBtn, nextBtn);
MessageBox.informationDialog(owner, "Generation complete!");
+
+ if (openFolderCh.isSelected())
+ try {
+ Desktop.getDesktop().open(destFolder);
+ }
+ catch (IOException e) {
+ MessageBox.errorDialog(owner, "Failed to open folder with results.", e);
+ }
}
/** {@inheritDoc} */
@@ -584,7 +603,7 @@ public class SchemaLoadApp extends Application {
tbl.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
tbl.setEditable(true);
- final Button upBtn = button(imageView("navigate_up", 24), "Move selected column up",
+ final Button upBtn = button(imageView("navigate_up", 24), "Move selected row up",
new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent evt) {
TableView.TableViewSelectionModel<Field> selMdl = tbl.getSelectionModel();
@@ -595,6 +614,7 @@ public class SchemaLoadApp extends Application {
ObservableList<Field> items = tbl.getItems();
items.add(selIdx - 1, items.remove(selIdx));
+ curFields.add(selIdx - 1, curFields.remove(selIdx));
selMdl.select(selIdx - 1);
}
@@ -603,7 +623,7 @@ public class SchemaLoadApp extends Application {
upBtn.setDisable(true);
- final Button downBtn = button(imageView("navigate_down", 24), "Move selected column down",
+ final Button downBtn = button(imageView("navigate_down", 24), "Move selected row down",
new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent evt) {
TableView.TableViewSelectionModel<Field> selMdl = tbl.getSelectionModel();
@@ -614,6 +634,7 @@ public class SchemaLoadApp extends Application {
if (selIdx < items.size() - 1) {
items.add(selIdx + 1, items.remove(selIdx));
+ curFields.add(selIdx + 1, curFields.remove(selIdx));
selMdl.select(selIdx + 1);
}
@@ -630,26 +651,24 @@ public class SchemaLoadApp extends Application {
});
rootItem = new CheckBoxTreeItem<>("Database");
- rootItem.setExpanded(true);
tree = new TreeView<>(rootItem);
tree.setShowRoot(false);
-
tree.setCellFactory(CheckBoxTreeCell.<String>forTreeView());
-
tree.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<String>>() {
/** {@inheritDoc} */
@Override public void changed(ObservableValue<? extends TreeItem<String>> val, TreeItem<String> oldItem,
TreeItem<String> newItem) {
if (newItem != null && newItem.getParent() != null && newItem.isLeaf()) {
- tbl.setItems(FXCollections.observableArrayList(
- fields.get(newItem.getParent().getValue()).get(newItem.getValue())));
+ curFields = fields.get(newItem.getParent().getValue()).get(newItem.getValue());
+ tbl.setItems(FXCollections.observableArrayList(curFields));
tbl.getSelectionModel().select(0);
}
else {
tbl.setItems(noData);
+
upBtn.setDisable(true);
downBtn.setDisable(true);
}
@@ -707,6 +726,9 @@ public class SchemaLoadApp extends Application {
genPnl.add(hBox(10, false, dfltNamingCh, btnNaming), 3);
+ openFolderCh = genPnl.add(checkBox("Reveal output folder",
+ "Open output folder in system file manager after generation complete", true));
+
genLayerPnl = stackPane(genPnl);
}
@@ -746,22 +768,26 @@ public class SchemaLoadApp extends Application {
Preferences userPrefs = Preferences.userNodeForPackage(getClass());
// Restore window pos and size.
- double x = userPrefs.getDouble("window.x", 100);
- double y = userPrefs.getDouble("window.y", 100);
- double w = userPrefs.getDouble("window.width", 500);
- double h = userPrefs.getDouble("window.height", 600);
-
- // Ensure that window fit any available screen.
- if (!Screen.getScreensForRectangle(x, y, w, h).isEmpty()) {
- if (x > 0)
- primaryStage.setX(x);
-
- if (y > 0)
- primaryStage.setY(y);
-
- primaryStage.setWidth(w);
- primaryStage.setHeight(h);
+ if (userPrefs.get("window.x", null) != null) {
+ double x = userPrefs.getDouble("window.x", 100);
+ double y = userPrefs.getDouble("window.y", 100);
+ double w = userPrefs.getDouble("window.width", 500);
+ double h = userPrefs.getDouble("window.height", 600);
+
+ // Ensure that window fit any available screen.
+ if (!Screen.getScreensForRectangle(x, y, w, h).isEmpty()) {
+ if (x > 0)
+ primaryStage.setX(x);
+
+ if (y > 0)
+ primaryStage.setY(y);
+
+ primaryStage.setWidth(w);
+ primaryStage.setHeight(h);
+ }
}
+ else
+ primaryStage.centerOnScreen();
String userHome = System.getProperty("user.home").replace('\\', '/');
@@ -773,6 +799,7 @@ public class SchemaLoadApp extends Application {
// Restore generation pane settings.
outFolderTf.setText(userPrefs.get("out.folder", userHome + "/schema-load/out"));
+ openFolderCh.setSelected(userPrefs.getBoolean("out.folder.open", true));
pkgTf.setText(userPrefs.get("pojo.package", "org.apache.ignite"));
pojoIncludeKeysCh.setSelected(userPrefs.getBoolean("pojo.include", true));
pojoConstructorCh.setSelected(userPrefs.getBoolean("pojo.constructor", false));
@@ -801,6 +828,7 @@ public class SchemaLoadApp extends Application {
// Save generation pane settings.
userPrefs.put("out.folder", outFolderTf.getText());
+ userPrefs.putBoolean("out.folder.open", openFolderCh.isSelected());
userPrefs.put("pojo.package", pkgTf.getText());
userPrefs.putBoolean("pojo.include", pojoIncludeKeysCh.isSelected());
userPrefs.putBoolean("pojo.constructor", pojoConstructorCh.isSelected());