Author: norman
Date: Sat Aug 8 20:20:49 2009
New Revision: 802445
URL: http://svn.apache.org/viewvc?rev=802445&view=rev
Log:
Remove custom table impl
Move selection store to presenter
Removed:
labs/hupa/src/main/java/org/apache/hupa/client/events/
labs/hupa/src/main/java/org/apache/hupa/client/widgets/MyFixedWidthGrid.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/widgets/PagingScrollToolTipTable.java
labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=802445&r1=802444&r2=802445&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
Sat Aug 8 20:20:49 2009
@@ -20,6 +20,7 @@
package org.apache.hupa.client.mvp;
import java.util.ArrayList;
+import java.util.Iterator;
import net.customware.gwt.dispatch.client.DispatchAsync;
import net.customware.gwt.presenter.client.EventBus;
@@ -29,9 +30,6 @@
import net.customware.gwt.presenter.client.widget.WidgetPresenter;
import org.apache.hupa.client.MyAsyncCallback;
-import org.apache.hupa.client.events.ClickEvent;
-import org.apache.hupa.client.events.ClickHandler;
-import org.apache.hupa.client.events.HasClickHandlers;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.IMAPMessage;
import org.apache.hupa.shared.data.User;
@@ -46,19 +44,26 @@
import org.apache.hupa.shared.rpc.DeleteMessage;
import org.apache.hupa.shared.rpc.DeleteMessageResult;
+import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.gen2.table.event.client.HasPageLoadHandlers;
import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers;
+import com.google.gwt.gen2.table.event.client.RowSelectionEvent;
+import com.google.gwt.gen2.table.event.client.RowSelectionHandler;
+import com.google.gwt.gen2.table.event.client.TableEvent.Row;
+import com.google.gwt.user.client.ui.SourcesTableEvents;
+import com.google.gwt.user.client.ui.TableListener;
import com.google.inject.Inject;
+...@suppresswarnings("deprecation")
public class IMAPMessageListPresenter extends
WidgetPresenter<IMAPMessageListPresenter.Display>{
public interface Display extends WidgetDisplay{
public HasRowSelectionHandlers getDataTableSelection();
public HasPageLoadHandlers getDataTableLoad();
- public HasClickHandlers getDataTableClick();
- public com.google.gwt.event.dom.client.HasClickHandlers
getNewClick();
- public ArrayList<Long> getSelectedMessagesUids();
- public com.google.gwt.event.dom.client.HasClickHandlers
getDeleteClick();
+ public void addTableListner(TableListener listener) ;
+ public HasClickHandlers getNewClick();
+ public IMAPMessage getData(int rowIndex);
+ public HasClickHandlers getDeleteClick();
public void reloadData(User user, IMAPFolder folder,String
searchValue);
public void removeMessages(ArrayList<Long> uids);
public void reset();
@@ -69,6 +74,7 @@
private String searchValue;
private DispatchAsync dispatcher;
public final static Place PLACE = new Place("IMAPMessageList");
+ private ArrayList<IMAPMessage> selectedMessages = new
ArrayList<IMAPMessage>();
@Inject
public IMAPMessageListPresenter(IMAPMessageListPresenter.Display
display,EventBus bus,DispatchAsync dispatcher) {
@@ -112,19 +118,35 @@
});
- display.getDataTableClick().addClickHandler(new
ClickHandler<IMAPMessage>() {
+ display.addTableListner(new TableListener() {
- public void onClick(ClickEvent<IMAPMessage> event) {
- if (event.getCell() >=1) {
- eventBus.fireEvent(new
ExpandMessageEvent(user,folder,event.getRowValue()));
- }
+ public void onCellClicked(SourcesTableEvents sender,
int row,
+ int cell) {
+
+ IMAPMessage message = display.getData(row);
+ eventBus.fireEvent(new
ExpandMessageEvent(user,folder,message));
}
-
+
});
+ display.getDataTableSelection().addRowSelectionHandler(new
RowSelectionHandler() {
+
+ public void onRowSelection(RowSelectionEvent event) {
+
+ Iterator<Row> rowIt =
event.getSelectedRows().iterator();
+ while(rowIt.hasNext()) {
+
selectedMessages.add(display.getData(rowIt.next().getRowIndex()));
+ }
+ Iterator<Row> deselectedRowIt =
event.getDeselectedRows().iterator();
+ while(deselectedRowIt.hasNext()) {
+
selectedMessages.remove(display.getData(deselectedRowIt.next().getRowIndex()));
+ }
+ }
+
+ });
display.getDeleteClick().addClickHandler(new
com.google.gwt.event.dom.client.ClickHandler() {
public void
onClick(com.google.gwt.event.dom.client.ClickEvent event) {
- dispatcher.execute(new
DeleteMessage(user.getSessionId(),folder,display.getSelectedMessagesUids()),
new MyAsyncCallback<DeleteMessageResult>(eventBus,user) {
+ dispatcher.execute(new
DeleteMessage(user.getSessionId(),folder,getSelectedMessageUids()), new
MyAsyncCallback<DeleteMessageResult>(eventBus,user) {
public void
onSuccess(DeleteMessageResult result) {
display.removeMessages(result.getMessageUids());
@@ -164,5 +186,13 @@
}
+ private ArrayList<Long> getSelectedMessageUids() {
+ ArrayList<Long> l = new ArrayList<Long>();
+ for (int i = 0; i < selectedMessages.size();i++) {
+ l.add(selectedMessages.get(i).getUid());
+ }
+ return l;
+ }
+
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=802445&r1=802444&r2=802445&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
Sat Aug 8 20:20:49 2009
@@ -30,9 +30,6 @@
import org.apache.hupa.client.HupaConstants;
import org.apache.hupa.client.bundles.MyPagingOptionImages;
import org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display;
-import org.apache.hupa.client.widgets.MyFixedWidthGrid;
-import org.apache.hupa.client.widgets.PagingScrollToolTipTable;
-import org.apache.hupa.client.widgets.ToolTipProvider;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.IMAPMessage;
import org.apache.hupa.shared.data.User;
@@ -54,8 +51,10 @@
import com.google.gwt.gen2.table.client.ColumnDefinition;
import com.google.gwt.gen2.table.client.DefaultTableDefinition;
import com.google.gwt.gen2.table.client.FixedWidthFlexTable;
+import com.google.gwt.gen2.table.client.FixedWidthGrid;
import com.google.gwt.gen2.table.client.FixedWidthGridBulkRenderer;
import com.google.gwt.gen2.table.client.PagingOptions;
+import com.google.gwt.gen2.table.client.PagingScrollTable;
import com.google.gwt.gen2.table.client.TableDefinition;
import com.google.gwt.gen2.table.client.TableModel;
import com.google.gwt.gen2.table.client.TableModelHelper;
@@ -73,19 +72,19 @@
import com.google.gwt.gen2.table.event.client.PageLoadHandler;
import com.google.gwt.gen2.table.event.client.RowSelectionEvent;
import com.google.gwt.gen2.table.event.client.RowSelectionHandler;
-import com.google.gwt.gen2.table.event.client.TableEvent.Row;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TableListener;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
+...@suppresswarnings("deprecation")
public class IMAPMessageListView extends Composite implements Display{
private HupaConstants constants = GWT.create(HupaConstants.class);
@@ -94,10 +93,9 @@
private IMAPFolder folder;
private String searchValue;
- private PagingScrollToolTipTable<IMAPMessage> mailTable;
+ private PagingScrollTable<IMAPMessage> mailTable;
private EventBus bus;
- private MyFixedWidthGrid<IMAPMessage> dataTable = createDataTable();
- private ArrayList<Long> selectedUids = new ArrayList<Long>();
+ private FixedWidthGrid dataTable = createDataTable();
private Button deleteMailButton = new
Button(constants.deleteMailButton());
private Button newMailButton = new Button(constants.newMailButton());
@@ -113,10 +111,10 @@
VerticalPanel vPanel = new VerticalPanel();
- mailTable = new PagingScrollToolTipTable<IMAPMessage>(
+ mailTable = new PagingScrollTable<IMAPMessage>(
new IMAPMessageTableModel(), dataTable,
createHeaderTable(),
- createTableDefinitation(), new
IMAPMessageToolTipProvider());
+ createTableDefinitation());
mailTable.setPageSize(20);
@@ -154,7 +152,17 @@
mailTable.getDataTable().setCellSpacing(0);
mailTable.setSortPolicy(SortPolicy.DISABLED);
-
+ dataTable.addRowSelectionHandler(new RowSelectionHandler() {
+
+ public void onRowSelection(RowSelectionEvent event) {
+ if
(mailTable.getDataTable().getSelectedRows().size() == 0) {
+ deleteMailButton.setEnabled(false);
+ } else {
+ deleteMailButton.setEnabled(true);
+ }
+ }
+
+ });
// This is only needed as workaround in pagingscrolltable
// See
http://code.google.com/p/google-web-toolkit-incubator/wiki/PagingScrollTable
mailTable.setWidth(Window.getClientWidth() -150 -30+"px");
@@ -175,30 +183,7 @@
navigatorBar.add(deleteMailButton);
- // Add handler to get a list of selected rows
- mailTable.getDataTable().addRowSelectionHandler(new
RowSelectionHandler() {
- public void onRowSelection(RowSelectionEvent event) {
- if
(mailTable.getDataTable().getSelectedRows().size() == 0) {
- deleteMailButton.setEnabled(false);
- } else {
- deleteMailButton.setEnabled(true);
- }
- Iterator<Row> rowIt =
event.getSelectedRows().iterator();
- while(rowIt.hasNext()) {
- long uid =
mailTable.getRowValue(rowIt.next().getRowIndex()).getUid();
- selectedUids.add(uid);
- }
- Iterator<Row> deselectedRowIt =
event.getDeselectedRows().iterator();
- while(deselectedRowIt.hasNext()) {
- long uid =
mailTable.getRowValue(deselectedRowIt.next().getRowIndex()).getUid();
- selectedUids.remove(uid);
- }
-
- }
-
- });
-
pageBox.addItem("20");
pageBox.addItem("50");
pageBox.addItem("100");
@@ -225,22 +210,6 @@
vPanel.add(mailTable);
initWidget(vPanel);
}
-
- private class IMAPMessageToolTipProvider implements
ToolTipProvider<IMAPMessage> {
-
- public Widget getToolTipContent(IMAPMessage rowValue, int cell,
int row) {
- switch (cell) {
- case 2:
- return new
Label(rowValue.getHeader().getFrom());
- case 3:
- return new
Label(rowValue.getHeader().getSubject());
- default:
- break;
- }
- return null;
- }
-
- }
private TableDefinition<IMAPMessage> createTableDefinitation() {
DefaultTableDefinition<IMAPMessage> def = new
DefaultTableDefinition<IMAPMessage>(createColumnDefinitionList());
@@ -257,8 +226,8 @@
/**
* @return the newly created data table.
*/
- private MyFixedWidthGrid<IMAPMessage> createDataTable() {
- MyFixedWidthGrid<IMAPMessage> dataTable = new
MyFixedWidthGrid<IMAPMessage>();
+ private FixedWidthGrid createDataTable() {
+ FixedWidthGrid dataTable = new FixedWidthGrid();
dataTable.setSelectionPolicy(SelectionPolicy.CHECKBOX);
return dataTable;
}
@@ -307,7 +276,6 @@
date.setColumnTruncatable(true);
date.setCellRenderer(new CellRenderer<IMAPMessage, Date>() {
- @SuppressWarnings("deprecation")
public void renderRowValue(IMAPMessage rowValue,
ColumnDefinition<IMAPMessage, Date>
columnDef,
AbstractCellView<IMAPMessage> view) {
@@ -471,8 +439,9 @@
return mailTable;
}
- public org.apache.hupa.client.events.HasClickHandlers
getDataTableClick() {
- return dataTable;
+ @SuppressWarnings("deprecation")
+ public void addTableListner(TableListener listener) {
+ dataTable.addTableListener(listener);
}
public Widget asWidget() {
@@ -489,9 +458,6 @@
}
- public ArrayList<Long> getSelectedMessagesUids() {
- return selectedUids;
- }
public HasClickHandlers getDeleteClick() {
return deleteMailButton;
@@ -529,4 +495,8 @@
}
+
+ public IMAPMessage getData(int rowIndex) {
+ return mailTable.getRowValue(rowIndex);
+ }
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java?rev=802445&r1=802444&r2=802445&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
Sat Aug 8 20:20:49 2009
@@ -280,7 +280,12 @@
} else if (type.equals(Type.REPLY) ||
type.equals(Type.REPLY_ALL)) {
display.getSubjectText().setText("Re: " +
oldmessage.getHeader().getSubject());
- display.getMessageText().setText("\n\n-------- Message
-------\n" + oldmessage.getMessageContent().getText());
+ String oldMessageText =
oldmessage.getMessageContent().getText();
+ StringBuffer messageText = new
StringBuffer("\n\n-------- Message -------\n");
+ if ( oldMessageText != null) {
+ messageText.append(oldMessageText);
+ }
+
display.getMessageText().setText(messageText.toString());
if (type.equals(Type.REPLY)) {
display.getToText().setText(oldmessage.getHeader().getFrom());
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/widgets/PagingScrollToolTipTable.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/PagingScrollToolTipTable.java?rev=802445&r1=802444&r2=802445&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/client/widgets/PagingScrollToolTipTable.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/client/widgets/PagingScrollToolTipTable.java
Sat Aug 8 20:20:49 2009
@@ -19,11 +19,8 @@
package org.apache.hupa.client.widgets;
-import org.apache.hupa.client.events.ClickEvent;
-import org.apache.hupa.client.events.ClickHandler;
-import org.apache.hupa.shared.data.IMAPMessage;
-
import com.google.gwt.gen2.table.client.FixedWidthFlexTable;
+import com.google.gwt.gen2.table.client.FixedWidthGrid;
import com.google.gwt.gen2.table.client.PagingScrollTable;
import com.google.gwt.gen2.table.client.TableDefinition;
import com.google.gwt.gen2.table.client.TableModel;
@@ -40,7 +37,7 @@
private Timer toolTipTimer;
private ToolTip tTip;
public PagingScrollToolTipTable(TableModel<E> tableModel,
- MyFixedWidthGrid<E> dataTable, FixedWidthFlexTable
headerTable,
+ FixedWidthGrid dataTable, FixedWidthFlexTable
headerTable,
TableDefinition<E> tableDefinition,ToolTipProvider<E>
tooltipProvider) {
super(tableModel, dataTable, headerTable, tableDefinition);
this.toolTipProvider = tooltipProvider;
@@ -75,13 +72,15 @@
}
});
- dataTable.addClickHandler(new ClickHandler<IMAPMessage>() {
+
+ /*dataTable.addClickHandler(new ClickHandler<IMAPMessage>() {
public void onClick(ClickEvent<IMAPMessage> event) {
hideToolTip();
}
});
+ */
}
private void hideToolTip() {
@@ -94,7 +93,7 @@
}
public PagingScrollToolTipTable(TableModel<E> tableModel,
- MyFixedWidthGrid<E> dataTable, FixedWidthFlexTable
headerTable,
+ FixedWidthGrid dataTable, FixedWidthFlexTable
headerTable,
TableDefinition<E> tableDefinition) {
this(tableModel, dataTable, headerTable, tableDefinition,null);
}
Modified: labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java?rev=802445&r1=802444&r2=802445&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java Sat
Aug 8 20:20:49 2009
@@ -63,5 +63,8 @@
return false;
}
-
+ public int hashCode() {
+ Long l = new Long(getUid());
+ return l.intValue() * 16;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]