/*
 * $Id: DisplayGroupInfoAction.java,v 1.11 2004/11/12 00:20:30 marbobo Exp $
 *
 * Copyright (c) Siemens AG 2008 
 *           (c) Universität Paderborn 2008 
 * Licensed under EUPL 1.1. 
 *
 * $Log: DisplayGroupInfoAction.java,v $
 * Revision 1.11  2004/11/12 00:20:30  marbobo
 * - Unnötige Import-Anweisungen entfernt
 *
 * Revision 1.10  2004/11/10 15:02:44  koppy
 * Projektweite Überarbeitung von Error-Logs, Stacktraces,..
 *
 * Revision 1.9  2004/11/02 21:42:29  marbobo
 * + Einige Funktionen für Gast-Benutzer gesperrt
 * + WebShare.LOGIN_PAGE mit WebShare.getLoginPage() ersetzt
 *
 * Revision 1.8  2004/03/31 23:53:53  marbobo
 * Überarbeitet
 *
 * Revision 1.7  2004/03/11 20:17:15  bigmac
 * Anpassungen an VKCUserSerializer
 *
 * Revision 1.6  2004/03/02 17:43:09  bigmac
 * Anpassungen an VKCGroupSerializer
 *
 * Revision 1.5  2003/12/24 10:11:52  bigmac
 * Projektweite Import-Optimierung
 *
 * Revision 1.4  2003/10/16 07:52:52  lawern
 * Umstellung von VKCUser auf UserInfo + Code aufräumen.
 *
 * Revision 1.3  2003/08/25 12:29:33  marbobo
 * displayUserInfo ind displayGroupInfo umgeschrieben
 *
 * Revision 1.2  2003/08/24 22:59:34  marbobo
 * Gruppenbenutzer werden nun mit angezeigt
 *
 * Revision 1.1  2003/08/20 09:53:33  marbobo
 * verschoben
 *
 * Revision 1.8  2003/08/19 09:21:28  marbobo
 * Bugfix
 *
 * Revision 1.7  2003/08/02 16:53:33  bigmac
 * *** empty log message ***
 *
 * Revision 1.6  2003/07/28 10:21:26  marbobo
 * +Kommentierung von Methoden und des Quellcodes
 * -unnötige Imports entfernt
 *
 */
package vkc.view.action;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import vkc.db.entities.VKCGroup;
import vkc.db.serializer.VKCGroupSerializer;
import vkc.db.serializer.VKCUserSerializer;
import vkc.misc.VKCLogManager;
import vkc.util.DateUtils;
import vkc.view.form.DisplayGroupInfoForm;

/**
 * Action-Klasse zum Anzeigen von Gruppeninformationen
 *
 * @author marbobo
 * @version $Revision: 1.11 $
 */
public final class DisplayGroupInfoAction extends Action {
	private ActionForward DEFAULT_FORWARD = new ActionForward( "/templates/${template.name}/common/displayGroupInfo.jsp" );

    /**
     * Diese Methode bestimmt alle relevanten Informationen 
     * einer Gruppe und zeigt sie an
     */
    public ActionForward execute( ActionMapping mapping, 
            					  ActionForm f, 
            					  HttpServletRequest request, 
            					  HttpServletResponse response )
    throws Exception {
		DisplayGroupInfoForm form = (DisplayGroupInfoForm)f;

		Integer groupId = form.getGroupId();

		VKCGroup group = null;
		
		try {
			group = VKCGroupSerializer.retrieveGroup( groupId );
		} catch ( Exception e ) {
			VKCLogManager.errorLog(this, "", e.getMessage(), e);
		}

		form.setGroup( group );
		
		if ( group != null ) {
			form.setCreator( VKCUserSerializer.retrieveUserInfo( group.getCreatorId() ) );
			
			if ( group.getCreated() != null ) {
				Date d = new Date( group.getCreated().getTime() );
				form.setCreationDate( DateUtils.getDD_MM_YYYY( d ) + ", " + DateUtils.getHH_MM_SS( d ) );
			}

			if( group.getLastChangerId()!=null){
			    form.setLastEditor( VKCUserSerializer.retrieveUserInfo( group.getLastChangerId() ) );
			}
			if ( group.getLastChanged() != null ) {
				Date d = new Date( group.getLastChanged().getTime() );
				form.setLastEditingDate( DateUtils.getDD_MM_YYYY( d ) + ", " + DateUtils.getHH_MM_SS( d ) );
			}
		}

		return DEFAULT_FORWARD;
    }
}
