/******************************************************************************* * Copyright (c) 2000, 2005 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$ } }