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(); - } -}