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:50:31 UTC
svn commit: r1522402 - in
/james/hupa/trunk/client/src/main/java/org/apache/hupa/client:
activity/ToolBarActivity.java ui/MessagesCellTable.java
Author: dongxu
Date: Thu Sep 12 04:50:31 2013
New Revision: 1522402
URL: http://svn.apache.org/r1522402
Log:
fixed issue#75 with our own CheckboxHeader and DataGrid.redrawHeaders method
Modified:
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/MessagesCellTable.java
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=1522402&r1=1522401&r2=1522402&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:50:31 2013
@@ -255,11 +255,6 @@ public class ToolBarActivity extends App
display.getPopup().hide();
}
}));
-// registerHandler(display.getDeleteReg());
-// registerHandler(display.getMarkReg());
-// registerHandler(display.getReplyReg());
-// registerHandler(display.getReplyAllReg());
-// registerHandler(display.getForwardReg());
}
protected void toMarkRead(boolean read) {
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=1522402&r1=1522401&r2=1522402&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:50:31 2013
@@ -516,6 +516,7 @@ import org.apache.hupa.shared.domain.Fet
import org.apache.hupa.shared.domain.ImapFolder;
import org.apache.hupa.shared.domain.Message;
+import com.google.gwt.cell.client.Cell.Context;
import com.google.gwt.cell.client.CheckboxCell;
import com.google.gwt.cell.client.DateCell;
import com.google.gwt.cell.client.FieldUpdater;
@@ -523,6 +524,9 @@ import com.google.gwt.cell.client.ImageR
import com.google.gwt.cell.client.TextCell;
import com.google.gwt.cell.client.ValueUpdater;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.InputElement;
+import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.i18n.client.DateTimeFormat;
@@ -544,6 +548,12 @@ import com.google.web.bindery.requestfac
public class MessagesCellTable extends DataGrid<Message> {
+ @Inject private ToolBarActivity.Displayable toolBar;
+ @Inject protected HupaController hc;
+ @Inject EventBus eventBus;
+ private String folderName;
+ private String searchValue;
+
public static final int PAGE_SIZE = 25;
private HupaImageBundle imageBundle;
@@ -633,12 +643,43 @@ public class MessagesCellTable extends D
}
}
+
+ public final class CheckboxHeader extends Header<Boolean> {
- @Inject private ToolBarActivity.Displayable toolBar;
- private String folderName;
- private String searchValue;
- @Inject protected HupaController hc;
- @Inject EventBus eventBus;
+ private final MultiSelectionModel<? super Message> selectionModel;
+ private final AsyncDataProvider<Message> provider;
+
+ public CheckboxHeader(MultiSelectionModel<? super Message> selectionModel,
+ AsyncDataProvider<Message> provider) {
+ super(new CheckboxCell());
+ this.selectionModel = selectionModel;
+ this.provider = provider;
+ }
+
+ @Override
+ public Boolean getValue() {
+ if(selectionModel == null || provider==null){
+ return false;
+ }
+ if(selectionModel.getSelectedSet().size() == 0 || provider.getDataDisplays().size() == 0){
+ return false;
+ }
+ boolean allItemsSelected = selectionModel.getSelectedSet().size() == provider.getDataDisplays().size();
+ return allItemsSelected;
+ }
+
+ @Override
+ public void onBrowserEvent(Context context, Element elem, NativeEvent event) {
+ InputElement input = elem.getFirstChild().cast();
+ Boolean isChecked = input.isChecked();
+ List<Message> displayedItems = MessagesCellTable.this.getVisibleItems();
+ for (Message element : displayedItems) {
+ selectionModel.setSelected(element, isChecked);
+ checkboxCol.getFieldUpdater().update(0, element, isChecked);
+ }
+ }
+
+ }
@Inject
public MessagesCellTable(final HupaImageBundle imageBundle, final HupaConstants constants,
@@ -672,7 +713,7 @@ public class MessagesCellTable extends D
}
});
- addColumn(checkboxCol, header);
+ addColumn(checkboxCol, new CheckboxHeader(selectionModel, dataProvider));
setColumnWidth(checkboxCol, 3, Unit.EM);
addColumn(fromCol, constants.mailTableFrom());
setColumnWidth(fromCol, 40, Unit.PCT);
@@ -808,6 +849,7 @@ public class MessagesCellTable extends D
}
public void refresh() {
dataProvider.refresh();
+ redrawHeaders();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org