First pass on perspectives
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.ria / src / argeo-ria-lib / security / class / org / argeo / security / ria / Perspective.js
diff --git a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/Perspective.js b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/Perspective.js
new file mode 100644 (file)
index 0000000..6154dca
--- /dev/null
@@ -0,0 +1,65 @@
+/**\r
+ * IPerspective Implementation : Horizontal split pane defining two panes,\r
+ * "list" and "applet".\r
+ */\r
+/* ************************************************************************\r
+\r
+#asset(resource/org.argeo.security.ria/*)\r
+\r
+************************************************************************ */\r
+\r
+qx.Class.define("org.argeo.security.ria.Perspective", {\r
+       extend : qx.core.Object,\r
+       implement : [org.argeo.ria.components.IPerspective],\r
+\r
+       construct : function() {\r
+               this.base(arguments);\r
+       },\r
+\r
+       statics : {\r
+               LABEL : "RIA Security",\r
+               ICON : "org.argeo.security.ria/preferences-security.png"\r
+       },\r
+       \r
+\r
+       members : {\r
+\r
+               initViewPanes : function(viewsManager) {\r
+\r
+                       this._firstSplit = new qx.ui.splitpane.Pane("horizontal");\r
+                       this._secondSplit = new qx.ui.splitpane.Pane("horizontal");\r
+                       this._secondSplit.setDecorator(null);\r
+                       \r
+                       var rolesPane = new org.argeo.ria.components.ViewPane("roles", "Roles");\r
+                       viewsManager.registerViewPane(rolesPane);\r
+                       var usersPane = new org.argeo.ria.components.ViewPane("users", "Users");\r
+                       viewsManager.registerViewPane(usersPane);\r
+                       var editorPane = new org.argeo.ria.components.ViewPane("editor", "Editor");\r
+                       viewsManager.registerViewPane(editorPane);\r
+                       \r
+                       this._firstSplit.add(rolesPane, 1);\r
+                       this._firstSplit.add(this._secondSplit, 4);\r
+                       \r
+                       this._secondSplit.add(usersPane, 4);\r
+                       this._secondSplit.add(editorPane, 3);\r
+                       \r
+                       viewsManager.getViewPanesContainer().add(this._firstSplit, {flex : 1});\r
+               },\r
+\r
+               initViews : function(viewsManager) {\r
+\r
+                       var usersView = viewsManager.initIViewClass(org.argeo.security.ria.UsersApplet, "users");\r
+                       usersView.load();\r
+                       \r
+                       var rolesView = viewsManager.initIViewClass(org.argeo.security.ria.RolesApplet, "roles");\r
+                       rolesView.load();\r
+               },\r
+\r
+               remove : function(viewsManager) {\r
+                       viewsManager.getViewPaneById("applet").empty();\r
+                       viewsManager.getViewPanesContainer().remove(this.splitPane);\r
+               }\r
+\r
+       }\r
+\r
+});
\ No newline at end of file