X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java index 6ae57ad..495d57d 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPeclipsePlugin.java @@ -5,20 +5,20 @@ 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 **********************************************************************/ package net.sourceforge.phpeclipse; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; +import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.PropertyResourceBundle; import java.util.Set; import net.sourceforge.phpdt.core.IBuffer; @@ -31,6 +31,7 @@ import net.sourceforge.phpdt.externaltools.internal.model.ColorManager; import net.sourceforge.phpdt.externaltools.internal.model.ExternalToolsPlugin; import net.sourceforge.phpdt.internal.core.BatchOperation; import net.sourceforge.phpdt.internal.core.JavaModelManager; +import net.sourceforge.phpdt.internal.core.util.Util; import net.sourceforge.phpdt.internal.corext.template.php.CodeTemplateContextType; import net.sourceforge.phpdt.internal.corext.template.php.HTMLContextType; import net.sourceforge.phpdt.internal.corext.template.php.JavaContextType; @@ -55,6 +56,7 @@ import net.sourceforge.phpeclipse.builder.FileStorage; import net.sourceforge.phpeclipse.builder.IdentifierIndexManager; import net.sourceforge.phpeclipse.phpeditor.CustomBufferFactory; import net.sourceforge.phpeclipse.phpeditor.DocumentAdapter; +import net.sourceforge.phpeclipse.phpeditor.ICompilationUnitDocumentProvider; import net.sourceforge.phpeclipse.phpeditor.PHPDocumentProvider; import net.sourceforge.phpeclipse.phpeditor.PHPSyntaxRdr; import net.sourceforge.phpeclipse.phpeditor.WorkingCopyManager; @@ -79,6 +81,7 @@ import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.ISchedulingRule; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.action.GroupMarker; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Separator; @@ -107,7 +110,6 @@ import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry; import org.eclipse.ui.editors.text.templates.ContributionTemplateStore; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; import org.eclipse.ui.texteditor.ChainedPreferenceStore; import org.eclipse.ui.texteditor.ConfigurationElementSorter; import org.eclipse.ui.texteditor.IDocumentProvider; @@ -123,6 +125,9 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon * The id of the PHP plugin (value "net.sourceforge.phpeclipse"). */ public static final String PLUGIN_ID = "net.sourceforge.phpeclipse"; //$NON-NLS-1$ + public static final String ID_PERSPECTIVE = "net.sourceforge.phpeclipse.PHPPerspective"; //$NON-NLS-1$ + + IWorkspace w; /** * id of builder - matches plugin.xml (concatenate pluginid.builderid) @@ -131,6 +136,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon //public static final String BUILDER_INDEX_ID = PLUGIN_ID + ".indexbuilder"; /** General debug flag */ + public static final boolean DEBUG = false; /** @@ -165,29 +171,26 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon */ // private static final String CODE_TEMPLATES_MIGRATION_KEY= "net.sourceforge.phpdt.ui.text.code_templates_migrated"; // //$NON-NLS-1$ - private static ExternalToolsPlugin externalTools; /** * The Java virtual machine that we are running on. */ - private static int jvm; - - /** MRJ 2.0 */ - private static final int MRJ_2_0 = 0; - - /** MRJ 2.1 or later */ - private static final int MRJ_2_1 = 1; - - /** Java on Mac OS X 10.0 (MRJ 3.0) */ - private static final int MRJ_3_0 = 3; - - /** MRJ 3.1 */ - private static final int MRJ_3_1 = 4; - - /** JVM constant for any other platform */ - private static final int OTHER = -1; - + // private static int jvm; + // /** MRJ 2.0 */ + // private static final int MRJ_2_0 = 0; + // + // /** MRJ 2.1 or later */ + // private static final int MRJ_2_1 = 1; + // + // /** Java on Mac OS X 10.0 (MRJ 3.0) */ + // private static final int MRJ_3_0 = 3; + // + // /** MRJ 3.1 */ + // private static final int MRJ_3_1 = 4; + // + // /** JVM constant for any other platform */ + // private static final int OTHER = -1; // public static final String PHP_RESOURCES_VIEW_ID = PLUGIN_ID + // ".resourcesview.ViewPHPResources"; //$NON-NLS-1$ public static final String PHP_CODING_ACTION_SET_ID = PLUGIN_ID + ".ui.CodingActionSet"; //$NON-NLS-1$ @@ -246,7 +249,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon private IBufferFactory fBufferFactory; - private PHPDocumentProvider fCompilationUnitDocumentProvider; + private ICompilationUnitDocumentProvider fCompilationUnitDocumentProvider; private JavaTextTools fJavaTextTools; @@ -272,8 +275,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon * * @since 3.0 */ - private IPropertyChangeListener fPropertyChangeListener; - + // private IPropertyChangeListener fPropertyChangeListener; /** * The combined preference store. * @@ -301,8 +303,8 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon public PHPeclipsePlugin(IPluginDescriptor descriptor) { super(descriptor); plugin = this; - setJVM(); externalTools = new ExternalToolsPlugin(); + // try { // resourceBundle = // ResourceBundle.getBundle("net.sourceforge.PHPeclipsePluginResources"); @@ -495,9 +497,9 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon return new Path(getDefault().getDescriptor().getInstallURL().getFile()); } - public static int getJVM() { - return jvm; - } + // public static int getJVM() { + // return jvm; + // } public static String getPluginId() { return getDefault().getDescriptor().getUniqueIdentifier(); @@ -567,36 +569,36 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon log(new Status(IStatus.ERROR, getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, message, null)); } - private static void setJVM() { - String osName = System.getProperty("os.name"); - if (osName.startsWith("Mac OS")) { - String mrjVersion = System.getProperty("mrj.version"); - String majorMRJVersion = mrjVersion.substring(0, 3); - jvm = OTHER; - try { - double version = Double.valueOf(majorMRJVersion).doubleValue(); - if (version == 2) { - jvm = MRJ_2_0; - } else if (version >= 2.1 && version < 3) { - jvm = MRJ_2_1; - } else if (version == 3.0) { - jvm = MRJ_3_0; - } else if (version >= 3.1) { - jvm = MRJ_3_1; - } - } catch (NumberFormatException nfe) { - } - } else if (osName.startsWith("Windows")) { - if (osName.indexOf("9") != -1) { - jvm = WINDOWS_9x; - } else { - jvm = WINDOWS_NT; - } - } - } + // private static void setJVM() { + // String osName = System.getProperty("os.name"); + // if (osName.startsWith("Mac OS")) { + // String mrjVersion = System.getProperty("mrj.version"); + // String majorMRJVersion = mrjVersion.substring(0, 3); + // jvm = OTHER; + // try { + // double version = Double.valueOf(majorMRJVersion).doubleValue(); + // if (version == 2) { + // jvm = MRJ_2_0; + // } else if (version >= 2.1 && version < 3) { + // jvm = MRJ_2_1; + // } else if (version == 3.0) { + // jvm = MRJ_3_0; + // } else if (version >= 3.1) { + // jvm = MRJ_3_1; + // } + // } catch (NumberFormatException nfe) { + // } + // } else if (osName.startsWith("Windows")) { + // if (osName.indexOf("9") != -1) { + // jvm = WINDOWS_9x; + // } else { + // jvm = WINDOWS_NT; + // } + // } + // } // TODO: refactor this into a better method name ! - public synchronized PHPDocumentProvider getCompilationUnitDocumentProvider() { + public synchronized ICompilationUnitDocumentProvider getCompilationUnitDocumentProvider() { if (fCompilationUnitDocumentProvider == null) fCompilationUnitDocumentProvider = new PHPDocumentProvider(); return fCompilationUnitDocumentProvider; @@ -610,7 +612,16 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon * @return */ public IdentifierIndexManager getIndexManager(IProject iProject) { - String indexFilename = iProject.getLocation() + File.separator + "project.index"; + IPath path = iProject.getWorkingLocation(PHPeclipsePlugin.PLUGIN_ID); + path = path.append("project.index"); + String indexFilename = path.toString(); +// try { +// IdentDB db = IdentDB.getInstance(); +// } catch (ClassNotFoundException e) { +// e.printStackTrace(); +// } catch (SQLException e) { +// e.printStackTrace(); +// } IdentifierIndexManager indexManager = (IdentifierIndexManager) fIndexManagerMap.get(indexFilename); if (indexManager == null) { indexManager = new IdentifierIndexManager(indexFilename); @@ -621,7 +632,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon public synchronized IWorkingCopyManager getWorkingCopyManager() { if (fWorkingCopyManager == null) { - PHPDocumentProvider provider = getCompilationUnitDocumentProvider(); + ICompilationUnitDocumentProvider provider = getCompilationUnitDocumentProvider(); fWorkingCopyManager = new WorkingCopyManager(provider); } return fWorkingCopyManager; @@ -682,57 +693,72 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon // return resourceBundle; // } protected void initializeDefaultPreferences(IPreferenceStore store) { - // windows preferences: - // store.setDefault(LOCALHOST_PREF, "http://localhost"); - // store.setDefault(DOCUMENTROOT_PREF, - // getWorkspace().getRoot().getLocation().toString()); - // store.setDefault(PHP_LOCALHOST_PREF, "http://localhost"); - // store.setDefault(PHP_DOCUMENTROOT_PREF, getWorkspace().getRoot() - // .getLocation().toString()); - - // store.setDefault(SHOW_EXTERNAL_PREVIEW_PREF, "true"); - store.setDefault(USE_EXTERNAL_BROWSER_PREF, "false"); + String operatingSystem = Platform.getOS(); + // maxosx, linux, solaris, win32,... + try { + InputStream is = getDefault().openStream(new Path("prefs/default_" + operatingSystem + ".properties")); + PropertyResourceBundle resourceBundle = new PropertyResourceBundle(is); + Enumeration enum = resourceBundle.getKeys(); + String key; + while (enum.hasMoreElements()) { + key = (String)enum.nextElement(); + store.setDefault(key, resourceBundle.getString( key )); + } +// store.setDefault(PHP_RUN_PREF, resourceBundle.getString(PHP_RUN_PREF)); +// store.setDefault(EXTERNAL_PARSER_PREF, resourceBundle.getString(EXTERNAL_PARSER_PREF)); +// store.setDefault(MYSQL_RUN_PREF, resourceBundle.getString(MYSQL_RUN_PREF)); +// store.setDefault(APACHE_RUN_PREF, resourceBundle.getString(APACHE_RUN_PREF)); +// +// store.setDefault(MYSQL_PREF, resourceBundle.getString(MYSQL_PREF)); +// store.setDefault(APACHE_START_PREF, resourceBundle.getString(APACHE_START_PREF)); +// store.setDefault(APACHE_STOP_PREF, resourceBundle.getString(APACHE_STOP_PREF)); +// store.setDefault(APACHE_RESTART_PREF, resourceBundle.getString(APACHE_RESTART_PREF)); +// store.setDefault(MYSQL_START_BACKGROUND, resourceBundle.getString(MYSQL_START_BACKGROUND)); +// store.setDefault(APACHE_START_BACKGROUND, resourceBundle.getString(APACHE_START_BACKGROUND)); +// store.setDefault(APACHE_STOP_BACKGROUND, resourceBundle.getString(APACHE_STOP_BACKGROUND)); +// store.setDefault(APACHE_RESTART_BACKGROUND, resourceBundle.getString(APACHE_RESTART_BACKGROUND)); + } catch (Exception e) { + // no default properties found + if (operatingSystem.equals(Platform.OS_WIN32)) { + store.setDefault(PHP_RUN_PREF, "c:\\apache\\php\\php.exe"); + store.setDefault(EXTERNAL_PARSER_PREF, "c:\\apache\\php\\php -l -f {0}"); + store.setDefault(MYSQL_RUN_PREF, "c:\\apache\\mysql\\bin\\mysqld-nt.exe"); + store.setDefault(APACHE_RUN_PREF, "c:\\apache\\apache.exe"); + store.setDefault(XAMPP_START_PREF, "c:\\xampp\\xampp_start.exe"); + store.setDefault(XAMPP_STOP_PREF, "c:\\xampp\\xampp_stop.exe"); + } else { + store.setDefault(PHP_RUN_PREF, "/apache/php/php"); + store.setDefault(EXTERNAL_PARSER_PREF, "/apache/php/php -l -f {0}"); + store.setDefault(MYSQL_RUN_PREF, "/apache/mysql/bin/mysqld"); + store.setDefault(APACHE_RUN_PREF, "/apache/apache"); + store.setDefault(XAMPP_START_PREF, "xamp/xampp_start"); + store.setDefault(XAMPP_STOP_PREF, "xampp/xampp_stop"); + } + store.setDefault(MYSQL_PREF, "--standalone"); + store.setDefault(APACHE_START_PREF, "-c \"DocumentRoot \"{0}\"\""); + store.setDefault(APACHE_STOP_PREF, "-k shutdown"); + store.setDefault(APACHE_RESTART_PREF, "-k restart"); + store.setDefault(MYSQL_START_BACKGROUND, "true"); + store.setDefault(APACHE_START_BACKGROUND, "true"); + store.setDefault(APACHE_STOP_BACKGROUND, "true"); + store.setDefault(APACHE_RESTART_BACKGROUND, "true"); + } + store.setDefault(SHOW_OUTPUT_IN_CONSOLE, "true"); store.setDefault(PHP_OBFUSCATOR_DEFAULT, "c:\\temp"); - // store.setDefault(PHP_BOOKMARK_DEFAULT, ""); - // - // store.setDefault(PHP_AUTO_PREVIEW_DEFAULT, "true"); - // store.setDefault(PHP_BRING_TO_TOP_PREVIEW_DEFAULT, "true"); - // store.setDefault(PHP_SHOW_HTML_FILES_LOCAL, "true"); - - String windowsSystem = Platform.getWS(); - if (jvm == WINDOWS_9x) { - store.setDefault(EXTERNAL_BROWSER_PREF, "command.com /c start iexplore {0}"); - } else if (windowsSystem.equals(Platform.WS_WIN32)) { - store.setDefault(EXTERNAL_BROWSER_PREF, "rundll32 url.dll,FileProtocolHandler {0}"); - } else if (windowsSystem.equals(Platform.WS_CARBON)) { + if (operatingSystem.equals(Platform.OS_WIN32)) { + // store.setDefault(EXTERNAL_BROWSER_PREF, "rundll32 url.dll,FileProtocolHandler {0}"); + } else if (operatingSystem.equals(Platform.OS_MACOSX)) { + store.setDefault(PHP_OBFUSCATOR_DEFAULT, "/tmp"); // TODO How do we start Safari on Mac OS X ? - store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); + // store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); } else { store.setDefault(PHP_OBFUSCATOR_DEFAULT, "/tmp"); - store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); - } - // if ((jvm == WINDOWS_9x) || (jvm == WINDOWS_NT)) { - // - if (windowsSystem.equals(Platform.WS_WIN32)) { - store.setDefault(PHP_RUN_PREF, "c:\\apache\\php\\php.exe"); - store.setDefault(EXTERNAL_PARSER_PREF, "c:\\apache\\php\\php -l -f {0}"); - store.setDefault(MYSQL_RUN_PREF, "c:\\apache\\mysql\\bin\\mysqld-nt.exe"); - store.setDefault(APACHE_RUN_PREF, "c:\\apache\\apache.exe"); - } else { - store.setDefault(PHP_RUN_PREF, "/apache/php/php"); - store.setDefault(EXTERNAL_PARSER_PREF, "/apache/php/php -l -f {0}"); - store.setDefault(MYSQL_RUN_PREF, "/apache/mysql/bin/mysqld"); - store.setDefault(APACHE_RUN_PREF, "/apache/apache"); + // store.setDefault(EXTERNAL_BROWSER_PREF, "netscape {0}"); } - store.setDefault(MYSQL_PREF, "--standalone"); - store.setDefault(APACHE_START_PREF, "-c \"DocumentRoot \"{0}\"\""); - store.setDefault(APACHE_STOP_PREF, "-k shutdown"); - store.setDefault(APACHE_RESTART_PREF, "-k restart"); - store.setDefault(MYSQL_START_BACKGROUND, "true"); - store.setDefault(APACHE_START_BACKGROUND, "true"); - store.setDefault(APACHE_STOP_BACKGROUND, "true"); - store.setDefault(APACHE_RESTART_BACKGROUND, "true"); + + store.setDefault(PHP_EXTENSION_PREFS, "php,php3,php4,php5,phtml,inc,module,class"); + // store.setDefault(PHP_PARSER_DEFAULT, PHP_EXTERNAL_PARSER); // store.setDefault(PHP_INTERNAL_PARSER, "false"); // store.setDefault(PHP_EXTERNAL_PARSER, "true"); @@ -743,15 +769,17 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon // php syntax highlighting store.setDefault(PHP_USERDEF_XMLFILE, ""); //assume there is none chooA - PreferenceConverter.setDefault(store, PHP_MULTILINE_COMMENT, PHPColorProvider.MULTI_LINE_COMMENT); - PreferenceConverter.setDefault(store, PHP_SINGLELINE_COMMENT, PHPColorProvider.SINGLE_LINE_COMMENT); +// PreferenceConverter.setDefault(store, PHP_MULTILINE_COMMENT, PHPColorProvider.MULTI_LINE_COMMENT); +// PreferenceConverter.setDefault(store, PHP_SINGLELINE_COMMENT, PHPColorProvider.SINGLE_LINE_COMMENT); PreferenceConverter.setDefault(store, PHP_TAG, PHPColorProvider.TAG); PreferenceConverter.setDefault(store, PHP_KEYWORD, PHPColorProvider.KEYWORD); PreferenceConverter.setDefault(store, PHP_VARIABLE, PHPColorProvider.VARIABLE); PreferenceConverter.setDefault(store, PHP_FUNCTIONNAME, PHPColorProvider.FUNCTION_NAME); PreferenceConverter.setDefault(store, PHP_CONSTANT, PHPColorProvider.CONSTANT); PreferenceConverter.setDefault(store, PHP_TYPE, PHPColorProvider.TYPE); - PreferenceConverter.setDefault(store, PHP_STRING, PHPColorProvider.STRING); +// PreferenceConverter.setDefault(store, PHP_STRING_DQ, PHPColorProvider.STRING_DQ); +// store.setDefault(PHP_STRING_BOLD_DQ, true); +// PreferenceConverter.setDefault(store, PHP_STRING_SQ, PHPColorProvider.STRING_SQ); PreferenceConverter.setDefault(store, PHP_DEFAULT, PHPColorProvider.DEFAULT); PreferenceConverter.setDefault(store, PHPDOC_KEYWORD, PHPColorProvider.PHPDOC_KEYWORD); PreferenceConverter.setDefault(store, PHPDOC_TAG, PHPColorProvider.PHPDOC_TAG); @@ -1081,29 +1109,27 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon * Backwards compatibility: propagate the Java editor tab width from a pre-3.0 plug-in to the new preference key. This is done * only once. */ - final String oldTabWidthKey = PreferenceConstants.EDITOR_TAB_WIDTH; - final String newTabWidthKey = AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH; - String tabWidthPropagatedKey = "tabWidthPropagated"; //$NON-NLS-1$ - if (getPreferenceStore().contains(oldTabWidthKey) && !getPreferenceStore().isDefault(oldTabWidthKey)) { - if (!getPreferenceStore().getBoolean(tabWidthPropagatedKey)) - getPreferenceStore().setValue(newTabWidthKey, getPreferenceStore().getInt(oldTabWidthKey)); - } - getPreferenceStore().setValue(tabWidthPropagatedKey, true); - - /* - * Backwards compatibility: set the Java editor tab width in this plug-in's preference store with the old key to let older - * versions access it. Since 3.0 the tab width is managed by the extended texteditor and uses a new key. - */ - getPreferenceStore().putValue(oldTabWidthKey, getPreferenceStore().getString(newTabWidthKey)); - - fPropertyChangeListener = new IPropertyChangeListener() { - public void propertyChange(PropertyChangeEvent event) { - if (newTabWidthKey.equals(event.getProperty())) - getPreferenceStore().putValue(oldTabWidthKey, getPreferenceStore().getString(newTabWidthKey)); - } - }; - getPreferenceStore().addPropertyChangeListener(fPropertyChangeListener); - + // final String oldTabWidthKey = PreferenceConstants.EDITOR_TAB_WIDTH; + // final String newTabWidthKey = AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH; + // String tabWidthPropagatedKey = "tabWidthPropagated"; //$NON-NLS-1$ + // if (getPreferenceStore().contains(oldTabWidthKey) && !getPreferenceStore().isDefault(oldTabWidthKey)) { + // if (!getPreferenceStore().getBoolean(tabWidthPropagatedKey)) + // getPreferenceStore().setValue(newTabWidthKey, getPreferenceStore().getInt(oldTabWidthKey)); + // } + // getPreferenceStore().setValue(tabWidthPropagatedKey, true); + // + // /* + // * Backwards compatibility: set the Java editor tab width in this plug-in's preference store with the old key to let older + // * versions access it. Since 3.0 the tab width is managed by the extended texteditor and uses a new key. + // */ + // getPreferenceStore().putValue(oldTabWidthKey, getPreferenceStore().getString(newTabWidthKey)); + // fPropertyChangeListener = new IPropertyChangeListener() { + // public void propertyChange(PropertyChangeEvent event) { + // if (newTabWidthKey.equals(event.getProperty())) + // getPreferenceStore().putValue(oldTabWidthKey, getPreferenceStore().getString(newTabWidthKey)); + // } + // }; + // getPreferenceStore().addPropertyChangeListener(fPropertyChangeListener); /* * Backward compatibility for the refactoring preference key. */ @@ -1117,7 +1143,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon */ private void uninstallPreferenceStoreBackwardsCompatibility() { JFaceResources.getFontRegistry().removeListener(fFontPropertyChangeListener); - getPreferenceStore().removePropertyChangeListener(fPropertyChangeListener); + // getPreferenceStore().removePropertyChangeListener(fPropertyChangeListener); } /* @@ -1135,9 +1161,9 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon // JavaCore.getPlugin().getStateLocation(); getStateLocation(); // retrieve variable values - //JavaCore.getPlugin().getPluginPreferences().addPropertyChangeListener(new - // JavaModelManager.PluginPreferencesListener()); - // manager.loadVariablesAndContainers(); + PHPeclipsePlugin.getDefault().getPluginPreferences().addPropertyChangeListener( + new JavaModelManager.PluginPreferencesListener()); + // manager.loadVariablesAndContainers(); final IWorkspace workspace = ResourcesPlugin.getWorkspace(); workspace.addResourceChangeListener(manager.deltaState, IResourceChangeEvent.PRE_BUILD | IResourceChangeEvent.POST_BUILD @@ -1148,33 +1174,31 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon // process deltas since last activated in indexer thread so that indexes are up-to-date. // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=38658 - // Job processSavedState = new Job(Util.bind("savedState.jobName")) { //$NON-NLS-1$ - // protected IStatus run(IProgressMonitor monitor) { - // try { - // // add save participant and process delta atomically - // // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=59937 - // workspace.run( - // new IWorkspaceRunnable() { - // public void run(IProgressMonitor progress) throws CoreException { - // ISavedState savedState = workspace.addSaveParticipant(PHPeclipsePlugin.this, manager); - // if (savedState != null) { - // // the event type coming from the saved state is always POST_AUTO_BUILD - // // force it to be POST_CHANGE so that the delta processor can handle it - // manager.deltaState.getDeltaProcessor().overridenEventType = IResourceChangeEvent.POST_CHANGE; - // savedState.processResourceChangeEvents(manager.deltaState); - // } - // } - // }, - // monitor); - // } catch (CoreException e) { - // return e.getStatus(); - // } - // return Status.OK_STATUS; - // } - // }; - // processSavedState.setSystem(true); - // processSavedState.setPriority(Job.SHORT); // process asap - // processSavedState.schedule(); + Job processSavedState = new Job(Util.bind("savedState.jobName")) { //$NON-NLS-1$ + protected IStatus run(IProgressMonitor monitor) { + try { + // add save participant and process delta atomically + // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=59937 + workspace.run(new IWorkspaceRunnable() { + public void run(IProgressMonitor progress) throws CoreException { + ISavedState savedState = workspace.addSaveParticipant(PHPeclipsePlugin.this, manager); + if (savedState != null) { + // the event type coming from the saved state is always POST_AUTO_BUILD + // force it to be POST_CHANGE so that the delta processor can handle it + manager.deltaState.getDeltaProcessor().overridenEventType = IResourceChangeEvent.POST_CHANGE; + savedState.processResourceChangeEvents(manager.deltaState); + } + } + }, monitor); + } catch (CoreException e) { + return e.getStatus(); + } + return Status.OK_STATUS; + } + }; + processSavedState.setSystem(true); + processSavedState.setPriority(Job.SHORT); // process asap + processSavedState.schedule(); } catch (RuntimeException e) { manager.shutdown(); throw e; @@ -1243,7 +1267,7 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon // // JavaModelManager.PluginPreferencesListener()); // getPluginPreferences().addPropertyChangeListener( // new JavaModelManager.PluginPreferencesListener()); - // // TODO khartlage temp-del + // // TODO temp-del // // manager.loadVariablesAndContainers(); // final IWorkspace workspace = ResourcesPlugin.getWorkspace(); // workspace.addResourceChangeListener( @@ -1310,8 +1334,10 @@ public class PHPeclipsePlugin extends AbstractUIPlugin implements IPreferenceCon public IPreferenceStore getCombinedPreferenceStore() { if (fCombinedPreferenceStore == null) { IPreferenceStore generalTextStore = EditorsUI.getPreferenceStore(); - fCombinedPreferenceStore = new ChainedPreferenceStore(new IPreferenceStore[] { getPreferenceStore(), - new PreferencesAdapter(PHPeclipsePlugin.getDefault().getPluginPreferences()), generalTextStore }); + fCombinedPreferenceStore = new ChainedPreferenceStore(new IPreferenceStore[] { + getPreferenceStore(), + new PreferencesAdapter(PHPeclipsePlugin.getDefault().getPluginPreferences()), + generalTextStore }); } return fCombinedPreferenceStore; }