use of javax.swing.table.TableColumn in project JMRI by JMRI.
the class LRouteTableAction method makeColumns.
/*
* Utility for addPressed
*/
JScrollPane makeColumns(JTable table, JComboBox<String> box, boolean specialBox) {
table.setRowSelectionAllowed(false);
//table.setPreferredScrollableViewportSize(new java.awt.Dimension(250,450));
TableColumnModel columnModel = table.getColumnModel();
TableColumn sNameColumnT = columnModel.getColumn(RouteElementModel.SNAME_COLUMN);
sNameColumnT.setResizable(true);
sNameColumnT.setMinWidth(75);
//sNameColumnT.setMaxWidth(110);
TableColumn uNameColumnT = columnModel.getColumn(RouteElementModel.UNAME_COLUMN);
uNameColumnT.setResizable(true);
uNameColumnT.setMinWidth(75);
//uNameColumnT.setMaxWidth(260);
TableColumn typeColumnT = columnModel.getColumn(RouteElementModel.TYPE_COLUMN);
typeColumnT.setResizable(true);
typeColumnT.setMinWidth(50);
//typeColumnT.setMaxWidth(110);
TableColumn includeColumnT = columnModel.getColumn(RouteElementModel.INCLUDE_COLUMN);
includeColumnT.setResizable(false);
includeColumnT.setMinWidth(30);
includeColumnT.setMaxWidth(60);
TableColumn stateColumnT = columnModel.getColumn(RouteElementModel.STATE_COLUMN);
if (specialBox) {
box = new JComboBox<>();
stateColumnT.setCellEditor(new ComboBoxCellEditor(box));
} else {
stateColumnT.setCellEditor(new DefaultCellEditor(box));
}
stateColumnT.setResizable(false);
stateColumnT.setMinWidth(75);
return new JScrollPane(table);
}
use of javax.swing.table.TableColumn in project JMRI by JMRI.
the class SignalGroupSubTableAction method editHead.
/**
* Open an editor to set the details of a Signal Head as part of a Signal Group.
* Called when user clicks the Edit button for a Head in the Add/Edit Signal Group pane.
* @see SignalGroupTableAction#signalHeadEditPressed(int) SignalGroupTableAction.signalHeadEditPressed
* @param g Parent Signal Head
* @param headName System or User Name of this Signal Head
*/
void editHead(SignalGroup g, String headName) {
curSignalGroup = g;
curHeadName = headName;
curSignalHead = jmri.InstanceManager.getDefault(jmri.SignalHeadManager.class).getSignalHead(curHeadName);
// shows i18n strings from signal head definition
_OnAppearance = new JComboBox<String>(curSignalHead.getValidStateNames());
_OffAppearance = new JComboBox<String>(curSignalHead.getValidStateNames());
_systemName = new JLabel(headName);
_systemName.setVisible(true);
jmri.TurnoutManager tm = InstanceManager.turnoutManagerInstance();
List<String> systemNameList = tm.getSystemNameList();
_turnoutList = new ArrayList<SignalGroupTurnout>(systemNameList.size());
Iterator<String> iter = systemNameList.iterator();
while (iter.hasNext()) {
String systemName = iter.next();
String userName = tm.getBySystemName(systemName).getUserName();
_turnoutList.add(new SignalGroupTurnout(systemName, userName));
}
jmri.SensorManager sm = InstanceManager.sensorManagerInstance();
systemNameList = sm.getSystemNameList();
_sensorList = new ArrayList<SignalGroupSensor>(systemNameList.size());
iter = systemNameList.iterator();
while (iter.hasNext()) {
String systemName = iter.next();
Sensor sen = sm.getBySystemName(systemName);
if (sen != null) {
String userName = sen.getUserName();
_sensorList.add(new SignalGroupSensor(systemName, userName));
}
}
initializeIncludedList();
// Set up sub panel for editing of a Signal Group Signal Head item
if (addSubFrame == null) {
// create one if not yet available
addSubFrame = new JmriJFrame((Bundle.getMessage("EditSignalGroup") + " - " + Bundle.getMessage("BeanNameSignalHead")), false, true);
addSubFrame.addHelpMenu("package.jmri.jmrit.beantable.SignalGroupAddEdit", true);
addSubFrame.setLocation(100, 30);
addSubFrame.getContentPane().setLayout(new BoxLayout(addSubFrame.getContentPane(), BoxLayout.Y_AXIS));
Container contentPane = addSubFrame.getContentPane();
// add system name label
JPanel ps = new JPanel();
ps.setLayout(new FlowLayout());
ps.add(nameLabel);
ps.add(_systemName);
contentPane.add(ps);
// add user name label
JPanel pc = new JPanel();
pc.setLayout(new FlowLayout());
pc.add(signalOnStateLabel);
// comboBox to set On Appearance
pc.add(_OnAppearance);
_OnAppearance.setToolTipText(Bundle.getMessage("StateWhenMetTooltip"));
pc.add(spacer);
pc.add(signalOffStateLabel);
// comboBox to set On Appearance
pc.add(_OffAppearance);
_OffAppearance.setToolTipText(Bundle.getMessage("StateWhenNotMetTooltip"));
contentPane.add(pc);
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.add(userLabel);
contentPane.add(p);
// fill in info for the Signal Head being configured
if (curSignalHead.getClass().getName().contains("SingleTurnoutSignalHead")) {
jmri.implementation.SingleTurnoutSignalHead stsh = (jmri.implementation.SingleTurnoutSignalHead) InstanceManager.getDefault(jmri.SignalHeadManager.class).getByUserName(curHeadName);
// we may use a user name in the editing pane, so look for that first
if (stsh == null) {
stsh = (jmri.implementation.SingleTurnoutSignalHead) InstanceManager.getDefault(jmri.SignalHeadManager.class).getBySystemName(curHeadName);
// when user name is empty, get by user name
}
if (stsh != null) {
log.debug("SGsubTA #279 editHead: setting props for signal head {}", curHeadName);
if ((g.getHeadOnState(curSignalHead) == 0x00) && (g.getHeadOffState(curSignalHead) == 0x00)) {
g.setHeadOnState(curSignalHead, stsh.getOnAppearance());
g.setHeadOffState(curSignalHead, stsh.getOffAppearance());
}
} else {
// nothing found
log.error("Failed to get signal head object named {}", curHeadName);
}
}
setSignalHeadStateBox(g.getHeadOnState(curSignalHead), _OnAppearance);
setSignalHeadStateBox(g.getHeadOffState(curSignalHead), _OffAppearance);
// add Turnout Display Choice
JPanel py = new JPanel();
py.add(new JLabel(Bundle.getMessage("Show")));
selGroup = new ButtonGroup();
allButton = new JRadioButton(Bundle.getMessage("All"), true);
selGroup.add(allButton);
py.add(allButton);
allButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Setup for display of all Turnouts, if needed
if (!showAll) {
showAll = true;
_SignalGroupTurnoutModel.fireTableDataChanged();
_SignalGroupSensorModel.fireTableDataChanged();
}
}
});
includedButton = new JRadioButton(Bundle.getMessage("Included"), false);
selGroup.add(includedButton);
py.add(includedButton);
includedButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Setup for display of included Turnouts only, if needed
if (showAll) {
showAll = false;
initializeIncludedList();
_SignalGroupTurnoutModel.fireTableDataChanged();
_SignalGroupSensorModel.fireTableDataChanged();
}
}
});
py.add(new JLabel(" " + Bundle.getMessage("_and_", Bundle.getMessage("Turnouts"), Bundle.getMessage("Sensors"))));
contentPane.add(py);
// add turnout table
p2xt = new JPanel();
JPanel p2xtSpace = new JPanel();
p2xtSpace.setLayout(new BoxLayout(p2xtSpace, BoxLayout.Y_AXIS));
p2xtSpace.add(new JLabel("XXX"));
p2xt.add(p2xtSpace);
JPanel p21t = new JPanel();
p21t.setLayout(new BoxLayout(p21t, BoxLayout.Y_AXIS));
p21t.add(new JLabel(Bundle.getMessage("SelectInGroup", Bundle.getMessage("Turnouts"))));
p2xt.add(p21t);
_SignalGroupTurnoutModel = new SignalGroupTurnoutModel();
JTable SignalGroupTurnoutTable = new JTable(_SignalGroupTurnoutModel);
TableRowSorter<SignalGroupTurnoutModel> sgtSorter = new TableRowSorter<>(_SignalGroupTurnoutModel);
sgtSorter.setComparator(SignalGroupTurnoutModel.SNAME_COLUMN, new SystemNameComparator());
RowSorterUtil.setSortOrder(sgtSorter, SignalGroupTurnoutModel.SNAME_COLUMN, SortOrder.ASCENDING);
SignalGroupTurnoutTable.setRowSorter(sgtSorter);
SignalGroupTurnoutTable.setRowSelectionAllowed(false);
SignalGroupTurnoutTable.setPreferredScrollableViewportSize(new java.awt.Dimension(480, 80));
ROW_HEIGHT = SignalGroupTurnoutTable.getRowHeight();
JComboBox<String> stateTCombo = new JComboBox<String>();
stateTCombo.addItem(SET_TO_CLOSED);
stateTCombo.addItem(SET_TO_THROWN);
TableColumnModel SignalGroupTurnoutColumnModel = SignalGroupTurnoutTable.getColumnModel();
TableColumn includeColumnT = SignalGroupTurnoutColumnModel.getColumn(SignalGroupTurnoutModel.INCLUDE_COLUMN);
includeColumnT.setResizable(false);
includeColumnT.setMinWidth(50);
includeColumnT.setMaxWidth(60);
TableColumn sNameColumnT = SignalGroupTurnoutColumnModel.getColumn(SignalGroupTurnoutModel.SNAME_COLUMN);
sNameColumnT.setResizable(true);
sNameColumnT.setMinWidth(75);
sNameColumnT.setMaxWidth(95);
TableColumn uNameColumnT = SignalGroupTurnoutColumnModel.getColumn(SignalGroupTurnoutModel.UNAME_COLUMN);
uNameColumnT.setResizable(true);
uNameColumnT.setMinWidth(210);
uNameColumnT.setMaxWidth(260);
TableColumn stateColumnT = SignalGroupTurnoutColumnModel.getColumn(SignalGroupTurnoutModel.STATE_COLUMN);
stateColumnT.setCellEditor(new DefaultCellEditor(stateTCombo));
stateColumnT.setResizable(false);
stateColumnT.setMinWidth(90);
stateColumnT.setMaxWidth(100);
_SignalGroupTurnoutScrollPane = new JScrollPane(SignalGroupTurnoutTable);
p2xt.add(_SignalGroupTurnoutScrollPane, BorderLayout.CENTER);
contentPane.add(p2xt);
p2xt.setVisible(true);
JPanel po = new JPanel();
po.setLayout(new FlowLayout());
JLabel operLabel = new JLabel(Bundle.getMessage("ChooseOrAnd"));
po.add(operLabel);
po.add(_SensorTurnoutOper);
contentPane.add(po);
// add sensor table
p2xs = new JPanel();
JPanel p2xsSpace = new JPanel();
p2xsSpace.setLayout(new BoxLayout(p2xsSpace, BoxLayout.Y_AXIS));
p2xsSpace.add(new JLabel("XXX"));
p2xs.add(p2xsSpace);
JPanel p21s = new JPanel();
p21s.setLayout(new BoxLayout(p21s, BoxLayout.Y_AXIS));
p21s.add(new JLabel(Bundle.getMessage("SelectInGroup", Bundle.getMessage("Sensors"))));
p2xs.add(p21s);
_SignalGroupSensorModel = new SignalGroupSensorModel();
JTable SignalGroupSensorTable = new JTable(_SignalGroupSensorModel);
TableRowSorter<SignalGroupSensorModel> sgsSorter = new TableRowSorter<>(_SignalGroupSensorModel);
sgsSorter.setComparator(SignalGroupSensorModel.SNAME_COLUMN, new SystemNameComparator());
RowSorterUtil.setSortOrder(sgsSorter, SignalGroupSensorModel.SNAME_COLUMN, SortOrder.ASCENDING);
SignalGroupSensorTable.setRowSorter(sgsSorter);
SignalGroupSensorTable.setRowSelectionAllowed(false);
SignalGroupSensorTable.setPreferredScrollableViewportSize(new java.awt.Dimension(480, 80));
JComboBox<String> stateSCombo = new JComboBox<String>();
stateSCombo.addItem(SET_TO_ACTIVE);
stateSCombo.addItem(SET_TO_INACTIVE);
TableColumnModel SignalGroupSensorColumnModel = SignalGroupSensorTable.getColumnModel();
TableColumn includeColumnS = SignalGroupSensorColumnModel.getColumn(SignalGroupSensorModel.INCLUDE_COLUMN);
includeColumnS.setResizable(false);
includeColumnS.setMinWidth(50);
includeColumnS.setMaxWidth(60);
TableColumn sNameColumnS = SignalGroupSensorColumnModel.getColumn(SignalGroupSensorModel.SNAME_COLUMN);
sNameColumnS.setResizable(true);
sNameColumnS.setMinWidth(75);
sNameColumnS.setMaxWidth(95);
TableColumn uNameColumnS = SignalGroupSensorColumnModel.getColumn(SignalGroupSensorModel.UNAME_COLUMN);
uNameColumnS.setResizable(true);
uNameColumnS.setMinWidth(210);
uNameColumnS.setMaxWidth(260);
TableColumn stateColumnS = SignalGroupSensorColumnModel.getColumn(SignalGroupSensorModel.STATE_COLUMN);
stateColumnS.setCellEditor(new DefaultCellEditor(stateSCombo));
stateColumnS.setResizable(false);
stateColumnS.setMinWidth(90);
stateColumnS.setMaxWidth(100);
_SignalGroupSensorScrollPane = new JScrollPane(SignalGroupSensorTable);
p2xs.add(_SignalGroupSensorScrollPane, BorderLayout.CENTER);
contentPane.add(p2xs);
p2xs.setVisible(true);
// add notes panel
JPanel pa = new JPanel();
pa.setLayout(new BoxLayout(pa, BoxLayout.Y_AXIS));
JPanel p1 = new JPanel();
p1.setLayout(new FlowLayout());
p1.add(status1);
pa.add(p1);
Border pBorder = BorderFactory.createEtchedBorder();
pa.setBorder(pBorder);
contentPane.add(pa);
// add buttons - Add SignalGroup button
JPanel pb = new JPanel();
pb.setLayout(new FlowLayout(FlowLayout.TRAILING));
// add Cancel button
pb.add(cancelButton);
cancelButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cancelSubPressed(e);
}
});
// add Update SignalGroup button
pb.add(updateSubButton);
updateSubButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updateSubPressed(e, false);
}
});
updateSubButton.setToolTipText(Bundle.getMessage("TooltipUpdate"));
p2xtSpace.setVisible(false);
p2xsSpace.setVisible(false);
updateSubButton.setVisible(true);
contentPane.add(pb);
addSubFrame.pack();
}
// set listener for window closing
addSubFrame.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
addSubFrame.setVisible(false);
cancelSubEdit();
_SignalGroupSensorModel.dispose();
_SignalGroupTurnoutModel.dispose();
}
});
addSubFrame.setVisible(true);
// add AND/OR choice box
setoperBox(curSignalGroup.getSensorTurnoutOper(curSignalHead), _SensorTurnoutOper);
setSignalHeadStateBox(curSignalGroup.getHeadOnState(curSignalHead), _OnAppearance);
setSignalHeadStateBox(curSignalGroup.getHeadOffState(curSignalHead), _OffAppearance);
int setRow = 0;
for (int i = _turnoutList.size() - 1; i >= 0; i--) {
SignalGroupTurnout turnout = _turnoutList.get(i);
Turnout tTurnout = turnout.getTurnout();
if (curSignalGroup.isTurnoutIncluded(curSignalHead, tTurnout)) {
turnout.setIncluded(true);
turnout.setState(curSignalGroup.getTurnoutState(curSignalHead, tTurnout));
setRow = i;
} else {
turnout.setIncluded(false);
turnout.setState(Turnout.CLOSED);
}
}
setRow -= 1;
if (setRow < 0) {
setRow = 0;
}
_SignalGroupTurnoutScrollPane.getVerticalScrollBar().setValue(setRow * ROW_HEIGHT);
_SignalGroupTurnoutModel.fireTableDataChanged();
for (int i = _sensorList.size() - 1; i >= 0; i--) {
SignalGroupSensor sensor = _sensorList.get(i);
Sensor tSensor = sensor.getSensor();
if (curSignalGroup.isSensorIncluded(curSignalHead, tSensor)) {
sensor.setIncluded(true);
sensor.setState(curSignalGroup.getSensorState(curSignalHead, tSensor));
setRow = i;
} else {
sensor.setIncluded(false);
sensor.setState(Sensor.INACTIVE);
}
}
status1.setText(updateInst);
updateSubButton.setVisible(true);
}
use of javax.swing.table.TableColumn in project JMRI by JMRI.
the class SectionTableAction method addEditPressed.
void addEditPressed() {
pref = jmri.InstanceManager.getDefault(jmri.UserPreferencesManager.class);
if (addFrame == null) {
addFrame = new JmriJFrame(Bundle.getMessage("TitleAddSection"));
addFrame.addHelpMenu("package.jmri.jmrit.beantable.SectionAddEdit", true);
addFrame.getContentPane().setLayout(new BoxLayout(addFrame.getContentPane(), BoxLayout.Y_AXIS));
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.add(sysNameLabel);
p.add(sysNameFixed);
p.add(sysName);
p.add(_autoSystemName);
_autoSystemName.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
autoSystemName();
}
});
if (pref.getSimplePreferenceState(systemNameAuto)) {
_autoSystemName.setSelected(true);
}
sysName.setToolTipText(rbx.getString("SectionSystemNameHint"));
p.add(new JLabel(" "));
p.add(userNameLabel);
p.add(userName);
userName.setToolTipText(rbx.getString("SectionUserNameHint"));
addFrame.getContentPane().add(p);
JPanel pa = new JPanel();
pa.setLayout(new FlowLayout());
pa.add(generationStateLabel);
addFrame.getContentPane().add(pa);
addFrame.getContentPane().add(new JSeparator());
JPanel p1 = new JPanel();
p1.setLayout(new BoxLayout(p1, BoxLayout.Y_AXIS));
JPanel p11 = new JPanel();
p11.setLayout(new FlowLayout());
p11.add(new JLabel(rbx.getString("BlockTableMessage")));
p1.add(p11);
JPanel p12 = new JPanel();
// initialize table of blocks
blockTableModel = new BlockTableModel();
JTable blockTable = new JTable(blockTableModel);
blockTable.setRowSelectionAllowed(false);
blockTable.setPreferredScrollableViewportSize(new java.awt.Dimension(350, 100));
TableColumnModel blockColumnModel = blockTable.getColumnModel();
TableColumn sNameColumn = blockColumnModel.getColumn(BlockTableModel.SNAME_COLUMN);
sNameColumn.setResizable(true);
sNameColumn.setMinWidth(90);
sNameColumn.setMaxWidth(130);
TableColumn uNameColumn = blockColumnModel.getColumn(BlockTableModel.UNAME_COLUMN);
uNameColumn.setResizable(true);
uNameColumn.setMinWidth(210);
uNameColumn.setMaxWidth(260);
JScrollPane blockTableScrollPane = new JScrollPane(blockTable);
p12.add(blockTableScrollPane, BorderLayout.CENTER);
p1.add(p12);
JPanel p13 = new JPanel();
p13.setLayout(new FlowLayout());
p13.add(deleteBlocks = new JButton(rbx.getString("DeleteAllBlocksButton")));
deleteBlocks.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
deleteBlocksPressed(e);
}
});
deleteBlocks.setToolTipText(rbx.getString("DeleteAllBlocksButtonHint"));
p13.add(new JLabel(" "));
p13.add(blockBox);
blockBox.setToolTipText(rbx.getString("BlockBoxHint"));
p13.add(addBlock = new JButton(rbx.getString("AddBlockButton")));
addBlock.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
addBlockPressed(e);
}
});
addBlock.setToolTipText(rbx.getString("AddBlockButtonHint"));
p1.add(p13);
addFrame.getContentPane().add(p1);
addFrame.getContentPane().add(new JSeparator());
JPanel p31 = new JPanel();
p31.setLayout(new FlowLayout());
p31.add(new JLabel(rbx.getString("EntryPointTable")));
addFrame.getContentPane().add(p31);
JPanel p32 = new JPanel();
p32.setLayout(new FlowLayout());
entryPointOptions = new ButtonGroup();
p32.add(manually);
entryPointOptions.add(manually);
manually.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
manualEntryPoints = true;
}
});
manually.setToolTipText(rbx.getString("SetManuallyHint"));
p32.add(new JLabel(" "));
p32.add(automatic);
entryPointOptions.add(automatic);
automatic.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
manualEntryPoints = false;
}
});
automatic.setToolTipText(rbx.getString("SetAutomaticHint"));
p32.add(layoutEditorBox);
layoutEditorBox.setToolTipText(rbx.getString("LayoutEditorBoxHint"));
layoutEditorBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
layoutEditorSelectionChanged();
}
});
// djd debugging - temporarily hide these items until the automatic setting of entry point direction is ready
// addFrame.getContentPane().add(p32);
// end djd debugging
JPanel p33 = new JPanel();
// initialize table of entry points
entryPointTableModel = new EntryPointTableModel();
JTable entryPointTable = new JTable(entryPointTableModel);
entryPointTable.setRowSelectionAllowed(false);
// GT - 12-Oct-2009
entryPointTable.setPreferredScrollableViewportSize(new java.awt.Dimension(550, 100));
TableColumnModel entryPointColumnModel = entryPointTable.getColumnModel();
TableColumn fromBlockColumn = entryPointColumnModel.getColumn(EntryPointTableModel.BLOCK_COLUMN);
fromBlockColumn.setResizable(true);
fromBlockColumn.setMinWidth(250);
fromBlockColumn.setMaxWidth(310);
// GT - 12-Oct-2009 - start
TableColumn toBlockColumn = entryPointColumnModel.getColumn(EntryPointTableModel.TO_BLOCK_COLUMN);
toBlockColumn.setResizable(true);
toBlockColumn.setMinWidth(150);
toBlockColumn.setMaxWidth(210);
// GT - 12-Oct-2009 - end
JComboBox<String> directionCombo = new JComboBox<String>();
directionCombo.addItem(rbx.getString("SectionForward"));
directionCombo.addItem(rbx.getString("SectionReverse"));
directionCombo.addItem(Bundle.getMessage("BeanStateUnknown"));
TableColumn directionColumn = entryPointColumnModel.getColumn(EntryPointTableModel.DIRECTION_COLUMN);
directionColumn.setCellEditor(new DefaultCellEditor(directionCombo));
entryPointTable.setRowHeight(directionCombo.getPreferredSize().height);
directionColumn.setPreferredWidth(directionCombo.getPreferredSize().width);
directionColumn.setResizable(false);
JScrollPane entryPointTableScrollPane = new JScrollPane(entryPointTable);
p33.add(entryPointTableScrollPane, BorderLayout.CENTER);
addFrame.getContentPane().add(p33);
p33.setVisible(true);
JPanel p34 = new JPanel();
p34.setLayout(new FlowLayout());
p34.add(new JLabel(rbx.getString("DirectionNote")));
addFrame.getContentPane().add(p34);
addFrame.getContentPane().add(new JSeparator());
// set up for direction sensors
JPanel p20 = new JPanel();
p20.setLayout(new FlowLayout());
p20.add(new JLabel(rbx.getString("DirectionSensorLabel")));
addFrame.getContentPane().add(p20);
JPanel p21 = new JPanel();
p21.setLayout(new FlowLayout());
p21.add(new JLabel(rbx.getString("ForwardSensor")));
p21.add(forwardSensorField);
forwardSensorField.setToolTipText(rbx.getString("ForwardSensorHint"));
p21.add(new JLabel(" "));
p21.add(new JLabel(rbx.getString("ReverseSensor")));
p21.add(reverseSensorField);
reverseSensorField.setToolTipText(rbx.getString("ReverseSensorHint"));
addFrame.getContentPane().add(p21);
addFrame.getContentPane().add(new JSeparator());
// set up for stopping sensors
JPanel p40 = new JPanel();
p40.setLayout(new FlowLayout());
p40.add(new JLabel(rbx.getString("StoppingSensorLabel")));
addFrame.getContentPane().add(p40);
JPanel p41 = new JPanel();
p41.setLayout(new FlowLayout());
p41.add(new JLabel(rbx.getString("ForwardStopSensor")));
p41.add(forwardStopSensorField);
forwardStopSensorField.setToolTipText(rbx.getString("ForwardStopSensorHint"));
p41.add(new JLabel(" "));
p41.add(new JLabel(rbx.getString("ReverseStopSensor")));
p41.add(reverseStopSensorField);
reverseStopSensorField.setToolTipText(rbx.getString("ReverseStopSensorHint"));
addFrame.getContentPane().add(p41);
addFrame.getContentPane().add(new JSeparator());
// set up bottom buttons
JButton cancel = null;
JPanel pb = new JPanel();
pb.setLayout(new FlowLayout());
pb.add(cancel = new JButton(Bundle.getMessage("ButtonCancel")));
cancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cancelPressed(e);
}
});
cancel.setToolTipText(rbx.getString("CancelButtonHint"));
pb.add(create = new JButton(Bundle.getMessage("ButtonCreate")));
create.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
createPressed(e);
}
});
create.setToolTipText(rbx.getString("SectionCreateButtonHint"));
pb.add(update = new JButton(Bundle.getMessage("ButtonUpdate")));
update.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
updatePressed(e);
}
});
update.setToolTipText(rbx.getString("SectionUpdateButtonHint"));
addFrame.getContentPane().add(pb);
}
if (editMode) {
// setup for edit window
_autoSystemName.setVisible(false);
sysNameLabel.setEnabled(true);
create.setVisible(false);
update.setVisible(true);
sysName.setVisible(false);
sysNameFixed.setVisible(true);
initializeEditInformation();
} else {
// setup for create window
_autoSystemName.setVisible(true);
create.setVisible(true);
update.setVisible(false);
sysName.setVisible(true);
sysNameFixed.setVisible(false);
autoSystemName();
clearForCreate();
}
// initialize layout editor panels
if (initializeLayoutEditorCombo(layoutEditorBox)) {
manually.setVisible(true);
automatic.setVisible(true);
layoutEditorBox.setVisible(true);
} else {
manually.setVisible(false);
automatic.setVisible(false);
layoutEditorBox.setVisible(false);
}
// initialize block combo - first time
initializeBlockCombo();
addFrame.pack();
addFrame.setVisible(true);
}
use of javax.swing.table.TableColumn in project JMRI by JMRI.
the class SensorTableDataModel method showPullUp.
public void showPullUp(boolean show) {
XTableColumnModel columnModel = (XTableColumnModel) table.getColumnModel();
TableColumn column = columnModel.getColumnByModelIndex(PULLUPCOL);
columnModel.setColumnVisible(column, show);
}
use of javax.swing.table.TableColumn in project JMRI by JMRI.
the class ListFrame method initComponents.
@Override
public void initComponents() throws Exception {
// set the frame's initial state
setTitle(rb.getString("WindowTitle"));
setSize(500, 400);
Container contentPane = getContentPane();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
// Set up the node selection panel
initializeNodes();
nodeSelBox.setEditable(false);
if (numConfigNodes > 0) {
nodeSelBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
displayNodeInfo((String) nodeSelBox.getSelectedItem());
}
});
inputBits.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
if (inputSelected == false) {
inputSelected = true;
displayNodeInfo(selNodeID);
}
}
});
outputBits.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
if (inputSelected == true) {
inputSelected = false;
displayNodeInfo(selNodeID);
}
}
});
} else {
nodeInfoText.setText(rb.getString("NoNodesError"));
}
nodeSelBox.setToolTipText(rb.getString("NodeBoxTip"));
inputBits.setToolTipText(rb.getString("ShowInputTip"));
outputBits.setToolTipText(rb.getString("ShowOutputTip"));
JPanel panel1 = new JPanel();
panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
JPanel panel11 = new JPanel();
panel11.add(nodeLabel);
panel11.add(nodeSelBox);
bitTypeGroup.add(outputBits);
bitTypeGroup.add(inputBits);
panel11.add(inputBits);
panel11.add(outputBits);
JPanel panel12 = new JPanel();
panel12.add(nodeInfoText);
panel1.add(panel11);
panel1.add(panel12);
Border panel1Border = BorderFactory.createEtchedBorder();
Border panel1Titled = BorderFactory.createTitledBorder(panel1Border, rb.getString("NodePanelName"));
panel1.setBorder(panel1Titled);
contentPane.add(panel1);
if (numConfigNodes > 0) {
// Set up the assignment panel
assignmentPanel = new JPanel();
assignmentPanel.setLayout(new BoxLayout(assignmentPanel, BoxLayout.Y_AXIS));
assignmentListModel = new AssignmentTableModel();
assignmentTable = new JTable(assignmentListModel);
assignmentTable.setRowSelectionAllowed(false);
assignmentTable.setPreferredScrollableViewportSize(new java.awt.Dimension(300, 350));
TableColumnModel assignmentColumnModel = assignmentTable.getColumnModel();
TableColumn bitColumn = assignmentColumnModel.getColumn(AssignmentTableModel.BIT_COLUMN);
bitColumn.setMinWidth(20);
bitColumn.setMaxWidth(40);
bitColumn.setResizable(true);
TableColumn addressColumn = assignmentColumnModel.getColumn(AssignmentTableModel.ADDRESS_COLUMN);
addressColumn.setMinWidth(40);
addressColumn.setMaxWidth(85);
addressColumn.setResizable(true);
TableColumn sysColumn = assignmentColumnModel.getColumn(AssignmentTableModel.SYSNAME_COLUMN);
sysColumn.setMinWidth(75);
sysColumn.setMaxWidth(100);
sysColumn.setResizable(true);
TableColumn userColumn = assignmentColumnModel.getColumn(AssignmentTableModel.USERNAME_COLUMN);
userColumn.setMinWidth(90);
userColumn.setMaxWidth(450);
userColumn.setResizable(true);
JScrollPane assignmentScrollPane = new JScrollPane(assignmentTable);
assignmentPanel.add(assignmentScrollPane, BorderLayout.CENTER);
if (inputSelected) {
assignmentPanel.setBorder(inputBorderTitled);
} else {
assignmentPanel.setBorder(outputBorderTitled);
}
contentPane.add(assignmentPanel);
}
// Set up Print button
JPanel panel3 = new JPanel();
panel3.setLayout(new FlowLayout());
printButton.setVisible(true);
printButton.setToolTipText(rb.getString("PrintButtonTip"));
if (numConfigNodes > 0) {
printButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
printButtonActionPerformed(e);
}
});
}
panel3.add(printButton);
contentPane.add(panel3);
if (numConfigNodes > 0) {
// initialize for the first time
displayNodeInfo((String) nodeSelBox.getSelectedItem());
}
addHelpMenu("package.jmri.jmrix.maple.assignment.ListFrame", true);
// pack for display
pack();
}
Aggregations