| /******************************************************************************* |
| * Copyright (c) 2000, 2004 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.jface.viewers; |
| |
| /** |
| * A cell modifier is used to access the data model from a cell |
| * editor in an abstract way. It offers methods to: |
| * <ul> |
| * <li>to check if a a model element's property can be edited or not</li> |
| * <li>retrieve a value a model element's property</li> |
| * <li>to store a cell editor's value back into the model |
| * element's property</li> |
| * </ul> |
| * <p> |
| * This interface should be implemented by classes that wish to |
| * act as cell modifiers. |
| * </p> |
| */ |
| public interface ICellModifier { |
| /** |
| * Checks whether the given property of the given element can be |
| * modified. |
| * |
| * @param element the element |
| * @param property the property |
| * @return <code>true</code> if the property can be modified, |
| * and <code>false</code> if it is not modifiable |
| */ |
| public boolean canModify(Object element, String property); |
| |
| /** |
| * Returns the value for the given property of the given element. |
| * Returns <code>null</code> if the element does not have the given property. |
| * |
| * @param element the element |
| * @param property the property |
| * @return the property value |
| */ |
| public Object getValue(Object element, String property); |
| |
| /** |
| * Modifies the value for the given property of the given element. |
| * Has no effect if the element does not have the given property, |
| * or if the property cannot be modified. |
| * <p> |
| * Note that it is possible for an SWT Item to be passed instead of |
| * the model element. To handle this case in a safe way, use: |
| * <pre> |
| * if (element instanceof Item) { |
| * element = ((Item) element).getData(); |
| * } |
| * // modify the element's property here |
| * </pre> |
| * </p> |
| * |
| * @param element the model element or SWT Item (see above) |
| * @param property the property |
| * @param value the new property value |
| * |
| * @see org.eclipse.swt.widgets.Item |
| */ |
| public void modify(Object element, String property, Object value); |
| } |