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 do...@apache.org on 2013/09/12 06:16:09 UTC

svn commit: r1522319 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client: activity/ToolBarActivity.java ui/MessagesCellTable.java ui/ToolBarView.java ui/ToolBarView.ui.xml

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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org