/*******************************************************************************
* Copyright (c) 2014, 2015 itemis AG 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:
* Matthias Wienand (itemis AG) - initial API & implementation
*
*******************************************************************************/
package org.eclipse.gef.zest.examples.graph.ui.view;
import org.eclipse.gef.mvc.fx.ui.actions.FitToViewportAction;
import org.eclipse.gef.mvc.fx.ui.actions.FitToViewportActionGroup;
import org.eclipse.gef.mvc.fx.ui.actions.ScrollActionGroup;
import org.eclipse.gef.mvc.fx.ui.actions.ZoomActionGroup;
import org.eclipse.gef.zest.examples.graph.ZestGraphExample;
import org.eclipse.gef.zest.examples.graph.ZestGraphExampleModule;
import org.eclipse.gef.zest.fx.ui.ZestFxUiModule;
import org.eclipse.gef.zest.fx.ui.parts.ZestFxUiView;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IActionBars;
import com.google.inject.Guice;
import com.google.inject.util.Modules;
public class ZestGraphExampleView extends ZestFxUiView {
private ZoomActionGroup zoomActionGroup;
private FitToViewportActionGroup fitToViewportActionGroup;
private ScrollActionGroup scrollActionGroup;
public ZestGraphExampleView() {
super(Guice.createInjector(Modules.override(new ZestGraphExampleModule()).with(new ZestFxUiModule())));
setGraph(ZestGraphExample.createDefaultGraph());
}
@Override
public void createPartControl(Composite parent) {
super.createPartControl(parent);
// create actions
zoomActionGroup = new ZoomActionGroup(new FitToViewportAction());
zoomActionGroup.init(getContentViewer());
fitToViewportActionGroup = new FitToViewportActionGroup();
fitToViewportActionGroup.init(getContentViewer());
scrollActionGroup = new ScrollActionGroup();
scrollActionGroup.init(getContentViewer());
// contribute to toolbar
IActionBars actionBars = getViewSite().getActionBars();
IToolBarManager mgr = actionBars.getToolBarManager();
zoomActionGroup.fillActionBars(actionBars);
mgr.add(new Separator());
fitToViewportActionGroup.fillActionBars(actionBars);
mgr.add(new Separator());
scrollActionGroup.fillActionBars(actionBars);
}
@Override
public void dispose() {
// dispose actions
if (zoomActionGroup != null) {
zoomActionGroup.dispose();
zoomActionGroup = null;
}
if (scrollActionGroup != null) {
scrollActionGroup.dispose();
scrollActionGroup = null;
}
if (fitToViewportActionGroup != null) {
fitToViewportActionGroup.dispose();
fitToViewportActionGroup = null;
}
super.dispose();
}
}