You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/07/27 19:27:40 UTC
[4/7] incubator-ignite git commit: IGNITE-1155 Extract
ignite-schema-import-ui module.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8d71b55/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/Controls.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/Controls.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/Controls.java
deleted file mode 100644
index 6c4d6bd..0000000
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/Controls.java
+++ /dev/null
@@ -1,643 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.schema.ui;
-
-import com.sun.javafx.scene.control.skin.*;
-import javafx.application.*;
-import javafx.beans.value.*;
-import javafx.collections.*;
-import javafx.event.*;
-import javafx.geometry.*;
-import javafx.scene.*;
-import javafx.scene.control.*;
-import javafx.scene.control.cell.*;
-import javafx.scene.image.*;
-import javafx.scene.input.*;
-import javafx.scene.layout.*;
-import javafx.scene.text.*;
-import javafx.util.*;
-import javafx.util.converter.*;
-
-/**
- * Utility class to create controls.
- */
-public class Controls {
- /** */
- public static final Insets DFLT_PADDING = new Insets(10, 10, 10, 10);
-
- /**
- * Create scene with predefined style.
- *
- * @param root The root node of the scene graph.
- * @return New {@code Scene} instance.
- */
- public static Scene scene(Parent root) {
- Scene scene = new Scene(root);
-
- scene.getStylesheets().add("media/style.css");
-
- return scene;
- }
-
- /**
- * Create grid pane with default padding.
- *
- * @param top Top padding
- * @param right Right padding.
- * @param bottom Bottom padding.
- * @param left Left padding.
- * @return New {@code GridPaneEx} instance.
- */
- public static GridPaneEx paneEx(double top, double right, double bottom, double left) {
- GridPaneEx paneEx = new GridPaneEx();
-
- paneEx.setPadding(new Insets(top, right, bottom, left));
-
- return paneEx;
- }
-
- /**
- * Create new {@code HBox} with default padding.
- *
- * @param spacing Amount of horizontal space between each child.
- * @param dfltPadding If {@code true} than set default padding for pane.
- * @return New {@code HBox} instance.
- */
- public static HBox hBox(int spacing, boolean dfltPadding) {
- HBox hb = new HBox(spacing);
-
- if (dfltPadding)
- hb.setPadding(DFLT_PADDING);
-
- return hb;
- }
-
- /**
- * Create new {@code HBox} with default padding and add controls.
- *
- * @param spacing Amount of horizontal space between each child.
- * @param dfltPadding If {@code true} than set default padding for pane.
- * @param controls Controls to add.
- * @return New {@code HBox} instance.
- */
- public static HBox hBox(int spacing, boolean dfltPadding, Node... controls) {
- HBox hb = hBox(spacing, dfltPadding);
-
- hb.getChildren().addAll(controls);
-
- return hb;
- }
-
- /**
- * Create new {@code VBox} with default padding.
- *
- * @param spacing Amount of horizontal space between each child.
- * @return New {@code VBox} instance.
- */
- public static VBox vBox(int spacing) {
- VBox vb = new VBox(spacing);
-
- vb.setPadding(DFLT_PADDING);
-
- return vb;
- }
-
- /**
- * Create new {@code VBox} with default padding and add controls.
- *
- * @param spacing Amount of horizontal space between each child.
- * @param controls Controls to add.
- * @return New {@code VBox} instance.
- */
- public static VBox vBox(int spacing, Node... controls) {
- VBox vb = vBox(spacing);
-
- vb.getChildren().addAll(controls);
-
- return vb;
- }
-
- /**
- * Create stack pane.
- *
- * @param controls Controls to add.
- * @return New {@code StackPane} instance.
- */
- public static StackPane stackPane(Node... controls) {
- StackPane sp = new StackPane();
-
- sp.getChildren().addAll(controls);
-
- return sp;
- }
-
- /**
- * 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;
- }
-
- /**
- * Sets control tooltip if needed.
- *
- * @param ctrl Target control.
- * @param tip Tooltip text.
- * @return Control itself for method chaining.
- */
- public static <T extends Control> T tooltip(T ctrl, String tip) {
- if (!tip.isEmpty())
- ctrl.setTooltip(new Tooltip(tip));
-
- return ctrl;
- }
-
- /**
- * Create label.
- *
- * @param text Label text.
- * @return New {@code Label} instance.
- */
- public static Label label(String text) {
- return new Label(text);
- }
-
- /**
- * Create button with text only.
- *
- * @param text Button text.
- * @param tip Tooltip text.
- * @param onAct Button action.
- * @return New {@code Button} instance.
- */
- public static Button button(String text, String tip, EventHandler<ActionEvent> onAct) {
- Button btn = new Button(text);
-
- btn.setOnAction(onAct);
-
- tooltip(btn, tip);
-
- return btn;
- }
-
- /**
- * 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);
-
- tooltip(btn, tip);
-
- return btn;
- }
-
- /**
- * Create pane with buttons.
- *
- * @param alignment Alignment of buttons.
- * @param dfltPadding If {@code true} than set default padding for pane.
- * @param btns Buttons that will be added to pane.
- * @return New {@code HBox} instance with buttons.
- */
- public static Pane buttonsPane(Pos alignment, boolean dfltPadding, Button... btns) {
- HBox hb = hBox(10, dfltPadding, btns);
-
- hb.setAlignment(alignment);
-
- return hb;
- }
-
- /**
- * Create checkbox.
- *
- * @param text Checkbox text.
- * @param tip Tooltip tex.
- * @param sel Checkbox selected state.
- * @return New {@code Checkbox} instance.
- */
- public static CheckBox checkBox(String text, String tip, boolean sel) {
- CheckBox ch = new CheckBox(text);
-
- ch.setSelected(sel);
-
- tooltip(ch, tip);
-
- return ch;
- }
-
- /**
- * Create text field.
- *
- * @param tip Tooltip text.
- * @return New {@code TextField} instance.
- */
- public static TextField textField(String tip) {
- TextField tf = new TextField();
-
- tooltip(tf, tip);
-
- return tf;
- }
-
- /**
- * Create static text.
- *
- * @param text Text to show.
- * @param wrap Text wrapping width.
- * @return New {@code Text} instance.
- */
- public static Text text(String text, int wrap) {
- Text t = new Text(text);
-
- t.setFont(new Font(14));
-
- if (wrap > 0)
- t.setWrappingWidth(wrap);
-
- return t;
- }
-
- /**
- * Create password field.
- *
- * @param tip Tooltip text.
- * @return New {@code PasswordField} instance.
- */
- public static PasswordField passwordField(String tip) {
- PasswordField pf = new PasswordField();
-
- tooltip(pf, tip);
-
- return pf;
- }
-
- /**
- * Create combo box.
- *
- * @param tip Tooltip text.
- * @param items Combo box items.
- * @return New {@code ComboBox} instance.
- */
- public static <T> ComboBox<T> comboBox(String tip, T... items) {
- ComboBox<T> cb = new ComboBox<>(FXCollections.observableArrayList(items));
-
- cb.setMaxWidth(Double.MAX_VALUE);
- cb.getSelectionModel().select(0);
-
- tooltip(cb, tip);
-
- return cb;
- }
-
- /**
- * Create split pane for provided nodes.
- *
- * @param node1 First node.
- * @param node2 Second node.
- * @param pos Initial divider position.
- * @return New {@code SplitPane} instance.
- */
- public static SplitPane splitPane(Node node1, Node node2, double pos) {
- SplitPane sp = new SplitPane();
-
- sp.setOrientation(Orientation.VERTICAL);
- sp.getItems().addAll(node1, node2);
- sp.setDividerPosition(0, pos);
-
- return sp;
- }
-
- /**
- * 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.
- * @param propName Property name column is bound to.
- * @param tip Column tooltip text.
- * @param minWidth The minimum width column is permitted to be resized to.
- * @param maxWidth The maximum width column is permitted to be resized to.
- * @param editable {@code true} if column is editable.
- * @return New {@code TableColumn} instance.
- */
- private static <S, T> TableColumn<S, T> tableColumn(String colName, String propName, String tip,
- int minWidth, int maxWidth, boolean editable) {
- TableColumn<S, T> col = new TableColumn<>();
-
- col.setGraphic(tooltip(new Label(colName), tip));
-
- col.setSortable(false);
-
- if (minWidth > 0)
- col.setMinWidth(minWidth);
-
- if (maxWidth > 0)
- col.setMaxWidth(maxWidth);
-
- col.setCellValueFactory(new PropertyValueFactory<S, T>(propName));
-
- col.setEditable(editable);
-
- return col;
- }
-
- /**
- * Create table column.
- *
- * @param colName Column name to display.
- * @param propName Property name column is bound to.
- * @param tip Column tooltip text.
- * @return New {@code TableColumn} instance.
- */
- public static <S, T> TableColumn<S, T> tableColumn(String colName, String propName, String tip) {
- return tableColumn(colName, propName, tip, 100, 0, false);
- }
-
- /**
- * Create table column.
- *
- * @param colName Column name to display.
- * @param propName Property name column is bound to.
- * @param tip Column tooltip text.
- * @param cellFactory Custom cell factory.
- * @return New {@code TableColumn} instance.
- */
- public static <S, T> TableColumn<S, T> customColumn(String colName, String propName, String tip,
- Callback<TableColumn<S, T>, TableCell<S, T>> cellFactory) {
- TableColumn<S, T> col = tableColumn(colName, propName, tip, 100, 0, true);
-
- col.setCellFactory(cellFactory);
-
- return col;
- }
-
- /**
- * Create editable boolean table column.
- *
- * @param colName Column name to display.
- * @param propName Property name column is bound to.
- * @param tip Column tooltip text.
- * @return New {@code TableColumn} instance.
- */
- public static <S> TableColumn<S, Boolean> booleanColumn(String colName, String propName, String tip) {
- TableColumn<S, Boolean> col = tableColumn(colName, propName, tip, 50, 50, true);
-
- col.setCellFactory(CheckBoxTableCellEx.<S>cellFactory());
-
- return col;
-
- }
-
- /**
- * Create editable text table column.
- *
- * @param colName Column name to display.
- * @param propName Property name column is bound to.
- * @param tip Column tooltip text.
- * @return New {@code TableColumn} instance.
- */
- public static <S> TableColumn<S, String> textColumn(String colName, String propName, String tip,
- TextColumnValidator<S> validator) {
- TableColumn<S, String> col = tableColumn(colName, propName, tip, 100, 0, true);
-
- col.setCellFactory(TextFieldTableCellEx.cellFactory(validator));
-
- return col;
- }
-
- /**
- * Create table view.
- *
- * @param placeholder Text to show if table model is empty.
- * @param cols Columns to add.
- * @return New {@code TableView} instance.
- */
- public static <S> TableView<S> tableView(String placeholder, TableColumn<S, ?>... cols) {
- TableView<S> tbl = new TableView<>();
-
- tbl.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
- tbl.setEditable(true);
- tbl.setMinHeight(70);
- tbl.setPlaceholder(text(placeholder, 0));
-
- tbl.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
-
- tbl.getColumns().addAll(cols);
-
- return tbl;
- }
-
- /**
- * Create progress indicator.
- *
- * @param sz Indicator diameter.
- * @return New {@code ProgressIndicator} instance.
- */
- public static ProgressIndicator progressIndicator(int sz) {
- ProgressIndicator pi = new ProgressIndicator();
-
- pi.setMaxWidth(sz);
- pi.setMaxHeight(sz);
-
- return pi;
- }
-
- /**
- * Create image view.
- *
- * @param imgFileName Image filename.
- * @return New {@code ImageView} instance.
- */
- public static ImageView imageView(String imgFileName, int sz) {
- return new ImageView(image(imgFileName, sz));
- }
-
- /**
- * Gets image by its filename.
- *
- * @param imgFileName Image filename.
- * @return Loaded image.
- */
- public static Image image(String imgFileName, int sz) {
- return new Image(Controls.class.getClassLoader()
- .getResourceAsStream(String.format("media/%1$s_%2$dx%2$d.png", imgFileName, sz)));
- }
-
- /**
- * Customized checkbox.
- */
- private static class CheckBoxTableCellEx<S> extends CheckBoxTableCell<S, Boolean> {
- /** Creates a ComboBox cell factory for use in TableColumn controls. */
- public static <S> Callback<TableColumn<S, Boolean>, TableCell<S, Boolean>> cellFactory() {
- return new Callback<TableColumn<S, Boolean>, TableCell<S, Boolean>>() {
- @Override public TableCell<S, Boolean> call(TableColumn<S, Boolean> col) {
- return new CheckBoxTableCellEx<>();
- }
- };
- }
-
- /**
- * Default constructor.
- */
- private CheckBoxTableCellEx() {
- setAlignment(Pos.CENTER);
- }
- }
-
- /**
- * Special table text field cell that commit its content on focus lost.
- */
- private static class TextFieldTableCellEx<S> extends TextFieldTableCell<S, String> {
- /** */
- private final TextColumnValidator<S> validator;
- /** */
- private String curTxt = "";
-
- /** Row value. */
- private S rowVal;
-
- /** Create cell factory. */
- public static <S> Callback<TableColumn<S, String>, TableCell<S, String>>
- cellFactory(final TextColumnValidator<S> validator) {
- return new Callback<TableColumn<S, String>, TableCell<S, String>>() {
- @Override public TableCell<S, String> call(TableColumn<S, String> col) {
- return new TextFieldTableCellEx<>(validator);
- }
- };
- }
-
- /**
- * Text field cell constructor.
- *
- * @param validator Input text validator.
- */
- private TextFieldTableCellEx(TextColumnValidator<S> validator) {
- super(new DefaultStringConverter());
-
- this.validator = validator;
- }
-
- /** {@inheritDoc} */
- @Override public void startEdit() {
- String item = getItem();
-
- if (item == null || item.isEmpty())
- return;
-
- super.startEdit();
-
- rowVal = getTableView().getSelectionModel().getSelectedItem();
-
- Node g = getGraphic();
-
- if (g != null) {
- final TextField tf = (TextField)g;
-
- curTxt = tf.getText();
-
- tf.textProperty().addListener(new ChangeListener<String>() {
- @Override public void changed(ObservableValue<? extends String> val, String oldVal, String newVal) {
- curTxt = newVal;
- }
- });
-
- tf.setOnKeyPressed(new EventHandler<KeyEvent>() {
- @Override public void handle(KeyEvent evt) {
- if (KeyCode.ENTER == evt.getCode() || KeyCode.ESCAPE == evt.getCode())
- cancelEdit();
- }
- });
-
- tf.setOnKeyReleased(new EventHandler<KeyEvent>() {
- @Override public void handle(KeyEvent evt) {
- // No-op to overwrite JavaFX implementation.
- }
- });
-
- // Special hack for editable TextFieldTableCell.
- // Cancel edit when focus lost from text field, but do not cancel if focus lost to VirtualFlow.
- tf.focusedProperty().addListener(new ChangeListener<Boolean>() {
- @Override public void changed(ObservableValue<? extends Boolean> val, Boolean oldVal, Boolean newVal) {
- Node fo = getScene().getFocusOwner();
-
- if (!newVal) {
- if (fo instanceof VirtualFlow) {
- if (fo.getParent().getParent() != getTableView())
- cancelEdit();
- }
- else
- cancelEdit();
- }
- }
- });
-
- Platform.runLater(new Runnable() {
- @Override public void run() {
- tf.requestFocus();
- }
- });
- }
- }
-
- /** {@inheritDoc} */
- @Override public void cancelEdit() {
- boolean editing = isEditing();
-
- super.cancelEdit();
-
- if (editing && validator.valid(rowVal, curTxt))
- updateItem(curTxt, false);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8d71b55/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/GridPaneEx.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/GridPaneEx.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/GridPaneEx.java
deleted file mode 100644
index be1aae9..0000000
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/GridPaneEx.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.schema.ui;
-
-import javafx.geometry.*;
-import javafx.scene.*;
-import javafx.scene.control.*;
-import javafx.scene.layout.*;
-
-/**
- * Utility extension of {@code GridPane}.
- */
-public class GridPaneEx extends GridPane {
- /** Current column. */
- private int col;
-
- /** Current row. */
- private int row;
-
- /**
- * Create pane.
- */
- public GridPaneEx() {
- setAlignment(Pos.TOP_LEFT);
- setHgap(5);
- setVgap(10);
- }
-
- /**
- * Add default column.
- */
- public void addColumn() {
- getColumnConstraints().add(new ColumnConstraints());
- }
-
- /**
- * Add column with constraints and horizontal grow priority for the column.
- *
- * @param min Column minimum size.
- * @param pref Column preferred size.
- * @param max Column max size.
- * @param hgrow Column horizontal grow priority.
- */
- public void addColumn(double min, double pref, double max, Priority hgrow) {
- ColumnConstraints cc = new ColumnConstraints(min, pref, max);
-
- cc.setHgrow(hgrow);
-
- getColumnConstraints().add(cc);
- }
-
- /**
- * Add default row.
- */
- public void addRow() {
- getRowConstraints().add(new RowConstraints());
- }
-
- /**
- * Add default rows.
- *
- * @param n Number of rows to add.
- */
- public void addRows(int n) {
- for (int i = 0; i < n; i++)
- addRow();
- }
-
- /**
- * Add row with constraints and vertical grow priority for the row.
- *
- * @param min Row minimum size.
- * @param pref Row preferred size.
- * @param max Row max size.
- * @param vgrow Row vertical grow priority.
- */
- public void addRow(double min, double pref, double max, Priority vgrow) {
- RowConstraints rc = new RowConstraints(min, pref, max);
-
- rc.setVgrow(vgrow);
-
- getRowConstraints().add(rc);
- }
-
- /**
- * Wrap to next row.
- */
- public void wrap() {
- col = 0;
-
- row++;
- }
-
- /**
- * Skip columns.
- *
- * @param span How many columns should be skipped.
- */
- public void skip(int span) {
- add(new Label(""), span);
- }
-
- /**
- * Move to next column.
- */
- private void nextCol(int span) {
- col += span;
-
- if (col >= getColumnConstraints().size())
- wrap();
- }
-
- /**
- * Add control to grid pane.
- *
- * @param ctrl Control to add.
- * @param span How many columns control should take.
- * @return Added control.
- */
- public <T extends Node> T add(T ctrl, int span) {
- add(ctrl, col, row, span, 1);
-
- nextCol(span);
-
- return ctrl;
- }
-
- /**
- * Add control to grid pane.
- *
- * @param ctrl Control to add.
- * @return Added control.
- */
- public <T extends Node> T add(T ctrl) {
- return add(ctrl, 1);
- }
-
- /**
- * Add control with label.
- *
- * @param text Label text.
- * @param ctrl Control to add.
- * @param span How many columns control should take.
- * @return Added control.
- */
- public <T extends Node> T addLabeled(String text, T ctrl, int span) {
- add(new Label(text));
-
- return add(ctrl, span);
- }
-
- /**
- * Add control with label.
- *
- * @param text Label text.
- * @param ctrl Control to add.
- * @return Added control.
- */
- public <T extends Node> T addLabeled(String text, T ctrl) {
- return addLabeled(text, ctrl, 1);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8d71b55/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/MessageBox.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
deleted file mode 100644
index 7daf69f..0000000
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/MessageBox.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.schema.ui;
-
-import javafx.beans.value.*;
-import javafx.event.*;
-import javafx.geometry.*;
-import javafx.scene.control.*;
-import javafx.scene.layout.*;
-import javafx.stage.*;
-
-import java.util.logging.*;
-
-import static org.apache.ignite.schema.ui.Controls.*;
-
-/**
- * Message box functionality.
- */
-public class MessageBox extends ModalDialog {
- /** Logger. */
- private static final Logger log = Logger.getLogger(MessageBox.class.getName());
-
- /** Message box type. */
- private enum MessageType {
- /** Information. */
- INFO,
- /** Warning. */
- WARN,
- /** Error. */
- ERROR,
- /** Confirm. */
- CONFIRM,
- /** Confirm with cancel option. */
- CANCELLABLE_CONFIRM
- }
-
- /** Message box type. */
- public enum Result {
- /** Return value if YES is chosen. */
- YES,
- /** Return value if YES_TO_ALL is chosen. */
- YES_TO_ALL,
- /** Return value if NO is chosen. */
- NO,
- /** Return value if NO_TO_ALL is chosen. */
- NO_TO_ALL,
- /** Return value if CANCEL is chosen. */
- CANCEL
- }
-
- /** Dialog result. */
- private Result res = Result.CANCEL;
-
- /**
- * Create message box.
- *
- * @param owner Owner window.
- * @param type Message box type.
- * @param msg Message to show.
- * @param applyToAll {@code true} if "Apply to all" check box should be displayed.
- */
- private MessageBox(Stage owner, MessageType type, String msg, final boolean applyToAll) {
- super(owner, 480, 180);
-
- String title;
- String iconFile;
-
- switch (type) {
- case WARN:
- title = "Warning";
- iconFile = "sign_warning";
- break;
-
- case ERROR:
- title = "Error";
- iconFile = "error";
- break;
-
- case CONFIRM:
- case CANCELLABLE_CONFIRM:
- title = "Confirmation";
- iconFile = "question";
- break;
-
- default:
- title = "Information";
- iconFile = "information";
- break;
- }
-
- setTitle(title);
- initStyle(StageStyle.UTILITY);
- initModality(Modality.APPLICATION_MODAL);
- initOwner(owner);
- setResizable(false);
-
- GridPaneEx contentPnl = paneEx(10, 10, 0, 10);
-
- contentPnl.addColumn();
- contentPnl.addColumn(100, 100, Double.MAX_VALUE, Priority.ALWAYS);
-
- contentPnl.add(hBox(0, true, imageView(iconFile, 48)));
-
- final TextArea ta = new TextArea(msg);
- ta.setEditable(false);
- ta.setWrapText(true);
- ta.setFocusTraversable(false);
-
- contentPnl.add(ta);
-
- // Workaround for vertical scrollbar.
- if (msg.length() < 100 && msg.split("\r\n|\r|\n").length < 4)
- showingProperty().addListener(new ChangeListener<Boolean>() {
- @Override public void changed(ObservableValue<? extends Boolean> val, Boolean oldVal, Boolean newVal) {
- if (newVal) {
- ScrollBar scrollBar = (ScrollBar)ta.lookup(".scroll-bar:vertical");
-
- if (scrollBar != null)
- scrollBar.setDisable(true);
- }
- }
- });
-
- final CheckBox applyToAllCh = checkBox("Apply to all", "", false);
-
- if (applyToAll) {
- contentPnl.skip(1);
- contentPnl.add(applyToAllCh);
- }
-
- HBox btns = hBox(10, true);
- btns.setAlignment(Pos.CENTER);
-
- if (MessageType.CONFIRM == type || MessageType.CANCELLABLE_CONFIRM == type) {
- res = Result.NO;
-
- btns.getChildren().addAll(
- button("Yes", "Approve the request", new EventHandler<ActionEvent>() {
- @Override public void handle(ActionEvent e) {
- res = applyToAll && applyToAllCh.isSelected() ? Result.YES_TO_ALL : Result.YES;
-
- close();
- }
- }),
- button("No", "Reject the request", new EventHandler<ActionEvent>() {
- @Override public void handle(ActionEvent e) {
- res = applyToAll && applyToAllCh.isSelected() ? Result.NO_TO_ALL : Result.NO;
-
- close();
- }
- }));
-
- if (MessageType.CANCELLABLE_CONFIRM == type)
- btns.getChildren().addAll(
- button("Cancel", "Cancel the request", new EventHandler<ActionEvent>() {
- @Override public void handle(ActionEvent e) {
- res = Result.CANCEL;
-
- close();
- }
- }));
- }
- else
- btns.getChildren().add(button("OK", "Close dialog", new EventHandler<ActionEvent>() {
- @Override public void handle(ActionEvent e) {
- close();
- }
- }));
-
- setScene(scene(borderPane(null, contentPnl, btns, null, null)));
- }
-
- /**
- * Show message in modal dialog.
- *
- * @param owner Owner window.
- * @param type Message box type.
- * @param msg Message to show.
- * @param applyToAll {@code true} if "Apply to all" check box should be displayed.
- * @return Option selected by the user.
- */
- private static Result showDialog(Stage owner, MessageType type, String msg, boolean applyToAll) {
- MessageBox dlg = new MessageBox(owner, type, msg, applyToAll);
-
- dlg.showModal();
-
- return dlg.res;
- }
-
- /**
- * Show confirmation dialog.
- *
- * @param owner Owner window.
- * @param msg Message to show.
- * @return {@code true} If user confirm.
- */
- public static boolean confirmDialog(Stage owner, String msg) {
- return showDialog(owner, MessageType.CONFIRM, msg, false) == Result.YES;
- }
-
- /**
- * Show confirmation dialog.
- *
- * @param owner Owner window.
- * @param msg Message to show.
- * @return User confirmation result.
- */
- public static Result applyToAllChoiceDialog(Stage owner, String msg) {
- return showDialog(owner, MessageType.CANCELLABLE_CONFIRM, msg, true);
- }
-
- /**
- * Show information dialog.
- *
- * @param owner Owner window.
- * @param msg Message to show.
- */
- public static void informationDialog(Stage owner, String msg) {
- showDialog(owner, MessageType.INFO, msg, false);
- }
-
- /**
- * Show warning dialog.
- *
- * @param owner Owner window.
- * @param msg Message to show.
- */
- public static void warningDialog(Stage owner, String msg) {
- showDialog(owner, MessageType.WARN, msg, false);
- }
-
- /**
- * Show error dialog.
- *
- * @param owner Owner window.
- * @param msg Error message to show.
- * @param e Optional exception to show.
- */
- public static void errorDialog(Stage owner, String msg, Throwable e) {
- log.log(Level.SEVERE, msg, e);
-
- String exMsg = e != null ? (e.getMessage() != null ? e.getMessage() : e.getClass().getName()) : null;
-
- showDialog(owner, MessageType.ERROR, exMsg != null ? msg + "\n" + exMsg : msg, false);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e8d71b55/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/ModalDialog.java
----------------------------------------------------------------------
diff --git a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/ModalDialog.java b/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/ModalDialog.java
deleted file mode 100644
index 6d0acb7..0000000
--- a/modules/schema-import/src/main/java/org/apache/ignite/schema/ui/ModalDialog.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.schema.ui;
-
-import javafx.stage.*;
-
-/**
- * Abstract base modal dialog.
- */
-public abstract class ModalDialog extends Stage {
- /** Owner window. */
- protected final Stage owner;
-
- /**
- * @param owner Owner window.
- * @param width Window width.
- * @param height Window height.
- */
- protected ModalDialog(Stage owner, int width, int height) {
- this.owner = owner;
-
- this.setWidth(width);
- this.setHeight(height);
- }
-
- /**
- * Show modal dialog.
- */
- protected void showModal() {
- setX(owner.getX() + owner.getWidth() / 2 - getWidth() / 2);
- setY(owner.getY() + owner.getHeight() / 2 - getHeight() / 2);
-
- showAndWait();
- }
-}