Author: norman
Date: Tue Aug 18 13:35:22 2009
New Revision: 805408

URL: http://svn.apache.org/viewvc?rev=805408&view=rev
Log:
Start to adding support for delete/rename/create folders
Some refactoring for better re-usability of widgets

Added:
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditEvent.java
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditHandler.java
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTree.java
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTreeItem.java
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditHandlers.java
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditable.java
Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java
    labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java
    labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java
    labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java
    labs/hupa/war/Hupa.css

Modified: labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java?rev=805408&r1=805407&r2=805408&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.java Tue Aug 
18 13:35:22 2009
@@ -83,4 +83,8 @@
        public String all();
 
        public String none();
+
+       public String newFolder();
+       public String renameFolder();
+       public String deleteFolder();
 }

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties?rev=805408&r1=805407&r2=805408&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/HupaConstants.properties Tue 
Aug 18 13:35:22 2009
@@ -29,4 +29,7 @@
 cancelButton=Cancel
 select=Select
 none=None
-all=All
\ No newline at end of file
+all=All
+newFolder=New
+renameFolder=Rename
+deleteFolder=Delete
\ No newline at end of file

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=805408&r1=805407&r2=805408&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 
Tue Aug 18 13:35:22 2009
@@ -44,6 +44,9 @@
 import org.apache.hupa.shared.rpc.FetchFoldersResult;
 
 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.logical.shared.HasSelectionHandlers;
 import com.google.gwt.event.logical.shared.SelectionEvent;
 import com.google.gwt.event.logical.shared.SelectionHandler;
@@ -67,7 +70,7 @@
        public interface Display extends WidgetDisplay {
                public HasSelectionHandlers<TreeItem> getTree();
                public void bindTreeItems(List<IMAPTreeItem> treeList);
-       }
+               public HasClickHandlers getRenameClick();       }
 
        protected void loadTreeItems() {
                dispatcher.execute(new FetchFolders(user.getSessionId()), new 
DisplayCallback<FetchFoldersResult>(display) {
@@ -167,6 +170,15 @@
                        }
                        
                });
+               
+               display.getRenameClick().addClickHandler(new ClickHandler() {
+
+                       public void onClick(ClickEvent event) {
+                               tItem.startEdit();
+                       }
+                       
+               });
+               
        }
 
        @Override

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=805408&r1=805407&r2=805408&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 Tue 
Aug 18 13:35:22 2009
@@ -24,9 +24,11 @@
 
 import net.customware.gwt.presenter.client.EventBus;
 
+import org.apache.hupa.client.HupaConstants;
 import org.apache.hupa.client.bundles.IMAPTreeImages;
 import org.apache.hupa.client.dnd.PagingScrollTableRowDragController;
 import org.apache.hupa.client.mvp.IMAPFolderPresenter.Display;
+import org.apache.hupa.client.widgets.EditableTree;
 import org.apache.hupa.client.widgets.IMAPTreeItem;
 import org.apache.hupa.client.widgets.Loading;
 import org.apache.hupa.shared.data.IMAPFolder;
@@ -45,20 +47,28 @@
 import com.allen_sauer.gwt.dnd.client.drop.DropController;
 import com.allen_sauer.gwt.dnd.client.drop.SimpleDropController;
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.logical.shared.HasSelectionHandlers;
 import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Hyperlink;
 import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.Tree;
 import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.inject.Inject;
 
 public class IMAPFolderView extends Composite implements Display{
+       private HupaConstants constants = GWT.create(HupaConstants.class);
        private IMAPTreeImages tImages = GWT.create(IMAPTreeImages.class);
-       private Tree folderTree = new Tree(tImages,true);
+       private EditableTree folderTree = new EditableTree(tImages,true);
+       private VerticalPanel folderPanel = new VerticalPanel();
        private SimplePanel panel = new SimplePanel();
-       
-       
+       private HorizontalPanel folderButtonBar = new HorizontalPanel();
+       private Hyperlink newFolderButton = new 
Hyperlink(constants.newFolder(),"");
+       private Hyperlink renameFolderButton = new 
Hyperlink(constants.renameFolder(),"");
+       private Hyperlink deleteFolderButton = new 
Hyperlink(constants.deleteFolder(),"");
+
        private Loading loader = new Loading(false);
        private List<DropController> dropControllerList = new 
ArrayList<DropController>();
        private EventBus bus;
@@ -67,8 +77,17 @@
        
        @Inject
        public IMAPFolderView(EventBus bus, PagingScrollTableRowDragController 
controllerProvider) {
-               folderTree.setAnimationEnabled(true);           
+               folderTree.setAnimationEnabled(true);   
+               folderPanel.setSpacing(5);
+               folderPanel.add(folderButtonBar);
+               folderPanel.add(folderTree);
+               folderButtonBar.setSpacing(3);
+               folderButtonBar.add(newFolderButton);
+               folderButtonBar.add(renameFolderButton);
+               folderButtonBar.add(deleteFolderButton);
+               deleteFolderButton.setVisible(false);
                panel.add(loader);
+               
                this.controller = controllerProvider;
                this.bus = bus;
                bus.addHandler(LoginEvent.TYPE,new LoginEventHandler() {
@@ -157,7 +176,7 @@
         */
        public void stopProcessing() {
                panel.clear();
-               panel.add(folderTree);
+               panel.add(folderPanel);
        }
        
        /**
@@ -218,5 +237,9 @@
                        super.onLeave(context);
                }
        }
+
+       public HasClickHandlers getRenameClick() {
+               return renameFolderButton;
+       }
        
 }

Added: labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditEvent.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditEvent.java?rev=805408&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditEvent.java 
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditEvent.java Tue 
Aug 18 13:35:22 2009
@@ -0,0 +1,46 @@
+package org.apache.hupa.client.widgets;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class EditEvent extends GwtEvent<EditHandler>{
+       public static final Type<EditHandler> TYPE = new Type<EditHandler>();
+       private EventType eType;
+       private Object oldValue;
+       private Object newValue;
+
+        public enum  EventType{
+               Start,
+               Stop,
+               Cancel
+       }
+        
+        public EditEvent(EventType eType,Object oldValue,Object newValue) {
+                this.eType = eType;
+                this.oldValue = oldValue;
+                this.newValue = newValue;
+        }
+        
+        public EventType getEventType() {
+                return eType;
+        }
+        
+        public Object getOldValue() {
+                return oldValue;
+        }
+        
+        public Object getNewValue() {
+                return newValue;
+        }
+        
+       @Override
+       protected void dispatch(EditHandler handler) {
+               handler.onEditEvent(this);
+       }
+
+       @Override
+       public com.google.gwt.event.shared.GwtEvent.Type<EditHandler> 
getAssociatedType() {
+               return TYPE;
+       }
+
+       
+}

Added: labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditHandler.java?rev=805408&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditHandler.java 
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditHandler.java Tue 
Aug 18 13:35:22 2009
@@ -0,0 +1,8 @@
+package org.apache.hupa.client.widgets;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface EditHandler extends EventHandler{
+
+       public void onEditEvent(EditEvent event);
+}

Added: labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTree.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTree.java?rev=805408&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTree.java 
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTree.java 
Tue Aug 18 13:35:22 2009
@@ -0,0 +1,57 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.widgets;
+
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.ui.Tree;
+import com.google.gwt.user.client.ui.TreeImages;
+import com.google.gwt.user.client.ui.TreeItem;
+
+public class EditableTree extends Tree {
+       public EditableTree(TreeImages images, boolean leaf) {
+               super(images, leaf);
+       }
+
+       /**
+        * 
+        */
+       public void onBrowserEvent(Event event) {
+               TreeItem item = getSelectedItem();
+               
+               // Check if the selectedItem is Editable and if so make sure 
the events are not fired
+               if (item instanceof HasEditable) {
+                       if (item != null && ((HasEditable) item).isEdit()) {
+                               int type = DOM.eventGetType(event);
+                               switch (type) {
+                               case Event.ONCLICK:
+                                       return;
+                               case Event.ONMOUSEDOWN:
+                                       return;
+                               case Event.ONKEYDOWN:
+                                       return;
+                               default:
+                                       break;
+                               }
+                       }
+               }
+               super.onBrowserEvent(event);
+       }
+}

Added: 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTreeItem.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTreeItem.java?rev=805408&view=auto
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTreeItem.java 
(added)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/EditableTreeItem.java 
Tue Aug 18 13:35:22 2009
@@ -0,0 +1,173 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.widgets;
+
+import com.google.gwt.event.dom.client.BlurEvent;
+import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.KeyDownEvent;
+import com.google.gwt.event.dom.client.KeyDownHandler;
+import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.Widget;
+
+public class EditableTreeItem extends TreeItem implements 
HasEditable,HasEditHandlers{
+       protected boolean isEdit = false;
+       protected TextBox editBox = new TextBox();
+       protected Label item = new Label();;
+       protected String itemText;
+       HandlerManager manager = new HandlerManager(this);
+       public EditableTreeItem() {
+               setWidget(item);
+               editBox.setWidth("100px");
+               editBox.addKeyDownHandler(new KeyDownHandler() {
+
+                       public void onKeyDown(KeyDownEvent event) {
+                               int code = event.getNativeKeyCode();
+                               switch (code) {
+                               case KeyCodes.KEY_ENTER:
+                                       stopEdit();
+                                       break;
+                               case KeyCodes.KEY_ESCAPE:
+                                       cancelEdit();
+                                       break;
+
+                               default:
+                                       break;
+                               }
+
+                       }
+
+               });
+               
+               // Just cancel the editing if the user click outside the TextBox
+               editBox.addBlurHandler(new BlurHandler() {
+
+                       public void onBlur(BlurEvent event) {
+                               cancelEdit();
+                       }
+                       
+               });
+       }
+       @Override
+       public void setText(String text) {
+               item.setText(text);
+               itemText = text;
+       }
+
+       @Override
+       public void setWidget(Widget newWidget) {
+               if (newWidget instanceof Label) {
+                       item = (Label)newWidget;
+                       super.setWidget(newWidget);
+               } else {
+                       throw new IllegalArgumentException("Widget need to 
extend Label");
+               }
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.apache.hupa.client.widgets.HasEditable#cancelEdit()
+        */
+       public void cancelEdit() {
+               cancelEdit(itemText);
+       }
+       
+       /**
+        * Cancel the edit and set the text of the TreeItem to the given value
+        * 
+        * @param text
+        */
+       protected void cancelEdit(String text) {
+               setWidget(item);
+               item.setText(text);
+               isEdit = false;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.apache.hupa.client.widgets.HasEditable#isEdit()
+        */
+       public boolean isEdit() {
+               return isEdit;
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.apache.hupa.client.widgets.HasEditable#startEdit()
+        */
+       public void startEdit() {
+               editBox.setText(item.getText());
+               editBox.setFocus(true);
+               editBox.setCursorPos(item.getText().length());
+               super.setWidget(editBox);
+               isEdit = true;
+       }
+       
+       /**
+        * Start editing the TreeItem.
+        * 
+        * @param startValue
+        */
+       protected void startEdit(String startValue) {
+               itemText = startValue;
+               editBox.setText(startValue);
+               editBox.setCursorPos(startValue.length());
+               super.setWidget(editBox);
+               isEdit = true;
+               editBox.setFocus(true);
+       }
+
+       /*
+        * (non-Javadoc)
+        * @see org.apache.hupa.client.widgets.HasEditable#stopEdit()
+        */
+       public void stopEdit() {
+               stopEdit(editBox.getText().trim());
+       }
+       
+       /**
+        * Stop edit and set the text of the TreeItem to the given value
+        * 
+        * @param newValue
+        */
+       protected void stopEdit(String newValue) {
+               item.setText(newValue);
+               setWidget(item);
+               editBox.setText("");            
+               isEdit = false;
+       }
+
+       
+       @Override
+       public String getText() {
+               return item.getText();
+       }
+       
+       public HandlerRegistration addEditHandler(EditHandler handler) {
+               return manager.addHandler(EditEvent.TYPE, handler);
+       }
+       
+        
+
+}

Added: 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditHandlers.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditHandlers.java?rev=805408&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditHandlers.java 
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditHandlers.java 
Tue Aug 18 13:35:22 2009
@@ -0,0 +1,27 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.widgets;
+
+import com.google.gwt.event.shared.HandlerRegistration;
+
+public interface HasEditHandlers {
+
+       public HandlerRegistration addEditHandler(EditHandler handler);
+}

Added: labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditable.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditable.java?rev=805408&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditable.java 
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/HasEditable.java Tue 
Aug 18 13:35:22 2009
@@ -0,0 +1,45 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.hupa.client.widgets;
+
+public interface HasEditable {
+
+       /**
+        * Start editing
+        */
+       public void startEdit();
+       
+       /**
+        * Cancel editing
+        */
+       public void cancelEdit();
+
+       /**
+        * Stop editing
+        */
+       public void stopEdit();
+       
+       /**
+        * Return if editing is currently active
+        * 
+        * @return editing
+        */
+       public boolean isEdit();
+}

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java?rev=805408&r1=805407&r2=805408&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java 
Tue Aug 18 13:35:22 2009
@@ -21,20 +21,11 @@
 
 import org.apache.hupa.shared.data.IMAPFolder;
 
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.SimplePanel;
-import com.google.gwt.user.client.ui.TreeItem;
-
-public class IMAPTreeItem extends TreeItem{
-       private Label tLabel = new Label();
-       
+public class IMAPTreeItem extends EditableTreeItem {   
        public IMAPTreeItem(IMAPFolder folder) {
-               SimplePanel panel = new SimplePanel();
-               panel.add(tLabel);
-
-               setWidget(panel);
                setUserObject(folder);
                setFolderText(folder);
+       
        }
 
        /*
@@ -96,9 +87,12 @@
                setFolderText(folder);
        }
        
-       
        private void setFolderText(IMAPFolder folder) {
-               tLabel.setText(folder.getName() + " 
("+folder.getUnseeMessageCount()+")");
+               setText(getFolderName(folder));
+       }
+       
+       private String getFolderName(IMAPFolder folder) {
+               return folder.getName() + " 
("+folder.getUnseeMessageCount()+")";
        }
        
        /*
@@ -108,8 +102,22 @@
        public void setUserObject(Object obj) {
                if ((obj instanceof IMAPFolder) == false) {
                        throw new IllegalArgumentException("UserObject needs to 
be an instance of IMAPFolder");
-               }
+               }               
+               setFolderText((IMAPFolder)obj);
+
                super.setUserObject(obj);
        }
+
+       @Override
+       public void startEdit() {
+               startEdit(((IMAPFolder)getUserObject()).getName());
+       }
        
+       public void stopEdit() {
+               stopEdit(editBox.getText().trim() + " (" + ((IMAPFolder) 
getUserObject()).getUnseeMessageCount() +")");
+       }
+       
+       public void cancelEdit() {
+               cancelEdit(getFolderName((IMAPFolder)getUserObject()));
+       }
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java?rev=805408&r1=805407&r2=805408&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java Tue Aug 
18 13:35:22 2009
@@ -173,5 +173,15 @@
        public int hashCode() {
                return getFullName().hashCode();
        }
+       
+       public static IMAPFolder from(IMAPFolder folder) {
+               IMAPFolder newFolder = new IMAPFolder();
+               newFolder.setChildIMAPFolders(folder.getChildIMAPFolders());
+               newFolder.setDelimiter(folder.getDelimiter());
+               newFolder.setFullName(folder.getFullName());
+               newFolder.setMessageCount(folder.getMessageCount());
+               newFolder.setUnseenMessageCount(folder.getMessageCount());
+               return newFolder;
+       }
 
 }

Modified: labs/hupa/war/Hupa.css
URL: 
http://svn.apache.org/viewvc/labs/hupa/war/Hupa.css?rev=805408&r1=805407&r2=805408&view=diff
==============================================================================
--- labs/hupa/war/Hupa.css (original)
+++ labs/hupa/war/Hupa.css Tue Aug 18 13:35:22 2009
@@ -6,7 +6,7 @@
     border-color:                                      #E0ECFF;
 }
 
-.cbg-Button, .gwt-HTML, .gwt-Label, .gwt-Tree .gwt-TreeItem, 
.gwt-SuggestBoxPopup .item, hupa-LoginForm, 
.hupa-IMAPMessageWidget-Header-Content, .hupa-ToolTip, .hupa-IMAPFolder, 
.gwt-ListBox, .gwt-HyperLink{
+.cbg-Button, .gwt-HTML, .gwt-Label, .gwt-Tree .gwt-TreeItem, 
.gwt-SuggestBoxPopup .item, hupa-LoginForm, 
.hupa-IMAPMessageWidget-Header-Content, .hupa-ToolTip, .hupa-IMAPFolder, 
.gwt-ListBox, .gwt-HyperLink, .gwt-TextBox{
     font-size:                                         12px;
        font-family:                                    Arial, Helvetica, 
sans-serif;
 }



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

Reply via email to