MyToolbarContribution.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package uraxis.toolbar;
  2. import com.ur.urcap.api.contribution.toolbar.ToolbarContext;
  3. import com.ur.urcap.api.contribution.toolbar.swing.SwingToolbarContribution;
  4. import uraxis.Activator;
  5. import javax.swing.*;
  6. import java.awt.Component;
  7. import java.awt.Dimension;
  8. import java.awt.Font;
  9. import java.awt.event.ActionEvent;
  10. import java.util.Date;
  11. import java.util.Locale;
  12. import java.util.Random;
  13. class MyToolbarContribution implements SwingToolbarContribution {
  14. private static final int VERTICAL_SPACE = 10;
  15. private static final int HEADER_FONT_SIZE = 24;
  16. private final ToolbarContext context;
  17. private JLabel demoToolStatus;
  18. MyToolbarContribution(ToolbarContext context) {
  19. this.context = context;
  20. }
  21. @Override
  22. public void openView() {
  23. demoToolStatus.setText("<HTML>" + get3rdPartyStatus() + "</HTML>");
  24. }
  25. @Override
  26. public void closeView() {
  27. }
  28. public void buildUI(JPanel jPanel) {
  29. jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
  30. jPanel.add(createHeader());
  31. jPanel.add(createVerticalSpace());
  32. jPanel.add(createButtons());
  33. jPanel.add(createInfo());
  34. }
  35. private Box createHeader() {
  36. Box headerBox = Box.createHorizontalBox();
  37. headerBox.setAlignmentX(Component.CENTER_ALIGNMENT);
  38. JLabel header = new JLabel("Festo Axis Control");
  39. header.setFont(header.getFont().deriveFont(Font.BOLD, HEADER_FONT_SIZE));
  40. headerBox.add(header);
  41. return headerBox;
  42. }
  43. private Box createButtons() {
  44. Box box = Box.createHorizontalBox();
  45. JButton left100 = new JButton("<<<100");
  46. left100.addActionListener(new AbstractAction() {
  47. @Override
  48. public void actionPerformed(ActionEvent e) {
  49. Activator.daemonInterface.rel(-100);
  50. }
  51. });
  52. box.add(left100);
  53. JButton left10 = new JButton("<<10");
  54. left10.addActionListener(new AbstractAction() {
  55. @Override
  56. public void actionPerformed(ActionEvent e) {
  57. Activator.daemonInterface.rel(-10);
  58. }
  59. });
  60. box.add(left10);
  61. JButton left1 = new JButton("<1");
  62. left1.addActionListener(new AbstractAction() {
  63. @Override
  64. public void actionPerformed(ActionEvent e) {
  65. Activator.daemonInterface.rel(-1);
  66. }
  67. });
  68. box.add(left1);
  69. JButton right1 = new JButton("1>");
  70. right1.addActionListener(new AbstractAction() {
  71. @Override
  72. public void actionPerformed(ActionEvent e) {
  73. Activator.daemonInterface.rel(1);
  74. }
  75. });
  76. box.add(right1);
  77. JButton right10 = new JButton("10>>");
  78. right10.addActionListener(new AbstractAction() {
  79. @Override
  80. public void actionPerformed(ActionEvent e) {
  81. Activator.daemonInterface.rel(10);
  82. }
  83. });
  84. box.add(right10);
  85. JButton right100 = new JButton("100>>>");
  86. right100.addActionListener(new AbstractAction() {
  87. @Override
  88. public void actionPerformed(ActionEvent e) {
  89. Activator.daemonInterface.rel(100);
  90. }
  91. });
  92. box.add(right100);
  93. return box;
  94. }
  95. private Box createInfo() {
  96. Box infoBox = Box.createVerticalBox();
  97. infoBox.setAlignmentX(Component.CENTER_ALIGNMENT);
  98. // JLabel pane1 = new JLabel();
  99. // pane1.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  100. // pane1.setText("<HTML>This is a sample URCap Toolbar contribution. Feel free to use this as an example for creating new contributions.</HTML>");
  101. // pane1.setBackground(infoBox.getBackground());
  102. // infoBox.add(pane1);
  103. JLabel pane2 = new JLabel();
  104. Locale locale = context.getAPIProvider().getSystemAPI().getSystemSettings().getLocalization().getLocale();
  105. pane2.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  106. pane2.setText("<HTML>Currently, the robot is configured to use the Locale: " + locale.getDisplayName() + "</HTML>");
  107. infoBox.add(pane2);
  108. demoToolStatus = new JLabel();
  109. demoToolStatus.setText("<HTML>" + get3rdPartyStatus() +"</HTML>");
  110. demoToolStatus.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  111. infoBox.add(demoToolStatus);
  112. return infoBox;
  113. }
  114. private Component createVerticalSpace() {
  115. return Box.createRigidArea(new Dimension(0, VERTICAL_SPACE));
  116. }
  117. private String get3rdPartyStatus() {
  118. Date now = new Date();
  119. int number = new Random().nextInt(10) + 20;
  120. return String.format("Tool status reading: %d, read at %tF %tT.", number, now, now);
  121. }
  122. }