/******************************************************************************* * 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.dcd.internal.ui.editor; import gov.redhawk.ide.dcd.internal.ui.editor.provider.DcdItemProviderAdapterFactoryAdapter; import gov.redhawk.ide.dcd.internal.ui.editor.provider.DevicesSectionComponentPlacementItemProvider; import gov.redhawk.ui.editor.FormOutlinePage; import gov.redhawk.ui.editor.SCAFormEditor; import gov.redhawk.ui.editor.ScaFormPage; import mil.jpeojtrs.sca.dcd.DcdComponentPlacement; import mil.jpeojtrs.sca.dcd.DcdPartitioning; import mil.jpeojtrs.sca.partitioning.Partitioning; import mil.jpeojtrs.sca.spd.Implementation; import mil.jpeojtrs.sca.spd.SoftPkg; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.ui.part.PageBook; /** * @since 1.1 * */ public class NodeOutlinePage extends FormOutlinePage { /** * @since 2.0 */ public class NodeOutlinePageAdapterFactoryLabelProvider extends AdapterFactoryLabelProvider { public NodeOutlinePageAdapterFactoryLabelProvider(final AdapterFactory adapterFactory) { super(adapterFactory); } @Override public String getText(final Object object) { if (object instanceof DcdPartitioning) { return "Devices"; } else if (object instanceof ScaFormPage) { return "Overview"; } return super.getText(object); } } /** * The Constructor. * * @param editor the editor */ public NodeOutlinePage(final SCAFormEditor editor) { super(editor); super.setLabelProvider(new NodeOutlinePageAdapterFactoryLabelProvider(getAdapterFactory())); } /** * The Constructor. * * @param editor the editor */ public NodeOutlinePage(final SCAFormEditor editor, final PageBook pagebook) { super(editor); super.setLabelProvider(new NodeOutlinePageAdapterFactoryLabelProvider(getAdapterFactory())); super.createControl(pagebook); } /** * {@inheritDoc} */ @Override protected void addItemProviders(final ComposedAdapterFactory adapterFactory) { final DcdItemProviderAdapterFactoryAdapter dcd = new DcdItemProviderAdapterFactoryAdapter(); dcd.setComponentPlacementAdapter(new DevicesSectionComponentPlacementItemProvider(dcd)); adapterFactory.addAdapterFactory(dcd); } /** * {@inheritDoc} */ @Override protected boolean getChildren(final Object parent) { boolean retVal = false; if (parent instanceof SoftPkg || parent instanceof Partitioning) { retVal = true; } return retVal; } /** * {@inheritDoc} */ @Override protected String getParentPageId(final Object item) { String pageId = null; if (item instanceof Implementation || item instanceof SoftPkg) { pageId = ImplementationPage.PAGE_ID; } else if (item instanceof DcdComponentPlacement || item instanceof Partitioning) { pageId = DevicesPage.PAGE_ID; } if (pageId != null) { return pageId; } return super.getParentPageId(item); } }