aws-cfn-stacker 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (438) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +53 -0
  5. data/README.rdoc +28 -0
  6. data/Rakefile +22 -1
  7. data/app/assets/images/.keep +0 -0
  8. data/app/assets/javascripts/application.js +16 -0
  9. data/app/assets/javascripts/pizza_service.js.coffee +3 -0
  10. data/app/assets/javascripts/version.js.coffee +3 -0
  11. data/app/assets/stylesheets/application.css +15 -0
  12. data/app/assets/stylesheets/pizza_service.css.scss +3 -0
  13. data/app/assets/stylesheets/version.css.scss +3 -0
  14. data/app/controllers/application_controller.rb +5 -0
  15. data/app/controllers/concerns/.keep +0 -0
  16. data/app/controllers/pizza_service_controller.rb +2 -0
  17. data/app/controllers/version_controller.rb +32 -0
  18. data/app/helpers/application_helper.rb +2 -0
  19. data/app/helpers/pizza_service_helper.rb +2 -0
  20. data/app/helpers/version_helper.rb +74 -0
  21. data/app/mailers/.keep +0 -0
  22. data/app/models/.keep +0 -0
  23. data/app/models/concerns/.keep +0 -0
  24. data/app/views/layouts/application.html.erb +14 -0
  25. data/app/views/version/index.html.erb +2 -0
  26. data/app/views/version/versioninfo.html.erb +3 -0
  27. data/aws-cfn-stacker.gemspec +15 -7
  28. data/aws-cfn-stacker.iml +127 -28
  29. data/bin/cfn-stacker +12 -21
  30. data/bin/stacker +16 -0
  31. data/config.ru +4 -0
  32. data/config/application.rb +23 -0
  33. data/config/boot.rb +4 -0
  34. data/config/database.yml +25 -0
  35. data/config/environment.rb +5 -0
  36. data/config/environments/development.rb +37 -0
  37. data/config/environments/production.rb +78 -0
  38. data/config/environments/test.rb +39 -0
  39. data/config/initializers/assets.rb +8 -0
  40. data/config/initializers/backtrace_silencers.rb +7 -0
  41. data/config/initializers/cookies_serializer.rb +3 -0
  42. data/config/initializers/filter_parameter_logging.rb +4 -0
  43. data/config/initializers/inflections.rb +16 -0
  44. data/config/initializers/mime_types.rb +4 -0
  45. data/config/initializers/session_store.rb +3 -0
  46. data/config/initializers/wrap_parameters.rb +14 -0
  47. data/config/locales/en.yml +23 -0
  48. data/config/routes.rb +60 -0
  49. data/config/secrets.yml +22 -0
  50. data/db/development.sqlite3 +0 -0
  51. data/db/seeds.rb +7 -0
  52. data/db/test.sqlite3 +0 -0
  53. data/lib/assets/.keep +0 -0
  54. data/lib/aws/cfn/stacker.rb +5 -6
  55. data/lib/aws/cfn/stacker/base.rb +198 -1
  56. data/lib/aws/cfn/stacker/commands/list_params.rb +5 -0
  57. data/lib/aws/cfn/stacker/mixins/convert_to_class_name.rb +44 -0
  58. data/lib/aws/cfn/stacker/mixins/main.rb +28 -29
  59. data/lib/aws/cfn/stacker/mixins/options.rb +74 -43
  60. data/lib/aws/cfn/stacker/mixins/prerequisites.rb +4 -4
  61. data/lib/aws/cfn/stacker/subcommand_loader.rb +30 -0
  62. data/lib/aws/cfn/stacker/version.rb +2 -1
  63. data/lib/tasks/.keep +0 -0
  64. data/log/.keep +0 -0
  65. data/public/404.html +67 -0
  66. data/public/422.html +67 -0
  67. data/public/500.html +66 -0
  68. data/public/favicon.ico +0 -0
  69. data/public/robots.txt +5 -0
  70. data/spec/controllers/pizza_service_controller_spec.rb +5 -0
  71. data/spec/helpers/pizza_service_helper_spec.rb +15 -0
  72. data/spec/rails_helper.rb +51 -0
  73. data/spec/spec_helper.rb +85 -0
  74. data/ui/build.xml +172 -0
  75. data/ui/lib/gwt-dev-2.6.1.jar +0 -0
  76. data/ui/lib/gwt-user-2.6.1.jar +0 -0
  77. data/ui/lib/gxt-3.1.1.jar +0 -0
  78. data/ui/lib/gxt-chart-3.1.1.jar +0 -0
  79. data/ui/lib/gxt-theme-neptune-3.1.1.jar +0 -0
  80. data/ui/lib/jackson-annotations-2.3.2.jar +0 -0
  81. data/ui/lib/jackson-core-2.3.2.jar +0 -0
  82. data/ui/lib/jackson-databind-2.3.2.jar +0 -0
  83. data/ui/lib/jsr311-api-1.1.1-sources.jar +0 -0
  84. data/ui/lib/jsr311-api-1.1.1.jar +0 -0
  85. data/ui/src/com/dldinternet/aws/cfn/stacker/api/ApiBase.java +20 -0
  86. data/ui/src/com/dldinternet/aws/cfn/stacker/api/model/OrderConfirmation.java +55 -0
  87. data/ui/src/com/dldinternet/aws/cfn/stacker/api/model/Pizza.java +47 -0
  88. data/ui/src/com/dldinternet/aws/cfn/stacker/api/model/PizzaOrder.java +74 -0
  89. data/ui/src/com/dldinternet/aws/cfn/stacker/api/model/Topping.java +42 -0
  90. data/ui/src/com/dldinternet/aws/cfn/stacker/api/service/GreetingService.java +12 -0
  91. data/ui/src/com/dldinternet/aws/cfn/stacker/api/service/GreetingServiceAsync.java +11 -0
  92. data/ui/src/com/dldinternet/aws/cfn/stacker/api/service/JSONBindingService.java +61 -0
  93. data/ui/src/com/dldinternet/aws/cfn/stacker/api/service/JSONRPCPizzaService.java +11 -0
  94. data/ui/src/com/dldinternet/aws/cfn/stacker/api/service/MethodService.java +51 -0
  95. data/ui/src/com/dldinternet/aws/cfn/stacker/api/service/PizzaService.java +49 -0
  96. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/Desktop.gwt.xml +29 -0
  97. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/layout/CascadeDesktopLayout.java +61 -0
  98. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/layout/CenterDesktopLayout.java +59 -0
  99. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/layout/DesktopLayout.java +40 -0
  100. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/layout/DesktopLayoutType.java +15 -0
  101. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/layout/LimitedDesktopLayout.java +54 -0
  102. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/layout/TileDesktopLayout.java +83 -0
  103. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/container/DesktopLayout.css +22 -0
  104. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/container/DesktopLayoutDefaultAppearance.java +75 -0
  105. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/container/desktop.jpg +0 -0
  106. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/ShortcutCell.css +7 -0
  107. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/ShortcutCellDefaultAppearance.java +35 -0
  108. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/ShortcutTableFrame.css +37 -0
  109. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/ShortcutTableFrameResources.java +104 -0
  110. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/background.gif +0 -0
  111. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/backgroundOverBorder.gif +0 -0
  112. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/backgroundPressedBorder.gif +0 -0
  113. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomBorder.gif +0 -0
  114. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomLeftBorder.gif +0 -0
  115. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomLeftOverBorder.gif +0 -0
  116. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomLeftPressedBorder.gif +0 -0
  117. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomOverBorder.gif +0 -0
  118. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomPressedBorder.gif +0 -0
  119. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomRightBorder.gif +0 -0
  120. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomRightOverBorder.gif +0 -0
  121. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/bottomRightPressedBorder.gif +0 -0
  122. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/leftBorder.gif +0 -0
  123. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/leftOverBorder.gif +0 -0
  124. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/leftPressedBorder.gif +0 -0
  125. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/rightBorder.gif +0 -0
  126. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/rightOverBorder.gif +0 -0
  127. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/rightPressedBorder.gif +0 -0
  128. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topBorder.gif +0 -0
  129. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topLeftBorder.gif +0 -0
  130. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topLeftOverBorder.gif +0 -0
  131. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topLeftPressedBorder.gif +0 -0
  132. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topOverBorder.gif +0 -0
  133. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topPressedBorder.gif +0 -0
  134. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topRightBorder.gif +0 -0
  135. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topRightOverBorder.gif +0 -0
  136. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/shortcut/topRightPressedBorder.gif +0 -0
  137. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/StartButtonCell.css +22 -0
  138. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/StartButtonCellDefaultAppearance.java +48 -0
  139. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/StartButtonTableFrame.css +171 -0
  140. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/StartButtonTableFrameResources.java +105 -0
  141. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/background.gif +0 -0
  142. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/backgroundOverBorder.gif +0 -0
  143. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/backgroundPressedBorder.gif +0 -0
  144. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomBorder.gif +0 -0
  145. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomLeftBorder.gif +0 -0
  146. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomLeftOverBorder.gif +0 -0
  147. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomLeftPressedBorder.gif +0 -0
  148. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomOverBorder.gif +0 -0
  149. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomPressedBorder.gif +0 -0
  150. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomRightBorder.gif +0 -0
  151. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomRightOverBorder.gif +0 -0
  152. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/bottomRightPressedBorder.gif +0 -0
  153. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/leftBorder.gif +0 -0
  154. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/leftOverBorder.gif +0 -0
  155. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/leftPressedBorder.gif +0 -0
  156. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/rightBorder.gif +0 -0
  157. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/rightOverBorder.gif +0 -0
  158. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/rightPressedBorder.gif +0 -0
  159. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/startButtonIcon.gif +0 -0
  160. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topBorder.gif +0 -0
  161. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topLeftBorder.gif +0 -0
  162. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topLeftOverBorder.gif +0 -0
  163. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topLeftPressedBorder.gif +0 -0
  164. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topOverBorder.gif +0 -0
  165. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topPressedBorder.gif +0 -0
  166. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topRightBorder.gif +0 -0
  167. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topRightOverBorder.gif +0 -0
  168. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startbutton/topRightPressedBorder.gif +0 -0
  169. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartHeadingMenuItem.css +11 -0
  170. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartHeadingMenuItemAppearance.java +44 -0
  171. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartItem.css +17 -0
  172. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartMainMenu.css +12 -0
  173. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartMainMenu.html +3 -0
  174. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartMainMenuAppearance.java +70 -0
  175. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartMenu.css +29 -0
  176. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartMenu.html +11 -0
  177. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartMenuDefaultAppearance.java +96 -0
  178. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartToolMenu.css +12 -0
  179. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartToolMenu.html +3 -0
  180. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartToolMenuAppearance.java +60 -0
  181. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartToolMenuItem.css +10 -0
  182. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/StartToolMenuItemAppearance.java +45 -0
  183. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/startmenu/itemOver.gif +0 -0
  184. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/TaskButtonCell.css +15 -0
  185. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/TaskButtonCellDefaultAppearance.java +36 -0
  186. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/TaskButtonTableFrame.css +171 -0
  187. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/TaskButtonTableFrameResources.java +105 -0
  188. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/background.gif +0 -0
  189. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/backgroundOverBorder.gif +0 -0
  190. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/backgroundPressedBorder.gif +0 -0
  191. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomBorder.gif +0 -0
  192. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomLeftBorder.gif +0 -0
  193. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomLeftOverBorder.gif +0 -0
  194. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomLeftPressedBorder.gif +0 -0
  195. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomOverBorder.gif +0 -0
  196. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomPressedBorder.gif +0 -0
  197. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomRightBorder.gif +0 -0
  198. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomRightOverBorder.gif +0 -0
  199. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/bottomRightPressedBorder.gif +0 -0
  200. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/leftBorder.gif +0 -0
  201. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/leftOverBorder.gif +0 -0
  202. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/leftPressedBorder.gif +0 -0
  203. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/rightBorder.gif +0 -0
  204. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/rightOverBorder.gif +0 -0
  205. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/rightPressedBorder.gif +0 -0
  206. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topBorder.gif +0 -0
  207. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topLeftBorder.gif +0 -0
  208. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topLeftOverBorder.gif +0 -0
  209. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topLeftPressedBorder.gif +0 -0
  210. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topOverBorder.gif +0 -0
  211. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topPressedBorder.gif +0 -0
  212. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topRightBorder.gif +0 -0
  213. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topRightOverBorder.gif +0 -0
  214. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/theme/base/taskbutton/topRightPressedBorder.gif +0 -0
  215. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/AutoVerticalLayoutContainer.java +19 -0
  216. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/Desktop.java +483 -0
  217. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/DesktopLayoutContainer.java +227 -0
  218. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/EnumComboBox.java +1 -0
  219. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/ScaleOnResizeSupport.java +156 -0
  220. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/Shortcut.java +38 -0
  221. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/ShortcutCell.java +59 -0
  222. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartButton.java +75 -0
  223. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartButtonCell.java +59 -0
  224. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartHeadingMenuItem.java +62 -0
  225. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartMainMenu.java +68 -0
  226. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartMainMenuItem.java +60 -0
  227. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartMenu.java +260 -0
  228. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartToolMenu.java +68 -0
  229. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/StartToolMenuItem.java +71 -0
  230. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/TaskBar.java +192 -0
  231. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/TaskButton.java +64 -0
  232. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/TaskButtonCell.java +59 -0
  233. data/ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/WindowManager.java +226 -0
  234. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/DesktopApp.gwt.xml +27 -0
  235. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/DesktopApp.java +304 -0
  236. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/DesktopAppPresenter.java +232 -0
  237. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/DesktopAppPresenterImpl.java +436 -0
  238. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/DesktopAppView.java +33 -0
  239. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/DesktopAppViewImpl.java +263 -0
  240. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/DesktopBus.java +297 -0
  241. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/FileBasedMiniAppPresenter.java +21 -0
  242. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/FileBasedMiniAppPresenterImpl.java +257 -0
  243. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/FileBasedMiniAppView.java +22 -0
  244. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/LoginModel.java +73 -0
  245. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/LoginPresenter.java +30 -0
  246. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/LoginPresenterImpl.java +85 -0
  247. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/LoginView.java +62 -0
  248. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/LoginViewImpl.java +232 -0
  249. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/Presenter.java +26 -0
  250. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/ProfileFactory.java +31 -0
  251. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/ProfileModel.java +69 -0
  252. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/ProfilePresenter.java +44 -0
  253. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/ProfilePresenterImpl.java +78 -0
  254. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/ProfileView.java +51 -0
  255. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/ProfileViewImpl.java +220 -0
  256. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/browser/BrowserPresenter.java +22 -0
  257. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/browser/BrowserPresenterImpl.java +41 -0
  258. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/browser/BrowserView.java +14 -0
  259. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/browser/BrowserViewImpl.java +90 -0
  260. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/AddFileModelEvent.java +41 -0
  261. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/AddStackModelEvent.java +41 -0
  262. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/CloseFileModelEvent.java +48 -0
  263. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/CreateFileModelEvent.java +49 -0
  264. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/LoginEvent.java +46 -0
  265. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/LogoutEvent.java +34 -0
  266. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/OpenFileModelEvent.java +48 -0
  267. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/OpenStackModelEvent.java +48 -0
  268. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/RemoveFileModelEvent.java +41 -0
  269. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/RemoveStackModelEvent.java +41 -0
  270. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/SelectFileModelEvent.java +41 -0
  271. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/SelectStackModelEvent.java +41 -0
  272. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/UpdateFileModelEvent.java +42 -0
  273. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/UpdateProfileEvent.java +53 -0
  274. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/event/UpdateStackModelEvent.java +42 -0
  275. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerGridInlineEditing.java +73 -0
  276. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerIconProvider.java +41 -0
  277. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerMenu.java +266 -0
  278. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerPresenter.java +40 -0
  279. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerPresenterImpl.java +158 -0
  280. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerSizeCell.java +47 -0
  281. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerToolBar.java +273 -0
  282. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerTreeGrid.java +49 -0
  283. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerView.java +29 -0
  284. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/FileManagerViewImpl.java +379 -0
  285. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/Images.java +60 -0
  286. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/arrow_in.png +0 -0
  287. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/arrow_out.png +0 -0
  288. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/bin_closed.png +0 -0
  289. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/bullet_go.png +0 -0
  290. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/cross.png +0 -0
  291. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/disk.png +0 -0
  292. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/folder.png +0 -0
  293. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/folder_add.png +0 -0
  294. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/page_white.png +0 -0
  295. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/page_white_add.png +0 -0
  296. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/script.png +0 -0
  297. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/script_add.png +0 -0
  298. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/table.png +0 -0
  299. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/table_add.png +0 -0
  300. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/textfield_rename.png +0 -0
  301. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/world.png +0 -0
  302. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/filemanager/images/world_add.png +0 -0
  303. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/DesktopImages.java +40 -0
  304. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/application_cascade.png +0 -0
  305. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/application_tile_horizontal.png +0 -0
  306. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/door_in.png +0 -0
  307. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/door_out.png +0 -0
  308. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/folder.png +0 -0
  309. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/folder_shortcut.png +0 -0
  310. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/grid.png +0 -0
  311. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/stack.png +0 -0
  312. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/stack_shortcut.png +0 -0
  313. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/table.png +0 -0
  314. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/user.png +0 -0
  315. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/images/user_edit.png +0 -0
  316. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/interpreter/InterpreterPresenter.java +16 -0
  317. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/interpreter/InterpreterPresenterImpl.java +150 -0
  318. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/interpreter/InterpreterView.java +16 -0
  319. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/interpreter/InterpreterViewImpl.java +243 -0
  320. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/AutoBeanToString.java +17 -0
  321. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/BackingStore.java +20 -0
  322. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/FileModel.java +47 -0
  323. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/FileModelFactory.java +19 -0
  324. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/FileModelProperties.java +32 -0
  325. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/FileSystem.java +350 -0
  326. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/MemoryBackingStore.java +45 -0
  327. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/StackModel.java +48 -0
  328. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/StackModelFactory.java +19 -0
  329. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/StackModelProperties.java +32 -0
  330. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/StackPile.java +350 -0
  331. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/StorageBackingStore.java +61 -0
  332. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/persistence/StorageProvider.java +71 -0
  333. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/service/LoginServiceProvider.java +1 -0
  334. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/service/LoginServiceRequest.java +1 -0
  335. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/service/ProfileServiceProvider.java +1 -0
  336. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/service/ProfileServiceRequest.java +1 -0
  337. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/servicebus/ServiceBus.java +1 -0
  338. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/servicebus/ServiceProvider.java +13 -0
  339. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/servicebus/ServiceRequest.java +13 -0
  340. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/ChartValueProvider.java +47 -0
  341. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/ColumnProvider.java +19 -0
  342. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/Evaluator.java +547 -0
  343. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/Row.java +21 -0
  344. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/RowValueProvider.java +33 -0
  345. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetChartListStoreAdapter.java +236 -0
  346. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetChartPresenter.java +21 -0
  347. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetChartPresenterImpl.java +74 -0
  348. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetChartView.java +18 -0
  349. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetChartViewImpl.java +284 -0
  350. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetMenu.java +133 -0
  351. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetPresenter.java +40 -0
  352. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetPresenterImpl.java +194 -0
  353. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetToolBar.java +189 -0
  354. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetUtilities.java +55 -0
  355. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetView.java +28 -0
  356. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/SpreadsheetViewImpl.java +420 -0
  357. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/Table.java +23 -0
  358. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/TableCategory.java +19 -0
  359. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/TableFactory.java +21 -0
  360. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/TableValueProvider.java +14 -0
  361. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/Worksheet.java +353 -0
  362. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/Images.java +46 -0
  363. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/arrow_down.png +0 -0
  364. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/arrow_left.png +0 -0
  365. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/arrow_right.png +0 -0
  366. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/arrow_up.png +0 -0
  367. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/chart_bar.png +0 -0
  368. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/chart_line.png +0 -0
  369. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/chart_pie.png +0 -0
  370. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/table_column_delete.png +0 -0
  371. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/spreadsheet/images/table_row_delete.png +0 -0
  372. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerGridInlineEditing.java +73 -0
  373. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerIconProvider.java +32 -0
  374. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerMenu.java +233 -0
  375. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerPresenter.java +40 -0
  376. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerPresenterImpl.java +155 -0
  377. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerSizeCell.java +47 -0
  378. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerToolBar.java +234 -0
  379. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerTreeGrid.java +49 -0
  380. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerView.java +29 -0
  381. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/StackManagerViewImpl.java +379 -0
  382. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/Images.java +45 -0
  383. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/arrow_in.png +0 -0
  384. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/arrow_out.png +0 -0
  385. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/bin_closed.png +0 -0
  386. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/bullet_go.png +0 -0
  387. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/folder.png +0 -0
  388. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/folder_add.png +0 -0
  389. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/stack.png +0 -0
  390. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/stack_add.png +0 -0
  391. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/stackmanager/images/textfield_rename.png +0 -0
  392. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/utility/Prompt.java +23 -0
  393. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/utility/PromptImpl.java +72 -0
  394. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/utility/Utility.java +41 -0
  395. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/wordprocessor/WordProcessorPresenter.java +14 -0
  396. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/wordprocessor/WordProcessorPresenterImpl.java +43 -0
  397. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/wordprocessor/WordProcessorView.java +14 -0
  398. data/ui/src/com/dldinternet/aws/cfn/stacker/desktopapp/client/wordprocessor/WordProcessorViewImpl.java +107 -0
  399. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/Messages.gwt.xml +15 -0
  400. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages.java +19 -0
  401. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages.properties +8 -0
  402. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessagesApi.java +34 -0
  403. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_ca.properties +109 -0
  404. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_cs.properties +106 -0
  405. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_da.properties +106 -0
  406. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_de.properties +107 -0
  407. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_el_GR.properties +106 -0
  408. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_es.properties +110 -0
  409. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_fr.properties +134 -0
  410. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_hu.properties +134 -0
  411. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_it.properties +107 -0
  412. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_ja.properties +190 -0
  413. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_nl.properties +190 -0
  414. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_no.properties +106 -0
  415. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_pl.properties +166 -0
  416. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_pt.properties +106 -0
  417. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_pt_BR.properties +116 -0
  418. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_pt_PT.properties +106 -0
  419. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_ru.properties +106 -0
  420. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_sl.properties +152 -0
  421. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_tr.properties +186 -0
  422. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_ua.properties +106 -0
  423. data/ui/src/com/dldinternet/aws/cfn/stacker/messages/client/DesktopMessages_zh.properties +106 -0
  424. data/ui/src/com/dldinternet/aws/cfn/stacker/server/GreetingServiceImpl.java +47 -0
  425. data/ui/src/com/dldinternet/aws/cfn/stacker/server/JsonpServlet.java +50 -0
  426. data/ui/src/com/dldinternet/aws/cfn/stacker/server/PizzaServlet.java +131 -0
  427. data/ui/src/com/dldinternet/aws/cfn/stacker/server/TestServlet.java +162 -0
  428. data/ui/src/com/dldinternet/aws/cfn/stacker/shared/FieldVerifier.java +42 -0
  429. data/ui/src/com/dldinternet/aws/cfn/stacker/ui/UI.gwt.xml +77 -0
  430. data/ui/src/com/dldinternet/aws/cfn/stacker/ui/UI.java +180 -0
  431. data/ui/war/.htaccess +10 -0
  432. data/ui/war/UI.css +34 -0
  433. data/ui/war/UI.html +86 -0
  434. data/ui/war/WEB-INF/web.xml +91 -0
  435. data/ui/war/images/large-loading.gif +0 -0
  436. data/vendor/assets/javascripts/.keep +0 -0
  437. data/vendor/assets/stylesheets/.keep +0 -0
  438. metadata +532 -31
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Sencha GXT 3.1.1 - Sencha for GWT
3
+ * Copyright(c) 2007-2014, Sencha, Inc.
4
+ * licensing@sencha.com
5
+ *
6
+ * http://www.sencha.com/products/gxt/license/
7
+ */
8
+ package com.dldinternet.aws.cfn.stacker.desktop.client.widget;
9
+
10
+ import com.google.gwt.event.shared.HandlerRegistration;
11
+ import com.google.gwt.user.client.ui.Widget;
12
+ import com.sencha.gxt.widget.core.client.Window;
13
+
14
+ import java.util.LinkedHashMap;
15
+ import java.util.LinkedList;
16
+ import java.util.List;
17
+ import java.util.Map;
18
+
19
+ /**
20
+ * Provides state management for a list of windows.
21
+ */
22
+ public class WindowManager {
23
+
24
+ private static class HandlerRegistrations {
25
+
26
+ private List<HandlerRegistration> handlerRegistrations = new LinkedList<HandlerRegistration>();
27
+
28
+ private void addHandlerRegistration(HandlerRegistration handlerRegistration) {
29
+ handlerRegistrations.add(handlerRegistration);
30
+ }
31
+
32
+ private void removeRegisteredHandlers() {
33
+ for (HandlerRegistration handlerRegistration : handlerRegistrations) {
34
+ handlerRegistration.removeHandler();
35
+ }
36
+ handlerRegistrations.clear();
37
+ }
38
+
39
+ }
40
+
41
+ private class WindowDescriptor {
42
+
43
+ private boolean isMinimized;
44
+ private TaskButton taskButton;
45
+ private HandlerRegistrations handlerRegistrations;
46
+
47
+ private HandlerRegistrations getHandlerRegistrations() {
48
+ if (handlerRegistrations == null) {
49
+ handlerRegistrations = new HandlerRegistrations();
50
+ }
51
+ return handlerRegistrations;
52
+ }
53
+
54
+ private TaskButton getTaskButton() {
55
+ return taskButton;
56
+ }
57
+
58
+ private boolean isMinimized() {
59
+ return isMinimized;
60
+ }
61
+
62
+ private void setMinimized(boolean isMinimized) {
63
+ this.isMinimized = isMinimized;
64
+ }
65
+
66
+ private void setTaskButton(TaskButton taskButton) {
67
+ this.taskButton = taskButton;
68
+ }
69
+
70
+ }
71
+
72
+ private Map<Window, WindowDescriptor> windows = new LinkedHashMap<Window, WindowDescriptor>();
73
+
74
+ /**
75
+ * Adds a window to the list of managed windows
76
+ *
77
+ * @param window the window to add
78
+ * @return true if the window was not already in the list
79
+ */
80
+ public boolean add(Window window) {
81
+ boolean isAdded;
82
+ if (contains(window)) {
83
+ isAdded = false;
84
+ } else {
85
+ windows.put(window, new WindowDescriptor());
86
+ isAdded = true;
87
+ }
88
+ return isAdded;
89
+ }
90
+
91
+ /**
92
+ * Adds a handler registration for the specified window. The handler
93
+ * registrations for a window may be removed using
94
+ * {@link #removeRegisteredHandlers(com.sencha.gxt.widget.core.client.Window)}.
95
+ *
96
+ * @param window the window
97
+ * @param handlerRegistration a handler association for the window
98
+ *
99
+ * @throws IllegalArgumentException if the window is not in the list of
100
+ * managed windows
101
+ */
102
+ public void addHandlerRegistration(Window window, HandlerRegistration handlerRegistration) {
103
+ getWindowDescriptor(window).getHandlerRegistrations().addHandlerRegistration(handlerRegistration);
104
+ }
105
+
106
+ /**
107
+ * Returns true if the specified window is in the list of managed windows.
108
+ *
109
+ * @param window the window to check
110
+ * @return true if the specified window is in the list of managed windows
111
+ */
112
+ public boolean contains(Window window) {
113
+ return windows.containsKey(window);
114
+ }
115
+
116
+ /**
117
+ * Returns the window that contains the specified widget as its top level
118
+ * widget, or null if no window contains the widget.
119
+ *
120
+ * @param widget the widget to search for
121
+ * @return the window containing the widget as its top level wiget, or null if
122
+ * no windows contains the widget
123
+ */
124
+ public Window find(Widget widget) {
125
+ for (Window window : getWindows()) {
126
+ if (window.getWidget() == widget) {
127
+ return window;
128
+ }
129
+ }
130
+ return null;
131
+ }
132
+
133
+ /**
134
+ * Returns the task button associated with the specified window.
135
+ *
136
+ * @param window the window
137
+ * @return the task button associated with the window
138
+ * @throws IllegalArgumentException if the window is not in the list of
139
+ * managed windows
140
+ */
141
+ public TaskButton getTaskButton(Window window) {
142
+ return getWindowDescriptor(window).getTaskButton();
143
+ }
144
+
145
+ /**
146
+ * Returns an iterable of managed windows.
147
+ *
148
+ * @return an iterable of managed windows
149
+ */
150
+ public Iterable<Window> getWindows() {
151
+ return windows.keySet();
152
+ }
153
+
154
+ /**
155
+ * Returns true if the specified window is minimized.
156
+ *
157
+ * @param window the window
158
+ * @return true if the specified window is minimized.
159
+ * @throws IllegalArgumentException if the window is not in the list of
160
+ * managed windows
161
+ */
162
+ public boolean isMinimized(Window window) {
163
+ return getWindowDescriptor(window).isMinimized();
164
+ }
165
+
166
+ /**
167
+ * Removes the specified window from the list of managed windows.
168
+ *
169
+ * @param window the window
170
+ */
171
+ public void remove(Window window) {
172
+ windows.remove(window);
173
+ }
174
+
175
+ /**
176
+ * Removes the handlers registered against the specified window.
177
+ *
178
+ * @param window the window
179
+ * @throws IllegalArgumentException if the window is not in the list of
180
+ * managed windows
181
+ */
182
+ public void removeRegisteredHandlers(Window window) {
183
+ getWindowDescriptor(window).getHandlerRegistrations().removeRegisteredHandlers();
184
+ }
185
+
186
+ /**
187
+ * Sets the minimized state of the specified window.
188
+ *
189
+ * @param window the window
190
+ * @param isMinimized true if the window is minimized
191
+ * @throws IllegalArgumentException if the window is not in the list of
192
+ * managed windows
193
+ */
194
+ public void setMinimized(Window window, boolean isMinimized) {
195
+ getWindowDescriptor(window).setMinimized(isMinimized);
196
+ }
197
+
198
+ /**
199
+ * Sets the task button associated with the specified window.
200
+ *
201
+ * @param window the window
202
+ * @param taskButton the task button associated with the window
203
+ * @throws IllegalArgumentException if the window is not in the list of
204
+ * managed windows
205
+ */
206
+ public void setTaskButton(Window window, TaskButton taskButton) {
207
+ getWindowDescriptor(window).setTaskButton(taskButton);
208
+ }
209
+
210
+ /**
211
+ * Returns the descriptor for the specified window.
212
+ *
213
+ * @param window the window
214
+ * @return the descriptor
215
+ * @throws IllegalArgumentException if the window is not in the list of
216
+ * managed windows
217
+ */
218
+ private WindowDescriptor getWindowDescriptor(Window window) {
219
+ WindowDescriptor windowDescriptor = windows.get(window);
220
+ if (windowDescriptor == null) {
221
+ throw new IllegalArgumentException("window is not in list of managed windows");
222
+ }
223
+ return windowDescriptor;
224
+ }
225
+
226
+ }
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+
4
+ Sencha GXT 3.1.1 - Sencha for GWT
5
+ Copyright(c) 2007-2014, Sencha, Inc.
6
+ licensing@sencha.com
7
+
8
+ http://www.sencha.com/products/gxt/license/
9
+
10
+ -->
11
+ <module rename-to='desktopapp'>
12
+ <inherits name='com.dldinternet.aws.cfn.stacker.desktop.Desktop' />
13
+ <inherits name="com.google.gwt.logging.Logging" />
14
+ <inherits name='com.sencha.gxt.chart.Chart' />
15
+
16
+ <set-property name="gxt.logging.enabled" value="false" />
17
+ <set-property name="gwt.logging.logLevel" value="INFO" />
18
+ <set-property name="gwt.logging.consoleHandler" value="ENABLED" />
19
+ <set-property name="gwt.logging.popupHandler" value="DISABLED" />
20
+
21
+ <!-- Comment out the following line to disable readable style names -->
22
+ <!-- <set-configuration-property name='CssResource.style' value='pretty' /> -->
23
+
24
+ <entry-point class='com.dldinternet.aws.cfn.stacker.desktopapp.client.DesktopApp' />
25
+
26
+ <add-linker name="xsiframe" />
27
+ </module>
@@ -0,0 +1,304 @@
1
+ /**
2
+ * Sencha GXT 3.1.1 - Sencha for GWT
3
+ * Copyright(c) 2007-2014, Sencha, Inc.
4
+ * licensing@sencha.com
5
+ *
6
+ * http://www.sencha.com/products/gxt/license/
7
+ */
8
+ package com.dldinternet.aws.cfn.stacker.desktopapp.client;
9
+
10
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.persistence.StorageProvider;
11
+ import com.google.gwt.core.client.EntryPoint;
12
+ import com.google.gwt.core.client.GWT;
13
+ import com.google.gwt.core.client.GWT.UncaughtExceptionHandler;
14
+ import com.google.gwt.dom.client.Element;
15
+ import com.google.gwt.user.client.History;
16
+ import com.google.gwt.user.client.ui.HasWidgets;
17
+ import com.google.gwt.user.client.ui.RootPanel;
18
+ import com.google.gwt.user.client.ui.UIObject;
19
+ import com.dldinternet.aws.cfn.stacker.desktop.client.layout.DesktopLayoutType;
20
+ import com.dldinternet.aws.cfn.stacker.desktop.client.widget.ShortcutCell.ShortcutCellAppearance;
21
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.event.LoginEvent;
22
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.event.LoginEvent.LoginHandler;
23
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.event.LogoutEvent;
24
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.event.LogoutEvent.LogoutHandler;
25
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.service.LoginServiceProvider;
26
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.service.ProfileServiceProvider;
27
+ import com.dldinternet.aws.cfn.stacker.desktopapp.client.utility.Prompt;
28
+ import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
29
+
30
+ import java.util.logging.Level;
31
+ import java.util.logging.Logger;
32
+
33
+ /**
34
+ * A sample application that provides a basic desktop capability in a browser
35
+ * window. This includes a start menu, shortcuts and a task bar with buttons for
36
+ * each active application, as well as support for multiple users, each with
37
+ * their own profile settings. Desktop applications include:
38
+ * <dl>
39
+ * <dt>File Manager</dt>
40
+ * <dd>Uses a {@link com.sencha.gxt.widget.core.client.treegrid.TreeGrid} to provides access to a hierarchical,
41
+ * browser-based file system, which is persistent on browsers that support HTML5
42
+ * Local Storage. Users may create folders, documents, browser shortcuts, and
43
+ * other files, rename files and drag and drop to move files in the file system.
44
+ * As file operations occur, open applications respond appropriately (e.g. to
45
+ * indicate renamed or moved files).</dd>
46
+ * <dt>Word Processor</dt>
47
+ * <dd>Uses a {@link com.sencha.gxt.widget.core.client.form.HtmlEditor} to provides a simple rich editing capability
48
+ * with documents that can be stored locally in the browser based file system.
49
+ * Automatically propagates saved changes to other Word Processor windows,
50
+ * closes if the document is deleted in File Manager, as well as handling
51
+ * documents that are renamed or moved using File Manager.</dd>
52
+ * <dt>Browser</dt>
53
+ * <dd>Uses a {@link com.google.gwt.user.client.ui.Frame} to provide a browser-within-a-browser that displays
54
+ * a browser web page within the desktop. Although this may sound like a
55
+ * gimmick, it's amazing how useful it can be to display multiple web pages
56
+ * simultaneously in conjunction with the {@link DesktopLayoutType#TILE}
57
+ * feature.</dd>
58
+ * <dt>Spreadsheet</dt>
59
+ * <dd>Uses a {@link com.sencha.gxt.widget.core.client.grid.Grid} to provide a simple spreadsheet capability, including
60
+ * sorting, column and row move, insert and delete as well as formulas and
61
+ * charts.</dd>
62
+ * <dt>Program</dt>
63
+ * <dd>Uses <code>JSNI</code> to provide a simple JavaScript snippet
64
+ * interpreter, including use of references to the page's window object and
65
+ * call-backs to a Java method.</dd>
66
+ * </dl>
67
+ * In addition to highlighting the capability of the GXT components and
68
+ * providing useful, reusable function, the desktop application illustrates a
69
+ * number of best practices for creating complex, interactive real-world
70
+ * applications.
71
+ * <p/>
72
+ * <ul>
73
+ * <li>Use of an enhanced Model View Presenter (MVP) pattern to improve
74
+ * separation of concerns and simplify testing.</li>
75
+ * <ul>
76
+ * <li>Model - the structured data used by the application</li>
77
+ * <li>View - the components that display information and receive user input.
78
+ * The View receives data and commands from the Presenter via the View interface
79
+ * and sends Events to the Presenter using the Presenter interface. The actual
80
+ * widgets the View uses to display the data are hidden from the Presenter. To
81
+ * paraphrase Einstein, "The View is as simple as possible, but no simpler."</li>
82
+ * <li>Presenter - the components that prepare Models for display and act on
83
+ * events from the user. The Presenter sends commands and data to the View via
84
+ * the View interface. The Presenter receives events from the View via the
85
+ * Presenter interface. The Presenter is generally responsible for creating the
86
+ * View and connecting it to the application's user interface.</li>
87
+ * </ul>
88
+ * <li>Use of a Bus to decouple providers and consumers</li>
89
+ * <ul>
90
+ * <li>Event Bus - broadcast application level events from one producer to zero
91
+ * or more consumers</li>
92
+ * <li>Service Bus - request a service (with optional response) from one and
93
+ * only one provider</li>
94
+ * </ul>
95
+ * <li>Use of encapsulated field access in declaring type to support lazy
96
+ * instantiation and initialization as well as implicit order of execution</li>
97
+ * </ul>
98
+ * <p/>
99
+ * In addition, this application illustrates the use of a number of GWT and
100
+ * Sencha technologies, including:
101
+ * <ul>
102
+ * <li>GWT Editor / Driver Framework - {@link LoginView}</li>
103
+ * <li>GWT AutoBeans - {@link ProfileModel} and {@link ProfileFactory}</li>
104
+ * <li>GWT / Sencha Appearances - {@link ShortcutCellAppearance}</li>
105
+ * </ul>
106
+ * <p/>
107
+ * If the browser does not support HTML5 Local Storage, or it is not configured
108
+ * for use with the application, this application will prompt the user whether
109
+ * to degrade gracefully to temporary (in-memory) storage that will be freed
110
+ * when the browser terminates or the the browser window is refreshed.
111
+ * <p/>
112
+ * To request that the desktop application prompt the user to clear all local
113
+ * storage for all users of this application, add <code>#clear</code> to the
114
+ * application URL.
115
+ * <p/>
116
+ * This sample application is under continuing development. The API is subject
117
+ * to change without notice.
118
+ */
119
+ public class DesktopApp implements EntryPoint {
120
+
121
+ private DesktopBus desktopBus;
122
+ private DesktopAppPresenter desktopAppPresenter;
123
+ private LoginHandler loginHandler;
124
+ private LoginServiceProvider loginServiceProvider;
125
+ private ProfileServiceProvider profileServiceProvider;
126
+ private LogoutHandler logoutHandler;
127
+ private LoginPresenter loginPresenter;
128
+ private ProfilePresenter profilePresenter;
129
+
130
+ public void loadModule(HasWidgets hasWidgets) {
131
+ setBackground(hasWidgets);
132
+ initializeDesktopBus(hasWidgets);
133
+ if (!getDesktopAppPresenter().isLocalStorageSupported()) {
134
+ loadApplicationAfterAlertingUser(hasWidgets);
135
+ } else {
136
+ loadApplication(hasWidgets);
137
+ }
138
+ }
139
+
140
+ @Override
141
+ public void onModuleLoad() {
142
+ // Set the FINEST logging to inspect storage ...
143
+ Logger logger = Logger.getLogger(StorageProvider.class.getName());
144
+ logger.setLevel(Level.FINEST);
145
+
146
+ setUncaughtExceptionHandler();
147
+ loadModule(RootPanel.get());
148
+
149
+ Element body = RootPanel.getBodyElement();
150
+ @SuppressWarnings("GwtToHtmlReferences") Element loading = RootPanel.get("loading").getElement();
151
+ body.removeChild(loading);
152
+ // DOM.removeChild(RootPanel.getBodyElement(), DOM.getElementById("loading"));
153
+ }
154
+
155
+ private void checkForLogin(HasWidgets hasWidgets) {
156
+ if (getDesktopAppPresenter().isLoggedIn()) {
157
+ displayView(hasWidgets);
158
+ } else {
159
+ getDesktopBus().invokeLoginService();
160
+ }
161
+ }
162
+
163
+ private void displayView(HasWidgets hasWidgets) {
164
+ getDesktopAppPresenter().go(hasWidgets);
165
+ }
166
+
167
+ private DesktopAppPresenter getDesktopAppPresenter() {
168
+ if (desktopAppPresenter == null) {
169
+ desktopAppPresenter = new DesktopAppPresenterImpl(getDesktopBus());
170
+ }
171
+ return desktopAppPresenter;
172
+ }
173
+
174
+ private DesktopBus getDesktopBus() {
175
+ if (desktopBus == null) {
176
+ desktopBus = new DesktopBus();
177
+ }
178
+ return desktopBus;
179
+ }
180
+
181
+ private LoginHandler getLoginHandler(final HasWidgets hasWidgets) {
182
+ if (loginHandler == null) {
183
+ loginHandler = new LoginHandler() {
184
+ @Override
185
+ public void onLogin(LoginEvent loginEvent) {
186
+ displayView(hasWidgets);
187
+ if (loginEvent.isNewUser()) {
188
+ getDesktopBus().invokeProfileService();
189
+ }
190
+ }
191
+ };
192
+ }
193
+ return loginHandler;
194
+ }
195
+
196
+ private LoginPresenter getLoginPresenter() {
197
+ if (loginPresenter == null) {
198
+ loginPresenter = new LoginPresenterImpl(getDesktopAppPresenter());
199
+ }
200
+ return loginPresenter;
201
+ }
202
+
203
+ private LoginServiceProvider getLoginServiceProvider(HasWidgets rootPanel) {
204
+ if (loginServiceProvider == null) {
205
+ loginServiceProvider = new LoginServiceProvider(getLoginPresenter(), rootPanel);
206
+ }
207
+ return loginServiceProvider;
208
+ }
209
+
210
+ private LogoutHandler getLogoutHandler() {
211
+ if (logoutHandler == null) {
212
+ logoutHandler = new LogoutHandler() {
213
+ @Override
214
+ public void onLogout(LogoutEvent logoutEvent) {
215
+ com.google.gwt.user.client.Window.Location.reload();
216
+ }
217
+ };
218
+ }
219
+ return logoutHandler;
220
+ }
221
+
222
+ private ProfilePresenter getProfilePresenter() {
223
+ if (profilePresenter == null) {
224
+ profilePresenter = new ProfilePresenterImpl(getDesktopAppPresenter());
225
+ }
226
+ return profilePresenter;
227
+ }
228
+
229
+ private ProfileServiceProvider getProfileServiceProvider(HasWidgets hasWidgets) {
230
+ if (profileServiceProvider == null) {
231
+ profileServiceProvider = new ProfileServiceProvider(getProfilePresenter(), hasWidgets);
232
+ }
233
+ return profileServiceProvider;
234
+ }
235
+
236
+ private void initializeDesktopBus(HasWidgets hasWidgets) {
237
+ getDesktopBus().registerLoginService(getLoginServiceProvider(hasWidgets));
238
+ getDesktopBus().registerProfileService(getProfileServiceProvider(hasWidgets));
239
+ getDesktopBus().addLoginHandler(getLoginHandler(hasWidgets));
240
+ getDesktopBus().addLogoutHandler(getLogoutHandler());
241
+ }
242
+
243
+ private void loadApplication(HasWidgets hasWidgets) {
244
+ if ("clear".equals(History.getToken())) {
245
+ promptToClearStorage(hasWidgets);
246
+ } else {
247
+ checkForLogin(hasWidgets);
248
+ }
249
+ }
250
+
251
+ private void loadApplicationAfterAlertingUser(final HasWidgets hasWidgets) {
252
+ Prompt.get().alert(
253
+ "Local Storage is Not Supported",
254
+ "Either your browser does not support HTML5 Local Storage or it is not configured for use by this application.<br/><br/>This application will continue to run, but anything you create will be discarded when the browser terminates or the browser window is refreshed.",
255
+ new Runnable() {
256
+ @Override
257
+ public void run() {
258
+ loadApplication(hasWidgets);
259
+ }
260
+ });
261
+ }
262
+
263
+ private void promptToClearStorage(final HasWidgets hasWidgets) {
264
+ Prompt.get().confirm("Desktop", "Would you like to clear this domain's local storage before continuing?",
265
+ new Runnable() {
266
+ @Override
267
+ public void run() {
268
+ getDesktopAppPresenter().clearLocalStorage();
269
+ checkForLogin(hasWidgets);
270
+ }
271
+ }, new Runnable() {
272
+ @Override
273
+ public void run() {
274
+ checkForLogin(hasWidgets);
275
+ }
276
+ });
277
+ }
278
+
279
+ private void setBackground(HasWidgets hasWidgets) {
280
+ if (hasWidgets instanceof UIObject) {
281
+ ((UIObject) hasWidgets).addStyleName("x-desktop");
282
+ }
283
+ }
284
+
285
+ private void setUncaughtExceptionHandler() {
286
+ GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
287
+ @Override
288
+ public void onUncaughtException(Throwable e) {
289
+ e.printStackTrace();
290
+ Throwable rootCause = getRootCause(e);
291
+ new AlertMessageBox("Exception", rootCause.toString()).show();
292
+ }
293
+ });
294
+ }
295
+
296
+ private Throwable getRootCause(Throwable e) {
297
+ Throwable lastCause;
298
+ do {
299
+ lastCause = e;
300
+ } while ((e = e.getCause()) != null);
301
+ return lastCause;
302
+ }
303
+
304
+ }