/GoFastApp/src/com/moogle/gofast/main/GoFastAppScreen.java

http://go-fast-web.googlecode.com/ · Java · 572 lines · 293 code · 72 blank · 207 comment · 12 complexity · 3c44cfb46ad72c7db9745c54a6c81bab MD5 · raw file

  1. package com.moogle.gofast.main;
  2. import javax.microedition.location.LocationProvider;
  3. import net.rim.device.api.browser.field2.BrowserField;
  4. import net.rim.device.api.browser.field2.BrowserFieldConfig;
  5. import net.rim.device.api.gps.BlackBerryCriteria;
  6. import net.rim.device.api.gps.BlackBerryLocation;
  7. import net.rim.device.api.gps.GPSInfo;
  8. import net.rim.device.api.io.transport.ConnectionFactory;
  9. import net.rim.device.api.io.transport.TransportInfo;
  10. import net.rim.device.api.system.Bitmap;
  11. import net.rim.device.api.system.Display;
  12. import net.rim.device.api.system.GPRSInfo;
  13. import net.rim.device.api.ui.Color;
  14. import net.rim.device.api.ui.Field;
  15. import net.rim.device.api.ui.FieldChangeListener;
  16. import net.rim.device.api.ui.Font;
  17. import net.rim.device.api.ui.FontFamily;
  18. import net.rim.device.api.ui.Manager;
  19. import net.rim.device.api.ui.ScrollChangeListener;
  20. import net.rim.device.api.ui.UiApplication;
  21. import net.rim.device.api.ui.XYEdges;
  22. import net.rim.device.api.ui.XYRect;
  23. import net.rim.device.api.ui.component.BitmapField;
  24. import net.rim.device.api.ui.component.Dialog;
  25. import net.rim.device.api.ui.component.LabelField;
  26. import net.rim.device.api.ui.container.GridFieldManager;
  27. import net.rim.device.api.ui.container.MainScreen;
  28. import net.rim.device.api.ui.container.VerticalFieldManager;
  29. import net.rim.device.api.ui.decor.BackgroundFactory;
  30. import net.rim.device.api.ui.decor.Border;
  31. import net.rim.device.api.ui.decor.BorderFactory;
  32. public class GoFastAppScreen extends MainScreen implements FieldChangeListener {
  33. /*
  34. * private Runnable _popRunnable; private BrowserField myBrowserField;
  35. */
  36. private BitmapField _banner;
  37. private BitmapField bt1;
  38. private BitmapField bt2;
  39. private BitmapField bt3;
  40. private BitmapField bt4;
  41. private BitmapField bt5;
  42. private BitmapField bt6;
  43. private BitmapField bt7;
  44. private BitmapField bt8;
  45. private BitmapField bt9;
  46. private BitmapField bt10;
  47. private BitmapField bt11;
  48. private BitmapField bt12;
  49. private BitmapField bt13;
  50. private BitmapField bt14;
  51. private BitmapField bt15;
  52. private BitmapField bg;
  53. public VerticalFieldManager vfm;
  54. public BrowserFieldConfig bfc;
  55. public BrowserField myBrowserField;
  56. public LabelField labelname;
  57. public XYRect xyTool;
  58. ConnectionFactory cf;
  59. int[] preferredTransportTypes = { TransportInfo.TRANSPORT_BIS_B };
  60. private ScrollChangeListener paramScrollChangeListener;
  61. private int hiBanner=100;
  62. public GoFastAppScreen() {
  63. // super(NO_VERTICAL_SCROLL);
  64. //http://maps.google.com/maps/geo?q=13.777901,100.807000&output=xml
  65. int dirction = Display.getOrientation();
  66. BlackBerryCriteria myCriteria = new BlackBerryCriteria();
  67. if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST)){
  68. myCriteria.setMode(GPSInfo.GPS_MODE_ASSIST);
  69. System.out.println("GPSInfo.GPS_MODE_ASSIST="+GPSInfo.GPS_MODE_ASSIST);
  70. }
  71. else if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_AUTONOMOUS)){
  72. myCriteria.setMode(GPSInfo.GPS_MODE_AUTONOMOUS);
  73. System.out.println("GPSInfo.GPS_MODE_AUTONOMOUS="+GPSInfo.GPS_MODE_AUTONOMOUS);
  74. }
  75. //myCriteria.setCostAllowed(false);
  76. double lat = 0;
  77. double log = 0;
  78. try
  79. {
  80. LocationProvider myProvider = LocationProvider.getInstance(myCriteria);
  81. // Location location = myProvider.getLocation(3000);
  82. BlackBerryLocation myLocation =
  83. (BlackBerryLocation)myProvider.getLocation(300);
  84. lat = myLocation.getQualifiedCoordinates().getLatitude();
  85. log =myLocation.getQualifiedCoordinates().getLongitude();
  86. System.out.println("myLocation.getAddressInfo();="+myLocation.getAddressInfo());
  87. }catch (Exception e) {
  88. // TODO: handle exception
  89. System.out.println("Error ==========================="+e.getMessage());
  90. }
  91. System.out.println("Chatchai Debug="+lat);
  92. HeaderBar headerBar = new HeaderBar("Pomotion " + dirction);
  93. // h.showDate(false);
  94. // h.showSignal(false);
  95. // h.showTime(false);
  96. headerBar.setBackgroundColour(0xCCE9FD);
  97. headerBar.setBatteryBackground(0xEE1155);
  98. headerBar.setFontColour(0x2233FF);
  99. VerticalFieldManager vfmBanner = new VerticalFieldManager(USE_ALL_WIDTH);
  100. //HorizontalFieldManager vfmBanner = new HorizontalFieldManager(USE_ALL_WIDTH);
  101. GridFieldManager gridFieldManagerAoe = new GridFieldManager(2, 1,
  102. Field.FIELD_HCENTER | Manager.USE_ALL_WIDTH | Manager.NO_HORIZONTAL_SCROLL
  103. | Manager.NO_VERTICAL_SCROLL);
  104. //HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(USE_ALL_WIDTH);
  105. // LabelField lfTitle = new LabelField("Promotions",USE_ALL_WIDTH );
  106. LabelField lfTitle = new LabelField("Ladprao",USE_ALL_WIDTH);
  107. try
  108. {
  109. FontFamily typeface = FontFamily.forName("Tahoma, sans-serif");
  110. Font myFont = typeface.getFont(Font.PLAIN, 30);
  111. Font[] fonts = typeface.getFonts();
  112. for(int i =0 ;i < fonts.length;i++){
  113. System.out.println("chatchai debug font="+fonts[i].toString());
  114. }
  115. lfTitle.setFont(myFont);
  116. }
  117. catch (ClassNotFoundException e)
  118. {
  119. Dialog.inform(e.getMessage());
  120. }
  121. // lfTitle.setBackground(BackgroundFactory.createSolidBackground(0xEE1155));
  122. lfTitle.setBackground(BackgroundFactory.createSolidBackground(0xACB0B0));
  123. // Define rows and columns
  124. int rows = 1;
  125. int cols = 4;
  126. labelname = new LabelField("", FIELD_HCENTER);
  127. // Instantiate a GridFieldManager with 1 rows and 5 columns
  128. GridFieldManager gridFieldManager = new GridFieldManager(rows, cols,
  129. Field.FIELD_HCENTER | Manager.USE_ALL_WIDTH | Manager.NO_HORIZONTAL_SCROLL
  130. | Manager.NO_VERTICAL_SCROLL);
  131. Bitmap bgImage = Bitmap.getBitmapResource("img/bg.png");
  132. bt1 = new MyBitmapField("bt1", Bitmap
  133. .getBitmapResource("img/bb_5_08.jpg"),
  134. BitmapField.FOCUSABLE);
  135. bt1.setChangeListener(this);
  136. bt2 = new MyBitmapField("bt2", Bitmap
  137. .getBitmapResource("img/bb_5_13.jpg"),
  138. BitmapField.FOCUSABLE);
  139. bt2.setChangeListener(this);
  140. bt3 = new MyBitmapField("bt3", Bitmap
  141. .getBitmapResource("img/bb_5_more.jpg"),
  142. BitmapField.FOCUSABLE);
  143. bt3.setChangeListener(this);
  144. bt4 = new MyBitmapField("bt4", Bitmap
  145. .getBitmapResource("img/bb_5_setting.jpg"),
  146. BitmapField.FOCUSABLE);
  147. bt4.setChangeListener(this);
  148. bt5 = new MyBitmapField("bt5", Bitmap
  149. .getBitmapResource("img/icon_bb5.jpg"),
  150. BitmapField.FOCUSABLE);
  151. bt5.setChangeListener(this);
  152. /*
  153. * ic_newsfeed_titlebar.png ic_notifications_titlebar.png
  154. * ic_photo_comment.png ic_search_text.png
  155. */
  156. bt6 = new MyBitmapField("bt1", Bitmap
  157. .getBitmapResource("img/icon_bb6.jpg"),
  158. BitmapField.FOCUSABLE);
  159. bt6.setChangeListener(this);
  160. bt7 = new MyBitmapField("bt2", Bitmap
  161. .getBitmapResource("img/sport.png"),
  162. BitmapField.FOCUSABLE);
  163. bt7.setChangeListener(this);
  164. /*bt8 = new MyBitmapField("bt3", Bitmap
  165. .getBitmapResource("img/ic_pick_album.png"),
  166. BitmapField.FOCUSABLE);
  167. bt8.setChangeListener(this);
  168. bt9 = new MyBitmapField("bt4", Bitmap
  169. .getBitmapResource("img/ic_profile_titlebar.png"),
  170. BitmapField.FOCUSABLE);
  171. bt9.setChangeListener(this);
  172. bt10 = new MyBitmapField("bt5", Bitmap
  173. .getBitmapResource("img/icon5.gif"), BitmapField.FOCUSABLE);
  174. bt10.setChangeListener(this);*/
  175. /*
  176. * bt10 = new MyBitmapField("bt5", Bitmap
  177. * .getBitmapResource("img/icon5.gif"), BitmapField.FOCUSABLE);
  178. * bt10.setChangeListener(this);
  179. *
  180. * bt11 = new MyBitmapField("bt1", Bitmap
  181. * .getBitmapResource("img/message.gif"), BitmapField.FOCUSABLE);
  182. * bt11.setChangeListener(this); bt12 = new MyBitmapField("bt2", Bitmap
  183. * .getBitmapResource("img/icon2.gif"), BitmapField.FOCUSABLE);
  184. * bt12.setChangeListener(this); bt13 = new MyBitmapField("bt3", Bitmap
  185. * .getBitmapResource("img/icon3.gif"), BitmapField.FOCUSABLE);
  186. * bt13.setChangeListener(this); bt14 = new MyBitmapField("bt4", Bitmap
  187. * .getBitmapResource("img/icon4.gif"), BitmapField.FOCUSABLE);
  188. * bt14.setChangeListener(this); bt15 = new MyBitmapField("bt5", Bitmap
  189. * .getBitmapResource("img/icon5.gif"), BitmapField.FOCUSABLE);
  190. * bt15.setChangeListener(this);
  191. */
  192. gridFieldManager.setChangeListener(this);
  193. //gridFieldManager.setBackground(BackgroundFactory.createBitmapBackground(bgImage));
  194. gridFieldManager.setBackground(BackgroundFactory.createSolidBackground(0x000000));
  195. gridFieldManager.setCellPadding(1);
  196. gridFieldManager.setColumnPadding(50);
  197. XYEdges padding = new XYEdges(15, 15, 15, 15);
  198. int color = Color.CRIMSON;
  199. int lineStyle = Border.STYLE_DOTTED;
  200. Border roundedBorder = BorderFactory.createRoundedBorder(padding,
  201. color, lineStyle);
  202. //roundedBorderEdit.setBorder(roundedBorder);
  203. //Border border = new Border(new net.rim.device.api.ui.XYEdges(),Border.STYLE_SOLID);
  204. gridFieldManager.setBorder(roundedBorder);
  205. //gridFieldManager.setHorizontalScroll(Field.FIELD_VCENTER);
  206. // Add button fields to the GridFieldManager
  207. gridFieldManager.add(bt1);
  208. gridFieldManager.add(bt2);
  209. gridFieldManager.add(bt3);
  210. gridFieldManager.add(bt4);
  211. //setPositionChild(bt7, 0, 0);
  212. /*gridFieldManager.add(bt5);
  213. gridFieldManager.add(bt6);*/
  214. /*
  215. gridFieldManager.add(bt7);
  216. gridFieldManager.add(bt8);*/
  217. /*gridFieldManager.add(bt8);
  218. gridFieldManager.add(bt9);*/
  219. /* gridFieldManager.add(bt8);
  220. gridFieldManager.add(bt9);*/
  221. //gridFieldManager.add(bt10);
  222. /*
  223. * gridFieldManager.add(bt11); gridFieldManager.add(bt12);
  224. * gridFieldManager.add(bt13); gridFieldManager.add(bt14);
  225. * gridFieldManager.add(bt15);
  226. */
  227. vfm = new VerticalFieldManager(USE_ALL_WIDTH);
  228. vfm.setChangeListener(this);
  229. //vfm.setBackground(BackgroundFactory.createBitmapBackground(bgImage));
  230. vfm.setBackground(BackgroundFactory.createSolidBackground(0xD8D8D8));
  231. //setBackground(BackgroundFactory.createSolidBackground(0xD8D8D8));
  232. //gridFieldManager.setBackground();
  233. //gridFieldManager.setColumnProperty(0, GridFieldManager.FIXED_SIZE, 478);
  234. GridFieldManager gridFieldManager2 = new GridFieldManager(rows, cols,
  235. Field.FIELD_HCENTER | Manager.USE_ALL_WIDTH | Manager.NO_HORIZONTAL_SCROLL
  236. | Manager.NO_VERTICAL_SCROLL);
  237. LayoutManager layoutManager = new LayoutManager();
  238. /*CenteredFieldManager center = new CenteredFieldManager(USE_ALL_WIDTH);
  239. center.add(lfTitle);*/
  240. //center.add(bt9);
  241. /* gridFieldManager2.setCellPadding(1);
  242. gridFieldManager2.setColumnPadding(60);*/
  243. /* gridFieldManager2.add(bt5,Field.FIELD_LEFT);
  244. gridFieldManager2.add(lfTitle,FIELD_HCENTER|Field.FIELD_VCENTER);
  245. gridFieldManager2.add(bt7,FIELD_RIGHT);*/
  246. /*gridFieldManager2.add(bt5,0);
  247. gridFieldManager2.add(lfTitle,1);
  248. gridFieldManager2.add(bt7,2);*/
  249. layoutManager.add(bt5);
  250. // layoutManager.add(lfTitle);
  251. layoutManager.add(bt7);
  252. // gridFieldManager2.add(center);
  253. //gridFieldManager2.add(bt10);
  254. //horizontalFieldManager.add(center);
  255. //horizontalFieldManager.add(bt9);
  256. //vfmBanner.add(lfTitle);
  257. gridFieldManager2.setBorder(roundedBorder);
  258. vfmBanner.add(layoutManager);
  259. vfmBanner.add(gridFieldManager);
  260. /*gridFieldManagerAoe.add(gridFieldManager2);
  261. gridFieldManagerAoe.add(gridFieldManager);*/
  262. //horizontalFieldManager.add(lfTitle);
  263. setBanner(vfmBanner);
  264. //setBanner(gridFieldManagerAoe);
  265. //setTitle("--------------------------");
  266. setScrollListener(paramScrollChangeListener);
  267. //setBackground(BackgroundFactory.createSolidBackground(0xD8D8D8));
  268. //vfm.add(gridFieldManager);
  269. // vfm.add(labelname);
  270. // add(vfm);
  271. cf = new ConnectionFactory();
  272. cf.setPreferredTransportTypes(preferredTransportTypes);
  273. bfc = new BrowserFieldConfig();
  274. bfc.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE);
  275. //bfc.setProperty(BrowserFieldConfig.ALLOW_CS_XHR, Boolean.TRUE);
  276. // bfc.setProperty(BrowserFieldConfig.ENABLE_GEARS, Boolean.TRUE);
  277. //Default = Set by rendering engine contentType="text/html; charset=utf-8"
  278. //bfc.setProperty(BrowserFieldConfig.HTTP_HEADERS, "Content-Type=text/html;charset=utf-8");
  279. bfc.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED, Boolean.TRUE);
  280. bfc.setProperty(BrowserFieldConfig.USER_SCALABLE, Boolean.FALSE);
  281. bfc.setProperty(BrowserFieldConfig.MDS_TRANSCODING_ENABLED,Boolean.FALSE);
  282. // Boolean.FALSE);
  283. bfc.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
  284. BrowserFieldConfig.NAVIGATION_MODE_POINTER);
  285. /*bfc.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
  286. BrowserFieldConfig.NAVIGATION_MODE_CARET);*/
  287. bfc.setProperty(BrowserFieldConfig.VIEWPORT_WIDTH, new Integer(Display.getWidth()));
  288. // bfc.setProperty(BrowserFieldConfig.CONNECTION_FACTORY, cf);
  289. // myBrowserField= new BrowserField();
  290. myBrowserField = new BrowserField(bfc);
  291. /*
  292. * BrowserField myBrowserField = new BrowserField();
  293. * myBrowserField.requestContent
  294. * ("http://localhost:8080/GoFastServtlet/listitems");
  295. * //myBrowserField.requestContent
  296. * ("http://localhost:8080/GoFastServtlet/index.html");
  297. * //myBrowserField.requestContent("http://mooglefast.appspot.com");
  298. * vfm.add(myBrowserField);
  299. */
  300. // add(myBrowserField);
  301. add(vfm);
  302. // setBackground(BackgroundFactory.createSolidBackground(0x000000));
  303. /*myBrowserField
  304. .requestContent("http://192.168.1.11:8080/GoFastServtlet/listitems");//("http://css-tricks.com/examples/MovingBoxes/");
  305. */
  306. //myBrowserField.requestContent("http://localhost:8080/GoFastServtlet/listitems?page=items&brand=bb&direction=1");
  307. myBrowserField.requestContent("http://localhost:8080/GoFastServtlet/listitems?brand=bb&direction=1");
  308. vfm.add(myBrowserField);
  309. /*
  310. * _popRunnable = new Runnable() { public void run() { popScreen(null);
  311. * } };
  312. */
  313. /*
  314. * (new Thread() { public void run() { BrowserField myBrowserField = new
  315. * BrowserField(); add(myBrowserField);
  316. * //myBrowserField.requestContent("http://www.blackberry.com");
  317. * HttpConnection c = null; InputStream is = null; int rc; try { c =
  318. * (HttpConnection
  319. * )Connector.open("http://localhost:8080/GoFastServtlet/listitems");
  320. *
  321. * // Getting the response code will open the connection, // send the
  322. * request, and read the HTTP response headers. // The headers are
  323. * stored until requested. rc = c.getResponseCode();
  324. * System.out.println("[ aoe debug ] HTTP response1 code: " + rc); if
  325. * (rc != HttpConnection.HTTP_OK) {
  326. *
  327. * System.out.println("[ aoe debug ] HTTP response2 code: " + rc);
  328. *
  329. * myBrowserField.displayContent(c,
  330. * "http://localhost:8080/GoFastServtlet/listitems"); //throw new
  331. * IOException("HTTP response code: " + rc);
  332. *
  333. * }
  334. *
  335. * // is = c.openInputStream();
  336. *
  337. * }catch (Exception e) { // TODO: handle exception }
  338. * //myBrowserField.requestContent
  339. * ("http://localhost:8080/GoFastServtlet/listitems"); } }).start();
  340. */
  341. }
  342. /*
  343. * protected boolean navigationUnclick(int status, int time) { // TODO
  344. * Auto-generated method stub
  345. * System.out.println("chatchai debug unclick status="+status); return
  346. * super.navigationUnclick(status, time); } protected boolean
  347. * navigationClick(int status, int time) { // TODO Auto-generated method
  348. * stub System.out.println("chatchai debug click status="+status); return
  349. * super.navigationClick(status, time); }
  350. */
  351. /*
  352. * public void fieldChanged(Field field, int context) { // TODO
  353. * Auto-generated method stub if(field == bt1) {
  354. * System.out.println("Touched START..."); }
  355. *
  356. * }
  357. */
  358. public void fieldChanged(Field field, int context) {
  359. // TODO Auto-generated method stub
  360. System.out.println(" xxxxxxxxxxxxxxxxxx " + field);
  361. }
  362. class MyparamScrollChangeListener implements ScrollChangeListener {
  363. public void scrollChanged(Manager paramManager, int paramInt1,
  364. int paramInt2) {
  365. // TODO Auto-generated method stub
  366. }
  367. }
  368. class MyBitmapField extends BitmapField {
  369. public MyBitmapField(String name, Bitmap bitmapField, long syte) {
  370. super(bitmapField, syte);
  371. this.name = name;
  372. }
  373. private String name;
  374. public String getName() {
  375. return name;
  376. }
  377. public void setName(String name) {
  378. this.name = name;
  379. }
  380. protected boolean navigationClick(int arg0, int arg1) {
  381. // TODO Auto-generated method stub
  382. System.out.println(" click on " + this.name);
  383. System.out.println("imei="+GPRSInfo.imeiToString(GPRSInfo.getIMEI(), false));
  384. System.out.println("phone number="+net.rim.blackberry.api.phone.Phone.getDevicePhoneNumber(false));
  385. // myBrowserField.requestContent("http://localhost:8080/GoFastServtlet/listitems");
  386. // myBrowserField.requestContent("http://localhost:8080/GoFastServtlet/index.html");
  387. /*
  388. * myBrowserField
  389. * .requestContent("http://mooglefast.appspot.com/listitems");
  390. */
  391. // myBrowserField.deleteAll();
  392. // vfm.delete(myBrowserField);
  393. BrowserField myBrowserField2 = new BrowserField(bfc);
  394. // myBrowserField2.setFocus();
  395. myBrowserField2.requestContent("http://localhost:8080/GoFastServtlet/listitems?brand=bb&direction=1");
  396. //myBrowserField2.requestContent("http://localhost:8080/GoFastServtlet/listitems?page=items&brand=bb&direction=1");
  397. // myBrowserField.direquestContent("http://mooglefast.appspot.com/listitems");
  398. // vfm.delete(field)
  399. /*
  400. * vfm.add(myBrowserField); synchronized (vfm) { add(vfm); }
  401. */
  402. return super.navigationClick(arg0, arg1);
  403. }
  404. MyTooltip _tooltip;
  405. public void onFocus(int direction) {
  406. labelname.setText(this.name);
  407. //this.setBorder(BorderFactory.createRoundedBorder(null));
  408. if ( _tooltip != null ) {
  409. _tooltip.removeToolTip();
  410. _tooltip = null;
  411. }
  412. // Display tooltip at 50,50 for 5 seconds
  413. _tooltip = MyTooltip.addToolTip(UiApplication.getUiApplication(), this.name,this.getContentLeft(), hiBanner, 5);;
  414. }
  415. protected void onUnfocus() {
  416. labelname.setText("");
  417. if ( _tooltip != null ) {
  418. // We have displayed a Tooltip - remove it
  419. _tooltip.removeToolTip();
  420. _tooltip = null;
  421. }
  422. }
  423. }
  424. class CenteredFieldManager extends Manager {
  425. protected CenteredFieldManager(long style)
  426. {
  427. super(style);
  428. }
  429. // TODO Auto-generated constructor stub}
  430. protected void sublayout(int width, int height) {
  431. if (getFieldCount() > 0) {
  432. Field centeredField = getField(0); // get the first (and only) field
  433. layoutChild(centeredField, width, height); // set the field's width and height
  434. setPositionChild(centeredField, (width-centeredField.getWidth())/2, 0); // center the field horizontally
  435. setExtent(width, centeredField.getHeight()); // set the size of this manager to use the entire screen width
  436. }
  437. }
  438. }
  439. class LayoutManager extends Manager
  440. {
  441. public LayoutManager()
  442. {
  443. //construct a manager with vertical scrolling
  444. super(VERTICAL_SCROLL);
  445. }
  446. //overwrite the nextFocus method for custom navigation
  447. protected int nextFocus(int direction, boolean alt)
  448. {
  449. return super.nextFocus(direction, alt);
  450. }
  451. protected void sublayout(int width, int height)
  452. {
  453. Field field;
  454. //get total number of fields within this manager
  455. int numberOfFields = getFieldCount();
  456. int x = 0;
  457. int y = 0;
  458. System.out.println("******** Fields: " + numberOfFields + " W/H: " + width + " / " + height );
  459. /*
  460. * ******** Fields: 3 W/H: 480 / 360
  461. ******** X/Y: 20 / 80
  462. ******** X/Y: 20 / 80
  463. ******** X/Y: 20 / 80
  464. */
  465. for(int i = 0;i < numberOfFields;i++) {
  466. field = getField(i); //get the field
  467. x = 20;
  468. y = 80;
  469. System.out.println("******** X/Y: " + x + " / " + y);
  470. if(i==0){
  471. setPositionChild(field, 19, 19); //set the position for the field
  472. layoutChild(field, width, 80); //lay out the field
  473. }else{
  474. /*setPositionChild(field, x, y); //set the position for the field
  475. layoutChild(field, width, y); //lay out the field
  476. */
  477. setPositionChild(field, 420, 19); //set the position for the field
  478. layoutChild(field, width, 80); //lay out the field
  479. }
  480. }
  481. setPosition(0, 80);
  482. setExtent(width, 80);
  483. }
  484. public int getPreferredWidth()
  485. {
  486. return 160;
  487. }
  488. public int getPreferredHeight()
  489. {
  490. int height= 0;
  491. int numberOfFields= getFieldCount();
  492. for(int i= 0; i < numberOfFields; i++)
  493. {
  494. height += getField(i).getPreferredHeight();
  495. }
  496. return 160;
  497. }
  498. }
  499. }