package uraxis.toolbar; import com.ur.urcap.api.contribution.toolbar.ToolbarAPIProvider; import com.ur.urcap.api.contribution.toolbar.ToolbarContext; import com.ur.urcap.api.contribution.toolbar.swing.SwingToolbarContribution; import com.ur.urcap.api.domain.io.DigitalIO; import com.ur.urcap.api.domain.io.IO; import com.ur.urcap.api.domain.io.IOModel; import uraxis.Activator; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.util.*; import java.util.Timer; class MyToolbarContribution implements SwingToolbarContribution { private static final int VERTICAL_SPACE = 10; private static final int HEADER_FONT_SIZE = 24; private final ToolbarContext context; private final ToolbarAPIProvider apiProvider; private final IOHandler ioHandler; private JLabel demoToolStatus; private HashMap boxes=new HashMap<>(); private DigitalIO out0,out1, in0, in1; MyToolbarContribution(ToolbarContext context) { this.context = context; this.apiProvider = context.getAPIProvider(); this.ioHandler = new IOHandler(this.apiProvider.getApplicationAPI().getIOModel()); } @Override public void openView() { IOModel ioModel = apiProvider.getApplicationAPI().getIOModel(); Collection ios = ioModel.getIOs(); } private void InitializeIO() { out0 = ioHandler.getDigitalIO("tool_out[0]"); out1 = ioHandler.getDigitalIO("tool_out[1]"); in0 = ioHandler.getDigitalIO("tool_in[0]"); in1 = ioHandler.getDigitalIO("tool_in[1]"); } @Override public void closeView() { } public void buildUI(JPanel jPanel) { jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS)); jPanel.add(createHeader()); jPanel.add(createVerticalSpace()); jPanel.add(createButtons()); jPanel.add(createInfo()); } private Box createHeader() { Box headerBox = Box.createHorizontalBox(); headerBox.setAlignmentX(Component.CENTER_ALIGNMENT); JLabel header = new JLabel("Festo Axis Control"); header.setFont(header.getFont().deriveFont(Font.BOLD, HEADER_FONT_SIZE)); headerBox.add(header); return headerBox; } private Box createButtons() { Box box = Box.createHorizontalBox(); return box; } private Box createInfo() { Box infoBox = Box.createVerticalBox(); infoBox.setAlignmentX(Component.CENTER_ALIGNMENT); demoToolStatus = new JLabel(); demoToolStatus.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); infoBox.add(demoToolStatus); return infoBox; } private Component createVerticalSpace() { return Box.createRigidArea(new Dimension(0, VERTICAL_SPACE)); } private void updateText(String text) { SwingUtilities.invokeLater(() -> demoToolStatus.setText("" + text +"")); } }