Upload
mark-proctor
View
1.866
Download
1
Embed Size (px)
DESCRIPTION
Quick UberFire presentation
Citation preview
UF UberFirehttp://www.slideshare.net/MarkProctor/uberfire-quick-
intro-and-overview-early-beta-aug-2013
Tuesday, 6 August 13
GWT
Tuesday, 6 August 13
GWTGoogle committed to Open Source developmentmodel
Steering Commit/TransparencyTimeBox releases (twice year)Future focus
Mobile (reduced CPU utilization, more code splitting)Easier “Hyrbid” appsSmaller and faster executions
Tuesday, 6 August 13
GWTGWT used extensively at Google
Adwords (97% of google revenue)Google Groups (rewrite just announced)Major new consumer projects about to be announcedBig chunk of internal IT100K+ monthly auto-update pings (Eclipse)
GWT considered matureNot investing in marketing or evangalising
Tuesday, 6 August 13
BRMS and BPMS5.x
Tuesday, 6 August 13
BRMS and BPMS 5.xAuthoringBuildDeploy
Tuesday, 6 August 13
BRMS and BPMS 5.xAuthoringBuildDeployMonitor and ManageWork
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 CritiqueUI
GWTBut not easilyextendedFixed layoutsNo perspectives
Tuesday, 6 August 13
5.x CritiqueJCR
Performance IssuesEverything stored as blobNo tagging, branching etc.WebdavLimited team providers
Tuesday, 6 August 13
6.x RequirementsModular design
PluginsCompile time composition of plugins
Maven modulesHybrid GWT + JS support (Runtime Plugins)
Twitter Bootstrap UI
Tuesday, 6 August 13
6.x RequirementsPanels
Common Life cyclesPanel re-use in other frameworks
Eclipse, 3rd Party, etcSecurity visibility.Hybrid GWT + JS support (Runtime Plugins)
Tuesday, 6 August 13
6.x RequirementsPerspectives
Flexible layout with DnDSecurity visibility.Multiple layout managers
Tuesday, 6 August 13
6.x RequirementsMenu’s, Toolbars
decoupled from componentscontextual to perspective and focus panelSecurity visibility.
Tuesday, 6 August 13
6.x RequirementsVFS (nio2, java backport)
GIT BackendSeamless API for client and Server
SecurityAuthorization, AuthenticationSeamless API for client and Server
MetaDatastored as .dot file in git for each “asset”
High AvailabilityGIT cluster
Tuesday, 6 August 13
KIEKnowledge is Everything
Tuesday, 6 August 13
KIE
Tuesday, 6 August 13
KIE
Tuesday, 6 August 13
DEMO 1BRMS BETA
Tuesday, 6 August 13
DEMO 2BPMS 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 ScreenWorkBench Screen
DIVLifecycle events
OnStartUp, OnShutDownOnOpen, OnMayClose, OnCloseOnFocus, OnLostFocus
Tuesday, 6 August 13
Tuesday, 6 August 13
Tuesday, 6 August 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!"; }
}
Tuesday, 6 August 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>
Tuesday, 6 August 13
Workbench Editor
Tuesday, 6 August 13
Workbench EditorWorkBench Screen
DIVLifecycle events
OnStartUp, OnShutDownOnOpen, OnMayClose, OnCloseOnFocus, OnLostFocusIsDirty, OnSave
Tuesday, 6 August 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
Tuesday, 6 August 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
Tuesday, 6 August 13
Workbench Perspective
Tuesday, 6 August 13
Window ManagersNESW, with DnD
Nesting, for flexible layouts.Supports programmatic and json
FutureGridTemplates
Tuesday, 6 August 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
Tuesday, 6 August 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 () { }});
Tuesday, 6 August 13
UberFire Annotations
OnStartUp, OnShutDownOnOpen, OnMayClose, OnCloseOnFocus, OnLostFocusIsDirty, OnSave
WorkbenchEditorWorkbenchPerspectiveWorkbenchPopupWorkbenchScreen
WorkbenchPartTitleWorkbenchPartViewWorkbenchMenuPerspective
Components Lifecycle ComponentRendering Info
Tuesday, 6 August 13
Hyrbid Plugins
Tuesday, 6 August 13
Tuesday, 6 August 13
DEMO 3Show Case and Dynamic
Plugins
Tuesday, 6 August 13
DEMO 4Web IDE
Tuesday, 6 August 13
Tuesday, 6 August 13