/******************************************************************************* * Copyright (c) 2009 Fraunhofer IWU 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: * Fraunhofer IWU - initial API and implementation *******************************************************************************/ package net.enilink.komma.edit.ui.views; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredViewer; import net.enilink.commons.ui.editor.AbstractEditorPart; import net.enilink.komma.common.adapter.IAdapterFactory; import net.enilink.komma.edit.domain.AdapterFactoryEditingDomain; import net.enilink.komma.edit.domain.IEditingDomain; import net.enilink.komma.edit.domain.IEditingDomainProvider; import net.enilink.komma.edit.provider.AdapterFactory; public abstract class AbstractEditingDomainPart extends AbstractEditorPart { protected IAdapterFactory getAdapterFactory() { IEditingDomain editingDomain = getEditingDomain(); if (editingDomain instanceof AdapterFactoryEditingDomain) { return ((AdapterFactoryEditingDomain) editingDomain) .getAdapterFactory(); } return new AdapterFactory() { @Override protected Object createAdapter(Object object, Object type) { return null; } }; } protected IEditingDomain getEditingDomain() { IEditingDomainProvider editingDomainProvider = (IEditingDomainProvider) getForm() .getAdapter(IEditingDomainProvider.class); if (editingDomainProvider != null) { return editingDomainProvider.getEditingDomain(); } return null; } protected void createContextMenuFor(StructuredViewer viewer) { IViewerMenuSupport menuSupport = (IViewerMenuSupport) getForm() .getAdapter(IViewerMenuSupport.class); if (menuSupport != null) { menuSupport.createContextMenuFor(viewer); } } protected void setSelectionProvider(ISelectionProvider selectionProvider) { selectionProvider .addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { getForm().fireSelectionChanged( AbstractEditingDomainPart.this, event.getSelection()); } }); } }