1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package uraxis.programnodes;
- import com.ur.urcap.api.contribution.ContributionProvider;
- import com.ur.urcap.api.contribution.program.swing.SwingProgramNodeView;
- import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardNumberInput;
- import com.ur.urcap.api.domain.userinteraction.keyboard.KeyboardTextInput;
- import javax.swing.Box;
- import javax.swing.BoxLayout;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- public class AbsoluteNodeView implements SwingProgramNodeView<AbsoluteNodeContribution>{
- private final Style style;
- private JTextField jTextField;
- public AbsoluteNodeView(Style style) {
- this.style = style;
- }
- @Override
- public void buildUI(JPanel jPanel, final ContributionProvider<AbsoluteNodeContribution> provider) {
- jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
- jPanel.add(createVerticalSpacing(style.getVerticalSpacing()));
- jPanel.add(createInput(provider));
- jPanel.add(createVerticalSpacing(style.getExtraLargeVerticalSpacing()));
- }
- private Box createInput(final ContributionProvider<AbsoluteNodeContribution> provider) {
- Box inputBox = Box.createHorizontalBox();
- inputBox.setAlignmentX(Component.LEFT_ALIGNMENT);
- inputBox.add(new JLabel("Move by:"));
- inputBox.add(createHorizontalSpacing());
- jTextField = new JTextField();
- jTextField.setFocusable(false);
- jTextField.setPreferredSize(style.getInputfieldSize());
- jTextField.setMaximumSize(jTextField.getPreferredSize());
- jTextField.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- KeyboardNumberInput keyboardInput = provider.get().getKeyboardForTextField();
- keyboardInput.show(jTextField, provider.get().getCallbackForTextField());
- }
- });
- inputBox.add(jTextField);
- return inputBox;
- }
- private Component createVerticalSpacing(int height) {
- return Box.createRigidArea(new Dimension(0, height));
- }
- private Component createHorizontalSpacing() {
- return Box.createRigidArea(new Dimension(style.getHorizontalSpacing(), 0));
- }
- public void setPopupText(Integer popupText) {
- jTextField.setText(popupText.toString());
- }
- }
|