source: other-projects/trunk/realistic-books/packages/AntInstaller/src/org/tp23/antinstaller/input/LargeSelectInput.java@ 19253

Last change on this file since 19253 was 19253, checked in by davidb, 15 years ago

Establishing a source code repository for Veronica's Realistic Book's software

File size: 3.8 KB
Line 
1/*
2 * Copyright 2005 Paul Hinds
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.tp23.antinstaller.input;
17
18
19import java.util.MissingResourceException;
20import java.util.ResourceBundle;
21
22import org.tp23.antinstaller.InstallerContext;
23import org.tp23.antinstaller.ValidationException;
24
25
26
27/**
28 *
29 * <p>Input type to choose a single value from a (numbered) list of options </p>
30 * <p>This input is designed to handle larger lists of options </p>
31 * <p>Copyright: Copyright (c) 2004</p>
32 * <p>Company: tp23</p>
33 * @author Paul Hinds
34 * @version $Id: LargeSelectInput.java,v 1.3 2006/12/07 02:50:27 teknopaul Exp $
35 */
36public class LargeSelectInput
37 extends InputField{
38
39 // i18n support
40 private static ResourceBundle langPack = null;
41 private int optionIdx = 0;
42 static{
43 try {
44 langPack = ResourceBundle.getBundle("resources.LanguagePack");
45 } catch (MissingResourceException e) {
46 // ignore, signifies no lang packs installed
47 }
48 }
49
50 private LargeSelectInput.Option[] options;
51
52 public LargeSelectInput() {
53 }
54
55
56 public LargeSelectInput.Option[] getOptions() {
57 return options;
58 }
59
60 public void setOptions(LargeSelectInput.Option[] options) {
61 this.options = options;
62 }
63 public Option getNewOption(){
64 return new Option();
65 }
66
67 public class Option {
68
69 private int idx = ++optionIdx;
70 private String text;
71 public String value;
72 public void setText(String text) {
73 this.text = text;
74 }
75 public String getText() {
76 if(langPack != null){
77 return langPack.getString(getProperty() + "." + idx +".displayText");
78 }
79 return text;
80 }
81 }
82
83 public void setValue(String dir){
84 setInputResult(dir);
85 }
86 /**
87 * Called to validate the user input
88 */
89 public boolean validate(InstallerContext cxt) throws ValidationException{
90 if(getInputResult()==null)return false;
91 String value = getInputResult();
92 boolean ok = false;
93 for (int i = 0; i < options.length; i++) {
94 ok |= options[i].value.equals(value);
95 }
96 return ok;
97 }
98
99
100
101 /**
102 * Used by checkConfig to validate the configuration file.
103 * Not used at runtime.
104 * @return boolean
105 */
106 public boolean validateObject() {
107 if(getDisplayText()==null){
108 System.out.println("LargeSelect:displayText must be set");
109 return false;
110 }
111 if(getProperty()==null){
112 System.out.println("LargeSelect:property must be set");
113 return false;
114 }
115 if(getDefaultValue()==null){
116 System.out.println("LargeSelect:defaultValue must be set");
117 return false;
118 }
119 if(getOptions()==null){
120 System.out.println("LargeSelect:option must have at least two options");
121 return false;
122 }
123 if(getOptions().length<2){
124 System.out.println("LargeSelect:option must have at least two options");
125 return false;
126 }
127 for (int i = 0; i < getOptions().length; i++) {
128 Option o = getOptions()[i];
129 if(o.getText()==null){
130 System.out.println("LargeSelect:option:text must be set");
131 return false;
132 }
133 if(o.value==null){
134 System.out.println("LargeSelect:option:value must be set");
135 return false;
136 }
137 }
138 boolean defaultExists = false;
139 for (int i = 0; i < getOptions().length; i++) {
140 Option o = getOptions()[i];
141 if(o.value.equals(getDefaultValue())){
142 defaultExists=true;
143 }
144 }
145 if(!defaultExists){
146 System.out.println("LargeSelect:option:Default must be one of the options");
147 return false;
148 }
149 return true;
150 }
151}
Note: See TracBrowser for help on using the repository browser.