HelloWorldInstallationNodeContribution.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package at.acdp.opcur;
  2. import com.ur.urcap.api.contribution.InstallationNodeContribution;
  3. import com.ur.urcap.api.domain.data.DataModel;
  4. import com.ur.urcap.api.domain.script.ScriptWriter;
  5. import com.ur.urcap.api.ui.annotation.Input;
  6. import com.ur.urcap.api.ui.component.InputEvent;
  7. import com.ur.urcap.api.ui.component.InputTextField;
  8. public class HelloWorldInstallationNodeContribution implements InstallationNodeContribution {
  9. private static final String POPUPTITLE_KEY = "popuptitle";
  10. private static final String DEFAULT_VALUE = "Hello World";
  11. private DataModel model;
  12. public HelloWorldInstallationNodeContribution(DataModel model) {
  13. this.model = model;
  14. }
  15. @Input(id = POPUPTITLE_KEY)
  16. private InputTextField popupTitleField;
  17. @Input(id = POPUPTITLE_KEY)
  18. public void onMessageChange(InputEvent event) {
  19. if (event.getEventType() == InputEvent.EventType.ON_CHANGE) {
  20. setPopupTitle(popupTitleField.getText());
  21. }
  22. }
  23. @Override
  24. public void openView() {
  25. popupTitleField.setText(getPopupTitle());
  26. }
  27. @Override
  28. public void closeView() { }
  29. public boolean isDefined() {
  30. return !getPopupTitle().isEmpty();
  31. }
  32. @Override
  33. public void generateScript(ScriptWriter writer) {
  34. // Store the popup title in a global variable so it is globally available to all HelloWorld program nodes.
  35. writer.assign("hello_world_popup_title", "\"" + getPopupTitle() + "\"");
  36. }
  37. public String getPopupTitle() {
  38. return model.get(POPUPTITLE_KEY, DEFAULT_VALUE);
  39. }
  40. private void setPopupTitle(String message) {
  41. if ("".equals(message)) {
  42. resetToDefaultValue();
  43. } else {
  44. model.set(POPUPTITLE_KEY, message);
  45. }
  46. }
  47. private void resetToDefaultValue() {
  48. popupTitleField.setText(DEFAULT_VALUE);
  49. model.set(POPUPTITLE_KEY, DEFAULT_VALUE);
  50. }
  51. }