1 19 24 25 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.common; 26 27 import java.awt.GridBagConstraints ; 28 import java.awt.GridBagLayout ; 29 30 import javax.swing.JComboBox ; 31 import javax.swing.JComponent ; 32 import javax.swing.JLabel ; 33 import javax.swing.JPanel ; 34 import javax.swing.JTable ; 35 import javax.swing.ListSelectionModel ; 36 import javax.swing.table.JTableHeader ; 37 import javax.swing.table.TableCellRenderer ; 38 import javax.swing.table.TableColumnModel ; 39 import javax.swing.table.TableColumn ; 40 import javax.swing.table.TableModel ; 41 42 43 48 49 public abstract class MultiMethodTablePanel extends MethodTablePanel { 50 51 private MultiMethodTableModel model ; 52 53 54 public MultiMethodTablePanel(MultiMethodTableModel model){ 55 super(model); 56 this.model = model; 57 initComponents(); 58 } 59 60 61 public MultiMethodTablePanel(){ 62 super(); 63 this.model = getMultiMethodTableModel(); 64 initComponents(); 65 } 66 67 68 protected void setData(){ 69 selectionComboBox.setModel(new javax.swing.DefaultComboBoxModel (model.getSelections())); 71 methodTable.setModel(model); 72 } 73 74 75 protected abstract MultiMethodTableModel getMultiMethodTableModel(); 76 77 protected abstract String getSelectionLabelText(); 78 protected abstract String getSelectionLabelAcsblName(); 79 protected abstract String getSelectionLabelAcsblDesc(); 80 protected abstract char getSelectionLabelMnemonic(); 81 protected abstract String getSelectionComboAcsblName(); 82 protected abstract String getSelectionComboToolTip(); 83 protected abstract String getSelectionComboAcsblDesc(); 84 protected abstract String getTablePaneAcsblName(); 85 protected abstract String getTablePaneAcsblDesc(); 86 protected abstract String getTablePaneToolTip(); 87 88 89 protected MethodTableModel getMethodTableModel(){ 90 return getMultiMethodTableModel(); 91 } 92 93 94 protected void initComponents() { 95 if(model == null) return; 96 97 setLayout(new GridBagLayout ()); 98 99 addComponentListener(new java.awt.event.ComponentAdapter () { 100 public void componentResized(java.awt.event.ComponentEvent evt) { 101 panelResized(evt); 102 } 103 }); 104 105 GridBagConstraints gridBagConstraints; 106 gridBagConstraints = new java.awt.GridBagConstraints (); 107 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 108 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 109 gridBagConstraints.insets = new java.awt.Insets (6,6,0,5); 110 selectionPanel = getSelectionPanel(); 111 add(selectionPanel, gridBagConstraints); 112 113 methodTable = new TableWithToolTips(); 114 115 JTableHeader header = methodTable.getTableHeader(); 116 ColumnHeaderToolTips tips = new ColumnHeaderToolTips(); 117 118 header.addMouseMotionListener(tips); 120 121 methodTable.setModel(model); 122 methodTable.setRowSelectionAllowed(false); 123 methodTable.setColumnSelectionAllowed(false); 124 methodTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 125 126 methodTable.setTableHeader(methodTable.getTableHeader()); 127 javax.swing.table.TableColumnModel columnModel = methodTable.getColumnModel(); 128 javax.swing.table.TableColumn column = columnModel.getColumn(2); 129 javax.swing.table.TableCellEditor celleditor = 130 new javax.swing.DefaultCellEditor (new javax.swing.JTextField ()); 131 column.setCellEditor(celleditor); 132 133 137 tablePane = new javax.swing.JScrollPane (methodTable); 138 tablePane.setOpaque(true); 139 tablePane.setToolTipText(getTablePaneToolTip()); 140 add(tablePane, getTableGridBagConstraints()); 141 tablePane.getAccessibleContext().setAccessibleName(getTablePaneAcsblName()); 142 tablePane.getAccessibleContext().setAccessibleDescription(getTablePaneAcsblDesc()); 143 } 144 145 private javax.swing.JPanel selectionPanel; 146 private javax.swing.JComboBox selectionComboBox; 147 private javax.swing.JLabel selectionLabel; 148 149 150 private void selectionItemStateChanged(java.awt.event.ItemEvent evt) { 151 String selection = (String )selectionComboBox.getSelectedItem(); 152 this.model = getMultiMethodTableModel(); 153 methodTable.setModel(this.model); 155 model.setSelection(selection); 156 } 159 160 161 void setColumnColor(){ 162 TableCellRenderer rend = methodTable.getCellRenderer(0, 0); 163 JComponent comp = (JComponent )rend; 166 comp.setBackground(DisabledBackgroundColor); 167 comp.setOpaque(true); 168 } 169 170 171 private JPanel getSelectionPanel(){ 172 JPanel selectionPanel = new JPanel (); 173 selectionPanel.setLayout(new GridBagLayout ()); 174 175 selectionLabel = new javax.swing.JLabel (); 176 selectionLabel.setText(getSelectionLabelText()); 177 selectionLabel.setLabelFor(selectionComboBox); 178 selectionLabel.setDisplayedMnemonic(getSelectionLabelMnemonic()); 179 181 GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints (); 182 gridBagConstraints.insets = new java.awt.Insets (0,0,0,0); 183 selectionPanel.add(selectionLabel, gridBagConstraints); 184 selectionLabel.getAccessibleContext().setAccessibleName(getSelectionLabelAcsblName()); 185 selectionLabel.getAccessibleContext().setAccessibleDescription(getSelectionLabelAcsblDesc()); 186 187 selectionComboBox = new JComboBox (); 188 String [] selections = model.getSelections(); 189 selectionComboBox.setModel(new javax.swing.DefaultComboBoxModel (selections)); 190 selectionComboBox.setToolTipText(getSelectionComboToolTip()); 191 selectionComboBox.addItemListener(new java.awt.event.ItemListener () { 192 public void itemStateChanged(java.awt.event.ItemEvent evt) { 193 selectionItemStateChanged(evt); 194 } 195 }); 196 197 gridBagConstraints = new java.awt.GridBagConstraints (); 198 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 199 gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; 200 gridBagConstraints.insets = new java.awt.Insets (0,6,0,0); 201 selectionPanel.add(selectionComboBox, gridBagConstraints); 202 selectionComboBox.getAccessibleContext().setAccessibleName(getSelectionComboAcsblName()); 203 selectionComboBox.getAccessibleContext().setAccessibleDescription(getSelectionComboAcsblDesc()); 204 return selectionPanel; 205 } 206 207 208 private void panelResized(java.awt.event.ComponentEvent evt) { 209 int width = (int)methodTable.getPreferredSize().getWidth(); 210 int height = (int)this.getSize().getHeight()* 3/4 ; 211 tablePane.setMinimumSize(new java.awt.Dimension (width, height)); 212 tablePane.setPreferredSize(new java.awt.Dimension (width, height)); 213 updateUI(); 214 } 215 } 216 | Popular Tags |