1 19 20 package org.netbeans.modules.languages.features; 21 22 import org.netbeans.api.languages.ASTNode; 23 import javax.swing.text.Document ; 24 import org.netbeans.api.languages.ParserManager; 25 import org.netbeans.api.languages.ParserManager.State; 26 import org.netbeans.api.languages.ParserManagerListener; 27 import org.netbeans.modules.editor.NbEditorDocument; 28 import org.netbeans.modules.languages.ParserManagerImpl; 29 import org.netbeans.api.languages.ASTNode; 30 import org.netbeans.spi.editor.errorstripe.UpToDateStatus; 31 import org.netbeans.spi.editor.errorstripe.UpToDateStatusProvider; 32 import org.netbeans.spi.editor.errorstripe.UpToDateStatusProviderFactory; 33 34 38 public class UpToDateStatusProviderFactoryImpl implements UpToDateStatusProviderFactory { 39 40 41 public UpToDateStatusProviderFactoryImpl () { 42 } 43 44 public UpToDateStatusProvider createUpToDateStatusProvider (Document document) { 45 return new UpToDateStatusProviderImpl ((NbEditorDocument) document); 46 } 47 48 private static class UpToDateStatusProviderImpl extends UpToDateStatusProvider { 49 50 private ParserManager parserManager; 51 52 53 private UpToDateStatusProviderImpl (NbEditorDocument doc) { 54 parserManager = ParserManager.get (doc); 55 parserManager.addListener (new ParserManagerListener () { 56 public void parsed (State state, ASTNode ast) { 57 firePropertyChange (PROP_UP_TO_DATE, null, null); 58 } 59 }); 60 } 61 62 public UpToDateStatus getUpToDate () { 63 switch (parserManager.getState ()) { 64 case ERROR: 65 return UpToDateStatus.UP_TO_DATE_DIRTY; 66 case OK: 67 return UpToDateStatus.UP_TO_DATE_OK; 68 case PARSING: 69 return UpToDateStatus.UP_TO_DATE_PROCESSING; 70 } 71 return UpToDateStatus.UP_TO_DATE_PROCESSING; 72 } 73 } 74 } 75 76 77 | Popular Tags |