Author: dongxu
Date: Thu Sep 12 04:36:58 2013
New Revision: 1522370

URL: http://svn.apache.org/r1522370
Log:
make add of label setting work in backend

Modified:
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
    
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.ui.xml

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java?rev=1522370&r1=1522369&r2=1522370&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java
 Thu Sep 12 04:36:58 2013
@@ -145,7 +145,10 @@ import com.google.web.bindery.requestfac
 
 public class LabelListActivity extends AppBaseActivity {
 
-       @Inject HupaController hupaController;
+       @Inject private HupaController hupaController;
+       @Inject private Displayable display;
+       @Inject private LabelPropertiesActivity.Displayable labelProperties;
+
 
        @Override
        public void start(AcceptsOneWidget container, EventBus eventBus) {
@@ -170,6 +173,7 @@ public class LabelListActivity extends A
                });
        }
 
+<<<<<<< HEAD
        @Inject private Displayable display;
 <<<<<<< HEAD
        
@@ -177,14 +181,18 @@ public class LabelListActivity extends A
 >>>>>>> make label settings prototype
 =======
 
+=======
+>>>>>>> make add of label setting work in backend
        public interface Displayable extends WidgetDisplayable {
+               final int CASCADE_TYPE_ADD = 0x01;
+               final int CASCADE_TYPE_RENAME = 0x02;
                SingleSelectionModel<LabelNode> getSelectionModel();
                HasClickHandlers getAdd();
                HasClickHandlers getDelete();
        }
 
        public void deleteSelected() {
-               hupaController.showTopLoading("Deleting");
+               hupaController.showTopLoading("Deleting...");
                SingleSelectionModel<LabelNode> selectionModel = 
display.getSelectionModel();
                LabelNode labelNode = selectionModel.getSelectedObject();
                DeleteFolderRequest req = requestFactory.deleteFolderRequest();
@@ -203,9 +211,7 @@ public class LabelListActivity extends A
                                hupaController.hideTopLoading();
                                hupaController.showNotice(error.getMessage(), 
10000);
                        }
-
                });
-
        }
 >>>>>>> add rename RF to label setting feature
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java?rev=1522370&r1=1522369&r2=1522370&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/activity/LabelPropertiesActivity.java
 Thu Sep 12 04:36:58 2013
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.hupa.client.ui.LabelNode;
 import org.apache.hupa.client.ui.WidgetDisplayable;
 
+import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.user.client.ui.AcceptsOneWidget;
 import com.google.inject.Inject;
@@ -38,7 +39,7 @@ public class LabelPropertiesActivity ext
        @Inject private Displayable display;
 
        public interface Displayable extends WidgetDisplayable {
-
-               void cascade(LabelNode labelNode, List<LabelNode> list);
+               void cascade(LabelNode labelNode, List<LabelNode> list, int 
cascadeTypeAdd);
+               HasClickHandlers getSave();
        }
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java?rev=1522370&r1=1522369&r2=1522370&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelListView.java
 Thu Sep 12 04:36:58 2013
@@ -197,10 +197,12 @@ import org.apache.hupa.shared.domain.Ima
 
 import com.google.gwt.cell.client.AbstractCell;
 import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
 import com.google.gwt.user.cellview.client.CellList;
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.Composite;
@@ -216,29 +218,37 @@ import com.google.web.bindery.requestfac
 import com.google.web.bindery.requestfactory.shared.ServerFailure;
 
 public class LabelListView extends Composite implements 
LabelListActivity.Displayable {
-
+       
+       @Inject LabelPropertiesActivity.Displayable labelProperties;
        @UiField SimplePanel thisView;
 
        @UiField Button add;
        @UiField Button delete;
 
+       @UiHandler("add")
+       public void handleAdd(ClickEvent e) {
+               labelProperties.cascade(selectionModel.getSelectedObject(), 
data.getDataList(), CASCADE_TYPE_ADD);
+       }
+
+       private final ImapLabelListDataProvider data;
+
        @Inject
-       public LabelListView(HupaRequestFactory rf, final 
LabelPropertiesActivity.Displayable labelProperties) {
+       public LabelListView(final HupaRequestFactory rf) {
                initWidget(binder.createAndBindUi(this));
-               final ImapLabelListDataProvider data = new 
ImapLabelListDataProvider(rf);
+               data = new ImapLabelListDataProvider(rf);
                CellList<LabelNode> cellList = new CellList<LabelNode>(new 
LabelCell());
                cellList.setSelectionModel(selectionModel);
                selectionModel.addSelectionChangeHandler(new 
SelectionChangeEvent.Handler() {
                        public void onSelectionChange(SelectionChangeEvent 
event) {
-                               
labelProperties.cascade(selectionModel.getSelectedObject(), data.getDataList());
+                               
labelProperties.cascade(selectionModel.getSelectedObject(), data.getDataList(), 
CASCADE_TYPE_RENAME);
                        }
                });
                data.addDataDisplay(cellList);
                thisView.setWidget(cellList);
        }
-       
+
        @Override
-       public SingleSelectionModel<LabelNode> getSelectionModel(){
+       public SingleSelectionModel<LabelNode> getSelectionModel() {
                return this.selectionModel;
        }
 
@@ -326,9 +336,7 @@ public class LabelListView extends Compo
                                }
 
                        });
-
                }
-
        }
 
 <<<<<<< HEAD

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java?rev=1522370&r1=1522369&r2=1522370&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.java
 Thu Sep 12 04:36:58 2013
@@ -23,10 +23,15 @@ import java.util.List;
 
 <<<<<<< HEAD
 <<<<<<< HEAD
+<<<<<<< HEAD
 import org.apache.hupa.client.HupaController;
 import org.apache.hupa.client.activity.LabelListActivity;
 =======
 >>>>>>> make layout can be arranged by clicking the navigation buttons; make 
 >>>>>>> the layout changing by set their sizes to zero rather than remove/add 
 >>>>>>> from their parent widgets; merge to the master branch.
+=======
+import org.apache.hupa.client.HupaController;
+import org.apache.hupa.client.activity.LabelListActivity;
+>>>>>>> make add of label setting work in backend
 import org.apache.hupa.client.activity.LabelPropertiesActivity;
 import org.apache.hupa.client.rf.CreateFolderRequest;
 import org.apache.hupa.client.rf.HupaRequestFactory;
@@ -40,6 +45,7 @@ import org.apache.hupa.shared.events.Ref
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.HasClickHandlers;
+<<<<<<< HEAD
 import com.google.gwt.event.shared.EventBus;
 =======
 import org.apache.hupa.client.activity.LabelListActivity;
@@ -53,19 +59,26 @@ import org.apache.hupa.shared.domain.Ren
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
 >>>>>>> add rename RF to label setting feature
+=======
+>>>>>>> make add of label setting work in backend
 import com.google.gwt.uibinder.client.UiBinder;
 import com.google.gwt.uibinder.client.UiField;
 import com.google.gwt.uibinder.client.UiHandler;
 import com.google.gwt.user.client.ui.Button;
 <<<<<<< HEAD
+<<<<<<< HEAD
 import com.google.gwt.user.client.ui.CaptionPanel;
 =======
 >>>>>>> add rename RF to label setting feature
+=======
+import com.google.gwt.user.client.ui.CaptionPanel;
+>>>>>>> make add of label setting work in backend
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.DecoratorPanel;
 import com.google.gwt.user.client.ui.ListBox;
 import com.google.gwt.user.client.ui.TextBox;
 <<<<<<< HEAD
+<<<<<<< HEAD
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.inject.Inject;
 import com.google.web.bindery.requestfactory.shared.Receiver;
@@ -74,11 +87,18 @@ import com.google.web.bindery.requestfac
 import com.google.inject.Inject;
 import com.google.web.bindery.requestfactory.shared.Receiver;
 >>>>>>> add rename RF to label setting feature
+=======
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.inject.Inject;
+import com.google.web.bindery.requestfactory.shared.Receiver;
+import com.google.web.bindery.requestfactory.shared.ServerFailure;
+>>>>>>> make add of label setting work in backend
 
 public class LabelPropertiesView extends Composite implements 
LabelPropertiesActivity.Displayable {
 
        @Inject HupaRequestFactory rf;
 <<<<<<< HEAD
+<<<<<<< HEAD
        @Inject HupaController hc;
        @Inject EventBus eventBus;
 
@@ -149,11 +169,23 @@ public class LabelPropertiesView extends
        
        @UiField TextBox _name;
        @UiField ListBox _parent;
+=======
+       @Inject HupaController hc;
+
+       @UiField TextBox name;
+       @UiField ListBox parent;
+>>>>>>> make add of label setting work in backend
        @UiField Button save;
        
+       @UiField VerticalPanel propContainer;
+       @UiField CaptionPanel information;
+       
+       private int state;
+
        ImapFolder folder;
 
        @UiHandler("save")
+<<<<<<< HEAD
        void handleCompose(ClickEvent e){
                RenameFolderRequest req = rf.renameFolderRequest();
                RenameFolderAction action = 
req.create(RenameFolderAction.class);
@@ -167,6 +199,49 @@ public class LabelPropertiesView extends
                        }
                });
 >>>>>>> add rename RF to label setting feature
+=======
+       void handleSave(ClickEvent e) {
+               hc.showTopLoading("Saving...");
+               if(state == LabelListActivity.Displayable.CASCADE_TYPE_RENAME){
+                       RenameFolderRequest req = rf.renameFolderRequest();
+                       RenameFolderAction action = 
req.create(RenameFolderAction.class);
+                       final ImapFolder f = req.create(ImapFolder.class);
+                       f.setFullName(folder.getFullName());
+                       action.setFolder(f);
+                       action.setNewName(name.getText());
+                       req.rename(action).fire(new Receiver<GenericResult>() {
+                               @Override
+                               public void onSuccess(GenericResult response) {
+                                       hc.hideTopLoading();
+                                       hc.showNotice("The label \"" + 
f.getFullName() + "\" has been renamed to "+name.getText(), 10000);
+                               }
+                               @Override
+                               public void onFailure(ServerFailure error) {
+                                       hc.hideTopLoading();
+                                       hc.showNotice(error.getMessage(), 
10000);
+                               }
+                       });     
+               } else if (state == 
LabelListActivity.Displayable.CASCADE_TYPE_ADD){
+                       CreateFolderRequest req = rf.createFolderRequest();
+                       CreateFolderAction action = 
req.create(CreateFolderAction.class);
+                       final ImapFolder f = req.create(ImapFolder.class);
+                       f.setFullName(folder.getFullName()+"/"+name.getText());
+                       action.setFolder(f);
+                       req.create(action).fire(new Receiver<GenericResult>(){
+                               @Override
+                               public void onSuccess(GenericResult response) {
+                                       hc.hideTopLoading();
+                                       hc.showNotice("The label \"" + 
f.getFullName() + "\" was created.", 10000);
+                               }
+                               @Override
+                               public void onFailure(ServerFailure error) {
+                                       hc.hideTopLoading();
+                                       hc.showNotice(error.getMessage(), 
10000);
+                               }
+                       });
+                       
+               }
+>>>>>>> make add of label setting work in backend
        }
        public LabelPropertiesView() {
                initWidget(binder.createAndBindUi(this));
@@ -179,24 +254,34 @@ public class LabelPropertiesView extends
 
        @Override
 <<<<<<< HEAD
+<<<<<<< HEAD
+=======
+>>>>>>> make add of label setting work in backend
        public void cascade(LabelNode labelNode, List<LabelNode> wholeList, int 
type) {
                state = type;
                switch (type) {
                case LabelListActivity.Displayable.CASCADE_TYPE_ADD:
                        makeParentList(labelNode, true, wholeList);
                        name.setText("");
+<<<<<<< HEAD
                        path = labelNode.getPath();
+=======
+>>>>>>> make add of label setting work in backend
                        information.setVisible(false);
                        break;
                case LabelListActivity.Displayable.CASCADE_TYPE_RENAME:
                        name.setText(labelNode.getName());
+<<<<<<< HEAD
                        path = labelNode.getPath();
+=======
+>>>>>>> make add of label setting work in backend
                        makeParentList(labelNode, false, wholeList);
                        information.setVisible(true);
                        break;
                default:
                        name.setText("");
                }
+<<<<<<< HEAD
                folder = labelNode.getFolder();
                if (!(labelNode.getFolder().getSubscribed())) {
                        name.setEnabled(false);
@@ -238,18 +323,32 @@ public class LabelPropertiesView extends
 =======
        public void cascade(LabelNode labelNode, List<LabelNode> list) {
                _name.setText(labelNode.getName());
+=======
+>>>>>>> make add of label setting work in backend
                folder = labelNode.getFolder();
                if (!(labelNode.getFolder().getSubscribed())) {
-                       _name.setEnabled(false);
+                       name.setEnabled(false);
                } else {
-                       _name.setEnabled(true);
+                       name.setEnabled(true);
                }
-               _parent.clear();
-               for (LabelNode folderNode : list) {
-                       _parent.addItem(folderNode.getName(), 
folderNode.getPath());
+       }
+       private void makeParentList(LabelNode labelNode, boolean isParent, 
List<LabelNode> wholeList) {
+               parent.clear();
+               parent.addItem("---", "root");
+               for (LabelNode folderNode : wholeList) {
+                       parent.addItem(folderNode.getName(), 
folderNode.getPath());
                }
+<<<<<<< HEAD
                _parent.setSelectedIndex(list.indexOf(labelNode.getParent()));
 >>>>>>> add rename RF to label setting feature
+=======
+               int parentIndex = wholeList.indexOf(isParent ? labelNode : 
labelNode.getParent());
+               parent.setSelectedIndex(parentIndex < 0 ? 0 : parentIndex);
+       }
+       @Override
+       public HasClickHandlers getSave() {
+               return save;
+>>>>>>> make add of label setting work in backend
        }
 
 }

Modified: 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.ui.xml
URL: 
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.ui.xml?rev=1522370&r1=1522369&r2=1522370&view=diff
==============================================================================
--- 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.ui.xml
 (original)
+++ 
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/ui/LabelPropertiesView.ui.xml
 Thu Sep 12 04:36:58 2013
@@ -61,26 +61,26 @@
        </ui:style>
        <g:DecoratorPanel addStyleNames="{style.propform}">
                <g:CaptionPanel captionText="Properties">
-                       <g:VerticalPanel>
+                       <g:VerticalPanel ui:field="propContainer">
                                <g:CaptionPanel captionText="Location">
                                        <g:VerticalPanel 
addStyleNames="{style.attribute}">
                                                <g:HorizontalPanel 
addStyleNames="{style.noBorder}">
                                                        <g:Label>
                                                                <ui:msg 
key='folderName'>Folder Name:</ui:msg>
                                                        </g:Label>
-                                                       <g:TextBox 
ui:field='_name' name="_name" />
+                                                       <g:TextBox 
ui:field='name' name="_name" />
                                                </g:HorizontalPanel>
                                                <g:HorizontalPanel 
addStyleNames="{style.noBorder}">
                                                        <g:Label>
                                                                <ui:msg 
key='parentFolder'>Parent Folder:</ui:msg>
                                                        </g:Label>
-                                                       <g:ListBox 
ui:field='_parent'>
+                                                       <g:ListBox 
ui:field='parent'>
                                                                <g:item 
value="1">---</g:item>
                                                        </g:ListBox>
                                                </g:HorizontalPanel>
                                        </g:VerticalPanel>
                                </g:CaptionPanel>
-                               <g:CaptionPanel captionText="Infomation">
+                               <g:CaptionPanel ui:field="information" 
captionText="Information">
                                        <g:VerticalPanel 
addStyleNames="{style.attribute}">
                                        </g:VerticalPanel>
                                </g:CaptionPanel>



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