Author: dongxu
Date: Tue Jun  9 16:28:51 2015
New Revision: 1684470

URL: http://svn.apache.org/r1684470
Log:
fix the UiHandlers with enable and disable rather than the event registration.

Modified:
    
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/ui/ToolBarView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/ToolBarView.java?rev=1684470&r1=1684469&r2=1684470&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
 Tue Jun  9 16:28:51 2015
@@ -29,10 +29,8 @@ import org.apache.hupa.shared.events.Sho
 
 import com.google.gwt.core.client.GWT;
 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.event.shared.HandlerRegistration;
 import com.google.gwt.place.shared.PlaceController;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.uibinder.client.UiBinder;
@@ -44,12 +42,13 @@ import com.google.gwt.user.client.ui.Dec
 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.UIObject;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.inject.Inject;
 
 public class ToolBarView extends Composite implements 
ToolBarActivity.Displayable {
-
+       
     @Inject private PlaceController placeController;
     @Inject private EventBus eventBus;
 
@@ -68,18 +67,6 @@ public class ToolBarView extends Composi
     @UiField public HTMLPanel replyAllTip;
     @UiField public HTMLPanel forwardTip;
 
-
-    // FIXME: !!!! The handlers management in this view is awful.
-    // It should use @UiHandlers with a enable/disble property.
-
-    // Absolutely!!!
-
-    HandlerRegistration deleteReg;
-    HandlerRegistration markReg;
-    HandlerRegistration replyReg;
-    HandlerRegistration replyAllReg;
-    HandlerRegistration forwardReg;
-
     @UiField public Style style;
 
     public interface Style extends CssResource {
@@ -182,61 +169,59 @@ public class ToolBarView extends Composi
     }
 
     @UiHandler("compose")
-    public void handleClick(ClickEvent e) {
+    public void handleCompose(ClickEvent e) {
         placeController.goTo(new ComposePlace("new").with(parameters));
     }
-
-    private ClickHandler forwardHandler = new ClickHandler() {
-
-        @Override
-        public void onClick(ClickEvent event) {
+    
+    @UiHandler("forward")
+    public void handleForward(ClickEvent e) {
+       if(isEnabled(forward)){
             placeController.goTo(new ComposePlace("forward").with(parameters));
-        }
-
-    };
-    private ClickHandler replyAllHandler = new ClickHandler() {
-
-        @Override
-        public void onClick(ClickEvent event) {
-            placeController.goTo(new 
ComposePlace("replyAll").with(parameters));
-        }
-
-    };
-    private ClickHandler replyHandler = new ClickHandler() {
-
-        @Override
-        public void onClick(ClickEvent event) {
-            placeController.goTo(new ComposePlace("reply").with(parameters));
-        }
-
-    };
-    private ClickHandler deleteHandler = new ClickHandler() {
-
-        @Override
-        public void onClick(ClickEvent event) {
-            eventBus.fireEvent(new DeleteClickEvent());
-        }
-    };
-
-    private ClickHandler markHandler = 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();
-            simplePopup.setPopupPosition(left, top);
-            simplePopup.show();
-        }
-    };
-
-    private ClickHandler rawHandler = new ClickHandler() {
-        @Override
-        public void onClick(ClickEvent event) {
-            eventBus.fireEvent(new ShowRawEvent());
-        }
-    };
-
-    private HandlerRegistration rawReg;
+       }
+    }
+    
+    @UiHandler("replyAll")
+    public void handleReplyAll(ClickEvent e) {
+       if(isEnabled(replyAll)){
+               placeController.goTo(new 
ComposePlace("replyAll").with(parameters));
+       }
+    }
+    
+    @UiHandler("reply")
+    public void handleReply(ClickEvent e) {
+       if(isEnabled(reply)){
+               placeController.goTo(new 
ComposePlace("reply").with(parameters));
+       }
+    }
+    
+    @UiHandler("delete")
+    public void handleDelete(ClickEvent e) {
+       if(isEnabled(delete)){
+               eventBus.fireEvent(new DeleteClickEvent());
+       }
+    }
+    
+    @UiHandler("mark")
+    public void handleMark(ClickEvent e) {
+       if(isEnabled(mark)){
+               Widget source = (Widget) e.getSource();
+               int left = source.getAbsoluteLeft();
+               int top = source.getAbsoluteTop() + source.getOffsetHeight();
+               simplePopup.setPopupPosition(left, top);
+               simplePopup.show();
+       }
+    }
+    
+    @UiHandler("raw")
+    public void handleRaw(ClickEvent e) {
+       if(isEnabled(raw)){
+               eventBus.fireEvent(new ShowRawEvent());
+       }
+    }
+    
+    private boolean isEnabled(UIObject whichButton){
+       return !whichButton.getStyleName().contains(style.disabledButton());
+    }
 
     @Override
     public HasClickHandlers getMark() {
@@ -314,60 +299,34 @@ public class ToolBarView extends Composi
     private void addSendingDisableds() {
         reply.addStyleName(style.disabledButton());
         replyAllGroup.addStyleName(style.disabledButton());
+        replyAll.addStyleName(style.disabledButton());
         forwardGroup.addStyleName(style.disabledButton());
+        forward.addStyleName(style.disabledButton());
         replyAllTip.addStyleName(style.disabledButton());
         forwardTip.addStyleName(style.disabledButton());
         raw.addStyleName(style.disabledButton());
-
-        if (replyReg != null) {
-            replyReg = removeHandler(replyReg);
-            replyAllReg = removeHandler(replyAllReg);
-            forwardReg = removeHandler(forwardReg);
-            rawReg = removeHandler(rawReg);
-            replyReg = null;
-            replyAllReg = null;
-            forwardReg = null;
-            rawReg = null;
-        }
-
     }
 
     private void removeSendingDisableds() {
         reply.removeStyleName(style.disabledButton());
         replyAllGroup.removeStyleName(style.disabledButton());
+        replyAll.removeStyleName(style.disabledButton());
         forwardGroup.removeStyleName(style.disabledButton());
+        forward.removeStyleName(style.disabledButton());
         replyAllTip.removeStyleName(style.disabledButton());
         forwardTip.removeStyleName(style.disabledButton());
         raw.removeStyleName(style.disabledButton());
-
-        if (rawReg == null) rawReg = raw.addClickHandler(rawHandler);
-        if (replyReg == null) replyReg = reply.addClickHandler(replyHandler);
-        if (replyAllReg == null) replyAllReg = 
replyAll.addClickHandler(replyAllHandler);
-        if (forwardReg == null) forwardReg = 
forward.addClickHandler(forwardHandler);
     }
 
 
     private void addDealingDisableds() {
-        if (deleteReg != null) {
-            deleteReg = removeHandler(deleteReg);
-            markReg = removeHandler(markReg);
-            deleteReg = null;
-            markReg = null;
-        }
         delete.addStyleName(style.disabledButton());
         mark.addStyleName(style.disabledButton());
     }
 
     private void removeDealingDisableds() {
-        if (deleteReg == null) deleteReg = 
delete.addClickHandler(deleteHandler);
-        if (markReg == null) markReg = mark.addClickHandler(markHandler);
         delete.removeStyleName(style.disabledButton());
         mark.removeStyleName(style.disabledButton());
     }
 
-    protected HandlerRegistration removeHandler(HandlerRegistration handler) {
-        if (handler != null) handler.removeHandler();
-        return null;
-    }
-
 }

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=1684470&r1=1684469&r2=1684470&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
 Tue Jun  9 16:28:51 2015
@@ -200,13 +200,13 @@
         <g:HTMLPanel tag="span" addStyleNames="{style.spacer}"></g:HTMLPanel>
         <g:Anchor ui:field="reply"
             addStyleNames="{style.button} {style.reply} {style.handCursor}" 
title="Reply">Reply</g:Anchor>
-        <g:HTMLPanel ui:field="replyAllGroup" tag="span"
+        <g:HTMLPanel ui:field="replyAllGroup"
             addStyleNames="{style.dropButton} {style.handCursor}" title="Reply 
all">
             <g:Anchor ui:field="replyAll" addStyleNames="{style.button} 
{style.replyAll}">Reply all
             </g:Anchor>
             <g:HTMLPanel ui:field="replyAllTip" tag="span" 
addStyleNames="{style.dropButtonTip}" />
         </g:HTMLPanel>
-        <g:HTMLPanel ui:field="forwardGroup" tag="span"
+        <g:HTMLPanel ui:field="forwardGroup"
             addStyleNames="{style.dropButton} {style.handCursor}" 
title="Forward">
             <g:Anchor ui:field="forward" addStyleNames="{style.button} 
{style.forward}">Forward
             </g:Anchor>



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