| /******************************************************************************* |
| * Copyright (c) 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.bpel.common.ui.tray; |
| |
| import org.eclipse.bpel.common.ui.CommonUIPlugin; |
| import org.eclipse.bpel.common.ui.details.IDetailsColors; |
| import org.eclipse.draw2d.Figure; |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.draw2d.ToolbarLayout; |
| import org.eclipse.gef.EditPart; |
| import org.eclipse.gef.commands.CommandStack; |
| import org.eclipse.jface.viewers.StructuredSelection; |
| |
| |
| /** |
| * The container edit part to be used by the Tray editor. |
| */ |
| public abstract class TrayContainerEditPart extends TrayEditPart { |
| |
| protected class TrayContainerFigure extends Figure { |
| protected IFigure titleFigure; |
| protected IFigure childrenFigure; |
| public TrayContainerFigure() { |
| super(); |
| setLayoutManager(new ToolbarLayout()); |
| setOpaque(true); |
| setBackgroundColor(CommonUIPlugin.getDefault().getColorRegistry().get(IDetailsColors.COLOR_TRAY_BACKGROUND)); |
| } |
| public IFigure getChildrenFigure() { |
| return childrenFigure; |
| } |
| public void setChildrenFigure(IFigure target) { |
| if (childrenFigure != null) { |
| remove(childrenFigure); |
| } |
| childrenFigure = target; |
| add(target); |
| } |
| public IFigure getTitleFigure() { |
| return titleFigure; |
| } |
| public void setTitleFigure(IFigure target) { |
| if (titleFigure != null) { |
| remove(titleFigure); |
| } |
| titleFigure = target; |
| add(target); |
| } |
| } |
| |
| protected TrayContainerFigure mainFigure; |
| |
| public TrayContainerEditPart() { |
| super(); |
| } |
| |
| @Override |
| protected IFigure createFigure() { |
| mainFigure = createMainFigure(); |
| mainFigure.setTitleFigure(createTitleFigure()); |
| mainFigure.setChildrenFigure(createChildrenFigure()); |
| return mainFigure; |
| } |
| |
| protected TrayContainerFigure createMainFigure() { |
| return new TrayContainerFigure(); |
| } |
| |
| protected IFigure createTitleFigure() { |
| return new Figure(); |
| } |
| |
| protected IFigure createChildrenFigure() { |
| Figure result = new Figure(); |
| result.setLayoutManager(new ToolbarLayout()); |
| return result; |
| } |
| |
| /** |
| * Selects the EditPart that represents the given model object. |
| */ |
| protected EditPart selectEditPart(Object model) { |
| EditPart editPart = (EditPart)getViewer().getEditPartRegistry().get(model); |
| if (editPart != null) { |
| getViewer().setSelection(new StructuredSelection(editPart)); |
| } |
| return editPart; |
| } |
| |
| protected CommandStack getCommandStack() { |
| return getViewer().getEditDomain().getCommandStack(); |
| } |
| |
| public IFigure getTitleFigure() { |
| return mainFigure.getTitleFigure(); |
| } |
| |
| // where children will be added |
| @Override |
| public IFigure getContentPane() { |
| return mainFigure.getChildrenFigure(); |
| } |
| } |