package tk.captainsplexx.JavaFX;
import java.util.concurrent.CountDownLatch;
import antonsmirnov.javafx.dialog.Dialog.Builder;
import javafx.application.Platform;
import javafx.scene.image.Image;
import tk.captainsplexx.JavaFX.Windows.MainWindow;
import tk.captainsplexx.Resource.FileHandler;
public class JavaFXHandler {
MainWindow main;
public static final Image applicationIcon16 = new Image(FileHandler.getStream("res/icon/16.png"));
public static final Image applicationIcon32 = new Image(FileHandler.getStream("res/icon/32.png"));
public static final String imageFolder = "res/images/";
public static final Image textIcon = new Image(FileHandler.getStream(imageFolder+"edit-small-caps.png"));
public static final Image byteIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-b.png"));
public static final Image boolIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-bool.png"));
public static final Image doubleIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-d.png"));
public static final Image floatIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-f.png"));
public static final Image integerIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-i.png"));
public static final Image uintegerIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-i_unsigned.png"));
public static final Image longIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-l.png"));
public static final Image shortIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-s.png"));
public static final Image ushortIcon = new Image(FileHandler.getStream(imageFolder+"document-attribute-s_unsigned.png"));
public static final Image arrayIcon = new Image(FileHandler.getStream(imageFolder+"edit-code.png"));
public static final Image instanceIcon = new Image(FileHandler.getStream(imageFolder+"box.png"));
public static final Image listIcon = new Image(FileHandler.getStream(imageFolder+"wooden-box.png"));
public static final Image hashIcon = new Image(FileHandler.getStream(imageFolder+"hash.png"));
public static final Image rawIcon = new Image(FileHandler.getStream(imageFolder+"block.png"));
public static final Image structureIcon = new Image(FileHandler.getStream(imageFolder+"structure.png"));
public static final Image internalIcon = new Image(FileHandler.getStream(imageFolder+"internal.png"));
public static final Image resourceIcon = new Image(FileHandler.getStream(imageFolder+"resource.png"));
public static final Image imageIcon = new Image(FileHandler.getStream(imageFolder+"image.png"));
public static final Image geometryIcon = new Image(FileHandler.getStream(imageFolder+"xyz.png"));
public static final Image geometry2Icon = new Image(FileHandler.getStream(imageFolder+"xyz2.png"));
public static final Image luaIcon = new Image(FileHandler.getStream(imageFolder+"lua.png"));
public static final Image enumIcon = new Image(FileHandler.getStream(imageFolder+"enum.png"));
public static final Image pencilIcon = new Image(FileHandler.getStream(imageFolder+"pencil.png"));
public static final Image removeIcon = new Image(FileHandler.getStream(imageFolder+"cross.png"));
public static final Image documentIcon = new Image(FileHandler.getStream(imageFolder+"folder-open-document.png"));
public static final Image leftArrowIcon = new Image(FileHandler.getStream(imageFolder+"arrow-000.png"));
public static final Image rightArrowIcon = new Image(FileHandler.getStream(imageFolder+"arrow-180.png"));
public static final Image clipboardPasteIcon = new Image(FileHandler.getStream(imageFolder+"clipboard-paste.png"));
public static final Image asteriskYellow = new Image(FileHandler.getStream(imageFolder+"asterisk-yellow.png"));
public static final Image binocular = new Image(FileHandler.getStream(imageFolder+"binocular.png"));
public static final Image binocular2 = new Image(FileHandler.getStream(imageFolder+"binocular--arrow.png"));
public Builder dialogBuilder;
public JavaFXHandler(){
main = new MainWindow();
main.runApplication();
dialogBuilder = new Builder();
}
public boolean runAndWait(Runnable action) {
if (action == null){
System.err.println("No action given to run on JavaFX Thread.");
return false;
}
if (Platform.isFxApplicationThread()) {
action.run();
return true;
}
final CountDownLatch doneLatch = new CountDownLatch(1);
Platform.runLater(() -> {
try {
action.run();
} finally {
doneLatch.countDown();
}
});
try {
doneLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
return true;
}
public MainWindow getMainWindow() {
return main;
}
public void setMainWindow(MainWindow main){
this.main = main;
}
public Builder getDialogBuilder() {
return dialogBuilder;
}
}