Performance improvement:
[jvcard.git] / src / be / nikiroo / jvcard / tui / panes / ContactDetailsRaw.java
index 5ceee7d6ba2336fa31fee9ea5b371904adf5ad01..4a2712d7bd2aca3c88f924d223df3c186a2e84c4 100644 (file)
@@ -36,15 +36,19 @@ public class ContactDetailsRaw extends MainContentList {
 
        @Override
        public List<KeyAction> getKeyBindings() {
-               // TODO Auto-generated method stub
                List<KeyAction> actions = new LinkedList<KeyAction>();
 
-               // TODO: add, remove
                actions.add(new KeyAction(Mode.ASK_USER, KeyType.Enter,
-                               StringId.DUMMY) {
+                               StringId.KEY_ACTION_EDIT_FIELD) {
                        @Override
                        public Object getObject() {
-                               return getSelectedData();
+                               Data data = getSelectedData();
+                               if (data != null && data.getB64Key() != -1) {
+                                       setMessage("Cannot modify binary values in RAW mode", true);
+                                       data = null;
+                               }
+                               
+                               return data;
                        }
 
                        @Override
@@ -79,7 +83,8 @@ public class ContactDetailsRaw extends MainContentList {
                                return "Cannot modify value";
                        }
                });
-               actions.add(new KeyAction(Mode.ASK_USER_KEY, 'd', StringId.DUMMY) {
+               actions.add(new KeyAction(Mode.ASK_USER_KEY, 'd',
+                               StringId.KEY_ACTION_DELETE) {
                        @Override
                        public Object getObject() {
                                return getSelectedData();
@@ -108,7 +113,7 @@ public class ContactDetailsRaw extends MainContentList {
                        }
                });
                // TODO: ui
-               actions.add(new KeyAction(Mode.ASK_USER, 'a', StringId.DUMMY) {
+               actions.add(new KeyAction(Mode.ASK_USER, 'a', StringId.KEY_ACTION_ADD) {
                        @Override
                        public Object getObject() {
                                return contact;
@@ -263,6 +268,7 @@ public class ContactDetailsRaw extends MainContentList {
        @Override
        protected List<TextPart> getLabel(int index, int width, boolean selected,
                        boolean focused) {
+
                // TODO: from ini file?
                int SIZE_COL_1 = 15;
                int SIZE_COL_2_OPT = 10;
@@ -297,7 +303,12 @@ public class ContactDetailsRaw extends MainContentList {
 
                StringBuilder valueBuilder = new StringBuilder(" ");
                if (!extMode) {
-                       valueBuilder.append(data.getValue().replaceAll("\n", "\\\\n"));
+                       if (data.getB64Key() != -1) {
+                               // TODO: i18n
+                               valueBuilder.append("<BKey " + data.getB64Key() + ">");
+                       } else {
+                               valueBuilder.append(data.getValue().replaceAll("\n", "\\\\n"));
+                       }
                        if (data.getGroup() != null && data.getGroup().length() > 0) {
                                valueBuilder.append("(");
                                valueBuilder.append(data.getGroup());