blob: 5dc18cd0a42f094fcb1efbfac88458b0ac6e8980 [file] [log] [blame]
/*******************************************************************************
* 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 v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* 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();
}
}