package com.idega.block.mailinglist.presentation; import java.sql.SQLException; import java.util.Vector; import javax.mail.Flags; import javax.mail.Message; import javax.mail.MessagingException; import com.idega.block.mailinglist.business.EmailServiceHandler; import com.idega.block.mailinglist.data.EmailLetterData; import com.idega.block.reports.business.Content; import com.idega.block.reports.presentation.ContentViewer; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.ui.CheckBox; 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 EmailProgramListLetterTable extends Block { public static final String deleteButtonName = "deleteButtonName"; public static final String viewMyLetterLinkParameterName = "viewMyLetterLinkParameterName"; public static final String viewInboxLetterLinkParameterName = "viewInboxLetterLinkParameterName"; public static final String checkBoxName = "checkBoxName"; Table letterListTable; CheckBox checkBoxes; Link viewLetterLink; SubmitButton deleteButton = new SubmitButton(deleteButtonName, "Delete Marked"); public EmailProgramListLetterTable() { } private Vector getDraftsContentVector() throws SQLException{ EmailLetterData letters = ((com.idega.block.mailinglist.data.EmailLetterDataHome)com.idega.data.IDOLookup.getHomeLegacy(EmailLetterData.class)).createLegacy(); EmailLetterData[] unSentLetters; unSentLetters = (EmailLetterData[]) letters.findAllByColumn(com.idega.block.mailinglist.data.EmailLetterDataBMPBean.EMAIL_LETTER_DATA_SENT, "N"); Vector draftContentVector = new Vector(); Object[] contents; CheckBox checkBoxes; Link viewLetterLink; int unSentLettersCurrentID; Content content; int numberOfLetters; if (unSentLetters == null) { numberOfLetters = 0; } else { numberOfLetters = unSentLetters.length; } for (int i = 0; i < numberOfLetters; i++) { unSentLettersCurrentID = unSentLetters[i].getID(); contents = new Object[6]; contents[0] = unSentLetters[i].getDate(); contents[1] = unSentLetters[i].getSubject(); contents[2] = unSentLetters[i].getToEmail(); contents[3] = unSentLetters[i].getFromEmail(); checkBoxes = new CheckBox(checkBoxName, String.valueOf(unSentLettersCurrentID)); contents[4] = checkBoxes; viewLetterLink = new Link("View"); viewLetterLink.addParameter(viewMyLetterLinkParameterName, unSentLettersCurrentID); contents[5] = viewLetterLink; content = new Content(contents); draftContentVector.add(content); } return draftContentVector; } public void setShowDrafts(IWContext iwc) throws SQLException{ String[] titles = new String[6]; titles[0] = "Creation Date"; titles[1] = "Subject"; titles[2] = "To"; titles[3] = "From"; titles[4] = "Delete"; titles[5] = "View Letter"; ContentViewer contentViewer = new ContentViewer(); //To diffrentiate from the other contentviewers in the page contentViewer.setICObjectID(1); System.err.println("DraftsContentVector SIZE !!! ARRG "+this.getDraftsContentVector().size()); try { contentViewer = new ContentViewer( titles, new Vector()); contentViewer.setContent(this.getDraftsContentVector()); } catch (Exception ex) { System.err.println("VILLA ARRRGG!!! "); ex.printStackTrace(System.err); } this.letterListTable = new Table(1,3); this.letterListTable.add("DRAFTS",1,1); this.letterListTable.add(contentViewer,1,2); this.letterListTable.setAlignment(1,1,"center"); this.letterListTable.setAlignment(1,3,"right"); this.letterListTable.add(this.deleteButton,1,3); } private Vector getSentContentVector() throws SQLException{ EmailLetterData letters = ((com.idega.block.mailinglist.data.EmailLetterDataHome)com.idega.data.IDOLookup.getHomeLegacy(EmailLetterData.class)).createLegacy(); EmailLetterData[] sentLetters; sentLetters = (EmailLetterData[]) letters.findAllByColumn(com.idega.block.mailinglist.data.EmailLetterDataBMPBean.EMAIL_LETTER_DATA_SENT, "Y"); Vector sentContentVector = new Vector(); Object[] sentContents; CheckBox checkBoxes; Link viewLetterLink; int sentLettersCurrentID; Content sentContent; int numberOfLetters; if (sentLetters == null) { numberOfLetters = 0; } else { numberOfLetters = sentLetters.length; } for (int i = 0; i < numberOfLetters; i++) { sentLettersCurrentID = sentLetters[i].getID(); sentContents = new Object[6]; sentContents[0] = sentLetters[i].getDate(); sentContents[1] = sentLetters[i].getSubject(); sentContents[2] = sentLetters[i].getToEmail(); sentContents[3] = sentLetters[i].getFromEmail(); checkBoxes = new CheckBox(checkBoxName, String.valueOf(sentLettersCurrentID)); sentContents[4] = checkBoxes; viewLetterLink = new Link("View"); viewLetterLink.addParameter(viewMyLetterLinkParameterName, sentLettersCurrentID); sentContents[5] = viewLetterLink; sentContent = new Content(sentContents); sentContentVector.add(sentContent); } return sentContentVector; } public void setShowSentLetters(IWContext iwc) throws SQLException{ String[] titles = new String[6]; titles[0] = "Creation Date"; titles[1] = "Subject"; titles[2] = "To"; titles[3] = "From"; titles[4] = "Delete"; titles[5] = "View Letter"; ContentViewer sentContentViewer = new ContentViewer(); //To diffrentiate from the other contentviewers in the page sentContentViewer.setICObjectID(2); System.err.println(""+this.getSentContentVector().size()); try { sentContentViewer = new ContentViewer( titles, this.getSentContentVector()); } catch (Exception ex) { System.err.println("VILLA ARRRGG!!! "); ex.printStackTrace(System.err); } this.letterListTable = new Table(1,3); this.letterListTable.add("SENT LETTERS",1,1); this.letterListTable.add(sentContentViewer,1,2); this.letterListTable.add(sentContentViewer,1,2); this.letterListTable.setAlignment(1,1,"center"); this.letterListTable.setAlignment(1,3,"right"); this.letterListTable.add(this.deleteButton,1,3); } private Vector getInboxLettersContentVector(IWContext iwc) throws MessagingException{ Message[] inboxLetters; inboxLetters = EmailServiceHandler.getMessages(iwc); Vector inboxContentVector = new Vector(); Object[] inboxContents; CheckBox checkBoxes; Link viewLetterLink; int inboxLettersCurrentID; Content inboxContent; int numberOfLetters; if (inboxLetters == null) { numberOfLetters = 0; } else { numberOfLetters = inboxLetters.length; } for (int i = 0; i < numberOfLetters; i++) { if (!inboxLetters[i].isSet(Flags.Flag.DELETED)){ inboxLettersCurrentID = inboxLetters[i].getMessageNumber(); inboxContents = new Object[6]; inboxContents[0] = inboxLetters[i].getSentDate(); inboxContents[1] = inboxLetters[i].getSubject(); inboxContents[2] = EmailServiceHandler.getStringAddresses(inboxLetters[i].getRecipients(Message.RecipientType.TO)); inboxContents[3] = EmailServiceHandler.getStringAddresses(inboxLetters[i].getFrom()); checkBoxes = new CheckBox(checkBoxName, String.valueOf(inboxLettersCurrentID)); inboxContents[4] = checkBoxes; viewLetterLink = new Link("View"); viewLetterLink.addParameter(viewMyLetterLinkParameterName, inboxLettersCurrentID); inboxContents[5] = viewLetterLink; inboxContent = new Content(inboxContents); inboxContentVector.add(inboxContent); } } return inboxContentVector; } public void setShowInboxLetters(IWContext iwc) throws SQLException, MessagingException{ String[] titles = new String[6]; titles[0] = "Creation Date"; titles[1] = "Subject"; titles[2] = "To"; titles[3] = "From"; titles[4] = "Delete"; titles[5] = "View Letter"; ContentViewer sentContentViewer = new ContentViewer(); //To diffrentiate from the other contentviewers in the page sentContentViewer.setICObjectID(2); System.err.println(""+this.getSentContentVector().size()); try { sentContentViewer = new ContentViewer( titles, this.getSentContentVector()); } catch (Exception ex) { System.err.println("VILLA ARRRGG!!! "); ex.printStackTrace(System.err); } this.letterListTable = new Table(1,3); this.letterListTable.add("SENT LETTERS",1,1); this.letterListTable.add(sentContentViewer,1,2); this.letterListTable.setAlignment(1,1,"center"); this.letterListTable.setAlignment(1,3,"right"); this.letterListTable.add(this.deleteButton,1,3); } public void main(IWContext modinfo){ /* letterListTable.add("date",1,1); letterListTable.add("subject",2,1); letterListTable.add("attachments",5,1);*/ add(this.letterListTable); } }