1 18 package org.netbeans.modules.refactoring.experimental.ui; 19 20 import java.util.ArrayList ; 21 import java.util.BitSet ; 22 import java.util.List ; 23 import javax.swing.UIManager ; 24 import javax.swing.table.AbstractTableModel ; 25 import org.netbeans.jmi.javamodel.Resource; 26 import org.netbeans.modules.refactoring.experimental.CleanUpRefactoring; 27 import org.netbeans.modules.refactoring.spi.ui.CustomRefactoringPanel; 28 import org.netbeans.modules.refactoring.ui.UIUtilities; 29 30 33 public class CleanUpPanel extends CustomRefactoringPanel { 34 35 private CleanUpRefactoring refactoring; 36 37 private List elements; 38 39 public CleanUpPanel(CleanUpRefactoring refactoring, List elements) { 40 this.refactoring = refactoring; 41 this.elements = elements; 42 initComponents(); 43 } 44 45 List getSelectedResources() { 46 return ((ResourceTableModel) elementsTable.getModel()).getSelectedElements(); 47 } 48 49 boolean isCommentInsteadOfRemoving() { 50 return commentInsteadOfRemovingCheckBox.isSelected(); 51 } 52 53 boolean isRemoveUnusedImports() { 54 return removeUnusedImportsCheckBox.isSelected(); 55 } 56 57 boolean isRemoveUnusedFields() { 58 return removeUnusedElementsCheckBox.isSelected(); 59 } 60 61 boolean isRemoveUnusedCallableFeatures() { 62 return removeUnusedElementsCheckBox.isSelected(); 63 } 64 65 boolean isRemoveUnusedLocalVars() { 66 return removeUnusedElementsCheckBox.isSelected(); 67 } 68 69 boolean isRemoveRedundantCasts() { 70 return removeRedundantCastsCheckBox.isSelected(); 71 } 72 73 boolean isRemoveUnusedClasses() { 74 return removeUnusedElementsCheckBox.isSelected(); 75 } 76 77 public void initialize() { 78 elementsTable.setModel(new ResourceTableModel()); 79 elementsTable.setDefaultRenderer(Resource.class, new UIUtilities.JavaElementTableCellRenderer()); 80 UIUtilities.initColumnWidth(elementsTable, 0, Boolean.TRUE, 4); 81 elementsScrollPane.setBackground(elementsTable.getBackground()); 82 elementsScrollPane.getViewport().setBackground(elementsTable.getBackground()); 83 elementsTable.setRowHeight(18); 85 if (UIManager.getColor("control") != null) { elementsTable.setGridColor(UIManager.getColor("control")); } 89 } 90 91 public void addNotify() { 92 super.addNotify(); 93 elementsTable.changeSelection(0, 0, true, false); 94 elementsTable.editCellAt(0, 0); 95 elementsTable.requestFocus(); 96 } 97 98 private class ResourceTableModel extends AbstractTableModel { 99 100 private BitSet skippedResourceMask; 101 102 public ResourceTableModel() { 103 skippedResourceMask = new BitSet (elements.size()); 104 } 105 106 public int getColumnCount() { 107 return 2; 108 } 109 110 public int getRowCount() { 111 return elements.size(); 112 } 113 114 public Object getValueAt(int rowIndex, int columnIndex) { 115 if (columnIndex == 0) { 116 return Boolean.valueOf(!skippedResourceMask.get(rowIndex)); 117 } else { 118 return elements.get(rowIndex); 119 } 120 } 121 122 public void setValueAt(Object aValue, int rowIndex, int columnIndex) { 123 skippedResourceMask.set(rowIndex, !((Boolean ) aValue).booleanValue()); 124 } 125 126 public boolean isCellEditable(int rowIndex, int columnIndex) { 127 return columnIndex == 0; 128 } 129 130 public Class getColumnClass(int columnIndex) { 131 if (columnIndex == 0) { 132 return Boolean .class; 133 } else { 134 return Resource.class; 135 } 136 } 137 138 public String getColumnName(int column) { 139 return column == 0 ? 140 "" : org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "LBL_JavaClassFile"); } 143 144 public List getSelectedElements() { 145 int sz = elements.size(); 146 List result = new ArrayList (); 147 for (int i = 0; i < sz; i++) { 148 if (!skippedResourceMask.get(i)) { 149 result.add(elements.get(i)); 150 } 151 } 152 return result; 153 } 154 155 } 156 157 162 private void initComponents() { 164 java.awt.GridBagConstraints gridBagConstraints; 165 166 elementsLabel = new javax.swing.JLabel (); 167 elementsScrollPane = new javax.swing.JScrollPane (); 168 elementsTable = new javax.swing.JTable (); 169 removeUnusedElementsCheckBox = new javax.swing.JCheckBox (); 170 removeRedundantCastsCheckBox = new javax.swing.JCheckBox (); 171 removeUnusedImportsCheckBox = new javax.swing.JCheckBox (); 172 commentInsteadOfRemovingCheckBox = new javax.swing.JCheckBox (); 173 174 setLayout(new java.awt.GridBagLayout ()); 175 176 org.openide.awt.Mnemonics.setLocalizedText(elementsLabel, org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "LBL_ClassesFiles")); 177 gridBagConstraints = new java.awt.GridBagConstraints (); 178 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 179 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 180 add(elementsLabel, gridBagConstraints); 181 182 elementsScrollPane.setOpaque(false); 183 elementsScrollPane.setPreferredSize(new java.awt.Dimension (453, 180)); 184 elementsScrollPane.setViewportView(elementsTable); 185 186 gridBagConstraints = new java.awt.GridBagConstraints (); 187 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 188 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 189 gridBagConstraints.weightx = 1.0; 190 gridBagConstraints.weighty = 0.6; 191 add(elementsScrollPane, gridBagConstraints); 192 193 removeUnusedElementsCheckBox.setSelected(true); 194 org.openide.awt.Mnemonics.setLocalizedText(removeUnusedElementsCheckBox, org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "LBL_RemoveUnusedElements")); 195 removeUnusedElementsCheckBox.setToolTipText(org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "TXT_UnusedElementsToolTip")); 196 removeUnusedElementsCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 197 removeUnusedElementsCheckBox.setMargin(new java.awt.Insets (0, 0, 0, 0)); 198 removeUnusedElementsCheckBox.addChangeListener(new javax.swing.event.ChangeListener () { 199 public void stateChanged(javax.swing.event.ChangeEvent evt) { 200 removeUnusedElementsCheckBoxStateChanged(evt); 201 } 202 }); 203 204 gridBagConstraints = new java.awt.GridBagConstraints (); 205 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 206 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 207 gridBagConstraints.insets = new java.awt.Insets (5, 0, 0, 0); 208 add(removeUnusedElementsCheckBox, gridBagConstraints); 209 210 removeRedundantCastsCheckBox.setSelected(true); 211 org.openide.awt.Mnemonics.setLocalizedText(removeRedundantCastsCheckBox, org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "LBL_RemoveObsoleteCasts")); 212 removeRedundantCastsCheckBox.setToolTipText(org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "TXT_RedundantCastsToolTip")); 213 removeRedundantCastsCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 214 removeRedundantCastsCheckBox.setMargin(new java.awt.Insets (0, 0, 0, 0)); 215 gridBagConstraints = new java.awt.GridBagConstraints (); 216 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 217 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 218 gridBagConstraints.insets = new java.awt.Insets (5, 0, 0, 0); 219 add(removeRedundantCastsCheckBox, gridBagConstraints); 220 221 removeUnusedImportsCheckBox.setSelected(true); 222 org.openide.awt.Mnemonics.setLocalizedText(removeUnusedImportsCheckBox, org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "LBL_RemoveUnusedImports")); 223 removeUnusedImportsCheckBox.setToolTipText(org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "TXT_RemoveImportsToolTip")); 224 removeUnusedImportsCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 225 removeUnusedImportsCheckBox.setMargin(new java.awt.Insets (0, 0, 0, 0)); 226 gridBagConstraints = new java.awt.GridBagConstraints (); 227 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 228 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 229 gridBagConstraints.insets = new java.awt.Insets (5, 0, 0, 0); 230 add(removeUnusedImportsCheckBox, gridBagConstraints); 231 232 org.openide.awt.Mnemonics.setLocalizedText(commentInsteadOfRemovingCheckBox, org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "LBL_CommentOut")); 233 commentInsteadOfRemovingCheckBox.setToolTipText(org.openide.util.NbBundle.getMessage(CleanUpPanel.class, "TXT_CommentOut")); 234 commentInsteadOfRemovingCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 235 commentInsteadOfRemovingCheckBox.setEnabled(false); 236 commentInsteadOfRemovingCheckBox.setMargin(new java.awt.Insets (0, 0, 0, 0)); 237 gridBagConstraints = new java.awt.GridBagConstraints (); 238 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 239 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 240 gridBagConstraints.insets = new java.awt.Insets (10, 0, 0, 0); 241 add(commentInsteadOfRemovingCheckBox, gridBagConstraints); 242 243 } 245 private void removeUnusedElementsCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) { } 249 250 private javax.swing.JCheckBox commentInsteadOfRemovingCheckBox; 252 private javax.swing.JLabel elementsLabel; 253 private javax.swing.JScrollPane elementsScrollPane; 254 private javax.swing.JTable elementsTable; 255 private javax.swing.JCheckBox removeRedundantCastsCheckBox; 256 private javax.swing.JCheckBox removeUnusedElementsCheckBox; 257 private javax.swing.JCheckBox removeUnusedImportsCheckBox; 258 260 } 261 | Popular Tags |