Author: dongxu Date: Thu Sep 12 04:41:05 2013 New Revision: 1522376 URL: http://svn.apache.org/r1522376 Log: try to make messages list better for user experience
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.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/FoldersTreeViewModel.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java?rev=1522376&r1=1522375&r2=1522376&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java Thu Sep 12 04:41:05 2013 @@ -320,6 +320,7 @@ public class MessageListActivity extends public void start(AcceptsOneWidget container, final EventBus eventBus) { container.setWidget(display.asWidget()); bindTo(eventBus); + display.refresh(); // this.registerHandler(display.getGrid().addCellPreviewHandler(new Handler<Message>() { // @Override // public void onCellPreview(final CellPreviewEvent<Message> event) { 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=1522376&r1=1522375&r2=1522376&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:41:05 2013 @@ -34,6 +34,7 @@ import org.apache.hupa.client.place.Fold import org.apache.hupa.client.HupaController; <<<<<<< HEAD <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> fixed issue#61; add loading to mark, unmark. ======= import org.apache.hupa.client.place.ComposePlace; @@ -42,6 +43,9 @@ import org.apache.hupa.client.place.Mail >>>>>>> fixed issue#59, coupled with fixing some UI refreshment issues in >>>>>>> toolsbar ======= >>>>>>> fixed issue#57 - really disable the tools in toolbar +======= +import org.apache.hupa.client.place.FolderPlace; +>>>>>>> try to make messages list better for user experience import org.apache.hupa.client.rf.SetFlagRequest; import org.apache.hupa.client.ui.MessagesCellTable; import org.apache.hupa.client.ui.ToolBarView.Parameters; @@ -184,6 +188,7 @@ import org.apache.hupa.shared.domain.Gen import org.apache.hupa.shared.domain.ImapFolder; import org.apache.hupa.shared.domain.Message; import org.apache.hupa.shared.domain.SetFlagAction; +import org.apache.hupa.shared.events.RefreshUnreadEvent; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -200,7 +205,6 @@ public class ToolBarActivity extends App @Inject private Displayable display; @Inject private MessagesCellTable table; @Inject private MessageListActivity.Displayable messagesDisplay; - @Inject private FolderListActivity.Displayable folderListDisplay; @Inject private HupaController hupaController; private String folderName; @@ -208,6 +212,9 @@ public class ToolBarActivity extends App public void start(AcceptsOneWidget container, EventBus eventBus) { container.setWidget(display.asWidget()); bindTo(eventBus); + if(pc.getWhere() instanceof FolderPlace){ + display.enableAllTools(false); + } } public ToolBarActivity with(String folder) { @@ -242,11 +249,11 @@ public class ToolBarActivity extends App display.getPopup().hide(); } })); - registerHandler(display.getDeleteReg()); - registerHandler(display.getMarkReg()); - registerHandler(display.getReplyReg()); - registerHandler(display.getReplyAllReg()); - registerHandler(display.getForwardReg()); +// registerHandler(display.getDeleteReg()); +// registerHandler(display.getMarkReg()); +// registerHandler(display.getReplyReg()); +// registerHandler(display.getReplyAllReg()); +// registerHandler(display.getForwardReg()); } protected void toMarkRead(boolean read) { @@ -268,7 +275,7 @@ public class ToolBarActivity extends App req.set(action).fire(new Receiver<GenericResult>() { @Override public void onSuccess(GenericResult response) { - folderListDisplay.refresh(); + eventBus.fireEvent(new RefreshUnreadEvent()); messagesDisplay.refresh(); hupaController.hideTopLoading(); } 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=1522376&r1=1522375&r2=1522376&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:41:05 2013 @@ -28,12 +28,12 @@ import org.apache.hupa.client.activity.T import org.apache.hupa.client.place.FolderPlace; import org.apache.hupa.client.rf.HupaRequestFactory; import org.apache.hupa.shared.domain.ImapFolder; +import org.apache.hupa.shared.events.RefreshUnreadEvent; +import org.apache.hupa.shared.events.RefreshUnreadEventHandler; import com.google.gwt.cell.client.AbstractCell; -import com.google.gwt.cell.client.ValueUpdater; -import com.google.gwt.dom.client.Element; -import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.shared.EventBus; import com.google.gwt.place.shared.PlaceController; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.view.client.AsyncDataProvider; @@ -56,7 +56,7 @@ public class FoldersTreeViewModel implem @Inject private MessageListActivity.Displayable msgListDisplay; @Inject - public FoldersTreeViewModel() { + public FoldersTreeViewModel(final EventBus eventBus) { selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @SuppressWarnings("unchecked") @Override @@ -68,6 +68,13 @@ public class FoldersTreeViewModel implem msgListDisplay.refresh(); } }); + + eventBus.addHandler(RefreshUnreadEvent.TYPE, new RefreshUnreadEventHandler() { + @Override + public void onRefreshEvent(RefreshUnreadEvent event) { + refresh(); + } + }); } private final SingleSelectionModel<ImapFolder> selectionModel = new SingleSelectionModel<ImapFolder>( Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java?rev=1522376&r1=1522375&r2=1522376&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessageListView.java Thu Sep 12 04:41:05 2013 @@ -101,6 +101,7 @@ import com.google.gwt.user.client.ui.Com import com.google.gwt.user.client.ui.SimpleLayoutPanel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.view.client.MultiSelectionModel; +import com.google.gwt.view.client.NoSelectionModel; import com.google.inject.Inject; public class MessageListView extends Composite implements MessageListActivity.Displayable { @@ -260,6 +261,8 @@ public class MessageListView extends Com List<Long> selecteds = new ArrayList<Long>(); MultiSelectionModel<? super Message> selectionModel = (MultiSelectionModel<? super Message>) grid .getSelectionModel(); + NoSelectionModel<? super Message> noSelectionModel = (NoSelectionModel<? super Message>)grid.getSelectionModel(); + selectionModel.getSelectedSet(); for (Message msg : getSelectedMessages()) { selecteds.add(msg.getUid()); Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java?rev=1522376&r1=1522375&r2=1522376&view=diff ============================================================================== --- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java (original) +++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java Thu Sep 12 04:41:05 2013 @@ -519,6 +519,7 @@ import org.apache.hupa.shared.domain.Get import org.apache.hupa.shared.domain.GetMessageDetailsResult; import org.apache.hupa.shared.domain.ImapFolder; import org.apache.hupa.shared.domain.Message; +import org.apache.hupa.shared.events.RefreshUnreadEvent; import com.google.gwt.cell.client.CheckboxCell; import com.google.gwt.cell.client.DateCell; @@ -528,6 +529,8 @@ import com.google.gwt.cell.client.TextCe import com.google.gwt.cell.client.ValueUpdater; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceController; @@ -550,7 +553,6 @@ import com.google.web.bindery.requestfac public class MessagesCellTable extends DataGrid<Message> { public static final int PAGE_SIZE = 25; - @Inject ToolBarActivity.Displayable toolBarDisplay; private HupaImageBundle imageBundle; CheckboxColumn checkboxCol = new CheckboxColumn(); @@ -643,15 +645,19 @@ public class MessagesCellTable extends D private String folderName; private String searchValue; @Inject protected HupaController hc; + @Inject EventBus eventBus; + +// private HandlerRegistration selectionManagerReg = addCellPreviewHandler(DefaultSelectionEventManager +// .<Message> createCheckboxManager(0)); + @Inject - public MessagesCellTable(final HupaImageBundle imageBundle, final HupaConstants constants, - final PlaceController pc, - final HupaRequestFactory rf) { + public MessagesCellTable(final HupaImageBundle imageBundle, final HupaConstants constants, + final PlaceController pc, final HupaRequestFactory rf) { super(PAGE_SIZE, Resources.INSTANCE); this.pc = pc; this.rf = rf; this.imageBundle = imageBundle; - + CheckboxCell headerCheckbox = new CheckboxCell(); ImageResourceCell headerAttached = new ImageResourceCell(); Header<Boolean> header = new Header<Boolean>(headerCheckbox) { @@ -691,7 +697,8 @@ public class MessagesCellTable extends D // redraw(); setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED); setAutoHeaderRefreshDisabled(true); -// setSelectionModel(selectionModel, DefaultSelectionEventManager.<Message> createCheckboxManager(0)); + // setSelectionModel(selectionModel, + // DefaultSelectionEventManager.<Message> createCheckboxManager(0)); setSelectionModel(noSelectionModel, DefaultSelectionEventManager.<Message> createBlacklistManager(0)); @@ -711,10 +718,14 @@ public class MessagesCellTable extends D public void onSuccess(GetMessageDetailsResult response) { // display.getGrid().getSelectionModel().setSelected(event.getValue(), // true); -// noSelectionModel.setSelected(message, true); + // noSelectionModel.setSelected(message, true); toolBar.enableAllTools(true); + ToolBarView.Parameters p = new ToolBarView.Parameters(null, folderName, message, response + .getMessageDetails()); + toolBar.setParameters(p); MessagePlace place = new MessagePlace(folderName + AbstractPlace.SPLITTER + message.getUid()); refresh(); + eventBus.fireEvent(new RefreshUnreadEvent()); pc.goTo(place); } @@ -724,7 +735,7 @@ public class MessagesCellTable extends D // log.log(Level.SEVERE, error.getMessage()); // TODO write the error message to // status bar. - // toolBar.enableAllTools(false); + toolBar.enableAllTools(false); throw new RuntimeException(error.getMessage()); } } @@ -740,16 +751,16 @@ public class MessagesCellTable extends D refresh(); } - private String parseFolderName(final PlaceController pc) { Place place = pc.getWhere(); - if(place instanceof FolderPlace){ - folderName= ((FolderPlace)place).getToken(); - }else if (place instanceof MessagePlace){ - folderName = ((MessagePlace)place).getTokenWrapper().getFolder(); + if (place instanceof FolderPlace) { + folderName = ((FolderPlace) place).getToken(); + } else if (place instanceof MessagePlace) { + folderName = ((MessagePlace) place).getTokenWrapper().getFolder(); } return folderName; } + Message message; // the object selected by selectionModel public String getMessageStyle(Message row) { @@ -780,10 +791,10 @@ public class MessagesCellTable extends D selectionModel.setSelected(object, value); int size = selectionModel.getSelectedSet().size(); if (size >= 1) { - toolBarDisplay.enableDealingTools(true); - toolBarDisplay.enableSendingTools(false); + toolBar.enableDealingTools(true); + toolBar.enableSendingTools(false); } else { - toolBarDisplay.enableAllTools(false); + toolBar.enableAllTools(false); } } }); 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=1522376&r1=1522375&r2=1522376&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:41:05 2013 @@ -557,9 +557,12 @@ public class ToolBarView extends Composi replyAllReg = replyAll.addClickHandler(replyAllHandler); forwardReg = forward.addClickHandler(forwardHandler); <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> fixed issue#57 - really disable the tools in toolbar ======= enableAllTools(false); +======= +>>>>>>> try to make messages list better for user experience } @UiHandler("compose") @@ -683,6 +686,9 @@ public class ToolBarView extends Composi replyReg.removeHandler(); replyAllReg.removeHandler(); forwardReg.removeHandler(); + replyReg = null; + replyAllReg = null; + forwardReg = null; } } @@ -692,7 +698,12 @@ public class ToolBarView extends Composi forwardGroup.removeStyleName(style.disabledButton()); replyAllTip.removeStyleName(style.disabledButton()); forwardTip.removeStyleName(style.disabledButton()); - + + if(replyReg != null){ + replyReg.removeHandler(); + replyAllReg.removeHandler(); + forwardReg.removeHandler(); + } replyReg = reply.addClickHandler(replyHandler); replyAllReg = replyAll.addClickHandler(replyAllHandler); forwardReg = forward.addClickHandler(forwardHandler); @@ -708,6 +719,8 @@ public class ToolBarView extends Composi if(deleteReg != null){ deleteReg.removeHandler(); markReg.removeHandler(); + deleteReg = null; + markReg = null; } } @@ -718,9 +731,17 @@ public class ToolBarView extends Composi ======= mark.removeStyleName(style.disabledButton()); <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> 1.do not select the message which is being focused on. 2.create the >>>>>>> mark popup menu ======= +======= + + if(markReg != null){ + deleteReg.removeHandler(); + markReg.removeHandler(); + } +>>>>>>> try to make messages list better for user experience markReg = mark.addClickHandler(markHandler); deleteReg = delete.addClickHandler(deleteHandler); >>>>>>> fixed issue#57 - really disable the tools in toolbar --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org