/**
* Copyright 2013 (C) Mr LoNee - (Laurent NICOLAS) - www.mrlonee.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
package com.mrlonee.radialfx.globalmenu;
import java.awt.Dimension;
import java.awt.Toolkit;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.HBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.stage.WindowEvent;
import com.mrlonee.radialfx.demoutil.DemoUtil;
public class RadialGlobalMenuDemo extends Application {
public static void main(final String[] args) {
launch(args);
}
private Group container;
private RadialGlobalMenu radialMenu;
private boolean visible = false;
@Override
public void start(final Stage primaryStage) throws Exception {
container = new Group();
final Scene scene = new Scene(container, Color.TRANSPARENT);
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(final WindowEvent event) {
System.exit(0);
}
});
primaryStage.initStyle(StageStyle.TRANSPARENT);
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.centerOnScreen();
final Dimension screenSize = Toolkit.getDefaultToolkit()
.getScreenSize();
primaryStage.setWidth(screenSize.getWidth());
primaryStage.setHeight(screenSize.getHeight());
primaryStage.toFront();
radialMenu = new RadialGlobalMenu();
radialMenu.addMenuItem("resources/icons/gemicon/PNG/64x64/row 1/13.png", null);
radialMenu.addMenuItem("resources/icons/gemicon/PNG/64x64/row 1/6.png", null);
radialMenu.addMenuItem("resources/icons/gemicon/PNG/64x64/row 4/6.png", null);
radialMenu.addMenuItem("resources/icons/gemicon/PNG/64x64/row 4/3.png", null);
radialMenu.addMenuItem("resources/icons/gemicon/PNG/64x64/row 6/14.png", null);
radialMenu.addMenuItem("resources/icons/gemicon/PNG/64x64/row 7/7.png", null);
radialMenu.translateXProperty().bind(scene.widthProperty().divide(2.0));
radialMenu.translateYProperty()
.bind(scene.heightProperty().divide(2.0));
radialMenu.widthProperty().bind(scene.widthProperty());
radialMenu.heightProperty().bind(scene.heightProperty());
radialMenu.setVisible(visible);
final DemoUtil demoUtil = new DemoUtil();
// demoUtil.addRadiusControl("Inner Radius", radialMenu.innerRadiusProperty());
// demoUtil.addRadiusControl("Radius", radialMenu.radiusProperty());
// demoUtil.addRadiusControl("Offset", radialMenu.offsetProperty());
// demoUtil.addColorControl("Background", item.backgroundFillProperty());
// demoUtil.addColorControl("BackgroundMouseOn",
// item.backgroundMouseOnFillProperty());
// demoUtil.addColorControl("Stroke", item.strokeFillProperty());
// demoUtil.addColorControl("StrokeMouseOn",
// item.strokeMouseOnFillProperty());
// demoUtil.addBooleanControl("BackgroundVisible",
// item.backgroundVisibleProperty());
// demoUtil.addBooleanControl("StrokeVisible",
// item.strokeVisibleProperty());
// demoUtil.addGraphicControl("Graphic",
// item.graphicProperty());
final ToggleButton showHideButton = new ToggleButton("Toggle display");
showHideButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent event) {
if (visible) {
setRadialMenuVisible(false);
} else {
setRadialMenuVisible(true);
}
visible = !visible;
}
});
showHideButton.setTranslateX(20);
showHideButton.setTranslateY(20);
final ToggleButton exitButton = new ToggleButton("Exit");
exitButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(final ActionEvent event) {
System.exit(0);
}
});
exitButton.setTranslateX(50);
exitButton.setTranslateY(20);
final HBox box = new HBox();
box.getChildren().addAll(showHideButton, exitButton);
demoUtil.setTranslateX(100);
demoUtil.setTranslateY(300);
container.getChildren().addAll(radialMenu, demoUtil, box);
primaryStage.show();
}
private void setRadialMenuVisible(final boolean visible) {
radialMenu.transitionVisible(visible);
}
}