package org.japanosample.action;

import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.japano.action.ActionConfig;
import org.japano.Session;
import org.japano.View;
import org.japanosample.SampleSession;
import org.japanosample.User;
import org.japano.metadata.annotation.*;

/**
 Shows the current user
 
 @author  sven
 @version $Id: ShowUser.java,v 1.3 2005/02/25 01:27:14 fforw Exp $
 */
 ( library="/user", name="show", repeatable=true ) 
public class ShowUser implements org.japano.action.Action
{        
  private int userId=-1;
  
  /**
   The user to show.
   */
  
  public void setUserId(int id)
  {
    this.userId=id;
  }  
  
  public void perform(HttpServletRequest request, HttpServletResponse response) throws IOException
  {    
    SampleSession session=(SampleSession)request.getSession();
    if (userId < 0) 
    {
      User u=session.getUser();
      if ( u == null)
      {
        session.setView("/login.jsp");
        return;
      }
      session.setView("/editUser.jsp");      
    }
    else
    {
      User u=User.fromId(userId);
      if (u == null)
        throw new RuntimeException("no user "+userId);

      session.setView("/showUser.jsp");      
      session.getView().addAttribute("user", u);
    }
  }
}