|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.refactoring.ui; import java.awt.BorderLayout; import java.awt.Dimension; import java.lang.reflect.Modifier; import java.text.MessageFormat; import java.util.Collection; import javax.swing.JPanel; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.Document; import org.netbeans.jmi.javamodel.Element; import org.netbeans.jmi.javamodel.Method; import org.netbeans.modules.javacore.jmiimpl.javamodel.MethodImpl; import org.netbeans.modules.refactoring.api.ui.ParametersPanel; import org.openide.awt.Mnemonics; import org.openide.util.NbBundle; import javax.jmi.reflect.RefObject; import org.netbeans.jmi.javamodel.CallableFeature; import org.netbeans.jmi.javamodel.ClassDefinition; import org.netbeans.jmi.javamodel.Constructor; import org.netbeans.jmi.javamodel.ElementPartKindEnum; import org.netbeans.jmi.javamodel.Field; import org.netbeans.jmi.javamodel.JavaClass; import org.netbeans.jmi.javamodel.JavaPackage; import org.netbeans.jmi.javamodel.NamedElement; import org.netbeans.modules.javacore.internalapi.JavaMetamodel; import org.netbeans.modules.javacore.jmiimpl.javamodel.CallableFeatureImpl; import org.netbeans.modules.javacore.jmiimpl.javamodel.MetadataElement; /** * @author Jan Becicka */ public class WhereUsedPanel extends JPanel { private final transient RefObject element; private final transient ParametersPanel parent; /** Creates new form RenamePanelName */ public WhereUsedPanel(String name, RefObject e, ParametersPanel parent) { setName(NbBundle.getMessage(WhereUsedPanel.class,"LBL_WhereUsed")); // NOI18N this.element = e; this.parent = parent; initComponents(); remove(classesPanel); remove(methodsPanel); parent.setPreviewEnabled(false); JavaMetamodel.getDefaultRepository().beginTrans(true); try { if (e instanceof Method) { add(methodsPanel, BorderLayout.CENTER); int modifiers = ((Method) e).getModifiers(); methodsPanel.setVisible(true); m_usages.setVisible(!Modifier.isStatic(modifiers)); m_overriders.setVisible(! (Modifier.isFinal(modifiers) || Modifier.isStatic(modifiers))); label.setText(NbBundle.getMessage(WhereUsedPanel.class, "DSC_MethodUsages", getHeader((CallableFeature) e), getSimpleName(((Method) e).getDeclaringClass()))); // NOI18N Collection overridens = ((MethodImpl) e).getOverridenMethods(); if (!overridens.isEmpty()) { m_isBaseClass.setVisible(true); m_isBaseClass.setSelected(true); Mnemonics.setLocalizedText(m_isBaseClass, new MessageFormat(NbBundle.getMessage(WhereUsedPanel.class, "LBL_UsagesOfBaseClass")).format( new Object[] { getSimpleName(((Method) overridens.iterator().next()).getDeclaringClass()) } ) ); } else { m_isBaseClass.setVisible(false); m_isBaseClass.setSelected(false); } } else { if (e instanceof JavaClass) { add(classesPanel, BorderLayout.CENTER); classesPanel.setVisible(true); label.setText(NbBundle.getMessage(WhereUsedPanel.class, "DSC_ClassUsages", ((JavaClass) e).getSimpleName())); // NOI18N } else { remove(classesPanel); remove(methodsPanel); c_subclasses.setVisible(false); m_usages.setVisible(false); c_usages.setVisible(false); c_directOnly.setVisible(false); if (e instanceof Constructor) { label.setText(NbBundle.getMessage(WhereUsedPanel.class, "DSC_ConstructorUsages", getHeader((CallableFeature)e), getSimpleName(((Constructor) e).getDeclaringClass()))); // NOI18N } else if (e instanceof Field) { label.setText(NbBundle.getMessage(WhereUsedPanel.class, "DSC_FieldUsages", ((NamedElement) e).getName(), getSimpleName(((Field) e).getDeclaringClass()))); // NOI18N } else if (e instanceof JavaPackage) { label.setText(NbBundle.getMessage(WhereUsedPanel.class, "DSC_PackageUsages", ((NamedElement) e).getName())); // NOI18N } else if (e instanceof NamedElement) { label.setText(NbBundle.getMessage(WhereUsedPanel.class, "DSC_VariableUsages", ((NamedElement) e).getName())); // NOI18N } } validate(); } } finally { JavaMetamodel.getDefaultRepository().endTrans(); } } private String getSimpleName(ClassDefinition clazz) { if (clazz instanceof JavaClass) { return ((JavaClass) clazz).getSimpleName(); } else { return NbBundle.getMessage(WhereUsedPanel.class, "LBL_AnonymousClass"); // NOI18N } } private String getHeader(CallableFeature call) { if (((CallableFeatureImpl) call).getParser() == null) { if (call instanceof Method) { return ((Method) call).getName(); } else if (call instanceof Constructor) { return getSimpleName(call.getDeclaringClass()); } return ""; } int s = ((MetadataElement) call).getPartStartOffset(ElementPartKindEnum.HEADER); int e = ((MetadataElement) call).getPartEndOffset(ElementPartKindEnum.HEADER); String result = call.getResource().getSourceText().substring(s,e); if (result.length() > 50) { result = result.substring(0,49) + "..."; // NOI18N } return result; } public void requestFocus() { super.requestFocus(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents java.awt.GridBagConstraints gridBagConstraints; buttonGroup = new javax.swing.ButtonGroup(); methodsPanel = new javax.swing.JPanel(); m_isBaseClass = new javax.swing.JCheckBox(); jPanel1 = new javax.swing.JPanel(); m_overriders = new javax.swing.JCheckBox(); m_usages = new javax.swing.JCheckBox(); classesPanel = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); c_subclasses = new javax.swing.JRadioButton(); c_usages = new javax.swing.JRadioButton(); c_directOnly = new javax.swing.JRadioButton(); label = new javax.swing.JLabel(); setLayout(new java.awt.BorderLayout()); methodsPanel.setLayout(new java.awt.GridBagLayout()); m_isBaseClass.setSelected(true); m_isBaseClass.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { m_isBaseClassActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); methodsPanel.add(m_isBaseClass, gridBagConstraints); m_isBaseClass.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("ACSD_isBaseClass")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; methodsPanel.add(jPanel1, gridBagConstraints); org.openide.awt.Mnemonics.setLocalizedText(m_overriders, org.openide.util.NbBundle.getMessage(WhereUsedPanel.class, "LBL_FindOverridingMethods")); m_overriders.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { m_overridersActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); methodsPanel.add(m_overriders, gridBagConstraints); m_overriders.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("ACSD_overriders")); org.openide.awt.Mnemonics.setLocalizedText(m_usages, org.openide.util.NbBundle.getMessage(WhereUsedPanel.class, "LBL_FindUsages")); m_usages.setSelected(true); m_usages.setMargin(new java.awt.Insets(10, 2, 2, 2)); m_usages.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { m_usagesActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); methodsPanel.add(m_usages, gridBagConstraints); m_usages.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("ACSD_usages")); add(methodsPanel, java.awt.BorderLayout.CENTER); classesPanel.setLayout(new java.awt.GridBagLayout()); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; classesPanel.add(jPanel2, gridBagConstraints); buttonGroup.add(c_subclasses); org.openide.awt.Mnemonics.setLocalizedText(c_subclasses, org.openide.util.NbBundle.getMessage(WhereUsedPanel.class, "LBL_FindAllSubtypes")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); classesPanel.add(c_subclasses, gridBagConstraints); c_subclasses.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("ACSD_subclasses")); buttonGroup.add(c_usages); c_usages.setSelected(true); org.openide.awt.Mnemonics.setLocalizedText(c_usages, org.openide.util.NbBundle.getMessage(WhereUsedPanel.class, "LBL_FindUsages")); c_usages.setMargin(new java.awt.Insets(10, 2, 2, 2)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); classesPanel.add(c_usages, gridBagConstraints); c_usages.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("ACSD_usages")); buttonGroup.add(c_directOnly); org.openide.awt.Mnemonics.setLocalizedText(c_directOnly, org.openide.util.NbBundle.getMessage(WhereUsedPanel.class, "LBL_FindDirectSubtypesOnly")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(0, 12, 0, 0); classesPanel.add(c_directOnly, gridBagConstraints); c_directOnly.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/refactoring/ui/Bundle").getString("ACSD_directOnly")); add(classesPanel, java.awt.BorderLayout.CENTER); add(label, java.awt.BorderLayout.NORTH); }//GEN-END:initComponents private void m_isBaseClassActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_m_isBaseClassActionPerformed parent.stateChanged(null); }//GEN-LAST:event_m_isBaseClassActionPerformed private void m_overridersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_m_overridersActionPerformed parent.stateChanged(null); }//GEN-LAST:event_m_overridersActionPerformed private void m_usagesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_m_usagesActionPerformed parent.stateChanged(null); }//GEN-LAST:event_m_usagesActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup; private javax.swing.JRadioButton c_directOnly; private javax.swing.JRadioButton c_subclasses; private javax.swing.JRadioButton c_usages; private javax.swing.JPanel classesPanel; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JLabel label; private javax.swing.JCheckBox m_isBaseClass; private javax.swing.JCheckBox m_overriders; private javax.swing.JCheckBox m_usages; private javax.swing.JPanel methodsPanel; // End of variables declaration//GEN-END:variables public boolean isMethodFromBaseClass() { return m_isBaseClass.isSelected(); } public boolean isMethodOverriders() { return m_overriders.isSelected(); } public boolean isClassSubTypes() { return c_subclasses.isSelected(); } public boolean isClassSubTypesDirectOnly() { return c_directOnly.isSelected(); } public boolean isMethodFindUsages() { return m_usages.isSelected(); } public boolean isClassFindUsages() { return c_usages.isSelected(); } public Dimension getPreferredSize() { Dimension orig = super.getPreferredSize(); return new Dimension(orig.width + 30 , orig.height + 30); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.