php.smarty/src/org/netbeans/modules/php/smarty/editor/utlis/LexerUtils.java
author Martin Fousek <marfous@netbeans.org>
Thu, 03 Mar 2011 00:03:37 +0100
changeset 17309 60f4cc6038b3
parent 16264 0bcd1b2b366f
child 17329 54d8f8c364b0
permissions -rw-r--r--
removing UI freezing by change of default Smarty delimiters
     1 /*
     2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3  *
     4  * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
     5  *
     6  * The contents of this file are subject to the terms of either the GNU
     7  * General Public License Version 2 only ("GPL") or the Common
     8  * Development and Distribution License("CDDL") (collectively, the
     9  * "License"). You may not use this file except in compliance with the
    10  * License. You can obtain a copy of the License at
    11  * http://www.netbeans.org/cddl-gplv2.html
    12  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    13  * specific language governing permissions and limitations under the
    14  * License.  When distributing the software, include this License Header
    15  * Notice in each file and include the License file at
    16  * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
    17  * particular file as subject to the "Classpath" exception as provided
    18  * by Sun in the GPL Version 2 section of the License file that
    19  * accompanied this code. If applicable, add the following below the
    20  * License Header, with the fields enclosed by brackets [] replaced by
    21  * your own identifying information:
    22  * "Portions Copyrighted [year] [name of copyright owner]"
    23  *
    24  * If you wish your version of this file to be governed by only the CDDL
    25  * or only the GPL Version 2, indicate your decision by adding
    26  * "[Contributor] elects to include this software in this distribution
    27  * under the [CDDL or GPL Version 2] license." If you do not indicate a
    28  * single choice of license, a recipient has the option to distribute
    29  * your version of this file under either the CDDL, the GPL Version 2 or
    30  * to extend the choice of license to its licensees as provided above.
    31  * However, if you add GPL Version 2 code and therefore, elected the GPL
    32  * Version 2 license, then the option applies only if the new code is
    33  * made subject to such option by the copyright holder.
    34  *
    35  * Contributor(s):
    36  *
    37  * Portions Copyrighted 2009 Sun Microsystems, Inc.
    38  */
    39 package org.netbeans.modules.php.smarty.editor.utlis;
    40 
    41 import javax.swing.text.Document;
    42 import org.netbeans.modules.editor.NbEditorDocument;
    43 import org.netbeans.modules.php.smarty.editor.TplKit;
    44 import org.netbeans.spi.lexer.MutableTextInput;
    45 import org.openide.text.CloneableEditor;
    46 import org.openide.windows.TopComponent;
    47 import org.openide.windows.WindowManager;
    48 
    49 /**
    50  *
    51  * @author Martin Fousek
    52  */
    53 public class LexerUtils {
    54 
    55     public static final boolean isVariablePart(int character) {
    56         return Character.isJavaIdentifierPart(character);
    57     }
    58 
    59     public static final boolean isWS(int character) {
    60         if (Character.isWhitespace(character)) {
    61             return true;
    62         }
    63         return false;
    64     }
    65 
    66     public static final void relexerOpenedTpls() {
    67         WindowManager.getDefault().invokeWhenUIReady(new Runnable() {
    68 
    69             @Override
    70             public void run() {
    71                 TopComponent[] topComponents = WindowManager.getDefault().getOpenedTopComponents(WindowManager.getDefault().findMode("editor"));
    72                 for (TopComponent topComponent : topComponents) {
    73                     if (topComponent instanceof CloneableEditor) {
    74                         final Document doc = ((CloneableEditor) topComponent).getEditorPane().getDocument();
    75                         if (((CloneableEditor) topComponent).getEditorPane().getEditorKit() instanceof TplKit) {
    76                             ((TplKit) ((CloneableEditor) topComponent).getEditorPane().getEditorKit()).initLexerColoringListener(doc);
    77                         }
    78                         NbEditorDocument nbdoc = (NbEditorDocument) doc;
    79                         nbdoc.runAtomic(new Runnable() {
    80 
    81                             @Override
    82                             public void run() {
    83                                 MutableTextInput mti = (MutableTextInput) doc.getProperty(MutableTextInput.class);
    84                                 if (mti != null) {
    85                                     mti.tokenHierarchyControl().rebuild();
    86                                 }
    87                             }
    88                         });
    89                     }
    90                 }
    91             }
    92         });
    93     }
    94 }