1 19 20 package org.netbeans.modules.java; 21 22 import javax.swing.event.DocumentEvent ; 23 import javax.swing.event.DocumentListener ; 24 import javax.swing.text.Document ; 25 import org.netbeans.spi.editor.errorstripe.UpToDateStatus; 26 import org.netbeans.spi.editor.errorstripe.UpToDateStatusProvider; 27 28 32 final class JavaUpToDateStatusProvider extends UpToDateStatusProvider implements DocumentListener { 33 34 private UpToDateStatus upToDate; 35 36 public static JavaUpToDateStatusProvider get(Document doc) { 37 JavaUpToDateStatusProvider provider = (JavaUpToDateStatusProvider) doc.getProperty(JavaUpToDateStatusProvider.class); 38 39 if (provider == null) { 40 doc.putProperty(JavaUpToDateStatusProvider.class, provider = new JavaUpToDateStatusProvider(doc)); 41 } 42 43 return provider; 44 } 45 46 47 private JavaUpToDateStatusProvider(Document document) { 48 upToDate = UpToDateStatus.UP_TO_DATE_OK; 49 document.addDocumentListener(this); 50 } 51 52 public synchronized UpToDateStatus getUpToDate() { 53 return upToDate; 54 } 55 56 private void setUpToDate(UpToDateStatus upToDate) { 57 this.upToDate = upToDate; 58 59 firePropertyChange(PROP_UP_TO_DATE, null, upToDate); 60 } 61 62 public synchronized void removeUpdate(DocumentEvent e) { 63 setUpToDate(UpToDateStatus.UP_TO_DATE_DIRTY); 64 } 65 66 public synchronized void insertUpdate(DocumentEvent e) { 67 setUpToDate(UpToDateStatus.UP_TO_DATE_DIRTY); 68 } 69 70 public void changedUpdate(DocumentEvent e) { 71 } 72 73 public synchronized void notifyParsingStarted() { 74 setUpToDate(UpToDateStatus.UP_TO_DATE_PROCESSING); 75 } 76 77 public synchronized void notifyParsingFinished() { 78 if (getUpToDate() == UpToDateStatus.UP_TO_DATE_PROCESSING) 79 setUpToDate(UpToDateStatus.UP_TO_DATE_OK); 80 } 81 82 } 83 | Popular Tags |