/*****************************************************************************
* Copyright (c) 2010 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:
* Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.modelexplorer.handler;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.papyrus.infra.emf.providers.MoDiscoContentProvider;
import org.eclipse.papyrus.uml.diagram.modelexplorer.provider.DiagramContentProvider;
import org.eclipse.papyrus.uml.diagram.modelexplorer.provider.DiagramLabelProvider;
import org.eclipse.papyrus.views.modelexplorer.DecoratingLabelProviderWTooltips;
import org.eclipse.papyrus.views.modelexplorer.MoDiscoLabelProvider;
import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.navigator.CommonNavigator;
/**
* This is a class that launches the button load Customization. this code comes
* from the {@link LoadCustomizationsDialog}
*/
public class DiagramViewHandler extends AbstractHandler {
/**
*
*
* @return the common navigator
*/
protected CommonNavigator getCommonNavigator() {
IViewPart part = org.eclipse.papyrus.views.modelexplorer.NavigatorUtils.findViewPart(ModelExplorerPageBookView.VIEW_ID);
// the part is only a book, retrieving correct page
if(part instanceof ModelExplorerPageBookView) {
IViewPart page = ((ModelExplorerPageBookView)part).getActiveView();
if(page instanceof CommonNavigator) {
return ((CommonNavigator)page);
}
}
return null;
}
/**
* {@inheritDoc}
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
if(((ToolItem)((Event)event.getTrigger()).widget).getSelection()) {
getCommonNavigator().getCommonViewer().setContentProvider(new DiagramContentProvider());
getCommonNavigator().getCommonViewer().setLabelProvider(new DiagramLabelProvider());
} else {
getCommonNavigator().getCommonViewer().setContentProvider(new MoDiscoContentProvider());
getCommonNavigator().getCommonViewer().setLabelProvider(new DecoratingLabelProviderWTooltips(new MoDiscoLabelProvider()));
}
getCommonNavigator().getCommonViewer().refresh();
return null;
}
}