KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > google > gwt > sample > i18n > client > I18N


1 /*
2  * Copyright 2007 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * 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, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */

16 package com.google.gwt.sample.i18n.client;
17
18 import com.google.gwt.core.client.EntryPoint;
19 import com.google.gwt.core.client.GWT;
20 import com.google.gwt.i18n.client.Dictionary;
21 import com.google.gwt.user.client.DOM;
22 import com.google.gwt.user.client.Element;
23 import com.google.gwt.user.client.ui.FlexTable;
24 import com.google.gwt.user.client.ui.ListBox;
25 import com.google.gwt.user.client.ui.RootPanel;
26 import com.google.gwt.user.client.ui.TextBox;
27 import com.google.gwt.user.client.ui.Widget;
28
29 import java.util.Iterator JavaDoc;
30 import java.util.NoSuchElementException JavaDoc;
31
32 /**
33  * A sample module that demonstrates how to localize text resources.
34  */

35 public class I18N implements EntryPoint {
36
37   /**
38    * Attaches logical controllers to various elements on the page. Note that
39    * this module is logic only; it assumes the HTML handles all layout and
40    * styling.
41    *
42    * @see com.google.gwt.core.client.EntryPoint#onModuleLoad()
43    */

44   public void onModuleLoad() {
45     // An example that demonstrates NumberFormat.
46
NumberFormatExampleConstants numberFormatConstants = (NumberFormatExampleConstants) GWT.create(NumberFormatExampleConstants.class);
47     NumberFormatExampleController numberFormatController = new NumberFormatExampleController(
48         numberFormatConstants);
49     initNumberFormatExample(numberFormatController);
50
51     // An example that demonstrates DateTimeFormat.
52
DateTimeFormatExampleConstants dateTimeFormatConstants = (DateTimeFormatExampleConstants) GWT.create(DateTimeFormatExampleConstants.class);
53     DateTimeFormatExampleController dateTimeFormatController = new DateTimeFormatExampleController(
54         dateTimeFormatConstants);
55     initDateTimeFormatExample(dateTimeFormatController);
56
57     // An example that demonstrates Constants.
58
initConstantsExample();
59
60     // An example that demonstrates ConstantsWithLookup.
61
ConstantsWithLookupExampleConstants constantsWithLookupConstants = (ConstantsWithLookupExampleConstants) GWT.create(ConstantsWithLookupExampleConstants.class);
62     ConstantsWithLookupExampleController constantsWithLookupController = new ConstantsWithLookupExampleController(
63         constantsWithLookupConstants);
64     initConstantsWithLookupExample(constantsWithLookupController);
65
66     // An example that demonstrates Messages.
67
MessagesExampleConstants messagesExampleConstants = (MessagesExampleConstants) GWT.create(MessagesExampleConstants.class);
68     MessagesExampleController messagesController = new MessagesExampleController(
69         messagesExampleConstants);
70     initMessagesExample(messagesController);
71
72     // An example that demonstrates Dictionary.
73
initDictionaryExample();
74
75     TextBox initiallyFocusedTextBox = numberFormatController.txtInput;
76     initiallyFocusedTextBox.setFocus(true);
77     initiallyFocusedTextBox.selectAll();
78   }
79
80   private void bindElement(String JavaDoc id, String JavaDoc text) {
81     Element elem = DOM.getElementById(id);
82     if (elem == null) {
83       throw new NoSuchElementException JavaDoc(id);
84     }
85     DOM.setInnerText(elem, text);
86   }
87
88   private void bindElement(String JavaDoc id, Widget widget) {
89     RootPanel rp = RootPanel.get(id);
90     if (rp == null) {
91       throw new NoSuchElementException JavaDoc(id);
92     }
93     rp.clear();
94     rp.add(widget);
95   }
96
97   private void initConstantsExample() {
98     ConstantsExampleConstants constants = (ConstantsExampleConstants) GWT.create(ConstantsExampleConstants.class);
99     ListBox colorChoices = new ListBox();
100
101     for (Iterator JavaDoc iter = constants.colorMap().values().iterator(); iter.hasNext();) {
102       String JavaDoc color = (String JavaDoc) iter.next();
103       colorChoices.addItem(color);
104     }
105
106     TextBox txtFirstName = new TextBox();
107     TextBox txtLastName = new TextBox();
108
109     bindElement("constantsFirstNameCaption", constants.firstName());
110     bindElement("constantsFirstNameText", txtFirstName);
111     bindElement("constantsLastNameCaption", constants.lastName());
112     bindElement("constantsLastNameText", txtLastName);
113     bindElement("constantsFavoriteColorCaption", constants.favoriteColor());
114     bindElement("constantsFavoriteColorList", colorChoices);
115
116     txtFirstName.setText("Amelie");
117     txtLastName.setText("Crutcher");
118   }
119
120   private void initConstantsWithLookupExample(
121       ConstantsWithLookupExampleController controller) {
122     ConstantsWithLookupExampleConstants constants = controller.getConstants();
123     bindElement("constantsWithLookupInputCaption", constants.input());
124     bindElement("constantsWithLookupInputText", controller.txtInput);
125     bindElement("constantsWithLookupResultsCaption", constants.result());
126     bindElement("constantsWithLookupResultsText", controller.txtResult);
127   }
128
129   private void initDateTimeFormatExample(
130       DateTimeFormatExampleController controller) {
131     DateTimeFormatExampleConstants constants = controller.getConstants();
132     bindElement("dateTimeFormatPatternCaption", constants.pattern());
133     bindElement("dateTimeFormatPatternList", controller.lstSamplePatterns);
134     bindElement("dateTimeFormatPatternText", controller.txtCurrentPattern);
135     bindElement("dateTimeFormatPatternError", controller.lblPatternError);
136     bindElement("dateTimeFormatInputCaption", constants.inputValue());
137     bindElement("dateTimeFormatInputText", controller.txtInput);
138     bindElement("dateTimeFormatInputError", controller.lblParseError);
139     bindElement("dateTimeFormatOutputCaption", constants.formattedOutput());
140     bindElement("dateTimeFormatOutputText", controller.lblFormattedOutput);
141   }
142
143   private void initDictionaryExample() {
144     FlexTable t = new FlexTable();
145     t.setStyleName("i18n-dictionary");
146     bindElement("dictionaryExample", t);
147
148     Dictionary userInfo = Dictionary.getDictionary("userInfo");
149     Iterator JavaDoc s = userInfo.keySet().iterator();
150     for (int i = 0; s.hasNext(); i++) {
151       String JavaDoc key = (String JavaDoc) s.next();
152       t.setText(0, i, key);
153       t.setText(1, i, userInfo.get(key));
154     }
155     t.getRowFormatter().setStyleName(0, "i18n-dictionary-header-row");
156   }
157
158   private void initMessagesExample(MessagesExampleController controller) {
159     MessagesExampleConstants constants = controller.getConstants();
160     bindElement("messagesTemplateCaption", constants.messageTemplate());
161     bindElement("messagesTemplateText", controller.lblMessageTemplate);
162     bindElement("messagesArg1Caption", constants.arg1());
163     bindElement("messagesArg1Text", controller.txtArg1);
164     bindElement("messagesArg2Caption", constants.arg2());
165     bindElement("messagesArg2Text", controller.txtArg2);
166     bindElement("messagesArg3Caption", constants.arg3());
167     bindElement("messagesArg3Text", controller.txtArg3);
168     bindElement("messagesFormattedOutputCaption", constants.formattedMessage());
169     bindElement("messagesFormattedOutputText", controller.lblFormattedMessage);
170   }
171
172   private void initNumberFormatExample(NumberFormatExampleController controller) {
173     NumberFormatExampleConstants constants = controller.getConstants();
174     bindElement("numberFormatPatternCaption", constants.pattern());
175     bindElement("numberFormatPatternList", controller.lstSamplePatterns);
176     bindElement("numberFormatPatternText", controller.txtCurrentPattern);
177     bindElement("numberFormatPatternError", controller.lblPatternError);
178     bindElement("numberFormatInputCaption", constants.inputValue());
179     bindElement("numberFormatInputText", controller.txtInput);
180     bindElement("numberFormatInputError", controller.lblParseError);
181     bindElement("numberFormatOutputCaption", constants.formattedOutput());
182     bindElement("numberFormatOutputText", controller.lblFormattedOutput);
183   }
184 }
185
Popular Tags