jdoc + some fixes
[jvcard.git] / src / be / nikiroo / jvcard / tui / panes / ContactDetailsRaw.java
index 506eeff96f28481b2c5a9c0303ccde3e40e6ad83..1347b0ee11698d94a18180142e28ea605c44b99c 100644 (file)
@@ -3,19 +3,19 @@ package be.nikiroo.jvcard.tui.panes;
 import java.util.LinkedList;
 import java.util.List;
 
-import com.googlecode.lanterna.input.KeyType;
-
 import be.nikiroo.jvcard.Contact;
 import be.nikiroo.jvcard.Data;
 import be.nikiroo.jvcard.TypeInfo;
 import be.nikiroo.jvcard.i18n.Trans;
 import be.nikiroo.jvcard.tui.KeyAction;
-import be.nikiroo.jvcard.tui.UiColors;
 import be.nikiroo.jvcard.tui.KeyAction.DataType;
 import be.nikiroo.jvcard.tui.KeyAction.Mode;
 import be.nikiroo.jvcard.tui.StringUtils;
+import be.nikiroo.jvcard.tui.UiColors;
 import be.nikiroo.jvcard.tui.UiColors.Element;
 
+import com.googlecode.lanterna.input.KeyType;
+
 public class ContactDetailsRaw extends MainContentList {
        private Contact contact;
        private int mode;
@@ -26,7 +26,7 @@ public class ContactDetailsRaw extends MainContentList {
                this.contact = contact;
                this.mode = 0;
 
-               for (int i = 0; i < contact.getContent().size(); i++) {
+               for (int i = 0; i < contact.size(); i++) {
                        addItem("[detail line]");
                }
        }
@@ -44,7 +44,7 @@ public class ContactDetailsRaw extends MainContentList {
                Element elDirty = (focused && selected) ? Element.CONTACT_LINE_DIRTY_SELECTED
                                : Element.CONTACT_LINE_DIRTY;
 
-               Data data = contact.getContent().get(index);
+               Data data = contact.get(index);
 
                List<TextPart> parts = new LinkedList<TextPart>();
                if (data.isDirty()) {
@@ -67,7 +67,8 @@ public class ContactDetailsRaw extends MainContentList {
                        }
                        break;
                case 1:
-                       for (TypeInfo type : data.getTypes()) {
+                       for (int indexType = 0; indexType < data.size(); indexType++) {
+                               TypeInfo type = data.get(indexType);
                                if (valueBuilder.length() > 1)
                                        valueBuilder.append(", ");
                                valueBuilder.append(type.getName());
@@ -99,22 +100,49 @@ public class ContactDetailsRaw extends MainContentList {
                return DataType.DATA;
        }
 
-       @Override
-       public String getExitWarning() {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
        @Override
        public List<KeyAction> getKeyBindings() {
                // TODO Auto-generated method stub
                List<KeyAction> actions = new LinkedList<KeyAction>();
 
                // TODO: add, remove
-               actions.add(new KeyAction(Mode.EDIT_DETAIL, 'd', Trans.StringId.DUMMY) {
+               actions.add(new KeyAction(Mode.ASK_USER, KeyType.Enter,
+                               Trans.StringId.DUMMY) {
                        @Override
                        public Object getObject() {
-                               return contact.getContent().get(getSelectedIndex());
+                               return contact.get(getSelectedIndex());
+                       }
+
+                       @Override
+                       public String getQuestion() {
+                               Data data = getData();
+                               if (data != null) {
+                                       return data.getName();
+                               }
+
+                               return null;
+                       }
+
+                       @Override
+                       public String getDefaultAnswer() {
+                               Data data = getData();
+                               if (data != null) {
+                                       return data.getValue();
+                               }
+
+                               return null;
+                       }
+
+                       @Override
+                       public String callback(String answer) {
+                               Data data = getData();
+                               if (data != null) {
+                                       data.setValue(answer);
+                                       return null;
+                               }
+
+                               // TODO: i18n
+                               return "Cannot modify value";
                        }
                });
                actions.add(new KeyAction(Mode.NONE, KeyType.Tab,
@@ -132,11 +160,6 @@ public class ContactDetailsRaw extends MainContentList {
                return actions;
        }
 
-       @Override
-       public Mode getMode() {
-               return Mode.CONTACT_DETAILS;
-       }
-
        @Override
        public String getTitle() {
                String title = null;