package net.ms.designer.editors.workflow.editparts; import net.ms.designer.editors.workflow.figures.NodeFigure; import net.ms.designer.editors.workflow.models.WorkflowSubPart; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.gef.GraphicalEditPart; import org.eclipse.gef.tools.CellEditorLocator; import org.eclipse.gef.tools.DirectEditManager; import org.eclipse.swt.events.VerifyListener; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.widgets.Text; public class NodeDirectEditManager extends DirectEditManager{ Font scaledFont; protected VerifyListener verifyListener; protected NodeFigure nodeFigure; public NodeDirectEditManager(GraphicalEditPart source, Class editorType, CellEditorLocator locator) { super(source, editorType, locator); this.nodeFigure = (NodeFigure)source.getFigure(); // TODO Auto-generated constructor stub } protected void initCellEditor() { // TODO Auto-generated method stub Text text = (Text) getCellEditor().getControl(); getCellEditor().setValue(((WorkflowSubPart) getEditPart().getModel()).getName()); IFigure figure = ((GraphicalEditPart) getEditPart()).getFigure(); scaledFont = figure.getFont(); FontData data = scaledFont.getFontData()[0]; Dimension fontSize = new Dimension(0, data.getHeight()); nodeFigure.translateToAbsolute(fontSize); data.setHeight(fontSize.height); scaledFont = new Font(null, data); text.setFont(scaledFont); text.selectAll(); } }