use of javafx.scene.control.ScrollPane in project latexdraw by arnobl.
the class TestLaTeXDraw method testMoveViewPort.
@Test
public void testMoveViewPort(final FxRobot robot) {
Platform.runLater(() -> {
try {
app.getMainStage().showAndWait();
} catch (final IllegalStateException ignored) {
// Already visible
}
});
WaitForAsyncUtils.waitForFxEvents();
final ScrollPane pane = robot.lookup("#scrollPane").query();
final double hvalue = pane.getHvalue();
final double vvalue = pane.getVvalue();
robot.drag("#canvas", MouseButton.MIDDLE).dropBy(100d, 200d);
WaitForAsyncUtils.waitForFxEvents();
assertThat(hvalue).isGreaterThan(pane.getHvalue());
assertThat(vvalue).isGreaterThan(pane.getVvalue());
}
use of javafx.scene.control.ScrollPane in project Gargoyle by callakrsos.
the class ComponentClassifier method recursive.
/**
*
* @param node
* @return
*/
List<Node> recursive(Node node) {
List<Node> controls = new ArrayList<>();
if (node == null) {
return controls;
}
if (node instanceof Control) {
Control c = (Control) node;
DefaultProperty annotation = c.getClass().getAnnotation(DefaultProperty.class);
if (annotation != null) {
String value = annotation.value();
try {
Object invoke = getMethod(c, value + "Property");
if (ReadOnlyProperty.class.isAssignableFrom(invoke.getClass())) {
ReadOnlyProperty prop = (ReadOnlyProperty) invoke;
Node bean2 = (Node) prop.getBean();
if (bean2 == null) {
return controls;
}
System.out.println("컨트롤 : " + bean2);
controls.add((Control) bean2);
} else {
System.out.println("컨트롤 : " + c);
controls.add(c);
}
} catch (Exception e) {
ObservableList<Node> childrenUnmodifiable = c.getChildrenUnmodifiable();
ObservableList<Node> collect = childrenUnmodifiable.stream().flatMap(new Function<Node, Stream<Node>>() {
@Override
public Stream<Node> apply(Node t) {
return recursive(t).stream();
}
}).collect(FXCollections::observableArrayList, (collections, item) -> collections.add(item), (collections, item) -> collections.addAll(item));
controls.addAll(collect);
}
} else /*
* if (node instanceof ScrollPane || node instanceof TabPane) { //
* scrollpane, TabPane은 컨트롤요소에 추가하지않음. // controls.add(c);
* ObservableList<Control> recursive = recursive(((ScrollPane)
* node).getContent()); controls.addAll(recursive); }
*/
{
controls.add(c);
ObservableList<Node> childrenUnmodifiable = c.getChildrenUnmodifiable();
ObservableList<Node> collect = childrenUnmodifiable.stream().flatMap(new Function<Node, Stream<Node>>() {
@Override
public Stream<Node> apply(Node t) {
return recursive(t).stream();
}
}).collect(FXCollections::observableArrayList, (collections, item) -> collections.add(item), (collections, item) -> collections.addAll(item));
controls.addAll(collect);
/* 개선 */
// childrenUnmodifiable.forEach(n -> {
// ObservableList<Node> recursive = recursive(n);
// controls.addAll(recursive);
// });
}
return controls;
} else if (node instanceof Parent) {
Parent p = (Parent) node;
// ObservableList<Node> collect =
// childrenUnmodifiable.stream().map(n->this).collect(FXCollections::observableArrayList,
// (collections, item) -> collections.add(item), (collections, item)
// -> collections.addAll(item));
// controls.addAll(collect);
ObservableList<Node> childrenUnmodifiable = p.getChildrenUnmodifiable();
// childrenUnmodifiable.forEach(n -> {
// ObservableList<Node> recursive = recursive(n);
// controls.addAll(recursive);
// });
ObservableList<Node> collect = childrenUnmodifiable.stream().flatMap(new Function<Node, Stream<Node>>() {
@Override
public Stream<Node> apply(Node t) {
return recursive(t).stream();
}
}).collect(FXCollections::observableArrayList, (collections, item) -> collections.add(item), (collections, item) -> collections.addAll(item));
controls.addAll(collect);
} else {
System.err.println("her.! : " + node);
}
return controls;
}
use of javafx.scene.control.ScrollPane in project Gargoyle by callakrsos.
the class ComponentClassifier method start.
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(SystemLayoutViewController.class.getResource("VoEditorView.fxml"));
try {
Node node = loader.load();
// {
//
// ObservableList<Node> recursive = recursive(node);
// print(recursive);
//
// }
// {
// Group group = new Group();
//
// // Text는 Shape클래스의 하위클래스
// group.getChildren().add(new Text());
// group.getChildren().add(new Button());
// group.getChildren().add(new Button());
// group.getChildren().add(new Label());
// ObservableList<Node> recursive = recursive(group);
// print(recursive);
//
// }
// {
// ScrollPane scrollPane = new ScrollPane();
// ScrollPane scrollPane2 = new ScrollPane();
// scrollPane2.setContent(new TextArea());
// scrollPane.setContent(new BorderPane(scrollPane2));
// ObservableList<Node> recursive = recursive(scrollPane);
// print(recursive);
// }
{
BorderPane borderPane = new BorderPane();
ScrollPane scrollPane2 = new ScrollPane();
scrollPane2.setContent(new TextArea());
borderPane.setTop(new HBox(new Button(), new Button(), new HTMLEditor()));
borderPane.setCenter(new BorderPane(scrollPane2));
FxControlTreeView tv = new FxControlTreeView(borderPane);
tv.setOnMouseClicked(event -> {
System.out.println(tv.getSelectionModel().getSelectedItem());
});
Scene scene = new Scene(tv);
primaryStage.setScene(scene);
primaryStage.show();
// List<Node> recursive = recursive(borderPane);
// print(recursive);
}
//
// Scene scene = new Scene((Parent) node);
// primaryStage.setScene(scene);
// primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
use of javafx.scene.control.ScrollPane in project Gargoyle by callakrsos.
the class HtmlEditorExam method start.
@Override
public void start(Stage stage) {
stage.setTitle("HTMLEditor Sample");
stage.setWidth(500);
stage.setHeight(500);
Scene scene = new Scene(new Group());
VBox root = new VBox();
root.setPadding(new Insets(8, 8, 8, 8));
root.setSpacing(5);
root.setAlignment(Pos.BOTTOM_LEFT);
final HTMLEditor htmlEditor = new HTMLEditor();
htmlEditor.setPrefHeight(245);
htmlEditor.setHtmlText(INITIAL_TEXT);
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
ScrollPane scrollPane = new ScrollPane();
scrollPane.getStyleClass().add("noborder-scroll-pane");
scrollPane.setStyle("-fx-background-color: white");
scrollPane.setContent(browser);
scrollPane.setFitToWidth(true);
scrollPane.setPrefHeight(180);
Button showHTMLButton = new Button("Load Content in Browser");
root.setAlignment(Pos.CENTER);
showHTMLButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
webEngine.loadContent(htmlEditor.getHtmlText());
}
});
root.getChildren().addAll(htmlEditor, showHTMLButton, scrollPane);
scene.setRoot(root);
stage.setScene(scene);
stage.show();
}
use of javafx.scene.control.ScrollPane in project Gargoyle by callakrsos.
the class FxControlsTreeViewExam method getTestNod.
Node getTestNod() {
/* [시작] 분석하고자하는 UI구조 */
BorderPane borderPane = new BorderPane();
ScrollPane scrollPane2 = new ScrollPane();
scrollPane2.setContent(new TextArea());
borderPane.setTop(new HBox(new Button(), new Button(), new HTMLEditor()));
borderPane.setCenter(new BorderPane(scrollPane2));
/* [끝] 분석하고자하는 UI구조 */
return borderPane;
}
Aggregations