Author: norman
Date: Sun Aug 23 19:25:01 2009
New Revision: 807004

URL: http://svn.apache.org/viewvc?rev=807004&view=rev
Log:
cancel edit on expose

Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java?rev=807004&r1=807003&r2=807004&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java 
Sun Aug 23 19:25:01 2009
@@ -35,12 +35,15 @@
 import org.apache.hupa.client.widgets.EditEvent;
 import org.apache.hupa.client.widgets.EditHandler;
 import org.apache.hupa.client.widgets.HasDialog;
+import org.apache.hupa.client.widgets.HasEditable;
 import org.apache.hupa.client.widgets.HasEnable;
 import org.apache.hupa.client.widgets.IMAPTreeItem;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.User;
 import org.apache.hupa.shared.events.DecreaseUnseenEvent;
 import org.apache.hupa.shared.events.DecreaseUnseenEventHandler;
+import org.apache.hupa.shared.events.ExpandMessageEvent;
+import org.apache.hupa.shared.events.ExpandMessageEventHandler;
 import org.apache.hupa.shared.events.LoadMessagesEvent;
 import org.apache.hupa.shared.rpc.CreateFolder;
 import org.apache.hupa.shared.rpc.DeleteFolder;
@@ -66,6 +69,7 @@
        protected User user;
        protected IMAPTreeItem tItem;
        protected IMAPFolder folder;
+       private HasEditable editableTreeItem;
 
        @Inject
        public IMAPFolderPresenter(Display display, EventBus eventBus, 
DispatchAsync dispatcher) {
@@ -85,7 +89,7 @@
                public HasEnable getDeleteEnable();
                public HasEnable getNewEnable();
                public void deleteSelectedFolder();
-               public void createFolder(EditHandler handler);
+               public HasEditable createFolder(EditHandler handler);
        }
 
        protected void loadTreeItems() {
@@ -188,6 +192,15 @@
        @Override
        protected void onBind() {
                
+               registerHandler(eventBus.addHandler(ExpandMessageEvent.TYPE, 
new ExpandMessageEventHandler() {
+
+                       public void onExpandMessage(ExpandMessageEvent event) {
+                               if (editableTreeItem.isEdit()) {
+                                       editableTreeItem.cancelEdit();
+                               }
+                       }
+                       
+               }));
                registerHandler(eventBus.addHandler(DecreaseUnseenEvent.TYPE, 
new DecreaseUnseenEventHandler() {
 
                        public void onDecreaseUnseenEvent(DecreaseUnseenEvent 
event) {
@@ -259,7 +272,7 @@
                registerHandler(display.getNewClick().addClickHandler(new 
ClickHandler() {
 
                        public void onClick(ClickEvent event) {
-                               display.createFolder(new EditHandler() {
+                               editableTreeItem = display.createFolder(new 
EditHandler() {
 
                                        public void onEditEvent(EditEvent 
event) {
                                                final IMAPTreeItem item = 
(IMAPTreeItem)event.getSource();

Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java?rev=807004&r1=807003&r2=807004&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java Sun 
Aug 23 19:25:01 2009
@@ -34,6 +34,7 @@
 import org.apache.hupa.client.widgets.EditHandler;
 import org.apache.hupa.client.widgets.EditableTree;
 import org.apache.hupa.client.widgets.HasDialog;
+import org.apache.hupa.client.widgets.HasEditable;
 import org.apache.hupa.client.widgets.HasEnable;
 import org.apache.hupa.client.widgets.IMAPTreeItem;
 import org.apache.hupa.client.widgets.Loading;
@@ -340,8 +341,8 @@
         * (non-Javadoc)
         * @see 
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#createFolder(org.apache.hupa.client.widgets.EditHandler)
         */
-       public void createFolder(EditHandler handler) {
-               IMAPTreeItem selected = 
(IMAPTreeItem)folderTree.getSelectedItem();
+       public HasEditable createFolder(EditHandler handler) {
+               final IMAPTreeItem selected = 
(IMAPTreeItem)folderTree.getSelectedItem();
                IMAPFolder oldFolder = (IMAPFolder) selected.getUserObject();
                
                // Generate a new folder with a whitespace as name, this is 
needed as workaround 
@@ -359,6 +360,7 @@
                                if 
(event.getEventType().equals(EditEvent.EventType.Cancel)) {
                                        // remove the folder 
                                        newItem.remove();
+                                       folderTree.setSelectedItem(selected, 
false);
                                } else if 
(event.getEventType().equals(EditEvent.EventType.Stop)) {
                                        // Select the new created folder and 
fire an event
                                        folderTree.setSelectedItem(newItem, 
true);
@@ -376,6 +378,8 @@
                
                // reset the text of the new item (remove the whitespace)
                newItem.setText("");
+               
+               return newItem;
        }
        
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to