Author: dongxu
Date: Thu Sep 12 03:15:02 2013
New Revision: 1522178

URL: http://svn.apache.org/r1522178
Log:
clean some code. Pager issue remain

Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.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/IMAPMessageListActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java?rev=1522178&r1=1522177&r2=1522178&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/IMAPMessageListActivity.java
 Thu Sep 12 03:15:02 2013
@@ -552,8 +552,11 @@ public class IMAPMessageListActivity ext
        private String searchValue;
        private User user;
        private ImapFolder folder;
+<<<<<<< HEAD
        private ShowMessageTableListener tableListener = new 
ShowMessageTableListener();
 >>>>>>> delete messages, make WestActivity Singleton
+=======
+>>>>>>> clean some code. Pager issue remain
 
        @Inject private Displayable display;
        @Inject private EventBus eventBus;
@@ -808,21 +811,6 @@ public class IMAPMessageListActivity ext
                                }
 
                        });
-               new 
HandlerRegistrationAdapter(display.getDataTableSelection().addRowSelectionHandler(
-                       new RowSelectionHandler() {
-                               public void onRowSelection(RowSelectionEvent 
event) {
-                                       if (event.getSelectedRows().size() == 
0) {
-                                               
display.getDeleteEnable().setEnabled(false);
-                                               
display.getMarkSeenEnable().setEnabled(false);
-                                               
display.getMarkUnseenEnable().setEnabled(false);
-                                       } else {
-                                               
display.getDeleteEnable().setEnabled(true);
-                                               
display.getMarkSeenEnable().setEnabled(true);
-                                               
display.getMarkUnseenEnable().setEnabled(true);
-                                       }
-                               }
-
-                       }));
                display.getRefreshClick().addClickHandler(new ClickHandler() {
 
                        public void onClick(ClickEvent event) {
@@ -831,14 +819,6 @@ public class IMAPMessageListActivity ext
                        }
 
                });
-               new 
HandlerRegistrationAdapter(display.getDataTablePageChange().addPageChangeHandler(new
 PageChangeHandler() {// TODO
-
-                               public void onPageChange(PageChangeEvent event) 
{
-                                       // firePresenterRevealedEvent(true);
-                                       // firePresenterChangedEvent();
-                               }
-
-                       }));
                display.getRowsPerPageChange().addChangeHandler(new 
ChangeHandler() {
 
                        public void onChange(ChangeEvent event) {
@@ -847,7 +827,7 @@ public class IMAPMessageListActivity ext
                        }
 
                });
-               display.addTableListener(tableListener);
+//             display.addTableListener(tableListener);
        }
 
        private void deleteMessages() {
@@ -1299,6 +1279,7 @@ public class IMAPMessageListActivity ext
                public void setExpandLoading(boolean expanding);
 
        }
+<<<<<<< HEAD
 
        private final class ShowMessageTableListener implements TableListener {
 
@@ -1321,4 +1302,6 @@ public class IMAPMessageListActivity ext
 
        }
 >>>>>>> delete messages, make WestActivity Singleton
+=======
+>>>>>>> clean some code. Pager issue remain
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java?rev=1522178&r1=1522177&r2=1522178&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/IMAPMessageListView.java
 Thu Sep 12 03:15:02 2013
@@ -21,6 +21,7 @@ package org.apache.hupa.client.ui;
 
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import java.util.List;
 import java.util.Set;
 =======
@@ -30,6 +31,8 @@ import java.util.List;
 >>>>>>> Change to new mvp framework - first step
 =======
 import java.util.ArrayList;
+=======
+>>>>>>> clean some code. Pager issue remain
 import java.util.Date;
 import java.util.List;
 >>>>>>> Change to new mvp framework - first step
@@ -75,19 +78,32 @@ import com.google.gwt.dom.client.Style.U
 >>>>>>> Change to new mvp framework - first step
 import org.apache.hupa.client.bundles.HupaImageBundle;
 import org.apache.hupa.client.dnd.PagingScrollTableRowDragController;
+import org.apache.hupa.client.rf.FetchMessagesRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
 import org.apache.hupa.client.widgets.CommandsBar;
 import org.apache.hupa.client.widgets.ConfirmDialogBox;
 import org.apache.hupa.client.widgets.DragRefetchPagingScrollTable;
-import 
org.apache.hupa.client.widgets.DragRefetchPagingScrollTable.DragHandlerFactory;
 import org.apache.hupa.client.widgets.EnableButton;
 import org.apache.hupa.client.widgets.HasDialog;
+import org.apache.hupa.shared.data.ImapFolderImpl;
 import org.apache.hupa.shared.data.MessageImpl;
 import org.apache.hupa.shared.data.MessageImpl.IMAPFlag;
+import org.apache.hupa.shared.domain.FetchMessagesAction;
+import org.apache.hupa.shared.domain.FetchMessagesResult;
 import org.apache.hupa.shared.domain.ImapFolder;
 import org.apache.hupa.shared.domain.Message;
+import org.apache.hupa.shared.domain.User;
 import org.apache.hupa.shared.events.DecreaseUnseenEvent;
 import org.apache.hupa.shared.events.ExpandMessageEvent;
+import org.apache.hupa.shared.events.FolderSelectionEvent;
+import org.apache.hupa.shared.events.FolderSelectionEventHandler;
+import org.apache.hupa.shared.events.LoadMessagesEvent;
+import org.apache.hupa.shared.events.LoadMessagesEventHandler;
+import org.apache.hupa.shared.events.LoginEvent;
+import org.apache.hupa.shared.events.LoginEventHandler;
+import org.apache.hupa.shared.events.LogoutEvent;
+import org.apache.hupa.shared.events.LogoutEventHandler;
+import org.apache.hupa.shared.events.MessagesReceivedEvent;
 import org.apache.hupa.widgets.ui.HasEnable;
 import org.apache.hupa.widgets.ui.Loading;
 import org.apache.hupa.widgets.ui.PagingOptions;
@@ -97,6 +113,7 @@ import org.cobogw.gwt.user.client.ui.But
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 >>>>>>> Change to new mvp framework - first step
 =======
 >>>>>>> Change to new mvp framework - first step
@@ -111,6 +128,11 @@ import com.google.gwt.core.client.Schedu
 >>>>>>> use CellTable to deal with MessageTableModel, even a few issues
 =======
 >>>>>>> fix the CellTable display
+=======
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
+>>>>>>> clean some code. Pager issue remain
 import com.google.gwt.event.dom.client.ChangeEvent;
 import com.google.gwt.event.dom.client.ChangeHandler;
 import com.google.gwt.event.dom.client.HasChangeHandlers;
@@ -774,17 +796,10 @@ import com.google.gwt.event.shared.Event
 =======
 >>>>>>> fix the CellTable display
 import com.google.gwt.gen2.table.client.AbstractColumnDefinition;
-import com.google.gwt.gen2.table.client.AbstractScrollTable.ColumnResizePolicy;
-import com.google.gwt.gen2.table.client.AbstractScrollTable.ResizePolicy;
-import com.google.gwt.gen2.table.client.AbstractScrollTable.ScrollPolicy;
-import com.google.gwt.gen2.table.client.AbstractScrollTable.SortPolicy;
 import com.google.gwt.gen2.table.client.CachedTableModel;
 import com.google.gwt.gen2.table.client.CellRenderer;
 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.MutableTableModel;
 import com.google.gwt.gen2.table.client.SelectionGrid.SelectionPolicy;
 import com.google.gwt.gen2.table.client.TableDefinition.AbstractCellView;
@@ -795,6 +810,7 @@ import com.google.gwt.gen2.table.event.c
 import com.google.gwt.gen2.table.event.client.PageLoadHandler;
 import com.google.gwt.gen2.table.event.client.RowCountChangeEvent;
 import com.google.gwt.gen2.table.event.client.RowCountChangeHandler;
+<<<<<<< HEAD
 import com.google.gwt.i18n.client.DateTimeFormat;
 <<<<<<< HEAD
 <<<<<<< HEAD
@@ -819,22 +835,30 @@ import com.google.gwt.user.cellview.clie
 =======
 import com.google.gwt.user.cellview.client.SimplePager;
 >>>>>>> fix the CellTable display
+=======
+import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
+import com.google.gwt.user.cellview.client.SimplePager;
+import com.google.gwt.user.cellview.client.SimplePager.TextLocation;
+>>>>>>> clean some code. Pager issue remain
 import com.google.gwt.user.client.ui.Anchor;
 >>>>>>> 
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.HTML;
 import com.google.gwt.user.client.ui.HasValue;
 import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.ListBox;
 import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
 import com.google.gwt.user.client.ui.SuggestBox;
 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.gwt.view.client.ListDataProvider;
+import com.google.gwt.view.client.RangeChangeEvent;
 import com.google.gwt.view.client.SelectionChangeEvent;
 import com.google.gwt.view.client.SingleSelectionModel;
 import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+import com.google.web.bindery.requestfactory.shared.ServerFailure;
 
 @SuppressWarnings("deprecation")
 <<<<<<< HEAD
@@ -1582,9 +1606,9 @@ public class IMAPMessageListView extends
        @SuppressWarnings("unused") private HupaMessages messages;
        private HupaImageBundle imageBundle;
 
-       private PagingOptions pagingBar;
-       private DragRefetchPagingScrollTable<Message> mailTable;
-       private CachedTableModel<Message> cTableModel;
+//     private PagingOptions pagingBar;
+//     private DragRefetchPagingScrollTable<Message> mailTable;
+//     private CachedTableModel<Message> cTableModel;
 
        private FixedWidthGrid dataTable = createDataTable();
        private EnableButton deleteMailButton;
@@ -1607,16 +1631,169 @@ public class IMAPMessageListView extends
        private SimplePager pager;
        private EventBus eventBus;
 
+       private User user;
+       private ImapFolder folder;
+       private String searchValue;
+       private HupaRequestFactory requestFactory;
+
+       private final SingleSelectionModel<Message> selectionModel = new 
SingleSelectionModel<Message>();
+       public void fetch(final int start) {
+               FetchMessagesRequest messagesRequest = 
requestFactory.messagesRequest();
+               FetchMessagesAction action = 
messagesRequest.create(FetchMessagesAction.class);
+               final ImapFolder folder1 = 
messagesRequest.create(ImapFolder.class);
+               folder1.setChildren(this.folder.getChildren());
+               folder1.setDelimiter(this.folder.getDelimiter());
+               folder1.setFullName(this.folder.getFullName());
+               folder1.setMessageCount(this.folder.getMessageCount());
+               folder1.setName(this.folder.getName());
+               folder1.setSubscribed(this.folder.getSubscribed());
+               
folder1.setUnseenMessageCount(this.folder.getUnseenMessageCount());
+               // FIXME cannot put setFolder to the first place
+               action.setOffset(table.getPageSize());
+               action.setFolder(folder1);
+               action.setSearchString(searchValue);
+               action.setStart(start);
+               messagesRequest.fetch(action).fire(new 
Receiver<FetchMessagesResult>() {
+
+                       @Override
+                       public void onFailure(ServerFailure error) {
+                               if (error.isFatal()) {
+                                       throw new 
RuntimeException(error.getMessage());
+                               }
+                       }
+                       @Override
+                       public void onSuccess(final FetchMessagesResult result) 
{
+                               assert result != null;
+                               folder.setMessageCount(result.getRealCount());
+                               
folder.setUnseenMessageCount(result.getRealUnreadCount());
+                               dataProvider.setList(result.getMessages());
+                               sortHandler =  new 
ListHandler<Message>(dataProvider.getList());
+
+//                     sortHandler.setComparator(addressColumn, new 
Comparator<Contact>() {
+//                       public int compare(Contact o1, Contact o2) {
+//                         return o1.address.compareTo(o2.address);
+//                       }
+//                     });
+                               table.addColumnSortHandler(sortHandler);
+                               table.setRowCount(result.getRealCount());
+                               if (result.getMessages() != null) {
+                                       table.setRowData(start + 
table.getPageSize(), result.getMessages());
+                               } else {
+                                       table.setRowData(start + 
table.getPageSize(), result.getMessages());
+                               }
+                               
+                   pager.setPageStart(start);
+                   if (start == 0 || !table.isRowCountExact()) {
+                       table.setRowCount(start + result.getMessages().size(), 
result.getMessages().size() < table.getPageSize());
+                   }
+//                             flush();
+                               // Notify presenter to update folder tree view
+                               eventBus.fireEvent(new 
MessagesReceivedEvent(folder1, result.getMessages()));
+                       }
+               });
+       }
+
+       private ListDataProvider<Message> dataProvider;
+    ListHandler<Message> sortHandler;
+
+
+       protected void refreshSelection() {
+               Message message = selectionModel.getSelectedObject();
+               if(message == null) return;
+               setExpandLoading(true);
+
+               if (message.getFlags().contains(MessageImpl.IMAPFlag.SEEN) == 
false) {
+                       // add flag, fire event and redraw
+                       message.getFlags().add(MessageImpl.IMAPFlag.SEEN);
+                       eventBus.fireEvent(new DecreaseUnseenEvent(user, 
folder, 1));
+
+                       redraw();
+
+               }
+               eventBus.fireEvent(new ExpandMessageEvent(user, folder, 
message));
+           selectionModel.setSelected(message, false);
+           
+    }
+       MessagesCellTable table;
+       private boolean pending;
        @Inject
        public IMAPMessageListView(final PagingScrollTableRowDragController 
controller,
                final MessageTableModel mTableModel, final HupaConstants 
constants, final HupaMessages messages,
-               final HupaImageBundle imageBundle, final EventBus eventBus, 
final HupaRequestFactory requestFactory,
+                final EventBus eventBus, final HupaRequestFactory 
requestFactory,
                final MessagesCellTable table) {
+               this.table = table;
+               this.eventBus = eventBus;
+               dataProvider = new ListDataProvider<Message>();
+               dataProvider.addDataDisplay(table);
+
+               table.setSelectionModel(selectionModel);
+           selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
+             @Override
+             public void onSelectionChange(SelectionChangeEvent event) {
+                refreshSelection();
+             }
+           });
+               this.requestFactory = requestFactory;
+               table.addRangeChangeHandler(new RangeChangeEvent.Handler() {
+                       @Override
+                       public void onRangeChange(RangeChangeEvent event) {
+                               fetch(event.getNewRange().getStart());
+                       }
+               });
+               // bind some Events
+               eventBus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
+
+                       public void onLoadMessagesEvent(LoadMessagesEvent 
loadMessagesEvent) {
+                               user = loadMessagesEvent.getUser();
+                               folder = loadMessagesEvent.getFolder();
+                               searchValue = 
loadMessagesEvent.getSearchValue();
+                               fetch(0);
+                               
+                       }
+               });
+               eventBus.addHandler(FolderSelectionEvent.TYPE, new 
FolderSelectionEventHandler() {
+
+                       public void onFolderSelectionEvent(FolderSelectionEvent 
event) {
+                               user = event.getUser();
+                               folder = event.getFolder();
+                               searchValue = null;
+                       }
+               });
+               eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+
+                       public void onLogin(LoginEvent event) {
+                               user = event.getUser();
+                               folder = new 
ImapFolderImpl(user.getSettings().getInboxFolderName());
+                               searchValue = null;
+                               if (!pending) {
+                                       pending = true;
+                                       Scheduler.get().scheduleFinally(new 
ScheduledCommand() {
+                                               @Override
+                                               public void execute() {
+                                                       pending = false;
+                                                       fetch(0);
+                                               }
+                                       });
+                               }
+                       }
+               });
+               eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
+
+                       public void onLogout(LogoutEvent logoutEvent) {
+                               user = null;
+                               folder = null;
+                               searchValue = null;
+                       }
+               });
+
+               
+               
                this.messages = messages;
                this.imageBundle = imageBundle;
                this.eventBus = eventBus;
-               pager = new SimplePager();
-               pager.setDisplay(table);
+
+           SimplePager.Resources pagerResources = 
GWT.create(SimplePager.Resources.class);
+           pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 
0, true);
 
                deleteMailButton = new 
EnableButton(constants.deleteMailButton());
                newMailButton = new Button(constants.newMailButton());
@@ -1628,44 +1805,10 @@ public class IMAPMessageListView extends
                refreshLink = new Anchor(constants.refresh());
                searchButton = new Button(constants.searchButton());
                loading = new Loading(constants.loading());
-               this.cTableModel = new CachedTableModel<Message>(mTableModel);
-               cTableModel.setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
-               mTableModel.addRowCountChangeHandler(new 
RowCountChangeHandler() {
-                       public void onRowCountChange(RowCountChangeEvent event) 
{
-                               cTableModel.setRowCount(event.getNewRowCount());
-                       }
-               });
 
                VerticalPanel msgListContainer = new VerticalPanel();
                msgListContainer.addStyleName(HupaCSS.C_msg_list_container);
-               mailTable = new 
DragRefetchPagingScrollTable<Message>(cTableModel, dataTable, new 
FixedWidthFlexTable(),
-                       createTableDefinitation(), controller, 1);
-               mailTable.setPageSize(20);
-               mailTable.setDragHandler(0, 30, new DragHandlerFactory() {
-                       public Widget createHandler() {
-                               return new 
Image(imageBundle.readyToMoveMailIcon());
-                       }
-               });
-
-               HTML emptyTable = new HTML(constants.emptyMailTable());
-               emptyTable.addStyleName(HupaCSS.C_msg_table_empty);
-               mailTable.setEmptyTableWidget(emptyTable);
-               FixedWidthGridBulkRenderer<Message> bulkRenderer = new 
FixedWidthGridBulkRenderer<Message>(
-                       mailTable.getDataTable(), mailTable);
-               mailTable.setBulkRenderer(bulkRenderer);
-               mailTable.addStyleName(HupaCSS.C_msg_table);
-               mailTable.setCellPadding(0);
-               mailTable.setResizePolicy(ResizePolicy.FILL_WIDTH);
-               mailTable.setColumnResizePolicy(ColumnResizePolicy.MULTI_CELL);
-               mailTable.setScrollPolicy(ScrollPolicy.DISABLED);
-               mailTable.addPageLoadHandler(onMessagePageLoadHandler);
-               mailTable.setPageSize(DEFAULT_MSG_PAGE_SIZE);
-               mailTable.getDataTable().setCellSpacing(0);
-               mailTable.setSortPolicy(SortPolicy.DISABLED);
 
-               mailTable.fillWidth();
-
-               pagingBar = new PagingOptions(mailTable, constants, loading);
 
                HorizontalPanel buttonBar = new HorizontalPanel();
                buttonBar.addStyleName(HupaCSS.C_buttons);
@@ -1682,15 +1825,6 @@ public class IMAPMessageListView extends
                markButtonBar.add(markUnSeenButton);
                buttonBar.add(markButtonBar);
                buttonBar.add(refreshLink);
-               pageBox.addItem("" + DEFAULT_MSG_PAGE_SIZE);
-               pageBox.addItem("" + (DEFAULT_MSG_PAGE_SIZE * 2));
-               pageBox.addItem("" + (DEFAULT_MSG_PAGE_SIZE * 4));
-               pageBox.addChangeHandler(new ChangeHandler() {
-                       public void onChange(ChangeEvent event) {
-                               if (pageBox.getSelectedIndex() > 0)
-                                       
mailTable.setPageSize(Integer.parseInt(pageBox.getItemText(pageBox.getSelectedIndex())));
-                       }
-               });
 
                HorizontalPanel searchPanel = new HorizontalPanel();
                searchPanel.addStyleName(HupaCSS.C_buttons);
@@ -1738,36 +1872,6 @@ public class IMAPMessageListView extends
                
confirmDeleteAllBox.setText(messages.confirmDeleteAllMessages());
                initWidget(msgListContainer);
        }
-       PageLoadHandler onMessagePageLoadHandler = new PageLoadHandler() {
-
-               public void onPageLoad(PageLoadEvent event) {
-
-                       for (int i = 0; i < 
mailTable.getDataTable().getRowCount(); i++) {
-                               
mailTable.getDataTable().getRowFormatter().setStyleName(i, 
HupaCSS.C_msg_table_row);
-                               Message msg = mailTable.getRowValue(i);
-                               if (msg != null) {
-                                       if 
(msg.getFlags().contains(IMAPFlag.SEEN) == false) {
-                                               
mailTable.getDataTable().getRowFormatter().addStyleName(i, 
HupaCSS.C_msg_table_unseen);
-                                       } else {
-                                               
mailTable.getDataTable().getRowFormatter().removeStyleName(i, 
HupaCSS.C_msg_table_seen);
-                                       }
-                               }
-                       }
-
-                       String nrows = String.valueOf(mailTable.getPageSize());
-                       for (int i = 0; i < pageBox.getItemCount(); i++) {
-                               if (nrows.equals(pageBox.getItemText(i)))
-                                       pageBox.setSelectedIndex(i);
-                       }
-               }
-
-       };
-
-       private DefaultTableDefinition<Message> createTableDefinitation() {
-               DefaultTableDefinition<Message> def = new 
DefaultTableDefinition<Message>(createColumnDefinitionList());
-
-               return def;
-       }
 
        /**
         * @return the newly created data table.
@@ -1778,93 +1882,7 @@ public class IMAPMessageListView extends
                return dataTable;
        }
 
-       /**
-        * Create a new List which holds all needed ColumnDefinitions
-        * 
-        */
-       private List<ColumnDefinition<Message, ?>> createColumnDefinitionList() 
{
-               List<ColumnDefinition<Message, ?>> cList = new 
ArrayList<ColumnDefinition<Message, ?>>();
-
-               FromColumnDefination from = new FromColumnDefination();
-               from.setCellRenderer(new WhiteSpaceCellRenderer<Message>());
-               from.setColumnTruncatable(true);
-               from.setPreferredColumnWidth(250);
-               from.setMinimumColumnWidth(150);
-               from.setMaximumColumnWidth(300);
-               cList.add(from);
-
-               SubjectColumnDefination subject = new SubjectColumnDefination();
-               subject.setCellRenderer(new WhiteSpaceCellRenderer<Message>());
-               subject.setColumnTruncatable(true);
-               subject.setPreferredColumnWidth(800);
-               subject.setMinimumColumnWidth(200);
-               cList.add(subject);
-
-               AttachmentColumnDefination attachment = new 
AttachmentColumnDefination();
-               attachment.setColumnTruncatable(false);
-               // display an image if the message contains an attachment
-               attachment.setCellRenderer(new CellRenderer<Message, Boolean>() 
{
-
-                       public void renderRowValue(Message rowValue, 
ColumnDefinition<Message, Boolean> columnDef,
-                               AbstractCellView<Message> view) {
-                               if (columnDef.getCellValue(rowValue)) {
-                                       view.setWidget(new 
Image(imageBundle.attachmentIcon()));
-                               } else {
-                                       view.setHTML("&nbsp");
-                               }
-
-                       }
-
-               });
-
-               attachment.setPreferredColumnWidth(20);
-               attachment.setMinimumColumnWidth(15);
-               attachment.setMaximumColumnWidth(25);
-               cList.add(attachment);
-
-               DateColumnDefination date = new DateColumnDefination();
-               date.setColumnTruncatable(true);
-               // set a special renderer for the date
-               date.setCellRenderer(new CellRenderer<Message, Date>() {
-
-                       public void renderRowValue(Message rowValue, 
ColumnDefinition<Message, Date> columnDef,
-                               AbstractCellView<Message> view) {
-                               DateTimeFormat dtformat;
-                               Date rDate = rowValue.getReceivedDate();
-                               int rYear = rDate.getYear();
-                               int rMonth = rDate.getMonth();
-                               int rDay = rDate.getDate();
-
-                               Date now = new Date();
-                               int nowYear = now.getYear();
-                               int nowMonth = now.getMonth();
-                               int nowDay = now.getDate();
-
-                               if (rYear < nowYear) {
-                                       dtformat = 
DateTimeFormat.getFormat("dd.MMM.yyyy");
-                               } else if (rMonth < nowMonth || (rMonth == 
nowMonth && rDay < nowDay)) {
-                                       dtformat = 
DateTimeFormat.getFormat("dd.MMM.");
-                               } else if (rDay == nowDay) {
-                                       dtformat = 
DateTimeFormat.getFormat("HH:mm");
-                               } else {
-
-                                       dtformat = 
DateTimeFormat.getFormat("dd.MMM.yyyy HH:mm");
-                               }
-
-                               view.setHTML(dtformat.format(rDate));
-                               
view.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
-                       }
-
-               });
-               date.setPreferredColumnWidth(100);
-               date.setMinimumColumnWidth(100);
-               date.setMaximumColumnWidth(150);
-
-               cList.add(date);
-
-               return cList;
-       }
-
+       
        /**
         * ColumnDefination which display if the message contains an attachment
         * 
@@ -1946,11 +1964,10 @@ public class IMAPMessageListView extends
         * getDataTableSelection()
         */
        public HasRowSelectionHandlers getDataTableSelection() {
-               return mailTable.getDataTable();
+               return null;
        }
 
        public void reloadData() {
-               mailTable.reloadPage();
        }
 
        /*
@@ -1960,9 +1977,6 @@ public class IMAPMessageListView extends
         */
        public void reset() {
                pageBox.setSelectedIndex(0);
-               cTableModel.clearCache();
-               cTableModel.setRowCount(CachedTableModel.UNKNOWN_ROW_COUNT);
-               mailTable.gotoPage(0, false);
        }
 
        /*
@@ -1973,7 +1987,7 @@ public class IMAPMessageListView extends
         * ()
         */
        public HasPageLoadHandlers getDataTableLoad() {
-               return mailTable;
+               return null;
        }
 
        /*
@@ -2039,7 +2053,7 @@ public class IMAPMessageListView extends
         * 
org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getData(int)
         */
        public Message getData(int rowIndex) {
-               return mailTable.getRowValue(rowIndex);
+               return null;
        }
 
        /*
@@ -2090,7 +2104,7 @@ public class IMAPMessageListView extends
         * deselectAllMessages()
         */
        public void deselectAllMessages() {
-               mailTable.getDataTable().deselectAllRows();
+//             mailTable.getDataTable().deselectAllRows();
        }
 
        /*
@@ -2122,7 +2136,7 @@ public class IMAPMessageListView extends
         * ()
         */
        public void selectAllMessages() {
-               mailTable.getDataTable().selectAllRows();
+//             mailTable.getDataTable().selectAllRows();
        }
 
        /*
@@ -2132,7 +2146,7 @@ public class IMAPMessageListView extends
         * getSelectedMessages()
         */
        public List<Message> getSelectedMessages() {
-               return mailTable.getSelectedRows();
+               return null;
        }
 
        /*
@@ -2143,7 +2157,7 @@ public class IMAPMessageListView extends
         * (java.util.ArrayList)
         */
        public void removeMessages(List<Message> messages) {
-               mailTable.removeRows(messages);
+//             mailTable.removeRows(messages);
        }
 
        /*
@@ -2174,7 +2188,7 @@ public class IMAPMessageListView extends
         * setPostFetchMessageCount(int)
         */
        public void setPostFetchMessageCount(int count) {
-               cTableModel.setPostCachedRowCount(count);
+//             cTableModel.setPostCachedRowCount(count);
        }
 
        /*
@@ -2183,7 +2197,7 @@ public class IMAPMessageListView extends
         * @see 
org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#redraw()
         */
        public void redraw() {
-               mailTable.reloadPage();
+//             mailTable.reloadPage();
        }
 
        /*
@@ -2268,9 +2282,9 @@ public class IMAPMessageListView extends
         * 
org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#goToPage(int)
         */
        public void goToPage(int page) {
-               if (page != mailTable.getCurrentPage()) {
-                       mailTable.gotoPage(page, false);
-               }
+//             if (page != mailTable.getCurrentPage()) {
+//                     mailTable.gotoPage(page, false);
+//             }
        }
 
        /*
@@ -2281,7 +2295,7 @@ public class IMAPMessageListView extends
         * ()
         */
        public int getCurrentPage() {
-               return mailTable.getCurrentPage();
+               return 0;
        }
 
        /*
@@ -2291,7 +2305,7 @@ public class IMAPMessageListView extends
         * getDataTablePageChange()
         */
        public HasPageChangeHandlers getDataTablePageChange() {
-               return mailTable;
+               return null;
        }
 
        /*

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=1522178&r1=1522177&r2=1522178&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 03:15:02 2013
@@ -525,28 +525,13 @@ public class MessagesCellTable extends C
 
        private static final int PAGE_SIZE = 15;
        
-       private User user;
-       private ImapFolder folder;
-       private String searchValue;
-       private EventBus eventBus;
-       private HupaRequestFactory requestFactory;
        private HupaImageBundle imageBundle;
-       private boolean pending;
 
-       private SimplePager pager;
-       private ListDataProvider<Message> dataProvider;
-       
-       public SimplePager getPager(){
-               return pager;
-       }
        @Inject
-       public MessagesCellTable(final EventBus eventBus, final 
HupaRequestFactory requestFactory,
+       public MessagesCellTable(
                final HupaImageBundle imageBundle) {
 
                super(PAGE_SIZE);
-               this.eventBus = eventBus;
-               this.requestFactory = requestFactory;
-               this.imageBundle = imageBundle;
 
                addColumn(new CheckboxColumn());
                addColumn(new FromColumn());
@@ -554,152 +539,10 @@ public class MessagesCellTable extends C
                addColumn(new AttachmentColumn());
                addColumn(new DateColumn());
 
-               pager = new SimplePager();
-               pager.setDisplay(this);
-               dataProvider = new ListDataProvider<Message>();
-               dataProvider.addDataDisplay(this);
                setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
-               addRangeChangeHandler(new RangeChangeEvent.Handler() {
-                       @Override
-                       public void onRangeChange(RangeChangeEvent event) {
-                               fetch(event.getNewRange().getStart());
-                       }
-               });
-               // bind some Events
-               eventBus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
-
-                       public void onLoadMessagesEvent(LoadMessagesEvent 
loadMessagesEvent) {
-                               user = loadMessagesEvent.getUser();
-                               folder = loadMessagesEvent.getFolder();
-                               searchValue = 
loadMessagesEvent.getSearchValue();
-                               fetch(0);
-//                             if (!pending) {
-//                                     pending = true;
-//                                     Scheduler.get().scheduleFinally(new 
ScheduledCommand() {
-//                                             @Override
-//                                             public void execute() {
-//                                                     pending = false;
-//                                                     fetch(0);
-//                                             }
-//                                     });
-//                             }
-                               
-                       }
-               });
-               eventBus.addHandler(FolderSelectionEvent.TYPE, new 
FolderSelectionEventHandler() {
-
-                       public void onFolderSelectionEvent(FolderSelectionEvent 
event) {
-                               user = event.getUser();
-                               folder = event.getFolder();
-                               searchValue = null;
-                       }
-               });
-               eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
-
-                       public void onLogin(LoginEvent event) {
-                               user = event.getUser();
-                               folder = new 
ImapFolderImpl(user.getSettings().getInboxFolderName());
-                               searchValue = null;
-                               if (!pending) {
-                                       pending = true;
-                                       Scheduler.get().scheduleFinally(new 
ScheduledCommand() {
-                                               @Override
-                                               public void execute() {
-                                                       pending = false;
-                                                       fetch(0);
-                                               }
-                                       });
-                               }
-                       }
-               });
-               eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
-
-                       public void onLogout(LogoutEvent logoutEvent) {
-                               user = null;
-                               folder = null;
-                               searchValue = null;
-                       }
-               });
-
-               // this.setRowData(values);
-
-               setSelectionModel(selectionModel);
-           selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
-             @Override
-             public void onSelectionChange(SelectionChangeEvent event) {
-                 refreshSelection();
-             }
-           });
-
-       }
-
-
-       private final SingleSelectionModel<Message> selectionModel = new 
SingleSelectionModel<Message>();
-       protected void refreshSelection() {
-               Message message = selectionModel.getSelectedObject();
-               if(message == null) return;
-//             display.setExpandLoading(true);
-
-               if (message.getFlags().contains(MessageImpl.IMAPFlag.SEEN) == 
false) {
-                       // add flag, fire event and redraw
-                       message.getFlags().add(MessageImpl.IMAPFlag.SEEN);
-                       eventBus.fireEvent(new DecreaseUnseenEvent(user, 
folder, 1));
-
-//                     display.redraw();
-
-               }
-               eventBus.fireEvent(new ExpandMessageEvent(user, folder, 
message));
-           selectionModel.setSelected(message, false);
-           
-    }
-       public void fetch(final int start) {
-               FetchMessagesRequest messagesRequest = 
requestFactory.messagesRequest();
-               FetchMessagesAction action = 
messagesRequest.create(FetchMessagesAction.class);
-               final ImapFolder folder1 = 
messagesRequest.create(ImapFolder.class);
-               folder1.setChildren(this.folder.getChildren());
-               folder1.setDelimiter(this.folder.getDelimiter());
-               folder1.setFullName(this.folder.getFullName());
-               folder1.setMessageCount(this.folder.getMessageCount());
-               folder1.setName(this.folder.getName());
-               folder1.setSubscribed(this.folder.getSubscribed());
-               
folder1.setUnseenMessageCount(this.folder.getUnseenMessageCount());
-               // FIXME cannot put setFolder to the first place
-               action.setOffset(getPageSize());
-               action.setFolder(folder1);
-               action.setSearchString(searchValue);
-               action.setStart(start);
-               messagesRequest.fetch(action).fire(new 
Receiver<FetchMessagesResult>() {
-
-                       @Override
-                       public void onFailure(ServerFailure error) {
-                               if (error.isFatal()) {
-                                       throw new 
RuntimeException(error.getMessage());
-                               }
-                       }
-                       @Override
-                       public void onSuccess(final FetchMessagesResult result) 
{
-                               assert result != null;
-                               
MessagesCellTable.this.folder.setMessageCount(result.getRealCount());
-                               
MessagesCellTable.this.folder.setUnseenMessageCount(result.getRealUnreadCount());
-                               dataProvider.setList(result.getMessages());
-                               setRowCount(result.getRealCount());
-                               if (result.getMessages() != null) {
-                                       setRowData(start + getPageSize(), 
result.getMessages());
-                               } else {
-                                       setRowData(start + getPageSize(), 
result.getMessages());
-                               }
-
-                   pager.setPageStart(start);
-                   if (start == 0 || !isRowCountExact()) {
-                    setRowCount(start + result.getMessages().size(), 
result.getMessages().size() < getPageSize());
-                   }
-//                             flush();
-                               // Notify presenter to update folder tree view
-                               eventBus.fireEvent(new 
MessagesReceivedEvent(folder1, result.getMessages()));
-                       }
-               });
-       }
+               
 
+       }
        private class CheckboxColumn extends Column<Message, Boolean> {
                public CheckboxColumn() {
                        super(new CheckboxCell());



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to