Author: dongxu
Date: Thu Sep 12 04:16:09 2013
New Revision: 1522319

URL: http://svn.apache.org/r1522319
Log:
link the mark action to the message list such that they can change upon the 
actions

Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
    
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/ToolBarView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.ui.xml

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java?rev=1522319&r1=1522318&r2=1522319&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/ToolBarActivity.java
 Thu Sep 12 04:16:09 2013
@@ -21,6 +21,7 @@ package org.apache.hupa.client.activity;
 
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import java.util.ArrayList;
 import java.util.List;
 
@@ -150,9 +151,13 @@ public class ToolBarActivity extends App
        }
 =======
 =======
+=======
+import org.apache.hupa.client.ui.MessagesCellTable;
+>>>>>>> link the mark action to the message list such that they can change 
upon the actions
 import org.apache.hupa.client.ui.ToolBarView.Parameters;
 >>>>>>> coping with reply and forward sending message
 import org.apache.hupa.client.ui.WidgetDisplayable;
+import org.apache.hupa.shared.domain.Message;
 import org.apache.hupa.shared.events.ExpandMessageEvent;
 import org.apache.hupa.shared.events.ExpandMessageEventHandler;
 import org.apache.hupa.shared.events.LoadMessagesEvent;
@@ -160,14 +165,19 @@ import org.apache.hupa.shared.events.Loa
 import org.apache.hupa.shared.events.LoginEvent;
 import org.apache.hupa.shared.events.LoginEventHandler;
 
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.Widget;
 import com.google.inject.Inject;
 
 public class ToolBarActivity extends AppBaseActivity {
 
        @Inject private Displayable display;
+       @Inject private MessagesCellTable table;
 
        @Override
        public void start(AcceptsOneWidget container, EventBus eventBus) {
@@ -197,9 +207,43 @@ public class ToolBarActivity extends App
                eventBus.addHandler(ExpandMessageEvent.TYPE, new 
ExpandMessageEventHandler() {
                        public void onExpandMessage(ExpandMessageEvent event) {
                                display.enableMessageTools();
-                               display.setParameters(new 
Parameters(event.getUser(), event.getFolder(), event.getMessage(), 
event.getMessageDetails()));
+                               display.setParameters(new 
Parameters(event.getUser(), event.getFolder(), event.getMessage(), event
+                                               .getMessageDetails()));
                        }
                });
+               registerHandler(display.getMark().addClickHandler(new 
ClickHandler() {
+                       public void onClick(ClickEvent event) {
+                               // Reposition the popup relative to the button
+                               Widget source = (Widget) event.getSource();
+                               int left = source.getAbsoluteLeft();
+                               int top = source.getAbsoluteTop() + 
source.getOffsetHeight();
+                               display.getPopup().setPopupPosition(left, top);
+                               // Show the popup
+                               display.getPopup().show();
+                       }
+               }));
+               registerHandler(display.getMarkRead().addClickHandler(new 
ClickHandler() {
+                       @Override
+                       public void onClick(ClickEvent event) {
+                               toMarkRead(true);
+                               display.getPopup().hide();
+                       }
+               }));
+               registerHandler(display.getMarkUnread().addClickHandler(new 
ClickHandler() {
+                       @Override
+                       public void onClick(ClickEvent event) {
+                               toMarkRead(false);
+                               display.getPopup().hide();
+                       }
+               }));
+       }
+
+       protected void toMarkRead(boolean read) {
+               for (Message msg : table.getVisibleItems()) {
+                       if (table.getSelectionModel().isSelected(msg)) {
+                               table.markRead(msg, read);
+                       }
+               }
        }
 
        public interface Displayable extends WidgetDisplayable {
@@ -214,6 +258,14 @@ public class ToolBarActivity extends App
                HasClickHandlers getForward();
 
                void setParameters(Parameters parameters);
+
+               HasClickHandlers getMarkUnread();
+
+               HasClickHandlers getMarkRead();
+
+               HasClickHandlers getMark();
+
+               PopupPanel getPopup();
        }
 >>>>>>> add enable tool bar buttons toggling event, with being related to 
 >>>>>>> issue #31
 }

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=1522319&r1=1522318&r2=1522319&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:16:09 2013
@@ -610,24 +610,42 @@ public class MessagesCellTable extends D
                setRowStyles(new RowStyles<Message>() {
                        @Override
                        public String getStyleNames(Message row, int rowIndex) {
-                               return haveRead(row) ? markAsRead() : 
markAsUnread();
+                               return getMessageStyle(row);
                        }
+               });
+               redraw();
+               setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
+               setAutoHeaderRefreshDisabled(true);
+               setSelectionModel(selectionModel, 
DefaultSelectionEventManager.<Message> createCheckboxManager(0));
+       }
 
-                       private String markAsUnread() {
-                               return 
Resources.INSTANCE.dataGridStyle().fontBold();
-                       }
 
-                       private String markAsRead() {
-                               return 
Resources.INSTANCE.dataGridStyle().fontNormal();
-                       }
+       private String getMessageStyle(Message row) {
+               return haveRead(row) ? getReadStyle() : getUnreadStyle();
+       }
+       private String getUnreadStyle() {
+               return Resources.INSTANCE.dataGridStyle().fontBold();
+       }
 
-                       private boolean haveRead(Message row) {
-                               return row.getFlags().contains(IMAPFlag.SEEN);
+       private String getReadStyle() {
+               return Resources.INSTANCE.dataGridStyle().fontNormal();
+       }
+
+       private boolean haveRead(Message row) {
+               return row.getFlags().contains(IMAPFlag.SEEN);
+       }
+       public void markRead(final Message message, final boolean read) {
+               setRowStyles(new RowStyles<Message>() {
+                       @Override
+                       public String getStyleNames(Message row, int rowIndex) {
+                               if (message.equals(row)) {
+                                       return (read ? getReadStyle() : 
getUnreadStyle());
+                               } else {
+                                       return getMessageStyle(row);// keep 
original
+                               }
                        }
                });
-               setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
-               setAutoHeaderRefreshDisabled(true);
-               setSelectionModel(selectionModel, 
DefaultSelectionEventManager.<Message> createCheckboxManager(0));
+               redraw();
        }
 
        public class CheckboxColumn extends Column<Message, Boolean> {

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java?rev=1522319&r1=1522318&r2=1522319&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java
 Thu Sep 12 04:16:09 2013
@@ -371,6 +371,7 @@ import com.google.gwt.user.client.ui.Com
 import com.google.gwt.user.client.ui.DecoratedPopupPanel;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.HTMLPanel;
+import com.google.gwt.user.client.ui.PopupPanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.inject.Inject;
@@ -405,6 +406,7 @@ public class ToolBarView extends Composi
        }
 
        private VerticalPanel popup;
+       final DecoratedPopupPanel simplePopup = new DecoratedPopupPanel(true);
        private Anchor markRead;
        private Anchor markUnread;
 
@@ -511,6 +513,7 @@ public class ToolBarView extends Composi
 <<<<<<< HEAD
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 >>>>>>> make login page as one part of the overall layout & splite layout to 
 >>>>>>> little one
 =======
                reply.addStyleName(style.disabledButton());
@@ -518,6 +521,8 @@ public class ToolBarView extends Composi
 =======
 =======
                final DecoratedPopupPanel simplePopup = new 
DecoratedPopupPanel(true);
+=======
+>>>>>>> link the mark action to the message list such that they can change 
upon the actions
                simplePopup.addStyleName(style.popupMenu());
                mark.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
@@ -531,8 +536,8 @@ public class ToolBarView extends Composi
                        }
                });
                popup = new VerticalPanel();
-               markRead = new Anchor("As Unread");
-               markUnread = new Anchor("As Read");
+               markRead = new Anchor("As Read");
+               markUnread = new Anchor("As Unread");
                popup.addStyleName(style.toolBarMenu());
                markRead.addStyleName(style.activeIcon());
                markRead.addStyleName(style.listicon());
@@ -547,6 +552,21 @@ public class ToolBarView extends Composi
        }
 
        @Override
+       public HasClickHandlers getMark() {
+               return mark;
+       }
+
+       @Override
+       public HasClickHandlers getMarkRead() {
+               return markRead;
+       }
+
+       @Override
+       public HasClickHandlers getMarkUnread() {
+               return markUnread;
+       }
+
+       @Override
        public HasClickHandlers getReply() {
                return reply;
        }
@@ -560,6 +580,10 @@ public class ToolBarView extends Composi
        public HasClickHandlers getForward() {
                return forward;
        }
+       @Override
+       public PopupPanel getPopup() {
+               return simplePopup;
+       }
 
        // TODO realy disabled the click event of the tool bar coupled with 
graying
        @Override

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.ui.xml?rev=1522319&r1=1522318&r2=1522319&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.ui.xml
 Thu Sep 12 04:16:09 2013
@@ -299,6 +299,12 @@
                .toolBarMenu td {
             border-top: 1px solid #5a5a5a;
             border-bottom: 1px solid #333;
+            padding: 3px 8px;
+        }
+        
+        .toolBarMenu td:hover {
+              background-color: #0186ba;
+
         }
                
                .activeIcon {
@@ -309,7 +315,7 @@
                        text-decoration: none;
                        min-height: 14px;
                        color: #eee;
-                       padding: 2px 20px;
+                       padding: 2px 25px;
                        cursor: default;
                }
                



---------------------------------------------------------------------
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