+ actions.add(new KeyAction(Mode.ASK_USER_KEY, 'd', Trans.StringId.DUMMY) {
+ @Override
+ public Object getObject() {
+ return getSelectedData();
+ }
+
+ @Override
+ public String getQuestion() {
+ // TODO i18n
+ return "Delete data? [Y/N]";
+ }
+
+ @Override
+ public String callback(String answer) {
+ if (answer.equalsIgnoreCase("y")) {
+ Data data = getData();
+ if (data != null && data.delete()) {
+ removeItem("x");
+ return null;
+ }
+
+ // TODO i18n
+ return "Cannot delete data";
+ }
+
+ return null;
+ }
+ });
+ // TODO: ui
+ actions.add(new KeyAction(Mode.ASK_USER, 'a', Trans.StringId.DUMMY) {
+ @Override
+ public Object getObject() {
+ return contact;
+ }
+
+ @Override
+ public String getQuestion() {
+ // TODO i18n
+ return "new data (xx = yy): ";
+ }
+
+ @Override
+ public String callback(String answer) {
+ if (answer.length() > 0 && answer.contains("=")) {
+ String[] tab = answer.split("=");
+ Data data = new Data(null, tab[0].trim(), tab[1].trim(),
+ null);
+ getContact().add(data);
+ addItem("x");
+ }
+
+ return null;
+ }
+ });
+ // TODO: use a real UI for this, not a simple text box (a list or
+ // something, maybe a whole new pane?)
+ actions.add(new KeyAction(Mode.ASK_USER, 't', Trans.StringId.DUMMY) {
+ private String previous;
+
+ @Override
+ public Object getObject() {
+ return getSelectedData();
+ }
+
+ @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) {
+ previous = typesToString(data, null).toString();
+ return previous;
+ }
+
+ return null;
+ }
+
+ @Override
+ public String callback(String answer) {
+ Data data = getData();
+ if (data != null) {
+ if (!answer.equals(previous)) {
+ data.setTypes(stringToTypes(answer));
+ }
+ return null;
+ }
+
+ // TODO: i18n
+ return "Cannot modify value";
+ }
+ });
+ actions.add(new KeyAction(Mode.ASK_USER, 'g', Trans.StringId.DUMMY) {
+ private String previous;
+
+ @Override
+ public Object getObject() {
+ return getSelectedData();
+ }
+
+ @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) {
+ previous = data.getGroup();
+ return previous;
+ }
+
+ return null;
+ }
+
+ @Override
+ public String callback(String answer) {
+ Data data = getData();
+ if (data != null) {
+ if (!answer.equals(previous)) {
+ data.setGroup(answer);
+ }
+ return null;
+ }
+
+ // TODO: i18n
+ return "Cannot modify group";
+ }
+ });