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:17:08 UTC

svn commit: r1522322 - in /james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui: FolderListView.java RightCellTree.java res/CssFolderListView.css

Author: dongxu
Date: Thu Sep 12 04:17:07 2013
New Revision: 1522322

URL: http://svn.apache.org/r1522322
Log:
add style to popup menu

Added:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/RightCellTree.java
Modified:
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
    james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java?rev=1522322&r1=1522321&r2=1522322&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/FolderListView.java Thu Sep 12 04:17:07 2013
@@ -224,7 +224,6 @@ import org.apache.hupa.client.place.Comp
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.place.shared.Place;
-import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.user.cellview.client.CellTree;
@@ -237,7 +236,7 @@ import com.google.inject.assistedinject.
 public class FolderListView extends Composite implements
 		FolderListActivity.Displayable {
 	@UiField SimplePanel thisView;
-	private FolderCellTree cellTree;
+	private RightCellTree cellTree;
 	// FIXME here we can not support another cell tree, since both of their
 	// style
 	// would not be cleared.
@@ -255,7 +254,7 @@ public class FolderListView extends Comp
 			}
 			thisView.add(contactPanel);
 		} else {
-			cellTree = new FolderCellTree(viewModel, null, Resources.INSTANCE);
+			cellTree = new RightCellTree(viewModel);
 			cellTree.setAnimationEnabled(true);
 			if (thisView.getWidget() != null
 					&& thisView.getWidget() instanceof HTMLPanel) {
@@ -271,17 +270,6 @@ public class FolderListView extends Comp
 >>>>>>> make compose panel left another widget rather than cell tree
 	}
 
-	public interface Resources extends CellTree.Resources {
-
-		Resources INSTANCE = GWT.create(Resources.class);
-
-		@Source("res/CssFolderListView.css")
-		public CellTree.Style cellTreeStyle();
-
-		@Source("res/listicons.png")
-		public ImageResource listicons();
-	}
-
 	interface FolderListUiBinder extends UiBinder<SimplePanel, FolderListView> {
 	}
 

Added: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/RightCellTree.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/RightCellTree.java?rev=1522322&view=auto
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/RightCellTree.java (added)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/RightCellTree.java Thu Sep 12 04:17:07 2013
@@ -0,0 +1,104 @@
+package org.apache.hupa.client.ui;
+
+import com.google.gwt.core.shared.GWT;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.user.cellview.client.CellTree;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.DecoratedPopupPanel;
+import com.google.gwt.user.client.ui.MenuBar;
+import com.google.gwt.user.client.ui.MenuItem;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.view.client.TreeViewModel;
+
+/**
+ * CellTree with right click event menu drop down
+ */
+public class RightCellTree extends CellTree {
+	final DecoratedPopupPanel simplePopup = new DecoratedPopupPanel(true);
+
+	public <T> RightCellTree(TreeViewModel viewModel, T rootValue, Resources resources) {
+		super(viewModel, rootValue, resources);
+		this.sinkEvents(Event.ONMOUSEUP | Event.ONDBLCLICK | Event.ONCONTEXTMENU);
+		MenuBar popup = new MenuBar(true);
+		MenuItem newItem = new MenuItem("New subfolder", true, newSubfolderCommand);
+		MenuItem markItem = new MenuItem("Mark all as read", true, markAllReadCommand);
+		newItem.addStyleName(Resources.INSTANCE.cellTreeStyle().menuItem());
+		markItem.addStyleName(Resources.INSTANCE.cellTreeStyle().menuItem());
+		popup.addItem(newItem);
+		popup.addItem(markItem);
+		popup.setVisible(true);
+		simplePopup.add(popup);
+		simplePopup.addStyleName(Resources.INSTANCE.cellTreeStyle().popup());
+	}
+
+	public RightCellTree(FoldersTreeViewModel viewModel) {
+		this(viewModel, null, Resources.INSTANCE);
+	}
+
+	Command newSubfolderCommand = new Command() {
+		public void execute() {
+			Window.alert("//TODO New subfolder");
+		}
+	};
+
+	Command markAllReadCommand = new Command() {
+		public void execute() {
+			Window.alert("//TODO Mark all as read");
+		}
+	};
+
+	@Override
+	public void onBrowserEvent(Event event) {
+		GWT.log("onBrowserEvent", null);
+		event.stopPropagation(); // propagated
+		event.preventDefault();
+		super.onBrowserEvent(event);
+		switch (DOM.eventGetType(event)) {
+		case Event.ONMOUSEUP:
+			if (DOM.eventGetButton(event) == Event.BUTTON_LEFT) {
+				GWT.log("left clicked.", null);
+			}
+			if (DOM.eventGetButton(event) == Event.BUTTON_RIGHT) {
+				GWT.log("right clicked.", null);
+				int x = DOM.eventGetClientX(event);
+				int y = DOM.eventGetClientY(event);
+				simplePopup.setPopupPosition(x, y);
+				simplePopup.show();
+			}
+			break;
+		case Event.ONDBLCLICK:
+			break;
+
+		case Event.ONCONTEXTMENU:
+			GWT.log("Event.ONCONTEXTMENU", null);
+			break;
+
+		default:
+			break; // Do nothing
+		}
+	}
+
+	public interface RightClickHandler extends ClickHandler {
+		void onRightClick(Widget sender, Event event);
+	}
+
+	public interface Css extends Style {
+		String popup();
+		String menuItem();
+	}
+
+	public interface Resources extends CellTree.Resources {
+
+		Resources INSTANCE = GWT.create(Resources.class);
+
+		@Source("res/CssFolderListView.css")
+		public Css cellTreeStyle();
+
+		@Source("res/listicons.png")
+		public ImageResource listicons();
+	}
+}

Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css?rev=1522322&r1=1522321&r2=1522322&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/res/CssFolderListView.css Thu Sep 12 04:17:07 2013
@@ -82,4 +82,13 @@ div:focus { outline: none; }
 }
 
 .cellTreeShowMoreButton {
+}
+
+.popup{
+	border:1px solid black;
+	background-color:rgba(250, 250, 250, 0.5);
+}
+
+.menuItem{
+	cursor: pointer;
 }
\ No newline at end of file



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