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]

Reply via email to