AbsoluteNodeContribution.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package uraxis.programnodes;
  2. import com.ur.urcap.api.contribution.ProgramNodeContribution;
  3. import com.ur.urcap.api.contribution.program.ProgramAPIProvider;
  4. import com.ur.urcap.api.domain.ProgramAPI;
  5. import com.ur.urcap.api.domain.data.DataModel;
  6. import com.ur.urcap.api.domain.script.ScriptWriter;
  7. import com.ur.urcap.api.domain.undoredo.UndoRedoManager;
  8. import com.ur.urcap.api.domain.undoredo.UndoableChanges;
  9. import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardInputCallback;
  10. import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardInputFactory;
  11. import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardNumberInput;
  12. import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardTextInput;
  13. import uraxis.MyDaemonInstallationNodeContribution;
  14. public class AbsoluteNodeContribution implements ProgramNodeContribution {
  15. private final ProgramAPI programAPI;
  16. private final UndoRedoManager undoRedoManager;
  17. private final KeyboardInputFactory keyboardFactory;
  18. private final AbsoluteNodeView view;
  19. private final DataModel model;
  20. public AbsoluteNodeContribution(ProgramAPIProvider apiProvider, AbsoluteNodeView view, DataModel model) {
  21. this.programAPI = apiProvider.getProgramAPI();
  22. this.undoRedoManager = apiProvider.getProgramAPI().getUndoRedoManager();
  23. this.keyboardFactory = apiProvider.getUserInterfaceAPI().getUserInteraction().getKeyboardInputFactory();
  24. this.view = view;
  25. this.model = model;
  26. }
  27. @Override
  28. public void openView() {
  29. view.setPopupText(0);
  30. }
  31. @Override
  32. public void closeView() {
  33. }
  34. @Override
  35. public String getTitle() {
  36. return "Hello World Swing: ";
  37. }
  38. @Override
  39. public void generateScript(ScriptWriter writer) {
  40. // Directly generate this Program Node's popup message + access the popup title through a global variable
  41. writer.appendLine("popup(\"" + "generatePopupMessage()" + "\", hello_world_swing_popup_title, False, False, blocking=True)");
  42. writer.writeChildren();
  43. }
  44. public KeyboardNumberInput getKeyboardForTextField() {
  45. KeyboardNumberInput<Integer> keyboardInput = keyboardFactory.createIntegerKeypadInput();
  46. keyboardInput.setInitialValue(0);
  47. return keyboardInput;
  48. }
  49. public KeyboardInputCallback<Integer> getCallbackForTextField() {
  50. return new KeyboardInputCallback<Integer>() {
  51. @Override
  52. public void onOk(Integer value) {
  53. view.setPopupText(value);
  54. }
  55. };
  56. }
  57. private MyDaemonInstallationNodeContribution getInstallation() {
  58. return programAPI.getInstallationNode(MyDaemonInstallationNodeContribution.class);
  59. }
  60. @Override
  61. public boolean isDefined() {
  62. return true;
  63. }
  64. }