/*******************************************************************************
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* 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
*******************************************************************************/
package gov.redhawk.ide.sad.internal.ui.editor;
import gov.redhawk.ui.editor.FormOutlinePage;
import gov.redhawk.ui.editor.SCAFormEditor;
import mil.jpeojtrs.sca.partitioning.Partitioning;
import mil.jpeojtrs.sca.sad.HostCollocation;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.ContainmentUpdatingFeatureMapEntry;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider;
import org.eclipse.emf.edit.provider.FeatureMapEntryWrapperItemProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.ui.part.PageBook;
public class WaveformOutlinePage extends FormOutlinePage {
/**
* @since 2.0
*/
private class ComponentOutlinePageAdapterFactoryLabelProvider extends AdapterFactoryLabelProvider {
public ComponentOutlinePageAdapterFactoryLabelProvider(AdapterFactory adapterFactory) {
super(adapterFactory);
}
@Override
public String getText(Object object) {
if (object instanceof Partitioning) {
return "Diagram";
} else if (object instanceof SadOverviewPage) {
return "Overview";
}
return super.getText(object);
}
}
/**
* The Constructor.
*
* @param editor the editor
*/
public WaveformOutlinePage(final SCAFormEditor editor) {
super(editor);
super.setLabelProvider(new ComponentOutlinePageAdapterFactoryLabelProvider(getAdapterFactory()));
}
/**
* The Constructor.
*
* @param editor the editor
*/
public WaveformOutlinePage(final SCAFormEditor editor, final PageBook pagebook) {
super(editor);
super.setLabelProvider(new ComponentOutlinePageAdapterFactoryLabelProvider(getAdapterFactory()));
super.createControl(pagebook);
}
@Override
protected void addItemProviders(ComposedAdapterFactory itemAdapterFactory) {
// TODO Auto-generated method stub
}
/**
* {@inheritDoc}
*/
@Override
protected boolean getChildren(Object parent) {
boolean retVal = false;
if (parent instanceof FeatureMapEntryWrapperItemProvider) {
FeatureMapEntryWrapperItemProvider item = (FeatureMapEntryWrapperItemProvider) parent;
if (item.getValue() instanceof ContainmentUpdatingFeatureMapEntry) {
if (((ContainmentUpdatingFeatureMapEntry) item.getValue()).getValue() instanceof HostCollocation) {
retVal = true;
}
}
} else if (parent instanceof Partitioning) {
retVal = true;
}
return retVal;
}
/**
* {@inheritDoc}
*/
@Override
protected String getParentPageId(Object item) {
String pageId = null;
if (item instanceof Partitioning || item instanceof DelegatingWrapperItemProvider || item instanceof FeatureMapEntryWrapperItemProvider) {
pageId = CustomDiagramEditor.PAGE_ID;
}
if (pageId != null) {
return pageId;
}
return super.getParentPageId(item);
}
}