| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package mdd.client.connectable;
- import javafx.scene.Group;
- import javafx.scene.control.ScrollPane;
- import javafx.scene.input.DragEvent;
- import javafx.scene.input.Dragboard;
- import javafx.scene.input.TransferMode;
- import javafx.scene.layout.GridPane;
- import javafx.scene.layout.VBox;
- import mdd.client.GUIEventHandler;
- import mdd.client.IGUIEventClient;
- import mdd.client.Module;
- import mdd.client.Processor;
- import org.json.simple.JSONArray;
- import org.json.simple.JSONObject;
- import org.json.simple.parser.JSONParser;
- import org.json.simple.parser.ParseException;
- public class ParameterList extends ScrollPane implements IGUIEventClient {
- private GUIEventHandler _eventHandler;
- public Processor _processor;
- private VBox params = new VBox();
- private String _type;
- public ParameterList(Processor processor, String type){
- _type = type;
- _processor = processor;
- _eventHandler = GUIEventHandler.getEventHandler();
- if (_type.equals("input")){
- params = _processor.params_in;
- }else {
- params = _processor.params_out;
- }
- this.setContent(params);
- addEventHandler(DragEvent.DRAG_OVER, e -> {
- Dragboard db = e.getDragboard();
- if (db.hasString()) {
- JSONParser parser = new JSONParser();
- JSONObject jmsg = null;
- try {
- jmsg = (JSONObject)parser.parse(db.getString());
- } catch (ParseException parseException) {
- parseException.printStackTrace();
- }
- if (!jmsg.containsKey("type")){
- return;
- }
- if (!jmsg.get("type").toString().equals(_type)){
- return;
- }
- e.acceptTransferModes(TransferMode.MOVE);
- }
- e.consume();
- });
- _eventHandler.addEventListener(this);
- addEventHandler(DragEvent.DRAG_DROPPED, e -> {
- Dragboard db = e.getDragboard();
- boolean success = false;
- if (db.hasString()) {
- JSONParser parser = new JSONParser();
- JSONObject jmsg = null;
- try {
- jmsg = (JSONObject)parser.parse(db.getString());
- if (!jmsg.containsKey("prefix")){return;}
- JSONArray jprefix = (JSONArray)jmsg.get("prefix");
- JSONArray jprocessor = (JSONArray)_processor.getJSONIdentifier().get("prefix");
- if (jprocessor.size() + 2 != jprefix.size()){return;}
- for (int i = 0; i < jprocessor.size(); ++i){
- if(!jprocessor.get(i).toString().equals(jprefix.get(i).toString())){
- return;
- }
- }
- if(!_processor.ID.equals(jprefix.get(jprefix.size()-2).toString())){
- return;
- }
- } catch (ParseException parseException) {
- parseException.printStackTrace();
- }
- JSONObject jtry = new JSONObject();
- jtry.put("operation", "add");
- JSONObject jargs = new JSONObject();
- jargs.put("subject", _processor.getJSONIdentifier());
- jargs.put("object", jmsg);
- jtry.put("args", jargs);
- _eventHandler.publishEvent(10,"try", jtry);
- }
- });
- }
- public void add(Module mod){
- params.getChildren().add(mod);
- }
- @Override
- public void processGUIEvent(String event, JSONObject args) {
- }
- @Override
- public void close() throws Exception {
- }
- }
|