/*
* Created on 3.3.2004
*/
package is.idega.idegaweb.golf.handicap.presentation;
import is.idega.idegaweb.golf.access.AccessControl;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.MemberHome;
import is.idega.idegaweb.golf.presentation.GolfBlock;
import is.idega.idegaweb.golf.service.GolfGroup;
import is.idega.idegaweb.golf.util.GolfConstants;
import java.sql.SQLException;
import javax.ejb.FinderException;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.user.data.User;
import com.idega.user.data.UserHome;
/**
* @author laddi
*/
public class HandicapNavigation extends GolfBlock {
public void main(IWContext modinfo) throws Exception {
IWResourceBundle iwrb = getResourceBundle();
getParentPage().setTitle(iwrb.getLocalizedString("handicap.page_name", "Handicap Registry"));
String action = modinfo.getParameter("handicap_action");
String uri = modinfo.getRequestURI();
try {
Table contentTable = drawTable(iwrb, modinfo, action, uri);
add(contentTable);
}
catch (Exception e) {
e.printStackTrace(System.err);
}
}
public Table drawTable(IWResourceBundle iwrb, IWContext modinfo, String action, String uri) throws SQLException, FinderException {
String memberId = null;
if (modinfo.isParameterSet(GolfConstants.MEMBER_UUID)) {
MemberHome home = (MemberHome) IDOLookup.getHomeLegacy(Member.class);
try {
Member member = home.findByUniqueID(modinfo.getParameter(GolfConstants.MEMBER_UUID));
memberId = member.getPrimaryKey().toString();
}
catch (FinderException fe) {
try {
UserHome userHome = (UserHome) IDOLookup.getHome(User.class);
try {
User user = userHome.findUserByUniqueId(modinfo.getParameter(GolfConstants.MEMBER_UUID));
Member member = home.findMemberByIWMemberSystemUser(user);
memberId = member.getPrimaryKey().toString();
}
catch (FinderException e) {
//Nothing found...
}
}
catch (IDOLookupException ile) {
log(ile);
}
}
if (memberId != null) {
modinfo.setSessionAttribute("member_id", memberId);
}
}
if (memberId == null) {
memberId = modinfo.getParameter("member_id");
}
if (memberId == null) {
memberId = (String) modinfo.getSessionAttribute("member_id");
}
if (memberId == null) {
Member memberinn = (Member) modinfo.getSession().getAttribute("member_login");
if (memberinn != null) {
memberId = String.valueOf(memberinn.getID());
if (memberId == null) {
memberId = "1";
}
}
else {
memberId = "1";
}
}
GolfGroup golfGroup = new GolfGroup(memberId);
boolean canWrite = true;
if ((!AccessControl.isAdmin(modinfo)) && (memberId != "1")) {
canWrite = golfGroup.getCanWrite();
}
Table myTable = new Table(1, 3);
myTable.setBorder(0);
myTable.setCellpadding(0);
myTable.setCellspacing(0);
myTable.setWidth("100%");
myTable.setHeight("100%");
myTable.setColor(1, 1, "#FFFFFF");
myTable.setColor(1, 2, "#FFFFFF");
myTable.setColor(1, 3, "#FFFFFF");
myTable.setAlignment(1, 1, "right");
myTable.setAlignment(1, 3, "center");
myTable.setVerticalAlignment(1, 3, "middle");
myTable.setHeight(1, "15");
myTable.setHeight(3, "100%");
Image mynd1 = iwrb.getImage("tabs/information.gif");
Image mynd2 = iwrb.getImage("tabs/registerscore.gif");
Image mynd3 = iwrb.getImage("tabs/overview.gif");
Image mynd4 = iwrb.getImage("tabs/information1.gif");
Image mynd5 = iwrb.getImage("tabs/registerscore1.gif");
Image mynd6 = iwrb.getImage("tabs/overview1.gif");
Link information = new Link(mynd4, uri);
information.addParameter("handicap_action", "information");
information.setPage(getParentPageID());
Link registerScore = new Link(mynd5, uri);
registerScore.addParameter("handicap_action", "registerScore");
registerScore.setPage(getParentPageID());
Link overView = new Link(mynd6, uri);
overView.addParameter("handicap_action", "overView");
overView.setPage(getParentPageID());
if ((action == null) || ("information".equalsIgnoreCase(action))) {
myTable.add(mynd1, 1, 1);
HandicapInfo info = new HandicapInfo(memberId);
myTable.add(info, 1, 3);
}
else
myTable.add(information, 1, 1);
if (canWrite) {
if ("registerScore".equalsIgnoreCase(action)) {
myTable.add(mynd2, 1, 1);
HandicapScore score = new HandicapScore(memberId);
myTable.add(score, 1, 3);
}
else
myTable.add(registerScore, 1, 1);
}
if ("overView".equalsIgnoreCase(action)) {
myTable.add(mynd3, 1, 1);
HandicapOverview hOverview = new HandicapOverview(memberId);
myTable.add(hOverview, 1, 2);
}
else
myTable.add(overView, 1, 1);
return myTable;
}
}