/***************************************************************************** * Copyright (c) 2011 CEA LIST. * * * 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: * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.infra.table.modelexplorer; import java.util.List; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.emf.edit.EMFEditPlugin; import org.eclipse.emf.facet.infra.browser.custom.MetamodelView; import org.eclipse.emf.facet.infra.browser.custom.core.CustomizationsCatalog; import org.eclipse.emf.facet.infra.browser.uicore.CustomizationManager; import org.eclipse.papyrus.infra.core.log.LogHelper; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle */ public class Activator extends AbstractUIPlugin { // The plug-in ID public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.table.modelexplorer"; //$NON-NLS-1$ // The shared instance private static Activator plugin; /** the customization manager */ private CustomizationManager fCustomizationManager; public static LogHelper log; /** * 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; log = new LogHelper(this); EMFEditPlugin.getComposedAdapterFactoryDescriptorRegistry(); } /* * (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; } /** * * @return the customization manager in charge to adapt element in modisco */ public CustomizationManager getCustomizationManager() { if(this.fCustomizationManager == null) { this.fCustomizationManager = new CustomizationManager(); init(this.fCustomizationManager); } return this.fCustomizationManager; } /** * * @param customizationManager * the customization manager to init */ private void init(final CustomizationManager customizationManager) { // the appearance can be customized here: customizationManager.setShowDerivedLinks(true); try { // load customizations defined as default through the customization // extension List<MetamodelView> registryDefaultCustomizations = CustomizationsCatalog.getInstance().getRegistryDefaultCustomizations(); for(MetamodelView metamodelView : registryDefaultCustomizations) { customizationManager.registerCustomization(metamodelView); } customizationManager.loadCustomizations(); } catch (Throwable e) { Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Error initializing customizations", e)); //$NON-NLS-1$ } } }