/*******************************************************************************
* Copyright (c) 2010-2015 Henshin developers. 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:
* TU Berlin, University of Luxembourg, SES S.A.
*******************************************************************************/
package de.tub.tfs.muvitor.gef.directedit;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.DirectEditPolicy;
import org.eclipse.gef.requests.DirectEditRequest;
import de.tub.tfs.muvitor.commands.SetEObjectFeatureValueCommand;
/**
* The direct edit policy for {@link IDirectEditPart}s. Creates a
* {@link SetEObjectFeatureValueCommand}.
*
* @author Tony Modica
*/
public class MuvitorTreeDirectEditPolicy extends DirectEditPolicy {
/*
* (non-Javadoc)
* @see DirectEditPolicy#getDirectEditCommand(DirectEditRequest)
*/
@Override
protected Command getDirectEditCommand(final DirectEditRequest request) {
// In MuvitorDirectEditManager we use the request's direct
// edit feature to transmit the new name! We do this because the cell
// editor will already be disposed at this time.
final IDirectEditPart directEditPart = (IDirectEditPart) getHost();
final String newValue = ((String) request.getDirectEditFeature()).trim();
if (directEditPart.getDirectEditFeatureID() > Integer.MIN_VALUE){
return new SetEObjectFeatureValueCommand((EObject) getHost().getModel(), newValue,
directEditPart.getDirectEditFeatureID());
} else {
return null;
}
}
/*
* (non-Javadoc)
* @see DirectEditPolicy#showCurrentEditValue(DirecEditRequest)
*/
@Override
protected void showCurrentEditValue(final DirectEditRequest request) {
}
}