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