01: /*******************************************************************************
02: * Copyright (c) 2000, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jface.viewers;
11:
12: /**
13: * A cell modifier is used to access the data model from a cell
14: * editor in an abstract way. It offers methods to:
15: * <ul>
16: * <li>to check if a a model element's property can be edited or not</li>
17: * <li>retrieve a value a model element's property</li>
18: * <li>to store a cell editor's value back into the model
19: * element's property</li>
20: * </ul>
21: * <p>
22: * This interface should be implemented by classes that wish to
23: * act as cell modifiers.
24: * </p>
25: */
26: public interface ICellModifier {
27: /**
28: * Checks whether the given property of the given element can be
29: * modified.
30: *
31: * @param element the element
32: * @param property the property
33: * @return <code>true</code> if the property can be modified,
34: * and <code>false</code> if it is not modifiable
35: */
36: public boolean canModify(Object element, String property);
37:
38: /**
39: * Returns the value for the given property of the given element.
40: * Returns <code>null</code> if the element does not have the given property.
41: *
42: * @param element the element
43: * @param property the property
44: * @return the property value
45: */
46: public Object getValue(Object element, String property);
47:
48: /**
49: * Modifies the value for the given property of the given element.
50: * Has no effect if the element does not have the given property,
51: * or if the property cannot be modified.
52: * <p>
53: * Note that it is possible for an SWT Item to be passed instead of
54: * the model element. To handle this case in a safe way, use:
55: * <pre>
56: * if (element instanceof Item) {
57: * element = ((Item) element).getData();
58: * }
59: * // modify the element's property here
60: * </pre>
61: * </p>
62: *
63: * @param element the model element or SWT Item (see above)
64: * @param property the property
65: * @param value the new property value
66: *
67: * @see org.eclipse.swt.widgets.Item
68: */
69: public void modify(Object element, String property, Object value);
70: }
|