1. /*
  2. * Copyright 1999,2004 The Apache Software Foundation.
  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. */
  16. /*
  17. * Created on 2007-1-23
  18. *
  19. */
  20. package peaklau.eaglefund;
  21. import javax.microedition.lcdui.Alert;
  22. import javax.microedition.lcdui.AlertType;
  23. import javax.microedition.lcdui.Canvas;
  24. import javax.microedition.lcdui.Command;
  25. import javax.microedition.lcdui.CommandListener;
  26. import javax.microedition.lcdui.Display;
  27. import javax.microedition.lcdui.Displayable;
  28. import javax.microedition.midlet.MIDlet;
  29. import javax.microedition.midlet.MIDletStateChangeException;
  30. /**
  31. * This is the application entry. <br>
  32. *
  33. * <br>
  34. *
  35. * @author peaklau <br>
  36. * email:<A HREF="mailto:peaklau@hotmail.com">peaklau@hotmail.com</A> <br>
  37. * <a href="http://www.peaklau.com/fund/english/">HomePage</a>
  38. * @version $Revision: 1.1 $ $Date: 2007/05/09 16:07:04 $
  39. */
  40. public class Main extends MIDlet implements INavigator,CommandListener{
  41. private Display display = null;
  42. private MainScreen mainScreen=null;
  43. private FundAddScreen fundAddScreen=null;
  44. private FundModifyScreen fundModifyScreen=null;
  45. private FundDeleteScreen fundDeleteScreen=null;
  46. private ScrollScreen valueScreen=null;
  47. private ScrollScreen stockScreen=null;
  48. private StockImage stock30ImageScreen=null;
  49. private StockImage stock90ImageScreen=null;
  50. private StockImage stock360ImageScreen=null;
  51. private Command value= new Command("每日基金",Command.SCREEN, 1);
  52. private Command addFund= new Command("添加基金",Command.SCREEN, 1);
  53. private Command modifyFund= new Command("修改基金",Command.SCREEN, 1);
  54. private Command deleteFund= new Command("删除基金", Command.SCREEN, 1);
  55. private Command stock= new Command("大盘指数",Command.SCREEN, 1);
  56. private Command stock30Image= new Command("30日走势图",Command.SCREEN, 1);
  57. private Command stock90Image= new Command("90日走势图",Command.SCREEN, 1);
  58. private Command stock360Image= new Command("360日走势图",Command.SCREEN, 1);
  59. private Command checkVersion= new Command("软件更新信息",Command.SCREEN, 1);
  60. private Command exit = new Command("越狱",Command.EXIT, 1);
  61. private Alert alert=null;
  62. public Main() {
  63. display = Display.getDisplay(this);
  64. mainScreen=new MainScreen(this);
  65. mainScreen.addCommand(exit);
  66. mainScreen.addCommand(value);
  67. mainScreen.addCommand(addFund);
  68. mainScreen.addCommand(modifyFund);
  69. mainScreen.addCommand(deleteFund);
  70. mainScreen.addCommand(stock);
  71. mainScreen.addCommand(stock30Image);
  72. mainScreen.addCommand(stock90Image);
  73. mainScreen.addCommand(stock360Image);
  74. mainScreen.addCommand(checkVersion);
  75. mainScreen.setCommandListener(this);
  76. fundAddScreen=new FundAddScreen(this);
  77. fundModifyScreen=new FundModifyScreen(this);
  78. fundDeleteScreen=new FundDeleteScreen(this);
  79. valueScreen=new ValueScreen("每日基金",DataCenter.getValueDesc(),"mainScreen",this);
  80. stockScreen=new StockScreen("大盘指数","","mainScreen",this);
  81. stock30ImageScreen=new StockImage(30,"30日走势图","mainScreen",this);
  82. stock90ImageScreen=new StockImage(90,"90日走势图","mainScreen",this);
  83. stock360ImageScreen=new StockImage(360,"360日走势图","mainScreen",this);
  84. alert=new Alert("提示信息");
  85. }
  86. public BaseCanvas getCanvas(String name){
  87. if("stockScreen".equals(name)){
  88. return stockScreen;
  89. }else if("valueScreen".equals(name)){
  90. return valueScreen;
  91. }else if("stock30ImageScreen".equals(name)){
  92. return stock30ImageScreen;
  93. }else if("stock90ImageScreen".equals(name)){
  94. return stock90ImageScreen;
  95. }else if("stock360ImageScreen".equals(name)){
  96. return stock360ImageScreen;
  97. }else{
  98. return mainScreen;
  99. }
  100. }
  101. public Displayable getDisplayable(String name){
  102. if("fundAddScreen".equals(name)){
  103. return fundAddScreen;
  104. }else if("fundModifyScreen".equals(name)){
  105. return fundModifyScreen;
  106. }else if("fundDeleteScreen".equals(name)){
  107. return fundDeleteScreen;
  108. }else{
  109. return getCanvas(name);
  110. }
  111. }
  112. public void commandAction(Command command, Displayable displayable) {
  113. if(command == value){
  114. keyPressed(Canvas.KEY_NUM1);
  115. }else if(command == addFund){
  116. keyPressed(Canvas.KEY_NUM2);
  117. }else if(command == modifyFund){
  118. keyPressed(Canvas.KEY_NUM3);
  119. }else if(command == deleteFund){
  120. keyPressed(Canvas.KEY_NUM4);
  121. }else if(command == stock){
  122. keyPressed(Canvas.KEY_NUM5);
  123. }else if(command == stock30Image){
  124. keyPressed(Canvas.KEY_NUM6);
  125. }else if(command == stock90Image){
  126. keyPressed(Canvas.KEY_NUM7);
  127. }else if(command == stock360Image){
  128. keyPressed(Canvas.KEY_NUM8);
  129. }else if(command == checkVersion){
  130. keyPressed(Canvas.KEY_NUM9);
  131. }else if(command == exit){
  132. try{
  133. destroyApp(true);
  134. }catch(Exception e){
  135. }
  136. this.notifyDestroyed();
  137. }
  138. }
  139. public void keyPressed(int keyCode) {
  140. switch (keyCode) {
  141. case Canvas.KEY_NUM0:
  142. display.setCurrent(getDisplayable("mainScreen"));
  143. break;
  144. case Canvas.KEY_NUM1:
  145. display.setCurrent(getDisplayable("valueScreen"));
  146. break;
  147. case Canvas.KEY_NUM2:
  148. display.setCurrent(getDisplayable("fundAddScreen"));
  149. break;
  150. case Canvas.KEY_NUM3:
  151. display.setCurrent(getDisplayable("fundModifyScreen"));
  152. break;
  153. case Canvas.KEY_NUM4:
  154. display.setCurrent(getDisplayable("fundDeleteScreen"));
  155. break;
  156. case Canvas.KEY_NUM5:
  157. display.setCurrent(getDisplayable("stockScreen"));
  158. break;
  159. case Canvas.KEY_NUM6:
  160. display.setCurrent(getDisplayable("stock30ImageScreen"));
  161. break;
  162. case Canvas.KEY_NUM7:
  163. display.setCurrent(getDisplayable("stock90ImageScreen"));
  164. break;
  165. case Canvas.KEY_NUM8:
  166. display.setCurrent(getDisplayable("stock360ImageScreen"));
  167. break;
  168. case Canvas.KEY_NUM9:
  169. alert.setTitle("软件更新信息");
  170. if(!getAppVersion().equals(version)){
  171. alert.setString("软件主页 http://www.peaklau.com");
  172. }else{
  173. alert.setString("新版本号"+version+" 软件主页 http://www.peaklau.com");
  174. }
  175. alert.setType(AlertType.CONFIRMATION);
  176. alert.setTimeout(5000);
  177. display.setCurrent(alert);
  178. break;
  179. default:
  180. break;
  181. }
  182. }
  183. protected void startApp() throws MIDletStateChangeException {
  184. display.setCurrent(mainScreen);
  185. }
  186. private HttpClient httpClient=new HttpClient();
  187. public HttpClient getHttpClient(){
  188. return httpClient;
  189. }
  190. public String getAppVersion(){
  191. return this.getAppProperty("MIDlet-Version");
  192. }
  193. private String version="";
  194. public void setAppVersion(String version){
  195. this.version=version;
  196. }
  197. public Display getDisplay(){
  198. return display;
  199. }
  200. protected void pauseApp() {
  201. }
  202. protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  203. }
  204. }