Ejemplo n.º 1
0
  @Override
  public void start(Stage primaryStage) {

    final boolean closable = false;

    final Tab titleTab = new Tab("", new TitlePane());
    titleTab.setStyle(style);
    titleTab.setClosable(closable);

    /** ******** Run Tab ********* */
    final Tab runZonesTab = new Tab("Run Zones", new RunThresholdPane());
    runZonesTab.setClosable(closable);
    final Tab runPacesTab = new Tab("Run Paces", new RunPacesPane());
    runPacesTab.setClosable(closable);
    final Tab runEstimatesTab =
        new Tab("Estimates", new RunEstimatesPane(ModelUtil.newEstimatesModel()));
    runEstimatesTab.setClosable(closable);
    final Tab runVDotTab = new Tab("VDot");
    runVDotTab.setClosable(closable);
    runVDotTab.setDisable(true);
    final TabPane runTabs = new TabPane();
    runTabs.getTabs().addAll(runZonesTab, runPacesTab, runEstimatesTab, runVDotTab);
    final Tab runToolsTab = new Tab("Run Tools", runTabs);
    runToolsTab.setClosable(closable);

    /** ******** Bike Tab ********* */
    final Tab bikeZonesTab = new Tab("Bike Zones", new BikeThresholdPane());
    bikeZonesTab.setClosable(closable);
    final Tab bikePowerTab = new Tab("Power Zones", new BikePowerPane());
    bikePowerTab.setClosable(closable);
    final Tab bikeAerodynamicsTab = new Tab("Aerodynamics", new AerodynamicsPane());
    bikeAerodynamicsTab.setClosable(closable);
    final Tab bikeGearRatioTab = new Tab("Gear Ratio", new GearsPane());
    bikeGearRatioTab.setClosable(closable);
    final Tab bikeTimeSavingsTab = new Tab("Time Savings", new TimeSavingsPane());
    bikeTimeSavingsTab.setClosable(closable);
    final TabPane bikeTabs =
        new TabPane(bikeZonesTab, bikePowerTab, bikeAerodynamicsTab, bikeGearRatioTab);
    final Tab bikeToolsTab = new Tab("Bike Tools", bikeTabs);
    bikeToolsTab.setClosable(false);

    /** ******** Swim Tab ********* */
    final Tab swimCSSTab = new Tab("CSS", new CSSPane(ModelUtil.newCSSMOdel()));
    swimCSSTab.setClosable(closable);
    final Tab swimEstimatesTab =
        new Tab("Estimates", new SwimEstimatesPane(ModelUtil.newEstimatesModel()));
    swimEstimatesTab.setClosable(closable);
    final TabPane swimTabs = new TabPane();
    swimTabs.getTabs().addAll(swimCSSTab, swimEstimatesTab);
    Tab swimToolsTab = new Tab("Swim Tools", swimTabs);
    swimToolsTab.setClosable(false);

    /** ******** Utils Tab ********* */
    final Tab progressionTab =
        new Tab("Progression", new ProgressionPane(ProgressionModel.newInstance()));
    progressionTab.setClosable(false);

    final ContextMenu progressionContextMenu = new ContextMenu();
    progressionContextMenu.setOnShowing(e -> System.out.println("Showing: " + e));
    progressionContextMenu.setOnShown(e -> System.out.println("Shown: " + e));
    MenuItem progressionMenuItem1 = new MenuItem();
    progressionMenuItem1.setText("About");
    progressionMenuItem1.setOnAction(e -> System.out.println("About: " + e));
    MenuItem progressionMenuItem2 = new MenuItem();
    progressionMenuItem2.setText("...");
    progressionMenuItem2.setOnAction(e -> System.out.println(": " + e));
    progressionContextMenu.getItems().addAll(progressionMenuItem1, progressionMenuItem2);
    progressionTab.setContextMenu(progressionContextMenu);

    final Tab scheduleTab = new Tab("Schedule");
    scheduleTab.setClosable(false);
    scheduleTab.setDisable(true);

    final Tab rpeTab = new Tab("RPE", new RPETextPane());
    rpeTab.setClosable(false);

    final Tooltip progressionTooltip = new Tooltip();
    progressionTooltip.setText("Calculates progression times in number of weeks");
    progressionTab.setTooltip(progressionTooltip);
    progressionTooltip.setOnShowing(e -> System.out.println("Progression Tooltip: " + e));
    progressionTooltip.setOnShown(e -> System.out.println("Progression Tooltip: " + e));

    final TabPane utilTabPane = new TabPane(scheduleTab, rpeTab, progressionTab);

    final Tab utilTab = new Tab("Utils", utilTabPane);
    utilTab.setClosable(false);
    final Tooltip utilTooltip = new Tooltip();
    utilTab.setTooltip(utilTooltip);
    utilTooltip.setText("Helpful utilities for workouts");

    /* Create main tab menu */
    TabPane root = new TabPane();
    root.setSide(Side.LEFT);
    root.getTabs().addAll(titleTab, runToolsTab, bikeToolsTab, swimToolsTab, utilTab);

    Scene scene = new Scene(root, 800, 500);
    scene.getStylesheets().add(STYLESHEET_PATH);

    primaryStage.setResizable(false);
    primaryStage.setTitle("Tri App");
    primaryStage.setScene(scene);
    primaryStage.show();
  }