001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/osp/tags/sakai_2-4-1/common/api-impl/src/java/org/theospi/portfolio/worksite/mgt/impl/WorksiteListGenerator.java $
003: * $Id: WorksiteListGenerator.java 21798 2007-02-21 16:27:08Z chmaurer@iupui.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2005, 2006, 2007 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.theospi.portfolio.worksite.mgt.impl;
021:
022: import java.util.ArrayList;
023: import java.util.Date;
024: import java.util.HashMap;
025: import java.util.Iterator;
026: import java.util.List;
027: import java.util.Map;
028:
029: import org.apache.commons.logging.Log;
030: import org.apache.commons.logging.LogFactory;
031: import org.sakaiproject.metaobj.shared.model.Agent;
032: import org.sakaiproject.metaobj.shared.model.impl.AgentImpl;
033: import org.sakaiproject.metaobj.worksite.mgt.WorksiteManager;
034: import org.sakaiproject.site.api.Site;
035: import org.sakaiproject.site.api.SitePage;
036: import org.sakaiproject.site.api.ToolConfiguration;
037: import org.sakaiproject.user.api.UserNotDefinedException;
038: import org.theospi.portfolio.list.impl.WorksiteBaseGenerator;
039: import org.theospi.portfolio.list.intf.ListGenerator;
040: import org.theospi.portfolio.shared.model.SortableListObject;
041:
042: public class WorksiteListGenerator extends WorksiteBaseGenerator
043: implements ListGenerator {
044: protected final transient Log logger = LogFactory
045: .getLog(getClass());
046:
047: private static final String SITE_ID_PARAM = "selectedSiteId";
048:
049: private WorksiteManager worksiteManager;
050:
051: public void init() {
052: logger.info("init()");
053: super .init();
054: }
055:
056: /**
057: * @return the current user's list of objects
058: * (whatever that means to the implentation)
059: */
060: public List getObjects() {
061:
062: List sites = getWorksiteManager().getUserSites(null,
063: getListService().getSiteTypeList());
064: List<SortableListObject> sortableSites = new ArrayList<SortableListObject>(
065: sites.size());
066:
067: for (Iterator i = sites.iterator(); i.hasNext();) {
068: Site site = (Site) i.next();
069: Agent owner = new AgentImpl(getIdManager().getId(
070: site.getCreatedBy().getId()));
071: try {
072: SortableListObject obj = new SortableListObject(site
073: .getId(), site.getTitle(), site
074: .getDescription(), owner, site, site.getType(),
075: new Date(site.getModifiedTime().getTime()));
076: sortableSites.add(obj);
077: } catch (UserNotDefinedException e) {
078: logger.warn("User with id "
079: + site.getCreatedBy().getId()
080: + " does not exist.");
081: }
082: }
083:
084: return sortableSites;
085: }
086:
087: public ToolConfiguration getToolInfo(Map request) {
088: String siteId = (String) request.get(SITE_ID_PARAM);
089:
090: Site site = getWorksiteManager().getSite(siteId);
091: List pages = site.getPages();
092: for (Iterator i = pages.iterator(); i.hasNext();) {
093: SitePage page = (SitePage) i.next();
094: if (page.getTitle().equals("Home")) {
095: return (ToolConfiguration) page.getTools().get(0);
096: }
097: }
098:
099: return null;
100: }
101:
102: public boolean isNewWindow(Object entry) {
103: return false;
104: }
105:
106: /**
107: * @param entry
108: * @return
109: */
110: public Map getToolParams(Object entry) {
111: SortableListObject site = (SortableListObject) entry;
112: Map<String, String> model = new HashMap<String, String>();
113:
114: model.put(SITE_ID_PARAM, site.getId());
115:
116: return model;
117: }
118:
119: public WorksiteManager getWorksiteManager() {
120: return worksiteManager;
121: }
122:
123: public void setWorksiteManager(WorksiteManager worksiteManager) {
124: this .worksiteManager = worksiteManager;
125: }
126:
127: protected String getSiteId(Object entity) {
128: SortableListObject site = (SortableListObject) entity;
129: return site.getId();
130: }
131:
132: protected String getPageId(Object entity) {
133: SortableListObject obj = (SortableListObject) entity;
134: Site site = getWorksiteManager().getSite(obj.getId());
135: List pages = site.getPages();
136: if (pages.size() > 0) {
137: return ((SitePage) pages.get(0)).getId();
138:
139: }
140: return null;
141: }
142: }
|