package com.idega.block.poll.presentation;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Locale;
import com.idega.block.poll.business.PollBusiness;
import com.idega.core.accesscontrol.business.LoginBusinessBean;
import com.idega.core.localisation.business.ICLocaleBusiness;
import com.idega.core.localisation.presentation.ICLocalePresentation;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.idegaweb.presentation.IWAdminWindow;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
public class PollQuestionChooser extends IWAdminWindow{
private final static String IW_BUNDLE_IDENTIFIER="com.idega.block.poll";
private boolean isAdmin = false;
private boolean superAdmin = false;
private boolean close = false;
private int pollID = -1;
private int userID = -1;
public static String prmQuestions = "poll.questions";
private IWBundle iwb;
private IWResourceBundle iwrb;
public PollQuestionChooser(){
setWidth(400);
setHeight(150);
}
public void main(IWContext iwc) throws Exception {
/**
* @todo permission
*/
this.isAdmin = true; //AccessControl.hasEditPermission(this,iwc);
this.superAdmin = iwc.isSuperAdmin();
this.iwb = getBundle(iwc);
this.iwrb = getResourceBundle(iwc);
addTitle(this.iwrb.getLocalizedString("poll_question_chooser","Poll Question Chooser"));
Locale currentLocale = iwc.getCurrentLocale();
Locale chosenLocale;
try {
this.userID = LoginBusinessBean.getUser(iwc).getID();
}
catch (Exception e) {
this.userID = -1;
}
String sLocaleId = iwc.getParameter(PollAdminWindow.prmLocale);
int iLocaleId = -1;
if(sLocaleId!= null){
iLocaleId = Integer.parseInt(sLocaleId);
chosenLocale = ICLocaleBusiness.getLocaleReturnIcelandicLocaleIfNotFound(iLocaleId);
}
else{
chosenLocale = currentLocale;
iLocaleId = ICLocaleBusiness.getLocaleId(chosenLocale);
}
if ( this.isAdmin ) {
processForm(iwc, iLocaleId);
}
else {
noAccess();
}
}
private void processForm(IWContext iwc, int iLocaleId) {
String pollQuestion = iwc.getParameter(prmQuestions);
String pollIDString = iwc.getParameter(Poll._prmPollID);
try {
this.pollID = Integer.parseInt(pollIDString);
}
catch (NumberFormatException e) {
this.pollID = -1;
}
int pollQuestionID = -1;
try {
pollQuestionID = Integer.parseInt(pollQuestion);
}
catch (NumberFormatException e) {
pollQuestionID = -1;
}
if ( pollQuestionID != -1 ) {
setToClose(iwc, pollQuestionID);
}
else {
Form myForm = new Form();
DropdownMenu localeDrop = ICLocalePresentation.getLocaleDropdownIdKeyed(PollAdminWindow.prmLocale);
localeDrop.setMarkupAttribute("style",STYLE);
localeDrop.setToSubmit();
localeDrop.setSelectedElement(Integer.toString(iLocaleId));
DropdownMenu questionDrop = PollBusiness.getQuestions(prmQuestions,this.userID,iLocaleId,this.superAdmin);
questionDrop.setMarkupAttribute("style",STYLE);
questionDrop.setToSubmit();
Text localeText = this.formatText(this.iwrb.getLocalizedString("locale","Locale"),true);
Text questionText = this.formatText(this.iwrb.getLocalizedString("questions","Questions"),true);
Table table = new Table(1,2);
table.setCellpadding(8);
table.setWidth("100%");
table.add(localeText,1,1);
table.add(Text.getBreak(),1,1);
table.add(localeDrop,1,1);
table.add(questionText,1,2);
table.add(Text.getBreak(),1,2);
table.add(questionDrop,1,2);
myForm.add(table);
add(myForm);
}
}
private void setToClose(IWContext iwc, int pollQuestionID) {
iwc.setSessionAttribute(prmQuestions,Integer.toString(pollQuestionID));
setParentToReload();
close();
}
private void noAccess() throws IOException,SQLException {
close();
}
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
}