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