functional/ControlsTests/src/javafx/scene/control/test/ScrollPane/NewScrollPaneApp.java

Print this page




  96         } catch (NumberFormatException ex) {
  97         }
  98 
  99         Utils.launch(NewScrollPaneApp.class, args);
 100     }
 101 
 102     @Override
 103     protected Scene getScene() {
 104         Utils.setTitleToStage(stage, "ScrollPaneTestApp");
 105         return new ScrollPaneScene();
 106     }
 107 
 108     class ScrollPaneScene extends CommonPropertiesScene {
 109 
 110         private PropertiesTable tb;
 111         //ScrollPane to be tested.
 112         private ScrollPane testedScrollPane;
 113 
 114         public ScrollPaneScene() {
 115             super("ScrollPane", 800, 600);
 116 
 117             prepareScene();
 118         }
 119 
 120         @Override
 121         protected final void prepareScene() {
 122             Utils.addBrowser(this);
 123             testedScrollPane = ScrollPaneBuilder.create().id(TESTED_SCROLLPANE_ID).build();

 124             final Node content = setCustomContent(customContentHeight, customContentWidth);
 125 
 126             final ContentMotion cm = new ContentMotion();
 127             testedScrollPane.setContent(content);
 128             cm.applyTransition(content);
 129 
 130             tb = new PropertiesTable(testedScrollPane);
 131             PropertyTablesFactory.explorePropertiesList(testedScrollPane, tb);
 132             SpecialTablePropertiesProvider.provideForControl(testedScrollPane, tb);
 133 
 134             if ((scrollPaneWidth > 0) && (scrollPaneHeight > 0)) {
 135                 testedScrollPane.setPrefViewportWidth(scrollPaneWidth);
 136                 testedScrollPane.setPrefViewportHeight(scrollPaneHeight);
 137             }
 138 
 139             Button changeContentButton = ButtonBuilder.create().id(CHANGE_CONTENT_BUTTON_ID).text("ChangeContent").build();

 140             changeContentButton.setOnAction(new EventHandler<ActionEvent>() {
 141                 public void handle(ActionEvent t) {
 142                     changeContent();
 143                     cm.applyTransition(content);
 144                 }
 145             });
 146 
 147             Button addPrefWidthAndHeightButton = ButtonBuilder.create().id(ADD_SIZE_BUTTON_ID).text("Add pref sizes").build();

 148             addPrefWidthAndHeightButton.setOnAction(new EventHandler<ActionEvent>() {
 149                 public void handle(ActionEvent t) {
 150                     tb.addDoublePropertyLine(testedScrollPane.prefWidthProperty(), -100, 200, 100);
 151                     tb.addDoublePropertyLine(testedScrollPane.prefHeightProperty(), -100, 200, 100);
 152                 }
 153             });
 154 
 155             Button setTextAreaAsContentButton = ButtonBuilder.create().id(CHANGE_CONTENT_TO_RESIZABLE_BUTTON_ID).text("Set blue pane as content").build();

 156             setTextAreaAsContentButton.setOnAction(new EventHandler<ActionEvent>() {
 157                 public void handle(ActionEvent t) {
 158                     setResizableContent();
 159                     Pane pane = (Pane) testedScrollPane.getContent();
 160                     tb.addDoublePropertyLine(pane.prefWidthProperty(), 0, 300, 100);
 161                     tb.addDoublePropertyLine(pane.prefHeightProperty(), 0, 300, 100);
 162                 }
 163             });
 164 
 165             Button setCustomContentButton = ButtonBuilder.create().id(CHANGE_CONTENT_TO_CUSTOM_BUTTON_ID).text("Set custom content").build();

 166             setCustomContentButton.setOnAction(new EventHandler<ActionEvent>() {
 167                 public void handle(ActionEvent t) {
 168                     setCustomContent();
 169                 }
 170             });
 171 
 172             Button buttonStart = ButtonBuilder.create().id(START_MOTION_BUTTON_ID).text("Start motion").build();

 173             buttonStart.setOnAction(new EventHandler<ActionEvent>() {
 174                 public void handle(ActionEvent t) {
 175                     cm.getTimeline().play();
 176                 }
 177             });
 178 
 179             Button rotateButton = ButtonBuilder.create().id(ROTATE_BUTTON_ID).text("Rotate on 30deg").build();

 180             rotateButton.setOnAction(new EventHandler<ActionEvent>() {
 181                 public void handle(ActionEvent t) {
 182                     content.setRotate(content.getRotate() + 30);
 183                 }
 184             });
 185 
 186             Button rotateScrollPaneButton = ButtonBuilder.create().id(ROTATE_SCROLLPANE_BUTTON_ID).text("Rotate scrollpane on 30deg").build();

 187             rotateScrollPaneButton.setOnAction(new EventHandler<ActionEvent>() {
 188                 public void handle(ActionEvent t) {
 189                     testedScrollPane.setRotate(testedScrollPane.getRotate() + 30);
 190                 }
 191             });
 192 
 193             Button increaseScaleButton = ButtonBuilder.create().id(INCREASE_SCALE_BUTTON_ID).text("Increase scale").build();

 194             increaseScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 195                 public void handle(ActionEvent t) {
 196                     content.setScaleX(content.getScaleX() + 0.15);
 197                     content.setScaleY(content.getScaleY() + 0.15);
 198                 }
 199             });
 200 
 201             Button decreaseScaleButton = ButtonBuilder.create().id(DECREASE_SCALE_BUTTON_ID).text("Decrease scale").build();

 202             decreaseScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 203                 public void handle(ActionEvent t) {
 204                     content.setScaleX(content.getScaleX() - 0.15);
 205                     content.setScaleY(content.getScaleY() - 0.15);
 206                 }
 207             });
 208 
 209             Button increaseScrollPaneScaleButton = ButtonBuilder.create().id(INCREASE_SCROLLPANE_SCALE_BUTTON_ID).text("Increase ScrollPane scale").build();

 210             increaseScrollPaneScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 211                 public void handle(ActionEvent t) {
 212                     testedScrollPane.setScaleX(testedScrollPane.getScaleX() + 0.15);
 213                     testedScrollPane.setScaleY(testedScrollPane.getScaleY() + 0.15);
 214                 }
 215             });
 216 
 217             Button decreaseScrollPaneScaleButton = ButtonBuilder.create().id(DECREASE_SCROLLPANE_SCALE_BUTTON_ID).text("Decrease ScrollPane scale").build();

 218             decreaseScrollPaneScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 219                 public void handle(ActionEvent t) {
 220                     testedScrollPane.setScaleX(testedScrollPane.getScaleX() - 0.15);
 221                     testedScrollPane.setScaleY(testedScrollPane.getScaleY() - 0.15);
 222                 }
 223             });
 224 
 225             Button resetButton = ButtonBuilder.create().id(RESET_BUTTON_ID).text("Reset").build();

 226             resetButton.setOnAction(new EventHandler<ActionEvent>() {
 227                 public void handle(ActionEvent t) {
 228                     HBox hb = (HBox) getRoot();
 229                     hb.getChildren().clear();
 230                     prepareMainSceneStructure();
 231                     prepareScene();
 232                 }
 233             });
 234 
 235             setTestedControl(testedScrollPane);
 236 
 237             VBox vb = new VBox();
 238             vb.setSpacing(5);
 239             vb.getChildren().addAll(changeContentButton, setCustomContentButton, setTextAreaAsContentButton,
 240                     buttonStart, rotateButton, rotateScrollPaneButton,
 241                     increaseScrollPaneScaleButton, decreaseScrollPaneScaleButton, getAddGridPaneForm(),
 242                     increaseScaleButton, decreaseScaleButton, resetButton, addPrefWidthAndHeightButton);
 243             setControllersContent(vb);
 244 
 245             setPropertiesContent(tb);
 246         }
 247 
 248         private Node getAddGridPaneForm() {
 249             final TextField dimension = TextFieldBuilder.create().id(GRID_DIMENSION_TEXTFIELD_ID).promptText("int-dimension").maxWidth(50).build();
 250             Button addButton = ButtonBuilder.create().id(ADD_GRID_BUTTON_ID).text("Add grid").build();




 251             addButton.setOnAction(new EventHandler<ActionEvent>() {
 252                 public void handle(ActionEvent t) {
 253                     int c = Integer.parseInt(dimension.getText());
 254 
 255                     GridPane gridPane = new GridPane();
 256                     for (int i = 0; i < c; i++) {
 257                         for (int j = 0; j < c; j++) {
 258                             final String name = "B-" + String.valueOf(i) + "-" + String.valueOf(j);
 259                             gridPane.add(ButtonBuilder.create().text(name).id(name).minHeight(10 * i).minWidth(10 * j).build(), i, j);




 260                         }
 261                     }
 262                     testedScrollPane.setContent(gridPane);
 263                 }
 264             });
 265 
 266             HBox hb = new HBox(5);
 267             hb.getChildren().addAll(dimension, addButton);
 268             return hb;
 269         }
 270 
 271         private void setResizableContent() {
 272             Pane canvas = new Pane();
 273             canvas.setStyle("-fx-background-color: blue;");
 274             testedScrollPane.setContent(canvas);
 275 
 276 
 277             canvas.setPrefHeight(100);
 278             canvas.setPrefWidth(100);
 279         }
 280 
 281         private Group setCustomContent(int height, int width) {
 282             Group g = ComponentsFactory.createCustomContent(height, width);
 283             g.setId(CUSTOM_CONTENT_ID);
 284             testedScrollPane.setContent(g);
 285             return g;
 286         }
 287 
 288         private Group setCustomContent() {
 289             return setCustomContent(200, 200);
 290         }
 291 
 292         private void changeContent() {
 293             VBox vb = new VBox();
 294             Button button = ButtonBuilder.create().id(CONTENT_BUTTON).text("Press me").build();
 295             final TextField tf1 = TextFieldBuilder.create().id(CONTENT_TEXT_FIELD_ID).text("0").build();


 296             button.setOnAction(new EventHandler<ActionEvent>() {
 297                 public void handle(ActionEvent t) {
 298                     tf1.setText(String.valueOf(Integer.parseInt(tf1.getText()) + 1));
 299                 }
 300             });
 301             TextArea tf2 = TextAreaBuilder.create().prefHeight(100).id(CONTENT_TEXT_AREA_ID).build();


 302             for (int i = 0; i < 15; i++) {
 303                 tf2.appendText("text" + i + "\n");
 304             }
 305             Button empty = ButtonBuilder.create().text("This is empty-action button").id(WITHOUT_ACTION_BUTTON).build();

 306 
 307             vb.getChildren().addAll(button, tf1, tf2, empty);
 308             vb.setStyle("-fx-border-color: blue;");
 309 
 310             testedScrollPane.setContent(vb);
 311         }
 312     }
 313 }


  96         } catch (NumberFormatException ex) {
  97         }
  98 
  99         Utils.launch(NewScrollPaneApp.class, args);
 100     }
 101 
 102     @Override
 103     protected Scene getScene() {
 104         Utils.setTitleToStage(stage, "ScrollPaneTestApp");
 105         return new ScrollPaneScene();
 106     }
 107 
 108     class ScrollPaneScene extends CommonPropertiesScene {
 109 
 110         private PropertiesTable tb;
 111         //ScrollPane to be tested.
 112         private ScrollPane testedScrollPane;
 113 
 114         public ScrollPaneScene() {
 115             super("ScrollPane", 800, 600);


 116         }
 117 
 118         @Override
 119         protected final void prepareScene() {
 120             Utils.addBrowser(this);
 121             testedScrollPane = new ScrollPane();
 122             testedScrollPane.setId(TESTED_SCROLLPANE_ID);
 123             final Node content = setCustomContent(customContentHeight, customContentWidth);
 124 
 125             final ContentMotion cm = new ContentMotion();
 126             testedScrollPane.setContent(content);
 127             cm.applyTransition(content);
 128 
 129             tb = new PropertiesTable(testedScrollPane);
 130             PropertyTablesFactory.explorePropertiesList(testedScrollPane, tb);
 131             SpecialTablePropertiesProvider.provideForControl(testedScrollPane, tb);
 132 
 133             if ((scrollPaneWidth > 0) && (scrollPaneHeight > 0)) {
 134                 testedScrollPane.setPrefViewportWidth(scrollPaneWidth);
 135                 testedScrollPane.setPrefViewportHeight(scrollPaneHeight);
 136             }
 137 
 138             Button changeContentButton = new Button("ChangeContent");
 139             changeContentButton.setId(CHANGE_CONTENT_BUTTON_ID);
 140             changeContentButton.setOnAction(new EventHandler<ActionEvent>() {
 141                 public void handle(ActionEvent t) {
 142                     changeContent();
 143                     cm.applyTransition(content);
 144                 }
 145             });
 146 
 147             Button addPrefWidthAndHeightButton = new Button("Add pref sizes");
 148             addPrefWidthAndHeightButton.setId(ADD_SIZE_BUTTON_ID);
 149             addPrefWidthAndHeightButton.setOnAction(new EventHandler<ActionEvent>() {
 150                 public void handle(ActionEvent t) {
 151                     tb.addDoublePropertyLine(testedScrollPane.prefWidthProperty(), -100, 200, 100);
 152                     tb.addDoublePropertyLine(testedScrollPane.prefHeightProperty(), -100, 200, 100);
 153                 }
 154             });
 155 
 156             Button setTextAreaAsContentButton = new Button("Set blue pane as content");
 157             setTextAreaAsContentButton.setId(CHANGE_CONTENT_TO_RESIZABLE_BUTTON_ID);
 158             setTextAreaAsContentButton.setOnAction(new EventHandler<ActionEvent>() {
 159                 public void handle(ActionEvent t) {
 160                     setResizableContent();
 161                     Pane pane = (Pane) testedScrollPane.getContent();
 162                     tb.addDoublePropertyLine(pane.prefWidthProperty(), 0, 300, 100);
 163                     tb.addDoublePropertyLine(pane.prefHeightProperty(), 0, 300, 100);
 164                 }
 165             });
 166 
 167             Button setCustomContentButton = new Button("Set custom content");
 168             setCustomContentButton.setId(CHANGE_CONTENT_TO_CUSTOM_BUTTON_ID);
 169             setCustomContentButton.setOnAction(new EventHandler<ActionEvent>() {
 170                 public void handle(ActionEvent t) {
 171                     setCustomContent();
 172                 }
 173             });
 174 
 175             Button buttonStart = new Button("Start motion");
 176             buttonStart.setId(START_MOTION_BUTTON_ID);
 177             buttonStart.setOnAction(new EventHandler<ActionEvent>() {
 178                 public void handle(ActionEvent t) {
 179                     cm.getTimeline().play();
 180                 }
 181             });
 182 
 183             Button rotateButton = new Button("Rotate on 30deg");
 184             rotateButton.setId(ROTATE_BUTTON_ID);
 185             rotateButton.setOnAction(new EventHandler<ActionEvent>() {
 186                 public void handle(ActionEvent t) {
 187                     content.setRotate(content.getRotate() + 30);
 188                 }
 189             });
 190 
 191             Button rotateScrollPaneButton = new Button("Rotate scrollpane on 30deg");
 192             rotateScrollPaneButton.setId(ROTATE_SCROLLPANE_BUTTON_ID);
 193             rotateScrollPaneButton.setOnAction(new EventHandler<ActionEvent>() {
 194                 public void handle(ActionEvent t) {
 195                     testedScrollPane.setRotate(testedScrollPane.getRotate() + 30);
 196                 }
 197             });
 198 
 199             Button increaseScaleButton = new Button("Increase scale");
 200             increaseScaleButton.setId(INCREASE_SCALE_BUTTON_ID);
 201             increaseScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 202                 public void handle(ActionEvent t) {
 203                     content.setScaleX(content.getScaleX() + 0.15);
 204                     content.setScaleY(content.getScaleY() + 0.15);
 205                 }
 206             });
 207 
 208             Button decreaseScaleButton = new Button("Decrease scale");
 209             decreaseScaleButton.setId(DECREASE_SCALE_BUTTON_ID);
 210             decreaseScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 211                 public void handle(ActionEvent t) {
 212                     content.setScaleX(content.getScaleX() - 0.15);
 213                     content.setScaleY(content.getScaleY() - 0.15);
 214                 }
 215             });
 216 
 217             Button increaseScrollPaneScaleButton = new Button("Increase ScrollPane scale");
 218             increaseScrollPaneScaleButton.setId(INCREASE_SCROLLPANE_SCALE_BUTTON_ID);
 219             increaseScrollPaneScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 220                 public void handle(ActionEvent t) {
 221                     testedScrollPane.setScaleX(testedScrollPane.getScaleX() + 0.15);
 222                     testedScrollPane.setScaleY(testedScrollPane.getScaleY() + 0.15);
 223                 }
 224             });
 225 
 226             Button decreaseScrollPaneScaleButton = new Button("Decrease ScrollPane scale");
 227             decreaseScrollPaneScaleButton.setId(DECREASE_SCROLLPANE_SCALE_BUTTON_ID);
 228             decreaseScrollPaneScaleButton.setOnAction(new EventHandler<ActionEvent>() {
 229                 public void handle(ActionEvent t) {
 230                     testedScrollPane.setScaleX(testedScrollPane.getScaleX() - 0.15);
 231                     testedScrollPane.setScaleY(testedScrollPane.getScaleY() - 0.15);
 232                 }
 233             });
 234 
 235             Button resetButton = new Button("Reset");
 236             resetButton.setId(RESET_BUTTON_ID);
 237             resetButton.setOnAction(new EventHandler<ActionEvent>() {
 238                 public void handle(ActionEvent t) {
 239                     HBox hb = (HBox) getRoot();
 240                     hb.getChildren().clear();
 241                     prepareMainSceneStructure();
 242                     prepareScene();
 243                 }
 244             });
 245 
 246             setTestedControl(testedScrollPane);
 247 
 248             VBox vb = new VBox();
 249             vb.setSpacing(5);
 250             vb.getChildren().addAll(changeContentButton, setCustomContentButton, setTextAreaAsContentButton,
 251                     buttonStart, rotateButton, rotateScrollPaneButton,
 252                     increaseScrollPaneScaleButton, decreaseScrollPaneScaleButton, getAddGridPaneForm(),
 253                     increaseScaleButton, decreaseScaleButton, resetButton, addPrefWidthAndHeightButton);
 254             setControllersContent(vb);
 255 
 256             setPropertiesContent(tb);
 257         }
 258 
 259         private Node getAddGridPaneForm() {
 260             final TextField dimension = new TextField();
 261             dimension.setId(GRID_DIMENSION_TEXTFIELD_ID);
 262             dimension.setPromptText("int-dimension");
 263             dimension.setMaxWidth(50);
 264             Button addButton = new Button("Add grid");
 265             addButton.setId(ADD_GRID_BUTTON_ID);
 266             addButton.setOnAction(new EventHandler<ActionEvent>() {
 267                 public void handle(ActionEvent t) {
 268                     int c = Integer.parseInt(dimension.getText());
 269 
 270                     GridPane gridPane = new GridPane();
 271                     for (int i = 0; i < c; i++) {
 272                         for (int j = 0; j < c; j++) {
 273                             final String name = "B-" + String.valueOf(i) + "-" + String.valueOf(j);
 274                             Button temp = new Button(name);
 275                             temp.setId(name);
 276                             temp.setMinHeight(10 * i);
 277                             temp.setMinWidth(10 * j);
 278                             gridPane.add(temp, i, j);
 279                         }
 280                     }
 281                     testedScrollPane.setContent(gridPane);
 282                 }
 283             });
 284 
 285             HBox hb = new HBox(5);
 286             hb.getChildren().addAll(dimension, addButton);
 287             return hb;
 288         }
 289 
 290         private void setResizableContent() {
 291             Pane canvas = new Pane();
 292             canvas.setStyle("-fx-background-color: blue;");
 293             testedScrollPane.setContent(canvas);
 294 
 295 
 296             canvas.setPrefHeight(100);
 297             canvas.setPrefWidth(100);
 298         }
 299 
 300         private Group setCustomContent(int height, int width) {
 301             Group g = ComponentsFactory.createCustomContent(height, width);
 302             g.setId(CUSTOM_CONTENT_ID);
 303             testedScrollPane.setContent(g);
 304             return g;
 305         }
 306 
 307         private Group setCustomContent() {
 308             return setCustomContent(200, 200);
 309         }
 310 
 311         private void changeContent() {
 312             VBox vb = new VBox();
 313             Button button = new Button("Press me");
 314             button.setId(CONTENT_BUTTON);
 315             final TextField tf1 = new TextField("0");
 316             tf1.setId(CONTENT_TEXT_FIELD_ID);
 317             button.setOnAction(new EventHandler<ActionEvent>() {
 318                 public void handle(ActionEvent t) {
 319                     tf1.setText(String.valueOf(Integer.parseInt(tf1.getText()) + 1));
 320                 }
 321             });
 322             TextArea tf2 = new TextArea();
 323             tf2.setPrefHeight(100);
 324             tf2.setId(CONTENT_TEXT_AREA_ID);
 325             for (int i = 0; i < 15; i++) {
 326                 tf2.appendText("text" + i + "\n");
 327             }
 328             Button empty = new Button("This is empty-action button");
 329             empty.setId(WITHOUT_ACTION_BUTTON);
 330 
 331             vb.getChildren().addAll(button, tf1, tf2, empty);
 332             vb.setStyle("-fx-border-color: blue;");
 333 
 334             testedScrollPane.setContent(vb);
 335         }
 336     }
 337 }