/* * Copyright (c) 2008, 2011 Oracle and/or its affiliates. * All rights reserved. Use is subject to license terms. * * This file is available and licensed under the following license: * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the distribution. * - Neither the name of Oracle Corporation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package at.bestsolution.efxclipse.runtime.examples.fxgraph; import java.util.logging.Level; import java.util.logging.Logger; import at.bestsolution.efxclipse.runtime.examples.fxgraph.model.User; import at.bestsolution.efxclipse.runtime.examples.fxgraph.security.Authenticator; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.fxml.JavaFXBuilderFactory; import javafx.geometry.Orientation; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.SplitPane; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * Main Application. This class handles navigation and user session. */ public class App extends Application { private Stage stage; private User loggedUser; private static App instance; public App() { instance = this; } public static App getInstance() { return instance; } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { try { stage = primaryStage; // gotoLogin(); test(); primaryStage.setWidth(600); primaryStage.setHeight(600); primaryStage.show(); } catch (Exception ex) { Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex); } System.err.println("Start is done"); } private void test() { SplitPane pane = new SplitPane(); pane.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE); StackPane stack1 = new StackPane(); stack1.getChildren().add(new Button("b1")); StackPane stack2 = new StackPane(); stack2.getChildren().add(new Button("b1")); pane.getItems().addAll(stack1, stack2); pane.setDividerPosition(0, 0.5); Scene secene = new Scene(pane, 100, 100); stage.setHeight(600); stage.setWidth(800); stage.setScene(secene); } public User getLoggedUser() { return loggedUser; } public boolean userLogging(String userId, String password){ if (Authenticator.validate(userId, password)) { loggedUser = User.of(userId); gotoProfile(); return true; } else { return false; } } public void userLogout(){ loggedUser = null; gotoLogin(); } private void gotoProfile() { try { replaceSceneContent("profile.fxml"); } catch (Exception ex) { Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex); } } private void gotoLogin() { try { replaceSceneContent("login.fxml"); } catch (Exception ex) { Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex); } } private AnchorPane replaceSceneContent(String fxml) throws Exception { AnchorPane page = (AnchorPane) FXMLLoader.load(App.class.getResource(fxml), null, new JavaFXBuilderFactory()); Scene scene = stage.getScene(); if (scene == null) { scene = new Scene(page); scene.getStylesheets().add(App.class.getResource("demo.css").toExternalForm()); stage.setScene(scene); } else { stage.getScene().setRoot(page); } stage.sizeToScene(); return page; } }