Skip to content

Commit

Permalink
Making the file selection factory use an externally defined main Stage
Browse files Browse the repository at this point in the history
  • Loading branch information
madhephaestus committed Oct 12, 2024
1 parent 86a8f31 commit 3119c89
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -319,9 +319,6 @@ public void open(URI toOpe) {
reporter.uncaughtException(Thread.currentThread(), e);

}
renderSplashFrame(90, "Loading STL Loader");
// Add the engine handeler for STLs
ScriptingEngine.addScriptingLanguage(new StlLoader());
// add a new link provider to the link factory
FirmataLink.addLinkFactory();
// Log.enableInfoPrint();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,80 +6,98 @@
import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import javafx.stage.Stage;

import com.neuronrobotics.bowlerstudio.BowlerStudio;
import com.neuronrobotics.bowlerstudio.BowlerStudioModularFrame;
import com.neuronrobotics.sdk.util.ThreadUtil;


public class FileSelectionFactory {
private static Stage stage = null;

private FileSelectionFactory() {
}
private static class fileHolder{
private boolean done=false;
private File file=null;

private static class fileHolder {
private boolean done = false;
private File file = null;

public boolean isDone() {
return done;
}

public void setDone(boolean done) {
this.done = done;
}

public File getFile() {
return file;
}

public void setFile(File file) {
this.file = file;
}
}

public static File GetFile(File start, boolean save, ExtensionFilter... filter) {
if(start==null)
if (start == null)
throw new NullPointerException();
final fileHolder file=new fileHolder();

final fileHolder file = new fileHolder();
BowlerStudio.runLater(() -> {
FileChooser fileChooser = new FileChooser();
fileChooser.setInitialDirectory(start.isDirectory()?start:start.getParentFile());
if(filter!=null)

fileChooser.setInitialDirectory(start.isDirectory() ? start : start.getParentFile());
if (filter != null)
fileChooser.getExtensionFilters().addAll(filter);
fileChooser.setTitle("Bowler File Chooser");
if(save)
file.setFile(fileChooser.showSaveDialog(BowlerStudioModularFrame.getPrimaryStage()));
if (save)
file.setFile(fileChooser.showSaveDialog(getStage()));
else
file.setFile(fileChooser.showOpenDialog(BowlerStudioModularFrame.getPrimaryStage()));
file.setFile(fileChooser.showOpenDialog(getStage()));
file.setDone(true);

});
while(!file.isDone()){
while (!file.isDone()) {
ThreadUtil.wait(16);
}

return file.getFile();
}

private static Stage getStage() {
if (stage == null)
stage = BowlerStudioModularFrame.getPrimaryStage();
return stage;
}

public static File GetFile(File start, ExtensionFilter... filter) {
return GetFile(start, false,filter);
return GetFile(start, false, filter);
}

public static File GetDirectory(File start) {
if(start==null)
if (start == null)
throw new NullPointerException();
final fileHolder file=new fileHolder();

final fileHolder file = new fileHolder();
BowlerStudio.runLater(() -> {
DirectoryChooser fileChooser = new DirectoryChooser();
fileChooser.setInitialDirectory(start.isDirectory()?start:start.getParentFile());

fileChooser.setInitialDirectory(start.isDirectory() ? start : start.getParentFile());
fileChooser.setTitle("Bowler File Chooser");
file.setFile(fileChooser.showDialog(BowlerStudioModularFrame.getPrimaryStage()));
file.setFile(fileChooser.showDialog(getStage()));
file.setDone(true);

});
while(!file.isDone()){
while (!file.isDone()) {
ThreadUtil.wait(16);
}

return file.getFile();
}

public static void setStage(Stage stage) {
FileSelectionFactory.stage = stage;
}

}

0 comments on commit 3119c89

Please sign in to comment.