/******************************************************************************* * Copyright (c) 2000, 2010 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.gef.examples.logicdesigner.model; import org.eclipse.ui.views.properties.IPropertyDescriptor; import org.eclipse.ui.views.properties.IPropertySource; import org.eclipse.ui.views.properties.PropertyDescriptor; import org.eclipse.ui.views.properties.TextPropertyDescriptor; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.gef.examples.logicdesigner.LogicMessages; public class DimensionPropertySource implements IPropertySource { public static String ID_WIDTH = "width"; //$NON-NLS-1$ public static String ID_HEIGHT = "height";//$NON-NLS-1$ protected static IPropertyDescriptor[] descriptors; static { PropertyDescriptor widthProp = new TextPropertyDescriptor(ID_WIDTH, LogicMessages.DimensionPropertySource_Property_Width_Label); widthProp.setValidator(LogicNumberCellEditorValidator.instance()); PropertyDescriptor heightProp = new TextPropertyDescriptor(ID_HEIGHT, LogicMessages.DimensionPropertySource_Property_Height_Label); heightProp.setValidator(LogicNumberCellEditorValidator.instance()); descriptors = new IPropertyDescriptor[] { widthProp, heightProp }; } protected Dimension dimension = null; public DimensionPropertySource(Dimension dimension) { this.dimension = dimension.getCopy(); } public Object getEditableValue() { return dimension.getCopy(); } public Object getPropertyValue(Object propName) { return getPropertyValue((String) propName); } public Object getPropertyValue(String propName) { if (ID_HEIGHT.equals(propName)) { return new String(new Integer(dimension.height).toString()); } if (ID_WIDTH.equals(propName)) { return new String(new Integer(dimension.width).toString()); } return null; } public void setPropertyValue(Object propName, Object value) { setPropertyValue((String) propName, value); } public void setPropertyValue(String propName, Object value) { if (ID_HEIGHT.equals(propName)) { Integer newInt = new Integer((String) value); dimension.height = newInt.intValue(); } if (ID_WIDTH.equals(propName)) { Integer newInt = new Integer((String) value); dimension.width = newInt.intValue(); } } public IPropertyDescriptor[] getPropertyDescriptors() { return descriptors; } public void resetPropertyValue(String propName) { } public void resetPropertyValue(Object propName) { } public boolean isPropertySet(Object propName) { return true; } public boolean isPropertySet(String propName) { if (ID_HEIGHT.equals(propName) || ID_WIDTH.equals(propName)) return true; return false; } public String toString() { return new String("(" + dimension.width + "," + dimension.height + ")");//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$ } }