/**
* OrderStatusEditor.java
* 2008-11-22
* Administrator
*/
package com.conant.order.web.form;
import java.beans.PropertyEditorSupport;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.util.StringUtils;
import com.conant.order.util.Logger;
import com.conant.order.vo.OrderStatus;
/**
* @author Administrator
*
*/
public class OrderStatusEditor extends PropertyEditorSupport
{
private static final Logger log = Logger.getLogger(
"OrderStatusEditor", Logger.DEBUG, true);
private boolean allowEmpty;
private static final Map<Integer, String> orderStatus;
static
{
orderStatus = new HashMap<Integer, String>();
orderStatus.put(OrderStatus.TYPE_PENDING, "pending");
orderStatus.put(OrderStatus.TYPE_AUDITED, "audited");
orderStatus.put(OrderStatus.TYPE_COMPLETE, "complete");
orderStatus.put(OrderStatus.TYPE_DELIVERD, "delivered");
orderStatus.put(OrderStatus.TYPE_DELAYED, "delayed");
}
public OrderStatusEditor(boolean allowEmpty)
{
this.allowEmpty = allowEmpty;
}
public static Map<Integer, String> getMapStatus()
{
return orderStatus;
}
public static List<String> getListStatus()
{
List<String> listStatus = new ArrayList<String>();
for(Map.Entry<Integer, String> entry : orderStatus.entrySet())
{
listStatus.add(entry.getValue());
}
return listStatus;
}
@Override
public String getAsText()
{
log.info("OrderStatusEditor getAsText " + getValue());
Integer value = (Integer)getValue();
return value != null ? orderStatus.get(value) : "";
}
@Override
public void setAsText(String text)
{
log.info("OrderStatusEditor setAsText " + text);
if(this.allowEmpty && !StringUtils.hasText(text))
{
// Treat empty String as null value.
setValue(null);
return;
}
for(Map.Entry<Integer, String> entry : orderStatus.entrySet())
{
if(entry.getValue().equalsIgnoreCase(text))
{
setValue(entry.getKey());
break;
}
}
}
}