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(" "); - } - - } - - }); - - 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