package org.eclipse.ui.examples.propertysheet; | |
/* | |
* (c) Copyright IBM Corp. 2000, 2001. | |
* All Rights Reserved. | |
*/ | |
import java.util.Vector; | |
import org.eclipse.ui.views.properties.*; | |
/** | |
* PropertySource containing street information pertenant to Address | |
*/ | |
public class StreetAddress implements IPropertySource { | |
//properties | |
private Integer buildNo; | |
private String aptBox; | |
private String streetName; | |
//default property values | |
private static final Integer BUILD_NO_DEFAULT = new Integer(0); | |
private static final String APTBOX_DEFAULT = MessageUtil.getString("unspecified"); //$NON-NLS-1$ | |
private static final String STREETNAME_DEFAULT = MessageUtil.getString("unspecified"); //$NON-NLS-1$ | |
//property unique keys | |
public static final String P_ID_BUILD_NO = "Street.buildingNo"; //$NON-NLS-1$ | |
public static final String P_ID_APTBOX = "Street.aptNo"; //$NON-NLS-1$ | |
public static final String P_ID_STREET = "Street.street"; //$NON-NLS-1$ | |
//property display keys | |
public static final String P_BUILD_NO = MessageUtil.getString("building_number"); //$NON-NLS-1$ | |
public static final String P_APTBOX = MessageUtil.getString("apt.no_or_box.no"); //$NON-NLS-1$ | |
public static final String P_STREET = MessageUtil.getString("street"); //$NON-NLS-1$ | |
// | |
private static Vector descriptors; | |
static { | |
descriptors = new Vector(); | |
descriptors.addElement(new TextPropertyDescriptor(P_ID_BUILD_NO, P_BUILD_NO)); | |
descriptors.addElement(new TextPropertyDescriptor(P_ID_APTBOX, P_APTBOX)); | |
descriptors.addElement(new TextPropertyDescriptor(P_ID_STREET, P_STREET)); | |
} | |
/** | |
* Street Default Constructor. | |
*/ | |
public StreetAddress() { | |
super(); | |
} | |
/** | |
* Convenience Street constructor. AptBox set to default | |
*/ | |
public StreetAddress(int buildNo, String streetName) { | |
super(); | |
setBuildNo(new Integer(buildNo)); | |
setStreetName(streetName); | |
} | |
/** | |
* Convenience Street constructor. | |
*/ | |
public StreetAddress(int buildNo, String aptBox, String streetName) { | |
super(); | |
setBuildNo(new Integer(buildNo)); | |
setAptBox(aptBox); | |
setStreetName(streetName); | |
} | |
/* (non-Javadoc) | |
* Method declared on Object | |
*/ | |
public boolean equals(Object ob) { | |
return toString().equals(ob.toString()); | |
} | |
/** | |
* the appartment number | |
*/ | |
private String getAptBox() { | |
if(aptBox == null) | |
aptBox = APTBOX_DEFAULT; | |
return aptBox; | |
} | |
/** | |
* Returns the building number | |
*/ | |
private Integer getBuildNo() { | |
if(buildNo == null) | |
buildNo = BUILD_NO_DEFAULT; | |
return buildNo; | |
} | |
/** | |
* Returns the descriptors | |
*/ | |
private static Vector getDescriptors() { | |
return descriptors; | |
} | |
/* (non-Javadoc) | |
* Method declared on IPropertySource | |
*/ | |
public Object getEditableValue() { | |
return this.toString(); | |
} | |
/* (non-Javadoc) | |
* Method declared on IPropertySource | |
*/ | |
public IPropertyDescriptor[] getPropertyDescriptors() { | |
return (IPropertyDescriptor[])getDescriptors().toArray(new IPropertyDescriptor[getDescriptors().size()]); | |
} | |
/** | |
* The <code>Name</code> implementation of this | |
* <code>IPropertySource</code> method returns the following properties | |
* | |
* 1) P_BUILD_NO returns java.lang.Integer | |
* 2) P_APTBOX returns java.lang.String | |
* 3) P_STREET returns java.lang.String | |
*/ | |
public Object getPropertyValue(Object propKey) { | |
if (propKey.equals(P_ID_BUILD_NO)) | |
return getBuildNo().toString(); | |
if (propKey.equals(P_ID_APTBOX)) | |
return getAptBox(); | |
if (propKey.equals(P_ID_STREET)) | |
return getStreetName(); | |
return null; | |
} | |
/** | |
* Returns the street name | |
*/ | |
private String getStreetName() { | |
if(streetName == null) | |
streetName = STREETNAME_DEFAULT; | |
return streetName; | |
} | |
/* (non-Javadoc) | |
* Method declared on Object | |
*/ | |
public int hashCode() | |
{ return toString().hashCode(); | |
} | |
/* (non-Javadoc) | |
* Method declared on IPropertySource | |
*/ | |
public boolean isPropertySet(Object property) { | |
return false; | |
} | |
/* (non-Javadoc) | |
* Method declared on IPropertySource | |
*/ | |
public void resetPropertyValue(Object property) { | |
if (property.equals(P_ID_BUILD_NO)) { | |
setBuildNo(BUILD_NO_DEFAULT); | |
return; | |
} | |
if (property.equals(P_ID_APTBOX)) { | |
setAptBox(APTBOX_DEFAULT); | |
return; | |
} | |
if (property.equals(P_ID_STREET)) { | |
setStreetName(STREETNAME_DEFAULT); | |
return; | |
} | |
} | |
/** | |
* Sets the appartment number | |
*/ | |
private void setAptBox(String newAptBox) { | |
aptBox = newAptBox; | |
} | |
/** | |
* Sets the building number | |
*/ | |
private void setBuildNo(Integer newBuildNo) { | |
buildNo = newBuildNo; | |
} | |
/** | |
* The <code>Name</code> implementation of this | |
* <code>IPropertySource</code> method | |
* defines the following Setable properties | |
* | |
* 1) P_BUILD_NO expects java.lang.Integer | |
* 2) P_APTBOX expects java.lang.String | |
* 3) P_STREET expects java.lang.String | |
*/ | |
public void setPropertyValue(Object name, Object value) { | |
if (name.equals(P_ID_BUILD_NO)) { | |
try { | |
setBuildNo(new Integer(Integer.parseInt((String)value))); | |
} catch (NumberFormatException e) { | |
setBuildNo(BUILD_NO_DEFAULT); | |
} | |
return; | |
} | |
if (name.equals(P_ID_APTBOX)) { | |
setAptBox((String) value); | |
return; | |
} | |
if (name.equals(P_ID_STREET)){ | |
setStreetName((String) value); | |
return; | |
} | |
} | |
/** | |
* Sets the street name | |
*/ | |
private void setStreetName(String newStreetName) { | |
streetName = newStreetName; | |
} | |
/** | |
* The value as displayed in the Property Sheet. Will not print default values | |
* @return java.lang.String | |
*/ | |
public String toString() { | |
StringBuffer outStringBuffer = new StringBuffer(); | |
if (!getAptBox().equals(APTBOX_DEFAULT)) { | |
outStringBuffer.append(getAptBox()); | |
outStringBuffer.append(", "); //$NON-NLS-1$ | |
} | |
if (!getBuildNo().equals(BUILD_NO_DEFAULT)) { | |
outStringBuffer.append(getBuildNo()); | |
outStringBuffer.append(" "); //$NON-NLS-1$ | |
} | |
if (!getStreetName().equals(STREETNAME_DEFAULT)) { | |
outStringBuffer.append(getStreetName()); | |
} | |
return outStringBuffer.toString(); | |
} | |
} |