package com.vgi.mafscaling; import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.ScrollPaneConstants; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; import javax.swing.table.DefaultTableModel; public class MafTablePane extends JScrollPane { private static final long serialVersionUID = 4656913571229048807L; public static final int MafTableColumnCount = 35; JTable mafTable = null; JLabel voltLabel = null; JLabel gsLabel = null; public MafTablePane(int columnWidth, String tableName, boolean editableFirstRow, boolean editableSecondRow) { Insets insets0 = new Insets(0, 0, 0, 0); JPanel dataMafPanel = new JPanel(); GridBagLayout gbl_dataMafPanel = new GridBagLayout(); gbl_dataMafPanel.columnWidths = new int[]{0, 0}; gbl_dataMafPanel.rowHeights = new int[] {0, 0}; gbl_dataMafPanel.columnWeights = new double[]{0.0, 1.0}; gbl_dataMafPanel.rowWeights = new double[]{0.0, 0.0}; dataMafPanel.setLayout(gbl_dataMafPanel); GridBagConstraints gbc_label = new GridBagConstraints(); gbc_label.anchor = GridBagConstraints.EAST; gbc_label.insets = insets0; gbc_label.gridx = 0; gbc_label.gridy = 0; voltLabel = new JLabel("volt "); dataMafPanel.add(voltLabel, gbc_label); gbc_label.gridy = 1; gsLabel = new JLabel("g/s "); dataMafPanel.add(gsLabel, gbc_label); if (editableFirstRow && editableSecondRow) mafTable = new JTable(); else if (editableFirstRow) { mafTable = new JTable() { private static final long serialVersionUID = 7749582128758153892L; public boolean isCellEditable(int row, int column) { if (row == 1) return true; return false; }; }; } else if (editableSecondRow) { mafTable = new JTable() { private static final long serialVersionUID = 7749582128758153892L; public boolean isCellEditable(int row, int column) { if (row == 1) return false; return true; }; }; } else { mafTable = new JTable() { private static final long serialVersionUID = -7484222189491449568L; public boolean isCellEditable(int row, int column) { return false; }; }; } mafTable.setColumnSelectionAllowed(true); mafTable.setCellSelectionEnabled(true); mafTable.setBorder(new LineBorder(new Color(0, 0, 0))); mafTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); mafTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); mafTable.setModel(new DefaultTableModel(2, MafTableColumnCount)); mafTable.setTableHeader(null); mafTable.putClientProperty("terminateEditOnFocusLost", true); Utils.initializeTable(mafTable, columnWidth); GridBagConstraints gbc_mafTable = new GridBagConstraints(); gbc_mafTable.insets = insets0; gbc_mafTable.fill = GridBagConstraints.HORIZONTAL; gbc_mafTable.weightx = 1.0; gbc_mafTable.gridx = 1; gbc_mafTable.gridy = 0; gbc_mafTable.gridheight = 2; dataMafPanel.add(mafTable, gbc_mafTable); setViewportView(dataMafPanel); if (tableName != null) setViewportBorder(new TitledBorder(null, tableName, TitledBorder.LEADING, TitledBorder.TOP, null, null)); setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); } public void hideRowHeaders() { voltLabel.setVisible(false); gsLabel.setVisible(false); } public void showRowHeaders() { voltLabel.setVisible(true); gsLabel.setVisible(true); } public JTable getJTable() { return mafTable; } }