GripperNodeContribution.java 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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.userinteraction.keyboard.KeyboardInputCallback;
  9. import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardInputFactory;
  10. import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardNumberInput;
  11. public class GripperNodeContribution implements ProgramNodeContribution {
  12. private final String POSITION="POSITION";
  13. private final String SPEED="SPEED";
  14. private final ProgramAPI programAPI;
  15. private final UndoRedoManager undoRedoManager;
  16. private final KeyboardInputFactory keyboardFactory;
  17. private final GripperNodeView view;
  18. private final DataModel model;
  19. public GripperNodeContribution(ProgramAPIProvider apiProvider, GripperNodeView view, DataModel model) {
  20. this.programAPI = apiProvider.getProgramAPI();
  21. this.undoRedoManager = apiProvider.getProgramAPI().getUndoRedoManager();
  22. this.keyboardFactory = apiProvider.getUserInterfaceAPI().getUserInteraction().getKeyboardInputFactory();
  23. this.view = view;
  24. this.model = model;
  25. }
  26. @Override
  27. public void openView() {
  28. view.setPosition(model.get(POSITION, 0));
  29. view.setSpeed(model.get(SPEED, 20));
  30. }
  31. @Override
  32. public void closeView() {
  33. model.set(POSITION, view.getPosition());
  34. model.set(SPEED, view.getSpeed());
  35. }
  36. @Override
  37. public String getTitle() {
  38. return "Gripper ";
  39. }
  40. @Override
  41. public void generateScript(ScriptWriter writer) {
  42. writer.appendLine("write_output_integer_register(3," + 3 + ")");
  43. writer.writeChildren();
  44. }
  45. public KeyboardNumberInput getKeyboardForPositionField() {
  46. KeyboardNumberInput<Integer> keyboardInput = keyboardFactory.createIntegerKeypadInput();
  47. keyboardInput.setInitialValue(model.get(POSITION, 0));
  48. return keyboardInput;
  49. }
  50. public KeyboardInputCallback<Integer> getCallbackForPositionField() {
  51. return new KeyboardInputCallback<Integer>() {
  52. @Override
  53. public void onOk(Integer value) {
  54. model.set(POSITION, value);
  55. view.setPosition(value);
  56. }
  57. };
  58. }
  59. public KeyboardNumberInput getKeyboardForSpeedField() {
  60. KeyboardNumberInput<Integer> keyboardInput = keyboardFactory.createIntegerKeypadInput();
  61. keyboardInput.setInitialValue(model.get(SPEED, 0));
  62. return keyboardInput;
  63. }
  64. public KeyboardInputCallback<Integer> getCallbackForSpeedField() {
  65. return new KeyboardInputCallback<Integer>() {
  66. @Override
  67. public void onOk(Integer value) {
  68. model.set(SPEED, value);
  69. view.setSpeed(value);
  70. }
  71. };
  72. }
  73. @Override
  74. public boolean isDefined() {
  75. return true;
  76. }
  77. }