Index: java/editor/src/org/netbeans/modules/editor/java/NbJMIResultItem.java =================================================================== RCS file: /cvs/java/editor/src/org/netbeans/modules/editor/java/NbJMIResultItem.java,v retrieving revision 1.11 diff -u -r1.11 NbJMIResultItem.java --- java/editor/src/org/netbeans/modules/editor/java/NbJMIResultItem.java 29 Mar 2005 09:33:32 -0000 1.11 +++ java/editor/src/org/netbeans/modules/editor/java/NbJMIResultItem.java 16 Apr 2005 20:41:55 -0000 @@ -7,12 +7,21 @@ * 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 + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2005 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.editor.java; +import java.awt.Color; +import java.awt.Component; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import javax.swing.text.BadLocationException; +import javax.swing.text.JTextComponent; +import org.netbeans.api.java.classpath.ClassPath; import org.netbeans.editor.BaseDocument; import org.netbeans.editor.Formatter; import org.netbeans.editor.Utilities; @@ -21,28 +30,28 @@ import org.netbeans.editor.ext.java.JCExpression; import org.netbeans.editor.ext.java.JavaCompletion; import org.netbeans.editor.ext.java.JavaSettingsNames; -import org.netbeans.jmi.javamodel.*; +import org.netbeans.jmi.javamodel.AnnotationType; +import org.netbeans.jmi.javamodel.Attribute; +import org.netbeans.jmi.javamodel.CallableFeature; +import org.netbeans.jmi.javamodel.ClassDefinition; +import org.netbeans.jmi.javamodel.Constructor; +import org.netbeans.jmi.javamodel.Field; +import org.netbeans.jmi.javamodel.JavaClass; +import org.netbeans.jmi.javamodel.JavaEnum; +import org.netbeans.jmi.javamodel.JavaPackage; +import org.netbeans.jmi.javamodel.Method; +import org.netbeans.jmi.javamodel.Parameter; +import org.netbeans.jmi.javamodel.ParameterizedType; +import org.netbeans.jmi.javamodel.PrimitiveType; +import org.netbeans.jmi.javamodel.Type; import org.netbeans.modules.javacore.internalapi.JavaMetamodel; import org.openide.filesystems.FileObject; - import org.openide.filesystems.FileUtil; import org.openide.util.RequestProcessor; -import java.awt.Color; -import java.awt.Component; -import java.awt.event.ActionEvent; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import javax.swing.text.BadLocationException; -import javax.swing.text.JTextComponent; - /** - * * @author Dusan Balek */ - public abstract class NbJMIResultItem implements CompletionQuery.ResultItem { protected int selectionStartOffset = -1; @@ -614,7 +623,15 @@ if (displayFQN) { FileObject resourceFO = JavaMetamodel.getManager().getFileObject(cls.getResource()); if (resourceFO != null) { // Fix of #57032 - this.fileName = FileUtil.getFileDisplayName(resourceFO); + // XXX surely there is an easier way to do this? + // #49737: show location of the source (just the root, not full path which is redundant). + ClassPath sourcepath = ClassPath.getClassPath(resourceFO, ClassPath.SOURCE); + if (sourcepath != null) { + FileObject[] roots = sourcepath.getRoots(); + if (roots.length == 1) { + this.fileName = FileUtil.getFileDisplayName(roots[0]); + } + } } } } Index: java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.java =================================================================== RCS file: /cvs/java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.java,v retrieving revision 1.3 diff -u -r1.3 JavaFastOpenPanel.java --- java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.java 3 Mar 2005 08:11:56 -0000 1.3 +++ java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.java 16 Apr 2005 20:41:55 -0000 @@ -7,33 +7,43 @@ * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original - * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2005 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.editor.ext.java; - import java.awt.Color; +import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; -import java.awt.event.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; - +import javax.swing.AbstractAction; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JComponent; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.KeyStroke; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import org.netbeans.editor.LocaleSupport; - -import javax.swing.*; +import org.netbeans.editor.ext.CompletionQuery; /** * The panel for opening java classes. * * @author Miloslav Metelka - * @version 1.0 */ -class JavaFastOpenPanel extends javax.swing.JPanel { +class JavaFastOpenPanel extends JPanel { private static String CASE_SENSITIVE_SHORTCUT_ACTION = "JFOP_CaseSensitiveShortcutAction"; // NOI18N private static String INNER_CLASSES_SHORTCUT_ACTION = "JFOP_InnerClassesShortcutAction"; // NOI18N @@ -50,7 +60,7 @@ getAccessibleContext().setAccessibleDescription(LocaleSupport.getString ("ACSD_JFO")); // NOI18N expField.getAccessibleContext().setAccessibleDescription(LocaleSupport.getString("ACSD_JFOP_expLabel")); // NOI18N expField.setPreferredSize(null); - final javax.swing.JList jl = jfo.getResultList(); + final JList jl = jfo.getResultList(); listScrollPane.setViewportView(jl); foundLabel.setLabelFor(jl); jl.getAccessibleContext().setAccessibleDescription(LocaleSupport.getString("ACSD_JFOP_foundLabel")); // NOI18N @@ -61,6 +71,18 @@ } } }); + jl.addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + Object o = jl.getSelectedValue(); + if (o instanceof CompletionQuery.ResultItem) { + Component comp = ((CompletionQuery.ResultItem) o).getPaintComponent(jl, true, true); + if (comp instanceof JComponent) { + // #49737: show location of a class we are opening. + locationField.setText(((JComponent) comp).getToolTipText()); + } + } + } + }); expLabel.setDisplayedMnemonic (LocaleSupport.getString ("JFOP_expLabelMnemonic", "C").charAt (0)); // NOI18N expLabel.setLabelFor(expField); @@ -205,7 +227,8 @@ libraryClasses.setSelected(value); } - private void initComponents() {//GEN-BEGIN:initComponents + // //GEN-BEGIN:initComponents + private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; queryPanel = new javax.swing.JPanel(); @@ -214,6 +237,8 @@ listPanel = new javax.swing.JPanel(); foundLabel = new javax.swing.JLabel(); listScrollPane = new javax.swing.JScrollPane(); + locationField = new javax.swing.JTextField(); + locationLabel = new javax.swing.JLabel(); checkBoxesPanel = new javax.swing.JPanel(); caseSensitive = new javax.swing.JCheckBox(); innerClasses = new javax.swing.JCheckBox(); @@ -225,7 +250,7 @@ queryPanel.setLayout(new java.awt.GridBagLayout()); expLabel.setLabelFor(expField); - expLabel.setText(LocaleSupport.getString( "JFOP_expLabel", "Class Name:" )); + org.openide.awt.Mnemonics.setLocalizedText(expLabel, LocaleSupport.getString( "JFOP_expLabel", "Class Name:" )); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHEAST; gridBagConstraints.insets = new java.awt.Insets(2, 0, 0, 0); @@ -246,7 +271,7 @@ listPanel.setLayout(new java.awt.GridBagLayout()); listPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(12, 0, 0, 0))); - foundLabel.setText(LocaleSupport.getString( "JFOP_foundLabel", "Matching Classes:" )); + org.openide.awt.Mnemonics.setLocalizedText(foundLabel, LocaleSupport.getString( "JFOP_foundLabel", "Matching Classes:" )); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; @@ -262,26 +287,44 @@ gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; + gridBagConstraints.insets = new java.awt.Insets(0, 0, 2, 0); listPanel.add(listScrollPane, gridBagConstraints); + locationField.setEditable(false); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 3; + gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; + listPanel.add(locationField, gridBagConstraints); + + locationLabel.setLabelFor(locationField); + org.openide.awt.Mnemonics.setLocalizedText(locationLabel, org.openide.util.NbBundle.getMessage(JavaFastOpenPanel.class, "JFOP_LBL_location")); + gridBagConstraints = new java.awt.GridBagConstraints(); + gridBagConstraints.gridx = 0; + gridBagConstraints.gridy = 2; + gridBagConstraints.ipadx = 1; + gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST; + gridBagConstraints.insets = new java.awt.Insets(0, 0, 2, 0); + listPanel.add(locationLabel, gridBagConstraints); + add(listPanel, java.awt.BorderLayout.CENTER); checkBoxesPanel.setLayout(new java.awt.GridBagLayout()); checkBoxesPanel.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(12, 0, 0, 0))); - caseSensitive.setText(LocaleSupport.getString("JFOP_caseSensitiveBox", "Case Sensitive")); + org.openide.awt.Mnemonics.setLocalizedText(caseSensitive, LocaleSupport.getString("JFOP_caseSensitiveBox", "Case Sensitive")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; checkBoxesPanel.add(caseSensitive, gridBagConstraints); - innerClasses.setText(LocaleSupport.getString("JFOP_innerClassesBox", "Show Inner Classes")); + org.openide.awt.Mnemonics.setLocalizedText(innerClasses, LocaleSupport.getString("JFOP_innerClassesBox", "Show Inner Classes")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; checkBoxesPanel.add(innerClasses, gridBagConstraints); - libraryClasses.setText(LocaleSupport.getString("JFOP_libraryClassesBox", "Show Non-Project Classes")); + org.openide.awt.Mnemonics.setLocalizedText(libraryClasses, LocaleSupport.getString("JFOP_libraryClassesBox", "Show Non-Project Classes")); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.weightx = 1.0; @@ -289,9 +332,10 @@ add(checkBoxesPanel, java.awt.BorderLayout.SOUTH); - }//GEN-END:initComponents - - + } + // //GEN-END:initComponents +//GEN-FIRST:event_locationFieldActionPerformed +//GEN-LAST:event_locationFieldActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox caseSensitive; @@ -303,6 +347,8 @@ private javax.swing.JCheckBox libraryClasses; private javax.swing.JPanel listPanel; private javax.swing.JScrollPane listScrollPane; + private javax.swing.JTextField locationField; + private javax.swing.JLabel locationLabel; private javax.swing.JPanel queryPanel; // End of variables declaration//GEN-END:variables Index: java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.form =================================================================== RCS file: /cvs/java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.form,v retrieving revision 1.2 diff -u -r1.2 JavaFastOpenPanel.form --- java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.form 12 Jan 2005 07:36:27 -0000 1.2 +++ java/editor/lib/src/org/netbeans/editor/ext/java/JavaFastOpenPanel.form 16 Apr 2005 20:41:55 -0000 @@ -9,6 +9,10 @@ + + + + @@ -88,12 +92,37 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + Index: java/editor/lib/src/org/netbeans/editor/ext/java/Bundle.properties =================================================================== RCS file: /cvs/java/editor/lib/src/org/netbeans/editor/ext/java/Bundle.properties,v retrieving revision 1.3 diff -u -r1.3 Bundle.properties --- java/editor/lib/src/org/netbeans/editor/ext/java/Bundle.properties 17 Mar 2005 09:42:25 -0000 1.3 +++ java/editor/lib/src/org/netbeans/editor/ext/java/Bundle.properties 16 Apr 2005 20:41:55 -0000 @@ -64,3 +64,5 @@ # JavaSettingsDefaults macro-debug-var=Debug Identifier + +JFOP_LBL_location=&Location\: