Author: norman
Date: Fri Jul 10 10:36:58 2009
New Revision: 792876

URL: http://svn.apache.org/viewvc?rev=792876&view=rev
Log:
Fix some layout bugs
Fill the oracle again

Added:
    
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEvent.java
    
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEventHandler.java
Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
    labs/hupa/war/Hupa.css

Added: 
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEvent.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEvent.java?rev=792876&view=auto
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEvent.java
 (added)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEvent.java
 Fri Jul 10 10:36:58 2009
@@ -0,0 +1,30 @@
+package org.apache.hupa.client.events;
+
+import java.util.ArrayList;
+
+import org.apache.hupa.client.data.IMAPMessage;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class MessagesReceivedEvent extends 
GwtEvent<MessagesReceivedEventHandler>{
+       public static Type<MessagesReceivedEventHandler> TYPE = new 
Type<MessagesReceivedEventHandler>();
+       private ArrayList<IMAPMessage> messages;
+       
+       public MessagesReceivedEvent(ArrayList<IMAPMessage> messages) {
+               this.messages = messages;
+       }
+       
+       public ArrayList<IMAPMessage> getMessages() {
+               return messages;
+       }
+       @Override
+       protected void dispatch(MessagesReceivedEventHandler handler) {
+               handler.onMessagesReceived(this);
+       }
+
+       @Override
+       public 
com.google.gwt.event.shared.GwtEvent.Type<MessagesReceivedEventHandler> 
getAssociatedType() {
+               return TYPE;
+       }
+
+}

Added: 
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEventHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEventHandler.java?rev=792876&view=auto
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEventHandler.java
 (added)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/events/MessagesReceivedEventHandler.java
 Fri Jul 10 10:36:58 2009
@@ -0,0 +1,8 @@
+package org.apache.hupa.client.events;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface MessagesReceivedEventHandler extends EventHandler{
+
+       public void onMessagesReceived(MessagesReceivedEvent event);
+}

Modified: labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java?rev=792876&r1=792875&r2=792876&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java Fri 
Jul 10 10:36:58 2009
@@ -22,6 +22,7 @@
 import org.apache.hupa.client.events.EventBus;
 import org.apache.hupa.client.mvp.AppPresenter;
 import org.apache.hupa.client.mvp.AppView;
+import org.apache.hupa.client.mvp.IMAPMessagePresenter;
 import org.apache.hupa.client.mvp.IMAPMessageView;
 import org.apache.hupa.client.mvp.LoginPresenter;
 import org.apache.hupa.client.mvp.LoginView;
@@ -43,6 +44,7 @@
                bind(MainView.class).in(Singleton.class);
                bind(MainPresenter.class).in(Singleton.class);
                bind(IMAPMessageView.class).in(Singleton.class);
+               bind(IMAPMessagePresenter.class).in(Singleton.class);
        }
 
 }

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=792876&r1=792875&r2=792876&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java 
(original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java 
Fri Jul 10 10:36:58 2009
@@ -1,17 +1,52 @@
 package org.apache.hupa.client.mvp;
 
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.events.EventBus;
+import org.apache.hupa.client.events.LoadMessagesEvent;
+import org.apache.hupa.client.events.LoadMessagesEventHandler;
+
+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.inject.Inject;
 
 public class IMAPMessagePresenter {
        
        public interface Display {
                public HasRowSelectionHandlers getDataTableSelection();
+               public HasPageLoadHandlers getDataTableLoad();
+               public void reloadData(IMAPUser user, IMAPFolder folder,String 
searchValue);
        }
+
+
+       private Display display;        
+       private EventBus bus;
+       protected IMAPUser user;
+       protected IMAPFolder folder;
+       protected String searchValue;
        
+       @Inject
+       public IMAPMessagePresenter(EventBus bus) {
+               this.bus = bus;
+               bindHandlers();
+       }
        
-       public void bind(Display display) {
+       private void bindHandlers() {
+               bus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
+
+                       public void onLoadMessagesEvent(LoadMessagesEvent 
loadMessagesEvent) {
+                               user = loadMessagesEvent.getUser();
+                               folder = loadMessagesEvent.getFolder();
+                               searchValue = 
loadMessagesEvent.getSearchValue();
+                               display.reloadData(user, folder, searchValue);
+                       }
+                       
+               });
+       }
+       public void bind(final Display display) {
+               this.display = display;
                display.getDataTableSelection().addRowSelectionHandler(new 
RowSelectionHandler() {
 
                        public void onRowSelection(RowSelectionEvent event) {

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=792876&r1=792875&r2=792876&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Fri 
Jul 10 10:36:58 2009
@@ -20,6 +20,7 @@
 package org.apache.hupa.client.mvp;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 
@@ -31,8 +32,7 @@
 import org.apache.hupa.client.data.IMAPMessage;
 import org.apache.hupa.client.data.IMAPUser;
 import org.apache.hupa.client.events.EventBus;
-import org.apache.hupa.client.events.LoadMessagesEvent;
-import org.apache.hupa.client.events.LoadMessagesEventHandler;
+import org.apache.hupa.client.events.MessagesReceivedEvent;
 import org.apache.hupa.client.mvp.IMAPMessagePresenter.Display;
 import org.apache.hupa.client.rpc.FetchMessages;
 import org.apache.hupa.client.rpc.FetchMessagesResult;
@@ -40,11 +40,10 @@
 import org.cobogw.gwt.user.client.ui.ButtonBar;
 
 import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.logical.shared.ResizeEvent;
 import com.google.gwt.event.logical.shared.ResizeHandler;
 import com.google.gwt.gen2.table.client.AbstractColumnDefinition;
+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;
@@ -55,21 +54,25 @@
 import com.google.gwt.gen2.table.client.TableDefinition;
 import com.google.gwt.gen2.table.client.TableModel;
 import com.google.gwt.gen2.table.client.TableModelHelper;
+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.PagingOptions.PagingOptionsImages;
 import com.google.gwt.gen2.table.client.SelectionGrid.SelectionPolicy;
+import com.google.gwt.gen2.table.client.TableDefinition.AbstractCellView;
 import com.google.gwt.gen2.table.client.TableModelHelper.Request;
+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.PageLoadEvent;
 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.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.CheckBox;
 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.RootPanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.inject.Inject;
 
@@ -80,91 +83,100 @@
        private IMAPUser user;
        private IMAPFolder folder;
        private String searchValue;
-
+       
        private PagingScrollTable<IMAPMessage> mailTable;
+       private EventBus bus;
        
        @Inject
        public IMAPMessageView(DispatchAsync dispatcher,EventBus bus) {
+               this.bus = bus;
                this.dispatcher = dispatcher;
-               bus.addHandler(LoadMessagesEvent.TYPE, new 
LoadMessagesEventHandler() {
-
-                       public void onLoadMessagesEvent(LoadMessagesEvent 
loadMessagesEvent) {
-                               user = loadMessagesEvent.getUser();
-                               folder = loadMessagesEvent.getFolder();
-                               searchValue = 
loadMessagesEvent.getSearchValue();
-                               mailTable.getTableModel().setRowCount(0);
-                               mailTable.reloadPage();
-                       }
-                       
-               });
+               
                
                
                VerticalPanel vPanel = new VerticalPanel();
 
+               
                mailTable = new PagingScrollTable<IMAPMessage>(
                                new IMAPMessageTableModel(), createDataTable(),
                                createHeaderTable(),
                                createTableDefinitation());
                mailTable.setPageSize(20);
                HTML emptyTable = new HTML("There is no data to display");
-               emptyTable.setHeight("300px");
+               emptyTable.setHorizontalAlignment(HTML.ALIGN_CENTER);
+               emptyTable.setHeight("600px");
                mailTable.setEmptyTableWidget(emptyTable);
                FixedWidthGridBulkRenderer<IMAPMessage> bulkRenderer = new 
FixedWidthGridBulkRenderer<IMAPMessage>(mailTable.getDataTable(),mailTable);
                mailTable.setBulkRenderer(bulkRenderer);
                
                mailTable.setCellPadding(0);
                mailTable.setResizePolicy(ResizePolicy.FILL_WIDTH);
+               mailTable.setColumnResizePolicy(ColumnResizePolicy.MULTI_CELL);
                mailTable.setScrollPolicy(ScrollPolicy.DISABLED);
-               mailTable.setSize(Window.getClientWidth() - 200 + "px", 
"600px");
+               
                mailTable.addPageLoadHandler(new PageLoadHandler() {
 
                        public void onPageLoad(PageLoadEvent event) {
                                for (int i = 0; i < 
mailTable.getDataTable().getRowCount(); i++) {
                                        
mailTable.getDataTable().getRowFormatter().setStyleName(i,"hupa-Mailtable-row");
-                                       
mailTable.getDataTable().getCellFormatter().setWordWrap(i, 0,false);
-                                       
mailTable.getDataTable().getCellFormatter().setWordWrap(i, 1,false);
-                                       
mailTable.getDataTable().getCellFormatter().setWordWrap(i, 2,false);
-                                       
-                                       
mailTable.getDataTable().getCellFormatter().addStyleName(i,0,"hupa-Mailtable");
-                                       
mailTable.getDataTable().getCellFormatter().addStyleName(i,1,"hupa-Mailtable");
-                                       
mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable");
-                                       
//mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable-cell-date");
-
+                                       
mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable-cell-date");
                                }
                        }
                        
                });
+               
+               
+               
                mailTable.getDataTable().setCellSpacing(0);
+
+               // 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 -40+"px");
+               mailTable.setHeight("600px");
                Window.addResizeHandler(new ResizeHandler() {
 
                        public void onResize(ResizeEvent event) {
-                               int width = event.getWidth() - 200;
-                               mailTable.setWidth(width + "px");
-               
+                               mailTable.setWidth(Window.getClientWidth() -150 
-40+"px");
                        }
+                       
                });
-               
                mailTable.fillWidth();
-               PagingOptions options = new PagingOptions(mailTable, 
(PagingOptionsImages) GWT.create(MyPagingOptionImages.class));
                
+               PagingOptions options = new 
PagingOptions(mailTable,(PagingOptionsImages) 
GWT.create(MyPagingOptionImages.class));
                ButtonBar navigatorBar = new ButtonBar();
                Button newMailButton = new Button(constants.newMailButton());
                navigatorBar.add(newMailButton);
-               Button deleteMailButton = new 
Button(constants.deleteMailButton());
+               final Button deleteMailButton = new 
Button(constants.deleteMailButton());
+               deleteMailButton.setEnabled(false);
                navigatorBar.add(deleteMailButton);
+               
+               
+               mailTable.getDataTable().addRowSelectionHandler(new 
RowSelectionHandler() {
 
+                       public void onRowSelection(RowSelectionEvent event) {
+                               if 
(mailTable.getDataTable().getSelectedRows().size() == 0) {
+                                       deleteMailButton.setEnabled(false);
+
+                               } else {
+                                       deleteMailButton.setEnabled(true);
+                               }
+                       }
+                       
+               });
+               
                HorizontalPanel hPanel = new HorizontalPanel();
                hPanel.setStyleName("hupa-MailTableControl");
                hPanel.setSpacing(10);
                hPanel.add(navigatorBar);
                hPanel.add(options);
+       
+               
                hPanel.setWidth("100%");
                hPanel.setHeight("100%");
                vPanel.add(hPanel);
                vPanel.add(mailTable);
                initWidget(vPanel);
        }
-       
 
        private TableDefinition<IMAPMessage> createTableDefinitation() {
                DefaultTableDefinition<IMAPMessage> def = new 
DefaultTableDefinition<IMAPMessage>(createColumnDefinitionList());
@@ -174,55 +186,7 @@
        private FixedWidthFlexTable createHeaderTable() {
                FixedWidthFlexTable headerTable = new FixedWidthFlexTable();
                return headerTable;
-               /*
-               final CheckBox box = new CheckBox();
-               box.addClickHandler(new ClickHandler() {
-
-                       public void onClick(ClickEvent event) {
-                               CheckBox headerCheckbox = (CheckBox) 
event.getSource();
-                               if (headerCheckbox.getValue()) {
-                                       
mailTable.getDataTable().selectAllRows();
-                               } else {
-                                       
mailTable.getDataTable().deselectAllRows();
-                               }
-                               
-                               for (int i = 0; i < 
mailTable.getDataTable().getRowCount(); i++) {
-                                       if(headerCheckbox.getValue() == true) {
-                                               
mailTable.getDataTable().getRowFormatter().setStyleName(i, 
"hupa-Mailtable-row-selected");
-                                       } else {
-                                               
mailTable.getDataTable().getRowFormatter().removeStyleName(i, 
"hupa-Mailtable-row-selected");
-
-                                       }
-                               
-                               
-                                       IMAPMessage message = 
mailTable.getRowValue(i);
-                                       
-                                       if 
(message.getIMAPFlags().contains(IMAPFlag.SEEN) == false) {
-                                               
mailTable.getDataTable().getRowFormatter().addStyleName(i,
-                                                               
"hupa-Mailtable-row-notseen");
-                                       } else {
-                                               
mailTable.getDataTable().getRowFormatter().removeStyleName(i, 
"hupa-Mailtable-row-notseen");
-                                       }
-                                       
-                               }
-                       }
-
-               });
-               headerTable.setWidget(0, 0, box);
-               headerTable.setText(0, 1, constants.headerFrom());
-               headerTable.setText(0, 2, constants.mailTableSubject());
-               headerTable.setText(0, 3, constants.mailTableDate());
-
-               headerTable.setCellSpacing(0);
-
-               
headerTable.getRowFormatter().setStyleName(0,"hupa-Mailtable-Header");
-
-               
headerTable.getFlexCellFormatter().addStyleName(0,0,"hupa-Mailtable-Header");
-               
headerTable.getFlexCellFormatter().addStyleName(0,1,"hupa-Mailtable-Header");
-               
headerTable.getFlexCellFormatter().addStyleName(0,2,"hupa-Mailtable-Header");
-               
headerTable.getFlexCellFormatter().addStyleName(0,3,"hupa-Mailtable-Header");
-               return headerTable;
-               */
+               
        }
        
        /**
@@ -241,17 +205,34 @@
                FromColumnDefination from = new FromColumnDefination();
                from.setColumnTruncatable(true);
                from.setPreferredColumnWidth(250);
+               from.setMinimumColumnWidth(150);
+               from.setMaximumColumnWidth(300);
+
                cList.add(from);
 
                
                SubjectColumnDefination subject =new SubjectColumnDefination();
                subject.setColumnTruncatable(true);
-               from.setPreferredColumnWidth(800);
+               subject.setPreferredColumnWidth(800);
+               subject.setMinimumColumnWidth(600);
+               subject.setMaximumColumnWidth(1000);
                cList.add(subject);
                
                DateColumnDefination date = new DateColumnDefination();
                date.setColumnTruncatable(true);
+               date.setCellRenderer(new CellRenderer<IMAPMessage, Date>() {
 
+                       
+                       public void renderRowValue(IMAPMessage rowValue,
+                                       ColumnDefinition<IMAPMessage, Date> 
columnDef,
+                                       AbstractCellView<IMAPMessage> view) {
+                               
view.setHTML(DateTimeFormat.getShortTimeFormat().format(rowValue.getIMAPHeader().getReceivedDate()));
+                       }
+                       
+               });
+               date.setPreferredColumnWidth(100);
+               date.setMinimumColumnWidth(50);
+               date.setMaximumColumnWidth(150);
                cList.add(date);
                
                return cList;
@@ -263,7 +244,7 @@
                public void requestRows(
                                final Request request,
                                final 
com.google.gwt.gen2.table.client.TableModel.Callback<IMAPMessage> callback) {
-                       GWT.log("HERE", null);
+                       
                        if (user == null || folder == null) {
                                setRowCount(0);
                                callback.onRowsReady(request, new 
TableModelHelper.Response<IMAPMessage>() {
@@ -283,6 +264,7 @@
                                }
 
                                public void onSuccess(final FetchMessagesResult 
result) {
+                                       bus.fireEvent(new 
MessagesReceivedEvent(result.getMessages()));
                                         TableModelHelper.Response<IMAPMessage> 
response = new TableModelHelper.Response<IMAPMessage>() {
 
                                                @Override
@@ -329,17 +311,16 @@
                
        }
        
-       private final class DateColumnDefination extends 
AbstractColumnDefinition<IMAPMessage, String> {
+       private final class DateColumnDefination extends 
AbstractColumnDefinition<IMAPMessage, Date> {
 
                @Override
-               public String getCellValue(IMAPMessage rowValue) {
-                       return ""; 
//rowValue.getIMAPHeader().getReceivedDate().toString();
+               public Date getCellValue(IMAPMessage rowValue) {
+                       return rowValue.getIMAPHeader().getReceivedDate();
                }
 
                @Override
-               public void setCellValue(IMAPMessage rowValue, String 
cellValue) {
-                       rowValue.getIMAPHeader().setReceivedDate(null);
-
+               public void setCellValue(IMAPMessage rowValue, Date cellValue) {
+                       rowValue.getIMAPHeader().setReceivedDate(cellValue);
                }
                
        }
@@ -347,4 +328,17 @@
        public HasRowSelectionHandlers getDataTableSelection() {
                return mailTable.getDataTable();
        }
+       
+       public void reloadData(IMAPUser user, IMAPFolder folder,String 
searchValue) {
+               this.user = user;
+               this.folder = folder;
+               this.searchValue = searchValue;
+               mailTable.getTableModel().setRowCount(0);
+               mailTable.reloadPage();
+       }
+
+       public HasPageLoadHandlers getDataTableLoad() {
+               return mailTable;
+       }
+       
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=792876&r1=792875&r2=792876&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Fri 
Jul 10 10:36:58 2009
@@ -8,6 +8,7 @@
 import net.customware.gwt.dispatch.client.DispatchAsync;
 
 import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPMessage;
 import org.apache.hupa.client.data.IMAPUser;
 import org.apache.hupa.client.events.EventBus;
 import org.apache.hupa.client.events.LoadMessagesEvent;
@@ -15,6 +16,8 @@
 import org.apache.hupa.client.events.LoginEventHandler;
 import org.apache.hupa.client.events.LogoutEvent;
 import org.apache.hupa.client.events.LogoutEventHandler;
+import org.apache.hupa.client.events.MessagesReceivedEvent;
+import org.apache.hupa.client.events.MessagesReceivedEventHandler;
 import org.apache.hupa.client.rpc.FetchFolders;
 import org.apache.hupa.client.rpc.FetchFoldersResult;
 import org.apache.hupa.client.rpc.LogoutUser;
@@ -40,13 +43,11 @@
        public interface Display {
                public HasClickHandlers getLogoutClick();
                public HasSelectionHandlers<TreeItem> getTree();
-               public HasClickHandlers getSearchClick();
-               public HasValue<String> getSearchValue();
-               
                //public HasRowSelectionHandlers getTableClick();
                public void bindTreeItems(List<IMAPTreeItem> treeList);
-               //public void bindMessages(List<IMAPMessage> messageList);
-
+               public HasClickHandlers getSearchClick();
+               public HasValue<String> getSearchValue();
+               public void fillOracle(ArrayList<IMAPMessage> messages);
        }
        
        private DispatchAsync dispatcher;
@@ -80,6 +81,15 @@
                        }
                        
                });
+               
+               bus.addHandler(MessagesReceivedEvent.TYPE, new 
MessagesReceivedEventHandler() {
+
+                       public void onMessagesReceived(MessagesReceivedEvent 
event) {
+                               display.fillOracle(event.getMessages());
+                       }
+                       
+               });
+               
        }
        
        protected void loadTreeItems() {
@@ -160,7 +170,6 @@
                                TreeItem item = event.getSelectedItem();
                                folder = (IMAPFolder) item.getUserObject();
                                bus.fireEvent(new 
LoadMessagesEvent(user,folder));
-                               
                        }
                        
                });
@@ -182,7 +191,7 @@
 
        private void reset() {
                //display.bindMessages(new ArrayList<IMAPMessage>());
-               display.bindTreeItems(new ArrayList<IMAPTreeItem>());
                display.getSearchValue().setValue("");
+               display.bindTreeItems(new ArrayList<IMAPTreeItem>());
        }
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=792876&r1=792875&r2=792876&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java Fri Jul 10 
10:36:58 2009
@@ -1,5 +1,6 @@
 package org.apache.hupa.client.mvp;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.hupa.client.HupaConstants;
@@ -8,7 +9,6 @@
 import org.apache.hupa.client.data.IMAPMessage;
 import org.apache.hupa.client.widgets.IMAPTreeItem;
 import org.cobogw.gwt.user.client.ui.Button;
-import org.cobogw.gwt.user.client.ui.ButtonBar;
 import org.cobogw.gwt.user.client.ui.RoundedPanel;
 
 import com.google.gwt.core.client.GWT;
@@ -24,7 +24,6 @@
 import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
 import com.google.gwt.user.client.ui.SuggestBox;
-import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.Tree;
 import com.google.gwt.user.client.ui.TreeItem;
 import com.google.gwt.user.client.ui.VerticalPanel;
@@ -38,19 +37,19 @@
        private RoundedPanel west;
        private IMAPTreeImages tImages = GWT.create(IMAPTreeImages.class);
        private Tree folderTree = new Tree(tImages,true);
-       
        private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(" 
,@");  
        private SuggestBox searchBox = new SuggestBox(oracle);
        private Button searchButton = new Button(constants.searchButton());
+       
+
        private Button logoutButton = new Button(constants.logoutButton());
-       private VerticalPanel centerVP = new VerticalPanel();
-       private TextBox rowsPerPageBox = new TextBox();
        private RoundedPanel center;
        private IMAPMessageView messageView;
        
        @Inject
-       public MainView(IMAPMessageView messageView) {
+       public MainView(IMAPMessageView messageView,IMAPMessagePresenter 
presenter) {
                this.messageView = messageView;
+               presenter.bind(messageView);
                dockPanel = new DockPanel();
                
                dockPanel.setSpacing(10);
@@ -70,12 +69,10 @@
        }
 
        private void createWest() {
-                       west = new RoundedPanel(RoundedPanel.ALL);
+                       west = new RoundedPanel(RoundedPanel.ALL,1);
                        west.add(folderTree);
                        west.setWidth("150px"); 
                        folderTree.setAnimationEnabled(true);
-                       
-               
        }
        private void createNorth() {
                north = new VerticalPanel();
@@ -97,8 +94,11 @@
                HorizontalPanel hPanel = new HorizontalPanel();
                hPanel.setSpacing(5);
                hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+       
                
-               searchBox.setWidth("150px");
+               searchBox.setAnimationEnabled(true);
+               searchBox.setAutoSelectEnabled(false);
+               searchBox.setWidth("250px");
                searchBox.setLimit(20);
                searchBox.addKeyUpHandler(new KeyUpHandler() {
 
@@ -120,18 +120,12 @@
        }
 
        private void createCenter() {
-               center = new RoundedPanel(RoundedPanel.ALL, 3);
+               center = new RoundedPanel(RoundedPanel.ALL, 1);
                center.setBorderColor("#C3D9FF");
-               
                center.add(messageView);
-               center.setWidth("100%");
 
        }
 
-       private void fillOracle(IMAPMessage msg) {
-               oracle.add(msg.getIMAPHeader().getFrom());
-               oracle.add(msg.getIMAPHeader().getSubject());
-       }
 
        public HasClickHandlers getLogoutClick() {
                return logoutButton;
@@ -140,6 +134,7 @@
                return folderTree;
        }
        
+       
        public HasClickHandlers getSearchClick() {
                return searchButton;
        }
@@ -147,6 +142,7 @@
                return searchBox;
        }
        
+       
        public void bindTreeItems(List<IMAPTreeItem> treeList) {
                folderTree.clear();
                
@@ -160,4 +156,12 @@
                        }
                }
        }
+
+       public void fillOracle(ArrayList<IMAPMessage> messages) {
+               for (int i = 0; i < messages.size();i++) {
+                       
oracle.add(messages.get(i).getIMAPHeader().getSubject());
+                       oracle.add(messages.get(i).getIMAPHeader().getFrom());
+               }
+               searchBox.setText("");
+       }
 }

Modified: labs/hupa/war/Hupa.css
URL: 
http://svn.apache.org/viewvc/labs/hupa/war/Hupa.css?rev=792876&r1=792875&r2=792876&view=diff
==============================================================================
--- labs/hupa/war/Hupa.css (original)
+++ labs/hupa/war/Hupa.css Fri Jul 10 10:36:58 2009
@@ -37,18 +37,6 @@
        background-color:       #E0ECFF;
 }
 
-.hupa-Mailtable{
-    border-top:      1pt solid silver;
-}
-
-.hupa-Mailtable-Header {
-       background-color:       #E0ECFF;
-       text-align:             center;
-       border-top:         1pt solid grey;
-       border-bottom:      1pt solid grey;
-       
-}
-
 .hupa-Mailtable-row-notseen {
          font-weight:          bold;
 }
@@ -57,11 +45,28 @@
          background-color:     #F0E68C;
          text-align:           left;
          vertical-align:       top;
-       padding:                        0px 10px 0px 10px;
+         padding:                      0px 10px 0px 10px;
          font-size:        80%;
          cursor:           hand;
 }
 
+.gwt-ScrollTable .dataTable td {
+  border-color: #silver;
+  border-style: solid;
+  border-width: 1px 0px 0px 0px;
+  white-space: nowrap;
+  overflow: hidden;
+}
+
+
+.gwt-ScrollTable .dataTable tr.highlighted {
+  background:           #FAD163;
+}
+
+.gwt-ScrollTable .dataTable tr.selected td {
+  background:           #FFF7D7;
+}
+
 .hupa-Mailtable-row {
     text-align:                left;
        vertical-align:         top;
@@ -72,7 +77,6 @@
 
 .hupa-Mailtable-cell-date {
        text-align:             right;
-       vertical-align:         top;
 }
 
 .hupa-IMAPFolder-selected {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@labs.apache.org
For additional commands, e-mail: commits-h...@labs.apache.org

Reply via email to