[jboss-svn-commits] JBL Code SVN: r10561 - in labs/jbosslabs/trunk/portal-extensions: forge-ejb3/src/java/org/jboss/forge/ejb3/projects and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 27 12:00:27 EDT 2007


Author: wrzep
Date: 2007-03-27 12:00:27 -0400 (Tue, 27 Mar 2007)
New Revision: 10561

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PreferenceBean.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java
   labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java
   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/ProjectPagesAdminBean.java
Log:
JBLAB-843
edit portlet preferences impl
-pawel


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-27 15:24:31 UTC (rev 10560)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/proxies/ProxyUtils.java	2007-03-27 16:00:27 UTC (rev 10561)
@@ -93,7 +93,8 @@
 	public static boolean isGetter(Method m) {
 		
 		return m.getName().startsWith("get") || m.getName().startsWith("is") || // beans
-			   m.getName().equals("iterator") || m.getName().equals("next");  	// iterator
+			   m.getName().equals("iterator") || m.getName().equals("next") ||  	// iterator
+			   m.getName().equals("contains"); // list
 	}
 	
 	public static boolean isSetter(Method m) {

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-27 15:24:31 UTC (rev 10560)
+++ labs/jbosslabs/trunk/portal-extensions/forge-ejb3/src/java/org/jboss/forge/ejb3/projects/ProjectFactoryServiceImpl.java	2007-03-27 16:00:27 UTC (rev 10561)
@@ -80,7 +80,6 @@
     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);
@@ -91,7 +90,12 @@
     			List<Preference> preferencesList = (List<Preference>) portlet.getPreferences(); 
     		
     			for (String key : preferences.keySet()) {
-    				preferencesList.add(createPreference(key, preferences.get(key)));
+    				
+    				Preference preference = new PreferenceRW();
+    	    			preference.setName(key);
+    	    			preference.setValue(preferences.get(key));
+    				
+    				preferencesList.add(preference);
     			}
     		}
     		
@@ -105,10 +109,9 @@
     
     public Preference createPreference(String name, String value) {
     	
-    		//Preference preference= createPreference();
-    		Preference preference = new PreferenceRW();
+    		Preference preference= createPreference();
     		preference.setName(name);
-    		preference.setName(value);
+    		preference.setValue(value);
     		
     		return preference;
     }

Modified: 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	2007-03-27 15:24:31 UTC (rev 10560)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PagesAdminTools.java	2007-03-27 16:00:27 UTC (rev 10561)
@@ -25,16 +25,24 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.faces.model.SelectItem;
 import javax.management.MalformedObjectNameException;
 
 import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.ejb3.ProjectFactoryService;
+import org.jboss.forge.common.ejb3.ProjectsPortletsService;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
+import org.jboss.forge.common.projects.portlets.ProjectsPortletPreference;
 import org.jboss.forge.common.projects.project.Page;
 import org.jboss.forge.common.projects.project.Pages;
 import org.jboss.forge.common.projects.project.Portlet;
+import org.jboss.forge.common.projects.project.Preference;
 
 /**
  * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
@@ -42,7 +50,7 @@
 
 public class PagesAdminTools  {
 
-	public static Page find(Pages pages, String selectedPage) {
+	public static Page findPage(Pages pages, String selectedPage) {
 		
 		if (selectedPage.equals(PagesAdminConstants.DEFAULT_PAGE)) {
 			selectedPage = "";
@@ -121,10 +129,7 @@
 	}
 
 	public static void addContent(Page page, String portletName, String region, int height) {
-		
-		Map<String, String> preferences = new HashMap<String, String>();
-		preferences.put("pref", "walju");
-		
+				
 		Portlet portlet;
 		
 		try {
@@ -143,6 +148,10 @@
 
 	public static void removeContent(Page page, String contentToRemove, String column) {
 		
+		if ((contentToRemove == null) || (contentToRemove.length() == 0)) {
+			return;
+		}
+		
 		int n = Integer.parseInt(contentToRemove);
 		
 		List<Portlet> portlets = sortPortlets(page.getPortlets());
@@ -197,4 +206,67 @@
 		
 		return ret;
 	}
+	
+	public static Portlet findPortlet(Page page, String contentPosition, String column) {
+		
+		if ((contentPosition == null) || (contentPosition.length() == 0)) {
+			return null;
+		}
+		
+		int n = Integer.parseInt(contentPosition);
+		
+		List<Portlet> portlets = choosePortlets(page.getPortlets(), column);
+		if ((n > portlets.size()) || (n < 1)) {
+			return null;
+		}
+		
+		return portlets.get(n-1);
+	}
+
+	@SuppressWarnings("unchecked")
+	public static List<PreferenceBean> getPreferences(Portlet portlet) {
+		
+		if (portlet == null) {
+			return null;
+		}
+		
+		List<Preference> preferences = (List<Preference>) portlet.getPreferences();
+		Set<String> preferencesSet = new HashSet<String>();
+		for (Preference preference : preferences) {
+			preferencesSet.add(preference.getName());
+		}
+		
+		ProjectsPortletsService projectsPortletsService;
+		ProjectFactoryService factory;
+			
+		try {
+			projectsPortletsService = LabsServices.getProjectsPortletsService();
+			factory = LabsServices.getProjectFactoryService();
+		} catch (Exception e) {
+			// do nothing
+			return null;
+		}
+		
+		ProjectsPortlet projectsPortlet = projectsPortletsService.getProjectsProtlet(portlet.getName());
+		Map<String,ProjectsPortletPreference> preferencesMap = new HashMap<String, ProjectsPortletPreference>();
+		
+		for (ProjectsPortletPreference pref : projectsPortlet.getPreferences()) {
+			
+			System.out.println("PREF: " + pref.getName());
+			
+			if (!preferencesSet.contains(pref.getName())) {
+				System.out.println("ADDED");
+				preferences.add(factory.createPreference(pref.getName(),null));
+			}
+			
+			preferencesMap.put(pref.getName(), pref);
+		}
+		
+		List<PreferenceBean> ret = new ArrayList<PreferenceBean>();
+		for (Preference pref : preferences) {
+			ret.add(new PreferenceBean(pref, preferencesMap.get(pref.getName())));
+		}
+				
+		return ret;
+	}
 }

Added: labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PreferenceBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PreferenceBean.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/PreferenceBean.java	2007-03-27 16:00:27 UTC (rev 10561)
@@ -0,0 +1,79 @@
+/*
+ * 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.List;
+
+import javax.faces.model.SelectItem;
+
+import org.jboss.forge.common.projects.portlets.ProjectsPortletPreference;
+import org.jboss.forge.common.projects.project.Preference;
+
+/**
+ * @author Pawel Wrzeszcz (pawel . wrzeszcz [at] jboss . com)
+ */
+
+public class PreferenceBean  {
+	
+	private Preference portletPreference;
+	private ProjectsPortletPreference preference;
+	
+	public PreferenceBean() {}
+	
+	public PreferenceBean(Preference portletProperty,
+				 ProjectsPortletPreference property) {
+		
+		this.portletPreference = portletProperty;
+		this.preference = property;
+		
+		if (portletProperty.getValue() == null) {
+			
+			portletProperty.setValue(preference.getDefault());
+		}
+	}
+
+	/* getters */
+
+	public List<SelectItem> getFixedValues() {
+		
+		List<SelectItem> list = new ArrayList<SelectItem>();
+		
+		if ((preference.getValues() == null) | (preference.getValues().size() == 0)) {
+			return list;
+		}
+
+		for (String value : preference.getValues()) {
+			list.add(new SelectItem(value));
+		}
+		
+		return list;
+	}
+	
+	public Preference getPortletPreference() {
+		return portletPreference;
+	}
+
+	public ProjectsPortletPreference getPreference() {
+		return preference;
+	}
+}

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-27 15:24:31 UTC (rev 10560)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portlets/src/java/org/jboss/forge/projects/admin/ProjectPagesAdminBean.java	2007-03-27 16:00:27 UTC (rev 10561)
@@ -31,14 +31,16 @@
 
 import org.jboss.forge.common.FacesTools;
 import org.jboss.forge.common.ejb3.LabsServices;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.projects.portlets.ProjectsPortlet;
 import org.jboss.forge.common.projects.project.Page;
 import org.jboss.forge.common.projects.project.Pages;
+import org.jboss.forge.common.projects.project.Portlet;
 import org.jboss.forge.common.projects.project.Preference;
-import org.jboss.forge.common.projects.proxies.ObjectRWProxy;
 import org.jboss.logging.Logger;
 
 
-public class ProjectPagesAdminBean implements ValueChangeListener {
+public class ProjectPagesAdminBean {
 
 
 	private Logger log = Logger.getLogger(ProjectPagesAdminBean.class);
@@ -53,6 +55,11 @@
 	private String selectedMiddleContent;
 	private String selectedRightContent;
 	
+	private String selectedColumn;
+	private String selectedColumnContent;
+	
+	List<PreferenceBean> preferences;
+	
 	private Page page;
 	
 	//TODO no pages defined => NPE
@@ -83,8 +90,12 @@
 	
 	public String editPage() {
 		
-		page = PagesAdminTools.find(pages, selectedPage);	
+		page = PagesAdminTools.findPage(pages, selectedPage);	
 		
+		selectedColumn = null;
+		selectedColumnContent = null;
+		clearSelections();
+		
 		return "";
 	}
 	
@@ -106,17 +117,13 @@
 		for (String portletName : selectedContent) {
 			PagesAdminTools.addContent(page, portletName, column, height);
 		}
-		clearSelections();
-		
+		clearSelections();	
 		return "";
 	}
 	
 	public String removeContent() {
 		
-		String column = FacesTools.getRequestParameter("column");
-		String contentToRemove = selectedColumnContent(column);
-	
-		PagesAdminTools.removeContent(page, contentToRemove, column);
+		PagesAdminTools.removeContent(page, selectedColumnContent, selectedColumn);
 		clearSelections();
 		
 		return "";
@@ -131,46 +138,46 @@
 	
 	public String moveContentUp() {
 		
-		String column = FacesTools.getRequestParameter("column");
-		String contentToMove = selectedColumnContent(column);
-		int n = Integer.parseInt(contentToMove);
-		
-		PagesAdminTools.moveContentUp(page, n, column);
-		
+		int n = Integer.parseInt(selectedColumnContent);
+		PagesAdminTools.moveContentUp(page, n, selectedColumn);
 		clearSelections();
-		
 		return "";
 	}
 	
 	public String moveContentDown() {
 		
-		String column = FacesTools.getRequestParameter("column");
-		String contentToMove = selectedColumnContent(column);
-		int n = Integer.parseInt(contentToMove);
+		int n = Integer.parseInt(selectedColumnContent);
+		PagesAdminTools.moveContentUp(page, n + 1, selectedColumn);
+		clearSelections();
+		return "";
+	}
+	
+	public void clearSelections() {
 		
-		PagesAdminTools.moveContentUp(page, n + 1, column);
+		if (!"left".equals(selectedColumn)) { selectedLeftContent = null; }
+		if (!"center".equals(selectedColumn)) { selectedMiddleContent = null; }
+		if (!"right".equals(selectedColumn)) { selectedRightContent = null; }
+		setPreferences();
+	}
+	
+	public String selectColumnContent() {
 		
+		selectedColumn = FacesTools.getRequestParameter("column");
+		selectedColumnContent = selectedColumnContent(selectedColumn);
 		clearSelections();
-		
 		return "";
 	}
 	
-	public void clearSelections() {
+	private void setPreferences() {
 		
-		selectedContent = null;
-		selectedLeftContent = null;
-		selectedMiddleContent = null;
-		selectedRightContent = null;
+		if ((selectedColumn == null) || (selectedColumnContent == null)) {
+			return;
+		}	
+		Portlet portlet = PagesAdminTools.findPortlet(page, selectedColumnContent, selectedColumn);
+		
+		preferences = PagesAdminTools.getPreferences(portlet);
 	}
 	
-	public void processValueChange(ValueChangeEvent event)
-	  throws AbortProcessingException {
-			
-			clearSelections();
-	}   
-
-
-	
 	/* getters and setters */
 		
 	public String getTitle() {
@@ -198,15 +205,13 @@
 		return PagesAdminTools.getContent(page, "right");
 	}
 	
-	public List<Preference> getPreferences() {
+	/******************************/
+	
+	public List<PreferenceBean> getPreferences() {
 		
-		//TODO
-		
-		return null;
+		return preferences;
 	}
 	
-	/******************************/
-	
 	public List<String> getSelectedContent() {
 		return selectedContent;
 	}




More information about the jboss-svn-commits mailing list