KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > languages > features > UpToDateStatusProviderFactoryImpl


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.languages.features;
21
22 import org.netbeans.api.languages.ASTNode;
23 import javax.swing.text.Document JavaDoc;
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 /**
35  *
36  * @author Jan Jancura
37  */

38 public class UpToDateStatusProviderFactoryImpl implements UpToDateStatusProviderFactory {
39     
40     /** Creates a new instance of UpToDateStatusProvider */
41     public UpToDateStatusProviderFactoryImpl () {
42     }
43
44     public UpToDateStatusProvider createUpToDateStatusProvider (Document JavaDoc 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