You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2009/12/24 09:30:27 UTC

svn commit: r893706 - in /james/hupa/trunk: client/src/main/java/org/apache/hupa/client/ client/src/main/java/org/apache/hupa/client/mvp/ client/src/main/java/org/apache/hupa/client/mvp/place/ client/war/ client/war/images/ server/src/main/java/org/apa...

Author: manolo
Date: Thu Dec 24 08:30:26 2009
New Revision: 893706

URL: http://svn.apache.org/viewvc?rev=893706&view=rev
Log:
Changed login fields validation to the presenter, and removed login button disabling feature because onKeyUp is not fired by some mobile browsers.
Changed the way of how rowsPerPage was handled, so the paging box shows the real number of rows.
Fixed a bug in fetch messages handler, which made the all the call fail when a message was malformed.
Changes in PagingOption to use the same loading of the caller.
Re-factor of views to move styling stuff to css: IMAPMessageListView 

Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/ContactsView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/IMAPMessageListPresenterPlace.java
    james/hupa/trunk/client/war/Hupa.css
    james/hupa/trunk/client/war/images/ajax-loader.gif
    james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
    james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/PagingOptions.java

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/HupaCSS.java Thu Dec 24 08:30:26 2009
@@ -46,5 +46,20 @@
     public static final String C_login_container = "hupa-login";
     public static final String C_login_form = "hupa-login-form";
     public static final String C_login_box = "hupa-login-textbox";
+    
+    public static final String C_contacts_container = "hupa-contacts";
 
+    public static final String C_msg_list_container = "hupa-msglist";
+    public static final String C_msg_table = "hupa-msgtable";
+    public static final String C_msg_table_empty = "hupa-msgtable-empty";
+    public static final String C_msg_table_row = "hupa-msgtable-row";
+    public static final String C_msg_table_seen = "hupa-msgtable-seen";
+    public static final String C_msg_table_unseen = "hupa-msgtable-unseen";
+    public static final String C_msg_search = "hupa-search-box";
+
+    public static final String C_msg_top_bar = "hupa-msg-top-bar";
+    public static final String C_msg_bottom_bar = "hupa-msg-bottom-bar";
+    
+    public static final String C_buttons = "hupa-buttons";
+    
 }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/ContactsView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/ContactsView.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/ContactsView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/ContactsView.java Thu Dec 24 08:30:26 2009
@@ -19,6 +19,7 @@
 
 package org.apache.hupa.client.mvp;
 
+import org.apache.hupa.client.HupaCSS;
 import org.apache.hupa.client.HupaConstants;
 
 import com.google.gwt.user.client.ui.Composite;
@@ -34,8 +35,7 @@
     @Inject
     public ContactsView(HupaConstants constants) {
         this.constants = constants;
-        panel.setWidth("100%");
-        panel.setHeight("100");
+        panel.addStyleName(HupaCSS.C_contacts_container);
         panel.add(new HTML("<center><h1>Contacts view: comming soon<h1></center>"));
         initWidget(panel);
     }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java Thu Dec 24 08:30:26 2009
@@ -109,7 +109,6 @@
         public void goToPage(int page);
         public int getCurrentPage();
         public int getRowsPerPageIndex();
-        public void setRowsPerPageIndex(int index);
         public HasChangeHandlers getRowsPerPageChange();     
         public HasClickHandlers getSearchClick();
         public HasValue<String> getSearchValue();

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java Thu Dec 24 08:30:26 2009
@@ -23,6 +23,7 @@
 import java.util.Date;
 import java.util.List;
 
+import org.apache.hupa.client.HupaCSS;
 import org.apache.hupa.client.HupaConstants;
 import org.apache.hupa.client.HupaMessages;
 import org.apache.hupa.client.bundles.HupaImageBundle;
@@ -74,7 +75,6 @@
 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.HasVerticalAlignment;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Hyperlink;
 import com.google.gwt.user.client.ui.ListBox;
@@ -89,11 +89,13 @@
 @SuppressWarnings("deprecation")
 public class IMAPMessageListView extends Composite implements Display{
 
+    private static final int DEFAULT_MSG_PAGE_SIZE = 25;
+    
     @SuppressWarnings("unused")
     private HupaMessages messages;
     private HupaImageBundle imageBundle;
 
-    private PagingOptions options;
+    private PagingOptions pagingBar;
     private DragRefetchPagingScrollTable<Message> mailTable;
     private CachedTableModel<Message> cTableModel;
 
@@ -138,8 +140,9 @@
                 cTableModel.setRowCount(event.getNewRowCount());
             }
         });
-        VerticalPanel vPanel = new VerticalPanel();
-        vPanel.setWidth("100%");
+        
+        VerticalPanel msgListContainer = new VerticalPanel();
+        msgListContainer.addStyleName(HupaCSS.C_msg_list_container);
         mailTable = new DragRefetchPagingScrollTable<Message>(
                 cTableModel, dataTable, new FixedWidthFlexTable(),
                 createTableDefinitation(),controller,1);
@@ -153,46 +156,26 @@
         });
         
         HTML emptyTable = new HTML(constants.emptyMailTable());
-        emptyTable.setHorizontalAlignment(HTML.ALIGN_CENTER);
-        emptyTable.setHeight("600px");
+        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(new PageLoadHandler() {
-
-            public void onPageLoad(PageLoadEvent event) {
-                for (int i = 0; i < mailTable.getDataTable().getRowCount(); i++) {
-                    mailTable.getDataTable().getRowFormatter().setStyleName(i,"hupa-Mailtable-row");
-                    Message msg = mailTable.getRowValue(i);
-                    if (msg != null) {
-                        if (msg.getFlags().contains(IMAPFlag.SEEN) == false) {
-                            mailTable.getDataTable().getRowFormatter().addStyleName(i,"hupa-Mailtable-row-notseen");
-                        } else {
-                            mailTable.getDataTable().getRowFormatter().removeStyleName(i,"hupa-Mailtable-row-notseen");
-                        }
-                    }
-                }
-            }
-            
-        });
-        
+        mailTable.addPageLoadHandler(onMessagePageLoadHandler);
+        mailTable.setPageSize(DEFAULT_MSG_PAGE_SIZE);
         mailTable.getDataTable().setCellSpacing(0);
         mailTable.setSortPolicy(SortPolicy.DISABLED);
 
-        mailTable.setHeight("600px");
-        mailTable.setWidth("100%");
         mailTable.fillWidth();
         
-        options = new PagingOptions(mailTable, constants);
+        pagingBar = new PagingOptions(mailTable, constants, expandLoading);
         
         HorizontalPanel buttonBar = new HorizontalPanel();
-        buttonBar.setSpacing(5);
-        buttonBar.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
+        buttonBar.addStyleName(HupaCSS.C_buttons);
         
         ButtonBar navigatorBar = new ButtonBar();
         navigatorBar.add(newMailButton);
@@ -206,25 +189,24 @@
         markButtonBar.add(markUnSeenButton);
         buttonBar.add(markButtonBar);
         buttonBar.add(refreshLink);
-        pageBox.addItem("20");
-        pageBox.addItem("50");
-        pageBox.addItem("100");
+        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) {
-                mailTable.setPageSize(Integer.parseInt(pageBox.getItemText(pageBox.getSelectedIndex())));
+                System.out.println(pageBox.getSelectedIndex());
+                if (pageBox.getSelectedIndex() > 0)
+                    mailTable.setPageSize(Integer.parseInt(pageBox.getItemText(pageBox.getSelectedIndex())));
             }
-            
         });
       
         
         HorizontalPanel searchPanel = new HorizontalPanel();
-        searchPanel.setSpacing(5);
-        searchPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+        searchPanel.addStyleName(HupaCSS.C_buttons);
 
+        searchBox.addStyleName(HupaCSS.C_msg_search);
         searchBox.setAnimationEnabled(true);
         searchBox.setAutoSelectEnabled(false);
-        searchBox.setWidth("150px");
         searchBox.setLimit(20);
         searchBox.addKeyUpHandler(new KeyUpHandler() {
 
@@ -237,44 +219,67 @@
         });
         searchPanel.add(searchBox);
         searchPanel.add(searchButton);
+        searchPanel.add(pageBox);
 
         HorizontalPanel hPanel = new HorizontalPanel();
-        hPanel.setStyleName("hupa-MailTableControl");
-        hPanel.setSpacing(10);
+        hPanel.addStyleName(HupaCSS.C_msg_top_bar);
         hPanel.add(buttonBar);
         hPanel.add(searchPanel);
-        hPanel.add(pageBox);
         hPanel.setCellHorizontalAlignment(searchPanel, HorizontalPanel.ALIGN_RIGHT);        
-        hPanel.setCellHorizontalAlignment(pageBox, HorizontalPanel.ALIGN_RIGHT);        
-        hPanel.setCellVerticalAlignment(pageBox, HorizontalPanel.ALIGN_MIDDLE);        
 
-        hPanel.setWidth("100%");
-        hPanel.setHeight("100%");
-        vPanel.add(hPanel);
+        msgListContainer.add(hPanel);
         
         HorizontalPanel barPanel = new HorizontalPanel();
-        HorizontalPanel bar = new HorizontalPanel();
-        bar.setSpacing(3);
-        bar.add(new HTML(constants.select() +":"));
-        bar.add(allLink);
-        bar.add(noneLink);
-
+        barPanel.addStyleName(HupaCSS.C_msg_bottom_bar);
+        
+        HorizontalPanel selectionBar = new HorizontalPanel();
+        selectionBar.setSpacing(3);
+        selectionBar.add(new HTML(constants.select() +":"));
+        selectionBar.add(allLink);
+        selectionBar.add(noneLink);
+        barPanel.add(selectionBar);
+        barPanel.setCellHorizontalAlignment(selectionBar, HorizontalPanel.ALIGN_LEFT);
         
-        barPanel.add(bar);
-        barPanel.setCellHorizontalAlignment(bar, HorizontalPanel.ALIGN_LEFT);
         barPanel.add(expandLoading);
-
-        barPanel.add(options);
-        barPanel.setCellHorizontalAlignment(options, HorizontalPanel.ALIGN_RIGHT);
-        barPanel.setWidth("100%");
-        vPanel.add(barPanel);
-        //vPanel.add(bar);
-        vPanel.add(mailTable);
+        barPanel.setCellHorizontalAlignment(expandLoading, HorizontalPanel.ALIGN_CENTER);
+        
+        barPanel.add(pagingBar);
+        barPanel.setCellHorizontalAlignment(pagingBar, HorizontalPanel.ALIGN_RIGHT);
+        
+        msgListContainer.add(barPanel);
+        msgListContainer.add(mailTable);
+        
         confirmBox.setText(messages.confirmDeleteMessages());
         confirmDeleteAllBox.setText(messages.confirmDeleteAllMessages());
-        initWidget(vPanel);
+        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());
         
@@ -753,20 +758,6 @@
     
     /*
      * (non-Javadoc)
-     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#setRowsPerPageIndex(int)
-     */
-    public void setRowsPerPageIndex(int index) {
-        if (pageBox.getItemCount() >= index) {
-            if (index != pageBox.getSelectedIndex()) {
-                pageBox.setSelectedIndex(index);
-                mailTable.setPageSize(Integer.parseInt(pageBox.getItemText(index)));
-            }
-        }             
-        
-    }
-
-    /*
-     * (non-Javadoc)
      * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getRowsPerPageChange()
      */
     public HasChangeHandlers getRowsPerPageChange() {

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Thu Dec 24 08:30:26 2009
@@ -58,7 +58,6 @@
 public class IMAPMessageView extends Composite implements Display{
     
     private HupaImageBundle imageBundle;
-    //private HupaConstants constants = GWT.create(HupaConstants.class);
     private Grid detailGrid = new Grid(5, 2);
     private Label from = new Label();
     private Label cc = new Label();

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java Thu Dec 24 08:30:26 2009
@@ -47,7 +47,10 @@
  *
  */
 public class LoginPresenter extends WidgetPresenter<LoginPresenter.Display>{
+    
     private HupaConstants constants = GWT.create(HupaConstants.class);
+    private int minUsernameLength = 1;
+    private int minPasswordLength = 1;
 
     public interface Display extends WidgetDisplay{
         public HasClickHandlers getLoginClick();
@@ -70,11 +73,16 @@
      * Try to login the user
      */
     private void doLogin() {
+        String user = display.getUserNameValue().getValue();
+        String pass = display.getPasswordValue().getValue();
+        
+        if (user.length() < minUsernameLength || pass.length() < minPasswordLength)
+            return;
+        
         display.setLoading(true);
-        dispatcher.execute(new LoginUser(display.getUserNameValue().getValue(),display.getPasswordValue().getValue()), new HupaCallback<LoginUserResult>(dispatcher, eventBus, display) {
+        dispatcher.execute(new LoginUser(user, pass), new HupaCallback<LoginUserResult>(dispatcher, eventBus, display) {
             public void callback(LoginUserResult result) {
                 display.setLoading(false);
-
                 eventBus.fireEvent(new LoginEvent(result.getUser()));
                 doReset();
             }

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/LoginView.java Thu Dec 24 08:30:26 2009
@@ -51,9 +51,6 @@
     private TextBox usernameTextBox = new TextBox();
     private PasswordTextBox passwordTextBox = new PasswordTextBox();
     private Loading loading;
-    private int minUsernameLength = 1;
-    private int minPasswordLength = 1;
-
     @Inject
     public LoginView(HupaConstants constants) {
         
@@ -89,10 +86,9 @@
         usernameTextBox.setFocus(true);
         passwordTextBox.addKeyUpHandler(this);
 
-        loginButton.setEnabled(false);
         loading.hide();
     }
-
+    
     /*
      * (non-Javadoc)
      * 
@@ -101,23 +97,13 @@
      * .dom.client.KeyUpEvent)
      */
     public void onKeyUp(KeyUpEvent event) {
-        if (usernameTextBox.getText().length() >= minUsernameLength
-                && passwordTextBox.getText().length() >= minPasswordLength) {
-            loginButton.setEnabled(true);
-        } else {
-            loginButton.setEnabled(false);
-        }
-        
         if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
             if (event.getSource().equals(usernameTextBox)) {
                 passwordTextBox.setFocus(true);
             }  else if (event.getSource().equals(passwordTextBox)) {
-                if (loginButton.isEnabled()) {
-                    loginButton.click();
-                }
+                loginButton.click();
             }
         }
-        
     }
  
     /*

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/IMAPMessageListPresenterPlace.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/IMAPMessageListPresenterPlace.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/IMAPMessageListPresenterPlace.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/place/IMAPMessageListPresenterPlace.java Thu Dec 24 08:30:26 2009
@@ -66,7 +66,6 @@
         } catch (NumberFormatException e) {
             // ignore
         }
-        presenter.getDisplay().setRowsPerPageIndex(rowsPerPageIndex);
 
         String searchValue = request.getParameter(SEARCH, "");
         presenter.getDisplay().getSearchValue().setValue(searchValue);

Modified: james/hupa/trunk/client/war/Hupa.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/war/Hupa.css?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/client/war/Hupa.css (original)
+++ james/hupa/trunk/client/war/Hupa.css Thu Dec 24 08:30:26 2009
@@ -1,31 +1,44 @@
 
-/************ Fonts *******************/
+/************[ Fonts ]***************************/
 body, table td, select, * {
-    font-family: arial, sans-serif, helvetica, verdana;
+    font-family:  arial, 'comic sans ms', sans-serif, helvetica, verdana;
     font-size: 12px;
 }
 
-/************ widget: RndPanel *******************/
+/************[ widget: RndPanel ]****************/
 .hupa-rounded {
    border: 1px solid #7FAAFF; 
    -moz-border-radius: 5px;
    -webkit-border-radius: 4px;
 }
 
-/************ widget: EnableHyperLink *******************/
+/************[ widget: Loading ]*************************************/
+div.hupa-loading {
+	background: url(images/ajax-loader.gif) no-repeat;
+	padding-left: 25px;
+	width: 100px;
+    white-space: nowrap;
+    margin-top: 5px;
+    margin-left: auto;
+    margin-right: auto;
+    text-align: left;
+    vertical-align: top;
+}
+
+/************[ widget: EnableHyperLink ]*********/
 .hupa-hyperlink {
 }
 div.gwt-Hyperlink {
 	padding-left: 4px;
 }
 
-/************ view: AppView *******************/
+/************[ view: AppView ]*******************/
 div.Hupa {
 	text-align: left;
 	margin-top: 0px;
 	padding: 0px;
 	width: 100%;
-	min-width: 685px;
+	min-width: 920px;
 }
 * html div.Hupa {
    margin-top: 15px;
@@ -81,10 +94,7 @@
 div.hupa-main {
 	clear: both;
 	margin: 8px 8px 8px 8px;
-}
-
-div.cgb-RPC-hupa-main {
-    min-height: 500px;
+	min-height: 500px;
 }
 
 * html div.cgb-RPC-hupa-main {
@@ -117,7 +127,7 @@
 div.hupa-bottom {
 	text-align: center;
 }
-/************ view: LoginView *******************/
+/************[ view: LoginView ]*******************/
 table.hupa-login {
     /*margin: 30px auto auto auto; */
     text-align: right;
@@ -142,7 +152,46 @@
 	margin-left: 5px;
 }
 
-/************ view: IMAPMessageListView *******************/
+/************[ view: IMAPMessageListView ]*******************/
+.hupa-msglist, .hupa-msg-top-bar, .hupa-msg-bottom-bar, .hupa-msgtable {
+	width: 100%;
+}
+.hupa-msg-top-bar {
+	padding: 10px 4px 10px 4px;
+    background-color: #C3D9FF;	
+}
+.hupa-msg-bottom-bar {
+    padding: 5px 4px 5px 4px;
+    background-color: #deeeff;  
+}
+
+.hupa-msgtable-row {
+    text-align: 				  	left;
+	vertical-align:  				top;
+	padding: 					  	0px 10px 0px 10px;
+	cursor:	        		   		pointer;
+}
+.hupa-msgtable-unseen {
+    font-weight: bold;
+}
+
+.hupa-msgtable-empty {
+    font-weight: bold;
+	text-align: center;
+	padding: 20px;
+}
+.hupa-search-box {
+	width: 150px;
+}
+
+.hupa-buttons td {
+	padding: 2px;
+}
+.hupa-buttons div {
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
 .gwt-ListBox, .gwt-SuggestBox {
     background-color:  #d8ecfd;
     border: 1px solid #7FAAFF;
@@ -152,18 +201,9 @@
     font-size: 10px;
 }
 
-/************ widget: Loading *******************/
-div.hupa-loading {
-	background: url(images/ajax-loader.gif) no-repeat;
-	padding-left: 25px;
-	width: 100px;
-    white-space: nowrap;
-    margin-left: auto;
-    margin-right: auto;
-    text-align: left;
-}
 
-/************ view: MessageSendView IMAPMessageView *******************/
+
+/************[ view: MessageSendView IMAPMessageView ]*******************/
 /* re-factor unfinished */
 .hupa-IMAPMessageWidget-Header td.label {
 	width: 175px;
@@ -172,32 +212,16 @@
 	padding-right: 5px;
 }
 
+/************************************************************************/
 /*** Non re-factored stuff ***/
-.hupa-Mailtable-row-notseen {
-    font-weight: 					bold;
-}
-
 .cbg-ButtonContent {
 	font-size: 80%;
 }
-/*** 
-.cbg-RP { 
-    background-color:				#C3D9FF;
-}
-
-.cbg-RPContainer { 
-    border-color:					#C3D9FF;
-}
-***/
 
 .hupa-ErrorLabel, .gwt-PagingOptions .errorMessage {
     color:           			   #FF0000;
 }
 
-.hupa-MailTableControl {
-    background-color:				#C3D9FF;	
-}
-
 .hupa-validationErrorBorder {
 	border:							1pt solid red;
 }
@@ -234,16 +258,6 @@
     background:       				#FFF7D7;
 }
 
-.hupa-Mailtable-row {
-    text-align: 				  	left;
-	vertical-align:  				top;
-	padding: 					  	0px 10px 0px 10px;
-	cursor:	        		   		pointer;
-}
-
-.hupa-Mailtable-cell-date {
-	text-align: 				  	right;
-}
 
 .hupa-IMAPFolder-selected {
 	background:	    			  	#C3D9FF;

Modified: james/hupa/trunk/client/war/images/ajax-loader.gif
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/war/images/ajax-loader.gif?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
Binary files - no diff available.

Modified: james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java (original)
+++ james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java Thu Dec 24 08:30:26 2009
@@ -190,8 +190,12 @@
             msg.setUid(folder.getUID(m));
             msg.setFlags(iFlags);
             msg.setTags(tags);
-            msg.setHasAttachments(hasAttachment(m));
-            
+            try {
+                msg.setHasAttachments(hasAttachment(m));
+            } catch (MessagingException e) {
+                logger.debug("Unable to identify attachments in message UID:" + msg.getUid() + " subject:" + msg.getSubject() + " cause:" + e.getMessage());
+                logger.info("");
+            }
             mList.add(0, msg);
             
         }

Modified: james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/PagingOptions.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/PagingOptions.java?rev=893706&r1=893705&r2=893706&view=diff
==============================================================================
--- james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/PagingOptions.java (original)
+++ james/hupa/trunk/widgets/src/main/java/org/apache/hupa/widgets/ui/PagingOptions.java Thu Dec 24 08:30:26 2009
@@ -52,10 +52,11 @@
     private EnableHyperlink nextLink;
     private Label text = new Label();
     private int currentPage = 1;
-    private Loading loading = new Loading();
+    private Loading loading = null;
     private SimplePanel panel = new SimplePanel();
     
-    public PagingOptions(final PagingScrollTable<?> table, PagingOptionsConstants constants) {
+    public PagingOptions(final PagingScrollTable<?> table, PagingOptionsConstants constants, Loading loading) {
+        this.loading = loading;
         firstLink = new EnableHyperlink("<< " + constants.pageFirst(),"");
         prevLink = new EnableHyperlink("< " + constants.pagePrev(),"");
         lastLink = new EnableHyperlink(constants.pageLast() + " >>","");
@@ -67,7 +68,6 @@
         pagingPanel.add(prevLink);
         pagingPanel.add(nextLink);
         pagingPanel.add(lastLink);
-        loading.hide();
         panel.setWidget(text);
         panel.setWidth("100px");
         pagingPanel.setCellHorizontalAlignment(panel, HorizontalPanel.ALIGN_CENTER);
@@ -184,14 +184,12 @@
     
 
     protected void loading(boolean isLoading) {
-        if (isLoading) {
-            loading.show();
-            panel.setWidget(loading);
-        } else {
-            loading.hide();
-            panel.setWidget(text);
+        if (loading != null) {
+            if (isLoading)
+                loading.show();
+            else
+                loading.hide();
         }
-    
     }
     
     protected void updateControl(int startCount, int endCount, int rows) {



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