/* * Copyright (c) 2006-2009 by Dirk Riehle, http://dirkriehle.com * * This file is part of the Wahlzeit photo rating application. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/>. */ package org.wahlzeit.handlers; import org.wahlzeit.model.AccessRights; import org.wahlzeit.model.PhotoCase; import org.wahlzeit.model.PhotoCaseManager; import org.wahlzeit.model.UserSession; import org.wahlzeit.utils.HtmlUtil; import org.wahlzeit.webparts.WebPart; import org.wahlzeit.webparts.Writable; import org.wahlzeit.webparts.WritableList; import java.util.Map; /** * A handler class for a specific web page. */ public class ShowPhotoCasesPageHandler extends AbstractWebPageHandler { /** * */ public ShowPhotoCasesPageHandler() { initialize(PartUtil.SHOW_PHOTO_CASES_PAGE_FILE, AccessRights.MODERATOR); } /** * */ protected void makeWebPageBody(UserSession us, WebPart page) { Map args = us.getSavedArgs(); page.addStringFromArgs(args, UserSession.MESSAGE); PhotoCaseManager pcm = PhotoCaseManager.getInstance(); PhotoCase[] flaggedCases = pcm.getOpenPhotoCasesByAscendingAge(); if (flaggedCases.length != 0) { WritableList openCases = new WritableList(); for (int i = 0; i < flaggedCases.length; i++) { openCases.append(makePhotoCaseForm(us, flaggedCases[i])); } page.addWritable("openCases", openCases); } else { page.addString("openCases", HtmlUtil.asP(us.getClient().getLanguageConfiguration().getNoFlaggedPhotoCases())); } } /** * */ protected Writable makePhotoCaseForm(UserSession us, PhotoCase photoCase) { us.setPhotoCase(photoCase); WebFormHandler handler = getFormHandler(PartUtil.EDIT_PHOTO_CASE_FORM_NAME); return handler.makeWebPart(us); } }