package org.isatools.isacreator.spreadsheet; import org.isatools.isacreator.common.UIHelper; import org.isatools.isacreator.common.button.ButtonType; import org.isatools.isacreator.common.button.FlatButton; import org.isatools.isacreator.effects.components.RoundedJTextField; import javax.swing.*; import javax.swing.table.TableColumn; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class RenameColumnGUI extends AddColumnGUI { private TableColumn column; public RenameColumnGUI(Spreadsheet st, int type, TableColumn column) { super(st, type); this.column = column; } public void createGUI() { createMainPanel(); createSouthPanel(); } private String getHeaderValue() { String currentHeader = column.getHeaderValue().toString(); currentHeader = currentHeader.substring(currentHeader.indexOf("[") + 1, currentHeader.indexOf("]")); return currentHeader; } private void createMainPanel() { JPanel containingPanel = new JPanel(); containingPanel.setBackground(UIHelper.BG_COLOR); JPanel headerCont = new JPanel(new GridLayout(1, 1)); headerCont.setSize(new Dimension(300, 25)); headerCont.setOpaque(false); Box container = Box.createVerticalBox(); container.setBackground(UIHelper.BG_COLOR); if (type == ADD_CHARACTERISTIC_COLUMN) { headerCont.add(UIHelper.createLabel("Rename Characteristic", UIHelper.VER_14_BOLD, UIHelper.DARK_GREEN_COLOR, JLabel.LEFT)); container.add(headerCont); container.add(createStdOntologyField("characteristic")); varSelectOntologyField.setText(getHeaderValue()); } if (type == ADD_PARAMETER_COLUMN) { headerCont.add(UIHelper.createLabel("Rename Parameter Value", UIHelper.VER_14_BOLD, UIHelper.DARK_GREEN_COLOR, JLabel.LEFT)); container.add(headerCont); container.add(createStdOntologyField("parameter")); varSelectOntologyField.setText(getHeaderValue()); } if (type == ADD_COMMENT_COLUMN) { headerCont.add(UIHelper.createLabel("Rename Comment", UIHelper.VER_14_BOLD, UIHelper.DARK_GREEN_COLOR, JLabel.LEFT)); container.add(headerCont); JLabel lab = new JLabel("Enter comment qualifier"); UIHelper.createLabel("Enter comment qualifier", UIHelper.VER_12_PLAIN, UIHelper.DARK_GREEN_COLOR); stdTextField = new RoundedJTextField(10); stdTextField.setText(getHeaderValue()); JPanel commentFieldcont = new JPanel(new GridLayout(1, 2)); commentFieldcont.setOpaque(false); commentFieldcont.add(lab); commentFieldcont.add(stdTextField); container.add(commentFieldcont); } containingPanel.add(container, BorderLayout.NORTH); add(containingPanel, BorderLayout.CENTER); } private void createSouthPanel() { JButton close = new FlatButton(ButtonType.RED, "Cancel"); close.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { SwingUtilities.invokeLater(new Runnable() { public void run() { st.getParentFrame().hideSheet(); ontologySelectionTool = null; } }); } }); JButton renameButton = new FlatButton(ButtonType.GREEN, "Rename"); renameButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { if (type == ADD_COMMENT_COLUMN) { if (!stdTextField.getText().isEmpty()) { setColumnHeaderValue("Comment[" + stdTextField.getText() + "]"); } else { SwingUtilities.invokeLater(new Runnable() { public void run() { UIHelper.renderComponent(stdTextField, UIHelper.VER_12_PLAIN, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_RED_COLOR); } }); } } else if (!varSelectOntologyField.getText().isEmpty()) { if (type == ADD_CHARACTERISTIC_COLUMN) { setColumnHeaderValue("Characteristics[" + varSelectOntologyField.getText() + "]"); } if (type == ADD_PARAMETER_COLUMN) { setColumnHeaderValue("Parameter Value[" + varSelectOntologyField.getText() + "]"); } } else { SwingUtilities.invokeLater(new Runnable() { public void run() { UIHelper.renderComponent(varSelectOntologyField, UIHelper.VER_12_PLAIN, UIHelper.RED_COLOR, UIHelper.TRANSPARENT_RED_COLOR); } }); } } }); JPanel buttonCont = new JPanel(new BorderLayout()); buttonCont.setBorder(UIHelper.EMPTY_BORDER); buttonCont.setBackground(UIHelper.BG_COLOR); buttonCont.add(close, BorderLayout.WEST); buttonCont.add(renameButton, BorderLayout.EAST); add(buttonCont, BorderLayout.SOUTH); } private void setColumnHeaderValue(final String header) { SwingUtilities.invokeLater(new Runnable() { public void run() { column.setHeaderValue(header); st.getParentFrame().hideSheet(); st.getTable().addNotify(); ontologySelectionTool = null; } }); } }