| /******************************************************************************* |
| * Copyright (c) 2005, 2012 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.ui.util; |
| |
| import org.eclipse.bpel.ui.Messages; |
| import org.eclipse.bpel.ui.adapters.ILabeledElement; |
| import org.eclipse.gef.GraphicalEditPart; |
| import org.eclipse.gef.tools.CellEditorLocator; |
| import org.eclipse.gef.tools.DirectEditManager; |
| import org.eclipse.jface.dialogs.IInputValidator; |
| import org.eclipse.osgi.util.NLS; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.widgets.MessageBox; |
| import org.eclipse.swt.widgets.Text; |
| |
| /** |
| * Adds an input validator to the direct edit manager. |
| */ |
| public class BPELDirectEditManager extends DirectEditManager { |
| |
| /** Validates user input. Provided by ctor. */ |
| private IInputValidator validator; |
| |
| public BPELDirectEditManager(GraphicalEditPart source, Class editorType, CellEditorLocator locator, IInputValidator validator) { |
| super(source, editorType, locator); |
| this.validator = validator; |
| } |
| |
| @Override |
| protected void commit() { |
| if (validator != null) { |
| Text text = (Text) getCellEditor().getControl(); |
| String newValue = text.getText(); |
| String validationMessage = validator.isValid(newValue); |
| if (validationMessage != null) { |
| MessageBox dialog = new MessageBox(text.getShell(), SWT.ICON_ERROR | SWT.OK); |
| String message = Messages.BPELEditManager_RenameError; |
| dialog.setText(message); |
| message = NLS.bind(Messages.BPELEditManager_RenameErrorMessage, (new Object[] {message, validationMessage})); |
| dialog.setMessage(message); |
| dialog.open(); |
| bringDown(); |
| return; |
| } |
| } |
| super.commit(); |
| } |
| |
| @Override |
| protected void initCellEditor() { |
| getEditPart().getFigure().validate(); |
| Object model = getEditPart().getModel(); |
| ILabeledElement labeledElement = BPELUtil.adapt(model, ILabeledElement.class); |
| String initialLabelText = labeledElement.getLabel(model); |
| getCellEditor().setValue(initialLabelText); |
| Text text = (Text) getCellEditor().getControl(); |
| text.selectAll(); |
| } |
| } |