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 do...@apache.org on 2013/09/12 06:41:05 UTC
svn commit: r1522376 - in
/james/hupa/trunk/client/src/main/java/org/apache/hupa/client:
activity/MessageListActivity.java activity/ToolBarActivity.java
ui/FoldersTreeViewModel.java ui/MessageListView.java
ui/MessagesCellTable.java ui/ToolBarView.java
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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org