package org.korsakow.domain;
import java.util.Collection;
import java.util.Hashtable;
import org.korsakow.domain.interf.ISettings;
public class Settings extends KDomainObject implements ISettings
{
public static enum AdjustFilenames
{
Disabled("disabled"),
Absolute("absolute"),
Relative("relative"),
Smart("smart")
;
public static AdjustFilenames fromId(String id)
{
if (Disabled.getId().equals(id)) return Disabled;
if (Absolute.getId().equals(id)) return Absolute;
if (Relative.getId().equals(id)) return Relative;
if (Smart.getId().equals(id)) return Smart;
throw new IllegalArgumentException(id);
}
private String id;
AdjustFilenames(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
@Override
public String toString()
{
return getId();
}
}
public static final String EXPORT_FONTS = "exportFonts";
public static final String FLEX_SDK_PATH = "flexSDKPath";
public static final String EncodeVideoOnExport = "encodeVideoOnExport";
public static final String VideoEncodingProfile = "videoEncodingProfile";
public static final String AdjustFilenamesOnSave = "adjustFilenamesOnSave";
public static final String PublishPath = "publishPath";
public static final String DraftPath = "draftPath";
public static final String PutSimilarResourcesAtTop = "putSimilarResourcesAtTop";
public static final String ShowBackgroundPreview = "showBackgroundPreviewInInterface";
public static final String ShowExperimentalWidgets = "showExperimentalWidgets";
public static final String ExportVideos = "exportVideos";
public static final String ExportImages = "exportImages";
public static final String ExportSounds = "exportSounds";
public static final String ExportSubtitles = "exportSubtitles";
public static final String ExportWebFiles = "exportWebFiles";
public static final String ExportDirectory = "exportDirectory";
private final Hashtable<String, Object> abstractProperties = new Hashtable<String, Object>();
Settings(long id, long version)
{
super(id, version);
}
public Collection<String> getDynamicPropertyIds()
{
return abstractProperties.keySet();
}
public Object getDynamicProperty(String id)
{
return abstractProperties.get(id);
}
public void setDynamicProperty(String id, Object value)
{
if (id == null)
throw new NullPointerException();
if (value == null)
abstractProperties.remove(id);
else
abstractProperties.put(id, value);
}
public Class getPropertyType(String id)
{
return Object.class;
}
public void setString(String name, String value)
{
setDynamicProperty(name, value);
}
public String getString(String name)
{
Object value = getDynamicProperty(name);
return value!=null?value.toString():"";
}
public void setBoolean(String name, boolean value)
{
setDynamicProperty(name, value);
}
public boolean getBoolean(String name)
{
Object value = getDynamicProperty(name);
return value!=null?Boolean.valueOf(value.toString()):false;
}
}