< prev index next >

functional/ControlsTests/src/javafx/scrollEvent/ScrollEventApp.java

Print this page




  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package javafx.scrollEvent;
  26 
  27 import java.util.HashMap;
  28 import javafx.beans.value.ChangeListener;
  29 import javafx.beans.value.ObservableValue;
  30 import javafx.event.ActionEvent;
  31 import javafx.event.EventHandler;
  32 import javafx.factory.ControlsFactory;
  33 import javafx.factory.NodeFactory;
  34 import javafx.factory.Panes;
  35 import javafx.factory.Shapes;
  36 import javafx.geometry.Pos;
  37 import javafx.scene.Node;
  38 import javafx.scene.Parent;
  39 import javafx.scene.Scene;
  40 import javafx.scene.control.Button;
  41 import javafx.scene.control.ButtonBuilder;
  42 import javafx.scene.control.CheckBox;
  43 import javafx.scene.control.ChoiceBox;

  44 import javafx.scene.control.ContextMenu;


  45 import javafx.scene.control.Label;
  46 import javafx.scene.control.MenuItem;
  47 import javafx.scene.control.TextField;
  48 import javafx.scene.control.TextFieldBuilder;
  49 import javafx.scene.input.ContextMenuEvent;
  50 import javafx.scene.input.ScrollEvent;
  51 import javafx.scene.layout.FlowPane;
  52 import javafx.scene.layout.HBox;
  53 import javafx.scene.layout.VBox;
  54 import javafx.stage.WindowEvent;
  55 import test.javaclient.shared.InteroperabilityApp;
  56 import test.javaclient.shared.Utils;
  57 import static org.junit.Assert.*;
  58 
  59 /**
  60  *
  61  * @author andrey
  62  * @author Alexander Kirov
  63  */
  64 public class ScrollEventApp extends InteroperabilityApp {
  65 
  66     public static final String ID_NODE_CHOOSER = "nodeChooser";
  67     public static final String ID_TARGET_NODE = "target";
  68     public static final String EVENT_COME_INDICATOR_TEXT_FIELD_ID = "EVENT_COME_INDICATOR_TEXT_FIELD_ID";


  79 
  80     private static String LISTENER_TEXT_FIELD_SUFFIX = "_LISTENER_TEXT_FIELD_ID";
  81 
  82     public static void main(String[] args) {
  83         Utils.launch(ScrollEventApp.class, args);
  84     }
  85 
  86     public static String getContextMenuOnShownCounterID() {
  87         return getListenerTextFieldID(Options.contextMenuOnShown.toString());
  88     }
  89 
  90     @Override
  91     protected Scene getScene() {
  92         Scene scene = new Scene(getContent(), 700, 300);
  93         return scene;
  94     }
  95 
  96     private Node createNodeChooser() {
  97         VBox vb = new VBox(5);
  98         Label scrollEventCame = new Label("Scroll event came : ");
  99         final TextField eventComeIndicator = TextFieldBuilder.create().text("None").id(EVENT_COME_INDICATOR_TEXT_FIELD_ID).build();

 100         HBox hb = new HBox();
 101         hb.getChildren().addAll(scrollEventCame, eventComeIndicator);
 102 
 103         Button resetButton = ButtonBuilder.create().text("Reset").id(RESET_BUTTON_ID).build();

 104         resetButton.setOnAction(new EventHandler<ActionEvent>() {
 105 
 106             public void handle(ActionEvent t) {
 107                 eventComeIndicator.setText("None");
 108                 clearListenersState();
 109             }
 110         });
 111 
 112         ChoiceBox<NodeFactory> cb = new ChoiceBox<NodeFactory>();
 113         cb.setId(ID_NODE_CHOOSER);
 114         cb.getItems().addAll(ControlsFactory.filteredValues());
 115         cb.getItems().addAll(Shapes.values());
 116         cb.getItems().addAll(Panes.values());
 117 
 118         cb.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<NodeFactory>() {
 119 
 120             @Override
 121             public void changed(ObservableValue<? extends NodeFactory> ov, NodeFactory t, NodeFactory t1) {
 122                 final Node node = t1.createNode();
 123 
 124                 if (!enableContextMenuTest.isSelected()) {
 125                     node.setOnScroll(new EventHandler<ScrollEvent>() {
 126 
 127                         public void handle(ScrollEvent t) {
 128                             eventComeIndicator.setText(COME_EVENT_INDICATION);
 129 
 130                             renewListenerValue("deltaX", t.getDeltaX());
 131                             renewListenerValue("deltaY", t.getDeltaY());
 132                             renewListenerValue("textDeltaX", t.getTextDeltaX());
 133                             renewListenerValue("textDeltaY", t.getTextDeltaY());
 134                             renewListenerValue("textDeltaXUnits", t.getTextDeltaXUnits());
 135                             renewListenerValue("textDeltaYUnits", t.getTextDeltaYUnits());
 136                             renewListenerValue("eventType", t.getEventType());
 137                             renewListenerValue("consumed", t.isConsumed());
 138                             renewListenerValue("x", t.getX());
 139                             renewListenerValue("y", t.getY());
 140                         }
 141                     });
 142                 } else {
 143                     node.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {
 144                         public void handle(ContextMenuEvent t) {
 145                             renewListenerValue("eventType", t.getEventType());
 146                             renewListenerValue("consumed", t.isConsumed());
 147                             renewListenerValue("x", t.getX());
 148                             renewListenerValue("y", t.getY());
 149                             getContextMenu().show(node, t.getScreenX(), t.getScreenY());
 150                             t.consume();
 151                         }
 152                     });











 153                 }
 154 
 155                 node.setId(ID_TARGET_NODE);
 156                 spaceForNode.getChildren().clear();
 157                 spaceForNode.getChildren().add(node);
 158 






 159                 clearListenersState();
 160             }
 161         });
 162 
 163         vb.getChildren().addAll(new Label("Choose tested control : "), cb, resetButton, hb);
 164         return vb;
 165     }
 166 
 167     private Parent getContent() {
 168         hm = new HashMap<String, TextField>();
 169 
 170         spaceForNode = new VBox();
 171         spaceForNode.setAlignment(Pos.CENTER);
 172         spaceForNode.setPrefWidth(300);
 173         spaceForNode.setPrefHeight(300);
 174 
 175         spaceForListeners = new FlowPane();
 176         spaceForListeners.setPrefHeight(300);
 177         spaceForListeners.setPrefWidth(300);
 178         for (Options s : Options.values()) {
 179             spaceForListeners.getChildren().add(getListener(s.toString()));
 180         }
 181 
 182         enableContextMenuTest = new CheckBox("Context menu test");
 183         enableContextMenuTest.setId(ENABLE_CONTEXT_MENU_CHECK_BOX_ID);
 184 
 185         VBox controls = new VBox();
 186         controls.setAlignment(Pos.CENTER);
 187         controls.getChildren().add(enableContextMenuTest);
 188         controls.getChildren().add(createNodeChooser());
 189 
 190         HBox hBox = new HBox();
 191         hBox.setAlignment(Pos.CENTER);
 192         hBox.getChildren().addAll(spaceForNode, spaceForListeners, controls);
 193         return hBox;
 194     }
 195 
 196     private HBox getListener(String name) {
 197         HBox hb = new HBox();
 198         Label label = new Label(name + " : ");
 199         TextField tf = TextFieldBuilder.create().id(getListenerTextFieldID(name)).build();

 200         hm.put(name, tf);
 201 
 202         hb.getChildren().addAll(label, tf);
 203         return hb;
 204     }
 205 
 206     private void renewListenerValue(String name, Object newValue) {
 207         TextField tf = hm.get(name);
 208         if (tf != null) {
 209             tf.setText(newValue.toString());
 210         }
 211     }
 212 
 213     private void clearListenersState() {
 214         for (TextField tf : hm.values()) {
 215             tf.setText("");
 216         }
 217     }
 218 
 219     private void initContextMenu() {




  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package javafx.scrollEvent;
  26 
  27 import java.util.HashMap;
  28 import javafx.beans.value.ChangeListener;
  29 import javafx.beans.value.ObservableValue;
  30 import javafx.event.ActionEvent;
  31 import javafx.event.EventHandler;
  32 import javafx.factory.ControlsFactory;
  33 import javafx.factory.NodeFactory;
  34 import javafx.factory.Panes;
  35 import javafx.factory.Shapes;
  36 import javafx.geometry.Pos;
  37 import javafx.scene.Node;
  38 import javafx.scene.Parent;
  39 import javafx.scene.Scene;
  40 import javafx.scene.control.Button;

  41 import javafx.scene.control.CheckBox;
  42 import javafx.scene.control.ChoiceBox;
  43 import javafx.scene.control.ComboBox;
  44 import javafx.scene.control.ContextMenu;
  45 import javafx.scene.control.Control;
  46 import javafx.scene.control.DatePicker;
  47 import javafx.scene.control.Label;
  48 import javafx.scene.control.MenuItem;
  49 import javafx.scene.control.TextField;

  50 import javafx.scene.input.ContextMenuEvent;
  51 import javafx.scene.input.ScrollEvent;
  52 import javafx.scene.layout.FlowPane;
  53 import javafx.scene.layout.HBox;
  54 import javafx.scene.layout.VBox;
  55 import javafx.stage.WindowEvent;
  56 import test.javaclient.shared.InteroperabilityApp;
  57 import test.javaclient.shared.Utils;
  58 import static org.junit.Assert.*;
  59 
  60 /**
  61  *
  62  * @author andrey
  63  * @author Alexander Kirov
  64  */
  65 public class ScrollEventApp extends InteroperabilityApp {
  66 
  67     public static final String ID_NODE_CHOOSER = "nodeChooser";
  68     public static final String ID_TARGET_NODE = "target";
  69     public static final String EVENT_COME_INDICATOR_TEXT_FIELD_ID = "EVENT_COME_INDICATOR_TEXT_FIELD_ID";


  80 
  81     private static String LISTENER_TEXT_FIELD_SUFFIX = "_LISTENER_TEXT_FIELD_ID";
  82 
  83     public static void main(String[] args) {
  84         Utils.launch(ScrollEventApp.class, args);
  85     }
  86 
  87     public static String getContextMenuOnShownCounterID() {
  88         return getListenerTextFieldID(Options.contextMenuOnShown.toString());
  89     }
  90 
  91     @Override
  92     protected Scene getScene() {
  93         Scene scene = new Scene(getContent(), 700, 300);
  94         return scene;
  95     }
  96 
  97     private Node createNodeChooser() {
  98         VBox vb = new VBox(5);
  99         Label scrollEventCame = new Label("Scroll event came : ");
 100         final TextField eventComeIndicator = new TextField("None");
 101         eventComeIndicator.setId(EVENT_COME_INDICATOR_TEXT_FIELD_ID);
 102         HBox hb = new HBox();
 103         hb.getChildren().addAll(scrollEventCame, eventComeIndicator);
 104 
 105         Button resetButton = new Button("Reset");
 106         resetButton.setId(RESET_BUTTON_ID);
 107         resetButton.setOnAction(new EventHandler<ActionEvent>() {

 108             public void handle(ActionEvent t) {
 109                 eventComeIndicator.setText("None");
 110                 clearListenersState();
 111             }
 112         });
 113 
 114         ChoiceBox<NodeFactory> cb = new ChoiceBox<NodeFactory>();
 115         cb.setId(ID_NODE_CHOOSER);
 116         cb.getItems().addAll(ControlsFactory.filteredValues());
 117         cb.getItems().addAll(Shapes.values());
 118         cb.getItems().addAll(Panes.values());
 119 
 120         cb.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<NodeFactory>() {
 121 
 122             @Override
 123             public void changed(ObservableValue<? extends NodeFactory> ov, NodeFactory t, NodeFactory t1) {
 124                 final Node node = t1.createNode();
 125 
 126                 if (!enableContextMenuTest.isSelected()) {
 127                     node.setOnScroll(new EventHandler<ScrollEvent>() {
 128 
 129                         public void handle(ScrollEvent t) {
 130                             eventComeIndicator.setText(COME_EVENT_INDICATION);
 131 
 132                             renewListenerValue("deltaX", t.getDeltaX());
 133                             renewListenerValue("deltaY", t.getDeltaY());
 134                             renewListenerValue("textDeltaX", t.getTextDeltaX());
 135                             renewListenerValue("textDeltaY", t.getTextDeltaY());
 136                             renewListenerValue("textDeltaXUnits", t.getTextDeltaXUnits());
 137                             renewListenerValue("textDeltaYUnits", t.getTextDeltaYUnits());
 138                             renewListenerValue("eventType", t.getEventType());
 139                             renewListenerValue("consumed", t.isConsumed());
 140                             renewListenerValue("x", t.getX());
 141                             renewListenerValue("y", t.getY());
 142                         }
 143                     });
 144                 } else {
 145                     EventHandler<ContextMenuEvent> handler = new EventHandler<ContextMenuEvent>() {
 146                         public void handle(ContextMenuEvent t) {
 147                             renewListenerValue("eventType", t.getEventType());
 148                             renewListenerValue("consumed", t.isConsumed());
 149                             renewListenerValue("x", t.getX());
 150                             renewListenerValue("y", t.getY());
 151                             getContextMenu().show(node, t.getScreenX(), t.getScreenY());
 152                             t.consume();
 153                         }
 154                     };
 155                     node.setOnContextMenuRequested(handler);
 156                     TextField editor = null;
 157                     if (node instanceof DatePicker) {
 158                         editor = ((DatePicker)node).getEditor();
 159                     }
 160                     if (node instanceof ComboBox) {
 161                         editor = ((ComboBox)node).getEditor();
 162                     }
 163                     if (editor != null) {
 164                         editor.setOnContextMenuRequested(handler);
 165                     }
 166                 }
 167 
 168                 node.setId(ID_TARGET_NODE);
 169                 spaceForNode.getChildren().clear();
 170                 spaceForNode.getChildren().add(node);
 171                 node.setPickOnBounds(true);
 172                 if (node instanceof Control) {
 173                     ((Control)node).setPrefWidth(200);
 174                     ((Control)node).setPrefHeight(200);
 175                     ((Control)node).setMinWidth(200);
 176                     ((Control)node).setMinHeight(200);
 177                 }
 178                 clearListenersState();
 179             }
 180         });
 181 
 182         vb.getChildren().addAll(new Label("Choose tested control : "), cb, resetButton, hb);
 183         return vb;
 184     }
 185 
 186     private Parent getContent() {
 187         hm = new HashMap<String, TextField>();
 188 
 189         spaceForNode = new VBox();
 190         spaceForNode.setAlignment(Pos.CENTER);
 191         spaceForNode.setPrefWidth(300);
 192         spaceForNode.setPrefHeight(300);
 193 
 194         spaceForListeners = new FlowPane();
 195         spaceForListeners.setPrefHeight(300);
 196         spaceForListeners.setPrefWidth(300);
 197         for (Options s : Options.values()) {
 198             spaceForListeners.getChildren().add(getListener(s.toString()));
 199         }
 200 
 201         enableContextMenuTest = new CheckBox("Context menu test");
 202         enableContextMenuTest.setId(ENABLE_CONTEXT_MENU_CHECK_BOX_ID);
 203 
 204         VBox controls = new VBox();
 205         controls.setAlignment(Pos.CENTER);
 206         controls.getChildren().add(enableContextMenuTest);
 207         controls.getChildren().add(createNodeChooser());
 208 
 209         HBox hBox = new HBox();
 210         hBox.setAlignment(Pos.CENTER);
 211         hBox.getChildren().addAll(spaceForNode, spaceForListeners, controls);
 212         return hBox;
 213     }
 214 
 215     private HBox getListener(String name) {
 216         HBox hb = new HBox();
 217         Label label = new Label(name + " : ");
 218         TextField tf = new TextField();
 219         tf.setId(getListenerTextFieldID(name));
 220         hm.put(name, tf);
 221 
 222         hb.getChildren().addAll(label, tf);
 223         return hb;
 224     }
 225 
 226     private void renewListenerValue(String name, Object newValue) {
 227         TextField tf = hm.get(name);
 228         if (tf != null) {
 229             tf.setText(newValue.toString());
 230         }
 231     }
 232 
 233     private void clearListenersState() {
 234         for (TextField tf : hm.values()) {
 235             tf.setText("");
 236         }
 237     }
 238 
 239     private void initContextMenu() {


< prev index next >