blob: c35cb6f87e01b55132e92711e9812476a3ad4a44 [file] [log] [blame]
/*******************************************************************************
* 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.Point;
import org.eclipse.gef.examples.logicdesigner.LogicMessages;
public class LocationPropertySource implements IPropertySource {
public static String ID_XPOS = "xPos"; //$NON-NLS-1$
public static String ID_YPOS = "yPos"; //$NON-NLS-1$
protected static IPropertyDescriptor[] descriptors;
static {
PropertyDescriptor xProp = new TextPropertyDescriptor(ID_XPOS,
LogicMessages.LocationPropertySource_Property_X_Label);
xProp.setValidator(LogicNumberCellEditorValidator.instance());
PropertyDescriptor yProp = new TextPropertyDescriptor(ID_YPOS,
LogicMessages.LocationPropertySource_Property_Y_Label);
yProp.setValidator(LogicNumberCellEditorValidator.instance());
descriptors = new IPropertyDescriptor[] { xProp, yProp };
}
protected Point point = null;
public LocationPropertySource(Point point) {
this.point = point.getCopy();
}
public Object getEditableValue() {
return point.getCopy();
}
public IPropertyDescriptor[] getPropertyDescriptors() {
return descriptors;
}
public Object getPropertyValue(Object propName) {
if (ID_XPOS.equals(propName)) {
return new String(new Integer(point.x).toString());
}
if (ID_YPOS.equals(propName)) {
return new String(new Integer(point.y).toString());
}
return null;
}
public boolean isPropertySet(Object propName) {
return ID_XPOS.equals(propName) || ID_YPOS.equals(propName);
}
public void resetPropertyValue(Object propName) {
}
public void setPropertyValue(Object propName, Object value) {
if (ID_XPOS.equals(propName)) {
Integer newInt = new Integer((String) value);
point.x = newInt.intValue();
}
if (ID_YPOS.equals(propName)) {
Integer newInt = new Integer((String) value);
point.y = newInt.intValue();
}
}
public String toString() {
return new String("[" + point.x + "," + point.y + "]");//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
}
}