| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 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 implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.authoring.gef.figures; |
| |
| import org.eclipse.draw2d.Figure; |
| import org.eclipse.draw2d.ImageFigure; |
| import org.eclipse.draw2d.Label; |
| import org.eclipse.draw2d.PositionConstants; |
| import org.eclipse.draw2d.RelativeLocator; |
| import org.eclipse.draw2d.ToolbarLayout; |
| import org.eclipse.draw2d.text.FlowPage; |
| import org.eclipse.draw2d.text.ParagraphTextLayout; |
| import org.eclipse.draw2d.text.TextFlow; |
| import org.eclipse.epf.authoring.gef.util.TemplateConstants; |
| import org.eclipse.swt.graphics.Image; |
| |
| /** |
| * TextFigure is customizable figure to allow word-wraping and with image. |
| * {@link Label} do not support word-wrap. TextFigure is wrapper over {@link TextFlow} |
| * and {@link FlowPage} to support word-wrap and image. |
| * @author James Thario |
| * @since 1.0 |
| */ |
| public class TextFigure extends Figure { |
| |
| private FlowPage textFlowPage; |
| |
| private TextFlow textFlow; |
| |
| private ImageFigure imageFigure; |
| |
| public TextFigure() { |
| textFlowPage = new FlowPage(); |
| textFlowPage.setHorizontalAligment(PositionConstants.CENTER); |
| setLayoutManager(new ToolbarLayout()); |
| imageFigure = new ImageFigure(); |
| add(imageFigure, new RelativeLocator(imageFigure, |
| PositionConstants.CENTER)); |
| add(textFlowPage, new RelativeLocator(textFlowPage, |
| PositionConstants.ALWAYS_LEFT)); |
| } |
| |
| public void add(Image image) { |
| imageFigure.setImage(image); |
| } |
| |
| public String getText() { |
| return textFlow.getText(); |
| } |
| |
| public void setText(String newText) { |
| textFlowPage.removeAll(); |
| textFlow = new TextFlow(); |
| textFlow.setFont(TemplateConstants.DEFAULT_FONT); |
| textFlow.setLayoutManager(new ParagraphTextLayout(textFlow, |
| ParagraphTextLayout.WORD_WRAP_HARD)); |
| textFlow.setText(newText); |
| textFlowPage.add(textFlow); |
| } |
| |
| public FlowPage getTextFlowPage() { |
| return textFlowPage; |
| } |
| |
| public TextFlow getTextFlow() { |
| return textFlow; |
| } |
| } |