1 19 package org.netbeans.modules.refactoring.java.ui; 20 21 import java.awt.Component ; 22 import java.awt.Dimension ; 23 import java.util.Set ; 24 import javax.swing.AbstractListModel ; 25 import javax.swing.ComboBoxModel ; 26 import javax.swing.JPanel ; 27 import javax.swing.event.ChangeListener ; 28 import javax.swing.event.TableModelEvent ; 29 import javax.swing.event.TableModelListener ; 30 import javax.swing.table.AbstractTableModel ; 31 import org.netbeans.api.java.source.TreePathHandle; 32 import org.netbeans.modules.refactoring.java.api.PullUpRefactoring; 33 import org.netbeans.modules.refactoring.spi.ui.CustomRefactoringPanel; 34 import org.openide.util.NbBundle; 35 36 37 41 public class PullUpPanel extends JPanel implements CustomRefactoringPanel { 42 private static final String [] COLUMN_NAMES = {"LBL_PullUp_Selected", "LBL_PullUp_Member", "LBL_PullUp_MakeAbstract"}; private static final Class [] COLUMN_CLASSES = {Boolean .class, TreePathHandle.class, Boolean .class}; 45 46 private final PullUpRefactoring refactoring; 48 private final TableModel tableModel; 50 private Set selectedMembers; 53 private TreePathHandle targetType; 55 private Object [][] members = new Object [0][0]; 58 59 65 public PullUpPanel(PullUpRefactoring refactoring, Set selectedMembers, final ChangeListener parent) { 66 this.refactoring = refactoring; 67 this.tableModel = new TableModel (); 68 this.selectedMembers = selectedMembers; 69 initComponents(); 70 setPreferredSize(new Dimension (420, 380)); 71 membersTable.getModel().addTableModelListener(new TableModelListener () { 72 public void tableChanged(TableModelEvent e) { 73 parent.stateChanged(null); 74 } 75 }); 76 } 77 78 80 public void initialize() { 81 } 167 168 170 174 public TreePathHandle getTargetType() { 175 return targetType; 176 } 177 178 181 public PullUpRefactoring.MemberInfo[] getMembers() { 182 return new PullUpRefactoring.MemberInfo[0]; 209 } 210 211 213 218 private void initComponents() { 220 supertypePanel = new javax.swing.JPanel (); 221 supertypeCombo = new javax.swing.JComboBox (); 222 supertypeLabel = new javax.swing.JLabel (); 223 chooseLabel = new javax.swing.JLabel (); 224 scrollPane = new javax.swing.JScrollPane (); 225 membersTable = new javax.swing.JTable (); 226 227 setLayout(new java.awt.BorderLayout ()); 228 229 setBorder(javax.swing.BorderFactory.createEmptyBorder(12, 12, 11, 11)); 230 setName(org.openide.util.NbBundle.getMessage(PullUpPanel.class, "LBL_PullUpHeader", new Object [] {UIUtilities.getDisplayText(refactoring.getSourceType())}) ); 231 supertypePanel.setLayout(new java.awt.BorderLayout (12, 0)); 232 233 supertypePanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 234 supertypePanel.add(supertypeCombo, java.awt.BorderLayout.CENTER); 235 236 supertypeLabel.setLabelFor(supertypeCombo); 237 org.openide.awt.Mnemonics.setLocalizedText(supertypeLabel, java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("LBL_PullUp_Supertype")); 238 supertypePanel.add(supertypeLabel, java.awt.BorderLayout.WEST); 239 supertypeLabel.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(PullUpPanel.class, "ACSD_DestinationSupertypeName")); 240 supertypeLabel.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PullUpPanel.class, "ACSD_DestinationSupertypeDescription")); 241 242 chooseLabel.setLabelFor(membersTable); 243 org.openide.awt.Mnemonics.setLocalizedText(chooseLabel, org.openide.util.NbBundle.getMessage(PullUpPanel.class, "LBL_PullUpLabel")); 244 chooseLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(6, 0, 0, 0)); 245 supertypePanel.add(chooseLabel, java.awt.BorderLayout.SOUTH); 246 247 add(supertypePanel, java.awt.BorderLayout.NORTH); 248 249 membersTable.setModel(tableModel); 250 membersTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_NEXT_COLUMN); 251 scrollPane.setViewportView(membersTable); 252 membersTable.getAccessibleContext().setAccessibleName(org.openide.util.NbBundle.getMessage(PullUpPanel.class, "ACSD_MembersToPullUp")); 253 membersTable.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(PullUpPanel.class, "ACSD_MembersToPullUpDescription")); 254 255 add(scrollPane, java.awt.BorderLayout.CENTER); 256 257 } 258 260 261 private javax.swing.JLabel chooseLabel; 263 private javax.swing.JTable membersTable; 264 private javax.swing.JScrollPane scrollPane; 265 private javax.swing.JComboBox supertypeCombo; 266 private javax.swing.JLabel supertypeLabel; 267 private javax.swing.JPanel supertypePanel; 268 270 public Component getComponent() { 271 return this; 272 } 273 274 276 278 private class TableModel extends AbstractTableModel { 279 public int getColumnCount() { 280 return COLUMN_NAMES.length; 281 } 282 283 public String getColumnName(int column) { 284 return UIUtilities.getColumnName(NbBundle.getMessage(PullUpPanel.class, COLUMN_NAMES[column])); 285 } 286 287 public Class getColumnClass(int columnIndex) { 288 return COLUMN_CLASSES[columnIndex]; 289 } 290 291 public int getRowCount() { 292 return members.length; 293 } 294 295 public Object getValueAt(int rowIndex, int columnIndex) { 296 return members[rowIndex][columnIndex]; 297 } 298 299 public void setValueAt(Object value, int rowIndex, int columnIndex) { 300 members[rowIndex][columnIndex] = value; 301 fireTableDataChanged(); 302 } 303 304 public boolean isCellEditable(int rowIndex, int columnIndex) { 305 if (columnIndex == 2) { 306 if (members[rowIndex][2] == null) { 310 return false; 311 } 312 Object element = members[rowIndex][1]; 313 return false; 316 } else { 317 return columnIndex == 0; 319 } 320 } 321 322 323 406 408 private class ComboModel extends AbstractListModel implements ComboBoxModel { 409 private final TreePathHandle[] supertypes; 410 411 415 ComboModel(TreePathHandle[] supertypes) { 416 this.supertypes = supertypes; 417 if (supertypes.length > 0) { 418 setSelectedItem(supertypes[0]); 419 } 420 } 421 422 427 public void setSelectedItem(Object anItem) { 428 } 447 448 public Object getSelectedItem() { 449 return targetType; 450 } 451 452 public Object getElementAt(int index) { 453 return supertypes[index]; 454 } 455 456 public int getSize() { 457 return supertypes.length; 458 } 459 } 460 461 } 462 } 463 | Popular Tags |