package se.idega.idegaweb.commune.printing.presentation; import java.rmi.RemoteException; import java.util.Collection; import java.util.Iterator; import javax.ejb.FinderException; import se.idega.idegaweb.commune.message.business.CommuneMessageBusiness; import se.idega.idegaweb.commune.message.data.PrintMessage; import se.idega.idegaweb.commune.message.data.PrintedLetterMessage; import se.idega.idegaweb.commune.presentation.ColumnList; import se.idega.idegaweb.commune.presentation.CommuneBlock; import se.idega.idegaweb.commune.printing.business.DocumentBusiness; import se.idega.idegaweb.commune.printing.business.DocumentService; import se.idega.idegaweb.commune.printing.data.PrintDocuments; import com.idega.block.process.message.data.Message; import com.idega.core.builder.data.ICPage; import com.idega.core.location.data.Address; import com.idega.presentation.ExceptionWrapper; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.DownloadLink; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.DateInput; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.user.business.UserBusiness; import com.idega.user.data.User; import com.idega.util.IWTimestamp; /** * Title: PrintedLetterViewer * Description: A class to view and manage PrintedLetterMessage in the idegaWeb Commune application * Copyright: Copyright idega Software (c) 2002 * Company: idega Software * @author <a href="mailto:tryggvi@idega.is">Tryggvi Larusson</a> * @author <a href="mailto:aron@idega.is">Aron Birkir</a> * @version 1.0 */ public class PrintDocumentsViewer extends CommuneBlock { private final static String IW_BUNDLE_IDENTIFIER = "se.idega.idegaweb.commune"; private final static int ACTION_VIEW_MESSAGE_OVERVIEW = 0; private final static int ACTION_VIEW_MESSAGE_LIST = 1; private final static int ACTION_VIEW_UNPRINTED = 2; private final static int ACTION_SHOW_DELETE_INFO = 3; private final static int ACTION_DELETE_MESSAGE = 4; private final static int ACTION_PRINT_UNPRINTED_MESSAGES = 5; private final static int ACTION_PRINT_MESSAGE = 6; private final static int ACTION_PROC_SELECTED = 7; private final static String PARAM_VIEW_UNPRINTED = "prv_view_upr"; //private final static String PARAM_VIEW_MESSAGE_LIST = "prv_view_msg_list"; private final static String PARAM_MESSAGE_ID = "prv_id"; private final static String PARAM_SHOW_DELETE_INFO = "prv_s_delete_i"; private final static String PARAM_DELETE_MESSAGE = "prv_delete_message"; private final static String PARAM_PRINT_UNPRINTED = "prv_unprinted"; private final static String PARAM_PRINT_MSG = "prv_pr_msg"; private final static String PARAM_LETTER_TYPE = "prv_let_tp"; private final static String PARAM_LETTER_STATUS = "prv_let_sts"; private final static String PRM_STAMP_P_FROM = "prv_pfrm"; private final static String PRM_STAMP_U_FROM = "prv_ufrm"; private final static String PRM_STAMP_P_TO = "prv_pto"; private final static String PRM_STAMP_U_TO = "prv_uto"; private final static String PRM_P_COUNT = "prv_pcnt"; private final static String PRM_U_COUNT = "prv_ucnt"; private final static String PRM_U_CHK = "prv_uchk"; private final static String PRM_P_CHK = "prv_pchk"; private final static String PRM_CURSOR_P = "prv_crs_p"; private final static String PRM_CURSOR_U = "prv_crs_u"; private final static String PRM_PROC_SELECTED = "prv_proc_sel"; private final static String PRM_PRINT_SELECTED = "prv_pr_sel"; private final static String PRM_REPRINT_SELECTED = "prv_rpr_sel"; private final static String PRM_DEL_SELECTED = "prv_del_sel"; private final static String PRM_UNDEL_SELECTED = "prv_udel_sel"; private final static String PRM_BULK_VIEW = "prv_bulk_view"; private boolean isBulkType = false; private boolean isBulkManual = false; private boolean showTypesAsDropdown = false; private boolean useCheckBox = true; private String currentType = ""; private String currentStatus = ""; private int msgID = -1; public int fileID = -1; private IWTimestamp today = IWTimestamp.RightNow(), pFrom = null, pTo = null, uFrom = null, uTo = null; private int defaultDays = 7; public int defaultShown = 10; private int cursor_p = 0; private int cursor_u = 0; private int count_p = 10; private int count_u = 10; private String UserIDPreferenceParameterName = "user_id"; private ICPage userPrefPage = null; private String statusPrinted, statusUnprinted, statusDeleted; private Table mainTable = null; private java.util.List hiddenNonUserCaseCodes =null; public PrintDocumentsViewer() { } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } public void main(IWContext iwc) { //debugParameters(iwc); this.setResourceBundle(getResourceBundle(iwc)); if (iwc.isLoggedOn()) { try { init(iwc); initDates(iwc); initCursors(iwc); int action = parseAction(iwc); switch (action) { case ACTION_VIEW_MESSAGE_OVERVIEW : viewMessages(iwc); break; case ACTION_VIEW_MESSAGE_LIST : viewMessages(iwc); break; case ACTION_PRINT_UNPRINTED_MESSAGES : printAllUnPrintedMessages(iwc); viewMessages(iwc); break; case ACTION_PRINT_MESSAGE : printMessage(iwc); viewMessages(iwc); break; case ACTION_VIEW_UNPRINTED : addUnPrintedNameList(iwc); break; case ACTION_PROC_SELECTED : processSelected(iwc); viewMessages(iwc); break; default : break; } super.add(mainTable); } catch (Exception e) { super.add(new ExceptionWrapper(e, this)); } } else { add( getLocalizedHeader( "printdoc.not_logged_on", "You must be logged on to use this function")); } } public void init(IWContext iwc) throws RemoteException { CommuneMessageBusiness msgBuiz = getMessageBusiness(iwc); statusUnprinted = msgBuiz.getCaseStatusOpen().getStatus(); statusPrinted = msgBuiz.getCaseStatusReady().getStatus(); statusDeleted = msgBuiz.getCaseStatusInactive().getStatus(); //statusError = msgBuiz.getCaseStatusError().getStatus(); } public void add(PresentationObject po) { if (mainTable == null) { mainTable = new Table(); //mainTable.setCellpadding(14); mainTable.setCellspacing(0); mainTable.setColor(getBackgroundColor()); mainTable.setWidth(getWidth()); } mainTable.add(po); } private int parseAction(IWContext iwc) throws Exception { int action = ACTION_VIEW_MESSAGE_OVERVIEW; if (iwc.isParameterSet(PARAM_VIEW_UNPRINTED)) { action = ACTION_VIEW_UNPRINTED; } else if (iwc.isParameterSet(PARAM_SHOW_DELETE_INFO)) { action = ACTION_SHOW_DELETE_INFO; } else if (iwc.isParameterSet(PARAM_DELETE_MESSAGE)) { action = ACTION_DELETE_MESSAGE; } else if (iwc.isParameterSet(PARAM_PRINT_UNPRINTED)) { action = ACTION_PRINT_UNPRINTED_MESSAGES; } else if (iwc.isParameterSet(PARAM_PRINT_MSG)) { action = ACTION_PRINT_MESSAGE; } else if (iwc.isParameterSet(PRM_PROC_SELECTED)) { action = ACTION_PROC_SELECTED; } if (iwc.isParameterSet(PARAM_LETTER_TYPE)) { currentType = iwc.getParameter(PARAM_LETTER_TYPE); } if (iwc.isParameterSet(PARAM_LETTER_STATUS)) { currentStatus = iwc.getParameter(PARAM_LETTER_STATUS); } /**@TODO: get this status from beans */ if ("".equals(currentStatus)) currentStatus = (statusUnprinted); if ("".equals(currentType)) currentType = getDocumentBusiness(iwc).getPrintMessageTypes()[0]; if (iwc.isParameterSet(PRM_BULK_VIEW)) { isBulkManual = true; } isBulkType = getDocumentBusiness(iwc).isBulkLetterType(currentType); if (iwc.isParameterSet(PARAM_MESSAGE_ID)) { msgID = Integer.parseInt(iwc.getParameter(PARAM_MESSAGE_ID)); } return action; } private void initDates(IWContext iwc) throws Exception { pFrom = IWTimestamp.RightNow(); pFrom.addDays(-defaultDays); pTo = IWTimestamp.RightNow(); uFrom = IWTimestamp.RightNow(); uFrom.addDays(-defaultDays); uTo = IWTimestamp.RightNow(); if (iwc.isParameterSet(PRM_STAMP_P_FROM)){ try { long time = Long.parseLong(iwc.getParameter(PRM_STAMP_P_FROM)); pFrom = new IWTimestamp(time); } catch (NumberFormatException e) { pFrom = new IWTimestamp(iwc.getParameter(PRM_STAMP_P_FROM)); } pFrom.setTime(0,0,0); } if (iwc.isParameterSet(PRM_STAMP_U_FROM)){ try { long time = Long.parseLong(iwc.getParameter(PRM_STAMP_U_FROM)); uFrom = new IWTimestamp(time); } catch (NumberFormatException e) { uFrom = new IWTimestamp(iwc.getParameter(PRM_STAMP_U_FROM)); } uFrom.setTime(0,0,0); } if (iwc.isParameterSet(PRM_STAMP_P_TO)){ try { long time = Long.parseLong(iwc.getParameter(PRM_STAMP_P_TO)); pTo = new IWTimestamp(time); } catch (NumberFormatException e) { pTo = new IWTimestamp(iwc.getParameter(PRM_STAMP_P_TO)); } pTo.setTime(23,59,59); } if (iwc.isParameterSet(PRM_STAMP_U_TO)){ try { long time = Long.parseLong(iwc.getParameter(PRM_STAMP_U_TO)); uTo = new IWTimestamp(time); } catch (NumberFormatException e) { uTo = new IWTimestamp(iwc.getParameter(PRM_STAMP_U_TO)); } uTo.setTime(23,59,59); } } private void initCursors(IWContext iwc) throws Exception { if (iwc.isParameterSet(PRM_CURSOR_P)) cursor_p = Integer.parseInt(iwc.getParameter(PRM_CURSOR_P)); if (iwc.isParameterSet(PRM_CURSOR_U)) cursor_u = Integer.parseInt(iwc.getParameter(PRM_CURSOR_U)); if (iwc.isParameterSet(PRM_P_COUNT)) count_p = Integer.parseInt(iwc.getParameter(PRM_P_COUNT)); if (iwc.isParameterSet(PRM_U_COUNT)) count_u = Integer.parseInt(iwc.getParameter(PRM_U_COUNT)); } private void printAllUnPrintedMessages(IWContext iwc) throws Exception { //int userID = ((Integer) iwc.getCurrentUser().getPrimaryKey()).intValue(); Collection unPrintedLetters = getDocumentBusiness(iwc).getUnPrintedMessages(currentType,-1,-1); /*getDocumentBusiness(iwc).writeBulkPDF( unPrintedLetters, iwc.getCurrentUser(), localize("printdoc.bulkletter_filename","BulkLetterPDF"), iwc.getApplicationSettings().getDefaultLocale(), currentType, false, true, true);*/ getDocumentService(iwc).createPDF(iwc,unPrintedLetters,currentType,localize("printdoc.bulkletter_filename","BulkLetterPDF"),true); } private void printMessage(IWContext iwc) throws Exception { //int userID = ((Integer) iwc.getCurrentUser().getPrimaryKey()).intValue(); if (msgID > 0) { PrintedLetterMessage msg = (PrintedLetterMessage) getDocumentBusiness(iwc).getPrintedLetterMessageHome().findByPrimaryKey(new Integer(msgID)); //fileID =getDocumentBusiness(iwc).writePDF(msg,iwc.getCurrentUser(),localize("printdoc.letter_filename","LetterPDF"),iwc.getApplicationSettings().getDefaultLocale(),true); //TODO fileID = getDocumentService(iwc).createPDF(iwc,msg,localize("printdoc.letter_filename","LetterPDF"),false).intValue(); //System.err.println("file id written :"+fileID); //getDocumentBusiness(iwc).writePrintedLetterPDF(msgId,userID); } } private void processSelected(IWContext iwc) throws Exception { String processPrm = iwc.getParameter(PRM_PROC_SELECTED); if (iwc.isParameterSet(PRM_PRINT_SELECTED)) { printSelected(iwc); } else if (iwc.isParameterSet(PRM_REPRINT_SELECTED)) { reprintSelected(iwc); } else if ("undel".equals(processPrm)) { undeleteSelected(iwc); } else if ("del".equals(processPrm)) { deleteSelected(iwc); } } private void printSelected(IWContext iwc) throws Exception { //int userID = ((Integer) iwc.getCurrentUser().getPrimaryKey()).intValue(); boolean bulk = iwc.isParameterSet("prv_bulk"); // show bulk list when printing to bulk files isBulkManual = bulk; boolean flag = !iwc.isParameterSet("prv_mark"); String[] ids = iwc.getParameterValues(PRM_U_CHK); if (ids != null && ids.length > 0) { /* getDocumentBusiness(iwc).writeBulkPDF(ids, iwc.getCurrentUser(), localize("printdoc.bulkletter_filename","BulkLetterPDF"), iwc.getApplicationSettings().getDefaultLocale(), currentType, true, flag, bulk); */ DocumentService serv = getDocumentService(iwc); /*PrintedLetterMessageHome phome = getDocumentBusiness(iwc).getPrintedLetterMessageHome(); for (int i = 0; i < ids.length; i++) { PrintedLetterMessage msg =phome.findByPrimaryKey(new Integer(ids[i])); serv.createPDF(iwc,msg,"letter.pdf",false); }*/ serv.createPDF(iwc,ids,currentType,"letters.pdf",flag); } } private void reprintSelected(IWContext iwc) throws Exception { //int userID = ((Integer) iwc.getCurrentUser().getPrimaryKey()).intValue(); //boolean bulk = iwc.isParameterSet("prv_bulk"); // show bulk list when printing to bulk files //isBulkManual = bulk; //boolean flag = !iwc.isParameterSet("prv_mark"); String[] ids = iwc.getParameterValues(PRM_P_CHK); if (ids != null && ids.length > 0) { /* getDocumentBusiness(iwc).writeBulkPDF( ids, iwc.getCurrentUser(), localize("printdoc.bulkletter_filename","BulkLetterPDF"), iwc.getApplicationSettings().getDefaultLocale(), currentType, true, false, true); */ DocumentService serv = getDocumentService(iwc); /* PrintedLetterMessageHome phome = getDocumentBusiness(iwc).getPrintedLetterMessageHome(); for (int i = 0; i < ids.length; i++) { PrintedLetterMessage msg =phome.findByPrimaryKey(new Integer(ids[i])); serv.createPDF(iwc,msg,"letter.pdf",false); } */ serv.createPDF(iwc,ids,currentType,"letters.pdf",false); } } private void deleteSelected(IWContext iwc) throws Exception { String[] ids = iwc.getParameterValues(PRM_U_CHK); if (ids != null && ids.length > 0) { getMessageBusiness(iwc).flagMessagesWithStatus( iwc.getCurrentUser(), ids, statusDeleted); } } private void undeleteSelected(IWContext iwc) throws Exception { String[] ids = iwc.getParameterValues(PRM_U_CHK); if (ids != null && ids.length > 0) { getMessageBusiness(iwc).flagMessagesWithStatus( iwc.getCurrentUser(), ids, statusUnprinted); } } private void viewMessages(IWContext iwc) throws Exception { //add(getLocalizedHeader("printdoc.letters", "Letters for printing")); addTypeMenu(iwc); if (isBulkType) { addDocumentsList(iwc); } else { addMessagesListView(iwc); } } private void addTypeMenu(IWContext iwc) throws Exception { String[] types = getDocumentBusiness(iwc).getPrintMessageTypes(); if (showTypesAsDropdown) { DropdownMenu drp = new DropdownMenu(PARAM_LETTER_TYPE); for (int i = 0; i < types.length; i++) { drp.addMenuElement( types[i], localize("printdoc.letter_type_" + types[i], types[i])); } drp.setToSubmit(); drp.setSelectedElement(currentType); Form F = new Form(); F.add(drp); F.add(new HiddenInput(PRM_STAMP_P_FROM, String.valueOf(pFrom.getDate().getTime()))); F.add(new HiddenInput(PRM_STAMP_P_TO, String.valueOf(pTo.getDate().getTime()))); F.add(new HiddenInput(PRM_STAMP_U_FROM, String.valueOf(uFrom.getDate().getTime()))); F.add(new HiddenInput(PRM_STAMP_U_TO, String.valueOf(uTo.getDate().getTime()))); add(F); } else { Table T = new Table(); T.setCellpadding(2); int col = 1; for (int i = 0; i < types.length; i++) { Link typeLink = new Link(getHeader(localize("printdoc.letter_type_" + types[i], types[i]))); typeLink.addParameter(PARAM_LETTER_TYPE, types[i]); typeLink.addParameter(PRM_STAMP_P_FROM, String.valueOf(pFrom.getDate().getTime())); typeLink.addParameter(PRM_STAMP_U_FROM, String.valueOf(uFrom.getDate().getTime())); typeLink.addParameter(PRM_STAMP_P_TO, String.valueOf(pTo.getDate().getTime())); typeLink.addParameter(PRM_STAMP_U_TO, String.valueOf(uTo.getDate().getTime())); T.add(typeLink, col++, 1); } add(T); } } private PresentationObject getPrintedDatesForm() { Table T = new Table(); T.setCellpadding(0); T.setCellspacing(0); T.setWidth(Table.HUNDRED_PERCENT); DateInput from = new DateInput(PRM_STAMP_P_FROM, true); from = (DateInput) getStyledInterface(from); from.setYearRange(today.getYear() - 5, today.getYear() + 2); DateInput to = new DateInput(PRM_STAMP_P_TO, true); to = (DateInput) getStyledInterface(to); to.setYearRange(today.getYear() - 5, today.getYear() + 2); from.setDate(pFrom.getDate()); to.setDate(pTo.getDate()); SubmitButton search = new SubmitButton(getResourceBundle().getLocalizedString("printdoc.fetch", "Fetch")); search = (SubmitButton) getButton(search); T.add(getHeader(getResourceBundle().getLocalizedString("printdoc.date_from", "From:")),1,1); T.add(from, 1, 2); T.add(getHeader(getResourceBundle().getLocalizedString("printdoc.date_to", "To:")), 2, 1); T.add(to, 2, 2); //T.add(getHeader(getResourceBundle().getLocalizedString("printdoc.count","Count")),5,1); T.add(getCountDrop(PRM_P_COUNT, count_p), 4, 2); T.add(search, 6, 2); //T.add(new HiddenInput(PRM_STAMP_U_FROM, uFrom.toString())); //T.add(new HiddenInput(PRM_STAMP_U_TO, uTo.toString())); //T.add(new HiddenInput(PRM_U_COUNT, String.valueOf(count_u))); T.add(new HiddenInput(PARAM_LETTER_TYPE, this.currentType)); T.setTopLine(true); T.setBottomLine(true); return T; } private DropdownMenu getCountDrop(String name, int selected) { DropdownMenu drp = new DropdownMenu(name); drp = (DropdownMenu) getStyledInterface(drp); drp.addMenuElement(String.valueOf(10)); drp.addMenuElement(String.valueOf(25)); drp.addMenuElement(String.valueOf(50)); drp.addMenuElement(String.valueOf(75)); drp.addMenuElement(String.valueOf(100)); drp.addMenuElement(100000, localize("printdoc.all", "All")); drp.setSelectedElement(selected); return drp; } private DropdownMenu getStatusDrop(String name, String selected) { DropdownMenu drp = new DropdownMenu(name); drp = (DropdownMenu) getStyledInterface(drp); drp.addMenuElement(statusUnprinted, localize("printdoc.unprinted", "Unprinted")); drp.addMenuElement(statusPrinted, localize("printdoc.printed", "Printed")); drp.addMenuElement(statusDeleted, localize("printdoc.deleted", "Deleted")); //drp.addMenuElement(statusDeleted, localize("printdoc.errors", "Errors")); drp.setSelectedElement(selected); return drp; } private PresentationObject getUnPrintedDatesForm(boolean showStatus) { Table T = new Table(); T.setCellpadding(0); T.setCellspacing(0); T.setWidth(Table.HUNDRED_PERCENT); DateInput from = new DateInput(PRM_STAMP_U_FROM, true); from = (DateInput) getStyledInterface(from); from.setYearRange(today.getYear() - 5, today.getYear() + 2); DateInput to = new DateInput(PRM_STAMP_U_TO, true); to = (DateInput) getStyledInterface(to); to.setYearRange(today.getYear() - 5, today.getYear() + 2); from.setDate(uFrom.getDate()); to.setDate(uTo.getDate()); SubmitButton search = new SubmitButton(getResourceBundle().getLocalizedString("printdoc.fetch", "Fetch")); search = (SubmitButton) getButton(search); T.add(getHeader(getResourceBundle().getLocalizedString("printdoc.date_from", "From:")),1,1); T.add(from, 1, 2); T.add(getHeader(getResourceBundle().getLocalizedString("printdoc.date_to", "To:")),2,1); T.add(to, 2, 2); //T.add(getHeader(getResourceBundle().getLocalizedString("printdoc.count","Count")),5,1); T.add(getCountDrop(PRM_U_COUNT, count_u), 4, 2); if (showStatus) T.add(getStatusDrop(PARAM_LETTER_STATUS, currentStatus), 5, 2); T.add(search, 6, 2); //T.add(new HiddenInput(PRM_STAMP_P_FROM, pFrom.toString())); //T.add(new HiddenInput(PRM_STAMP_P_TO, pTo.toString())); //T.add(new HiddenInput(PRM_P_COUNT, String.valueOf(count_p))); T.add(new HiddenInput(PARAM_LETTER_TYPE, this.currentType)); T.setTopLine(true); T.setBottomLine(true); T.setHeight(25); return T; } private PresentationObject getPrintButton() { Table T = new Table(); T.setCellpadding(2); SubmitButton print = new SubmitButton( PRM_PRINT_SELECTED,getResourceBundle().getLocalizedString("printdoc.create_file", "Create file(s)")); print = (SubmitButton) getButton(print); int col = 1; // make sure PRM_PROC_SELECTED parameter is set, for the form to be processed if (currentStatus.equals(statusDeleted)) { SubmitButton undelete = new SubmitButton(PRM_UNDEL_SELECTED,getResourceBundle().getLocalizedString("printdoc.undelete", "Undelete")); undelete = (SubmitButton) getButton(undelete); undelete.setSubmitConfirm( localize("printdoc.undelete_message", "Are you sure you want to mark these letters as unprinted ?")); T.add(new HiddenInput(PRM_PROC_SELECTED, "undel")); T.add(undelete, col++, 1); } else { SubmitButton delete = new SubmitButton(PRM_DEL_SELECTED,getResourceBundle().getLocalizedString("printdoc.delete", "Delete")); delete = (SubmitButton) getButton(delete); delete.setSubmitConfirm(localize("printdoc.delete_message", "Are you sure you want to mark these letters as deleted ?")); T.add(new HiddenInput(PRM_PROC_SELECTED, "del")); T.add(delete, col++, 1); } if (!currentStatus.equals(statusDeleted)) { CheckBox mark = getCheckBox("prv_mark",""); T.add(mark, col++, 1); T.add(getLocalizedHeader("printdoc.keep_unprinted", "Keep unprinted status"), col++, 1); } CheckBox bulk = new CheckBox("prv_bulk"); T.add(bulk, col++, 1); T.add(getLocalizedHeader("printdoc.create_bulk_letter", "Bulk letter"), col++, 1); T.add(print, col++, 1); return T; } private PresentationObject getRePrintButton() { Table T = new Table(); T.setCellpadding(2); SubmitButton print = new SubmitButton( PRM_REPRINT_SELECTED,getResourceBundle().getLocalizedString("printdoc.recreate_file", "Recreate file(s)")); print = (SubmitButton) getButton(print); int col = 1; /* // make sure PRM_PROC_SELECTED parameter is set, for the form to be processed if (currentStatus.equals(statusDeleted)) { SubmitButton undelete = new SubmitButton(PRM_UNDEL_SELECTED,getResourceBundle().getLocalizedString("printdoc.undelete", "Undelete")); undelete = (SubmitButton) getButton(undelete); undelete.setSubmitConfirm( localize("printdoc.undelete_message", "Are you sure you want to mark these letters as unprinted ?")); T.add(new HiddenInput(PRM_PROC_SELECTED, "undel")); T.add(undelete, col++, 1); } else { SubmitButton delete = new SubmitButton(PRM_DEL_SELECTED,getResourceBundle().getLocalizedString("printdoc.delete", "Delete")); delete = (SubmitButton) getButton(delete); delete.setSubmitConfirm(localize("printdoc.delete_message", "Are you sure you want to mark these letters as deleted ?")); T.add(new HiddenInput(PRM_PROC_SELECTED, "del")); T.add(delete, col++, 1); } if (!currentStatus.equals(statusDeleted)) { CheckBox mark = getCheckBox("prv_mark",""); T.add(mark, col++, 1); T.add(getLocalizedHeader("printdoc.keep_unprinted", "Keep unprinted status"), col++, 1); } CheckBox bulk = new CheckBox("prv_bulk"); T.add(bulk, col++, 1); T.add(getLocalizedHeader("printdoc.create_bulk_letter", "Bulk letter"), col++, 1); */ T.add(print, col++, 1); return T; } private PresentationObject getCursorLinks( int totalsize, int cursor, String cursorPrm, int step) { Table T = new Table(); T.setCellpadding(2); if (cursor > 0) { Link prev = new Link(localize("printdoc.last", "last") + " " + step); prev.addParameter(PARAM_LETTER_TYPE, currentType); prev.addParameter(PARAM_LETTER_STATUS, currentStatus); prev.addParameter(cursorPrm, String.valueOf(cursor - step)); addDateParametersToLink(prev); T.add(prev, 1, 1); } if (cursor <= (totalsize - step)) { Link next = new Link(localize("printdoc.next", "next") + " " + step); next.addParameter(PARAM_LETTER_TYPE, currentType); next.addParameter(PARAM_LETTER_STATUS, currentStatus); next.addParameter(cursorPrm, String.valueOf(cursor + step)); addDateParametersToLink(next); T.add(next, 3, 1); } return T; } private void addDateParametersToLink(Link link) { link.addParameter(PRM_STAMP_P_FROM, String.valueOf(pFrom.getDate().getTime())); link.addParameter(PRM_STAMP_U_FROM, String.valueOf(uFrom.getDate().getTime())); link.addParameter(PRM_STAMP_P_TO, String.valueOf(pTo.getDate().getTime())); link.addParameter(PRM_STAMP_U_TO, String.valueOf(uTo.getDate().getTime())); link.addParameter(PRM_U_COUNT, count_u); link.addParameter(PRM_P_COUNT, count_p); } private void addDocumentsList(IWContext iwc) throws Exception { Form uForm = new Form(); Form pForm = new Form(); Table uT = new Table(); Table pT = new Table(); uForm.add(uT); pForm.add(pT); add(uForm); add(pForm); int urow = 1; uT.add(getLocalizedHeader("printdoc.unprinted_letters", "Letters for printing"), 1, urow++); ColumnList unPrintedLetterDocs = new ColumnList(4); unPrintedLetterDocs.setWidth(Table.HUNDRED_PERCENT); unPrintedLetterDocs.setBackroundColor("#e0e0e0"); //messageList.setHeader(localize("printdoc.name","Name"),1); //unPrintedLetterDocs.setHeader(localize("printdoc.date","Date"),1); //unPrintedLetterDocs.setHeader(localize("printdoc.n_o_docs","Number of documents"),2); unPrintedLetterDocs.add(localize("printdoc.unprinted", "Unprinted")); //messageList.add("-"); unPrintedLetterDocs.add( Integer.toString( getDocumentBusiness(iwc).getUnprintedMessagesCountByType(currentType))); Link printLink = new Link(localize("printdoc.print", "Print")); printLink.addParameter(PARAM_PRINT_UNPRINTED, "true"); printLink.addParameter(PARAM_LETTER_TYPE, currentType); addDateParametersToLink(printLink); //if there are no letters to print nothing should happen, no error should be shown if (getDocumentBusiness(iwc).getUnprintedMessagesCountByType(currentType) == 0){ printLink.setToFormReset(pForm); } unPrintedLetterDocs.add(printLink); Link viewUnprintedLink = new Link(localize("printdoc.name_list", "Namelist")); viewUnprintedLink.addParameter(PARAM_VIEW_UNPRINTED, "true"); viewUnprintedLink.addParameter(PARAM_LETTER_TYPE, currentType); addDateParametersToLink(viewUnprintedLink); if (getDocumentBusiness(iwc).getUnprintedMessagesCountByType(currentType) == 0){ viewUnprintedLink.setToFormReset(pForm); } unPrintedLetterDocs.add(viewUnprintedLink); uT.add(unPrintedLetterDocs, 1, urow++); uT.add(Text.getBreak(), 1, urow++); ColumnList printedLetterDocs = new ColumnList(4); int count = cursor_p + 1; int ccp = count_p + cursor_p; Collection printDocs = getDocumentBusiness(iwc).getPrintedDocuments(currentType, pFrom, pTo,count_p,cursor_p); int prow = 1; pT.add(getLocalizedHeader("printdoc.printed_letters", "Printed letters"), 1, prow++); pT.add(getPrintedDatesForm(), 1, prow++); pT.add(printedLetterDocs, 1, prow++); pT.add(getCursorLinks(printDocs.size(), cursor_p, PRM_CURSOR_P, count_p), 1, prow++); printedLetterDocs.setHeader("#", 1); printedLetterDocs.setHeader(localize("printdoc.printed_date", "Printing date"), 2); printedLetterDocs.setHeader(localize("printdoc.n_o_docs", "Number of documents"), 3); printedLetterDocs.setWidth(Table.HUNDRED_PERCENT); Iterator iter = printDocs.iterator(); /*if (cursor_p > 0) { while (iter.hasNext() && cursor_p > 0) { iter.next(); cursor_p--; } }*/ String view = localize("printdoc.view", "View"); while (iter.hasNext() && count <= ccp) { PrintDocuments doc = (PrintDocuments) iter.next(); printedLetterDocs.add(String.valueOf(count)); printedLetterDocs.add(doc.getCreated().toString()); //messageList.add("-"); printedLetterDocs.add(Integer.toString(doc.getNumberOfSubDocuments())); int fileID = doc.getDocumentFileID(); //Link viewLink = new Link(localize("printdoc.view", "View")); //viewLink.setFile(fileID); printedLetterDocs.add(getViewLink(view,fileID)); count++; } } private DownloadLink getViewLink(String display, int fileID){ DownloadLink viewLink = new DownloadLink(display); viewLink.setFile(fileID); return viewLink; } /* Commented out since it is never used... private void addDocumentsListView(IWContext iwc) throws Exception { Form myForm = new Form(); Table T = new Table(); myForm.add(T); add(myForm); //int urow = 1; if (isBulkManual) T.add(new HiddenInput(PRM_BULK_VIEW, "true")); ColumnList printedLetterDocs = new ColumnList(4); Collection printDocs = getDocumentBusiness(iwc).getPrintedDocuments(currentType, pFrom, pTo); int prow = 1; Table hT = new Table(2, 1); hT.setWidth(hT.HUNDRED_PERCENT); hT.setAlignment(2, 1, hT.HORIZONTAL_ALIGN_RIGHT); hT.add(getLocalizedHeader("printdoc.printed_letters", "Printed letters"), 1, 1); Link singleMsgs = new Link(localize("printdoc.normal_view", "Normal view")); singleMsgs.addParameter(PARAM_LETTER_TYPE, currentType); singleMsgs.addParameter(PARAM_LETTER_STATUS, currentStatus); addDateParametersToLink(singleMsgs); hT.add(singleMsgs, 2, 1); T.add(hT, 1, prow++); T.add(getUnPrintedDatesForm(iwc, false), 1, prow++); T.add(printedLetterDocs, 1, prow++); T.add(getCursorLinks(iwc, printDocs.size(), cursor_p, PRM_CURSOR_P, count_p), 1, prow++); printedLetterDocs.setHeader("#", 1); printedLetterDocs.setHeader(localize("printdoc.printed_date", "Printing date"), 2); printedLetterDocs.setHeader(localize("printdoc.n_o_docs", "Number of documents"), 3); printedLetterDocs.setWidth(Table.HUNDRED_PERCENT); Iterator iter = printDocs.iterator(); int count = cursor_p + 1; int ccp = count_p + cursor_p; if (cursor_p > 0) { while (iter.hasNext() && cursor_p > 0) { iter.next(); cursor_p--; } } while (iter.hasNext() && count <= ccp) { PrintDocuments doc = (PrintDocuments) iter.next(); printedLetterDocs.add(String.valueOf(count)); printedLetterDocs.add(doc.getCreated().toString()); //messageList.add("-"); int subcount = doc.getNumberOfSubDocuments(); Link namesLink = new Link(String.valueOf(subcount)); namesLink.addParameter(PARAM_VIEW_UNPRINTED, "true"); namesLink.addParameter(PARAM_LETTER_TYPE, currentType); namesLink.addParameter(PARAM_LETTER_STATUS, currentStatus); namesLink.addParameter("prv_file_id", doc.getDocumentFileID()); addDateParametersToLink(namesLink); printedLetterDocs.add(namesLink); int fileID = doc.getDocumentFileID(); Link viewLink = new Link(localize("printdoc.view", "View")); viewLink.setFile(fileID); printedLetterDocs.add(viewLink); count++; } }*/ /* Commented out since it is never used... private void addMessagesList(IWContext iwc) throws Exception { Form uForm = new Form(); Form pForm = new Form(); Table uT = new Table(); Table pT = new Table(); uForm.add(uT); pForm.add(pT); add(uForm); add(pForm); ColumnList unPrintedLetterDocs = new ColumnList(7); int urow = 1; Collection unprintedLetters = getMessageBusiness(iwc).getSingleUnPrintedLetterMessagesByType(currentType, uFrom, uTo); uT.add(getLocalizedHeader("printdoc.unprinted_letters", "Letters for printing"), 1, urow++); uT.add(getUnPrintedDatesForm(iwc, false), 1, urow++); uT.add(unPrintedLetterDocs, 1, urow++); uT.add(getPrintButton(), 1, urow++); uT.add( getCursorLinks(iwc, unprintedLetters.size(), cursor_u, PRM_CURSOR_U, count_u), 1, urow++); unPrintedLetterDocs.setWidth(Table.HUNDRED_PERCENT); unPrintedLetterDocs.setBackroundColor("#e0e0e0"); unPrintedLetterDocs.setHeader("#", 1); unPrintedLetterDocs.setHeader(localize("printdoc.created_date", "Message created"), 2); unPrintedLetterDocs.setHeader(localize("printdoc.receiver", "Receiver"), 3); unPrintedLetterDocs.setHeader(localize("printdoc.subject", "Subject"), 4); CheckBox checkAll = new CheckBox("checkall"); checkAll.setToCheckOnClick(PRM_U_CHK, true); unPrintedLetterDocs.setHeader(checkAll, 5); unPrintedLetterDocs.setHeader(localize("printdoc.file", "File"), 6); //unPrintedLetterDocs.setHeader(localize("printdoc.select","Select"),5); unPrintedLetterDocs.setHeader(localize("printdoc.bulk_file", "Bulk ID"), 7); Iterator iter = unprintedLetters.iterator(); int count = cursor_u + 1; int ccu = count_u + cursor_u; if (cursor_u > 0) { while (iter.hasNext() && cursor_u > 0) { iter.next(); cursor_u--; } } int bulkId; while (iter.hasNext() && count <= ccu) { PrintedLetterMessage msg = (PrintedLetterMessage) iter.next(); unPrintedLetterDocs.add(String.valueOf(count)); unPrintedLetterDocs.add(msg.getCreated().toString()); //messageList.add("-"); unPrintedLetterDocs.add(msg.getOwner().getName()); unPrintedLetterDocs.add(msg.getSubject()); if (useCheckBox) { CheckBox box = new CheckBox(PRM_U_CHK, msg.getPrimaryKey().toString()); uForm.addParameter(PARAM_LETTER_TYPE, currentType); //uForm.addParameter(PARAM_LETTER_STATUS, currentStatus); unPrintedLetterDocs.add(box); } else { Link printLink = new Link(localize("printdoc.print", "Print")); printLink.addParameter(PARAM_PRINT_MSG, "true"); printLink.addParameter(PARAM_LETTER_TYPE, currentType); printLink.addParameter(PARAM_LETTER_STATUS, currentStatus); printLink.addParameter(PARAM_MESSAGE_ID, msg.getPrimaryKey().toString()); addDateParametersToLink(printLink); unPrintedLetterDocs.add(printLink); } int fileID = msg.getMessageDataFileID(); if (fileID > 0) { Link viewLink = new Link(localize("printdoc.view", "View")); viewLink.setFile(fileID); unPrintedLetterDocs.add(viewLink); } else { unPrintedLetterDocs.add("-"); } bulkId = msg.getMessageBulkDataFileID(); if (bulkId > 0) { Link bulkLink = new Link(String.valueOf(msg.getMessageBulkDataFileID())); bulkLink.setFile(msg.getMessageBulkDataFileID()); unPrintedLetterDocs.add(bulkLink); } else { unPrintedLetterDocs.add("-"); } count++; } ColumnList printedLetterDocs = new ColumnList(6); printedLetterDocs.setWidth(Table.HUNDRED_PERCENT); printedLetterDocs.setBackroundColor("#e0e0e0"); printedLetterDocs.setHeader("#", 1); printedLetterDocs.setHeader(localize("printdoc.created_date", "Message created"), 2); printedLetterDocs.setHeader(localize("printdoc.receiver", "Receiver"), 3); printedLetterDocs.setHeader(localize("printdoc.subject", "Subject"), 4); printedLetterDocs.setHeader(localize("printdoc.file", "File"), 5); printedLetterDocs.setHeader(localize("printdoc.bulk_file", "Bulk File"), 6); Collection printedLetters = getMessageBusiness(iwc).getSinglePrintedLetterMessagesByType(currentType, pFrom, pTo); int prow = 1; pT.add(Text.getBreak(), 1, prow++); pT.add(getLocalizedHeader("printdoc.printed_letters", "Printed letters"), 1, prow++); pT.add(getPrintedDatesForm(iwc), 1, prow++); pT.add(printedLetterDocs, 1, prow++); pT.add( getCursorLinks(iwc, printedLetters.size(), cursor_p, PRM_CURSOR_P, count_p), 1, prow++); iter = printedLetters.iterator(); count = cursor_p + 1; int ccp = cursor_p + count_p; if (cursor_p > 0) { while (iter.hasNext() && cursor_p > 0) { iter.next(); cursor_p--; } } while (iter.hasNext() && count <= ccp) { PrintedLetterMessage msg = (PrintedLetterMessage) iter.next(); printedLetterDocs.add(String.valueOf(count)); printedLetterDocs.add(msg.getCreated().toString()); //messageList.add("-"); printedLetterDocs.add(msg.getOwner().getName()); printedLetterDocs.add(msg.getSubject()); int fileID = msg.getMessageDataFileID(); Link viewLink = new Link(localize("printdoc.view", "View")); viewLink.setFile(fileID); printedLetterDocs.add(viewLink); bulkId = msg.getMessageBulkDataFileID(); if (bulkId > 0) { Link bulkLink = new Link(String.valueOf(bulkId)); bulkLink.setFile(bulkId); printedLetterDocs.add(bulkLink); } else printedLetterDocs.add(""); count++; } }*/ private PresentationObject getPrintedMessagesPart(IWContext iwc) throws RemoteException, FinderException { Table pT = new Table(); pT.setWidth(Table.HUNDRED_PERCENT); ColumnList printedLetterDocs = new ColumnList(6); printedLetterDocs.setWidth(Table.HUNDRED_PERCENT); printedLetterDocs.setBackroundColor("#e0e0e0"); printedLetterDocs.setHeader("#", 1); printedLetterDocs.setHeader(localize("printdoc.created_date", "Message created"), 2); printedLetterDocs.setHeader(localize("printdoc.receiver", "Receiver"), 3); printedLetterDocs.setHeader(localize("printdoc.subject", "Subject"), 4); CheckBox checkAll = getCheckBox("checkallp",""); checkAll.setToCheckOnClick(PRM_P_CHK,"this.checked"); printedLetterDocs.setHeader(checkAll, 5); printedLetterDocs.setHeader(localize("printdoc.file", "File"), 6); Collection printedLetters = getMessageBusiness(iwc).getSinglePrintedLetterMessagesByType(currentType, pFrom, pTo,count_p,cursor_p); int prow = 1; //int bulkId; Table hT = new Table(2, 1); hT.setWidth(Table.HUNDRED_PERCENT); hT.setAlignment(2, 1, Table.HORIZONTAL_ALIGN_RIGHT); hT.add(getLocalizedHeader("printdoc.printed_single_letters", "Printed single letters"), 1, 1); hT.add(getViewLink(), 2, 1); pT.add(hT, 1, prow++); pT.add(getPrintedDatesForm(), 1, prow++); pT.add(printedLetterDocs, 1, prow++); pT.add(getCursorLinks(printedLetters.size(), cursor_p, PRM_CURSOR_P, count_p),1,prow++); pT.setAlignment(1, prow, Table.HORIZONTAL_ALIGN_RIGHT); pT.add(getRePrintButton(), 1, prow++); Iterator iter = printedLetters.iterator(); int count = cursor_p + 1; /*int ccp = cursor_p + count_p; if (cursor_p > 0) { while (iter.hasNext() && cursor_p > 0) { iter.next(); cursor_p--; } }*/ while (iter.hasNext() ){//&& count <= ccp) { PrintedLetterMessage msg = (PrintedLetterMessage) iter.next(); //if (!displayMessageToCommuneAdministrator(iwc, msg)) { if (hideMessage(iwc, msg)) { continue; } printedLetterDocs.add(String.valueOf(count)); printedLetterDocs.add(msg.getCreated().toString()); //messageList.add("-"); if (msg.getOwner() != null) { printedLetterDocs.add(msg.getOwner().getName()); } else { printedLetterDocs.add("-"); } printedLetterDocs.add(msg.getSubject()); int fileID = msg.getMessageDataFileID(); //DownloadLink viewLink = new DownloadLink(String.valueOf(fileID)); //viewLink.setFile(fileID); //Link viewLink = new Link(String.valueOf(fileID)); //viewLink.setFile(fileID); CheckBox box = getCheckBox(PRM_P_CHK, msg.getPrimaryKey().toString()); printedLetterDocs.add(box); printedLetterDocs.add(getViewLink(String.valueOf(fileID),fileID)); /* bulkId = msg.getMessageBulkDataFileID(); if (bulkId > 0) { Link bulkLink = new Link(String.valueOf(bulkId)); bulkLink.setFile(bulkId); printedLetterDocs.add(bulkLink); } else printedLetterDocs.add(""); */ count++; } return pT; } private PresentationObject getPrintedDocumentsPart(IWContext iwc) throws RemoteException, FinderException { Table T = new Table(); T.setWidth(Table.HUNDRED_PERCENT); //int urow = 1; if (isBulkManual) T.add(new HiddenInput(PRM_BULK_VIEW, "true")); ColumnList printedLetterDocs = new ColumnList(4); Collection printDocs = getDocumentBusiness(iwc).getPrintedDocuments(currentType, pFrom, pTo,count_p,cursor_p); int prow = 1; Table hT = new Table(2, 1); hT.setWidth(Table.HUNDRED_PERCENT); hT.setAlignment(2, 1, Table.HORIZONTAL_ALIGN_RIGHT); hT.add(getLocalizedHeader("printdoc.printed_composite_letters", "Printed composite letters"), 1, 1); hT.add(getViewLink(), 2, 1); T.add(hT, 1, prow++); T.add(getPrintedDatesForm(), 1, prow++); T.add(printedLetterDocs, 1, prow++); T.add(getCursorLinks(printDocs.size(), cursor_p, PRM_CURSOR_P, count_p), 1, prow++); printedLetterDocs.setHeader("#", 1); printedLetterDocs.setHeader(localize("printdoc.printed_date", "Printing date"), 2); printedLetterDocs.setHeader(localize("printdoc.n_o_docs", "Number of documents"), 3); printedLetterDocs.setWidth(Table.HUNDRED_PERCENT); Iterator iter = printDocs.iterator(); int count = cursor_p + 1; /*int ccp = count_p + cursor_p; if (cursor_p > 0) { while (iter.hasNext() && cursor_p > 0) { iter.next(); cursor_p--; } }*/ String view = localize("printdoc.view", "View"); while (iter.hasNext()){// && count <= ccp) { PrintDocuments doc = (PrintDocuments) iter.next(); printedLetterDocs.add(String.valueOf(count)); printedLetterDocs.add(doc.getCreated().toString()); //messageList.add("-"); int subcount = doc.getNumberOfSubDocuments(); Link namesLink = new Link(String.valueOf(subcount)); namesLink.addParameter(PARAM_VIEW_UNPRINTED, "true"); namesLink.addParameter(PARAM_LETTER_TYPE, currentType); namesLink.addParameter(PARAM_LETTER_STATUS, currentStatus); namesLink.addParameter("prv_file_id", doc.getDocumentFileID()); addDateParametersToLink(namesLink); printedLetterDocs.add(namesLink); int fileID = doc.getDocumentFileID(); //DownloadLink viewLink = new DownloadLink(localize("printdoc.view", "View")); //viewLink.setFile(fileID); //Link viewLink = new Link(localize("printdoc.view", "View")); //viewLink.setFile(fileID); printedLetterDocs.add(getViewLink(view,fileID)); count++; } T.add(new HiddenInput(PARAM_LETTER_TYPE, currentType)); return T; } private PresentationObject getViewLink() { String text = ""; if (isBulkManual) { text = localize("printdoc.show_single_letters", "Show single letters"); } else text = localize("printdoc.show_composite_letters", "Show composite letters"); Link singleMsgs = new Link(text); if (!isBulkManual) singleMsgs.addParameter(PRM_BULK_VIEW, "true"); singleMsgs.addParameter(PARAM_LETTER_TYPE, currentType); singleMsgs.addParameter(PARAM_LETTER_STATUS, statusPrinted); addDateParametersToLink(singleMsgs); return singleMsgs; } private PresentationObject getUnprintedMessagesPart(IWContext iwc) throws RemoteException, FinderException { Table T = new Table(); T.setWidth(Table.HUNDRED_PERCENT); ColumnList letterList = new ColumnList(7); int row = 1; Collection letters = getMessageBusiness(iwc).getSingleLettersByTypeAndStatus(currentType,currentStatus,uFrom,uTo,count_u,cursor_u); /* Table hT = new Table(2, 1); hT.setWidth(hT.HUNDRED_PERCENT); hT.setAlignment(2, 1, hT.HORIZONTAL_ALIGN_RIGHT); hT.add(getLocalizedHeader("printdoc.letters", "Letters"), 1, 1); Link singleMsgs = new Link(localize("printdoc.bulk_view", "Bulk view")); singleMsgs.addParameter(PRM_BULK_VIEW, "true"); singleMsgs.addParameter(PARAM_LETTER_TYPE, currentType); singleMsgs.addParameter(PARAM_LETTER_STATUS, currentStatus); addDateParametersToLink(singleMsgs); hT.add(singleMsgs, 2, 1); */ T.add(getLocalizedHeader("printdoc.unprinted_letters", "Unprinted letters"), 1, row++); T.add(getUnPrintedDatesForm(true), 1, row++); T.add(letterList, 1, row++); T.setAlignment(1, row, Table.HORIZONTAL_ALIGN_RIGHT); T.add(getPrintButton(), 1, row++); T.setAlignment(1, row, Table.HORIZONTAL_ALIGN_RIGHT); T.add(getCursorLinks(letters.size(), cursor_u, PRM_CURSOR_U, count_u), 1, row++); letterList.setWidth(Table.HUNDRED_PERCENT); letterList.setBackroundColor("#e0e0e0"); letterList.setHeader("#", 1); letterList.setHeader(localize("printdoc.created_date", "Message created"), 2); letterList.setHeader(localize("printdoc.receiver", "Receiver"), 3); letterList.setHeader(localize("printdoc.subject", "Subject"), 4); CheckBox checkAll = getCheckBox("checkall",""); checkAll.setToCheckOnClick(PRM_U_CHK,"this.checked"); letterList.setHeader(checkAll, 5); letterList.setHeader(localize("printdoc.file", "File"), 6); //letterList.setHeader(localize("printdoc.bulk_file", "Bulk ID"), 7); Iterator iter = letters.iterator(); int count = cursor_u + 1; /*int ccu = count_u + cursor_u; if (cursor_u > 0) { while (iter.hasNext() && cursor_u > 0) { iter.next(); cursor_u--; } } */ //int bulkId; UserBusiness ub = getUserBusiness(iwc); Address addr; while (iter.hasNext()){ //&& count <= ccu) { PrintedLetterMessage msg = (PrintedLetterMessage) iter.next(); //if (!displayMessageToCommuneAdministrator(iwc, msg)) { if (hideMessage(iwc, msg)) { continue; } letterList.add(String.valueOf(count)); letterList.add(msg.getCreated().toString()); //messageList.add("-"); letterList.add(msg.getOwner().getName()); letterList.add(msg.getSubject()); if (useCheckBox) { letterList.add(getCheckBox(PRM_U_CHK, msg.getPrimaryKey().toString())); } else { Link printLink = new Link(localize("printdoc.print", "Print")); printLink.addParameter(PARAM_PRINT_MSG, "true"); printLink.addParameter(PARAM_LETTER_TYPE, currentType); printLink.addParameter(PARAM_LETTER_STATUS, currentStatus); printLink.addParameter(PARAM_MESSAGE_ID, msg.getPrimaryKey().toString()); addDateParametersToLink(printLink); letterList.add(printLink); } int fileID = msg.getMessageDataFileID(); if (fileID > 0) { //Link viewLink = new Link(localize("printdoc.view", "View")); //DownloadLink viewLink = new DownloadLink(String.valueOf(fileID)); //viewLink.setFile(fileID); //Link viewLink = new Link(String.valueOf(fileID)); //viewLink.setFile(fileID); letterList.add(getViewLink(String.valueOf(fileID),fileID)); } else { letterList.add("-"); } try { addr = ub.getUsersMainAddress(msg.getOwner()); if(addr == null) throw new Exception("No user address"); letterList.add(""); } catch (Exception ex) { if(userPrefPage!=null){ Link noAddressLink = new Link(getErrorText("!")); noAddressLink.setPage(userPrefPage); noAddressLink.addParameter(UserIDPreferenceParameterName,msg.getOwner().getPrimaryKey().toString()); letterList.add(noAddressLink); } else letterList.add(getErrorText("!")); } count++; } T.add(new HiddenInput(PARAM_LETTER_TYPE, currentType)); return T; } private void addMessagesListView(IWContext iwc) throws Exception { Form myForm = new Form(); myForm.add(getUnprintedMessagesPart(iwc)); myForm.add(Text.getBreak()); if (isBulkManual) myForm.add(getPrintedDocumentsPart(iwc)); else myForm.add(getPrintedMessagesPart(iwc)); add(myForm); } private void addUnPrintedNameList(IWContext iwc) throws Exception { String prmFile_id = iwc.getParameter("prv_file_id"); int file_id = -1; if (prmFile_id !=null && !"".equals(prmFile_id)) file_id = Integer.parseInt(prmFile_id); ColumnList unPrintedNames = new ColumnList(3); unPrintedNames.setWidth(Table.HUNDRED_PERCENT); unPrintedNames.setBackroundColor("#e0e0e0"); //messageList.setHeader(localize("printdoc.name","Name"),1); unPrintedNames.setHeader(localize("printdoc.created_date", "Message created"), 1); unPrintedNames.setHeader(localize("printdoc.receiver", "Receiver"), 2); unPrintedNames.setHeader(localize("printdoc.address", "Address"), 3); Collection letters = null; if (file_id > 0) { letters = getMessageBusiness(iwc).getLettersByBulkFile(file_id, currentType, currentStatus,-1,-1); } else { letters = getMessageBusiness(iwc).getUnPrintedLetterMessagesByType(currentType,-1,-1); } Iterator iter = letters.iterator(); PrintMessage msg; User owner; UserBusiness ub = getUserBusiness(iwc); Address addr; //String sAddr = ""; while (iter.hasNext()) { msg = (PrintMessage) iter.next(); //if (!displayMessageToCommuneAdministrator(iwc, msg)) { if (hideMessage(iwc, msg)) { continue; } owner = msg.getOwner(); unPrintedNames.add(msg.getCreated().toString()); unPrintedNames.add(owner.getName()); try { addr = ub.getUsersMainAddress(owner); if(addr == null) throw new Exception("No user address"); unPrintedNames.add(addr.getStreetAddress()); } catch (Exception ex) { unPrintedNames.add(getErrorText(localize("printdoc.noaddress", "No address"))); } } addTypeMenu(iwc); add(unPrintedNames); } private CommuneMessageBusiness getMessageBusiness(IWContext iwc) throws RemoteException { return (CommuneMessageBusiness) com.idega.business.IBOLookup.getServiceInstance( iwc, CommuneMessageBusiness.class); } private DocumentBusiness getDocumentBusiness(IWContext iwc) throws RemoteException { return (DocumentBusiness) com.idega.business.IBOLookup.getServiceInstance(iwc,DocumentBusiness.class); } private DocumentService getDocumentService(IWContext iwc) throws RemoteException { return (DocumentService) com.idega.business.IBOLookup.getServiceInstance(iwc,DocumentService.class); } /* Commented out since it is never used... private Message getMessage(String id, IWContext iwc) throws Exception { int msgId = Integer.parseInt(id); Message msg = getMessageBusiness(iwc).getUserMessage(msgId); return msg; }*/ public void setShowTypesInDropdown(boolean showInDropdown) { this.showTypesAsDropdown = showInDropdown; } public void setDefaultNumberOfShownMessages(int number) { this.defaultShown = number; } public void setDefaultNumberOfShownDays(int number) { this.defaultDays = number; } public void setUserPreferencesPage(ICPage page){ this.userPrefPage = page; } public void setUserPreferenceIDParameterName(String prm){ this.UserIDPreferenceParameterName = prm; } /* private boolean displayMessageToCommuneAdministrator(IWContext iwc, Message message) { boolean canDisplay = true; try { CaseCode caseCode = message.getParentCase().getCaseCode(); CommuneCaseBusiness ccBus = (CommuneCaseBusiness) IBOLookup.getServiceInstance(iwc, CommuneCaseBusiness.class); CaseCode[] codes = ccBus.getProviderCaseCodes(); for (int i = 0; i < codes.length && canDisplay; i++) { canDisplay = !codes[i].equals(caseCode); } } catch (Exception e) { e.printStackTrace(System.err); } return canDisplay; } */ private boolean hideMessage(IWContext iwc, Message message){ // dont hide current user cases if(message.getOwner() != null && iwc.getCurrentUser().getPrimaryKey().equals(message.getOwner().getPrimaryKey())) return false; if(hiddenNonUserCaseCodes!=null){ // dont hide if there is no parent case if (message.getParentCase() == null) { return false; } String caseCode = message.getParentCase().getCaseCode().toString(); // hide if we find hidefilter match for (Iterator iter = hiddenNonUserCaseCodes.iterator(); iter.hasNext();) { String hidecode = (String) iter.next(); if(hidecode.equalsIgnoreCase(caseCode)){ return true; } } } return false; } // http://localhost:8080/nacka/index.jsp?prv_let_tp=PASS&prv_pfrm=2003-02-14+08%3A41%3A08&prv_ufrm=2003-02-14+08%3A41%3A08&prv_pto=2003-02-21+08%3A41%3A08&prv_uto=2003-02-21+08%3A41%3A08&iw_language=sv_SE&ib_page=299&idega_session_id=8BEE24A6C87C5C9514E48C3D31503DCA /** * Adds a hide filter to this viewer, the viewer then hides the letter * if its parent case code equals the filter, unless the current user is the letter owner * @param filter */ public void setHideCaseCodeFilter(String filter){ if(hiddenNonUserCaseCodes==null){ hiddenNonUserCaseCodes =new java.util.ArrayList(); } hiddenNonUserCaseCodes.add(filter); } }