/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dockfx;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.effect.Reflection;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import javax.swing.JFileChooser;
/**
*
* @author paul
*/
public class DockFX extends Application {
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
stage.setTitle("Hello World!");
Group root = new Group();
final ImageView dock = new ImageView(new Image("images/dock1.png"));
dock.setTranslateX(100);
dock.setTranslateY(200);
dock.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent arg0) {
if (arg0.getButton() == MouseButton.PRIMARY) {
dock.setImage(new Image("images/dock1.png"));
} else {
dock.setImage(new Image("images/dock2.png"));
}
}
});
root.getChildren().add(dock);
final String[] images = { "Browser-32.png", "Internet-32.png",
"Search-32.png", "Mail-32.png", "User-32.png" };
HBox box = new HBox(20);
for (int i = 0; i < images.length; i++) {
BouncingIcon icon = new BouncingIcon(
new Image("icons/" + images[i]));
icon.setEffect(new Reflection());
box.getChildren().add(icon);
final String action = images[i].split("-")[0].toLowerCase();
icon.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
mouseClicked(action);
}
});
}
box.setTranslateX(150);
box.setTranslateY(220);
root.getChildren().add(box);
stage.setScene(new Scene(root, 550, 300));
stage.show();
}
public void mouseClicked(String action) {
switch (action) {
case "user":
try {
// open user home
// System.out.println(System.getenv().keySet().toString());
System.out.println("HOME = " + System.getenv("HOME"));
Desktop.getDesktop().open(new File(System.getenv("HOME")));
} catch (IOException ex) {
// No implementation for your OS
// fallback
JFileChooser chooser = new JFileChooser(new File(
System.getenv("HOME")));
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
System.out.println(selectedFile.getAbsolutePath());
// do something with selectedFile
}
}
break;
case "internet":
try {
Desktop.getDesktop().browse(
new URI("http://www.google.com"));
} catch (Exception ex) {
}
break;
}
}
}