1 19 package org.netbeans.modules.java.debug; 20 21 import java.util.Collections ; 22 import java.util.List ; 23 import org.netbeans.api.java.source.CancellableTask; 24 import org.netbeans.api.java.source.CompilationInfo; 25 import org.netbeans.api.java.source.JavaSource; 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.util.Lookup; 31 32 36 public final class TreeNavigatorJavaSourceFactory extends LookupBasedJavaSourceTaskFactory { 37 38 private CancellableTask<CompilationInfo> task; 39 40 static TreeNavigatorJavaSourceFactory getInstance() { 41 return Lookup.getDefault().lookup(TreeNavigatorJavaSourceFactory.class); 42 } 43 44 public TreeNavigatorJavaSourceFactory() { 45 super(Phase.UP_TO_DATE, Priority.NORMAL); 46 } 47 48 public synchronized CancellableTask<CompilationInfo> createTask(FileObject file) { 49 return new WrapperTask(task); 51 } 52 53 public List <FileObject> getFileObjects() { 54 List <FileObject> result = super.getFileObjects(); 55 56 if (result.size() == 1) 57 return result; 58 59 return Collections.emptyList(); 60 } 61 62 public FileObject getFile() { 63 List <FileObject> result = super.getFileObjects(); 64 65 if (result.size() == 1) 66 return result.get(0); 67 68 return null; 69 } 70 71 public synchronized void setLookup(Lookup l, CancellableTask<CompilationInfo> task) { 72 this.task = task; 73 super.setLookup(l); 74 } 75 76 static class WrapperTask implements CancellableTask<CompilationInfo> { 77 78 private CancellableTask<CompilationInfo> delegate; 79 80 public WrapperTask(CancellableTask<CompilationInfo> delegate) { 81 this.delegate = delegate; 82 } 83 84 public void cancel() { 85 delegate.cancel(); 86 } 87 88 public void run(CompilationInfo parameter) throws Exception { 89 delegate.run(parameter); 90 } 91 92 } 93 } 94 | Popular Tags |