package net.sourceforge.phpeclipse.phpeditor; /********************************************************************** Copyright (c) 2000, 2002 IBM Corp. and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html Contributors: IBM Corporation - Initial implementation Klaus Hartlage - www.eclipseproject.de **********************************************************************/ import net.sourceforge.phpeclipse.phpeditor.php.HTMLCodeScanner; import net.sourceforge.phpeclipse.phpeditor.php.PHPCodeScanner; import net.sourceforge.phpeclipse.phpeditor.php.HTMLCodeScanner; import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider; import org.eclipse.jface.text.rules.RuleBasedScanner; /** The PHPEditorEnvironment maintains singletons used by the php editor */ public class PHPEditorEnvironment { private static PHPColorProvider fgColorProvider; private static PHPCodeScanner fgCodeScanner; private static HTMLCodeScanner fgHTMLCodeScanner; //private static JavaDocScanner fgDocScanner; private static int fgRefCount = 0; /** * A connection has occured - initialize the receiver if it is the first activation. */ public static void connect(Object client) { if (++fgRefCount == 1) { fgColorProvider = new PHPColorProvider(); fgCodeScanner = new PHPCodeScanner(fgColorProvider); fgHTMLCodeScanner = new HTMLCodeScanner(fgColorProvider); // fgDocScanner= new JavaDocScanner(fgColorProvider); } } /** * A disconnection has occured - clear the receiver if it is the last deactivation. */ public static void disconnect(Object client) { if (--fgRefCount == 0) { fgCodeScanner = null; fgHTMLCodeScanner = null; // fgDocScanner= null; fgColorProvider.dispose(); fgColorProvider = null; } } /** * Returns the singleton scanner. */ public static RuleBasedScanner getPHPCodeScanner() { return fgCodeScanner; } public static RuleBasedScanner getHTMLCodeScanner() { return fgHTMLCodeScanner; } /** * Returns the singleton color provider. */ public static PHPColorProvider getJavaColorProvider() { return fgColorProvider; } /** * Returns the singleton document scanner. */ // public static RuleBasedScanner getJavaDocScanner() { // return fgDocScanner; // } }