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:36:58 UTC
svn commit: r1522370 - in
/james/hupa/trunk/client/src/main/java/org/apache/hupa/client:
activity/LabelListActivity.java activity/LabelPropertiesActivity.java
ui/LabelListView.java ui/LabelPropertiesView.java
ui/LabelPropertiesView.ui.xml
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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org