Skip to content
Snippets Groups Projects
Commit b573254e authored by Jan Kožusznik's avatar Jan Kožusznik
Browse files

Refactoring UI elements

parent 71275839
Branches
Tags
No related merge requests found
......@@ -2,6 +2,7 @@ package cz.it4i.fiji.haas.ui;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Window;
import java.io.IOException;
import java.net.URL;
import java.util.function.Consumer;
......@@ -14,12 +15,18 @@ import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class FXFrame<C> extends JDialog {
public class FXFrame<C extends FXFrame.Controller> extends JDialog {
public interface Controller {
void init(Window frame);
}
private static final long serialVersionUID = 1L;
private JFXPanel fxPanel;
private String fxmlFile;
private Consumer<C> controlerInit;
private C controller;
public FXFrame(String fxmlFile) {
this(null, fxmlFile);
......@@ -50,6 +57,10 @@ public class FXFrame<C> extends JDialog {
}
protected C getController() {
return controller;
}
private void initFX(JFXPanel fxPanel) {
// Init the root layout
try {
......@@ -59,9 +70,9 @@ public class FXFrame<C> extends JDialog {
Parent rootLayout = (Parent) loader.load();
// Get the controller and add an ImageJ context to it.
C controller = loader.<C>getController();
controller = loader.<C>getController();
controlerInit.accept(controller);
controller.init(this);
// Show the scene containing the root layout.
Scene scene = new Scene(rootLayout);
this.fxPanel.setScene(scene);
......
......@@ -9,6 +9,7 @@ import org.scijava.log.LogService;
import org.scijava.plugin.Parameter;
import cz.it4i.fiji.haas.JobManager.JobInfo;
import cz.it4i.fiji.haas.ui.FXFrame;
import cz.it4i.fiji.haas.ui.ModalDialogs;
import cz.it4i.fiji.haas.ui.ObservableValueAdapter;
import cz.it4i.fiji.haas.ui.ProgressDialog;
......@@ -22,7 +23,7 @@ import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.input.ContextMenuEvent;
public class CheckStatusOfHaaSController {
public class CheckStatusOfHaaSController implements FXFrame.Controller{
@Parameter
private LogService logService;
......
......@@ -16,8 +16,6 @@ public class CheckStatusOfHaaSWindow extends FXFrame<CheckStatusOfHaaSController
@Parameter
private Context context;
private CheckStatusOfHaaSController controller;
public CheckStatusOfHaaSWindow(Frame applicationFrame, Context context) {
super(applicationFrame, "/cz/it4i/fiji/haas_snakemake_spim/ui/CheckStatusOfHaaS.fxml");
this.context = context;
......@@ -30,15 +28,13 @@ public class CheckStatusOfHaaSWindow extends FXFrame<CheckStatusOfHaaSController
Platform.runLater(new Runnable() {
@Override
public void run() {
controller.addJob(job);
getController().addJob(job);
}
});
}
private void initController(CheckStatusOfHaaSController controller) {
this.controller = controller;
context.inject(controller);
controller.init(this);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment