X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fresources%2FMetaInfo.java;h=70c6c43181bbff8f8885c1eca15a792eef03eac1;hb=143d16e3caae370e6108aeb77680d11308d10e08;hp=3a6e71ae1571469a421c216761ae7208b98ff675;hpb=9e834013f84e8797acf26f5418ae3448044ad097;p=fanfix.git diff --git a/src/be/nikiroo/utils/resources/MetaInfo.java b/src/be/nikiroo/utils/resources/MetaInfo.java deleted file mode 100644 index 3a6e71a..0000000 --- a/src/be/nikiroo/utils/resources/MetaInfo.java +++ /dev/null @@ -1,226 +0,0 @@ -package be.nikiroo.utils.resources; - -import java.util.ArrayList; -import java.util.List; - -import be.nikiroo.utils.resources.Meta.Format; - -/** - * A graphical item that reflect a configuration option from the given - * {@link Bundle}. - * - * @author niki - * - * @param - * the type of {@link Bundle} to edit - */ -public class MetaInfo> { - private final Bundle bundle; - private final E id; - - private Meta meta; - - private String value; - private List reloadListeners = new ArrayList(); - - private String name; - private String description; - - public MetaInfo(Class type, Bundle bundle, E id) { - this.bundle = bundle; - this.id = id; - - try { - this.meta = type.getDeclaredField(id.name()).getAnnotation( - Meta.class); - } catch (NoSuchFieldException e) { - } catch (SecurityException e) { - } - - // We consider that if a description bundle is used, everything is in it - - String description = null; - if (bundle.getDescriptionBundle() != null) { - description = bundle.getDescriptionBundle().getString(id); - if (description != null && description.trim().isEmpty()) { - description = null; - } - } - - if (description == null) { - description = meta.description(); - if (meta.info() != null && !meta.info().isEmpty()) { - description += "\n" + meta.info(); - } - } - - String name = id.toString(); - if (name.length() > 1) { - name = name.substring(0, 1) + name.substring(1).toLowerCase(); - name = name.replace("_", " "); - } - - this.name = name; - this.description = description; - - reload(); - } - - /** - * THe name of this item, deduced from its ID. - *

- * In other words, it is the ID but presented in a displayable form. - * - * @return the name - */ - public String getName() { - return name; - } - - /** - * The description of this item (information to present to the user). - * - * @return the description - */ - public String getDescription() { - return description; - } - - public Format getFormat() { - return meta.format(); - } - - /** - * The value stored by this item, as a {@link String}. - * - * @return the value - */ - public String getString() { - return value; - } - - public String getDefaultString() { - return meta.def(); - } - - public Boolean getBoolean() { - return BundleHelper.parseBoolean(getString()); - } - - public Boolean getDefaultBoolean() { - return BundleHelper.parseBoolean(getDefaultString()); - } - - public Character getCharacter() { - return BundleHelper.parseCharacter(getString()); - } - - public Character getDefaultCharacter() { - return BundleHelper.parseCharacter(getDefaultString()); - } - - public Integer getInteger() { - return BundleHelper.parseInteger(getString()); - } - - public Integer getDefaultInteger() { - return BundleHelper.parseInteger(getDefaultString()); - } - - public Integer getColor() { - return BundleHelper.parseColor(getString()); - } - - public Integer getDefaultColor() { - return BundleHelper.parseColor(getDefaultString()); - } - - public List getList() { - return BundleHelper.parseList(getString()); - } - - public List getDefaultList() { - return BundleHelper.parseList(getDefaultString()); - } - - /** - * The value stored by this item, as a {@link String}. - * - * @param value - * the new value - */ - public void setString(String value) { - this.value = value; - } - - public void setBoolean(boolean value) { - setString(BundleHelper.fromBoolean(value)); - } - - public void setCharacter(char value) { - setString(BundleHelper.fromCharacter(value)); - } - - public void setInteger(int value) { - setString(BundleHelper.fromInteger(value)); - } - - public void setColor(int value) { - setString(BundleHelper.fromColor(value)); - } - - public void setList(List value) { - setString(BundleHelper.fromList(value)); - } - - /** - * Reload the value from the {@link Bundle}. - */ - public void reload() { - value = bundle.getString(id); - for (Runnable listener : reloadListeners) { - try { - listener.run(); - } catch (Exception e) { - // TODO: error management? - e.printStackTrace(); - } - } - } - - public void addReloadListener(Runnable listener) { - reloadListeners.add(listener); - } - - /** - * Save the current value to the {@link Bundle}. - */ - public void save() { - bundle.setString(id, value); - } - - /** - * Create a list of {@link MetaInfo}, one for each of the item in the given - * {@link Bundle}. - * - * @param - * the type of {@link Bundle} to edit - * @param type - * a class instance of the item type to work on - * @param bundle - * the {@link Bundle} to sort through - * - * @return the list - */ - static public > List> getItems(Class type, - Bundle bundle) { - List> list = new ArrayList>(); - for (E id : type.getEnumConstants()) { - list.add(new MetaInfo(type, bundle, id)); - } - - return list; - } - - // TODO: by groups, a-là Authors/Sources -}