Author: norman
Date: Mon Jun 29 12:28:39 2009
New Revision: 789306
URL: http://svn.apache.org/viewvc?rev=789306&view=rev
Log:
commit some pending code which hopefully let the model stuff work more easily
on the future
Added:
labs/hupa/src/main/java/org/apache/hupa/client/model/ModelReturnData.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/controller/HupaController.java
labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModel.java
labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java
labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java
labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModel.java
labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModel.java
labs/hupa/src/main/java/org/apache/hupa/client/view/LoginView.java
labs/hupa/src/main/java/org/apache/hupa/client/view/MainView.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/controller/HupaController.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/controller/HupaController.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/client/controller/HupaController.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/client/controller/HupaController.java
Mon Jun 29 12:28:39 2009
@@ -26,6 +26,7 @@
import org.apache.hupa.client.model.MessageListModel;
import org.apache.hupa.client.model.MessageModel;
import org.apache.hupa.client.model.LoginModel;
+import org.apache.hupa.client.model.ModelReturnData;
import org.apache.hupa.client.view.LoginView;
import org.apache.hupa.client.view.MainView;
@@ -41,14 +42,14 @@
LOGIN, LOGIN_SUCCESSFULL, LOGIN_ERROR, LOGOUT, FETCH_FOLDERS,
FETCH_MESSAGES, EXPOSE_MESSAGE
}
- protected IView<IMAPUser> loginView;
+ protected IView<ModelReturnData<IMAPUser>> loginView;
private LoginModel model;
private LogoutModel logoutModel;
private FolderModel fModel;
private MessageListModel mModel;
- private IView mailboxView;
+ private IView<ModelReturnData> mailboxView;
private MessageModel messageModel;
@@ -105,7 +106,6 @@
initModel(mModel);
}
- @Override
protected void renderView(IView view) {
if (view instanceof View) {
RootPanel.get().clear();
Modified: labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModel.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModel.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModel.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModel.java Mon
Jun 29 12:28:39 2009
@@ -32,14 +32,14 @@
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Model;
-public class FolderModel extends Model<List<IMAPFolder>> {
+public class FolderModel extends Model<ModelReturnData<List<IMAPFolder>>> {
private IMAPServiceAsync imapService = GWT.create(IMAPService.class);
@Override
protected void init() {
// no folders as default
- update(new ArrayList<IMAPFolder>());
+ update(new ModelReturnData<List<IMAPFolder>>(new
ArrayList<IMAPFolder>()));
}
public void fetchFolders(final Event<FolderModelData,HupaAction> event)
{
@@ -48,12 +48,11 @@
imapService.getFolders(data.getUser(), new
AsyncCallback<List<IMAPFolder>>() {
public void onFailure(Throwable caught) {
- // TODO Auto-generated method stub
-
+ update(new
ModelReturnData<List<IMAPFolder>>(caught),event);
}
public void onSuccess(List<IMAPFolder> result) {
- update(result,event);
+ update(new
ModelReturnData<List<IMAPFolder>>(result),event);
}
});
Modified: labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java Mon
Jun 29 12:28:39 2009
@@ -29,7 +29,7 @@
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Model;
-public class LoginModel extends Model<IMAPUser> {
+public class LoginModel extends Model<ModelReturnData<IMAPUser>> {
private IMAPServiceAsync imapService = GWT.create(IMAPService.class);
@@ -45,11 +45,11 @@
new AsyncCallback<IMAPUser>() {
public void onFailure(Throwable caught)
{
- update(null,event);
+ update(new
ModelReturnData<IMAPUser>(caught),event);
}
public void onSuccess(IMAPUser result) {
- update(result,event);
+ update(new ModelReturnData<IMAPUser>(result),event);
}
});
Modified: labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java Mon
Jun 29 12:28:39 2009
@@ -24,7 +24,7 @@
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Model;
-public class LogoutModel extends Model<IMAPUser>{
+public class LogoutModel extends Model<ModelReturnData<IMAPUser>>{
@Override
protected void init() {
@@ -32,9 +32,10 @@
}
public void logout(Event<LogoutModelData,HupaAction> ev) {
- ev.getValue().getUser().setAuthenticated(false);
+ IMAPUser user = ev.getValue().getUser();
+ user.setAuthenticated(false);
- update(ev.getValue().getUser(),ev);
+ update(new ModelReturnData<IMAPUser>(user),ev);
}
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModel.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModel.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModel.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModel.java
Mon Jun 29 12:28:39 2009
@@ -30,7 +30,7 @@
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Model;
-public class MessageListModel extends Model<ResultList<IMAPMessage>> {
+public class MessageListModel extends
Model<ModelReturnData<ResultList<IMAPMessage>>> {
private IMAPServiceAsync service = GWT.create(IMAPService.class);
@@ -46,12 +46,11 @@
new AsyncCallback<ResultList<IMAPMessage>>() {
public void onFailure(Throwable caught)
{
- // TODO Auto-generated method
stub
-
+ update(new
ModelReturnData<ResultList<IMAPMessage>>(caught),event);
}
public void
onSuccess(ResultList<IMAPMessage> result) {
- update(result,event);
+ update(new
ModelReturnData<ResultList<IMAPMessage>>(result),event);
}
});
Modified: labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModel.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModel.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModel.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModel.java Mon
Jun 29 12:28:39 2009
@@ -30,13 +30,11 @@
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Model;
-public class MessageModel extends Model<IMAPMessage>{
+public class MessageModel extends Model<ModelReturnData<IMAPMessage>>{
private IMAPServiceAsync service = GWT.create(IMAPService.class);
@Override
- protected void init() {
- // TODO Auto-generated method stub
-
+ protected void init() {
}
public void exposeMessage(final Event<MessageModelData,HupaAction>
event) {
@@ -44,12 +42,11 @@
service.exposeMessage(data.getUser(),data.getFolder(),data.getMessage(), new
AsyncCallback<IMAPMessage>() {
public void onFailure(Throwable caught) {
- // TODO Auto-generated method stub
-
+ update(new
ModelReturnData<IMAPMessage>(caught));
}
public void onSuccess(IMAPMessage result) {
- update(result,event);
+ update(new
ModelReturnData<IMAPMessage>(result),event);
}
});
Added: labs/hupa/src/main/java/org/apache/hupa/client/model/ModelReturnData.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/ModelReturnData.java?rev=789306&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/ModelReturnData.java
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/ModelReturnData.java
Mon Jun 29 12:28:39 2009
@@ -0,0 +1,28 @@
+package org.apache.hupa.client.model;
+
+
+public class ModelReturnData<E> {
+
+ private Throwable error = null;
+ private E obj;
+
+ public ModelReturnData(Throwable error) {
+ this.error = error;
+ }
+
+ public ModelReturnData(E obj) {
+ this.obj = obj;
+ }
+
+ public boolean hasError() {
+ return error != null;
+ }
+
+ public Throwable getThrowable() {
+ return error;
+ }
+
+ public E getObject() {
+ return obj;
+ }
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/view/LoginView.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/view/LoginView.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/view/LoginView.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/view/LoginView.java Mon Jun
29 12:28:39 2009
@@ -8,6 +8,7 @@
import org.apache.hupa.client.model.LoginModel;
import org.apache.hupa.client.model.LoginModelData;
import org.apache.hupa.client.model.LogoutModel;
+import org.apache.hupa.client.model.ModelReturnData;
import org.cobogw.gwt.user.client.ui.Button;
import org.cobogw.gwt.user.client.ui.ButtonBar;
@@ -28,7 +29,7 @@
import com.googlecode.gwtmvc.client.ModelForView;
import com.googlecode.gwtmvc.client.View;
-public class LoginView extends View<IMAPUser, VerticalPanel> implements
+public class LoginView extends View<ModelReturnData<IMAPUser>, VerticalPanel>
implements
ClickHandler, KeyUpHandler {
public LoginView(HupaController controller, LoginModel
sModel,LogoutModel lModel) {
@@ -96,13 +97,13 @@
}
@Override
- public void onModelChange(ModelForView<IMAPUser> model) {
- if (model.getValue() == null) {
+ public void onModelChange(ModelForView<ModelReturnData<IMAPUser>>
model) {
+ if (model.getValue() == null || model.getValue().hasError()) {
error();
} else {
if (model instanceof LoginModel) {
success();
- controller.call(new Event<FolderModelData,
HupaAction>(HupaAction.LOGIN_SUCCESSFULL,new
FolderModelData(model.getValue())));
+ controller.call(new Event<FolderModelData,
HupaAction>(HupaAction.LOGIN_SUCCESSFULL,new
FolderModelData(model.getValue().getObject())));
} else {
clear();
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/view/MainView.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/view/MainView.java?rev=789306&r1=789305&r2=789306&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/view/MainView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/view/MainView.java Mon Jun
29 12:28:39 2009
@@ -43,6 +43,7 @@
import org.apache.hupa.client.model.MessageModel;
import org.apache.hupa.client.model.MessageModelData;
import org.apache.hupa.client.model.LoginModel;
+import org.apache.hupa.client.model.ModelReturnData;
import org.apache.hupa.client.widgets.IMAPMessageWidget;
import org.cobogw.gwt.user.client.ui.Button;
import org.cobogw.gwt.user.client.ui.ButtonBar;
@@ -63,14 +64,13 @@
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.gwt.user.client.ui.HTMLTable.Cell;
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Maskable;
import com.googlecode.gwtmvc.client.ModelForView;
import com.googlecode.gwtmvc.client.View;
-public class MainView extends View {
+public class MainView extends View<ModelReturnData,DockPanel> {
private IMAPTreeImages tImages = GWT.create(IMAPTreeImages.class);
private Tree folderTree = new Tree(tImages, true);
@@ -324,7 +324,7 @@
}
@Override
- public Widget createWidget() {
+ public DockPanel createWidget() {
dockPanel.setSpacing(10);
dockPanel.setWidth("100%");
@@ -343,45 +343,46 @@
return dockPanel;
}
- @Override
@SuppressWarnings("unchecked")
public void onModelChange(ModelForView model) {
-
- if (model instanceof LoginModel) {
- user = (IMAPUser) model.getValue();
- new Timer() {
-
- @Override
- public void run() {
- controller
- .call(new Event<MessageListModelData, HupaAction>(
- HupaAction.FETCH_MESSAGES,
- new MessageListModelData(user, folder, 0,
- 20), masker));
- }
-
- }.scheduleRepeating(1000 * 60 * 5);
- } else if (model instanceof LogoutModel) {
- reset();
- } else if (model instanceof FolderModel) {
- // clear off the tree
- folderTree.clear();
-
- List<TreeItem> tList =
createTreeNodes((List<IMAPFolder>) model
- .getValue());
- for (int i = 0; i < tList.size(); i++) {
- folderTree.addItem(tList.get(i));
+
+ ModelReturnData data = (ModelReturnData) model.getValue();
+
+ if (data.hasError() == false) {
+ if (model instanceof LoginModel) {
+ user = (IMAPUser) data.getObject();
+ new Timer() {
+
+ @Override
+ public void run() {
+ controller
+ .call(new
Event<MessageListModelData, HupaAction>(
+
HupaAction.FETCH_MESSAGES,
+
new MessageListModelData(user, folder,
+
0, 20), masker));
+ }
+
+ }.scheduleRepeating(1000 * 60 * 5);
+ } else if (model instanceof LogoutModel) {
+ reset();
+ } else if (model instanceof FolderModel) {
+ // clear off the tree
+ folderTree.clear();
+
+ List<TreeItem> tList =
createTreeNodes((List<IMAPFolder>) data.getObject());
+ for (int i = 0; i < tList.size(); i++) {
+ folderTree.addItem(tList.get(i));
+ }
+ } else if (model instanceof MessageListModel) {
+
+ loadMails((ResultList<IMAPMessage>)
data.getObject());
+ } else if (model instanceof MessageModel) {
+
+ msgWidget.setIMAPMessage((IMAPMessage)
data.getObject());
+ center.clear();
+ center.add(msgWidget);
}
- } else if (model instanceof MessageListModel) {
-
- loadMails((ResultList<IMAPMessage>)model.getValue());
- } else if (model instanceof MessageModel) {
-
- msgWidget.setIMAPMessage((IMAPMessage)model.getValue());
- center.clear();
- center.add(msgWidget);
}
-
}
private String truncate(String rawString) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]