• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
UberFire Quick Intro and Overview (early beta Jul 2013)
 

UberFire Quick Intro and Overview (early beta Jul 2013)

on

  • 1,367 views

Quick intro and overview of the UberFire project. UberFire is a tool to help rapidly build workbench or console applications.

Quick intro and overview of the UberFire project. UberFire is a tool to help rapidly build workbench or console applications.

Statistics

Views

Total Views
1,367
Views on SlideShare
1,367
Embed Views
0

Actions

Likes
1
Downloads
26
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    UberFire Quick Intro and Overview (early beta Jul 2013) UberFire Quick Intro and Overview (early beta Jul 2013) Presentation Transcript

    • UF UberFire Saturday, 29 June 13
    • GWT Saturday, 29 June 13
    • 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 Saturday, 29 June 13
    • 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 Saturday, 29 June 13
    • BRMS and BPMS Saturday, 29 June 13
    • BRMS and BPMS Authoring Build Deploy Saturday, 29 June 13
    • BRMS and BPMS Authoring Build Deploy Monitor and Manage Work Saturday, 29 June 13
    • BRMS Components Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • Saturday, 29 June 13
    • What we Learned Saturday, 29 June 13
    • 5.x Critique UI GWT But not easily extended Fixed layouts No perspectives Saturday, 29 June 13
    • 5.x Critique JCR Performance Issues Everything stored as blob No tagging, branching etc. Webdav Limited team providers Saturday, 29 June 13
    • 6.x Requirements Modular design Plugins Compile time composition of plugins Maven modules Hybrid GWT + JS support (Runtime Plugins) Twitter Bootstrap UI Saturday, 29 June 13
    • 6.x Requirements Panels Common Life cycles Panel re-use in other frameworks Eclipse, Portal etc Security visibility Hybrid GWT + JS support (Runtime Plugins) Saturday, 29 June 13
    • 6.x Requirements Perspectives Flexible layout with DnD Multiple layout managers Security visibility Hybrid GWT + JS support (Runtime Plugins) Saturday, 29 June 13
    • 6.x Requirements Menu’s, Toolbars decoupled form components contextual to perspective and focus panel Security visibility GIT Backend High Availabilty GIT cluster Saturday, 29 June 13
    • 6.x Requirements GIT Backend VFS (nio2) seamless API for client and Server Security MetaData stored as .dot file in git for each “asset” High Availability GIT cluster Saturday, 29 June 13
    • KIE Knowledge is Everything Saturday, 29 June 13
    • KIE Saturday, 29 June 13
    • KIE Saturday, 29 June 13
    • UberFire Saturday, 29 June 13
    • UberFire Architecture Saturday, 29 June 13
    • Saturday, 29 June 13
    • Workbench Screen Saturday, 29 June 13
    • 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!"; } } Saturday, 29 June 13
    • 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> Saturday, 29 June 13
    • Workbench Editor Saturday, 29 June 13
    • @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 Saturday, 29 June 13
    • Screen Life Cycles OnStart OnSave IsDirty OnClose OnFocus OnLostFocus OnMayClose OnReveal Lifecycle Saturday, 29 June 13
    • @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 Saturday, 29 June 13
    • Workbench Perspective Saturday, 29 June 13
    • Window Managers NESW, with DnD Nesting, for flexible layouts. Supports programmatic and json Future Grid Templates Saturday, 29 June 13
    • @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 Saturday, 29 June 13
    • 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 () { } }); Saturday, 29 June 13
    • UberFire Annotations OnStart OnSave IsDirty OnClose OnFocus OnLostFocus OnMayClose OnReveal WorkbenchEditor WorkbenchPerspective WorkbenchPopup WorkbenchScreen WorkbenchPartTitle WorkbenchPartView WorkbenchMenu Perspective Components Lifecycle Component Rendering Info Saturday, 29 June 13
    • Hyrbid Plugins Saturday, 29 June 13
    • Saturday, 29 June 13
    • DEMO 1 BRMS Beta3 Saturday, 29 June 13
    • Saturday, 29 June 13
    • DEMO 2 BPMS Beta4 Saturday, 29 June 13
    • Saturday, 29 June 13
    • DEMO 3 Web IDE Saturday, 29 June 13
    • Saturday, 29 June 13
    • UI Improvments Saturday, 29 June 13
    • UberFire new Navigation System Saturday, 29 June 13
    • UberFire new Navigation System Saturday, 29 June 13
    • UberFire new Navigation System Saturday, 29 June 13
    • UberFire new Navigation System Saturday, 29 June 13
    • DEMO 4 Dynamic non-GWT Plugins (Live, no Video) Saturday, 29 June 13
    • Proof Is In The Pudding Saturday, 29 June 13
    • UI Rewrite started in November Entire BRMS ported New BPMS built, all integrated Tasks, Calendars, BPM Designer Only one person on core UI framework All team memebers distributed Despite aggressive schedule Code remains modular Easy to maintain and extend Proof Is In The Pudding Saturday, 29 June 13