Skip to content

Commit e80590d

Browse files
committed
增加交互方法
1 parent f1692e7 commit e80590d

6 files changed

Lines changed: 65 additions & 28 deletions

File tree

src/main/java/com/javabaas/shell/commands/AppCommands.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
44
import com.javabaas.javasdk.JBApp;
5-
import com.javabaas.javasdk.JBException;
6-
import com.javabaas.javasdk.callback.JBAppListCallback;
75
import com.javabaas.shell.common.CommandContext;
8-
import com.javabaas.shell.entity.JBSApp;
96
import com.javabaas.shell.util.PropertiesUtil;
107
import com.javabaas.shell.util.SignUtil;
118
import org.fusesource.jansi.Ansi;
@@ -19,9 +16,7 @@
1916
import org.springframework.web.client.RestTemplate;
2017

2118
import javax.annotation.Resource;
22-
import java.util.HashMap;
2319
import java.util.List;
24-
import java.util.Map;
2520
import java.util.UUID;
2621

2722
/**

src/main/java/com/javabaas/shell/commands/ClassCommands.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.javabaas.javasdk.JBClazz;
44
import com.javabaas.shell.common.CommandContext;
5-
import com.javabaas.shell.entity.JBSClass;
65
import com.javabaas.shell.util.PropertiesUtil;
76
import org.fusesource.jansi.Ansi;
87
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,9 +14,7 @@
1514
import org.springframework.web.client.RestTemplate;
1615

1716
import javax.annotation.Resource;
18-
import java.util.HashMap;
1917
import java.util.List;
20-
import java.util.Map;
2118

2219
/**
2320
* Created by Staryet on 15/8/20.

src/main/java/com/javabaas/shell/commands/FieldCommands.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import com.javabaas.javasdk.JBClazz;
44
import com.javabaas.javasdk.JBField;
55
import com.javabaas.shell.common.CommandContext;
6-
import com.javabaas.shell.entity.JBSField;
76
import com.javabaas.shell.entity.JBSFieldType;
7+
import com.javabaas.shell.util.ASKUtil;
88
import com.javabaas.shell.util.PropertiesUtil;
99
import org.fusesource.jansi.Ansi;
1010
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,10 +17,8 @@
1717
import org.springframework.web.client.RestTemplate;
1818

1919
import javax.annotation.Resource;
20-
import java.io.File;
21-
import java.util.HashMap;
20+
import java.util.LinkedList;
2221
import java.util.List;
23-
import java.util.Map;
2422

2523
/**
2624
* Created by Staryet on 15/8/20.
@@ -117,12 +115,13 @@ public void cancel() {
117115
}
118116

119117
@CliCommand(value = "field add", help = "Add field.")
120-
public void add(@CliOption(key = {""}, mandatory = true) final String fieldName,
121-
@CliOption(key = {"type"}, mandatory = false, unspecifiedDefaultValue = "1") final String type) {
118+
public void add(@CliOption(key = {""}, mandatory = true) final String fieldName) {
122119
context.cancelDoubleCheck();
123120
String className = context.getCurrentClass();
124121
try {
125-
JBField field = new JBField(Integer.parseInt(type), fieldName);
122+
List<String> types = getFieldTypes();
123+
int type = ASKUtil.askNumber(types, "请选择Field type,默认为STRING", 1);
124+
JBField field = new JBField(type, fieldName);
126125
field.setClazz(new JBClazz(className));
127126
field.save();
128127
System.out.println(Ansi.ansi().fg(Ansi.Color.GREEN).a("Field added.").reset());
@@ -195,4 +194,17 @@ public void fieldType() {
195194
System.out.println(Ansi.ansi().fg(Ansi.Color.WHITE).a("9").fg(Ansi.Color.CYAN).a(" GEOPOINT").reset());
196195
}
197196

197+
private LinkedList<String> getFieldTypes() {
198+
LinkedList<String> list = new LinkedList<>();
199+
list.add("STRING");
200+
list.add("NUMBER");
201+
list.add("BOOLEAN");
202+
list.add("DATE");
203+
list.add("FILE");
204+
list.add("OBJECT");
205+
list.add("ARRAY");
206+
list.add("POINTER");
207+
return list;
208+
}
209+
198210
}

src/main/java/com/javabaas/shell/common/CommandContext.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import com.javabaas.javasdk.JBApp;
44
import com.javabaas.javasdk.JBConfig;
55
import com.javabaas.shell.commands.DoubleCheckListener;
6-
import com.javabaas.shell.entity.JBSApp;
76
import com.javabaas.shell.provider.PromptProvider;
87
import org.springframework.beans.factory.annotation.Autowired;
98
import org.springframework.stereotype.Component;

src/main/java/com/javabaas/shell/entity/JBSObject.java

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.javabaas.shell.util;
2+
3+
import com.javabaas.javasdk.JBUtils;
4+
import jline.console.ConsoleReader;
5+
import org.fusesource.jansi.Ansi;
6+
7+
import java.util.List;
8+
9+
/**
10+
* Created by zangyilin on 2017/9/28.
11+
*/
12+
public class ASKUtil {
13+
public static int askNumber(List<String> values, String message, int defalut) {
14+
try {
15+
String input = ask(values, message, defalut);
16+
if (JBUtils.isEmpty(input)) {
17+
return defalut;
18+
}
19+
int result = Integer.parseInt(input);
20+
return result;
21+
} catch (Exception e) {
22+
System.out.println("输入不正确,请重试");
23+
return askNumber(values, message, defalut);
24+
}
25+
26+
}
27+
28+
private static String ask(List<String> values, String message, int defalut) {
29+
try {
30+
System.out.println(Ansi.ansi().fg(Ansi.Color.RED).a(message));
31+
for (int i = 1; i <= values.size(); i ++) {
32+
if (defalut == i) {
33+
System.out.println(Ansi.ansi().fg(Ansi.Color.YELLOW).a(" " + i + " : " + values.get(i - 1)));
34+
} else {
35+
System.out.println(Ansi.ansi().fg(Ansi.Color.WHITE).a(" " + i + " : " + values.get(i - 1)));
36+
}
37+
}
38+
ConsoleReader consolereader = new ConsoleReader();
39+
return consolereader.readLine(" " + ">");
40+
} catch (Exception e) {
41+
return null;
42+
}
43+
44+
}
45+
46+
}

0 commit comments

Comments
 (0)