All pastes #581714 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-21 17:29 UTC
rendered paste body
Index: src/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java
===================================================================
--- src/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java	(revision 604)
+++ src/org/tp23/antinstaller/renderer/text/CheckboxInputRenderer.java	(working copy)
@@ -31,48 +31,40 @@ public class CheckboxInputRenderer exten
 
     public void renderOutput(OutputField field, BufferedReader reader, PrintStream out) throws IOException {
         CheckboxInput iField = (CheckboxInput)field;
-        
-        StringBuffer buffer = new StringBuffer();
-        
-        buffer.append(iField.getDisplayText());   
-        
-        String suggested = iField.getSuggestedValue();
-        if (!TextUtils.isVoid(suggested)) {
-	        buffer.append("   [");
-	        buffer.append(TextUtils.getString("_default_"));
-	        buffer.append(": ");
-	        buffer.append(suggested);        		
-	        buffer.append("]");
-        }
-        out.println(buffer);
-
-        out.print(TextUtils.PROMPT_STRING);
-        if(InputField.isTrue(iField.getForce())) {
-            out.println(TextUtils.getString("_required_"));
-            iField.setValue(iField.getSuggestedValue());
-            return;
-        }
+    	boolean done = false;
 
-        while (true) {
-            String input = reader.readLine();
-            out.println();
-            if(TextUtils.isVoid(input)) {
-                input = iField.getSuggestedValue();
-                break;
-            }
+    	while (!done)
+            done = renderOutputReal(reader, out, iField);
+    }
 
-            if(TextUtils.isAffirmativeAnswer(input)) {
-                iField.setValue("true");
-                break;
-            }
-            else if (TextUtils.isNegativeAnswer(input)){
-                iField.setValue("false");
-                break;
-            }
+    private boolean renderOutputReal(BufferedReader reader, PrintStream out, CheckboxInput iField) throws IOException {
+        out.print(iField.getDisplayText());
+        out.print(" Y or N   [");
+        out.print(TextUtils.getString("_default_"));
+        out.print(": ");
+        if (InputField.isFalse(iField.getSuggestedValue()))
+            out.print("N");
+        else
+            out.print("Y");        
+        out.println("]");
+        out.print(TextUtils.PROMPT_STRING);
+        
+        String input = reader.readLine();
+        out.println();
 
-            out.println("Please answer \"yes\" or \"no\"");
-            out.println();
-            out.print(TextUtils.PROMPT_STRING);
+        if(TextUtils.isVoid(input)) {
+            input = iField.getSuggestedValue();
         }
+        
+        if(TextUtils.isAffirmativeAnswer(input)) {
+            iField.setValue("true");
+            return true;
+        } 
+        else if(TextUtils.isNegativeAnswer(input)) {
+            iField.setValue("false");
+            return true;
+        }
+
+        return false;
     }
 }