package com.idega.block.mailinglist.presentation; import java.sql.SQLException; import java.util.Iterator; import java.util.List; import javax.mail.MessagingException; import com.idega.block.mailinglist.business.EmailServiceHandler; import com.idega.block.mailinglist.data.AccountBMPBean; import com.idega.block.mailinglist.data.EmailLetterData; import com.idega.block.mailinglist.data.MailAccount; import com.idega.block.mailinglist.data.Mailinglist; import com.idega.data.EntityFinder; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.SelectionBox; import com.idega.presentation.ui.SubmitButton; /** * Title: idegaWeb Classes * Description: * Copyright: Copyright (c) 2001 * Company: idega * @author <a href="bjarni@idega.is">Bjarni Viljhalmsson</a> * @version 1.0 */ public class EmailProgramSideTable extends Block { public static final String inboxButtonName = "inboxButtonName"; public static final String sentButtonName = "sentButtonName"; public static final String draftsButtonName = "draftsButtonName"; public static final String newLetterButtonName = "newLetterButtonName"; public static final String newLetterOnMailinglistButtonName = "newLetterOnMailinglistButtonName"; public static final String mailinglistSettingsButtonName = "mailinglistSettingsButtonName"; public static final String mailinglistDropDownMenuName = "mailinglistDropDownMenuName"; public static final String submitParameterValue = "submitParameterValue"; public static final String submitParameterName = "submitParameterName"; public static final String emailSelectionBoxName = "emailSelectionBoxName"; public static String chosen = new String(); SelectionBox emailSelectionBox = new SelectionBox(emailSelectionBoxName); SubmitButton inboxButton = new SubmitButton(inboxButtonName, "Inbox"); SubmitButton sentButton = new SubmitButton(sentButtonName, "Sent"); SubmitButton draftsButton = new SubmitButton(draftsButtonName, "Drafts"); SubmitButton newLetterButton = new SubmitButton(newLetterButtonName, "New Letter"); SubmitButton mailinglistSettingsButton = new SubmitButton(mailinglistSettingsButtonName, "Edit Mailinglist"); SubmitButton newLetterOnMailinglistButton = new SubmitButton(newLetterOnMailinglistButtonName, "Write to Selected"); Mailinglist mailinglist = ((com.idega.block.mailinglist.data.MailinglistHome)com.idega.data.IDOLookup.getHomeLegacy(Mailinglist.class)).createLegacy(); DropdownMenu mailinglistMenu = new DropdownMenu( mailinglistDropDownMenuName); Table sideTable = new Table(2,9); EmailLetterData letters = ((com.idega.block.mailinglist.data.EmailLetterDataHome)com.idega.data.IDOLookup.getHomeLegacy(EmailLetterData.class)).createLegacy(); //InboxData inboxLetters = new InboxData(); public EmailProgramSideTable(){ } public void setSelectionBox(IWContext modinfo) throws SQLException{ this.sideTable.add(emailSelectionBox(modinfo),1,7); } public void setShowNumberOfLetters(IWContext iwc) throws SQLException{ EmailLetterData[] unSentLetters; EmailLetterData[] sentLetters; sentLetters = (EmailLetterData[]) this.letters.findAllByColumn(com.idega.block.mailinglist.data.EmailLetterDataBMPBean.EMAIL_LETTER_DATA_SENT, "Y"); unSentLetters = (EmailLetterData[]) this.letters.findAllByColumn(com.idega.block.mailinglist.data.EmailLetterDataBMPBean.EMAIL_LETTER_DATA_SENT, "N"); try { this.sideTable.add(String.valueOf(EmailServiceHandler.countMessages(iwc)), 2, 1); } catch (MessagingException ex) { } if (sentLetters != null) { this.sideTable.add(String.valueOf(sentLetters.length), 2, 2); } if (unSentLetters != null) { this.sideTable.add(String.valueOf(unSentLetters.length), 2, 3); } } public SelectionBox emailSelectionBox(IWContext modinfo) throws SQLException{ Mailinglist chosenMailinglist; chosenMailinglist = getChosenMailinglist(modinfo); MailAccount email = ((com.idega.block.mailinglist.data.MailAccountHome)com.idega.data.IDOLookup.getHomeLegacy(MailAccount.class)).createLegacy(); List emailList; emailList = EntityFinder.findRelatedOrdered(chosenMailinglist, email, AccountBMPBean.EMAIL, true); this.emailSelectionBox.addMenuElements(emailList, AccountBMPBean.EMAIL); if (emailList != null){ Iterator emailIterator = emailList.iterator(); while (emailIterator.hasNext()) { this.emailSelectionBox.setSelectedElement( String.valueOf( ((MailAccount) emailIterator.next()).getID())); } } return (this.emailSelectionBox); } public Mailinglist getChosenMailinglist(IWContext modinfo) throws SQLException{ chosen = modinfo.getParameter(mailinglistDropDownMenuName); System.err.println("Jamm �etta sem ven f�r gildi!!! chosen = "+chosen); if((chosen != null) && !("".equalsIgnoreCase(chosen))){ return( ((com.idega.block.mailinglist.data.MailinglistHome)com.idega.data.IDOLookup.getHomeLegacy(Mailinglist.class)).findByPrimaryKeyLegacy(Integer.parseInt(chosen))); } else{ //return( ((com.idega.block.mailinglist.data.MailinglistHome)com.idega.data.IDOLookup.getHomeLegacy(Mailinglist.class)).findByPrimaryKeyLegacy(1)); SETJA AFTUR INN!!!! LAGA return ( ((com.idega.block.mailinglist.data.MailinglistHome)com.idega.data.IDOLookup.getHomeLegacy(Mailinglist.class)).createLegacy()); } } public void main(IWContext modinfo) throws SQLException{ this.mailinglistMenu.keepStatusOnAction(); // mailinglistMenu.addSeparator(); this.mailinglistMenu.addMenuElements(EntityFinder.findAllOrdered(this.mailinglist,com.idega.block.mailinglist.data.MailinglistBMPBean.MAILINGLIST_NAME)); this.mailinglistMenu.setToSubmit(); System.err.println("modinfo.getParameter(mailinglistDropDownMenuName = "+modinfo.getParameter(mailinglistDropDownMenuName)); this.sideTable.add(this.inboxButton,1,1); this.sideTable.add(this.sentButton,1,2); this.sideTable.add(this.draftsButton,1,3); this.sideTable.add(this.mailinglistMenu,1,4); //sideTable.add(new HiddenInput(mailinglistSettingsButtonName, "Edit Mailinglist")); this.sideTable.add(this.newLetterOnMailinglistButton,1,8); this.sideTable.add(this.newLetterButton,1,9); this.sideTable.add(this.mailinglistSettingsButton,1,5); //Form testForm = new Form(); //testForm.add(sideTable); add(this.sideTable); } }