Toolbox.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package mdd.client;
  2. import javafx.geometry.Pos;
  3. import javafx.scene.control.Accordion;
  4. import javafx.scene.control.Label;
  5. import javafx.scene.control.ScrollPane;
  6. import javafx.scene.control.TitledPane;
  7. import javafx.scene.input.ClipboardContent;
  8. import javafx.scene.input.Dragboard;
  9. import javafx.scene.input.MouseEvent;
  10. import javafx.scene.input.TransferMode;
  11. import javafx.scene.layout.GridPane;
  12. import org.json.simple.JSONArray;
  13. import org.json.simple.JSONObject;
  14. public class Toolbox extends ScrollPane implements IGUIEventClient{
  15. private GUIEventHandler _eventhandler;
  16. private GridPane gridpane_modules = new GridPane();
  17. private GridPane gridpane_processors = new GridPane();
  18. public Toolbox(){
  19. super();
  20. _eventhandler = GUIEventHandler.getEventHandler(0);
  21. _eventhandler.addEventListener(this);
  22. Accordion accordion = new Accordion();
  23. GridPane grid = new GridPane();
  24. grid.setAlignment(Pos.CENTER);
  25. grid.setHgap(10);
  26. grid.setVgap(10);
  27. TitledPane pane1 = new TitledPane("Modules", gridpane_modules);
  28. TitledPane pane2 = new TitledPane("Processors", gridpane_processors);
  29. accordion.getPanes().add(pane1);
  30. accordion.getPanes().add(pane2);
  31. JSONObject json = new JSONObject();
  32. JSONObject jargs = new JSONObject();
  33. jargs.put("module", "all");
  34. jargs.put("processor", "all");
  35. json.put("operation", "state");
  36. json.put("args", jargs);
  37. _eventhandler.publishEvent("get", json);
  38. setContent(accordion);
  39. setFitToWidth(true);
  40. }
  41. @Override
  42. public void close() throws Exception {
  43. _eventhandler.removeEventListener(this);
  44. }
  45. @Override
  46. public void processGUIEvent(String event, JSONObject args) {
  47. if (event.equals("receive")){
  48. if (!args.containsKey("operation")){ return; }
  49. if (!args.get("operation").toString().equals("state")){ return; }
  50. JSONObject jargs = (JSONObject)args.get("args");
  51. System.out.println("[Toolbox]: "+ args.toString());
  52. if (jargs != null) {
  53. if (jargs.containsKey("module")) {
  54. JSONArray array = (JSONArray) jargs.get("module");
  55. gridpane_modules.getChildren().clear();
  56. for (int i = 0; i < array.size(); i++) {
  57. Tool tool = new Tool((JSONObject) array.get(i));
  58. gridpane_modules.add(tool, 0, i);
  59. }
  60. }
  61. if (jargs.containsKey("processor")) {
  62. JSONArray array = (JSONArray) jargs.get("processor");
  63. gridpane_processors.getChildren().clear();
  64. for (int i = 0; i < array.size(); i++) {
  65. Tool tool = new Tool((JSONObject) array.get(i));
  66. gridpane_processors.add(tool, 0, i);
  67. }
  68. }
  69. }
  70. }
  71. }
  72. }