eu.aniketos.ncvm.userinterface.Activator.java Source code

Java tutorial

Introduction

Here is the source code for eu.aniketos.ncvm.userinterface.Activator.java

Source

/**
 * Copyright 2014 Liverpool John Moores University <http://www.ljmu.ac.uk/cmp/>
 * Aniketos Project FP7-ICT-257930 <http://www.aniketos.eu>
 * David Llewellyn-Jones <D.Llewellyn-Jones@ljmu.ac.uk>
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either 
 * version 3 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 *
 */

package eu.aniketos.ncvm.userinterface;

import java.net.URL;

import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;

import eu.aniketos.ncvm.userinterface.views.Register;
import eu.aniketos.ncvm.userinterface.views.Settings;

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

    // The plug-in ID
    public static final String PLUGIN_ID = "eu.aniketos.ncvm.userinterface"; //$NON-NLS-1$
    public static final String IMG_NCVM_CONFIGURE = "ncvm-configure.image";
    public static final String IMG_NCVM_ANIKETOS_SMALL = "ncvm-aniketos-small.image";

    // The shared instance
    private static Activator plugin;

    private static BundleContext context = null;
    private Register registration;

    private Settings settings;

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

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

        settings = new Settings();

        registration = new Register();
        registration.RegisterServce();

        getPreferenceStore().setDefault("bpmn2",
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bpmn2:definitions xmlns:bpmn2=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" id=\"__qGLsHWwEeKGRoZvDGwPaQ\">\n   <bpmn2:process id=\"_theProcess\">\n      <bpmn2:startEvent id=\"_theStart\"/>\n      <bpmn2:serviceTask id=\"_serviceTask1\" name=\"\"/>\n      <bpmn2:serviceTask id=\"_serviceTask2\"/>\n      <bpmn2:userTask id=\"_userTask\"/>\n      <bpmn2:serviceTask id=\"_serviceTask3\"/>\n      <bpmn2:endEvent id=\"_theEnd\"/>\n   </bpmn2:process>\n</bpmn2:definitions>\n");
        getPreferenceStore().setDefault("conspec",
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<specification id=\"Integrity_MD5\" noNamespaceSchemaLocation=\"xsd_aniketos.xsd\">\n   <maxint>32000</maxint>\n   <maxlen>1000</maxlen>\n   <scope>Session</scope>\n   <securitystate>\n      <declaration>\n         <type>string</type>\n         <identifier>md5_hash</identifier>\n         <value><sconst>_</sconst></value>\n      </declaration>\n      <declaration>\n         <type>string</type>\n         <identifier>guardedSender</identifier>\n         <value><sconst>telco_operator_customer</sconst></value>\n      </declaration>\n   </securitystate>\n   <rule>\n      <before>\n         <identifier>ProcessingService.IProcessInput.getUserProfile</identifier>\n         <parameter>\n            <type>string</type>\n            <identifier>sender</identifier>\n         </parameter>\n         <parameter>\n            <type>string</type>\n            <identifier>data</identifier>\n         </parameter>\n      </before>\n      <perform>\n      <reaction>\n         <guard>\n            <s_equal>\n               <s_identifier>guardedSender</s_identifier>\n               <s_identifier>sender</s_identifier>\n            </s_equal>\n         </guard>\n         <update>\n            <assign>\n               <s_identifier>md5_hash</s_identifier>\n            <value>\n               <invocation>\n                  <s_identifier>MD5Hash</s_identifier>\n                  <s_identifier>result</s_identifier>\n                  <argument>\n                     <s_identifier>data</s_identifier>\n                  </argument>\n               </invocation>\n               </value>\n            </assign>\n         </update>\n      </reaction>\n      <reaction>\n         <guard>\n            <not>\n               <s_equal>\n                  <s_identifier>guardedSender</s_identifier>\n                  <s_identifier>sender</s_identifier>\n               </s_equal>\n            </not>\n         </guard>\n         <update/>\n      </reaction>\n      </perform>\n   </rule>\n   <rule>\n      <before>\n         <identifier>getUserProfileImplementation</identifier>\n         <parameter>\n            <type>string</type>\n            <identifier>sender</identifier>\n         </parameter>\n         <parameter>\n            <type>string</type>\n            <identifier>data</identifier>\n         </parameter>\n      </before>\n      <perform>\n         <reaction>\n            <guard>\n               <and>\n                  <s_equal>\n                     <s_identifier>guardedSender</s_identifier>\n                     <s_identifier>sender</s_identifier>\n                  </s_equal>\n                  <s_equal>\n                     <s_identifier>md5_hash</s_identifier>\n                     <invocation>\n                        <s_identifier>MD5Hash</s_identifier>\n                        <s_identifier>result</s_identifier>\n                        <argument>\n                           <s_identifier>data</s_identifier>\n                        </argument>\n                     </invocation>\n                  </s_equal>\n               </and>\n            </guard>\n            <update/>\n         </reaction>\n         <reaction>\n            <guard>\n               <not>\n                  <s_equal>\n                     <s_identifier>guardedSender</s_identifier>\n                     <s_identifier>sender</s_identifier>\n                  </s_equal>\n               </not>\n            </guard>\n            <update/>\n         </reaction>\n      </perform>\n   </rule>\n</specification>\n");
    }

    public String getPrefString(String key) {
        return getPreferenceStore().getString(key);
    }

    public void setPrefString(String key, String value) {
        getPreferenceStore().setValue(key, value);
    }

    public String resetPref(String key) {
        String value = getPreferenceStore().getDefaultString(key);
        getPreferenceStore().setValue(key, value);
        return value;
    }

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

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

    public static BundleContext getContext() {
        return context;
    }

    /**
     * Returns the shared settings
     *
     * @return the shared settings
     */
    public Settings getSettings() {
        return settings;
    }

    public String getAddress() {
        return settings.getRegisterAddress() + "?wsdl";
    }

    public void reRegister() {
        registration.RegisterServce();
    }

    /**
     * Returns an image descriptor for the image file at the given
     * plug-in relative path
     *
     * @param path the path
     * @return the image descriptor
     */
    public static ImageDescriptor getImageDescriptor(String path) {
        return imageDescriptorFromPlugin(PLUGIN_ID, path);
    }

    public NCVMFeedback getNCVMFeedback() {
        return registration.getNCVMFeedback();
    }

    protected void initializeImageRegistry(ImageRegistry registry) {
        IPath path;
        URL url;
        ImageDescriptor desc;

        Bundle bundle = Platform.getBundle(PLUGIN_ID);
        path = new Path("icons/configure.gif");
        url = FileLocator.find(bundle, path, null);
        desc = ImageDescriptor.createFromURL(url);
        registry.put(IMG_NCVM_CONFIGURE, desc);

        path = new Path("icons/aniketos-small.png");
        url = FileLocator.find(bundle, path, null);
        desc = ImageDescriptor.createFromURL(url);
        registry.put(IMG_NCVM_ANIKETOS_SMALL, desc);
    }

    public void assignSettings(Settings newSettings) {
        Settings currentSettings = Activator.getDefault().getSettings();
        String address;
        boolean useTracker;
        boolean registerAuto;

        address = newSettings.getNcvmAddress();
        useTracker = newSettings.isNcvmTracker();
        currentSettings.setNcvmAddress(address);
        currentSettings.setNcvmTracker(useTracker);
        Activator.getDefault().setPrefString("ncvmAddress", address);
        Activator.getDefault().getPreferenceStore().setValue("ncvmTracker", useTracker);

        address = newSettings.getPvmAddress();
        useTracker = newSettings.isPvmTracker();
        currentSettings.setPvmAddress(address);
        currentSettings.setPvmTracker(useTracker);
        Activator.getDefault().setPrefString("pvmAddress", address);
        Activator.getDefault().getPreferenceStore().setValue("pvmTracker", useTracker);

        address = newSettings.getCsvmAddress();
        useTracker = newSettings.isCsvmTracker();
        currentSettings.setCsvmAddress(address);
        currentSettings.setCsvmTracker(useTracker);
        Activator.getDefault().setPrefString("csvmAddress", address);
        Activator.getDefault().getPreferenceStore().setValue("csvmTracker", useTracker);

        address = newSettings.getSpdmAddress();
        useTracker = newSettings.isSpdmTracker();
        currentSettings.setSpdmAddress(address);
        currentSettings.setSpdmTracker(useTracker);
        Activator.getDefault().setPrefString("spdmAddress", address);
        Activator.getDefault().getPreferenceStore().setValue("spdmTracker", useTracker);

        address = newSettings.getMarketplaceAddress();
        useTracker = newSettings.isMarketplaceTracker();
        currentSettings.setMarketplaceAddress(address);
        currentSettings.setMarketplaceTracker(useTracker);
        Activator.getDefault().setPrefString("marketplaceAddress", address);
        Activator.getDefault().getPreferenceStore().setValue("marketplaceTracker", useTracker);

        address = newSettings.getRegisterAddress();
        registerAuto = newSettings.isRegisterAuto();
        currentSettings.setRegisterAddress(address);
        currentSettings.setRegisterAuto(registerAuto);
        Activator.getDefault().setPrefString("registerAddress", address);
        ;
        Activator.getDefault().getPreferenceStore().setValue("registerAuto", registerAuto);
    }
}