com.rcpcompany.uibindings.scripting.internal.Activator.java Source code

Java tutorial

Introduction

Here is the source code for com.rcpcompany.uibindings.scripting.internal.Activator.java

Source

/*******************************************************************************
 * Copyright (c) 2006-2013 The RCP Company and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     The RCP Company - initial API and implementation
 *******************************************************************************/
package com.rcpcompany.uibindings.scripting.internal;

import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

import com.rcpcompany.uibindings.IManager;

/**
 * The activator class controls the plug-in life cycle
 */
public class Activator extends AbstractUIPlugin {

    // The plug-in ID
    public static final String ID = "com.rcpcompany.uibindings.scripting"; //$NON-NLS-1$

    // The shared instance
    private static Activator plugin;

    /**
     * The constructor
     */
    public Activator() {
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
     */
    @Override
    public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
     */
    @Override
    public void stop(BundleContext context) throws Exception {
        plugin = null;
        super.stop(context);
    }

    /**
     * Returns the shared instance
     * 
     * @return the shared instance
     */
    public static Activator getDefault() {
        return plugin;
    }

    /**
     * Preference name for {@link #getShowScriptInBindings()}.
     */
    public static final String SHOW_SCRIPT_IN_BINDINGS_PREFERENCE = "showScriptInBindings";

    /**
     * Whether to show script or values in bindings.
     */
    private boolean myShowScriptInBindings = false;

    /**
     * @param showScriptInBindings the showScriptInBindings to set
     */
    public void setShowScriptInBindings(boolean showScriptInBindings) {
        myShowScriptInBindings = showScriptInBindings;

        /*
         * Update the preference
         */
        final IPreferenceStore ps = getPreferenceStore();
        ps.setValue(Activator.SHOW_SCRIPT_IN_BINDINGS_PREFERENCE, myShowScriptInBindings);
        IManager.Factory.getManager().updateBindings(null);

        /*
         * Update command states
         */
        final ICommandService cs = (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class);
        if (cs != null) {
            cs.refreshElements("com.rcpcompany.uibindings.scripting.commands.ToggleShowScriptInBinding", null);
        }
    }

    /**
     * Returns whether script or value is shown ion bindings
     * 
     * @return <code>true</code> if script is shown
     */
    public boolean getShowScriptInBindings() {
        return myShowScriptInBindings;
    }

    private final IPropertyChangeListener myPropListener = new IPropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent event) {
            final IPreferenceStore ps = Activator.getDefault().getPreferenceStore();
            final boolean b = ps.getBoolean(SHOW_SCRIPT_IN_BINDINGS_PREFERENCE);
            if (b != getShowScriptInBindings()) {
                setShowScriptInBindings(b);
            }
        }
    };

}