1
16package org.tp23.antinstaller.renderer.text;
17
18import java.io.BufferedReader;
19import java.io.IOException;
20import java.io.PrintStream;
21import java.util.ResourceBundle;
22
23import org.tp23.antinstaller.input.OutputField;
24import org.tp23.antinstaller.input.TargetSelectInput;
25
26
31public class TargetSelectInputRenderer
32 extends SelectInputRenderer {
33
34 private static final ResourceBundle res = ResourceBundle.getBundle("org.tp23.antinstaller.renderer.text.Res");
35
36 public TargetSelectInputRenderer() {
37 }
38
39 public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
40 TargetSelectInput iField = (TargetSelectInput) field;
41 printText(iField,out);
42
43 String input = reader.readLine();
44 out.println();
45 if(input == null || input.equals(""))
46 input = iField.getDefaultValue();
47 else{
48 try{
49 int idx = Integer.parseInt(input.trim());
50 input = iField.getOptions()[idx - 1].value;
51 } catch(Exception numFormatOrIndexOutOfBounds) {
52 return;
53 }
54 }
55 ctx.getCurrentPage().removeTarget(iField.getIdx());
56 ctx.getCurrentPage().addTarget(iField.getIdx(), input);
57 iField.setInputResult(input);
58 }
59
60 private void printText(TargetSelectInput iField, PrintStream out) throws IOException{
61 out.println(iField.getDisplayText());
62 TargetSelectInput.Option[] options = iField.getOptions();
63 out.print(" ");
64 out.println(res.getString("enterNumber"));
65 for (int i = 0; i < options.length; i++) {
66 out.print(" ");
67 out.print(i+1);
68 out.print(") ");
69 out.print(options[i].getText());
70 if(iField.getDefaultValue().equals(options[i].value)){
71 out.print(" [");
72 out.print(res.getString("_default_"));
73 out.print("]");
74 }
75 out.println();
76 }
77 }
78
79}
80