[jboss-svn-commits] JBL Code SVN: r10502 - in labs/jbosslabs/trunk/portal-extensions: forge-common/src/java/org/jboss/forge/common/projects/proxies and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 23 17:27:31 EDT 2007


Author: wrzep
Date: 2007-03-23 17:27:30 -0400 (Fri, 23 Mar 2007)
New Revision: 10502

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ObjectRWProxy.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminConstants.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java
Removed:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProjectRWProxy.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminTools.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml
Log:
JBLAB-843
Pawel


Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/ejb3/ProjectFactoryService.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -22,7 +22,11 @@
 
 package org.jboss.forge.common.ejb3;
 
+import java.util.Map;
+
 import org.jboss.forge.common.projects.project.IssueTracker;
+import org.jboss.forge.common.projects.project.Portlet;
+import org.jboss.forge.common.projects.project.Preference;
 
 /**
  * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
@@ -30,9 +34,18 @@
 public interface ProjectFactoryService {
 
     public static final String PROJECT_FACTORY_SERVICE = "labs:service=projectFactory";
-
+    
     public IssueTracker createIssueTracker();
     
+    public Portlet createPortlet();
+    
+    public Portlet createPortlet(String name, String region, int height,
+    												Map<String, String> preferences);
+    
+    public Preference createPreference();
+    
+    public Preference createPreference(String name, String value);
+    
     //	 Life cycle methods
 	
     public void start () throws Exception;

Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ObjectRWProxy.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ObjectRWProxy.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ObjectRWProxy.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -0,0 +1,34 @@
+ /*
+  * 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.common.projects.proxies;
+
+
+
+/**
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+
+public interface ObjectRWProxy {
+
+	public Object getObjectRW();
+}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProjectRWProxy.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProjectRWProxy.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProjectRWProxy.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -1,34 +0,0 @@
- /*
-  * 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.common.projects.proxies;
-
-import org.jboss.forge.common.projects.project.rw.ProjectRW;
-
-/**
- * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
- */
-
-public interface ProjectRWProxy {
-
-	public ProjectRW getProjectRW();
-}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -144,6 +144,11 @@
 		}
 	}
 
+	public static boolean isRWType(Class<? extends Object> type) {
+		
+		return type.getPackage().getName().equals("org.jboss.forge.common.projects.project.rw");
+	}	
+	
 	private ProxyUtils() {}
 
 	

Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/SyncProxy.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -26,8 +26,6 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 
-import org.jboss.forge.common.projects.project.rw.ProjectRW;
-
 /**
  * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
  */
@@ -43,10 +41,10 @@
     		Class[] interfaces;
     	
 		// hack to use dynamic proxy with JAXB
-    		if (obj instanceof ProjectRW) {
-    			
+    		if (ProxyUtils.isRWType(obj.getClass())) {
+    		
     			interfaces = appendInterface(obj.getClass().getInterfaces(),
-    										 ProjectRWProxy.class);
+    										 ObjectRWProxy.class);
     			
     		} else {
     			
@@ -86,7 +84,7 @@
     		throws Throwable {
     
     		// hack continued
-    		if (m.getName().equals("getProjectRW")) {
+    		if (m.getName().equals("getObjectRW")) {
     			
     			return obj;
     		}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -22,6 +22,10 @@
 
 package org.jboss.forge.ejb3.projects;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 import javax.ejb.Remote;
 
 import org.jboss.annotation.ejb.Management;
@@ -29,8 +33,12 @@
 
 
 import org.jboss.forge.common.projects.project.IssueTracker;
+import org.jboss.forge.common.projects.project.Portlet;
+import org.jboss.forge.common.projects.project.Preference;
 import org.jboss.forge.common.projects.project.Project;
 import org.jboss.forge.common.projects.project.rw.IssueTrackerRW;
+import org.jboss.forge.common.projects.project.rw.PortletRW;
+import org.jboss.forge.common.projects.project.rw.PreferenceRW;
 import org.jboss.forge.common.projects.project.rw.ProjectRW;
 import org.jboss.forge.common.projects.proxies.SyncProxy;
 
@@ -63,8 +71,52 @@
 		return (IssueTracker) SyncProxy.newInstance(it);
 	}
     
+    public Portlet createPortlet() {
+	
+		return (Portlet) SyncProxy.newInstance(new PortletRW());
+	}
     
     
+    public Portlet createPortlet(String name, String region, int height,
+			Map<String, String> preferences) {
+    	
+    	//	Portlet portlet = createPortlet();
+    	Portlet portlet = new PortletRW();
+    		portlet.setName(name);
+    		portlet.setRegion(region);
+    		portlet.setHeight(Integer.toString(height));
+    		
+    		System.out.println("####################");
+    		
+    		if (preferences != null) {
+    		
+    			List<Preference> preferencesList = (List<Preference>) portlet.getPreferences(); 
+    		
+    			for (String key : preferences.keySet()) {
+    				preferencesList.add(createPreference(key, preferences.get(key)));
+    			}
+    		}
+    		
+    		System.out.println("$$$$$$$$$$$$$$$$$$$$");
+    		
+    		return portlet;
+    }
+    
+    public Preference createPreference() {
+    	
+    		return (Preference) SyncProxy.newInstance(new PreferenceRW());
+    }
+    
+    public Preference createPreference(String name, String value) {
+    	
+    		//Preference preference= createPreference();
+    	Preference preference = new PreferenceRW();
+    		preference.setName(name);
+    		preference.setName(value);
+    		
+    		return preference;
+    }
+    
     // Lifecycle methods
         
 	public void start() throws Exception {
@@ -76,4 +128,6 @@
 		
 		log.info("ProjectFactory service stopped");
 	}
+
+	
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectsServiceRWImpl.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -39,7 +39,8 @@
 import org.jboss.forge.common.projects.project.Pages;
 import org.jboss.forge.common.projects.project.Polls;
 import org.jboss.forge.common.projects.project.Project;
-import org.jboss.forge.common.projects.proxies.ProjectRWProxy;
+import org.jboss.forge.common.projects.project.rw.ProjectRW;
+import org.jboss.forge.common.projects.proxies.ObjectRWProxy;
 import org.jboss.forge.common.ejb3.ProjectsServiceRW;
 import org.jboss.forge.common.Constants;
 
@@ -137,9 +138,9 @@
             
             OutputStream os = node.getOutputStream();
             
-            	// Dynamic proxy implements ProjectRWProxy interface
-            // only to do the following.
-            m.marshal( ((ProjectRWProxy) project).getProjectRW() ,os);
+            	// Dynamic proxy implements ObjectRWProxy interface
+            // in order to do the following.
+            m.marshal( (ProjectRW) ((ObjectRWProxy) project).getObjectRW() ,os);
             
             node.save("[PROJECTSSERVICERW] Persisting "+project.getId()+" project.");
             log.info("Project "+project.getId()+" has been updated.");
@@ -196,7 +197,7 @@
         
         if (project==null) return;
         
-        project.setPages(pages);
+        project.setPages((Pages) ((ObjectRWProxy) pages).getObjectRW());
         
         persistProject(project);
     }

Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminConstants.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminConstants.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminConstants.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -0,0 +1,35 @@
+/*
+ * 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.admin;
+
+
+/**
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+
+public class PagesAdminConstants  {
+
+	public static final String DEFAULT_PAGE 				= "(default)";
+
+	
+
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -0,0 +1,131 @@
+/*
+ * 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.admin;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.faces.model.SelectItem;
+import javax.management.MalformedObjectNameException;
+
+import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.projects.project.Page;
+import org.jboss.forge.common.projects.project.Pages;
+import org.jboss.forge.common.projects.project.Portlet;
+
+/**
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+
+public class PagesAdminTools  {
+
+	public static Page find(Pages pages, String selectedPage) {
+		
+		if (selectedPage.equals(PagesAdminConstants.DEFAULT_PAGE)) {
+			selectedPage = "";
+		}
+		
+		for (Page page : pages.getPages()) {
+			
+			if (page.getName().equals(selectedPage)) {
+				
+				return page;
+			}
+		}
+		
+		return null;
+	}
+	
+	public static String convertCMSTitle(String title) {
+		
+		return "".equals(title) ? PagesAdminConstants.DEFAULT_PAGE : title;
+	}
+	
+	public static String convertJSFTitle(String title) {
+		
+		return PagesAdminConstants.DEFAULT_PAGE.equals(title) ? "" : title;
+	}
+
+	public static List<SelectItem> getContent(Page page, String column) {
+		
+		List<SelectItem> contentList = new ArrayList<SelectItem>();
+		
+		for (Portlet portlet :	page.getPortlets()) {
+			
+			if (column.equals(portlet.getRegion())) {
+				contentList.add(new SelectItem(portlet.getName()));
+			}
+		}
+
+		return contentList;
+	}
+
+	public static List<SelectItem> getPages(Pages pages) {
+		
+		List<SelectItem> projectPages = new ArrayList<SelectItem>();
+		
+		if ((pages != null) && (pages.getPages() != null)) {
+			
+			projectPages = new ArrayList<SelectItem>();
+			
+			for (Page page : pages.getPages()) {
+
+				String name = "".equals(page.getName()) ? 
+									PagesAdminConstants.DEFAULT_PAGE : page.getName();
+				
+				projectPages.add(new SelectItem(name));
+			}
+		}
+		return projectPages;
+	}
+
+	public static void addContent(Page page, String portletName, String region) {
+		
+		Map<String, String> preferences = new HashMap<String, String>();
+		preferences.put("pref", "walju");
+		
+		Portlet portlet;
+		
+		System.out.println("addContent");
+		
+		try {
+			portlet = LabsServices.getProjectFactoryService().createPortlet(portletName, region, 1, preferences);
+			
+			
+		} catch (MalformedObjectNameException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+			return;
+		}
+		
+		System.out.println("#1");
+		
+		List<Portlet> portletsList = (List<Portlet>) page.getPortlets();
+		
+		System.out.println("#2");
+		
+		portletsList.add(portlet);
+	}
+
+}

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminBean.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -23,7 +23,12 @@
 
 import java.io.Serializable;
 
+import javax.management.MalformedObjectNameException;
 
+import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.projects.project.Pages;
+
+
 public class ProjectAdminBean implements Serializable {
 
 	private static final long serialVersionUID = -9175216257231542L;
@@ -35,6 +40,15 @@
 		
 		System.out.println("SAVE");
 		
+		Pages p = pages.getPages();
+		String projectId = info.getProject().getId();
+		try {
+			LabsServices.getProjectsServiceRW().persistPages(p, projectId);
+		} catch (MalformedObjectNameException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
 		return "";
 	}
 	

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminTools.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectAdminTools.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -33,6 +33,7 @@
 import org.jboss.forge.common.ejb3.ProjectsService;
 import org.jboss.forge.common.ejb3.ProjectsServiceRW;
 import org.jboss.forge.common.projects.project.DocumentationType;
+import org.jboss.forge.common.projects.project.Page;
 import org.jboss.forge.common.projects.project.Project;
 import org.jboss.forge.common.projects.project.rw.DocumentationTypeRW;
 import org.jboss.forge.common.exceptions.ServiceRetrievalException;
@@ -109,7 +110,6 @@
 		
 		return list;
 	}
-		
-	private ProjectAdminTools() {	}
 
+	private ProjectAdminTools() {}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java	2007-03-23 21:27:30 UTC (rev 10502)
@@ -21,8 +21,6 @@
  */
 package org.jboss.forge.projects.admin;
 
-import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.List;
 
 import javax.faces.model.SelectItem;
@@ -35,29 +33,33 @@
 import org.jboss.logging.Logger;
 
 
-public class ProjectPagesAdminBean implements Serializable {
+public class ProjectPagesAdminBean {
 
-	private static final long serialVersionUID = 3512752162572321542L;
+
 	private Logger log = Logger.getLogger(ProjectPagesAdminBean.class);
 	
 	private Pages pages;
 	
-	private List<SelectItem> projectPages;
-	
 	private String selectedPage;
 	private int selectedLayout;
 	private List<String> selectedContent;
 	
-	private String title;
+	private String selectedLeftContent;
+	private String selectedMiddleContent;
+	private String selectedRightContent;
 	
 	private Page page;
 	
+	//TODO no pages defined => NPE
+	
 	public ProjectPagesAdminBean() {
 		
-		System.out.println("PPAB");
-		
+		System.out.println("PAB " + selectedPage);
+
 		String projectId = FacesTools.getSelectedProjectId();
 		
+		System.out.println("CONST " + projectId);
+		
 		try {
 			pages = LabsServices.getProjectsServiceRW().getProjectPagesRW(projectId);	
 			
@@ -65,25 +67,21 @@
 			log.debug("Unable to get ProjectsServiceRW", e);
 		}
 		
-		if ((pages != null) && (pages.getPages() != null)) {
+		selectedLayout = 3;
 		
-			projectPages = new ArrayList<SelectItem>();
-			
-			for (Page page : pages.getPages()) {
-
-				String name = "".equals(page.getName()) ? "(default)" : page.getName();
-				
-				projectPages.add(new SelectItem(name));
-			}
+		if (selectedPage == null) {
+			selectedPage = PagesAdminConstants.DEFAULT_PAGE;
 		}
+		editPage();
 	}
 	
 	/* actions */
 	
+	/* page*/
+	
 	public String editPage() {
 		
-		System.out.println("EDIT");
-		
+		page = PagesAdminTools.find(pages, selectedPage);	
 		return "";
 	}
 	
@@ -94,19 +92,61 @@
 		return "";
 	}
 	
+	/* content */
+	
 	public String addContent() {
 		
-		System.out.println("ADD CONTENT");
-		/*
 		String column = FacesTools.getRequestParameter("column");
+		System.out.println("ADD CONTENT " + column);
 		
-		System.out.println("ADD CONTENT " + column);
-		*/
+		for (String portletName : selectedContent) {
+			PagesAdminTools.addContent(page, portletName, column);
+		}
+		
 		return "";
 	}
 	
+	public String removeContent() {
+		
+		String column = FacesTools.getRequestParameter("column");
+		
+		System.out.println("RM CONTENT " + column);
+		
+		
+		return "";
+	}
+	
 	/* getters and setters */
+		
+	public String getTitle() {
+		return PagesAdminTools.convertCMSTitle(page.getName());
+	}
+
+	public void setTitle(String title) {
+		System.out.println("setTitle " + title);
+		
+		page.setName(PagesAdminTools.convertJSFTitle(title));
+	}
+
+	public List<SelectItem> getProjectPages() {
+		
+		return PagesAdminTools.getPages(pages);
+	}
 	
+	public List<SelectItem> getLeftContent() {	
+		return PagesAdminTools.getContent(page, "left");
+	}
+	
+	public List<SelectItem> getMiddleContent() {	
+		return PagesAdminTools.getContent(page, "center");
+	}
+	
+	public List<SelectItem> getRightContent() {	
+		return PagesAdminTools.getContent(page, "right");
+	}
+	
+	/******************************/
+	
 	public List<String> getSelectedContent() {
 		return selectedContent;
 	}
@@ -115,14 +155,6 @@
 		this.selectedContent = selectedContent;
 	}
 
-	public List<SelectItem> getProjectPages() {
-		return projectPages;
-	}
-
-	public void setProjectPages(List<SelectItem> projectPages) {
-		this.projectPages = projectPages;
-	}
-
 	public String getSelectedPage() {
 		return selectedPage;
 	}
@@ -138,12 +170,32 @@
 	public void setSelectedLayout(int selectedLayout) {
 		this.selectedLayout = selectedLayout;
 	}
+	
+	public String getSelectedLeftContent() {
+		return selectedLeftContent;
+	}
 
-	public String getTitle() {
-		return title;
+	public void setSelectedLeftContent(String selectedLeftContent) {
+		this.selectedLeftContent = selectedLeftContent;
 	}
 
-	public void setTitle(String title) {
-		this.title = title;
+	public String getSelectedMiddleContent() {
+		return selectedMiddleContent;
 	}
+
+	public void setSelectedMiddleContent(String selectedMiddleContent) {
+		this.selectedMiddleContent = selectedMiddleContent;
+	}
+
+	public String getSelectedRightContent() {
+		return selectedRightContent;
+	}
+
+	public void setSelectedRightContent(String selectedRightContent) {
+		this.selectedRightContent = selectedRightContent;
+	}
+	
+	public Pages getPages() {
+		return pages;
+	}
 }

Modified: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml	2007-03-23 21:13:31 UTC (rev 10501)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/web/WEB-INF/faces-config.xml	2007-03-23 21:27:30 UTC (rev 10502)
@@ -41,17 +41,17 @@
 	<managed-bean>
 		<managed-bean-name>pedit</managed-bean-name>
 		<managed-bean-class>org.jboss.forge.projects.admin.ProjectInfoAdminBean</managed-bean-class>
-		<managed-bean-scope>request</managed-bean-scope>
+		<managed-bean-scope>session</managed-bean-scope>
 	</managed-bean>
 	<managed-bean>
 		<managed-bean-name>pages</managed-bean-name>
 		<managed-bean-class>org.jboss.forge.projects.admin.ProjectPagesAdminBean</managed-bean-class>
-		<managed-bean-scope>request</managed-bean-scope>
+		<managed-bean-scope>session</managed-bean-scope>
 	</managed-bean>
 	<managed-bean>
 		<managed-bean-name>admin</managed-bean-name>
 		<managed-bean-class>org.jboss.forge.projects.admin.ProjectAdminBean</managed-bean-class>
-		<managed-bean-scope>request</managed-bean-scope>
+		<managed-bean-scope>session</managed-bean-scope>
 		<managed-property>
 			<property-name>info</property-name>
 			<value>#{pedit}</value>




More information about the jboss-svn-commits mailing list