Author: dongxu
Date: Thu Sep 12 04:13:20 2013
New Revision: 1522312

URL: http://svn.apache.org/r1522312
Log:
beautify the multiuploader

Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
    james/hupa/trunk/client/src/main/webapp/styles.css

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java?rev=1522312&r1=1522311&r2=1522312&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ComposeActivity.java
 Thu Sep 12 04:13:20 2013
@@ -63,6 +63,7 @@ import com.google.gwt.activity.shared.Ac
 =======
 >>>>>>> make attachments sending work as expected
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.hupa.client.place.ComposePlace;
@@ -130,6 +131,7 @@ public class ComposeActivity extends App
        @Inject private Displayable display;
        private List<MessageAttachment> attachments = new 
ArrayList<MessageAttachment>();
 <<<<<<< HEAD
+<<<<<<< HEAD
        private Type type = Type.NEW;
 <<<<<<< HEAD
 >>>>>>> make send text mail work excellently
@@ -138,6 +140,9 @@ public class ComposeActivity extends App
 >>>>>>> add user label, yet issue46 occur
 =======
        private User user;
+=======
+       static private User user;
+>>>>>>> beautify the multiuploader
        private ComposePlace place;
 >>>>>>> coping with reply and forward sending message
 
@@ -402,21 +407,19 @@ public class ComposeActivity extends App
 =======
 >>>>>>> add user label, yet issue46 occur
                bindTo(eventBus);
-
-               display.getFromList().addItem("demo");
-               if (user != null) {// FIXME why user would be a null
+               if (user != null)
                        display.getFromList().addItem(user.getName());
-               }
        }
 
        private void bindTo(EventBus eventBus) {
                eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+                       @Override
                        public void onLogin(LoginEvent event) {
                                user = event.getUser();
                        }
                });
                
registerHandler(display.getSendClick().addClickHandler(sendClickHandler));
-               
+
                registerHandler(display.getCcClick().addClickHandler(new 
ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
@@ -526,9 +529,10 @@ public class ComposeActivity extends App
 
        private OnCancelUploaderHandler onCancelUploadHandler = new 
OnCancelUploaderHandler() {
                public void onCancel(IUploader uploader) {
-                       for (MessageAttachment attachment : attachments) {
+                       for (Iterator<MessageAttachment> i = 
attachments.iterator(); i.hasNext();) {
+                               MessageAttachment attachment = i.next();
                                if 
(attachment.getName().equals(uploader.getInputName()))
-                                       attachments.remove(attachment);
+                                       i.remove();
                        }
                }
        };

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java?rev=1522312&r1=1522311&r2=1522312&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
 Thu Sep 12 04:13:20 2013
@@ -157,6 +157,8 @@ import org.apache.hupa.shared.events.Exp
 import org.apache.hupa.shared.events.ExpandMessageEventHandler;
 import org.apache.hupa.shared.events.LoadMessagesEvent;
 import org.apache.hupa.shared.events.LoadMessagesEventHandler;
+import org.apache.hupa.shared.events.LoginEvent;
+import org.apache.hupa.shared.events.LoginEventHandler;
 
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
@@ -180,15 +182,22 @@ public class ToolBarActivity extends App
 >>>>>>> integrate all of the views to their corresponding activities and 
 >>>>>>> mappers
 =======
        private void bindTo(EventBus eventBus) {
+               eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+                       @Override
+                       public void onLogin(LoginEvent e) {
+                               display.setParameters(new 
Parameters(e.getUser(), null, null, null));
+                       }
+               });
                eventBus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
-                       public void onLoadMessagesEvent(LoadMessagesEvent 
loadMessagesEvent) {
+                       public void onLoadMessagesEvent(LoadMessagesEvent e) {
                                display.disableMessageTools();
+                               display.setParameters(new 
Parameters(e.getUser(), e.getFolder(), null, null));
                        }
                });
                eventBus.addHandler(ExpandMessageEvent.TYPE, new 
ExpandMessageEventHandler() {
                        public void onExpandMessage(ExpandMessageEvent event) {
                                display.enableMessageTools();
-                               display.setParameters(new 
Parameters(event.getFolder(), event.getMessage(), null));
+                               display.setParameters(new 
Parameters(event.getUser(), event.getFolder(), event.getMessage(), null));
                        }
                });
        }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.java?rev=1522312&r1=1522311&r2=1522312&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.java
 Thu Sep 12 04:13:20 2013
@@ -32,10 +32,7 @@ import org.apache.hupa.widgets.editor.Ed
 import org.apache.hupa.widgets.ui.MultiValueSuggestArea;
 
 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.event.shared.HandlerRegistration;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
@@ -99,12 +96,10 @@ import com.google.gwt.user.client.ui.Anc
 >>>>>>> composing composing panel
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.DecoratorPanel;
 import com.google.gwt.user.client.ui.DockLayoutPanel;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
 import com.google.gwt.user.client.ui.FlowPanel;
-import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.HTMLTable.RowFormatter;
 import com.google.gwt.user.client.ui.HasHTML;
 import com.google.gwt.user.client.ui.HasText;
@@ -197,8 +192,8 @@ public class ComposeView extends Composi
        private void createEditor(HupaConstants constants) {
                editor = new Editor();
                BaseUploadStatus uploadStatus = new BaseUploadStatus();
-               
uploadStatus.setCancelConfiguration(IUploadStatus.GMAIL_CANCEL_CFG);
-               uploader = new MultiUploader(FileInputType.CUSTOM.with(button), 
uploadStatus);
+               
uploadStatus.setCancelConfiguration(IUploadStatus.DEFAULT_CANCEL_CFG);
+               uploader = new MultiUploader(FileInputType.ANCHOR, 
uploadStatus);
                uploader.setServletPath(GWT.getModuleBaseURL() + 
SConsts.SERVLET_UPLOAD);
                uploader.avoidRepeatFiles(true);
                uploader.setI18Constants(constants);
@@ -295,28 +290,12 @@ public class ComposeView extends Composi
                addFollowupButton.addStyleName(style.add());
                addOpsPanel.add(addCcButton);
                addOpsPanel.add(addBccButton);
-               addOpsPanel.add(addReplyButton);
-               addOpsPanel.add(addFollowupButton);
+               // TODO the other operations
+               // addOpsPanel.add(addReplyButton);
+               // addOpsPanel.add(addFollowupButton);
                return addOpsPanel;
        }
 
-       class MyFancyLookingButton extends Composite implements 
HasClickHandlers {
-               DecoratorPanel widget = new DecoratorPanel();
-
-               public MyFancyLookingButton() {
-                       DecoratorPanel widget = new DecoratorPanel();
-                       initWidget(widget);
-                       widget.setWidget(new HTML("Choose ..."));
-                       widget.setSize("100px", "50px");
-               }
-
-               public HandlerRegistration addClickHandler(ClickHandler 
handler) {
-                       return addDomHandler(handler, ClickEvent.getType());
-               }
-       }
-
-       MyFancyLookingButton button = new MyFancyLookingButton();
-
        HasText emptyText = new HasText() {
                @Override
                public String getText() {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml?rev=1522312&r1=1522311&r2=1522312&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ComposeView.ui.xml
 Thu Sep 12 04:13:20 2013
@@ -273,6 +273,12 @@
                        overflow: hidden;
                        text-overflow: ellipsis;
                }
+               
+               .uploader{
+       
+}
+.uploaderCancel{}
+.uploaderFilename{}
        </ui:style>
        <g:DockLayoutPanel ui:field="thisPanel" unit="PX"
                addStyleNames="{style.box}">

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java?rev=1522312&r1=1522311&r2=1522312&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FoldersTreeViewModel.java
 Thu Sep 12 04:13:20 2013
@@ -23,12 +23,17 @@ import java.util.List;
 
 import org.apache.hupa.client.place.MailFolderPlace;
 import org.apache.hupa.client.rf.HupaRequestFactory;
+import org.apache.hupa.shared.data.ImapFolderImpl;
 import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.shared.domain.User;
 import org.apache.hupa.shared.events.LoadMessagesEvent;
+import org.apache.hupa.shared.events.LoginEvent;
+import org.apache.hupa.shared.events.LoginEventHandler;
 
 import com.google.gwt.cell.client.AbstractCell;
 import com.google.gwt.cell.client.ValueUpdater;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.event.dom.client.ClickEvent;
@@ -48,28 +53,30 @@ import com.google.web.bindery.requestfac
 public class FoldersTreeViewModel implements TreeViewModel {
 
        @Inject private HupaRequestFactory rf;
-       @Inject private EventBus eventBus;
        @Inject private PlaceController placeController;
        // @Inject private Provider<MailFolderPlace> folderPlaceProvider;
        private User user;
        private ImapFolder currentFolder;
+       private EventBus eventBus;
 
-       public FoldersTreeViewModel() {
-
-               selectionModel
-                               .addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
-                                       @SuppressWarnings("unchecked")
-                                       @Override
-                                       public void 
onSelectionChange(SelectionChangeEvent event) {
-                                               
SingleSelectionModel<ImapFolder> selectionModel = 
(SingleSelectionModel<ImapFolder>) event
-                                                               .getSource();
-                                               currentFolder = 
selectionModel.getSelectedObject();
-                                               eventBus.fireEvent(new 
LoadMessagesEvent(user,
-                                                               
selectionModel.getSelectedObject()));
-                                               placeController.goTo(new 
MailFolderPlace(selectionModel
-                                                               
.getSelectedObject().getFullName()));
-                                       }
-                               });
+       @Inject
+       public FoldersTreeViewModel(final EventBus eventBus) {
+               this.eventBus = eventBus;
+               selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
+                       @SuppressWarnings("unchecked")
+                       @Override
+                       public void onSelectionChange(SelectionChangeEvent 
event) {
+                               SingleSelectionModel<ImapFolder> selectionModel 
= (SingleSelectionModel<ImapFolder>) event.getSource();
+                               currentFolder = 
selectionModel.getSelectedObject();
+                               eventBus.fireEvent(new LoadMessagesEvent(user, 
selectionModel.getSelectedObject()));
+                               placeController.goTo(new 
MailFolderPlace(selectionModel.getSelectedObject().getFullName()));
+                       }
+               });
+               eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+                       public void onLogin(LoginEvent event) {
+                               user = event.getUser();
+                       }
+               });
        }
 
        private final SingleSelectionModel<ImapFolder> selectionModel = new 
SingleSelectionModel<ImapFolder>(
@@ -86,34 +93,30 @@ public class FoldersTreeViewModel implem
         */
        @Override
        public <T> NodeInfo<?> getNodeInfo(T value) {
-               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider(
-                               (ImapFolder) value), new 
AbstractCell<ImapFolder>(ClickEvent
-                               .getType().getName()) {
-                       // TODO different images for each folder
-                       @Override
-                       public void render(Context context, ImapFolder value,
-                                       SafeHtmlBuilder sb) {
-                               if (value != null) {
-                                       sb.appendEscaped(value.getName());
-                               }
-                       }
+               return new DefaultNodeInfo<ImapFolder>(new 
ImapFolderListDataProvider((ImapFolder) value),
+                               new 
AbstractCell<ImapFolder>(ClickEvent.getType().getName()) {
+                                       // TODO different images for each folder
+                                       @Override
+                                       public void render(Context context, 
ImapFolder value, SafeHtmlBuilder sb) {
+                                               if (value != null) {
+                                                       
sb.appendEscaped(value.getName());
+                                               }
+                                       }
 
-                       // TODO is this a click event?
-                       @Override
-                       public void onBrowserEvent(Context context, Element 
parent,
-                                       ImapFolder value, NativeEvent event,
-                                       ValueUpdater<ImapFolder> valueUpdater) {
-                               if (clickSameFolder(value)) {
-                                       eventBus.fireEvent(new 
LoadMessagesEvent(user, value));
-                                       placeController.goTo(new 
MailFolderPlace(value
-                                                       .getFullName()));
-                               }
-                       }
+                                       // TODO is this a click event?
+                                       @Override
+                                       public void onBrowserEvent(Context 
context, Element parent, ImapFolder value, NativeEvent event,
+                                                       
ValueUpdater<ImapFolder> valueUpdater) {
+                                               if (clickSameFolder(value)) {
+                                                       eventBus.fireEvent(new 
LoadMessagesEvent(user, value));
+                                                       
placeController.goTo(new MailFolderPlace(value.getFullName()));
+                                               }
+                                       }
 
-                       private boolean clickSameFolder(ImapFolder value) {
-                               return value == currentFolder;
-                       }
-               }, selectionModel, null);
+                                       private boolean 
clickSameFolder(ImapFolder value) {
+                                               return value == currentFolder;
+                                       }
+                               }, selectionModel, null);
        }
 
        class ImapFolderListDataProvider extends AsyncDataProvider<ImapFolder> {
@@ -131,25 +134,24 @@ public class FoldersTreeViewModel implem
 
                @Override
                protected void onRangeChanged(HasData<ImapFolder> display) {
-                       rf.fetchFoldersRequest().fetch(folder)
-                                       .fire(new Receiver<List<ImapFolder>>() {
-                                               @Override
-                                               public void 
onSuccess(List<ImapFolder> response) {
-                                                       if (response == null || 
response.size() == 0) {
-                                                               
updateRowCount(-1, true);
-                                                       } else {
-                                                               
updateRowData(0, response);
-                                                       }
-                                               }
+                       rf.fetchFoldersRequest().fetch(folder).fire(new 
Receiver<List<ImapFolder>>() {
+                               @Override
+                               public void onSuccess(List<ImapFolder> 
response) {
+                                       if (response == null || response.size() 
== 0) {
+                                               updateRowCount(-1, true);
+                                       } else {
+                                               updateRowData(0, response);
+                                       }
+                               }
 
-                                               @Override
-                                               public void 
onFailure(ServerFailure error) {
-                                                       if (error.isFatal()) {
-                                                               throw new 
RuntimeException(error.getMessage());
-                                                       }
-                                               }
+                               @Override
+                               public void onFailure(ServerFailure error) {
+                                       if (error.isFatal()) {
+                                               throw new 
RuntimeException(error.getMessage());
+                                       }
+                               }
 
-                                       });
+                       });
 
                }
 

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java?rev=1522312&r1=1522311&r2=1522312&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
 Thu Sep 12 04:13:20 2013
@@ -34,6 +34,7 @@ import org.apache.hupa.shared.events.Del
 import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.shared.domain.Message;
 import org.apache.hupa.shared.domain.MessageDetails;
+<<<<<<< HEAD
 >>>>>>> coping with reply and forward sending message
 
 import com.google.gwt.core.client.GWT;
@@ -44,6 +45,9 @@ import com.google.gwt.event.dom.client.C
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
 =======
+=======
+import org.apache.hupa.shared.domain.User;
+>>>>>>> beautify the multiuploader
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
@@ -371,7 +375,7 @@ public class ToolBarView extends Composi
        @UiField Style style;
 
        private Parameters parameters;
-       
+
        public Parameters getParameters() {
                return parameters;
        }
@@ -382,16 +386,26 @@ public class ToolBarView extends Composi
        }
 
        public static class Parameters {
+               private User user;
                private ImapFolder folder;
                private Message oldmessage;
                private MessageDetails oldDetails;
 
-               public Parameters(ImapFolder folder, Message oldmessage, 
MessageDetails oldDetails) {
+               public Parameters(User user, ImapFolder folder, Message 
oldmessage, MessageDetails oldDetails) {
+                       this.user = user;
                        this.folder = folder;
                        this.oldmessage = oldmessage;
                        this.oldDetails = oldDetails;
                }
 
+               public User getUser() {
+                       return user;
+               }
+
+               public void setUser(User user) {
+                       this.user = user;
+               }
+
                public ImapFolder getFolder() {
                        return folder;
                }
@@ -423,7 +437,7 @@ public class ToolBarView extends Composi
 
        @UiHandler("compose")
        void handleClick(ClickEvent e) {
-               placeController.goTo(new ComposePlace("new"));
+               placeController.goTo(new ComposePlace("new").with(parameters));
        }
 
        @UiHandler("reply")



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to