emailcomposeframe.java
来自「CRM源码This file describes some issues tha」· Java 代码 · 共 515 行 · 第 1/2 页
JAVA
515 行
int index = attachments.getSelectedIndex();
if (index == -1) {
DialogHelper.showModalMessageDialog(EmailComposeHelper.ERR_MSG_NO_ACTIVE_RECORD);
} else {
deleteAttachment(index);
}
}
}
private void initAttachmentDialog() {
if (attachmentDialog == null) {
attachmentsIds = new ArrayList();
}
fileUpload = new QFileUpload(getAction(), false);
fileUpload.addQFileUploadListener(new QFileUploadListener() {
public void onFileUploaded(Widget sender, String id) {
attachmentsIds.add(id);
attachments.addItem(fileUpload.getFileUploadName());
attachmentDialog.hide();
}
});
attachmentDialog = new OkayCancelPopup(EmailComposeHelper.ATTACHMENT_CAPTION, true);
attachmentDialog.getEventSource().addEventListener(new EventListener() {
public void onEvent(Event event, Widget sender) {
if (event == OkayCancelPopup.Events.OK) {
fileUpload.submitUpload();
} else if (event == OkayCancelPopup.Events.CANCEL) {
attachmentDialog.hide();
}
}
});
attachmentDialog.setWidget(fileUpload);
}
private String getAction() {
return "../attachmentUpload/saveTemp?process_id=" + process_id;
}
private void deleteAttachment(final int index) {
if (deleteForm == null) {
deleteForm = new FormPanel();
mainPanel.add(deleteForm);
deleteForm.addFormHandler(new FormHandler() {
public void onSubmit(FormSubmitEvent event) {
}
public void onSubmitComplete(FormSubmitCompleteEvent event) {
attachmentsIds.remove(index);
attachments.removeItem(index);
}
});
}
deleteForm.setMethod(FormPanel.METHOD_POST);
deleteForm.setAction("../attachmentUpload/deleteTemp?id=" + attachmentsIds.get(index));
deleteForm.submit();
}
public boolean validate() {
boolean isToValid = !to.getText().trim().equals("");
boolean isSubjectValid = !subject.getText().trim().equals("");
if (!isToValid || !isSubjectValid) {
String errMsg = EmailComposeHelper.ERR_MSG_EMPTY_FIELDS + "\r\n";
if (!isToValid) {
toL.setStyleName("form_formElementRequiredColor");
errMsg += "[" + toL.getText() +"]";
} else {
toL.setStyleName("form_formElement");
}
if (!isSubjectValid) {
subjectL.setStyleName("form_formElementRequiredColor");
errMsg += "\r\n[" + subjectL.getText() + "]" ;
} else {
subjectL.setStyleName("form_formElement");
}
DialogHelper.showModalMessageDialog(errMsg + ".");
return false;
} else {
toL.setStyleName("form_formElement");
subjectL.setStyleName("form_formElement");
}
return true;
}
public void resetInput() {
setProcess_id(System.currentTimeMillis());
getHtmlEditFrame().setImageAttachmentAction(getAction());
if (fileUpload != null) {
fileUpload.setAction(getAction());
}
to.setText("");
toL.setStyleName("form_formElementRequiredColor");
cc.setText("");
subject.setText("");
subjectL.setStyleName("form_formElementRequiredColor");
attachments.clear();
memo.getModel().getData().setText("");
HtmlEditFrame htmlEditFrame = getHtmlEditFrame();
htmlEditFrame.setText("");
htmlEditFrame.toggleView(true);
}
public void setInitialData() {
setProcess_id(System.currentTimeMillis());
getHtmlEditFrame().setImageAttachmentAction(getAction());
if (fileUpload != null) {
fileUpload.setAction(getAction());
}
to.setText("");
toL.setStyleName("form_formElementRequiredColor");
cc.setText("");
subject.setText("");
subjectL.setStyleName("form_formElementRequiredColor");
attachments.clear();
if (initMap == null || initMap.size() == 0) {
//memo.getModel().getData().setText("");
//HtmlEditFrame htmlEditFrame = (HtmlEditFrame) memo.getView().getActiveControl();
//htmlEditFrame.setText("");
//htmlEditFrame.toggleView(true);
return;
}
// set initial values
String initFrom = (String) initMap.get(EmailComposeHelper.FROM_MAP_FIELD);
if (!StringUtil.isStringEmpty(initFrom)) {
from.setText(initFrom);
}
String initTo = (String) initMap.get(EmailComposeHelper.TO_MAP_FIELD);
if (!StringUtil.isStringEmpty(initTo)) {
to.setText(initTo);
}
String initCc = (String) initMap.get(EmailComposeHelper.CC_MAP_FIELD);
if (!StringUtil.isStringEmpty(initCc)) {
cc.setText(initCc);
}
String initSbj = (String) initMap.get(EmailComposeHelper.SUBJECT_MAP_FIELD);
if (!StringUtil.isStringEmpty(initSbj)) {
subject.setText(initSbj);
}
String initBody = (String) initMap.get(EmailComposeHelper.BODY_MAP_FIELD);
if (!StringUtil.isStringEmpty(initBody)) {
HtmlEditFrame actCtrl = (HtmlEditFrame) memo.getView().getActiveControl();
memo.getModel().getData().setText(initBody);
///actCtrl.setupEditor(initBody);
actCtrl.toggleView(HtmlEditFrame.isHTML(initBody));
actCtrl.setText(initBody);
actCtrl.setOffsetWidth(HtmlEditFrame.DEFAULT_WIDTH);
actCtrl.setOffsetHeight(HtmlEditFrame.DEFAULT_HEIGHT);
}
}
public void setOffsetHeight(int height) {
if (MIN_HEIGHT > height) {
height = MIN_HEIGHT;
}
mainPanel.setHeight(height + "px");
memo.getView().setOffsetHeight(height - topPanel.getOffsetHeight());
}
public void setOffsetWidth(int width) {
if (MIN_WIDTH > width) {
width = MIN_WIDTH;
}
String w = width + "px";
memo.getView().setOffsetWidth(width);
setWidth(w);
mainPanel.setWidth(w);
topPanel.setWidth(w);
}
public String getTo() {
return to.getText();
}
public String getFrom() {
return from.getText();
}
public String getSubject() {
return subject.getText();
}
public String getCc() {
return cc.getText();
}
public String getEmailBody(boolean processPlainTextAsHtml) {
memo.getController().uploadDataToModel();
String text = memo.getModel().getData().getText();
if (getHtmlEditFrame().isShowFrame()) {
text = StringUtil.removeImagesSrc(text);
removeUnusedHiddenAttachments(text);
}
if (processPlainTextAsHtml) {
if (!getHtmlEditFrame().isShowFrame()) {
text = "<pre>" + text + "</pre><!--html-->";
}
}
return text;
}
public void removeUnusedHiddenAttachments(String text) {
usedAttachments = new ArrayList();
for (int i=0; i<text.length() - 4; i++) {
if (Character.toUpperCase(text.charAt(i)) == '<' &&
Character.toUpperCase(text.charAt(i + 1)) == 'I' &&
Character.toUpperCase(text.charAt(i + 2)) == 'M' &&
Character.toUpperCase(text.charAt(i + 3)) == 'G') {
int start = i + 5;
int end = text.indexOf('>', i + 3);
processTag(text.substring(start, end + 1));
i = end;
}
}
for (int i=0; i<usedAttachments.size(); i++) {
hiddenAttachments.remove(usedAttachments.get(i));
}
for (Iterator i = hiddenAttachments.keySet().iterator(); i.hasNext();) {
String name = (String) i.next();
deleteAttachment((String) hiddenAttachments.get(name));
}
hiddenAttachments = new HashMap();
}
private void deleteAttachment(String id) {
if (deleteHiddenAttachmentsForm == null) {
deleteHiddenAttachmentsForm = new FormPanel();
mainPanel.add(deleteHiddenAttachmentsForm);
}
deleteHiddenAttachmentsForm.setMethod(FormPanel.METHOD_POST);
deleteHiddenAttachmentsForm.setAction("../attachmentUpload/deleteTemp?id=" + id);
deleteHiddenAttachmentsForm.submit();
}
public void processTag(String text) {
int index = text.indexOf("src=\"cid:");
if (index != -1) {
int end = text.indexOf("\"", index + 9);
String fileName = text.substring(index + 9, end);
usedAttachments.add(fileName);
}
}
public long getProcess_id() {
return process_id;
}
public void setProcess_id(long process_id) {
this.process_id = process_id;
}
private HtmlEditFrame getHtmlEditFrame() {
return (HtmlEditFrame) memo.getView().getActiveControl();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?