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