1 19 20 package org.netbeans.modules.xml.schema.completion; 21 22 import javax.swing.text.JTextComponent ; 23 import org.netbeans.modules.xml.schema.completion.spi.CompletionModelProvider; 24 import org.netbeans.modules.xml.schema.completion.util.DefaultModelProvider; 25 import org.netbeans.spi.editor.completion.CompletionProvider; 26 import org.netbeans.spi.editor.completion.CompletionTask; 27 import org.netbeans.spi.editor.completion.support.AsyncCompletionTask; 28 import org.openide.filesystems.FileObject; 29 import org.openide.loaders.DataObject; 30 import org.openide.util.Lookup; 31 import org.openide.windows.TopComponent; 32 33 37 public class SchemaBasedCompletionProvider implements CompletionProvider { 38 39 42 public SchemaBasedCompletionProvider() { 43 } 44 45 public int getAutoQueryTypes(JTextComponent component, String typedText) { 46 FileObject primaryFile = getPrimaryFile(); 47 if(primaryFile == null) 48 return 0; 49 50 return COMPLETION_QUERY_TYPE; 51 } 52 53 public CompletionTask createTask(int queryType, JTextComponent component) { 54 if (queryType == COMPLETION_QUERY_TYPE) 55 return new AsyncCompletionTask(new CompletionQuery(getPrimaryFile()), component); 56 57 return null; 58 } 59 60 private FileObject getPrimaryFile() { 61 TopComponent activatedTC = TopComponent .getRegistry().getActivated(); 62 if(activatedTC == null) 63 return null; 64 DataObject activeFile = (DataObject)activatedTC.getLookup().lookup(DataObject.class); 65 if(activeFile == null) 66 return null; 67 68 return activeFile.getPrimaryFile(); 69 } 70 71 } 72 | Popular Tags |