Search in sources :

Example 1 with NavScene

use of edu.csus.yaam.client.gui.nav.NavScene in project S4T1TM2 by CSUS-CSC-131-Spring2018.

the class YaamDemo method constructActionBar.

private void constructActionBar() {
    actionBar = new Pane();
    content.getChildren().addAll(actionBar);
    actionBar.setId("actionBar");
    actionBar.layoutXProperty().bind(brandName.widthProperty());
    actionBar.layoutYProperty().bind(DoubleConstant.valueOf(0));
    actionBar.prefWidthProperty().bind(content.widthProperty().subtract(brandName.widthProperty()));
    actionBar.prefHeightProperty().bind(brandName.heightProperty().divide(2));
    for (NavScene navScene : NavScene.scenes(SettingsScene.class, LogOut.class)) {
        // create holder pane
        Pane pane = new Pane();
        pane.setOnMouseClicked(event -> {
            update(navScene.getNode());
            pathTree.setRoot(new TreeItem<>(navScene.name()));
            pathTree.getSelectionModel().select(pathTree.getRoot());
        });
        // pane.setBackground(new Background(new BackgroundFill(Color.GREEN, null,null)));
        pane.prefHeightProperty().bind(actionBar.heightProperty());
        if (navScene.rightAlign()) {
            pane.layoutXProperty().bind(actionBar.widthProperty().subtract(pane.widthProperty()).subtract(1));
        } else {
            pane.layoutXProperty().bind(DoubleConstant.valueOf(1));
        }
        // pane.layoutYProperty().bind(actionBar.heightProperty().subtract(pane.heightProperty()).divide(2));
        pane.getStyleClass().add("action");
        // add icon
        FontAwesomeIconView fontAwesomeIconView = new FontAwesomeIconView(navScene.icon());
        fontAwesomeIconView.getStyleClass().add("text");
        Pane iconPane = new StackPane(fontAwesomeIconView);
        // add text
        Text text = new Text(navScene.name());
        text.getStyleClass().add("text");
        text.setFont(Font.font(12));
        Pane textPane = new StackPane(text);
        iconPane.layoutYProperty().bind(pane.heightProperty().subtract(iconPane.heightProperty()).divide(2).subtract(1));
        iconPane.layoutXProperty().bind(DoubleConstant.valueOf(8));
        textPane.layoutXProperty().bind(iconPane.layoutXProperty().add(iconPane.widthProperty()).add(5));
        textPane.layoutYProperty().bind(pane.heightProperty().subtract(textPane.heightProperty()).divide(2));
        // add to pane
        pane.getChildren().addAll(iconPane, textPane);
        pane.prefWidthProperty().bind(textPane.layoutXProperty().add(textPane.widthProperty()).add(8));
        // wrap pane into a rippler
        // JFXRippler rippler = new JFXRippler(pane);
        // rippler.minWidthProperty().bind(pane.widthProperty());
        // rippler.maxWidthProperty().bind(pane.widthProperty());
        // rippler.prefWidthProperty().bind(pane.widthProperty());
        // rippler.prefHeightProperty().bind(pane.heightProperty());
        actionBar.getChildren().add(pane);
    }
}
Also used : Text(javafx.scene.text.Text) FontAwesomeIconView(de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView) StackPane(javafx.scene.layout.StackPane) ScrollPane(javafx.scene.control.ScrollPane) Pane(javafx.scene.layout.Pane) NavScene(edu.csus.yaam.client.gui.nav.NavScene) StackPane(javafx.scene.layout.StackPane)

Example 2 with NavScene

use of edu.csus.yaam.client.gui.nav.NavScene in project S4T1TM2 by CSUS-CSC-131-Spring2018.

the class YaamDemo method constructSidebar.

private void constructSidebar() {
    // sidebar
    sidebar = new Pane();
    content.getChildren().addAll(sidebar);
    sidebar.setId("sidebar");
    sidebar.layoutXProperty().bind(DoubleConstant.valueOf(0));
    sidebar.layoutYProperty().bind(brandName.heightProperty());
    sidebar.prefWidthProperty().bind(brandName.widthProperty());
    sidebar.prefHeightProperty().bind(content.heightProperty().subtract(brandName.heightProperty()));
    // projects
    ObservableValue<? extends Number> x = DoubleConstant.valueOf(0);
    for (NavScene navScene : NavScene.scenes(DashboardScene.class, ProjectsScene.class)) {
        Pane pane = new Pane();
        // 
        pane.getStyleClass().add("test");
        // pane.getStyleClass().addAll("selected");
        FontAwesomeIconView fontAwesomeIconView = new FontAwesomeIconView(navScene.icon());
        fontAwesomeIconView.getStyleClass().add("text");
        Pane pane1 = new StackPane(fontAwesomeIconView);
        Text test1 = new Text(navScene.name());
        test1.getStyleClass().add("text");
        Pane test = new StackPane(test1);
        pane1.layoutYProperty().bind(pane.heightProperty().subtract(pane1.heightProperty()).divide(2));
        pane1.layoutXProperty().bind(DoubleConstant.valueOf(20));
        test.layoutXProperty().bind(pane1.layoutXProperty().add(pane1.widthProperty()).add(10));
        test.layoutYProperty().bind(pane.heightProperty().subtract(test.heightProperty()).divide(2));
        pane.getChildren().addAll(pane1, test);
        JFXRippler rippler = new JFXRippler(pane);
        rippler.getStyleClass().add("test");
        rippler.setMaskType(JFXRippler.RipplerMask.RECT);
        rippler.minWidthProperty().bind(sidebar.widthProperty());
        rippler.maxWidthProperty().bind(sidebar.widthProperty());
        rippler.prefWidthProperty().bind(sidebar.widthProperty());
        rippler.prefHeightProperty().bind(DoubleConstant.valueOf(40));
        rippler.layoutYProperty().bind(x);
        x = rippler.layoutYProperty().add(rippler.heightProperty());
        rippler.setOnMouseClicked(event -> {
            update(navScene.getNode());
            pathTree.setRoot(new TreeItem<>(navScene.name()));
            pathTree.getSelectionModel().select(pathTree.getRoot());
            for (Node node : sidebar.getChildren()) {
                ((Parent) node).getChildrenUnmodifiable().get(0).getStyleClass().remove("selected");
            }
            pane.getStyleClass().addAll("selected");
        });
        sidebar.getChildren().add(rippler);
    }
}
Also used : JFXRippler(com.jfoenix.controls.JFXRippler) Node(javafx.scene.Node) Text(javafx.scene.text.Text) FontAwesomeIconView(de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView) StackPane(javafx.scene.layout.StackPane) ScrollPane(javafx.scene.control.ScrollPane) Pane(javafx.scene.layout.Pane) NavScene(edu.csus.yaam.client.gui.nav.NavScene) StackPane(javafx.scene.layout.StackPane)

Aggregations

FontAwesomeIconView (de.jensd.fx.glyphs.fontawesome.FontAwesomeIconView)2 NavScene (edu.csus.yaam.client.gui.nav.NavScene)2 ScrollPane (javafx.scene.control.ScrollPane)2 Pane (javafx.scene.layout.Pane)2 StackPane (javafx.scene.layout.StackPane)2 Text (javafx.scene.text.Text)2 JFXRippler (com.jfoenix.controls.JFXRippler)1 Node (javafx.scene.Node)1