[jboss-svn-commits] JBL Code SVN: r18929 - in labs/jbosslabs/labs-3.0-build/views/auth/src/main: java/org/jboss/labs/view/auth/action and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 13 12:36:57 EDT 2008
Author: szimano
Date: 2008-03-13 12:36:57 -0400 (Thu, 13 Mar 2008)
New Revision: 18929
Added:
labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/auth/AuthViewEvents.java
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/auth_view.css
Modified:
labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/GlobalBinderAction.java
labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/ServiceManager.java
labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_service_role.xhtml
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user_role.xhtml
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/layout/template.xhtml
labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/manage_global.xhtml
Log:
manage global c.d. JBLAB-901
Added: labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/auth/AuthViewEvents.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/auth/AuthViewEvents.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/auth/AuthViewEvents.java 2008-03-13 16:36:57 UTC (rev 18929)
@@ -0,0 +1,36 @@
+/*
+ * JBoss Labs. http://labs.jboss.com/jbosslabs
+ *
+ * Copyright (C) 2008 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
+ * Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+ */
+package org.jboss.labs.auth;
+
+/**
+ * @author tomaszszymanski
+ *
+ */
+public class AuthViewEvents {
+ /**
+ * This will clear user role from UserManager
+ */
+ public final static String CLEAR_USERROLE = "CLEAR_USERROLE";
+
+ public final static String CLEAR_GLOBAL_ROLES = "CLEAR_GLOBAL_ROLES";
+}
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/GlobalBinderAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/GlobalBinderAction.java 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/GlobalBinderAction.java 2008-03-13 16:36:57 UTC (rev 18929)
@@ -22,6 +22,8 @@
*/
package org.jboss.labs.view.auth.action;
+import javax.faces.event.ValueChangeEvent;
+
import org.jboss.labs.auth.RoleBinderService;
import org.jboss.labs.auth.ViewHelper;
import org.jboss.labs.core.model.auth.ServiceRole;
@@ -30,9 +32,12 @@
import org.jboss.labs.injection.seam.Guice;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
+import org.jboss.seam.core.Events;
import com.google.inject.Inject;
+import static org.jboss.labs.auth.AuthViewEvents.*;
+
/**
* @author tomaszszymanski
*
@@ -40,16 +45,16 @@
@Name("globalBinder")
@Guice
public class GlobalBinderAction {
-
+
@Inject
private RoleBinderService binderService;
-
- @In(value="#{users.currentRole}", required=false)
+
+ @In(value = "#{users.currentRole}", required = false)
private UserRole currentRole;
- @In(value="#{services.currentServiceRole}", required = false)
+ @In(value = "#{services.currentServiceRole}", required = false)
private ServiceRole currentServiceRole;
-
+
public boolean isOk() {
if (currentRole == null) {
ViewHelper.addMessage("Please set User Role");
@@ -57,19 +62,27 @@
if (currentServiceRole == null) {
ViewHelper.addMessage("Please set Service Role");
}
-
+
return (currentRole != null && currentServiceRole != null);
}
-
+
public void add() {
if (currentRole != null && currentServiceRole != null) {
try {
binderService.bindRolesGlobal(currentServiceRole, currentRole);
ViewHelper.addMessage("Role bound");
+
+ Events.instance().raiseEvent(CLEAR_GLOBAL_ROLES);
} catch (NoSuchUserRoleException e) {
ViewHelper.addErrorMessage(e);
}
}
}
+
+ public void changePanel(ValueChangeEvent event) {
+ // clear user role in UserManager bean
+ Events.instance().raiseEvent(CLEAR_USERROLE, event);
+ Events.instance().raiseEvent(CLEAR_GLOBAL_ROLES);
+ }
+
}
-
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/ServiceManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/ServiceManager.java 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/ServiceManager.java 2008-03-13 16:36:57 UTC (rev 18929)
@@ -25,6 +25,8 @@
import java.util.HashSet;
import java.util.Set;
+import javax.faces.event.FacesEvent;
+
import org.jboss.labs.auth.RoleBinderService;
import org.jboss.labs.core.model.auth.Service;
import org.jboss.labs.core.model.auth.ServiceRole;
@@ -33,7 +35,7 @@
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.log.Log;
import org.richfaces.model.TreeNode;
@@ -41,6 +43,8 @@
import com.google.inject.Inject;
+import static org.jboss.labs.auth.AuthViewEvents.*;
+
/**
* @author tomaszszymanski
*
@@ -64,6 +68,10 @@
private Log log;
public Service getCurrentService() {
+ if (currentServiceRole != null) {
+ currentServiceRole = null;
+ }
+
return currentService;
}
@@ -108,7 +116,7 @@
for (Service s : getAllServices()) {
TreeNode tmp = new TreeNodeImpl();
- tmp.setData(s.getDescription());
+ tmp.setData(s);
globalRolesTree.addChild(counter++, tmp);
@@ -127,10 +135,10 @@
private void addServiceRoles(TreeNode node, Service s, int counter) {
for (ServiceRole sr : s.getServiceRoles()) {
TreeNode tmp = new TreeNodeImpl();
- tmp.setData(sr.getDescription());
-
+ tmp.setData(sr);
+
node.addChild(counter++, tmp);
-
+
addGlobalRoles(tmp, sr, counter);
}
}
@@ -143,8 +151,8 @@
private void addGlobalRoles(TreeNode node, ServiceRole sr, int counter) {
for (UserRole gr : sr.getGlobalRoles()) {
TreeNode tmp = new TreeNodeImpl();
- tmp.setData(gr.getId());
-
+ tmp.setData(gr);
+
node.addChild(counter++, tmp);
}
}
@@ -152,4 +160,10 @@
public void setGlobalRolesTree(TreeNode globalRolesTree) {
this.globalRolesTree = globalRolesTree;
}
+
+ @Observer(CLEAR_GLOBAL_ROLES)
+ public void cleanGlobalRoles() {
+ globalRolesTree = null;
+ }
+
}
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/java/org/jboss/labs/view/auth/action/UserManager.java 2008-03-13 16:36:57 UTC (rev 18929)
@@ -22,23 +22,31 @@
*/
package org.jboss.labs.view.auth.action;
+import static org.jboss.labs.auth.AuthViewEvents.CLEAR_USERROLE;
+
import java.util.List;
import java.util.Vector;
+import javax.faces.event.FacesEvent;
+
+import org.jboss.labs.auth.UserService;
+import org.jboss.labs.auth.ViewHelper;
+import org.jboss.labs.core.model.auth.User;
+import org.jboss.labs.core.model.auth.UserRole;
+import org.jboss.labs.exception.auth.NoSuchUserRoleException;
+import org.jboss.labs.injection.seam.Guice;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Out;
+import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.log.Log;
+import org.richfaces.component.UITree;
+import org.richfaces.event.NodeSelectedEvent;
-import org.jboss.labs.auth.UserService;
-import org.jboss.labs.core.model.auth.UserRole;
-import org.jboss.labs.injection.seam.Guice;
-
import com.google.inject.Inject;
/**
@@ -52,13 +60,15 @@
@Inject
private UserService userService;
-
+
@DataModelSelection
private UserRole currentRole;
-
+
@DataModel
private List<UserRole> allRoles;
-
+
+ private List<User> usersInRole;
+
@Logger
private Log log;
@@ -66,7 +76,7 @@
public void findRoles() {
allRoles = new Vector<UserRole>(userService.getAllUserRoles());
}
-
+
public void setRole() {
}
@@ -75,6 +85,63 @@
}
public void setCurrentRole(UserRole currentRole) {
+ usersInRole = null;
+
this.currentRole = currentRole;
}
+
+ public List<User> getUsersInRole() {
+
+ if (usersInRole == null) {
+ if (currentRole != null)
+ try {
+ usersInRole = new Vector<User>(userService
+ .getUsersFromUserRole(currentRole));
+ } catch (NoSuchUserRoleException e) {
+ ViewHelper.addErrorMessage(e);
+ }
+ }
+
+ return usersInRole;
+ }
+
+ public void setUsersInRole(List<User> usersInRole) {
+ this.usersInRole = usersInRole;
+ }
+
+ public void selectGlobalNode(NodeSelectedEvent event) {
+ UITree tree = (UITree) event.getComponent();
+ Object ob = tree.getRowData();
+
+ if (ob instanceof UserRole) {
+ currentRole = (UserRole) ob;
+ }
+ }
+
+ @Observer(CLEAR_USERROLE)
+ public void clearRole(FacesEvent evnt) {
+ currentRole = null;
+ usersInRole = null;
+ }
+
+ public String getRowClasses() {
+ if (allRoles != null) {
+ String output = "";
+ int selectIndex = allRoles.indexOf(currentRole);
+
+ for (int i = 0; i < allRoles.size() - 1; i++) {
+ output += (i == selectIndex ? "selected" : "notselected") + ",";
+ }
+
+ if (allRoles.size() - 1 == selectIndex) {
+ output += "selected";
+ } else {
+ output += "notselected";
+ }
+
+ return output;
+ }
+
+ return "";
+ }
}
Added: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/auth_view.css
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/auth_view.css (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/auth_view.css 2008-03-13 16:36:57 UTC (rev 18929)
@@ -0,0 +1,4 @@
+.selected {
+ background-color: grey;
+ color: black;
+}
\ No newline at end of file
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_service_role.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_service_role.xhtml 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_service_role.xhtml 2008-03-13 16:36:57 UTC (rev 18929)
@@ -18,10 +18,10 @@
<h:outputText value="Choose Service Role"></h:outputText>
<h:selectOneRadio id="serviceRoleList"
- value="#{services.currentServiceRole}">
+ value="#{services.currentServiceRole}" >
<a4j:support event="onchange" reRender="msgs,buttons" />
<s:selectItems value="#{services.serviceRoles}" var="serviceRole"
- label="#{serviceRole.description}" />
+ label="#{serviceRole.description}"/>
<f:converter converterId="serviceEntity" />
</h:selectOneRadio>
</h:panelGroup>
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user_role.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user_role.xhtml 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/include/choose_user_role.xhtml 2008-03-13 16:36:57 UTC (rev 18929)
@@ -7,7 +7,7 @@
xmlns:a4j="http://richfaces.org/a4j" template="/layout/template.xhtml">
<rich:dataTable width="483" id="roleList" rows="10" columnClasses="col"
- value="#{allRoles}" var="role" >
+ value="#{allRoles}" var="role" rowClasses="#{users.rowClasses}">
<f:facet name="header">
<rich:columnGroup>
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/layout/template.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/layout/template.xhtml 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/layout/template.xhtml 2008-03-13 16:36:57 UTC (rev 18929)
@@ -22,7 +22,7 @@
<div class="body">
<ui:include src="breadcrumbs.xhtml"/>
- <rich:messages styleClass="message" id="msgs" />
+ <rich:messages styleClass="message" id="msgs"/>
<ui:insert name="body"/>
</div>
Modified: labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/manage_global.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/manage_global.xhtml 2008-03-13 16:36:25 UTC (rev 18928)
+++ labs/jbosslabs/labs-3.0-build/views/auth/src/main/webapp/manage_global.xhtml 2008-03-13 16:36:57 UTC (rev 18929)
@@ -10,8 +10,8 @@
<ui:define name="body">
- <rich:tabPanel switchType="ajax">
- <rich:tab label="Add">
+ <rich:tabPanel switchType="ajax" valueChangeListener="#{globalBinder.changePanel}">
+ <rich:tab label="Add" name="add">
<a4j:form>
<ui:include src="include/choose_service_role.xhtml" />
@@ -19,26 +19,50 @@
<ui:include src="include/choose_user_role.xhtml" />
<h:panelGroup id="buttons">
- <a4j:commandButton action="#{globalBinder.add}" value="Set"
- reRender="msgs" disabled="#{! globalBinder.ok}" />
+ <a4j:commandButton action="#{globalBinder.add}" value="Bind"
+ reRender="msgs,globalRolesTree" disabled="#{services.currentServiceRole == null or users.currentRole == null}" />
</h:panelGroup>
</a4j:form>
</rich:tab>
- <rich:tab label="View/Edit">
- <a4j:form>
- <rich:tree switchType="ajax" value="#{services.globalRolesTree}"
- var="item" id="globalRolesTree">
- </rich:tree>
- <rich:contextMenu event="oncontextmenu" attached="true"
- submitMode="none">
+ <rich:tab label="View/Edit" name="view">
+ <h:panelGrid columns="2">
+ <a4j:form>
+ <rich:tree switchType="ajax" value="#{services.globalRolesTree}"
+ var="item" id="globalRolesTree" ajaxSubmitSelection="true"
+ nodeSelectListener="#{users.selectGlobalNode}"
+ reRender="selectedRole" nodeFace="#{item.class.name}">
+
+ <rich:treeNode type="org.jboss.labs.core.model.auth.Service">
+ <h:outputText value="[Service] #{item.description}" />
+ </rich:treeNode>
- <rich:menuItem value="Zoom In" id="zin"></rich:menuItem>
+ <rich:treeNode type="org.jboss.labs.core.model.auth.ServiceRole">
+ <h:outputText value="[ServiceRole] #{item.description}" />
+ </rich:treeNode>
- <rich:menuItem value="Zoom Out" id="zout"></rich:menuItem>
-
+ <rich:treeNode type="org.jboss.labs.core.model.auth.UserRole">
+ <h:outputText value="[UserRole] #{item.id}" />
+ </rich:treeNode>
+ </rich:tree>
+ <rich:contextMenu event="oncontextmenu" attached="true"
+ submitMode="none">
+ <rich:menuItem value="Edit" id="edit"></rich:menuItem>
+ <rich:menuItem value="Delete" id="delete"></rich:menuItem>
</rich:contextMenu>
- </a4j:form>
+ <h:panelGroup id="buttons">
+ <a4j:commandButton value="Edit" />
+ <a4j:commandButton value="Delete" />
+ </h:panelGroup>
+ </a4j:form>
+ <h:panelGroup layout="vertical" id="selectedRole">
+ <h:outputText value="#{users.currentRole.id}"/>
+ <h:outputText value="#{users.currentRole.description}"/>
+ <rich:dataList var="user" value="#{users.usersInRole}">
+ <h:outputText value="#{user.name}" />
+ </rich:dataList>
+ </h:panelGroup>
+ </h:panelGrid>
</rich:tab>
</rich:tabPanel>
</ui:define>
More information about the jboss-svn-commits
mailing list