UF UberFire
http://www.slideshare.net/MarkProctor/uberfire-quick-
intro-and-overview-early-beta-aug-2013
Tuesday, 6 August...
GWT
Tuesday, 6 August 13
GWT
Google committed to Open Source development
model
Steering Commit/Transparency
TimeBox releases (twice year)
Future fo...
GWT
GWT used extensively at Google
Adwords (97% of google revenue)
Google Groups (rewrite just announced)
Major new consum...
BRMS and BPMS
5.x
Tuesday, 6 August 13
BRMS and BPMS 5.x
Authoring
Build
Deploy
Tuesday, 6 August 13
BRMS and BPMS 5.x
Authoring
Build
Deploy
Monitor and Manage
Work
Tuesday, 6 August 13
Tuesday, 6 August 13
Tuesday, 6 August 13
Tuesday, 6 August 13
What we Learned
Tuesday, 6 August 13
5.x Critique
UI
GWT
But not easily
extended
Fixed layouts
No perspectives
Tuesday, 6 August 13
5.x Critique
JCR
Performance Issues
Everything stored as blob
No tagging, branching etc.
Webdav
Limited team providers
Tue...
6.x Requirements
Modular design
Plugins
Compile time composition of plugins
Maven modules
Hybrid GWT + JS support (Runtime...
6.x Requirements
Panels
Common Life cycles
Panel re-use in other frameworks
Eclipse, 3rd Party, etc
Security visibility.
H...
6.x Requirements
Perspectives
Flexible layout with DnD
Security visibility.
Multiple layout managers
Tuesday, 6 August 13
6.x Requirements
Menu’s, Toolbars
decoupled from components
contextual to perspective and focus panel
Security visibility....
6.x Requirements
VFS (nio2, java backport)
GIT Backend
Seamless API for client and Server
Security
Authorization, Authenti...
KIE
Knowledge is
Everything
Tuesday, 6 August 13
KIE
Tuesday, 6 August 13
KIE
Tuesday, 6 August 13
DEMO 1
BRMS BETA
Tuesday, 6 August 13
DEMO 2
BPMS Beta
Tuesday, 6 August 13
Tuesday, 6 August 13
UberFire
Tuesday, 6 August 13
UberFire Architecture
Tuesday, 6 August 13
Tuesday, 6 August 13
Workbench Screen
Tuesday, 6 August 13
Workbench Screen
WorkBench Screen
DIV
Lifecycle events
OnStartUp, OnShutDown
OnOpen, OnMayClose, OnClose
OnFocus, OnLostFo...
Tuesday, 6 August 13
Tuesday, 6 August 13
Workbench Screen
@WorkbenchScreen(identifier = "MyFirstPanel")
public class MyFirstPanel extends SimplePanel {
public MyFi...
Workbench Screen$registerPlugin({
id: "my angular js",
type: "angularjs",
templateUrl: "angular.sample.html",
title: funct...
Workbench Editor
Tuesday, 6 August 13
Workbench Editor
WorkBench Screen
DIV
Lifecycle events
OnStartUp, OnShutDown
OnOpen, OnMayClose, OnClose
OnFocus, OnLostFo...
@WorkbenchEditor(identifier = "TextEditor",
supportedTypes = { TextResourceType.class,
DotResourceType.class })
public cla...
@WorkbenchEditor(identifier = "TextEditor",
supportedTypes = { TextResourceType.class,
DotResourceType.class })
public cla...
Workbench Perspective
Tuesday, 6 August 13
Window Managers
NESW, with DnD
Nesting, for flexible layouts.
Supports programmatic and json
Future
Grid
Templates
Tuesday...
@WorkbenchPerspective(
identifier = "HomePerspective",
isDefault = true)
public class HomePerspective {
@Perspective
publi...
Workbench Perspective$registerPerspective({
"id": "Markdown Editor",
"view": {
"parts": [
{
"place": "MarkdownLiveViewer",...
UberFire Annotations
OnStartUp,
OnShutDown
OnOpen,
OnMayClose,
OnClose
OnFocus,
OnLostFocus
IsDirty,
OnSave
WorkbenchEdito...
Hyrbid Plugins
Tuesday, 6 August 13
Tuesday, 6 August 13
DEMO 3
Show Case and Dynamic
Plugins
Tuesday, 6 August 13
DEMO 4
Web IDE
Tuesday, 6 August 13
Tuesday, 6 August 13
Upcoming SlideShare
Loading in …5
×

UberFire Quick Intro and Overview (early beta Aug 2013)

2,295 views
2,158 views

Published on

Quick UberFire presentation

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,295
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

UberFire Quick Intro and Overview (early beta Aug 2013)

  1. 1. UF UberFire http://www.slideshare.net/MarkProctor/uberfire-quick- intro-and-overview-early-beta-aug-2013 Tuesday, 6 August 13
  2. 2. GWT Tuesday, 6 August 13
  3. 3. GWT Google committed to Open Source development model Steering Commit/Transparency TimeBox releases (twice year) Future focus Mobile (reduced CPU utilization, more code splitting) Easier “Hyrbid” apps Smaller and faster executions Tuesday, 6 August 13
  4. 4. GWT GWT used extensively at Google Adwords (97% of google revenue) Google Groups (rewrite just announced) Major new consumer projects about to be announced Big chunk of internal IT 100K+ monthly auto-update pings (Eclipse) GWT considered mature Not investing in marketing or evangalising Tuesday, 6 August 13
  5. 5. BRMS and BPMS 5.x Tuesday, 6 August 13
  6. 6. BRMS and BPMS 5.x Authoring Build Deploy Tuesday, 6 August 13
  7. 7. BRMS and BPMS 5.x Authoring Build Deploy Monitor and Manage Work Tuesday, 6 August 13
  8. 8. Tuesday, 6 August 13
  9. 9. Tuesday, 6 August 13
  10. 10. Tuesday, 6 August 13
  11. 11. What we Learned Tuesday, 6 August 13
  12. 12. 5.x Critique UI GWT But not easily extended Fixed layouts No perspectives Tuesday, 6 August 13
  13. 13. 5.x Critique JCR Performance Issues Everything stored as blob No tagging, branching etc. Webdav Limited team providers Tuesday, 6 August 13
  14. 14. 6.x Requirements Modular design Plugins Compile time composition of plugins Maven modules Hybrid GWT + JS support (Runtime Plugins) Twitter Bootstrap UI Tuesday, 6 August 13
  15. 15. 6.x Requirements Panels Common Life cycles Panel re-use in other frameworks Eclipse, 3rd Party, etc Security visibility. Hybrid GWT + JS support (Runtime Plugins) Tuesday, 6 August 13
  16. 16. 6.x Requirements Perspectives Flexible layout with DnD Security visibility. Multiple layout managers Tuesday, 6 August 13
  17. 17. 6.x Requirements Menu’s, Toolbars decoupled from components contextual to perspective and focus panel Security visibility. Tuesday, 6 August 13
  18. 18. 6.x Requirements VFS (nio2, java backport) GIT Backend Seamless API for client and Server Security Authorization, Authentication Seamless API for client and Server MetaData stored as .dot file in git for each “asset” High Availability GIT cluster Tuesday, 6 August 13
  19. 19. KIE Knowledge is Everything Tuesday, 6 August 13
  20. 20. KIE Tuesday, 6 August 13
  21. 21. KIE Tuesday, 6 August 13
  22. 22. DEMO 1 BRMS BETA Tuesday, 6 August 13
  23. 23. DEMO 2 BPMS Beta Tuesday, 6 August 13
  24. 24. Tuesday, 6 August 13
  25. 25. UberFire Tuesday, 6 August 13
  26. 26. UberFire Architecture Tuesday, 6 August 13
  27. 27. Tuesday, 6 August 13
  28. 28. Workbench Screen Tuesday, 6 August 13
  29. 29. Workbench Screen WorkBench Screen DIV Lifecycle events OnStartUp, OnShutDown OnOpen, OnMayClose, OnClose OnFocus, OnLostFocus Tuesday, 6 August 13
  30. 30. Tuesday, 6 August 13
  31. 31. Tuesday, 6 August 13
  32. 32. Workbench Screen @WorkbenchScreen(identifier = "MyFirstPanel") public class MyFirstPanel extends SimplePanel { public MyFirstPanel() { setWidget( new Label("Hello World 1") ); } @WorkbenchPartTitle public String myTitle() { return "My First Panel!"; } } Tuesday, 6 August 13
  33. 33. Workbench Screen$registerPlugin({ id: "my angular js", type: "angularjs", templateUrl: "angular.sample.html", title: function () { return "angular " + Math.floor(Math.random() * 10); }, on_close: function () { alert("this is a pure JS alert!"); } }); <div ng-controller="TodoCtrl"> <span>{{remaining()}} of {{todos.length}} remaining</span> [ <a href="" ng-click="archive()">archive</a> ] <ul class="unstyled"> <li ng-repeat="todo in todos"> <input type="checkbox" ng-model="todo.done"> <span class="done-{{todo.done}}">{{todo.text}}</span> </li> </ul> <form ng-submit="addTodo()"> <input type="text" ng-model="todoText" size="30" placeholder="add new todo here"> <input class="btn-primary" type="submit" value="add"> </form> <form ng-submit="goto()"> <input type="text" ng-model="placeText" size="30" placeholder="place to go"> <input class="btn-primary" type="submit" value="goTo"> </form> </div> Tuesday, 6 August 13
  34. 34. Workbench Editor Tuesday, 6 August 13
  35. 35. Workbench Editor WorkBench Screen DIV Lifecycle events OnStartUp, OnShutDown OnOpen, OnMayClose, OnClose OnFocus, OnLostFocus IsDirty, OnSave Tuesday, 6 August 13
  36. 36. @WorkbenchEditor(identifier = "TextEditor", supportedTypes = { TextResourceType.class, DotResourceType.class }) public class TextEditorPresenter { @WorkbenchPartTitle public String getTitle() { return "Text Editor [" + path.getFileName() + "]"; } @WorkbenchPartView public IsWidget getWidget() { return view; //injected } (...) } Workbench Editor Tuesday, 6 August 13
  37. 37. @WorkbenchEditor(identifier = "TextEditor", supportedTypes = { TextResourceType.class, DotResourceType.class }) public class TextEditorPresenter { (...) @OnStart public void onStart( final Path path ) { this.path = path; } @OnSave public void onSave() { } @IsDirty public boolean isDirty() { return view.isDirty(); } } Life Cycle Annotations Tuesday, 6 August 13
  38. 38. Workbench Perspective Tuesday, 6 August 13
  39. 39. Window Managers NESW, with DnD Nesting, for flexible layouts. Supports programmatic and json Future Grid Templates Tuesday, 6 August 13
  40. 40. @WorkbenchPerspective( identifier = "HomePerspective", isDefault = true) public class HomePerspective { @Perspective public PerspectiveDefinition buildPerspective() { final PerspectiveDefinition p = new PerspectiveDefinitionImpl(); p.setName( "Home Perspective" ); p.getRoot().addPart( new PartDefinitionImpl( new DefaultPlaceRequest( "RepoList" ) ) ); return p; } } Workbench Perspective Tuesday, 6 August 13
  41. 41. Workbench Perspective$registerPerspective({ "id": "Markdown Editor", "view": { "parts": [ { "place": "MarkdownLiveViewer", "parameters": {} } ], "panels": [ { "width": 600, "min_width": 300, "position": "west", "parts": [ { "place": "MarkdownLiveEditor", "parameters": {} } ] } ] }, on_close: function () { } }); Tuesday, 6 August 13
  42. 42. UberFire Annotations OnStartUp, OnShutDown OnOpen, OnMayClose, OnClose OnFocus, OnLostFocus IsDirty, OnSave WorkbenchEditor WorkbenchPerspective WorkbenchPopup WorkbenchScreen WorkbenchPartTitle WorkbenchPartView WorkbenchMenu Perspective Components Lifecycle Component Rendering Info Tuesday, 6 August 13
  43. 43. Hyrbid Plugins Tuesday, 6 August 13
  44. 44. Tuesday, 6 August 13
  45. 45. DEMO 3 Show Case and Dynamic Plugins Tuesday, 6 August 13
  46. 46. DEMO 4 Web IDE Tuesday, 6 August 13
  47. 47. Tuesday, 6 August 13

×