blob: 36d8e52174d57cf2cbc3a29cac40978ca1f35910 [file] [log] [blame]
//------------------------------------------------------------------------------
// 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.PositionConstants;
import org.eclipse.draw2d.RelativeLocator;
import org.eclipse.draw2d.StackLayout;
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.Color;
import org.eclipse.swt.graphics.Font;
/**
* Figure to support free text in the diagram, without an image attached to it.
* FreeTextFigure wrapper over {@link FlowPage} and {@link TextFlow}.
*
* @author Shashidhar kannoori
*
*/
public class FreeTextFigure extends Figure {
private FlowPage textFlowPage;
private TextFlow textFlow;
public FreeTextFigure() {
textFlowPage = new FlowPage();
textFlowPage.setHorizontalAligment(PositionConstants.CENTER);
setLayoutManager(new StackLayout());
add(textFlowPage, new RelativeLocator(textFlowPage,
PositionConstants.ALWAYS_LEFT));
}
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_TRUNCATE));
textFlow.setText(newText);
textFlowPage.add(textFlow);
}
public FlowPage getTextFlowPage() {
return textFlowPage;
}
public void setFont(Font f) {
// TODO Auto-generated method stub
super.setFont(f);
textFlow.setFont(f);
}
public void setForegroundColor(Color fg) {
// TODO Auto-generated method stub
super.setForegroundColor(fg);
textFlow.setForegroundColor(fg);
}
public TextFlow getTextFlow() {
return textFlow;
}
}