/* * Created on Jul 18, 2004 */ package com.realpersist.gef.policy; import org.eclipse.gef.commands.Command; import org.eclipse.gef.editpolicies.DirectEditPolicy; import org.eclipse.gef.requests.DirectEditRequest; import org.eclipse.jface.viewers.CellEditor; import com.realpersist.gef.command.ResetNameTypeForColumnCommand; import com.realpersist.gef.model.Column; import com.realpersist.gef.part.ColumnPart; /** * EditPolicy for the direct editing of Column names * * @author Phil Zoio */ public class ColumnDirectEditPolicy extends DirectEditPolicy { private String oldValue; /** * @see DirectEditPolicy#getDirectEditCommand(org.eclipse.gef.requests.DirectEditRequest) */ protected Command getDirectEditCommand(DirectEditRequest request) { ResetNameTypeForColumnCommand cmd = new ResetNameTypeForColumnCommand(); Column column = (Column) getHost().getModel(); cmd.setSource(column); cmd.setOldName(column.getName()); cmd.setOldType(column.getType()); CellEditor cellEditor = request.getCellEditor(); cmd.setNameType((String) cellEditor.getValue()); return cmd; } /** * @see DirectEditPolicy#showCurrentEditValue(org.eclipse.gef.requests.DirectEditRequest) */ protected void showCurrentEditValue(DirectEditRequest request) { String value = (String) request.getCellEditor().getValue(); ColumnPart columnPart = (ColumnPart) getHost(); columnPart.handleNameChange(value); } /** * @param to * Revert request */ protected void storeOldEditValue(DirectEditRequest request) { CellEditor cellEditor = request.getCellEditor(); oldValue = (String) cellEditor.getValue(); } /** * @param request */ protected void revertOldEditValue(DirectEditRequest request) { CellEditor cellEditor = request.getCellEditor(); cellEditor.setValue(oldValue); ColumnPart columnPart = (ColumnPart) getHost(); columnPart.revertNameChange(oldValue); } }