tui: automatic config to TUI, step 1
[fanfix.git] / src / be / nikiroo / fanfix / reader / tui / ConfigItemString.java
diff --git a/src/be/nikiroo/fanfix/reader/tui/ConfigItemString.java b/src/be/nikiroo/fanfix/reader/tui/ConfigItemString.java
new file mode 100644 (file)
index 0000000..b1057e9
--- /dev/null
@@ -0,0 +1,50 @@
+package be.nikiroo.fanfix.reader.tui;
+
+import jexer.TField;
+import jexer.TWidget;
+import be.nikiroo.utils.resources.MetaInfo;
+
+class ConfigItemString<E extends Enum<E>> extends ConfigItem<E> {
+       /**
+        * Create a new {@link ConfigItemString} for the given {@link MetaInfo}.
+        * 
+        * @param info
+        *            the {@link MetaInfo}
+        */
+       public ConfigItemString(TWidget parent, MetaInfo<E> info) {
+               super(parent, info, true);
+       }
+
+       @Override
+       protected Object getFromField(int item) {
+               TField field = (TField) getField(item);
+               if (field != null) {
+                       return field.getText();
+               }
+
+               return null;
+       }
+
+       @Override
+       protected Object getFromInfo(int item) {
+               return getInfo().getString(item, false);
+       }
+
+       @Override
+       protected void setToField(Object value, int item) {
+               TField field = (TField) getField(item);
+               if (field != null) {
+                       field.setText(value == null ? "" : value.toString());
+               }
+       }
+
+       @Override
+       protected void setToInfo(Object value, int item) {
+               getInfo().setString((String) value, item);
+       }
+
+       @Override
+       protected TWidget createEmptyField(int item) {
+               return new TField(this, 0, 0, 1, false);
+       }
+}