[jboss-svn-commits] JBL Code SVN: r8925 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common/projects and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 19 16:10:30 EST 2007
Author: wrzep
Date: 2007-01-19 16:10:30 -0500 (Fri, 19 Jan 2007)
New Revision: 8925
Added:
labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java
labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java
Modified:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java
labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java
labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java
labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/web/WEB-INF/faces-config.xml
Log:
JBLAB-780
Project info portlet edit view implementation.
Pawel
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/FacesTools.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -25,6 +25,7 @@
import java.util.List;
import java.util.Set;
+import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
@@ -38,6 +39,8 @@
/**
* @author adamw
* @author dejp
+ * @author pawel
+ *
* Various static helper methods, mainly reading from the current
* faces and external contexts.
*/
@@ -170,6 +173,23 @@
return getExternalContext().getRemoteUser();
}
+ public static boolean isUserLogged() {
+ return getRemoteUser() != null;
+ }
+
+ public static boolean isProjectAdminLogged() {
+
+ String projectId = FacesTools.getSelectedProjectId();
+ String projectAdminString = null;
+
+ if ((projectId != null) && (projectId != "")) {
+ projectAdminString = projectId.concat("-admin");
+ }
+
+ return isUserLogged() && (projectAdminString != null)
+ && FacesTools.hasPermission(projectAdminString);
+ }
+
public static org.jboss.portal.identity.User getUser(String username) {
return null;
}
@@ -191,4 +211,9 @@
return projectId;
}
+
+ public static void addMessage(String message) {
+ FacesContext.getCurrentInstance().addMessage(null,
+ new FacesMessage(message));
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/ProjectsHelper.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -25,10 +25,17 @@
import java.util.Map;
import java.util.Set;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+
import org.jboss.forge.common.Constants;
import org.jboss.forge.common.ForgeHelper;
import org.jboss.forge.common.projects.permissions.ActionRequestPermissionsChecker;
import org.jboss.forge.common.projects.permissions.RenderRequestPermissionsChecker;
+import org.jboss.forge.common.soa.projects.ProjectsService;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.portlet.JBossActionRequest;
import org.jboss.portlet.JBossRenderRequest;
@@ -39,6 +46,9 @@
* @author Ryszard Kozmik
*/
public class ProjectsHelper {
+
+ private static Logger log = Logger.getLogger(ProjectsHelper.class);
+
/**
* This class cannot be instatiated.
*/
@@ -249,4 +259,23 @@
return getProjects(portalName).getProjectIds();
}
+ public static ProjectsService getProjectsService() {
+
+ ProjectsService service = null;
+
+ try {
+ MBeanServer server = MBeanServerLocator.locate();
+
+ service = (ProjectsService) MBeanProxyExt.create(
+ ProjectsService.class,
+ ProjectsService.PROJECTS_SERVICE,
+ server);
+
+
+ } catch (MalformedObjectNameException e) {
+ log.warn("Unable to get ProjectsService", e);
+ }
+
+ return service;
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsService.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -46,6 +46,8 @@
public static final String PROJECTS_SERVICE = "labs:service=projects";
public Collection<Project> getProjects();
+
+ public Collection<String> getProjectsIds();
public Project getProjectByName (String projectId);
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/projects/ProjectsServiceImpl.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -23,6 +23,7 @@
package org.jboss.forge.common.soa.projects;
import java.io.OutputStream;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -51,7 +52,6 @@
import org.jboss.forge.common.projects.project.SupportService;
import org.jboss.logging.Logger;
import org.jboss.shotoku.ContentManager;
-import org.jboss.shotoku.Directory;
import org.jboss.shotoku.Node;
import org.jboss.shotoku.aop.Inject;
@@ -294,4 +294,16 @@
log.info("Projects service stopped");
}
+
+ public Collection<String> getProjectsIds() {
+
+ Collection<String> projectsIds = new ArrayList<String>();
+
+ Collection<Project> projects = getProjects();
+ for (Project project : projects) {
+ projectsIds.add(project.getId());
+ }
+
+ return projectsIds;
+ }
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoAccessBean.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -29,26 +29,18 @@
public class ProjectInfoAccessBean {
- public ProjectInfoAccessBean() {};
+ public ProjectInfoAccessBean() { };
public boolean isProjectAdminLogged() {
return true; //DEBUG
/*
- String projectId = FacesTools.getSelectedProjectId();
- String projectAdminString = null;
-
- if ((projectId != null) && (projectId != "")) {
- projectAdminString = projectId.concat("-admin");
- }
-
- return isUserLogged() && (projectAdminString != null)
- && FacesTools.hasPermission(projectAdminString);
+ FacesTools.isProjectAdminLogged();
*/
}
public boolean isUserLogged() {
- return FacesTools.getRemoteUser() != null;
+ return FacesTools.isUserLogged();
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoBean.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -25,6 +25,7 @@
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
+import org.jboss.forge.common.FacesTools;
import org.jboss.forge.common.ForgeHelper;
import org.jboss.forge.common.projects.ProjectsHelper;
import org.jboss.forge.common.projects.project.Project;
@@ -47,6 +48,8 @@
private String username = null;
private String projectURL;
+ private static String previousProjectId = "default";
+
private static Logger log = Logger.getLogger(ProjectInfoBean.class);
@Inject
@@ -55,6 +58,7 @@
public ProjectInfoBean() {
Object request = FacesContext.getCurrentInstance().getExternalContext().getRequest();
+
if(request instanceof JBossRenderRequest) {
JBossRenderRequest req = (JBossRenderRequest) request;
@@ -67,36 +71,32 @@
if (req.getUser() != null) {
username = req.getUser().getUserName();
}
+
+ if (ProjectInfoBean.previousProjectId != projectId) {
+
+ resetSessionBean(projectId);
+ }
}
}
- private static Project getProjectById(String projectId) {
+ private static void resetSessionBean(String projectId) {
- ProjectsService service = getService();
+ FacesContext fc = FacesContext.getCurrentInstance();
+ fc.getApplication().createValueBinding("#{pedit}").setValue(fc, null );
+ System.out.println("Reset session bean! " + projectId);
- return service.getProjectByName(projectId);
+ previousProjectId = projectId;
}
-
- private static ProjectsService getService() {
-
- ProjectsService service = null;
-
- try {
- MBeanServer server = MBeanServerLocator.locate();
- service = (ProjectsService) MBeanProxyExt.create(
- ProjectsService.class,
- ProjectsService.PROJECTS_SERVICE,
- server);
-
+ private static Project getProjectById(String projectId) {
- } catch (MalformedObjectNameException e) {
- log.warn("Unable to get ProjectsService", e);
- }
+ ProjectsService service = ProjectsHelper.getProjectsService();
- return service;
+ return service.getProjectByName(projectId);
}
+
+
public Project getProject() {
return project;
}
@@ -145,5 +145,13 @@
public void setUsername(String username) {}
-
+ public String applyChanges() {
+
+ System.out.println("NEW Project name: " + project.getName());
+ System.out.println("NEW Project logo: " + project.getLogo());
+
+ FacesTools.addMessage("Your changes has been saved");
+
+ return "back";
+ }
}
Added: labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoEditBean.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -0,0 +1,184 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.projects.info;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.faces.model.SelectItem;
+
+import org.jboss.forge.common.FacesTools;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.project.Forum;
+import org.jboss.forge.common.projects.project.Project;
+import org.jboss.forge.common.projects.project.Repository;
+import org.jboss.forge.common.soa.projects.ProjectsService;
+
+public class ProjectInfoEditBean {
+
+ private Project project;
+
+ private List<SelectItem> allIntegratedProjects;
+ private List<String> selectedIntegratedProjects;
+
+ private List<SelectItem> forums;
+ private List<String> selectedForums;
+ private String forumURL;
+
+ private List<SelectItem> repositories;
+ private List<String> selectedRepositories;
+ private String repositoryURL;
+
+ private ProjectsService projectsService;
+
+ public ProjectInfoEditBean() {
+
+ projectsService = ProjectsHelper.getProjectsService();
+
+ project = projectsService.getProjectByName(FacesTools.getSelectedProjectId());
+
+ selectedIntegratedProjects = new ArrayList<String>(project.getJems());
+
+ allIntegratedProjects = new ArrayList<SelectItem>();
+ for (String projectId : projectsService.getProjectsIds()) {
+ allIntegratedProjects.add(new SelectItem(projectId));
+ }
+
+ System.out.println("FORUMS " + project.getId());
+ selectedForums = new ArrayList<String>();
+ forums = new ArrayList<SelectItem>();
+ for (Forum forum : project.getForums()) {
+
+ System.out.println("FORUM " + forum.getValue());
+
+ forums.add(new SelectItem(forum.getValue() + " " +
+ ProjectInfoTools.forumTypeName(forum.getType())));
+ }
+
+ System.out.println("REPOSITORIES");
+ selectedRepositories = new ArrayList<String>();
+ repositories = new ArrayList<SelectItem>();
+ for (Repository repository : project.getRepository()) {
+
+ System.out.println("REPO " + repository.getValue());
+
+ repositories.add(new SelectItem(repository.getValue() + " " +
+ ProjectInfoTools.repositoryTypeName(repository.getType())));
+ }
+
+ }
+
+ public String applyChanges() {
+
+
+
+ System.out.println("[apply] project name: " + project.getName());
+
+ for (String projecId : selectedIntegratedProjects) {
+ System.out.println("selected: " + projecId);
+ }
+
+ // project.setJems(selectedIntegratedProjects); TODO
+ // Rysiek, why the hell there's no Project.setJems() method???
+
+ projectsService.persistProject(project);
+
+ FacesTools.addMessage("Your changes have been saved");
+
+ return "back";
+ }
+
+ public Project getProject() {
+ return project;
+ }
+
+ public void setProject(Project project) {
+ this.project = project;
+ }
+
+ public List<SelectItem> getAllIntegratedProjects() {
+ return allIntegratedProjects;
+ }
+
+ public void setAllIntegratedProjects(List<SelectItem> allIntegratedProjects) {
+ this.allIntegratedProjects = allIntegratedProjects;
+ }
+
+ public List<String> getSelectedIntegratedProjects() {
+ return selectedIntegratedProjects;
+ }
+
+ public void setSelectedIntegratedProjects(
+ List<String> selectedIntegratedProjects) {
+ this.selectedIntegratedProjects = selectedIntegratedProjects;
+ }
+
+ public List<String> getSelectedForums() {
+ return selectedForums;
+ }
+
+ public void setSelectedForums(List<String> selectedForums) {
+ this.selectedForums = selectedForums;
+ }
+
+ public List<SelectItem> getForums() {
+ return forums;
+ }
+
+ public void setForums(List<SelectItem> forums) {
+ this.forums = forums;
+ }
+
+ public String getForumURL() {
+ return forumURL;
+ }
+
+ public void setForumURL(String forumURL) {
+ this.forumURL = forumURL;
+ }
+
+ public List<SelectItem> getRepositories() {
+ return repositories;
+ }
+
+ public void setRepositories(List<SelectItem> repositories) {
+ this.repositories = repositories;
+ }
+
+ public String getRepositoryURL() {
+ return repositoryURL;
+ }
+
+ public void setRepositoryURL(String repositoryURL) {
+ this.repositoryURL = repositoryURL;
+ }
+
+ public List<String> getSelectedRepositories() {
+ return selectedRepositories;
+ }
+
+ public void setSelectedRepositories(List<String> selectedRepositories) {
+ this.selectedRepositories = selectedRepositories;
+ }
+
+
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/java/org/jboss/forge/projects/info/ProjectInfoTools.java 2007-01-19 21:10:30 UTC (rev 8925)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.forge.projects.info;
+
+import org.jboss.forge.common.projects.project.ForumType;
+import org.jboss.forge.common.projects.project.RepoType;
+
+public class ProjectInfoTools {
+
+ private ProjectInfoTools() { }
+
+ public static String forumTypeName(ForumType type) {
+
+ if (ForumType.DEV.equals(type)) {
+ return "Developers forum";
+ }
+
+ return "Users forum";
+ }
+
+ public static String repositoryTypeName(RepoType type) {
+
+ return (RepoType.SVN.equals(type) ? "SVN" : "CVS");
+ }
+
+
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/web/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/web/WEB-INF/faces-config.xml 2007-01-19 18:11:23 UTC (rev 8924)
+++ labs/jbosslabs/trunk/portal-extensions/forge-prj-info/src/web/WEB-INF/faces-config.xml 2007-01-19 21:10:30 UTC (rev 8925)
@@ -34,4 +34,10 @@
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
+ <managed-bean>
+ <managed-bean-name>pedit</managed-bean-name>
+ <managed-bean-class>org.jboss.forge.projects.info.ProjectInfoEditBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+
</faces-config>
More information about the jboss-svn-commits
mailing list