|
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-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.editor.java; import java.text.MessageFormat; import java.util.*; import javax.swing.text.JTextComponent; import org.netbeans.editor.Utilities; import org.netbeans.editor.ext.java.JavaFastImport; import org.netbeans.jmi.javamodel.*; import org.netbeans.modules.editor.options.BaseOptions; import org.netbeans.modules.editor.options.JavaOptions; /** * * @author Dusan Balek * @version 1.0 */ public class NbJavaJMIFastImport extends JavaFastImport { private JMIUtils jmiUtils; private NbJavaJMISyntaxSupport support; public NbJavaJMIFastImport(JTextComponent target) { super(target); jmiUtils = JMIUtils.get(Utilities.getDocument(target)); support = (NbJavaJMISyntaxSupport)Utilities.getSyntaxSupport(target).get(NbJavaJMISyntaxSupport.class); } protected List findClasses(String exp, int importType) { List ret = new ArrayList(); jmiUtils.beginTrans(false); try { List classes = jmiUtils.findClasses(null, exp, true, support.getTopJavaClass(), false); if (importType == 1){ // package import TreeSet ts = new TreeSet(JMIUtils.NATURAL_MEMBER_NAME_COMPARATOR); for (int i=0; i < classes.size(); i++){ JavaPackage pkg = (JavaPackage)((JavaClass)classes.get(i)).getResource().refImmediateComposite(); if (pkg != null){ ts.add(pkg); } } Iterator it = ts.iterator(); while (it.hasNext()) { JavaPackage pkg = (JavaPackage)it.next(); ret.add(new NbJMIResultItem.PackageResultItem(pkg, true)); } } else { for (Iterator it = classes.iterator(); it.hasNext();) { ret.add(new NbJMIResultItem.ClassResultItem((JavaClass) it.next(), true)); } } } finally { jmiUtils.endTrans(false); } return ret; } protected void setFastImportSettings(int importType){ Class kitClass = Utilities.getKitClass(target); if (kitClass != null) { BaseOptions bop = BaseOptions.getOptions(kitClass); if (bop instanceof JavaOptions){ ((JavaOptions)bop).setFastImportSelection(importType); } } } protected void updateImport(Object item) { if (item instanceof NbJMIResultItem.PackageResultItem || item instanceof NbJMIResultItem.ClassResultItem) { jmiUtils.beginTrans(true); try { Resource resource = support.getResource(); if (resource != null) { if (item instanceof NbJMIResultItem.ClassResultItem){ JavaClass cls = (JavaClass)((NbJMIResultItem.ClassResultItem)item).getAssociatedObject(); if (jmiUtils.getPackageName(cls).equals(resource.getPackageName()) || isAlreadyImported(cls, resource)) { Utilities.setStatusText(target, MessageFormat.format( org.openide.util.NbBundle.getMessage(NbJavaJMIFastImport.class,"NJFI_CLASS_ALREADY_IMPORTED"), //NOI18N new Object[] {cls.getName()})); } else { addImport(cls, resource); } }else if (item instanceof NbJMIResultItem.PackageResultItem){ JavaPackage pkg = (JavaPackage)((NbJMIResultItem.PackageResultItem)item).getAssociatedObject(); if (pkg.getName().equals(resource.getPackageName()) || isAlreadyImported(pkg, resource)) { Utilities.setStatusText(target, MessageFormat.format( org.openide.util.NbBundle.getMessage(NbJavaJMIFastImport.class,"NJFI_PACKAGE_ALREADY_IMPORTED"), //NOI18N new Object[] {pkg.getName()})); } else { addImport(pkg, resource); } } } } finally { jmiUtils.endTrans(false); } } } protected String getItemFQN(Object item) { if (item instanceof NbJMIResultItem.ClassResultItem) { JavaClass cls = (JavaClass)((NbJMIResultItem.ClassResultItem)item).getAssociatedObject(); return cls.getName(); } return super.getItemFQN(item); } private boolean isAlreadyImported(NamedElement element, Resource resource) { for (Iterator it = resource.getImports().iterator(); it.hasNext();) { Import imp = (Import) it.next(); if (element.equals(imp.getImportedElement())) return true; } return false; } private void addImport(NamedElement element, Resource resource) { String name = element.getName(); ListIterator it = resource.getImports().listIterator(); while (it.hasNext()) { Import imp = (Import) it.next(); String impName = imp.getName(); if (impName != null && name.compareTo(impName) < 0) { it.previous(); break; } } ImportClass proxy = ((JavaModelPackage)resource.refOutermostPackage()).getImport(); it.add(proxy.createImport(name, null, false, element instanceof JavaPackage)); } } |
... 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.