MyToolbarContribution.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package uraxis.toolbar;
  2. import com.ur.urcap.api.contribution.toolbar.ToolbarAPIProvider;
  3. import com.ur.urcap.api.contribution.toolbar.ToolbarContext;
  4. import com.ur.urcap.api.contribution.toolbar.swing.SwingToolbarContribution;
  5. import com.ur.urcap.api.domain.io.DigitalIO;
  6. import com.ur.urcap.api.domain.io.IO;
  7. import com.ur.urcap.api.domain.io.IOModel;
  8. import uraxis.Activator;
  9. import javax.swing.*;
  10. import java.awt.*;
  11. import java.awt.event.ActionEvent;
  12. import java.util.*;
  13. import java.util.Timer;
  14. class MyToolbarContribution implements SwingToolbarContribution {
  15. private static final int VERTICAL_SPACE = 10;
  16. private static final int HEADER_FONT_SIZE = 24;
  17. private final ToolbarContext context;
  18. private final ToolbarAPIProvider apiProvider;
  19. private final IOHandler ioHandler;
  20. private JLabel demoToolStatus;
  21. private HashMap<String, JCheckBox> boxes=new HashMap<>();
  22. private DigitalIO out0,out1, in0, in1;
  23. MyToolbarContribution(ToolbarContext context) {
  24. this.context = context;
  25. this.apiProvider = context.getAPIProvider();
  26. this.ioHandler = new IOHandler(this.apiProvider.getApplicationAPI().getIOModel());
  27. }
  28. @Override
  29. public void openView() {
  30. IOModel ioModel = apiProvider.getApplicationAPI().getIOModel();
  31. Collection<IO> ios = ioModel.getIOs();
  32. }
  33. private void InitializeIO() {
  34. out0 = ioHandler.getDigitalIO("tool_out[0]");
  35. out1 = ioHandler.getDigitalIO("tool_out[1]");
  36. in0 = ioHandler.getDigitalIO("tool_in[0]");
  37. in1 = ioHandler.getDigitalIO("tool_in[1]");
  38. }
  39. @Override
  40. public void closeView() {
  41. }
  42. public void buildUI(JPanel jPanel) {
  43. jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
  44. jPanel.add(createHeader());
  45. jPanel.add(createVerticalSpace());
  46. jPanel.add(createButtons());
  47. jPanel.add(createInfo());
  48. }
  49. private Box createHeader() {
  50. Box headerBox = Box.createHorizontalBox();
  51. headerBox.setAlignmentX(Component.CENTER_ALIGNMENT);
  52. JLabel header = new JLabel("Festo Axis Control");
  53. header.setFont(header.getFont().deriveFont(Font.BOLD, HEADER_FONT_SIZE));
  54. headerBox.add(header);
  55. return headerBox;
  56. }
  57. private Box createButtons() {
  58. Box box = Box.createHorizontalBox();
  59. return box;
  60. }
  61. private Box createInfo() {
  62. Box infoBox = Box.createVerticalBox();
  63. infoBox.setAlignmentX(Component.CENTER_ALIGNMENT);
  64. demoToolStatus = new JLabel();
  65. demoToolStatus.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  66. infoBox.add(demoToolStatus);
  67. return infoBox;
  68. }
  69. private Component createVerticalSpace() {
  70. return Box.createRigidArea(new Dimension(0, VERTICAL_SPACE));
  71. }
  72. private void updateText(String text) {
  73. SwingUtilities.invokeLater(() -> demoToolStatus.setText("<HTML>" + text +"</HTML>"));
  74. }
  75. }