Author: dongxu
Date: Thu Sep 12 04:15:00 2013
New Revision: 1522316

URL: http://svn.apache.org/r1522316
Log:
make the unread message row's font bold and the read ones normal, see issue#33

Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/MessagesCellTable.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css

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=1522316&r1=1522315&r2=1522316&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 04:15:00 2013
@@ -504,6 +504,7 @@ import java.util.List;
 
 import org.apache.hupa.client.HupaConstants;
 import org.apache.hupa.client.bundles.HupaImageBundle;
+import org.apache.hupa.shared.data.MessageImpl.IMAPFlag;
 import org.apache.hupa.shared.domain.Message;
 
 import com.google.gwt.cell.client.CheckboxCell;
@@ -519,6 +520,7 @@ import com.google.gwt.resources.client.I
 import com.google.gwt.user.cellview.client.Column;
 import com.google.gwt.user.cellview.client.DataGrid;
 import com.google.gwt.user.cellview.client.Header;
+import com.google.gwt.user.cellview.client.RowStyles;
 import com.google.gwt.view.client.DefaultSelectionEventManager;
 import com.google.gwt.view.client.MultiSelectionModel;
 import com.google.gwt.view.client.ProvidesKey;
@@ -538,10 +540,15 @@ public class MessagesCellTable extends D
 
        public interface Resources extends DataGrid.Resources {
 
-               DataGrid.Resources INSTANCE = GWT.create(Resources.class);
+               Resources INSTANCE = GWT.create(Resources.class);
 
                @Source("res/CssMessagesCellTable.css")
-               Style dataGridStyle();
+               CustomStyle dataGridStyle();
+       }
+
+       public interface CustomStyle extends Style {
+               String fontBold();
+               String fontNormal();
        }
 
        public CheckboxColumn getCheckboxCol() {
@@ -554,12 +561,10 @@ public class MessagesCellTable extends D
                        return item == null ? null : item.getUid();
                }
        };
-       private final SelectionModel<? super Message> selectionModel = new 
MultiSelectionModel<Message>(
-                       KEY_PROVIDER);
+       private final SelectionModel<? super Message> selectionModel = new 
MultiSelectionModel<Message>(KEY_PROVIDER);
 
        @Inject
-       public MessagesCellTable(final HupaImageBundle imageBundle,
-                       final HupaConstants constants) {
+       public MessagesCellTable(final HupaImageBundle imageBundle, final 
HupaConstants constants) {
                super(PAGE_SIZE, Resources.INSTANCE);
 
                this.imageBundle = imageBundle;
@@ -572,8 +577,7 @@ public class MessagesCellTable extends D
                                return false;
                        }
                };
-               Header<ImageResource> attachedPin = new Header<ImageResource>(
-                               headerAttached) {
+               Header<ImageResource> attachedPin = new 
Header<ImageResource>(headerAttached) {
                        @Override
                        public ImageResource getValue() {
                                return imageBundle.attachmentIcon();
@@ -582,8 +586,7 @@ public class MessagesCellTable extends D
                header.setUpdater(new ValueUpdater<Boolean>() {
                        @Override
                        public void update(Boolean value) {
-                               List<Message> displayedItems = 
MessagesCellTable.this
-                                               .getVisibleItems();
+                               List<Message> displayedItems = 
MessagesCellTable.this.getVisibleItems();
                                for (Message msg : displayedItems) {
                                        selectionModel.setSelected(msg, value);
                                }
@@ -604,10 +607,27 @@ public class MessagesCellTable extends D
                addColumn(dateCol, constants.mailTableDate());
                setColumnWidth(dateCol, 10, Unit.EM);
                setRowCount(PAGE_SIZE, false);
+               setRowStyles(new RowStyles<Message>() {
+                       @Override
+                       public String getStyleNames(Message row, int rowIndex) {
+                               return haveRead(row) ? markAsRead() : 
markAsUnread();
+                       }
+
+                       private String markAsUnread() {
+                               return 
Resources.INSTANCE.dataGridStyle().fontBold();
+                       }
+
+                       private String markAsRead() {
+                               return 
Resources.INSTANCE.dataGridStyle().fontNormal();
+                       }
+
+                       private boolean haveRead(Message row) {
+                               return row.getFlags().contains(IMAPFlag.SEEN);
+                       }
+               });
                setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
                setAutoHeaderRefreshDisabled(true);
-               setSelectionModel(selectionModel,
-                               DefaultSelectionEventManager.<Message> 
createCheckboxManager(0));
+               setSelectionModel(selectionModel, 
DefaultSelectionEventManager.<Message> createCheckboxManager(0));
        }
 
        public class CheckboxColumn extends Column<Message, Boolean> {
@@ -662,8 +682,10 @@ public class MessagesCellTable extends D
        }
 
        private class DateColumn extends Column<Message, Date> {
+               private static final String DATE_FORMAT = "dd.MMM.yyyy";
+
                public DateColumn() {
-                       super(new 
DateCell(DateTimeFormat.getFormat("dd.MMM.yyyy")));
+                       super(new 
DateCell(DateTimeFormat.getFormat(DATE_FORMAT)));
                }
 
                @Override

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css?rev=1522316&r1=1522315&r2=1522316&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssMessagesCellTable.css
 Thu Sep 12 04:15:00 2013
@@ -41,7 +41,7 @@
 }
 
 .dataGridCell {
-    cursor: pointer;
+       cursor: pointer;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
@@ -90,8 +90,8 @@
 }
 
 .dataGridEvenRowCell {
-    border-left: 1px dotted #bbd3da;
-    border-bottom: 0px solid #bbd3da;
+       border-left: 1px dotted #bbd3da;
+       border-bottom: 0px solid #bbd3da;
 }
 
 .dataGridOddRow {
@@ -99,8 +99,8 @@
 }
 
 .dataGridOddRowCell {
-    border-left: 1px dotted #bbd3da;
-    border-bottom: 0px solid #bbd3da;
+       border-left: 1px dotted #bbd3da;
+       border-bottom: 0px solid #bbd3da;
 }
 
 .dataGridHoveredRow {
@@ -108,8 +108,8 @@
 }
 
 .dataGridHoveredRowCell {
-    border-left: 1px dotted #eee;
-    border-bottom: 0px solid #eee;
+       border-left: 1px dotted #eee;
+       border-bottom: 0px solid #eee;
 }
 
 .dataGridKeyboardSelectedRow {
@@ -134,8 +134,8 @@
 }
 
 .dataGridSelectedRowCell {
-    border-left: 1px dotted #628cd5;
-    border-bottom: 0px solid #628cd5;
+       border-left: 1px dotted #628cd5;
+       border-bottom: 0px solid #628cd5;
 }
 
 /**
@@ -143,4 +143,12 @@
  */
 .dataGridKeyboardSelectedCell {
        border: selectionBorderWidth solid #d7dde8;
+}
+
+.fontBold {
+       font-weight: bold;
+}
+
+.fontNormal {
+       font-weight: normal;
 }
\ No newline at end of file



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

Reply via email to