📄 jwmahtmlhelperimpl.java
字号:
/*** * jwma Java WebMail * Copyright (c) 2000-2003 jwma team * * jwma is free software; you can distribute and use this source * under the terms of the BSD-style license received along with * the distribution. ***/package dtw.webmail.model;import java.util.*;import java.net.*;import java.text.*;import java.io.ByteArrayInputStream;import org.apache.log4j.Logger;import dtw.webmail.*;import dtw.webmail.util.MessageSortCriterias;import dtw.webmail.util.StringUtil;import dtw.webmail.util.MD5;import dtw.webmail.util.config.ConfigurationChangeListener;import dtw.webmail.util.config.PostOffice;import dtw.webmail.plugin.RandomAppendPlugin;import dtw.webmail.plugin.ContactManagementPlugin;import javax.servlet.http.HttpSession;import net.wimpi.text.Processor;/** * Class implementing the JwmaHtmlHelper. * <p>Actually represents an utility class that helps * to keep complex logic out of the views. * * @author Dieter Wimberger * @version 0.9.7 07/02/2003 */public class JwmaHtmlHelperImpl implements JwmaHtmlHelper { //logging private static Logger log = Logger.getLogger(JwmaHtmlHelperImpl.class); private static HashMap c_DateFormats; //prepare cached dateformat instances static { Locale[] locales = JwmaKernel.getReference().getConfiguration() .getI18N().listViewLocales(); c_DateFormats = new HashMap((int) (locales.length * 1.4)); for (int i = 0; i < locales.length; i++) { SimpleDateFormat dfs = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.SHORT, locales[i]); SimpleDateFormat dfm = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.MEDIUM, locales[i]); SimpleDateFormat dfl = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.LONG, locales[i]); SimpleDateFormat[] formats = {dfs, dfm, dfl}; c_DateFormats.put(locales[i], formats); } } public JwmaHtmlHelperImpl() { }//constructor public String getControllerUrl() { return JwmaKernel.getReference().getMainControllerUrl(); }//getControllerUrl public String getSendMailControllerUrl() { return JwmaKernel.getReference().getSendMailControllerUrl(); }//getSendMailControllerUrl public String getContactsControllerUrl() { return JwmaKernel.getReference().getContactsControllerUrl(); }//getContactsControllerUrl public String getPostOfficeSelect(String postoffice) { boolean def=true; if(postoffice != null && postoffice.length() >0) { def=false; } StringBuffer buf = new StringBuffer("<select name=\"postoffice\">"); for (Iterator iter = JwmaKernel.getReference().getConfiguration().getPostOffices(); iter.hasNext();) { PostOffice po = (PostOffice) iter.next(); buf.append(" <option value=\"") .append(po.getName()) .append("\""); if(def) { if (po.isDefault()) { buf.append(" selected"); } } else { if(MD5.hash(po.getName()).equals(postoffice)) { buf.append(" selected"); } } buf.append(">"); buf.append(po.getName()); buf.append("</option>"); } buf.append("</select>"); return buf.toString(); }//getPostOfficeSelect public String getPathHierarchyNavigator(JwmaStoreInfo info, JwmaFolder folder) { String clickurl = "<a href=\"" + getControllerUrl() + "?acton=folder&todo=display&path={0}\">{1}</a>"; String fname = ""; String sep = info.getFolderSeparator() + ""; //JwmaKernel.getReference().debugLog().write("Path="+path+";ClickUrl="+clickurl); StringBuffer fpath = new StringBuffer(); StringBuffer hierarchy = new StringBuffer(); StringTokenizer strtok = new StringTokenizer(folder.getPath(), sep, false); int i = 0; while (strtok.hasMoreElements()) { fname = strtok.nextToken(); if (i > 0) { fpath.append(sep); hierarchy.append(sep); } fpath.append(URLEncoder.encode(fname)); if (strtok.countTokens() == 0) { //redirect to folder hierarchy.append("<a href=\"") .append(getControllerUrl()) .append("?acton=session&todo=redirect&view=folder\">") .append(fname) .append("</a>"); } else { Object[] args = {fpath, fname}; hierarchy.append(MessageFormat.format(clickurl, args)); } i++; } return hierarchy.toString(); }//getPathNavigator public String getFolderDisplayAction(JwmaFolder folder) { if (folder == null) { return "nullfolder"; } else { return getControllerUrl() + "?acton=folder&todo=display&path=" + URLEncoder.encode(folder.getPath()); } }//getFolderDisplayAction public String getFolderDisplayAction(JwmaInboxInfo info) { return getFolderDisplayAction((JwmaFolder) info); }//getFolderDisplayAction public String getFolderDisplayAction(JwmaTrashInfo info) { return getFolderDisplayAction((JwmaFolder) info); }//getFolderDisplayAction public String getDestinationsSelect(JwmaFolder[] folders) { StringBuffer buf = new StringBuffer("<select name=\"destination\">"); for (int i = 0; i < folders.length; i++) { buf.append(" <option value=\"" + folders[i].getPath() + "\">" + folders[i].getPath() + "</option>"); } buf.append("</select>"); return buf.toString(); }//getDestinationsSelection public String getLanguageSelect(JwmaPreferences prefs) { StringBuffer buf = new StringBuffer("<select name=\"language\">"); Locale[] locales = JwmaKernel.getReference().getConfiguration() .getI18N().listViewLocales(); for (int i = 0; i < locales.length; i++) { buf.append(" <option value=\"") .append(locales[i].getLanguage()) .append("\""); if (locales[i].equals(prefs.getLocale())) { buf.append(" selected"); } buf.append(">"); buf.append(locales[i].getDisplayName(locales[i])); buf.append("</option>"); } buf.append("</select>"); return buf.toString(); }//getLanguageSelect public String getSortCriteriaSelect(JwmaPreferences prefs, String eventhandler, ResourceBundle viewcontent) { StringBuffer buf = new StringBuffer("<select name=\"criteria\" "); if (eventhandler != null) { buf.append(eventhandler); } buf.append(">\n"); int[] criterianums = MessageSortCriterias.EXUI_CRITERIAS; int last = prefs.getMessageSortCriteria(); String[] names = MessageSortCriterias.EXUI_CRITERIAS_STR; for (int i = 0; i < criterianums.length; i++) { buf.append(" <option value=\"") .append(criterianums[i]) .append("\""); if (criterianums[i] == last) { buf.append(" selected"); } buf.append(">"); buf.append(viewcontent.getString(names[i])); buf.append("</option>"); } buf.append("</select>"); return buf.toString(); }//getSortingCriteriaSelect public String getFrequentSelect(JwmaContacts contacts, String eventhandler) { //String[] fnicks = book.listNicknames(true); JwmaContact[] frequent = contacts.listFrequentRecipients(); if (frequent == null || frequent.length == 0) { return ""; } StringBuffer buf = new StringBuffer("<select name=\"frequent\" "); if (eventhandler != null) { buf.append(eventhandler); } buf.append(">\n"); buf.append("<option value=\"\" selected>Select frequent</option>\n"); for (int i = 0; i < frequent.length; i++) { JwmaContact ct = frequent[i]; String nickname = ct.getNickname(); if (nickname == null || nickname.length() == 0) { nickname = new StringBuffer(ct.getLastname()).append(", ") .append(ct.getFirstname()).toString(); } buf.append(" <option value=\"") .append(ct.getFirstname()) .append(" ") .append(ct.getLastname()) .append("<") .append(ct.getEmail()) .append(">") .append("\">") .append(nickname) .append("</option>\n"); } buf.append("</select>\n"); return buf.toString(); }//getFrequentSelect public String getCategoriesSelect(JwmaContact ct, String[] categories, ResourceBundle viewcontent) { StringBuffer buf = new StringBuffer("<select name=\"category\">\n"); if (categories != null && categories.length > 0) { for (int i = 0; i < categories.length; i++) { buf.append(" <option value=\"") .append(categories[i]) .append("\"") .append(((categories[i].equals(ct.getCategory()))? " selected>":">")) .append(categories[i]) .append("</option>\n"); } } String newcat = viewcontent.getString("contact.newcategory"); buf.append(" <option value=\"") .append(newcat) .append("\">") .append(newcat) .append("</option>\n"); buf.append("</select>\n"); return buf.toString(); }//getCategoriesSelect public String getMessageProcessorSelect(JwmaPreferences prefs) { String[] procs = JwmaKernel.getReference().listMessageProcessors(); StringBuffer buf = new StringBuffer("<select name=\"msgprocessor\">\n"); //add options for (int i = 0; i < procs.length; i++) { Processor proc = JwmaKernel.getReference().getMessageProcessor(procs[i]); buf.append(" <option value=\"") .append(procs[i]) .append("\"") .append(((procs[i].equals(prefs.getMessageProcessorName()))? " selected>":">")) .append(proc.getDescription(prefs.getLocale())) .append("</option>\n"); } buf.append("</select>\n"); return buf.toString(); }//getMessageProcessorSelect public String getRandomAppendTypesSelect(JwmaPreferences prefs, JwmaMailIdentity mid) { RandomAppendPlugin rap = JwmaKernel.getReference().getRandomAppendPlugin(); String[] rndapp = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -