1 19 package org.netbeans.modules.java.navigation; 20 21 import java.util.ArrayList ; 22 import java.util.Collections ; 23 import java.util.List ; 24 import org.netbeans.api.java.source.CancellableTask; 25 import org.netbeans.api.java.source.CompilationInfo; 26 import org.netbeans.api.java.source.JavaSource.Phase; 27 import org.netbeans.api.java.source.JavaSource.Priority; 28 import org.netbeans.api.java.source.support.LookupBasedJavaSourceTaskFactory; 29 import org.openide.filesystems.FileObject; 30 import org.openide.filesystems.FileUtil; 31 import org.openide.util.Lookup; 32 33 37 public final class ClassMemberNavigatorJavaSourceFactory extends LookupBasedJavaSourceTaskFactory { 38 39 private ClassMemberPanelUI ui; 40 private static final CancellableTask<CompilationInfo> EMPTY_TASK = new CancellableTask<CompilationInfo>() { 41 42 public void cancel() {} 43 44 public void run(CompilationInfo parameter) throws Exception {} 45 }; 46 47 static ClassMemberNavigatorJavaSourceFactory getInstance() { 48 return Lookup.getDefault().lookup(ClassMemberNavigatorJavaSourceFactory.class); 49 } 50 51 public ClassMemberNavigatorJavaSourceFactory() { 52 super(Phase.ELEMENTS_RESOLVED, Priority.NORMAL); 53 } 54 55 public synchronized CancellableTask<CompilationInfo> createTask(FileObject file) { 56 if ( ui == null) { 58 return EMPTY_TASK; 59 } 60 else { 61 return ui.getTask(); 62 } 63 } 64 65 public List <FileObject> getFileObjects() { 66 List <FileObject> result = new ArrayList <FileObject>(); 67 68 for( FileObject fileObject : super.getFileObjects() ) { 70 if (!"text/x-java".equals(FileUtil.getMIMEType(fileObject)) && !"java".equals(fileObject.getExt())) { continue; 72 } 73 result.add(fileObject); 74 } 75 76 if (result.size() == 1) 77 return result; 78 79 return Collections.emptyList(); 80 } 81 82 public synchronized void setLookup(Lookup l, ClassMemberPanelUI ui) { 83 this.ui = ui; 84 super.setLookup(l); 85 } 86 87 @Override 88 protected void lookupContentChanged() { 89 if ( ui != null ) { 91 ui.showWaitNode(); } 93 } 94 95 } 96 | Popular Tags |