Java tutorial
package org.eclipse.stem.ui; /******************************************************************************* * Copyright (c) 2006 2008 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.jface.resource.ColorRegistry; import org.eclipse.jface.resource.FontRegistry; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.stem.ui.adapters.color.ColorProviderAdapterFactory; import org.eclipse.stem.ui.adapters.featuremodifiereditcomposite.ExperimentFeatureModifierEditCompositeFactory; import org.eclipse.stem.ui.adapters.newmodifierpage.CommonNewModifierPageAdapterFactory; import org.eclipse.stem.ui.adapters.newmodifierpage.GraphNewModifierPageAdapterFactory; import org.eclipse.stem.ui.adapters.newmodifierpage.LabelsNewModifierPageAdapterFactory; import org.eclipse.stem.ui.adapters.newmodifierpage.SequencerNewModifierPageAdapterFactory; import org.eclipse.stem.ui.adapters.propertystrings.LabelsPropertyStringProviderAdapterFactory; import org.eclipse.stem.ui.perspectives.Simulation; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.RGB; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.WorkbenchException; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; /** * The main plugin class to be used in the desktop. */ public class Activator extends AbstractUIPlugin { /** * The symbolic identifier for this plug-in */ public static final String PLUGIN_ID = "org.eclipse.stem.ui"; //$NON-NLS-1$ // The shared instance. private static Activator plugin; // The SWT color registry private static ColorRegistry colorRegistry = null; // The SWT font registry private static FontRegistry fontRegistry = null; /** * The constructor. */ public Activator() { super(); plugin = this; } /** * This method is called upon plug-in activation * * @param context * @throws Exception */ @Override public void start(BundleContext context) throws Exception { super.start(context); new SequencerNewModifierPageAdapterFactory(); new GraphNewModifierPageAdapterFactory(); new LabelsNewModifierPageAdapterFactory(); new ExperimentFeatureModifierEditCompositeFactory(); new LabelsPropertyStringProviderAdapterFactory(); new CommonNewModifierPageAdapterFactory(); //Get the extension color providers and add them to the composed factory IConfigurationElement[] elements = Platform.getExtensionRegistry() .getConfigurationElementsFor("org.eclipse.stem.ui.colorproviders"); for (IConfigurationElement element : elements) { if (!element.isValid()) { Activator.logError("Invalid color provider extension", null); continue; } //Get the bundle that extended the extension point Bundle bundle = Platform.getBundle(element.getContributor().getName()); String name = element.getAttribute("name"); String factory = element.getAttribute("factory"); String provider = element.getAttribute("provider"); //Use the bundle's class loader to load the classes Class factoryClass = bundle.loadClass(factory); Object factoryInstance = factoryClass.newInstance(); Class providerClass = bundle.loadClass(provider); //Register the specific factory in the general factory ColorProviderAdapterFactory.INSTANCE.addAdapterFactory((AdapterFactory) factoryInstance, providerClass, name); } } // start /** * This method is called when the plug-in is stopped * * @param context * @throws Exception */ @Override public void stop(BundleContext context) throws Exception { super.stop(context); plugin = null; } /** * Returns the shared instance. * * @return the shared instance. */ public static Activator getDefault() { return plugin; } /** * Returns the color registry * * @return a reference to the color registry */ public ColorRegistry getColorRegistry() { if (colorRegistry == null) { colorRegistry = new ColorRegistry(); initializeColorRegistry(colorRegistry); } return colorRegistry; } // getColorRegistry /** * Returns the font registry * * @return a reference to the font registry */ public FontRegistry getFontRegistry() { if (fontRegistry == null) { fontRegistry = new FontRegistry(); initializeFontRegistry(fontRegistry); } return fontRegistry; } // getColorRegistry /** * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry) */ @Override protected void initializeImageRegistry(ImageRegistry registry) { // final String ICON_PATH_PREFIX = "icons/full/customobj16/"; //$NON-NLS-1$ final String ICON_ACTION_PATH_PREFIX = "icons/full/actions16/"; //$NON-NLS-1$ final String CUSTOM_ICON_PATH_PREFIX2 = "icons/full/customobj16/"; //$NON-NLS-1$C registry.put(ISharedImages.AUTOMATIC_EXPERIMENT_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "AutomaticExperiment.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DECORATOR_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Decorator.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DECORATOR_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "DecoratorModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DYNAMIC_LABEL_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "DynamicLabel.gif")); //$NON-NLS-1$ registry.put(ISharedImages.EDGE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Edge.gif")); //$NON-NLS-1$ registry.put(ISharedImages.EXPERIMENT_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Experiment.gif")); //$NON-NLS-1$ registry.put(ISharedImages.EXPERIMENT_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "ExperimentModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.GRAPH_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Graph.gif")); //$NON-NLS-1$ registry.put(ISharedImages.GRAPH_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "GraphModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.MODEL_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Model.gif")); //$NON-NLS-1$ registry.put(ISharedImages.MODEL_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "ModelModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.MODIFIER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Modifier.gif")); //$NON-NLS-1$ registry.put(ISharedImages.MODIFIER_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "ModifierModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.NODE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Node.gif")); //$NON-NLS-1$ registry.put(ISharedImages.PREDICATE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Predicate.gif")); //$NON-NLS-1$ registry.put(ISharedImages.PREDICATE_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "PredicateModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.RECORDED_SIMULATION_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "RecordedSimulations.gif")); //$NON-NLS-1$ registry.put(ISharedImages.RECORDED_SIMULATION_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "RecordedSimulationsModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.SCENARIO_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Scenario.gif")); //$NON-NLS-1$ registry.put(ISharedImages.SCENARIO_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "ScenarioModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.SEQUENCER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Sequencer.gif")); //$NON-NLS-1$ registry.put(ISharedImages.SEQUENCER_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "SequencerModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STATIC_LABEL_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "StaticLabel.gif")); //$NON-NLS-1$ registry.put(ISharedImages.TRIGGER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "Trigger.gif")); //$NON-NLS-1$ registry.put(ISharedImages.TRIGGER_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "TriggerModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEM_PROJECT_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "stem.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEM_EXPLORER_PROJECT_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "StemProject.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEM_EXPLORER_VIEW_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "stemExplorer.gif")); //$NON-NLS-1$ registry.put(ISharedImages.SIMULATION_CONTROL_VIEW_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "simulationControlView.gif")); //$NON-NLS-1$ registry.put(ISharedImages.SIMULATION_CONTROL_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "simulationControl.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DELETE_FILE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "delete.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEM_GRAPH_FILE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "genericFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEM_FOLDER_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "ScenarioModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEM_SCENARIO_FILE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "ScenarioModelFile.gif")); //$NON-NLS-1$ registry.put(ISharedImages.RUN_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "run.gif")); //$NON-NLS-1$ registry.put(ISharedImages.PAUSE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "pause.gif")); //$NON-NLS-1$ registry.put(ISharedImages.RESET_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "reset.gif")); //$NON-NLS-1$ registry.put(ISharedImages.RESTART_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "restart.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STEP_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "step.gif")); //$NON-NLS-1$ registry.put(ISharedImages.STOP_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "stop.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DISABLED_RUN_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "disabledRun.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DISABLED_PAUSE_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "disabledPause.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DISABLED_RESET_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "disabledReset.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DISABLED_STEP_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "disabledStep.gif")); //$NON-NLS-1$ registry.put(ISharedImages.DISABLED_STOP_ICON, imageDescriptorFromPlugin(PLUGIN_ID, ICON_ACTION_PATH_PREFIX + "disabledStop.gif")); //$NON-NLS-1$ registry.put(ISharedImages.MAP_ICON, imageDescriptorFromPlugin(PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "map.gif")); //$NON-NLS-1$ // registry.put(ISharedImages.RECORDED_SIMULATION_ICON, imageDescriptorFromPlugin( // PLUGIN_ID, CUSTOM_ICON_PATH_PREFIX2 + "RecordedSimulations.gif")); //$NON-NLS-1$ } // initializeImageRegistry /** * Add SWT colors to color registry */ protected void initializeColorRegistry(ColorRegistry colorRegistry) { // Register colors in registry colorRegistry.put(ISharedColors.GREEN, new RGB(55, 255, 50)); colorRegistry.put(ISharedColors.YELLOW, new RGB(255, 255, 0)); colorRegistry.put(ISharedColors.ORANGE, new RGB(255, 170, 30)); colorRegistry.put(ISharedColors.GRAY, new RGB(217, 217, 217)); // Add more colors here } // initializeColorRegistry /** * Add SWT fonts to font registry */ protected void initializeFontRegistry(FontRegistry fontRegistry) { int fontHeight = JFaceResources.getDefaultFont().getFontData()[0].getHeight(); FontData fontData = new FontData("Courier New", fontHeight, //$NON-NLS-1$ SWT.NORMAL); // Register colors in registry fontRegistry.put(ISharedFonts.DEFAULT, new FontData[] { fontData }); // Add more colors here } // initializeColorRegistry /** * Log an error to the ILog for this plugin * * @param message * the localized error message text * @param exception * the associated exception, or null */ public static void logError(String message, Throwable exception) { plugin.getLog().log(new Status(IStatus.ERROR, plugin.getBundle().getSymbolicName(), 0, message, exception)); } // logError /** * Log information to the ILog for this plugin * * @param message * the localized information message text * @param exception * the associated exception, or null */ public static void logInformation(String message, Throwable exception) { plugin.getLog().log(new Status(IStatus.INFO, plugin.getBundle().getSymbolicName(), 0, message, exception)); } // logInformation /** * @param perspectiveId * the id of the perspective to switch to */ public static void switchToPerspective(String perspectiveId) { final IWorkbench workbench = PlatformUI.getWorkbench(); try { workbench.showPerspective(perspectiveId, workbench.getActiveWorkbenchWindow()); } catch (WorkbenchException e) { Activator.logError("Problem switching to Perspective with ID=\"" + perspectiveId + "\"", e); } } // switchToPerspective } // Activator