You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2010/01/05 17:21:26 UTC
svn commit: r896114 - in /james/hupa/trunk: ./
client/src/main/java/org/apache/hupa/client/
client/src/main/java/org/apache/hupa/client/mvp/
client/src/main/java/org/apache/hupa/client/widgets/ client/war/
client/war/WEB-INF/classes/com/ client/war/WEB...
Author: manolo
Date: Tue Jan 5 16:21:24 2010
New Revision: 896114
URL: http://svn.apache.org/viewvc?rev=896114&view=rev
Log:
Finished the re-factoring of views moving almost everything related with styling to css style-sheet.
Fixed a bug in creating folders, caused by I mistake I did last commit.
Created new widgets to share code in message headers and commands bar.
Modified pom to use gwt-2.0.0 and gwtupload-0.5.6.
Other changes related to the use of deprecated methods
Added:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/CommandsBar.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MessageHeaders.java
james/hupa/trunk/client/war/WEB-INF/classes/com/
james/hupa/trunk/client/war/WEB-INF/classes/com/google/
james/hupa/trunk/client/war/WEB-INF/classes/com/google/gwt/
james/hupa/trunk/client/war/WEB-INF/classes/com/google/gwt/inject/
james/hupa/trunk/client/war/favicon.ico (with props)
james/hupa/trunk/war (with props)
james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/WidgetsCSS.java
Removed:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/HasURL.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/Iframe.java
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java
james/hupa/trunk/client/war/Hupa.css
james/hupa/trunk/client/war/Hupa.html
james/hupa/trunk/pom.xml
james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/editor/Editor.java
james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java
james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/Loading.java
james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/impl/RndPanelGeneratorImpl.java
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java Tue Jan 5 16:21:24 2010
@@ -19,11 +19,13 @@
package org.apache.hupa.client;
+import org.apache.hupa.widgets.WidgetsCSS;
+
/**
* CSS class names used in Hupa
*/
-public class HupaCSS {
+public class HupaCSS extends WidgetsCSS {
public static final String C_app_container ="Hupa";
@@ -58,8 +60,18 @@
public static final String C_msg_search = "hupa-search-box";
public static final String C_msg_top_bar = "hupa-msg-top-bar";
- public static final String C_msg_bottom_bar = "hupa-msg-bottom-bar";
+
+ public static final String C_commands_bar = "hupa-commands-bar";
+
+ public static final String C_msgview_container = "hupa-msgview";
+ public static final String C_msgview_content = "hupa-msgview-content";
+
+ public static final String C_msgsend_container = "hupa-msgsend";
public static final String C_buttons = "hupa-buttons";
+
+ public static final String C_msg_headers = "hupa-msg-headers";
+
+ public static final String C_dialog = "hupa-dialog-box";
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java Tue Jan 5 16:21:24 2010
@@ -29,6 +29,7 @@
import org.apache.hupa.client.bundles.HupaImageBundle;
import org.apache.hupa.client.dnd.PagingScrollTableRowDragController;
import org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display;
+import org.apache.hupa.client.widgets.CommandsBar;
import org.apache.hupa.client.widgets.ConfirmDialogBox;
import org.apache.hupa.client.widgets.DragRefetchPagingScrollTable;
import org.apache.hupa.client.widgets.EnableButton;
@@ -115,7 +116,7 @@
private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(" ,@");
private SuggestBox searchBox = new SuggestBox(oracle);
private Button searchButton;
- private Loading expandLoading;
+ private Loading loading;
@Inject
public IMAPMessageListView(final PagingScrollTableRowDragController controller, final MessageTableModel mTableModel, final HupaConstants constants, final HupaMessages messages, final HupaImageBundle imageBundle) {
@@ -131,7 +132,7 @@
noneLink = new Hyperlink(constants.none(),"");
refreshLink = new Hyperlink(constants.refresh(),"");
searchButton = new Button(constants.searchButton());
- expandLoading = new Loading(constants.loading());
+ loading = new Loading(constants.loading());
this.cTableModel = new CachedTableModel<Message>(mTableModel);
cTableModel.setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
mTableModel.addRowCountChangeHandler(new RowCountChangeHandler() {
@@ -172,7 +173,7 @@
mailTable.fillWidth();
- pagingBar = new PagingOptions(mailTable, constants, expandLoading);
+ pagingBar = new PagingOptions(mailTable, constants, loading);
HorizontalPanel buttonBar = new HorizontalPanel();
buttonBar.addStyleName(HupaCSS.C_buttons);
@@ -229,24 +230,14 @@
msgListContainer.add(hPanel);
- HorizontalPanel barPanel = new HorizontalPanel();
- barPanel.addStyleName(HupaCSS.C_msg_bottom_bar);
+ CommandsBar commandsBar = new CommandsBar();
+ commandsBar.addLeft(new HTML(constants.select() +":"));
+ commandsBar.addLeft(allLink);
+ commandsBar.addLeft(noneLink);
+ commandsBar.add(loading);
+ commandsBar.addRight(pagingBar);
- HorizontalPanel selectionBar = new HorizontalPanel();
- selectionBar.setSpacing(3);
- selectionBar.add(new HTML(constants.select() +":"));
- selectionBar.add(allLink);
- selectionBar.add(noneLink);
- barPanel.add(selectionBar);
- barPanel.setCellHorizontalAlignment(selectionBar, HorizontalPanel.ALIGN_LEFT);
-
- barPanel.add(expandLoading);
- barPanel.setCellHorizontalAlignment(expandLoading, HorizontalPanel.ALIGN_CENTER);
-
- barPanel.add(pagingBar);
- barPanel.setCellHorizontalAlignment(pagingBar, HorizontalPanel.ALIGN_RIGHT);
-
- msgListContainer.add(barPanel);
+ msgListContainer.add(commandsBar);
msgListContainer.add(mailTable);
confirmBox.setText(messages.confirmDeleteMessages());
@@ -801,9 +792,9 @@
public void setExpandLoading(boolean expanding) {
if (expanding) {
- expandLoading.show();
+ loading.show();
} else {
- expandLoading.hide();
+ loading.hide();
}
}
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java Tue Jan 5 16:21:24 2010
@@ -28,10 +28,7 @@
import org.apache.hupa.client.CachingDispatchAsync;
import org.apache.hupa.client.HupaCallback;
-import org.apache.hupa.client.widgets.HasDialog;
-import org.apache.hupa.client.widgets.HasURL;
import org.apache.hupa.shared.SConsts;
-import org.apache.hupa.shared.Util;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.Message;
import org.apache.hupa.shared.data.MessageAttachment;
@@ -48,30 +45,23 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.user.client.ui.HasHTML;
-import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.Window;
import com.google.inject.Inject;
public class IMAPMessagePresenter extends WidgetPresenter<IMAPMessagePresenter.Display>{
public interface Display extends WidgetDisplay{
- public HasText getFrom();
-
- public HasText getTo();
-
- public HasText getCc();
-
- public HasText getSubject();
- public HasURL getRawMessageURL();
- public HasDialog getRawMessageDialog();
- public HasHTML getContent();
+
+ public void setHeaders(Message msg);
+ public void setAttachments(List<MessageAttachment> attachements, String folder, long uid);
+ public void setContent(String content);
+
public HasClickHandlers getShowRawMessageClick();
public HasClickHandlers getDeleteButtonClick();
public HasClickHandlers getReplyButtonClick();
public HasClickHandlers getReplyAllButtonClick();
public HasClickHandlers getForwardButtonClick();
public HasClickHandlers getBackButtonClick();
- public void setAttachments(List<MessageAttachment> attachements, String folder, long uid);
}
private MessageDetails messageDetails;
@@ -98,12 +88,9 @@
}
private void updateDisplay() {
- display.getFrom().setText(message.getFrom());
- display.getCc().setText(Util.listToString(message.getCc()));
- display.getTo().setText(Util.listToString(message.getTo()));
- display.getSubject().setText(message.getSubject());
- display.getContent().setHTML(messageDetails.getText());
display.setAttachments(messageDetails.getMessageAttachments(), folder.getFullName(),message.getUid());
+ display.setHeaders(message);
+ display.setContent(messageDetails.getText());
}
@Override
@@ -158,9 +145,7 @@
String message_url = GWT.getModuleBaseURL() + SConsts.SERVLET_SOURCE +
"?" + SConsts.PARAM_UID + "=" + message.getUid() +
"&" + SConsts.PARAM_FOLDER + "=" + folder.getFullName();
-
- display.getRawMessageURL().setUrl(message_url);
- display.getRawMessageDialog().center();
+ Window.open(message_url, "_blank", "");
}
}));
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Tue Jan 5 16:21:24 2010
@@ -21,49 +21,56 @@
import java.util.List;
+import org.apache.hupa.client.HupaCSS;
import org.apache.hupa.client.HupaConstants;
import org.apache.hupa.client.bundles.HupaImageBundle;
import org.apache.hupa.client.mvp.IMAPMessagePresenter.Display;
-import org.apache.hupa.client.widgets.HasDialog;
-import org.apache.hupa.client.widgets.HasURL;
-import org.apache.hupa.client.widgets.Iframe;
-import org.apache.hupa.client.widgets.MyDialogBox;
+import org.apache.hupa.client.widgets.CommandsBar;
+import org.apache.hupa.client.widgets.MessageHeaders;
import org.apache.hupa.shared.SConsts;
+import org.apache.hupa.shared.Util;
+import org.apache.hupa.shared.data.Message;
import org.apache.hupa.shared.data.MessageAttachment;
import org.apache.hupa.widgets.ui.Loading;
import org.cobogw.gwt.user.client.ui.Button;
-import org.cobogw.gwt.user.client.ui.ButtonBar;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.HasHTML;
-import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.ScrollPanel;
-import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
public class IMAPMessageView extends Composite implements Display{
+
+ public final static int DELETE_BUTTON = 0;
+ public final static int REPLY_BUTTON = 1;
+ public final static int REPLY_ALL_BUTTON = 2;
private HupaImageBundle imageBundle;
- private Grid detailGrid = new Grid(5, 2);
+
+ private VerticalPanel messageContainer = new VerticalPanel();
+ private MessageHeaders headers;
+ private CommandsBar buttonsBar = new CommandsBar();
+ private HTML msgArea = new HTML();
+
private Label from = new Label();
private Label cc = new Label();
private Label to = new Label();
private Label subject = new Label();
- private HTML msgArea = new HTML();
+
private Button deleteMsgButton = new Button();
private Button replyMsgButton = new Button();
private Button replyAllMsgButton = new Button();
@@ -71,120 +78,44 @@
private Hyperlink showRawButton;
private Hyperlink backButton;
private FlowPanel attachments = new FlowPanel();
- private MyDialogBox rawDialogBox = new MyDialogBox();
- private Iframe rawFrame = new Iframe();
- public final static int DELETE_BUTTON = 0;
- public final static int REPLY_BUTTON = 1;
- public final static int REPLY_ALL_BUTTON = 2;
- private Loading loading = new Loading();
- private SimplePanel container = new SimplePanel();
+ private Loading loading;
+
@Inject
public IMAPMessageView(HupaConstants constants, HupaImageBundle imageBundle) {
this.imageBundle = imageBundle;
+
+ loading = new Loading(constants.loading());
showRawButton = new Hyperlink(constants.rawButton(),"");
backButton = new Hyperlink(constants.backButton(),"");
- final VerticalPanel mPanel = new VerticalPanel();
- mPanel.setWidth("100%");
- mPanel.setSpacing(5);
-
- detailGrid.setWidth("100%");
- detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
- detailGrid.setText(0, 0, constants.headerFrom() + ":");
- detailGrid.setText(1, 0, constants.headerTo() + ":");
- detailGrid.setText(2, 0, constants.headerCc() + ":");
- detailGrid.setText(3, 0, constants.headerSubject() + ":");
- detailGrid.setText(4, 0, constants.attachments() + ":");
- detailGrid.setWidget(0, 1, from);
- detailGrid.setWidget(1, 1, to);
- detailGrid.setWidget(2, 1, cc);
- detailGrid.setWidget(3, 1, subject);
- detailGrid.setWidget(4, 1, attachments);
-
- detailGrid.getCellFormatter().setStyleName(0,0,"label");
- detailGrid.getCellFormatter().setStyleName(0,1,"value");
- detailGrid.getCellFormatter().setStyleName(1,0,"label");
- detailGrid.getCellFormatter().setStyleName(1,1,"value");
- detailGrid.getCellFormatter().setStyleName(2,0,"label");
- detailGrid.getCellFormatter().setStyleName(2,1,"value");
- detailGrid.getCellFormatter().setStyleName(3,0,"label");
- detailGrid.getCellFormatter().setStyleName(3,1,"value");
- detailGrid.getCellFormatter().setStyleName(4,0,"label");
- detailGrid.getCellFormatter().setStyleName(4,1,"value");
-
- detailGrid.getCellFormatter().setVerticalAlignment(0, 0, VerticalPanel.ALIGN_MIDDLE);
- detailGrid.getCellFormatter().setVerticalAlignment(1, 0, VerticalPanel.ALIGN_MIDDLE);
- detailGrid.getCellFormatter().setVerticalAlignment(2, 0, VerticalPanel.ALIGN_MIDDLE);
- detailGrid.getCellFormatter().setVerticalAlignment(3, 0, VerticalPanel.ALIGN_MIDDLE);
- detailGrid.getCellFormatter().setVerticalAlignment(4, 0, VerticalPanel.ALIGN_TOP);
- detailGrid.getCellFormatter().setWidth(0, 0, "100px");
- detailGrid.getCellFormatter().setWidth(1, 0, "100px");
- detailGrid.getCellFormatter().setWidth(2, 0, "100px");
- detailGrid.getCellFormatter().setWidth(3, 0, "100px");
- detailGrid.getCellFormatter().setWidth(4, 0, "100px");
-
- mPanel.add(detailGrid);
-
+ headers = new MessageHeaders(constants);
deleteMsgButton.setText(constants.deleteMailButton());
replyMsgButton.setText(constants.replyMailButton());
replyAllMsgButton.setText(constants.replyAllMailButton());
forwardMsgButton.setText(constants.forwardMailButton());
- HorizontalPanel buttonPanel = new HorizontalPanel();
- buttonPanel.setWidth("100%");
- buttonPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
- buttonPanel.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
-
- container.setWidget(showRawButton);
+ messageContainer.addStyleName(HupaCSS.C_msgview_container);
- ButtonBar buttonBar = new ButtonBar();
- buttonBar.add(replyMsgButton);
- buttonBar.add(replyAllMsgButton);
- buttonBar.add(deleteMsgButton);
- buttonBar.add(forwardMsgButton);
- buttonBar.setWidth("100%");
- buttonPanel.add(buttonBar);
+ buttonsBar.add(replyMsgButton);
+ buttonsBar.add(replyAllMsgButton);
+ buttonsBar.add(deleteMsgButton);
+ buttonsBar.add(forwardMsgButton);
+ buttonsBar.add(loading);
+ buttonsBar.add(showRawButton);
+ buttonsBar.add(backButton);
- buttonPanel.add(container);
- buttonPanel.setCellHorizontalAlignment(container, HorizontalPanel.ALIGN_RIGHT);
- buttonPanel.add(backButton);
- buttonPanel.setCellHorizontalAlignment(backButton, HorizontalPanel.ALIGN_RIGHT);
- mPanel.add(buttonPanel);
- msgArea.setWidth("100%");
- ScrollPanel sPanel = new ScrollPanel();
- sPanel.setAlwaysShowScrollBars(false);
-
- sPanel.add(msgArea);
- mPanel.add(sPanel);
-
- // TODO: put this in css
- rawFrame.setHeight("600px");
- rawFrame.setWidth("600px");
- rawDialogBox.setText(constants.rawTitle());
- rawDialogBox.add(rawFrame);
- rawDialogBox.setAnimationEnabled(true);
- rawDialogBox.setAutoHideEnabled(true);
- initWidget(mPanel);
- }
-
- public HasText getCc() {
- return cc;
- }
-
- public HasHTML getContent() {
- return msgArea;
- }
-
- public HasText getFrom() {
- return from;
- }
-
- public HasText getSubject() {
- return subject;
- }
-
- public HasText getTo() {
- return to;
+ ScrollPanel scrollPanel = new ScrollPanel();
+ scrollPanel.addStyleName(HupaCSS.C_msgview_content);
+ scrollPanel.setAlwaysShowScrollBars(false);
+ scrollPanel.add(msgArea);
+
+ messageContainer.add(headers);
+ messageContainer.add(buttonsBar);
+ messageContainer.add(scrollPanel);
+
+ loading.hide();
+
+ initWidget(messageContainer);
}
public Widget asWidget() {
@@ -192,13 +123,11 @@
}
public void startProcessing() {
- container.setWidget(loading);
loading.show();
}
public void stopProcessing() {
- container.setWidget(showRawButton);
- loading.hide();
+ loading.show();
}
public HasClickHandlers getDeleteButtonClick() {
@@ -208,23 +137,25 @@
public void setAttachments(List<MessageAttachment> attachements,
final String folder,
final long uid) {
+
attachments.clear();
+ final Element downloadIframe = RootPanel.get("__download").getElement();
if (attachements != null) {
for (int i = 0; i < attachements.size(); i++) {
final MessageAttachment a = attachements.get(i);
- Hyperlink link = new Hyperlink(a.getName() + " (" + a.getSize() / 1024
- + "kB)", true, "");
+ Label link = new Label(a.getName() + " (" + a.getSize() / 1024 + "kB)");
+ link.setStyleName(HupaCSS.C_hyperlink);
link.addClickHandler(new ClickHandler() {
-
public void onClick(ClickEvent event) {
- DOM.setElementAttribute(RootPanel.get("__download")
- .getElement(), "src",
- GWT.getModuleBaseURL() + SConsts.SERVLET_DOWNLOAD
- + "?" + SConsts.PARAM_NAME + "=" + a.getName()
- + "&" + SConsts.PARAM_FOLDER + "=" + folder
- + "&" + SConsts.PARAM_UID + "=" + uid);
+ String url = GWT.getModuleBaseURL() + SConsts.SERVLET_DOWNLOAD
+ + "?" + SConsts.PARAM_NAME + "=" + a.getName()
+ + "&" + SConsts.PARAM_FOLDER + "=" + folder
+ + "&" + SConsts.PARAM_UID + "=" + uid;
+ if (downloadIframe == null)
+ Window.open(url,"_blank", "");
+ else
+ DOM.setElementAttribute(downloadIframe, "src", url);
}
-
});
HorizontalPanel aPanel = new HorizontalPanel();
aPanel.add(imageBundle.attachmentIcon().createImage());
@@ -254,12 +185,16 @@
return showRawButton;
}
- public HasDialog getRawMessageDialog() {
- return rawDialogBox;
+ public void setHeaders(Message message) {
+ from.setText(message.getFrom());
+ cc.setText(Util.listToString(message.getCc()));
+ to.setText(Util.listToString(message.getTo()));
+ subject.setText(message.getSubject());
+ headers.setValues(from, to, cc, null, subject, attachments);
}
-
- public HasURL getRawMessageURL() {
- return rawFrame;
+
+ public void setContent(String content) {
+ msgArea.setHTML(content);
}
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java Tue Jan 5 16:21:24 2010
@@ -454,14 +454,14 @@
if (event.getEventType().equals(EditEvent.EventType.Cancel)) {
// remove the folder
newItem.remove();
+ folderTree.setSelectedItem(selected, false);
} else if (event.getEventType().equals(EditEvent.EventType.Stop)) {
// add the new item to dnd controller
bindDropController(newItem);
+ // Select the parent folder to avoid an issue in gmail, because
+ // the new folder takes a while until it is available
+ folderTree.setSelectedItem(selected, false);
}
- // In both cases, select the parent folder.
- // This avoid an issue in creating folder in gmail where the new
- // folder takes a while until it is available
- folderTree.setSelectedItem(selected, false);
}
});
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java Tue Jan 5 16:21:24 2010
@@ -69,9 +69,9 @@
/**
* Presenter which handles the sending, reply, replay-all, forward of mails
- *
+ *
*/
-public class MessageSendPresenter extends WidgetPresenter<MessageSendPresenter.Display>{
+public class MessageSendPresenter extends WidgetPresenter<MessageSendPresenter.Display> {
private DispatchAsync dispatcher;
private ArrayList<MessageAttachment> attachments = new ArrayList<MessageAttachment>();
@@ -86,7 +86,7 @@
private OnFinishUploaderHandler onFinishUploadHandler = new OnFinishUploaderHandler() {
public void onFinish(IUploader uploader) {
if (uploader.getStatus() == Status.SUCCESS) {
- String name = uploader.getInputName();
+ String name = uploader.getInputName();
MessageAttachment attachment = new MessageAttachment();
attachment.setName(name);
attachments.add(attachment);
@@ -94,7 +94,7 @@
}
}
};
-
+
private OnStatusChangedHandler onStatusChangedHandler = new OnStatusChangedHandler() {
public void onStatusChanged(IUploader uploader) {
Status stat = display.getUploader().getStatus();
@@ -107,39 +107,28 @@
private OnCancelUploaderHandler onCancelUploadHandler = new OnCancelUploaderHandler() {
public void onCancel(IUploader uploader) {
- for (MessageAttachment attachment: attachments) {
+ for (MessageAttachment attachment : attachments) {
if (attachment.getName().equals(uploader.getInputName()))
attachments.remove(attachment);
}
}
};
-
+
@Inject
public MessageSendPresenter(Display display, EventBus eventBus, DispatchAsync dispatcher) {
super(display, eventBus);
- this.dispatcher = dispatcher;
-
+ this.dispatcher = dispatcher;
+
FocusAction fAction = new FocusAction();
- validator.addValidators("cc", new EmailListValidator(display.getCcText())
- .addActionForFailure(
- new StyleAction("hupa-validationErrorBorder"))
- .addActionForFailure(fAction));
- validator.addValidators("bcc", new EmailListValidator(display.getBccText())
- .addActionForFailure(
- new StyleAction("hupa-validationErrorBorder"))
- .addActionForFailure(fAction));
- validator.addValidators("to", new EmailListValidator(display.getToText())
- .addActionForFailure(
- new StyleAction("hupa-validationErrorBorder"))
- .addActionForFailure(fAction), new NotEmptyValidator(display.getToText())
- .addActionForFailure(
- new StyleAction("hupa-validationErrorBorder"))
- .addActionForFailure(fAction));
+ validator.addValidators("cc", new EmailListValidator(display.getCcText()).addActionForFailure(new StyleAction("hupa-validationErrorBorder")).addActionForFailure(fAction));
+ validator.addValidators("bcc", new EmailListValidator(display.getBccText()).addActionForFailure(new StyleAction("hupa-validationErrorBorder")).addActionForFailure(fAction));
+ validator.addValidators("to", new EmailListValidator(display.getToText()).addActionForFailure(new StyleAction("hupa-validationErrorBorder")).addActionForFailure(fAction),
+ new NotEmptyValidator(display.getToText()).addActionForFailure(new StyleAction("hupa-validationErrorBorder")).addActionForFailure(fAction));
}
/**
* The Type for which the SendPresenter will get used
- *
+ *
*/
public enum Type {
/**
@@ -159,22 +148,33 @@
*/
FORWARD
}
-
+
public interface Display extends WidgetDisplay {
public HasText getFromText();
+
public HasText getToText();
+
public HasText getCcText();
+
public HasText getBccText();
+
public HasText getSubjectText();
+
public HasHTML getMessageHTML();
+
public HasClickHandlers getSendClick();
+
public HasEnable getSendEnable();
+
public IUploader getUploader();
- public void resetUploader();
+
public HasClickHandlers getBackButtonClick();
+
+ public void refresh();
+
public void setLoading(boolean loading);
}
-
+
@Override
protected void onBind() {
registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
@@ -182,114 +182,119 @@
public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
reset();
}
-
+
}));
registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {
public void onFolderSelectionEvent(FolderSelectionEvent event) {
reset();
}
-
+
}));
registerHandler(display.getSendClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
-
- if (validator.validate() == false) {
- return;
- }
- SMTPMessage message = new SMTPMessage();
-
- message.setFrom(display.getFromText().getText());
-
- ArrayList<String> to = new ArrayList<String>();
- String[] toRaw = display.getToText().getText().split("[,;]+");
- if (toRaw != null) {
- for (int i = 0; i < toRaw.length;i++) {
- String toRecip = toRaw[i].trim();
- if (toRecip.length() > 0) {
- to.add(toRaw[i].trim());
- }
+
+ if (validator.validate() == false) {
+ return;
+ }
+ SMTPMessage message = new SMTPMessage();
+
+ message.setFrom(display.getFromText().getText());
+
+ ArrayList<String> to = new ArrayList<String>();
+ String[] toRaw = display.getToText().getText().split("[,;]+");
+ if (toRaw != null) {
+ for (int i = 0; i < toRaw.length; i++) {
+ String toRecip = toRaw[i].trim();
+ if (toRecip.length() > 0) {
+ to.add(toRaw[i].trim());
}
}
- message.setTo(to);
-
- ArrayList<String> cc = new ArrayList<String>();
- String[] ccRaw = display.getCcText().getText().split("[,;]+");
- if (ccRaw != null) {
- for (int i = 0; i < ccRaw.length;i++) {
- String ccRecip = ccRaw[i].trim();
- if (ccRecip.length() > 0) {
- cc.add(ccRaw[i].trim());
- }
+ }
+ message.setTo(to);
+
+ ArrayList<String> cc = new ArrayList<String>();
+ String[] ccRaw = display.getCcText().getText().split("[,;]+");
+ if (ccRaw != null) {
+ for (int i = 0; i < ccRaw.length; i++) {
+ String ccRecip = ccRaw[i].trim();
+ if (ccRecip.length() > 0) {
+ cc.add(ccRaw[i].trim());
}
}
- message.setCc(cc);
-
- message.setSubject(display.getSubjectText().getText());
- message.setText(display.getMessageHTML().getHTML());
-
- message.setMessageAttachments(attachments);
-
- // TODO: good handling of error messages, and use an error widget instead of Window.alert
-
- if (type.equals(Type.NEW)) {
- display.setLoading(true);
-
- dispatcher.execute(new SendMessage(message), new HupaCallback<GenericResult>(dispatcher, eventBus) {
- public void callback(GenericResult result) {
- if (result.isSuccess()) {
- eventBus.fireEvent(new SentMessageEvent());
- reset();
- } else {
- Window.alert(result.getMessage());
- }
- display.setLoading(false);
+ }
+ message.setCc(cc);
+
+ message.setSubject(display.getSubjectText().getText());
+ message.setText(display.getMessageHTML().getHTML());
+
+ message.setMessageAttachments(attachments);
+ // TODO: good handling of error messages, and use an error
+ // widget instead of Window.alert
+
+ if (type.equals(Type.NEW)) {
+ display.setLoading(true);
+
+ dispatcher.execute(new SendMessage(message), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+ public void callback(GenericResult result) {
+ if (result.isSuccess()) {
+ eventBus.fireEvent(new SentMessageEvent());
+ reset();
+ } else {
+ Window.alert(result.getMessage());
}
- });
- } else if(type.equals(Type.FORWARD)) {
- display.setLoading(true);
-
- dispatcher.execute(new ForwardMessage(message, folder, oldmessage.getUid()), new HupaCallback<GenericResult>(dispatcher, eventBus) {
- public void callback(GenericResult result) {
- if (result.isSuccess()) {
- eventBus.fireEvent(new SentMessageEvent());
- reset();
- } else {
- Window.alert(result.getMessage());
- }
- display.setLoading(false);
+ display.setLoading(false);
+ }
+ });
+ } else if (type.equals(Type.FORWARD)) {
+ display.setLoading(true);
+
+ dispatcher.execute(new ForwardMessage(message, folder, oldmessage.getUid()), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+ public void callback(GenericResult result) {
+ if (result.isSuccess()) {
+ eventBus.fireEvent(new SentMessageEvent());
+ reset();
+ } else {
+ Window.alert(result.getMessage());
}
- });
- } else if(type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
- display.setLoading(true);
-
- dispatcher.execute(new ReplyMessage(message, folder, oldmessage.getUid()), new HupaCallback<GenericResult>(dispatcher, eventBus) {
- public void callback(GenericResult result) {
- if (result.isSuccess()) {
- eventBus.fireEvent(new SentMessageEvent());
- reset();
- } else {
- Window.alert(result.getMessage());
- }
- display.setLoading(false);
+ display.setLoading(false);
+
+ }
+ });
+ } else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
+ display.setLoading(true);
+
+ dispatcher.execute(new ReplyMessage(message, folder, oldmessage.getUid()), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+ public void callback(GenericResult result) {
+ if (result.isSuccess()) {
+ eventBus.fireEvent(new SentMessageEvent());
+ reset();
+ } else {
+ Window.alert(result.getMessage());
}
- });
- }
+ display.setLoading(false);
+ }
+ });
}
+ }
}));
-
+
registerHandler(display.getBackButtonClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
eventBus.fireEvent(new BackEvent());
}
-
+
}));
-
+
+ display.getUploader().addOnStatusChangedHandler(onStatusChangedHandler);
+ display.getUploader().addOnFinishUploadHandler(onFinishUploadHandler);
+ display.getUploader().addOnCancelUploadHandler(onCancelUploadHandler);
+
reset();
}
@@ -297,11 +302,7 @@
* Reset everything
*/
private void reset() {
- display.resetUploader();
- display.getUploader().addOnStatusChangedHandler(onStatusChangedHandler);
- display.getUploader().addOnFinishUploadHandler(onFinishUploadHandler);
- display.getUploader().addOnCancelUploadHandler(onCancelUploadHandler);
-
+ display.getUploader().reset();
display.getBccText().setText("");
display.getCcText().setText("");
display.getToText().setText("");
@@ -312,43 +313,43 @@
type = Type.NEW;
}
-
-
@Override
protected void onUnbind() {
// cancel the current upload when unbinding
display.getUploader().cancel();
}
-
+
/**
* Bind the given values to this presenter
*
- * @param user the user
- * @param folder the currently selected folder
- * @param oldmessage the oldmessage ( if there is any)
- * @param oldDetails the olddetails ( if there are any)
- * @param type the type
+ * @param user
+ * the user
+ * @param folder
+ * the currently selected folder
+ * @param oldmessage
+ * the oldmessage ( if there is any)
+ * @param oldDetails
+ * the olddetails ( if there are any)
+ * @param type
+ * the type
*/
public void revealDisplay(User user, IMAPFolder folder, Message oldmessage, MessageDetails oldDetails, String mailto, Type type) {
+
+ this.reset();
this.oldmessage = oldmessage;
this.oldDetails = oldDetails;
this.folder = folder;
this.type = type;
-
+
display.getFromText().setText(user.getName());
- display.getToText().setText("");
- display.getCcText().setText("");
- display.getBccText().setText("");
- display.getSubjectText().setText("");
- display.getMessageHTML().setHTML("");
if (type.equals(Type.FORWARD)) {
- if (! oldmessage.getSubject().toLowerCase().startsWith("fwd:"))
+ if (!oldmessage.getSubject().toLowerCase().startsWith("fwd:"))
display.getSubjectText().setText("Fwd: " + oldmessage.getSubject());
} else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
- if (! oldmessage.getSubject().toLowerCase().startsWith("re:"))
+ if (!oldmessage.getSubject().toLowerCase().startsWith("re:"))
display.getSubjectText().setText("Re: " + oldmessage.getSubject());
-
+
if (oldmessage.getReplyto() != null) {
display.getToText().setText(oldmessage.getReplyto());
} else if (type.equals(Type.REPLY)) {
@@ -360,12 +361,16 @@
display.getToText().setText(Util.listToString(oldmessage.getTo()));
}
}
-
+
display.getMessageHTML().setHTML(wrapMessage(oldmessage, oldDetails, type));
-
+
if (mailto != null)
display.getToText().setText(mailto);
+
+ display.refresh();
+
firePresenterChangedEvent();
+
revealDisplay();
}
@@ -376,26 +381,26 @@
public void revealDisplay(User user, String mailto) {
revealDisplay(user, null, null, null, mailto, Type.NEW);
}
-
+
/**
* Bind the given user to the presenter
*
* @param user
*/
public void revealDisplay(User user) {
- revealDisplay(user,null,null,null, null,Type.NEW);
+ revealDisplay(user, null, null, null, null, Type.NEW);
}
@Override
protected void onRevealDisplay() {
// DO Nothing
}
-
+
private String generateHeader(Message message, Type type) {
String ret = "<br><br>";
if (type.equals(Type.FORWARD)) {
ret += "--------- Forwarded message --------- <br>";
- ret += "From: " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">") + "<br>";
+ ret += "From: " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">") + "<br>";
ret += "Date: " + message.getReceivedDate() + "<br>";
ret += "Subject: " + message.getSubject() + "<br>";
ArrayList<String> to = new ArrayList<String>();
@@ -404,11 +409,12 @@
ret += "To: " + Util.listToString(to).replaceAll("<", "<").replaceAll(">", ">") + "<br>";
} else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
ret += "On " + message.getReceivedDate();
- ret += ", " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">");
+ ret += ", " + message.getFrom().replaceAll("<", "<").replaceAll(">", ">");
ret += ". wrote:<br>";
}
return ret + "<br>";
}
+
private String wrapMessage(Message message, MessageDetails details, Type type) {
String ret;
ret = "<font size=2 style='font-family: arial'>";
@@ -420,5 +426,4 @@
return ret;
}
-
}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java Tue Jan 5 16:21:24 2010
@@ -24,8 +24,11 @@
import gwtupload.client.IUploader;
import gwtupload.client.MultiUploader;
+import org.apache.hupa.client.HupaCSS;
import org.apache.hupa.client.HupaConstants;
+import org.apache.hupa.client.widgets.CommandsBar;
import org.apache.hupa.client.widgets.EnableButton;
+import org.apache.hupa.client.widgets.MessageHeaders;
import org.apache.hupa.shared.SConsts;
import org.apache.hupa.widgets.editor.Editor;
import org.apache.hupa.widgets.ui.EnableHyperlink;
@@ -35,10 +38,8 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HasHTML;
import com.google.gwt.user.client.ui.HasText;
-import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -50,93 +51,56 @@
*
*
*/
-public class MessageSendView extends Composite implements
- MessageSendPresenter.Display {
- private Grid detailGrid = new Grid(6, 3);
+public class MessageSendView extends Composite implements MessageSendPresenter.Display {
+
+ final VerticalPanel sendContainer = new VerticalPanel();
+
+ private MessageHeaders headers;
+
+ private Editor editor = new Editor();
+ private CommandsBar buttonsBar = new CommandsBar();
+
private Label from = new Label();
private TextBox to = new TextBox();
private TextBox cc = new TextBox();
private TextBox bcc = new TextBox();
private TextBox subject = new TextBox();
private MultiUploader uploader = null;
- private Editor editor = new Editor();
+
private EnableButton sendButton;
private EnableHyperlink backButton;
- private Loading sendProgress = new Loading();
- private HupaConstants constants;
-
+ private Loading loading;
+
@Inject
public MessageSendView(HupaConstants constants) {
- this.constants = constants;
+
sendButton = new EnableButton(constants.sendButton());
backButton = new EnableHyperlink(constants.backButton(),"");
- final VerticalPanel mPanel = new VerticalPanel();
- mPanel.setWidth("100%");
- mPanel.setSpacing(5);
-
- detailGrid.setWidth("100%");
- detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
- detailGrid.setText(0, 0, constants.headerFrom() + ":");
- detailGrid.setText(1, 0, constants.headerTo() + ":");
- detailGrid.setText(2, 0, constants.headerCc() + ":");
- detailGrid.setText(3, 0, constants.headerBcc() + ":");
- detailGrid.setText(4, 0, constants.headerSubject() + ":");
- detailGrid.setText(5, 0, constants.attachments() + ":");
- detailGrid.setWidget(0, 1, from);
- detailGrid.setWidget(1, 1, to);
- detailGrid.setWidget(2, 1, cc);
- detailGrid.setWidget(3, 1, bcc);
- detailGrid.setWidget(4, 1, subject);
+ headers = new MessageHeaders(constants);
+ loading = new Loading(constants.loading());
- detailGrid.getCellFormatter().setStyleName(0,0,"label");
- detailGrid.getCellFormatter().setStyleName(0,1,"value");
- detailGrid.getCellFormatter().setStyleName(1,0,"label");
- detailGrid.getCellFormatter().setStyleName(1,1,"value");
- detailGrid.getCellFormatter().setStyleName(2,0,"label");
- detailGrid.getCellFormatter().setStyleName(2,1,"value");
- detailGrid.getCellFormatter().setStyleName(3,0,"label");
- detailGrid.getCellFormatter().setStyleName(3,1,"value");
- detailGrid.getCellFormatter().setStyleName(4,0,"label");
- detailGrid.getCellFormatter().setStyleName(4,1,"value");
- detailGrid.getCellFormatter().setStyleName(5,0,"label");
- detailGrid.getCellFormatter().setStyleName(5,1,"value");
-
- detailGrid.getCellFormatter().setWidth(0, 0, "100px");
- detailGrid.getCellFormatter().setWidth(1, 0, "100px");
- detailGrid.getCellFormatter().setWidth(2, 0, "100px");
- detailGrid.getCellFormatter().setWidth(3, 0, "100px");
- detailGrid.getCellFormatter().setWidth(4, 0, "100px");
- detailGrid.getCellFormatter().setWidth(5, 0, "100px");
-
- from.setWidth("100%");
- cc.setWidth("100%");
- bcc.setWidth("100%");
- to.setWidth("100%");
-
- subject.setWidth("100%");
-
- editor.setWidth("100%");
- editor.setHeight("400px");
-
- mPanel.add(detailGrid);
-
- HorizontalPanel buttonBar = new HorizontalPanel();
- buttonBar.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
- buttonBar.setWidth("100%");
- buttonBar.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
- buttonBar.add(sendButton);
- buttonBar.add(sendProgress);
- buttonBar.add(backButton);
- buttonBar.setCellHorizontalAlignment(backButton, HorizontalPanel.ALIGN_RIGHT);
-
- mPanel.add(buttonBar);
-
- mPanel.add(editor);
- initWidget(mPanel);
+ BaseUploadStatus uploadStatus = new BaseUploadStatus();
+ uploadStatus.setCancelConfiguration(IUploadStatus.GMAIL_CANCEL_CFG);
+ uploader = new MultiUploader(uploadStatus);
+ uploader.setServletPath(GWT.getModuleBaseURL() + SConsts.SERVLET_UPLOAD);
+ uploader.avoidRepeatFiles(true);
+ uploader.setI18Constants(constants);
+ sendContainer.addStyleName(HupaCSS.C_msgsend_container);
+
+ buttonsBar.add(sendButton);
+ buttonsBar.add(loading);
+ buttonsBar.add(backButton);
+
+ sendContainer.add(headers);
+ sendContainer.add(buttonsBar);
+ sendContainer.add(editor);
+ loading.hide();
+
+ initWidget(sendContainer);
}
/*
@@ -154,11 +118,11 @@
*/
public void setLoading(boolean load) {
if (load) {
- sendProgress.show();
+ loading.show();
sendButton.setEnabled(false);
backButton.setEnabled(false);
} else {
- sendProgress.hide();
+ loading.hide();
sendButton.setEnabled(true);
backButton.setEnabled(true);
}
@@ -229,22 +193,6 @@
return uploader;
}
- /* (non-Javadoc)
- * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#resetUploader()
- */
- public void resetUploader() {
- if (uploader != null && uploader.isAttached())
- uploader.removeFromParent();
-
- BaseUploadStatus uploadStatus = new BaseUploadStatus();
- uploadStatus.setCancelConfiguration(IUploadStatus.GMAIL_CANCEL_CFG);
- uploader = new MultiUploader(uploadStatus);
- uploader.setServletPath(GWT.getModuleBaseURL() + SConsts.SERVLET_UPLOAD);
- uploader.avoidRepeatFiles(true);
- uploader.setI18Constants(constants);
-
- detailGrid.setWidget(5, 1, uploader);
- }
/*
* (non-Javadoc)
@@ -262,7 +210,18 @@
return backButton;
}
+ /* (non-Javadoc)
+ * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getMessageHTML()
+ */
public HasHTML getMessageHTML() {
return editor;
}
+
+ /* (non-Javadoc)
+ * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#refresh()
+ */
+ public void refresh() {
+ headers.setValues(from, to, cc, bcc, subject, uploader);
+ }
+
}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/CommandsBar.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/CommandsBar.java?rev=896114&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/CommandsBar.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/CommandsBar.java Tue Jan 5 16:21:24 2010
@@ -0,0 +1,71 @@
+package org.apache.hupa.client.widgets;
+
+import org.apache.hupa.client.HupaCSS;
+import org.apache.hupa.widgets.ui.Loading;
+import org.cobogw.gwt.user.client.ui.Button;
+import org.cobogw.gwt.user.client.ui.ButtonBar;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * A panel with three parts,
+ * left has a button bar
+ * right has a bunch of links
+ * center has a loading widget
+ */
+public class CommandsBar extends Composite {
+
+ Grid buttonPanel = new Grid(1, 3);
+ ButtonBar buttonBarLeft = new ButtonBar();
+ ButtonBar buttonBarRight = new ButtonBar();
+
+ public CommandsBar() {
+
+ buttonPanel.addStyleName(HupaCSS.C_commands_bar);
+ buttonBarLeft.addStyleName(HupaCSS.C_buttons);
+ buttonBarRight.addStyleName(HupaCSS.C_buttons);
+
+ buttonPanel.setWidget(0, 0, buttonBarLeft);
+ buttonPanel.setWidget(0, 2, buttonBarRight);
+
+ buttonPanel.getCellFormatter().setWidth(0, 1, "100%");
+ buttonPanel.getCellFormatter().setHorizontalAlignment(0, 1, HasHorizontalAlignment.ALIGN_CENTER);
+ buttonPanel.getCellFormatter().setHorizontalAlignment(0, 2, HasHorizontalAlignment.ALIGN_LEFT);
+
+ initWidget(buttonPanel);
+ }
+
+ public void add(Widget w) {
+ if (w instanceof Button) {
+ addLeft(w);
+ } else if ( w instanceof Loading) {
+ buttonPanel.setWidget(0, 1, w);
+ } else {
+ addRight(w);
+ }
+ }
+
+ public void addLeft(Widget w) {
+ buttonBarLeft.add(w);
+ }
+
+ public void addRight(Widget w) {
+ buttonBarRight.add(w);
+ }
+
+ public void clear() {
+ buttonBarLeft.clear();
+ buttonBarRight.clear();
+ buttonPanel.setText(0, 1, "");
+ }
+
+ public boolean remove(Widget w) {
+ return false;
+ }
+
+
+
+}
Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MessageHeaders.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MessageHeaders.java?rev=896114&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MessageHeaders.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MessageHeaders.java Tue Jan 5 16:21:24 2010
@@ -0,0 +1,67 @@
+package org.apache.hupa.client.widgets;
+
+import org.apache.hupa.client.HupaCSS;
+import org.apache.hupa.client.HupaConstants;
+
+import com.google.gwt.gen2.table.override.client.FlexTable;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * A panel which displays the headers of a message.
+ */
+public class MessageHeaders extends Composite {
+
+ private FlexTable detailGrid = new FlexTable();
+ private String headerNames[];
+ private int rowCounter = 0;
+
+ public MessageHeaders (HupaConstants constants) {
+ headerNames = new String[] {
+ constants.headerFrom(),
+ constants.headerTo(),
+ constants.headerCc(),
+ constants.headerBcc(),
+ constants.headerSubject(),
+ constants.attachments(),
+ "nothing"
+ };
+ detailGrid.setWidth("100%");
+ detailGrid.addStyleName(HupaCSS.C_msg_headers);
+ initWidget(detailGrid);
+ }
+
+ public void setValues(Widget from, Widget to, Widget cc, Widget bcc, Widget subject, Widget attachments) {
+ addValues(from, to, cc, bcc, subject, attachments);
+ }
+
+ private void addValues(Widget...widgets) {
+ detailGrid.clearAll();
+ rowCounter = 0;
+ for (int i=0; i<widgets.length; i++)
+ addRow(headerNames[i], widgets[i]);
+ }
+
+ private void addRow(String name, Widget widget) {
+ if (widget == null)
+ return;
+
+ if (widget instanceof TextBox){
+ widget.setWidth("100%");
+ } else if (widget instanceof HasText) {
+ if (((HasText)widget).getText().isEmpty())
+ return;
+ } else if (widget instanceof Panel) {
+ if (((Panel)widget).iterator().hasNext() == false)
+ return;
+ }
+ detailGrid.setText(rowCounter, 0, name + ":");
+ detailGrid.setWidget(rowCounter, 1, widget);
+ detailGrid.getCellFormatter().setStyleName(rowCounter, 0, "label");
+ detailGrid.getCellFormatter().setStyleName(rowCounter, 1, "value");
+ rowCounter ++;
+ }
+}
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java Tue Jan 5 16:21:24 2010
@@ -1,12 +1,13 @@
package org.apache.hupa.client.widgets;
+import org.apache.hupa.client.HupaCSS;
+
import com.google.gwt.user.client.ui.DialogBox;
public class MyDialogBox extends DialogBox implements HasDialog{
- public static final String C_dialog = "hupa-dialog-box";
public MyDialogBox () {
super();
- super.addStyleName(C_dialog);
+ super.addStyleName(HupaCSS.C_dialog);
}
}
Modified: james/hupa/trunk/client/war/Hupa.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/war/Hupa.css?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/war/Hupa.css (original)
+++ james/hupa/trunk/client/war/Hupa.css Tue Jan 5 16:21:24 2010
@@ -29,6 +29,7 @@
background: url(images/ajax-loader.gif) no-repeat;
padding-left: 25px;
width: 100px;
+ height: 14px;
white-space: nowrap;
margin-top: 5px;
margin-left: auto;
@@ -38,9 +39,15 @@
}
/************[ widget: EnableHyperLink ]*********/
-.hupa-hyperlink {
+.gwt-Hyperlink {
+ color: #0d0eb0;
+ text-decoration: underline;
+ cursor: pointer;
}
-div.gwt-Hyperlink {
+.hupa-hyperlink .gwt-Hyperlink-disabled {
+ color: #8d8d8d;
+}
+div.gwt-Hyperlink, div.gwt-Anchor {
padding-left: 4px;
}
@@ -93,9 +100,7 @@
font-weight: bold;
}
.hupa-menu-button {
- margin-right: 20px;
- text-decoration: underline;
- cursor: pointer;
+ margin-right: 15px;
}
div.hupa-header {
color: #C5D9FF;
@@ -162,24 +167,27 @@
margin-left: 5px;
}
+/************[ widget: CommandsBar ]*********/
+.hupa-commands-bar {
+ width: 100%;
+ padding: 5px 4px 5px 4px;
+ background-color: #deeeff;
+}
+
/************[ view: IMAPMessageListView ]*******************/
-.hupa-msglist, .hupa-msg-top-bar, .hupa-msg-bottom-bar, .hupa-msgtable {
+.hupa-msglist, .hupa-msg-top-bar, .hupa-msgtable {
width: 100%;
}
.hupa-msg-top-bar {
padding: 10px 4px 10px 4px;
background-color: #C3D9FF;
}
-.hupa-msg-bottom-bar {
- padding: 5px 4px 5px 4px;
- background-color: #deeeff;
-}
.hupa-msgtable-row {
- text-align: left;
- vertical-align: top;
- padding: 0px 10px 0px 10px;
- cursor: pointer;
+ text-align: left;
+ vertical-align: top;
+ padding: 0px 10px 0px 10px;
+ cursor: pointer;
}
.hupa-msgtable-unseen {
font-weight: bold;
@@ -194,13 +202,13 @@
width: 150px;
}
-.hupa-buttons td {
- padding: 2px;
-}
.hupa-buttons div {
white-space: nowrap;
vertical-align: middle;
}
+.hupa-buttons .gwt-Hyperlink {
+ padding-left: 6px;
+}
.gwt-ListBox, .gwt-SuggestBox {
background-color: #d8ecfd;
@@ -211,17 +219,31 @@
font-size: 10px;
}
-
-
-/************[ view: MessageSendView IMAPMessageView ]*******************/
-/* re-factor unfinished */
-.hupa-IMAPMessageWidget-Header td.label {
+/************[ widget: MessageHeaders ]*******************/
+table.hupa-msg-headers {
+ background-color: #C3D9FF;
+}
+.hupa-msg-headers td.label {
width: 175px;
text-align: right;
font-weight: bold;
padding-right: 5px;
}
+/************[ view: IMAPMessageView ]*******************/
+table.hupa-msgview {
+ width: 100%;
+}
+div.hupa-msgview-content {
+ padding: 20px;
+}
+
+/************[ view: MessageSendView ]*******************/
+table.hupa-msgsend {
+ width: 100%;
+}
+
+
/************************************************************************/
/*** Non re-factored stuff ***/
.cbg-ButtonContent {
@@ -236,18 +258,7 @@
border: 1pt solid red;
}
-.hupa-IMAPMessageWidget-Header {
- border: 1pt solid silver;
- text-align: left;
- background-color: #C3D9FF;
-}
-
-.hupa-IMAPMessageWidget-ButtonBar {
- border-bottom: 1pt solid silver;
- padding-left: 5px;
- padding-bottom: 5px;
-}
.gwt-ScrollTable .dataTable td {
Modified: james/hupa/trunk/client/war/Hupa.html
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/war/Hupa.html?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/client/war/Hupa.html (original)
+++ james/hupa/trunk/client/war/Hupa.html Tue Jan 5 16:21:24 2010
@@ -9,6 +9,7 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+
<title>Hupa webmail</title>
<!-- define loading style early -->
Added: james/hupa/trunk/client/war/favicon.ico
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/war/favicon.ico?rev=896114&view=auto
==============================================================================
Binary file - no diff available.
Propchange: james/hupa/trunk/client/war/favicon.ico
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: james/hupa/trunk/pom.xml
URL: http://svn.apache.org/viewvc/james/hupa/trunk/pom.xml?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/pom.xml (original)
+++ james/hupa/trunk/pom.xml Tue Jan 5 16:21:24 2010
@@ -133,7 +133,7 @@
</pluginRepositories>
<properties>
- <gwtVersion>1.7.0</gwtVersion>
+ <gwtVersion>2.0.0</gwtVersion>
</properties>
<build>
@@ -324,7 +324,7 @@
<dependency>
<groupId>gwtupload</groupId>
<artifactId>gwtupload</artifactId>
- <version>0.5.3</version>
+ <version>0.5.6</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
@@ -366,4 +366,4 @@
</dependency>
</dependencies>
</dependencyManagement>
-</project>
\ No newline at end of file
+</project>
Added: james/hupa/trunk/war
URL: http://svn.apache.org/viewvc/james/hupa/trunk/war?rev=896114&view=auto
==============================================================================
--- james/hupa/trunk/war (added)
+++ james/hupa/trunk/war Tue Jan 5 16:21:24 2010
@@ -0,0 +1 @@
+link client/war
\ No newline at end of file
Propchange: james/hupa/trunk/war
------------------------------------------------------------------------------
svn:special = *
Added: james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/WidgetsCSS.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/WidgetsCSS.java?rev=896114&view=auto
==============================================================================
--- james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/WidgetsCSS.java (added)
+++ james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/WidgetsCSS.java Tue Jan 5 16:21:24 2010
@@ -0,0 +1,9 @@
+package org.apache.hupa.widgets;
+
+public class WidgetsCSS {
+
+ public static final String C_hyperlink = "hupa-hyperlink";
+ public static final String C_loading = "hupa-loading";
+ public static String C_hupa_rnd_container = "hupa-rounded";
+
+}
Modified: james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/editor/Editor.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/editor/Editor.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/editor/Editor.java (original)
+++ james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/editor/Editor.java Tue Jan 5 16:21:24 2010
@@ -35,7 +35,7 @@
area.ensureDebugId("hupa-editor-area");
// Note: rich-area is created in an iframe, so Hupa's style sheets
// are not available, unless we inject them to the generated iframe
- area.setSize("100%", "20em");
+ area.setSize("100%", "200em");
Toolbar toolbar = new Toolbar(area);
toolbar.ensureDebugId("hupa-editor-toolbar");
Modified: james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java (original)
+++ james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java Tue Jan 5 16:21:24 2010
@@ -20,6 +20,8 @@
package org.apache.hupa.widgets.ui;
+import org.apache.hupa.widgets.WidgetsCSS;
+
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.HandlerRegistration;
@@ -32,15 +34,24 @@
/**
* Hyperlink which can get enabled/disabled.
- *
+ *
+ * CSS rules:
+ * <pre>
+ .hupa-hyperlink .gwt-Hyperlink {
+ color: #0d0eb0;
+ text-decoration: underline;
+ cursor: default;
+ }
+ .hupa-hyperlink .gwt-Hyperlink-disabled {
+ color: #8d8d8d;
+ }
+ * </pre>
*/
public class EnableHyperlink extends Composite implements HasClickHandlers,HasHTML,HasText, HasEnable{
- public static final String C_hyperlink = "hupa-hyperlink";
private SimplePanel panel = new SimplePanel();
private Hyperlink link;
private HTML html;
-
public EnableHyperlink(String text, String historyToken) {
this(text,false,historyToken);
}
@@ -50,8 +61,9 @@
link = new Hyperlink(text,asHTML,historyToken);
html = new HTML();
- panel.setStyleName(C_hyperlink);
+ panel.setStyleName(WidgetsCSS.C_hyperlink);
html.setStyleName(link.getStyleName());
+ html.addStyleDependentName("disabled");
if (asHTML) {
html.setHTML(text);
@@ -59,11 +71,6 @@
html.setText(text);
}
- // mimic hyperlink
- html.getElement().getStyle().setProperty("textDecoration", "underline");
-
- // use color code to workaround for https://issues.apache.org/jira/browse/HUPA-27
- html.getElement().getStyle().setProperty("color", "#8d8d8d");
panel.setWidget(link);
initWidget(panel);
}
Modified: james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/Loading.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/Loading.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/Loading.java (original)
+++ james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/Loading.java Tue Jan 5 16:21:24 2010
@@ -19,6 +19,8 @@
package org.apache.hupa.widgets.ui;
+import org.apache.hupa.widgets.WidgetsCSS;
+
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
@@ -28,11 +30,9 @@
*/
public class Loading extends Composite {
- public static final String C_loading = "hupa-loading";
-
public Loading(String loadingMsg) {
initWidget(new HTML(loadingMsg));
- addStyleName(C_loading);
+ addStyleName(WidgetsCSS.C_loading);
}
public Loading() {
Modified: james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/impl/RndPanelGeneratorImpl.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/impl/RndPanelGeneratorImpl.java?rev=896114&r1=896113&r2=896114&view=diff
==============================================================================
--- james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/impl/RndPanelGeneratorImpl.java (original)
+++ james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/impl/RndPanelGeneratorImpl.java Tue Jan 5 16:21:24 2010
@@ -19,6 +19,8 @@
package org.apache.hupa.widgets.ui.impl;
+import org.apache.hupa.widgets.WidgetsCSS;
+
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Panel;
@@ -38,10 +40,8 @@
*/
public class RndPanelGeneratorImpl implements RndPanelGenerator {
- public static String C_hupa_rnd_container = "hupa-rounded";
-
public Panel roundPanel(Panel panel) {
- panel.addStyleName(C_hupa_rnd_container);
+ panel.addStyleName(WidgetsCSS.C_hupa_rnd_container);
return panel;
}
@@ -50,7 +50,7 @@
@Override
public void setStyleName(String style) {
super.setStyleName(style);
- super.addStyleName(C_hupa_rnd_container);
+ super.addStyleName(WidgetsCSS.C_hupa_rnd_container);
}
};
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org