/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package photoSpreadObjects;
import inputOutput.XMLProcessor;
import java.awt.Component;
import photoSpreadUtilities.UUID;
import photoSpread.PhotoSpreadException.BadUUIDStringError;
import photoSpreadObjects.photoSpreadComponents.DraggableLabel;
import photoSpreadTable.PhotoSpreadCell;
import photoSpreadUtilities.PhotoSpreadHelpers;
import photoSpreadUtilities.Const;
/**
*
* @author skandel
*/
public class PhotoSpreadStringObject extends PhotoSpreadObject {
String _value;
public static String OBJECT_ELEMENT_NAME = "StringObject";
public static String VALUE_ELEMENT_NAME = "value";
public PhotoSpreadStringObject(PhotoSpreadCell _cell, String _value) {
super(_cell, new UUID(_value));
this._value = _value;
}
/**
* Takes a string that was generated by UUID.toString(), and
* returns a reconstructed UUID object.
* @param _cell
* @param uuidStr
* @param _value
* @throws BadUUIDStringError
*/
public PhotoSpreadStringObject(PhotoSpreadCell _cell, String uuidStr, String _value)
throws BadUUIDStringError {
super(_cell, UUID.createFromUUIDString(uuidStr));
this._value = _value;
}
@Override
public Component getObjectComponent(int height, int width) {
DraggableLabel label = new DraggableLabel( _value, this);
return label;
}
public String toString(){
if (_value.equals(Const.NULL_VALUE_STRING))
return "null";
return valueOf();
}
/* (non-Javadoc)
* @see photoSpreadObjects.PhotoSpreadObject#toDouble()
* Attempts to turn this string object into
* a double. Returns null if that is not possible.
*/
public Double toDouble() {
try {
return Double.parseDouble(_value);
} catch (NumberFormatException e) {
return null;
}
}
public String valueOf() {
return _value;
}
@Override
public <T extends Object> boolean contentEquals (T str) {
return (_value.equals((String) str));
}
@Override
public String constructorArgsToXML() {
return (PhotoSpreadHelpers.getXMLElement(XMLProcessor.OBJECT_CONSTRUCTOR_ARGUMENT_ELEMENT, getObjectID().toString())) +
PhotoSpreadHelpers.getXMLElement(XMLProcessor.OBJECT_CONSTRUCTOR_ARGUMENT_ELEMENT, _value);
}
@SuppressWarnings("unchecked")
@Override
public PhotoSpreadStringObject copyObject() {
return new PhotoSpreadStringObject(_cell, _value);
}
}