/**
*
*/
/*******************************************************************************
* Copyright (c) 2010 SAP AG.
* 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:
* Emil Simeonov - initial API and implementation.
* Dimitar Donchev - initial API and implementation.
* Dimitar Tenev - initial API and implementation.
* Nevena Manova - initial API and implementation.
* Georgi Konstantinov - initial API and implementation.
*******************************************************************************/
package org.eclipse.wst.sse.sieditor.ui.v2.common;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.wst.sse.sieditor.ui.v2.AbstractFormPageController;
import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode;
/**
* A common parent for the cell modifiers of the SI and DT tree
*
*/
public class AbstractTreeViewerCellModifier implements ICellModifier {
protected final AbstractFormPageController controller;
protected Object selectedElement;
public AbstractTreeViewerCellModifier(AbstractFormPageController controller) {
this.controller = controller;
}
public void setSelectedElement(Object firstElement) {
this.selectedElement = firstElement;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
* java.lang.String)
*/
public boolean canModify(Object element, String property) {
return element == selectedElement && element instanceof ITreeNode && !((ITreeNode)element).isReadOnly() && ! controller.isResourceReadOnly();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
* java.lang.String)
*/
public Object getValue(Object element, String property) {
if (element instanceof ITreeNode) {
return ((ITreeNode) element).getDisplayName();
}
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
* java.lang.String, java.lang.Object)
*/
public void modify(Object element, String property, Object value) {
if (element instanceof TreeItem) {
TreeItem treeItem = (TreeItem) element;
if (treeItem.getData() instanceof ITreeNode) {
controller.editItemNameTriggered((ITreeNode) treeItem.getData(), (String) value);
}
}
}
}