/*
* $Id$
*
* Copyright (c) 2008 by Joel Uckelman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License (LGPL) as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, copies are available
* at http://www.opensource.org.
*/
package VASSAL.configure;
/**
* A Configurer for Long values
*
* @author Joel Uckelman
* @since 3.1.0
*/
public class LongConfigurer extends StringConfigurer {
public LongConfigurer(String key, String name) {
this(key, name, 0L);
}
public LongConfigurer(String key, String name, Long val) {
super(key, name);
if (val != null) {
setValue(val);
}
}
public void setValue(String s) {
Long l = null;
try {
l = Long.valueOf(s);
}
catch (NumberFormatException e) {
l = null;
}
if (l != null) {
setValue(l);
}
}
public long getLongValue(long defaultValue) {
if (getValue() instanceof Long) {
return ((Long) getValue()).longValue();
}
else {
return defaultValue;
}
}
public void setValue(Object o) {
if (!noUpdate && nameField != null && o != null) {
nameField.setText(o.toString());
}
super.setValue(o);
}
public String getValueString() {
return value == null ? null : value.toString();
}
}