X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2Fpanes%2FContactList.java;h=023b834b85556fd666e713a9ab5d350e51998ab8;hb=e119a1c1a924998b9315e46c96b1c750aab1deb9;hp=6287a69997caf3bcee592ca394b738c83aff70f0;hpb=d56a0ad492604eb310ca852a639f2e4f22a702d3;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/panes/ContactList.java b/src/be/nikiroo/jvcard/tui/panes/ContactList.java index 6287a69..023b834 100644 --- a/src/be/nikiroo/jvcard/tui/panes/ContactList.java +++ b/src/be/nikiroo/jvcard/tui/panes/ContactList.java @@ -6,13 +6,15 @@ import java.util.List; import be.nikiroo.jvcard.Card; import be.nikiroo.jvcard.Contact; -import be.nikiroo.jvcard.i18n.Trans; -import be.nikiroo.jvcard.resources.Bundles; +import be.nikiroo.jvcard.Data; +import be.nikiroo.jvcard.launcher.Main; +import be.nikiroo.jvcard.resources.bundles.DisplayBundle; +import be.nikiroo.jvcard.resources.enums.DisplayOption; +import be.nikiroo.jvcard.resources.enums.ColorOption; +import be.nikiroo.jvcard.resources.enums.StringId; 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.UiColors.Element; import com.googlecode.lanterna.input.KeyType; @@ -26,9 +28,10 @@ public class ContactList extends MainContentList { private String format; public ContactList(Card card) { + DisplayBundle map = new DisplayBundle(); formats = new LinkedList(); - for (String format : Bundles.getBundle("display") - .getString("CONTACT_LIST_FORMAT").split(",")) { + for (String format : map.getString(DisplayOption.CONTACT_LIST_FORMAT) + .split(",")) { formats.add(format); } @@ -53,12 +56,11 @@ public class ContactList extends MainContentList { this.contacts = new LinkedList(); if (card != null) { - for (int i = 0; i < card.size(); i++) { - Contact c = card.get(i); + for (Contact c : card) { if (filter == null - || c.toString(format).toLowerCase() + || c.toString(format, "|").toLowerCase() .contains(filter.toLowerCase())) { - addItem("[contact line]"); + addItem("x"); contacts.add(c); } } @@ -91,16 +93,33 @@ public class ContactList extends MainContentList { public List getKeyBindings() { List actions = new LinkedList(); - // TODO add - actions.add(new KeyAction(Mode.CONTACT_DETAILS_RAW, 'e', - Trans.StringId.KEY_ACTION_EDIT_CONTACT) { + // TODO ui + actions.add(new KeyAction(Mode.ASK_USER, 'a', + StringId.KEY_ACTION_ADD) { @Override public Object getObject() { - return getSelectedContact(); + return card; + } + + @Override + public String getQuestion() { + return Main.trans(StringId.ASK_USER_CONTACT_NAME); + } + + @Override + public String callback(String answer) { + if (answer.length() > 0) { + List datas = new LinkedList(); + datas.add(new Data(null, "FN", answer, null)); + getCard().add(new Contact(datas)); + addItem("x"); + } + + return null; } }); actions.add(new KeyAction(Mode.ASK_USER_KEY, 'd', - Trans.StringId.KEY_ACTION_DELETE_CONTACT) { + StringId.KEY_ACTION_DELETE_CONTACT) { @Override public Object getObject() { return getSelectedContact(); @@ -108,8 +127,14 @@ public class ContactList extends MainContentList { @Override public String getQuestion() { - // TODO i18n - return "Delete contact? [Y/N]"; + Contact contact = getSelectedContact(); + String contactName = "null"; + if (contact != null) + contactName = "" + contact.getPreferredDataValue("FN"); + + return Main.trans( + StringId.CONFIRM_USER_DELETE_CONTACT, + contactName); } @Override @@ -117,18 +142,24 @@ public class ContactList extends MainContentList { if (answer.equalsIgnoreCase("y")) { Contact contact = getSelectedContact(); if (contact != null && contact.delete()) { + removeItem("x"); return null; } - // TODO i18n - return "Cannot delete contact"; + String contactName = "null"; + if (contact != null) + contactName = "" + contact.getPreferredDataValue("FN"); + + return Main.trans( + StringId.ERR_CANNOT_DELETE_CONTACT, + contactName); } return null; } }); actions.add(new KeyAction(Mode.ASK_USER_KEY, 's', - Trans.StringId.KEY_ACTION_SAVE_CARD) { + StringId.KEY_ACTION_SAVE_CARD) { @Override public Object getObject() { return card; @@ -160,14 +191,14 @@ public class ContactList extends MainContentList { }); actions.add(new KeyAction(Mode.CONTACT_DETAILS, KeyType.Enter, - Trans.StringId.KEY_ACTION_VIEW_CONTACT) { + StringId.KEY_ACTION_VIEW_CONTACT) { @Override public Object getObject() { return getSelectedContact(); } }); actions.add(new KeyAction(Mode.NONE, KeyType.Tab, - Trans.StringId.KEY_ACTION_SWITCH_FORMAT) { + StringId.KEY_ACTION_SWITCH_FORMAT) { @Override public boolean onAction() { switchFormat(); @@ -175,7 +206,7 @@ public class ContactList extends MainContentList { } }); actions.add(new KeyAction(Mode.ASK_USER, 'w', - Trans.StringId.KEY_ACTION_SEARCH) { + StringId.KEY_ACTION_SEARCH) { @Override public String getQuestion() { @@ -226,17 +257,17 @@ public class ContactList extends MainContentList { if (contact == null) return parts; - Element el = (focused && selected) ? Element.CONTACT_LINE_SELECTED - : Element.CONTACT_LINE; - Element elSep = (focused && selected) ? Element.CONTACT_LINE_SEPARATOR_SELECTED - : Element.CONTACT_LINE_SEPARATOR; - Element elDirty = (focused && selected) ? Element.CONTACT_LINE_DIRTY_SELECTED - : Element.CONTACT_LINE_DIRTY; + ColorOption el = (focused && selected) ? ColorOption.CONTACT_LINE_SELECTED + : ColorOption.CONTACT_LINE; + ColorOption elSep = (focused && selected) ? ColorOption.CONTACT_LINE_SEPARATOR_SELECTED + : ColorOption.CONTACT_LINE_SEPARATOR; + ColorOption elDirty = (focused && selected) ? ColorOption.CONTACT_LINE_DIRTY_SELECTED + : ColorOption.CONTACT_LINE_DIRTY; width -= 2; // dirty mark space String[] array = contact.toStringArray(format, getSeparator(), " ", - width, UiColors.getInstance().isUnicode()); + width, Main.isUnicode()); if (contact.isDirty()) { parts.add(new TextPart(" ", el));