You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by no...@apache.org on 2009/06/28 16:58:54 UTC
svn commit: r789106 - in /labs/hupa/src/main/java/org/apache/hupa: ./
client/controller/ client/data/ client/model/ client/services/ client/view/
client/widgets/ server/
Author: norman
Date: Sun Jun 28 14:58:53 2009
New Revision: 789106
URL: http://svn.apache.org/viewvc?rev=789106&view=rev
Log:
try to use some cleaner pattern for mvc usage
repackaging
Added:
labs/hupa/src/main/java/org/apache/hupa/client/data/
- copied from r788864, labs/hupa/src/main/java/org/apache/hupa/common/data/
labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModelData.java
labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java
- copied, changed from r788967, labs/hupa/src/main/java/org/apache/hupa/client/model/SessionModel.java
labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModelData.java
labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java
labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModelData.java
labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModelData.java
labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModelData.java
Removed:
labs/hupa/src/main/java/org/apache/hupa/client/data/Session.java
labs/hupa/src/main/java/org/apache/hupa/client/model/SessionModel.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/Hupa.gwt.xml
labs/hupa/src/main/java/org/apache/hupa/client/controller/HupaController.java
labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPFolder.java
labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPHeader.java
labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessage.java
labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageAttachment.java
labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageContent.java
labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPUser.java
labs/hupa/src/main/java/org/apache/hupa/client/data/ResultList.java
labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModel.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/services/IMAPService.java
labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPServiceAsync.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
labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java
labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java
Modified: labs/hupa/src/main/java/org/apache/hupa/Hupa.gwt.xml
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/Hupa.gwt.xml?rev=789106&r1=789105&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/Hupa.gwt.xml (original)
+++ labs/hupa/src/main/java/org/apache/hupa/Hupa.gwt.xml Sun Jun 28 14:58:53 2009
@@ -18,7 +18,6 @@
<inherits name="com.googlecode.gwtmvc.GwtMvc" />
<source path="client"/>
- <source path="common"/>
<!-- Specify the app entry point class. -->
<entry-point class='org.apache.hupa.client.Hupa'/>
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=789106&r1=789105&r2=789106&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 Sun Jun 28 14:58:53 2009
@@ -20,13 +20,14 @@
package org.apache.hupa.client.controller;
+import org.apache.hupa.client.data.IMAPUser;
import org.apache.hupa.client.model.FolderModel;
+import org.apache.hupa.client.model.LogoutModel;
import org.apache.hupa.client.model.MessageListModel;
import org.apache.hupa.client.model.MessageModel;
-import org.apache.hupa.client.model.SessionModel;
+import org.apache.hupa.client.model.LoginModel;
import org.apache.hupa.client.view.LoginView;
import org.apache.hupa.client.view.MainView;
-import org.apache.hupa.common.data.Session;
import com.google.gwt.user.client.ui.RootPanel;
import com.googlecode.gwtmvc.client.Controller;
@@ -40,9 +41,10 @@
LOGIN, LOGIN_SUCCESSFULL, LOGIN_ERROR, LOGOUT, FETCH_FOLDERS, FETCH_MESSAGES, EXPOSE_MESSAGE
}
- protected IView<Session> loginView;
+ protected IView<IMAPUser> loginView;
- private SessionModel model;
+ private LoginModel model;
+ private LogoutModel logoutModel;
private FolderModel fModel;
private MessageListModel mModel;
@@ -53,32 +55,34 @@
public HupaController() {
super(HupaAction.values());
- model = new SessionModel();
+ model = new LoginModel();
+ logoutModel = new LogoutModel();
fModel = new FolderModel();
mModel = new MessageListModel();
messageModel = new MessageModel();
}
- protected void handleEvent(Event ev) {
- Event<Session,HupaAction> event = ev;
- HupaAction action = event.getAction();
+
+ @SuppressWarnings("unchecked")
+ protected void handleEvent(Event ev) {
+ HupaAction action = (HupaAction)ev.getAction();
switch (action) {
case LOGIN:
- model.login(event.getValue(),ev);
+ model.login(ev);
break;
case LOGOUT:
- model.logout(event.getValue(),ev);
+ logoutModel.logout(ev);
renderView(loginView);
break;
case LOGIN_SUCCESSFULL:
- fModel.fetchFolders((Session) event.getValue(),ev);
+ fModel.fetchFolders(ev);
renderView(mailboxView);
break;
case FETCH_MESSAGES:
- mModel.fetchMessages((Session) event.getValue() , 0, 20,ev);
+ mModel.fetchMessages(ev);
break;
case EXPOSE_MESSAGE:
- messageModel.exposeMessage(event.getValue(),ev);
+ messageModel.exposeMessage(ev);
break;
default:
break;
@@ -88,13 +92,14 @@
@Override
public void init() {
if (loginView == null) {
- loginView = new LoginView(this, model);
+ loginView = new LoginView(this, model,logoutModel);
}
if (mailboxView == null) {
- mailboxView = new MainView(this, model, fModel,mModel,messageModel);
+ mailboxView = new MainView(this, model, logoutModel,fModel,mModel,messageModel);
}
initModel(model);
+ initModel(logoutModel);
initModel(fModel);
initModel(messageModel);
initModel(mModel);
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPFolder.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPFolder.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPFolder.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPFolder.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.io.Serializable;
import java.util.ArrayList;
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPHeader.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPHeader.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPHeader.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPHeader.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.io.Serializable;
import java.util.Date;
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessage.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessage.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessage.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessage.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.io.Serializable;
import java.util.List;
@@ -33,7 +33,7 @@
private List<IMAPFlag> flags;
public enum IMAPFlag {
- SEEN, DELETED, RECENT
+ SEEN, DELETED, RECENT, ANSWERED, JUNK, DRAFT
}
public void setIMAPFlags(List<IMAPFlag> flags) {
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageAttachment.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageAttachment.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageAttachment.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageAttachment.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.io.Serializable;
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageContent.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageContent.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageContent.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPMessageContent.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.io.Serializable;
import java.util.ArrayList;
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPUser.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPUser.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPUser.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/IMAPUser.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.io.Serializable;
import java.util.Date;
Modified: labs/hupa/src/main/java/org/apache/hupa/client/data/ResultList.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/data/ResultList.java?rev=789106&r1=788864&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/data/ResultList.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/data/ResultList.java Sun Jun 28 14:58:53 2009
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.hupa.common.data;
+package org.apache.hupa.client.data;
import java.util.ArrayList;
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=789106&r1=789105&r2=789106&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 Sun Jun 28 14:58:53 2009
@@ -22,10 +22,10 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.hupa.client.controller.HupaController.HupaAction;
+import org.apache.hupa.client.data.IMAPFolder;
import org.apache.hupa.client.services.IMAPService;
import org.apache.hupa.client.services.IMAPServiceAsync;
-import org.apache.hupa.common.data.IMAPFolder;
-import org.apache.hupa.common.data.Session;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -42,8 +42,10 @@
update(new ArrayList<IMAPFolder>());
}
- public void fetchFolders(Session session,final Event event) {
- imapService.getFolders(session, new AsyncCallback<List<IMAPFolder>>() {
+ public void fetchFolders(final Event<FolderModelData,HupaAction> event) {
+ FolderModelData data = event.getValue();
+
+ imapService.getFolders(data.getUser(), new AsyncCallback<List<IMAPFolder>>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
Added: labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModelData.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModelData.java?rev=789106&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModelData.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/FolderModelData.java Sun Jun 28 14:58:53 2009
@@ -0,0 +1,36 @@
+/****************************************************************
+ * 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.model;
+
+import org.apache.hupa.client.data.IMAPUser;
+
+public class FolderModelData {
+
+ private IMAPUser user;
+
+ public FolderModelData(IMAPUser user) {
+ this.user = user;
+ }
+
+ public IMAPUser getUser() {
+ return user;
+ }
+
+}
Copied: labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java (from r788967, labs/hupa/src/main/java/org/apache/hupa/client/model/SessionModel.java)
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java?p2=labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java&p1=labs/hupa/src/main/java/org/apache/hupa/client/model/SessionModel.java&r1=788967&r2=789106&rev=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/SessionModel.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModel.java Sun Jun 28 14:58:53 2009
@@ -19,17 +19,17 @@
package org.apache.hupa.client.model;
+import org.apache.hupa.client.controller.HupaController.HupaAction;
+import org.apache.hupa.client.data.IMAPUser;
import org.apache.hupa.client.services.IMAPService;
import org.apache.hupa.client.services.IMAPServiceAsync;
-import org.apache.hupa.common.data.IMAPUser;
-import org.apache.hupa.common.data.Session;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.googlecode.gwtmvc.client.Event;
import com.googlecode.gwtmvc.client.Model;
-public class SessionModel extends Model<Session> {
+public class LoginModel extends Model<IMAPUser> {
private IMAPServiceAsync imapService = GWT.create(IMAPService.class);
@@ -38,25 +38,21 @@
}
- public void login(Session session,final Event event) {
- IMAPUser user = session.getIMAPUser();
- imapService.login(user.getName(), user.getPassword(),
- new AsyncCallback<Session>() {
+ public void login(final Event<LoginModelData,HupaAction> event) {
+ LoginModelData data = event.getValue();
+
+ imapService.login(data.getUsername(),data.getPassword(),
+ new AsyncCallback<IMAPUser>() {
public void onFailure(Throwable caught) {
update(null,event);
}
- public void onSuccess(Session result) {
- update(result,event);
- }
+ public void onSuccess(IMAPUser result) {
+ update(result,event);
+ }
});
}
-
- public void logout(Session session,Event ev) {
- session.reset();
- update(session,ev);
- }
}
Added: labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModelData.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModelData.java?rev=789106&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModelData.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/LoginModelData.java Sun Jun 28 14:58:53 2009
@@ -0,0 +1,40 @@
+/****************************************************************
+ * 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.model;
+
+public class LoginModelData {
+
+ private String username;
+ private String password;
+
+ public LoginModelData(String username, String password) {
+ this.username = username;
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+}
Added: 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=789106&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModel.java Sun Jun 28 14:58:53 2009
@@ -0,0 +1,41 @@
+/****************************************************************
+ * 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.model;
+
+import org.apache.hupa.client.controller.HupaController.HupaAction;
+import org.apache.hupa.client.data.IMAPUser;
+
+import com.googlecode.gwtmvc.client.Event;
+import com.googlecode.gwtmvc.client.Model;
+
+public class LogoutModel extends Model<IMAPUser>{
+
+ @Override
+ protected void init() {
+
+ }
+
+ public void logout(Event<LogoutModelData,HupaAction> ev) {
+ ev.getValue().getUser().setAuthenticated(false);
+
+ update(ev.getValue().getUser(),ev);
+ }
+
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModelData.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModelData.java?rev=789106&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModelData.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/LogoutModelData.java Sun Jun 28 14:58:53 2009
@@ -0,0 +1,36 @@
+/****************************************************************
+ * 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.model;
+
+import org.apache.hupa.client.data.IMAPUser;
+
+public class LogoutModelData {
+
+ private IMAPUser user;
+
+ public LogoutModelData(IMAPUser user) {
+ this.user = user;
+ }
+
+ public IMAPUser getUser() {
+ return user;
+ }
+
+}
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=789106&r1=789105&r2=789106&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 Sun Jun 28 14:58:53 2009
@@ -19,11 +19,11 @@
package org.apache.hupa.client.model;
+import org.apache.hupa.client.controller.HupaController.HupaAction;
+import org.apache.hupa.client.data.IMAPMessage;
+import org.apache.hupa.client.data.ResultList;
import org.apache.hupa.client.services.IMAPService;
import org.apache.hupa.client.services.IMAPServiceAsync;
-import org.apache.hupa.common.data.IMAPMessage;
-import org.apache.hupa.common.data.ResultList;
-import org.apache.hupa.common.data.Session;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -39,9 +39,10 @@
// do nothing
}
- public void fetchMessages(Session session, int start,
- int end,final Event event) {
- service.getMessages(session, start, end,
+ public void fetchMessages(final Event<MessageListModelData,HupaAction> event) {
+ MessageListModelData data = event.getValue();
+
+ service.getMessages(data.getUser(),data.getFolder(),data.getStart(),data.getEnd(),
new AsyncCallback<ResultList<IMAPMessage>>() {
public void onFailure(Throwable caught) {
Added: labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModelData.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModelData.java?rev=789106&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModelData.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/MessageListModelData.java Sun Jun 28 14:58:53 2009
@@ -0,0 +1,55 @@
+/****************************************************************
+ * 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.model;
+
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPUser;
+
+public class MessageListModelData {
+
+ private IMAPUser user;
+ private IMAPFolder folder;
+ private int start;
+ private int end;
+
+ public MessageListModelData(IMAPUser user,IMAPFolder folder, int start, int end) {
+ this.user = user;
+ this.folder = folder;
+ this.start =start;
+ this.end = end;
+ }
+
+ public IMAPUser getUser () {
+ return user;
+ }
+
+ public IMAPFolder getFolder() {
+ return folder;
+ }
+
+ public int getStart() {
+ return start;
+ }
+
+ public int getEnd() {
+ return end;
+ }
+
+}
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=789106&r1=789105&r2=789106&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 Sun Jun 28 14:58:53 2009
@@ -20,10 +20,10 @@
package org.apache.hupa.client.model;
+import org.apache.hupa.client.controller.HupaController.HupaAction;
+import org.apache.hupa.client.data.IMAPMessage;
import org.apache.hupa.client.services.IMAPService;
import org.apache.hupa.client.services.IMAPServiceAsync;
-import org.apache.hupa.common.data.IMAPMessage;
-import org.apache.hupa.common.data.Session;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -39,8 +39,9 @@
}
- public void exposeMessage(Session session,final Event event) {
- service.exposeMessage(session, new AsyncCallback<IMAPMessage>() {
+ public void exposeMessage(final Event<MessageModelData,HupaAction> event) {
+ MessageModelData data = event.getValue();
+ service.exposeMessage(data.getUser(),data.getFolder(),data.getMessage(), new AsyncCallback<IMAPMessage>() {
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
Added: labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModelData.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModelData.java?rev=789106&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModelData.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/model/MessageModelData.java Sun Jun 28 14:58:53 2009
@@ -0,0 +1,49 @@
+/****************************************************************
+ * 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.model;
+
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPMessage;
+import org.apache.hupa.client.data.IMAPUser;
+
+public class MessageModelData {
+
+ private IMAPUser user;
+ private IMAPFolder folder;
+ private IMAPMessage msg;
+
+ public MessageModelData(IMAPUser user, IMAPFolder folder, IMAPMessage msg) {
+ this.user = user;
+ this.folder = folder;
+ this.msg = msg;
+ }
+
+ public IMAPUser getUser() {
+ return user;
+ }
+
+ public IMAPFolder getFolder() {
+ return folder;
+ }
+
+ public IMAPMessage getMessage() {
+ return msg;
+ }
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPService.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPService.java?rev=789106&r1=789105&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPService.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPService.java Sun Jun 28 14:58:53 2009
@@ -21,10 +21,10 @@
import java.util.List;
-import org.apache.hupa.common.data.IMAPFolder;
-import org.apache.hupa.common.data.IMAPMessage;
-import org.apache.hupa.common.data.ResultList;
-import org.apache.hupa.common.data.Session;
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPMessage;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.data.ResultList;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@@ -32,19 +32,19 @@
@RemoteServiceRelativePath("imap")
public interface IMAPService extends RemoteService {
- public Session login(String username, String password)
+ public IMAPUser login(String username,String password)
throws IMAPServiceException;
- public List<IMAPFolder> getFolders(Session session)
+ public List<IMAPFolder> getFolders(IMAPUser user)
throws IMAPServiceException;
- public ResultList<IMAPMessage> getMessages(Session session, int start, int end) throws IMAPServiceException;
+ public ResultList<IMAPMessage> getMessages(IMAPUser user,IMAPFolder folder, int start, int end) throws IMAPServiceException;
- public IMAPMessage exposeMessage(Session session) throws IMAPServiceException;
+ public IMAPMessage exposeMessage(IMAPUser user,IMAPFolder folder,IMAPMessage message) throws IMAPServiceException;
- public void addFolder(Session session, IMAPFolder folder)
+ public void addFolder(IMAPUser user, IMAPFolder folder)
throws IMAPServiceException;
- public void removeFolder(Session session, IMAPFolder folder)
+ public void removeFolder(IMAPUser user, IMAPFolder folder)
throws IMAPServiceException;
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPServiceAsync.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPServiceAsync.java?rev=789106&r1=789105&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPServiceAsync.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/services/IMAPServiceAsync.java Sun Jun 28 14:58:53 2009
@@ -21,30 +21,29 @@
import java.util.List;
-import org.apache.hupa.common.data.IMAPFolder;
-import org.apache.hupa.common.data.IMAPMessage;
-import org.apache.hupa.common.data.IMAPUser;
-import org.apache.hupa.common.data.ResultList;
-import org.apache.hupa.common.data.Session;
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPMessage;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.data.ResultList;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface IMAPServiceAsync {
public void login(String username, String password,
- AsyncCallback<Session> callback);
+ AsyncCallback<IMAPUser> callback);
- public void getFolders(Session session,
+ public void getFolders(IMAPUser user,
AsyncCallback<List<IMAPFolder>> callback);
- public void getMessages(Session session, int start,
+ public void getMessages(IMAPUser user, IMAPFolder folder, int start,
int end, AsyncCallback<ResultList<IMAPMessage>> callback);
- public void exposeMessage(Session session, AsyncCallback<IMAPMessage> callback);
+ public void exposeMessage(IMAPUser user, IMAPFolder folder, IMAPMessage message, AsyncCallback<IMAPMessage> callback);
- public void addFolder(Session session, IMAPFolder folder,
+ public void addFolder(IMAPUser user, IMAPFolder folder,
AsyncCallback<Void> callBack);
- public void removeFolder(Session session, IMAPFolder folder,
+ public void removeFolder(IMAPUser user, IMAPFolder folder,
AsyncCallback<Void> callBack);
}
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=789106&r1=789105&r2=789106&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 Sun Jun 28 14:58:53 2009
@@ -3,9 +3,11 @@
import org.apache.hupa.client.HupaConstants;
import org.apache.hupa.client.controller.HupaController;
import org.apache.hupa.client.controller.HupaController.HupaAction;
-import org.apache.hupa.client.model.SessionModel;
-import org.apache.hupa.common.data.IMAPUser;
-import org.apache.hupa.common.data.Session;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.model.FolderModelData;
+import org.apache.hupa.client.model.LoginModel;
+import org.apache.hupa.client.model.LoginModelData;
+import org.apache.hupa.client.model.LogoutModel;
import org.cobogw.gwt.user.client.ui.Button;
import org.cobogw.gwt.user.client.ui.ButtonBar;
@@ -26,11 +28,11 @@
import com.googlecode.gwtmvc.client.ModelForView;
import com.googlecode.gwtmvc.client.View;
-public class LoginView extends View<Session, VerticalPanel> implements
+public class LoginView extends View<IMAPUser, VerticalPanel> implements
ClickHandler, KeyUpHandler {
- public LoginView(HupaController controller, SessionModel sModel) {
- super("loginView", controller, sModel);
+ public LoginView(HupaController controller, LoginModel sModel,LogoutModel lModel) {
+ super("loginView", controller, sModel,lModel);
}
private HupaConstants constants = GWT.create(HupaConstants.class);
@@ -71,6 +73,7 @@
usernameTextBox.addKeyUpHandler(this);
usernameTextBox.setText(Cookies.getCookie("username"));
usernameTextBox.setFocus(true);
+
passwordTextBox.addKeyUpHandler(this);
passwordTextBox.setText(Cookies.getCookie("password"));
vPanel.add(grid);
@@ -93,14 +96,13 @@
}
@Override
- public void onModelChange(ModelForView<Session> model) {
-
+ public void onModelChange(ModelForView<IMAPUser> model) {
if (model.getValue() == null) {
error();
} else {
- if (model.getValue().getIMAPUser() != null) {
- success();
- controller.call(new Event<Session, HupaAction>(HupaAction.LOGIN_SUCCESSFULL, model.getValue()));
+ if (model instanceof LoginModel) {
+ success();
+ controller.call(new Event<FolderModelData, HupaAction>(HupaAction.LOGIN_SUCCESSFULL,new FolderModelData(model.getValue())));
} else {
clear();
}
@@ -119,13 +121,8 @@
if (resetButton.equals(event.getSource())) {
reset();
} else if (loginButton.equals(event.getSource())) {
- IMAPUser user = new IMAPUser();
- user.setName(getUsername());
- user.setPassword(getPassword());
- Session session = new Session();
- session.setIMAPUser(user);
- controller.call(new Event<Session, HupaAction>(HupaAction.LOGIN,
- session,masker));
+ controller.call(new Event<LoginModelData, HupaAction>(HupaAction.LOGIN,
+ new LoginModelData(getUsername(),getPassword()),masker));
}
}
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=789106&r1=789105&r2=789106&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 Sun Jun 28 14:58:53 2009
@@ -30,16 +30,20 @@
import org.apache.hupa.client.bundles.IMAPTreeImages;
import org.apache.hupa.client.controller.HupaController;
import org.apache.hupa.client.controller.HupaController.HupaAction;
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPMessage;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.data.ResultList;
+import org.apache.hupa.client.data.IMAPMessage.IMAPFlag;
import org.apache.hupa.client.model.FolderModel;
+import org.apache.hupa.client.model.LogoutModel;
+import org.apache.hupa.client.model.LogoutModelData;
import org.apache.hupa.client.model.MessageListModel;
+import org.apache.hupa.client.model.MessageListModelData;
import org.apache.hupa.client.model.MessageModel;
-import org.apache.hupa.client.model.SessionModel;
+import org.apache.hupa.client.model.MessageModelData;
+import org.apache.hupa.client.model.LoginModel;
import org.apache.hupa.client.widgets.IMAPMessageWidget;
-import org.apache.hupa.common.data.IMAPFolder;
-import org.apache.hupa.common.data.IMAPMessage;
-import org.apache.hupa.common.data.ResultList;
-import org.apache.hupa.common.data.Session;
-import org.apache.hupa.common.data.IMAPMessage.IMAPFlag;
import org.cobogw.gwt.user.client.ui.Button;
import org.cobogw.gwt.user.client.ui.ButtonBar;
import org.cobogw.gwt.user.client.ui.RoundedPanel;
@@ -50,6 +54,7 @@
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.FlexTable;
@@ -76,7 +81,6 @@
private DateTimeFormat dFormat = DateTimeFormat.getShortDateTimeFormat();
private int rowsPerPage = 20;
- private Label usernameLabel = new Label();
private FlexTable mailTable = new FlexTable();
private int selectedRow = -1;
private DockPanel dockPanel = new DockPanel();
@@ -86,11 +90,11 @@
private VerticalPanel centerVP = new VerticalPanel();
private Maskable masker = new LoadingMasker();
private Cell cell;
- private Session session;
+ private IMAPUser user;
- public MainView(HupaController hupaController, SessionModel sModel,
+ public MainView(HupaController hupaController, LoginModel sModel, LogoutModel logoutModel,
FolderModel folderModel,MessageListModel mModel,MessageModel messageModel) {
- super("mainView", hupaController, sModel, folderModel,mModel,messageModel);
+ super("mainView", hupaController, sModel, logoutModel, folderModel,mModel,messageModel);
}
@@ -103,8 +107,7 @@
public void onSelection(SelectionEvent<TreeItem> event) {
folder = (IMAPFolder) event.getSelectedItem().getUserObject();
- session.setSelectedIMAPFolder(folder);
- controller.call(new Event<Session, HupaAction>(HupaAction.FETCH_MESSAGES, session, masker));
+ controller.call(new Event<MessageListModelData, HupaAction>(HupaAction.FETCH_MESSAGES, new MessageListModelData(user,folder,0,20), masker));
}
});
@@ -169,8 +172,7 @@
cell.getRowIndex(),
"hupa-Mailtable-row-selected");
} else {
- session.setSelectedIMAPMessage(getSelectedMessage());
- controller.call(new Event<Session, HupaAction>(HupaAction.EXPOSE_MESSAGE,session,masker));
+ controller.call(new Event<MessageModelData, HupaAction>(HupaAction.EXPOSE_MESSAGE,new MessageModelData(user,folder,getSelectedMessage()),masker));
}
selectedRow = cell.getRowIndex();
}
@@ -197,7 +199,7 @@
logoutButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- controller.call(new Event<Session, HupaAction>(HupaAction.LOGOUT,session,masker));
+ controller.call(new Event<LogoutModelData, HupaAction>(HupaAction.LOGOUT,new LogoutModelData(user),masker));
}
});
@@ -211,13 +213,17 @@
*
* @param user
*/
- public void load(Session session) {
- if (session != null) {
- this.session = session;
- usernameLabel.setText(session.getIMAPUser().getName());
- }
- }
+
+ private void clearMailTableEntries() {
+ // clear table
+ int a = 0;
+ while ((a = mailTable.getRowCount()) != 1) {
+ mailTable.removeRow(a - 1);
+ }
+ mMap.clear();
+ }
+
private void loadMails(ResultList<IMAPMessage> result) {
int pages = 0;
@@ -227,12 +233,7 @@
}
// clear table
- int a = 0;
- while ((a = mailTable.getRowCount()) != 1) {
- mailTable.removeRow(a - 1);
- }
-
- mMap.clear();
+ clearMailTableEntries();
int rows = 1;
for (int i = 0; i < result.size(); i++) {
@@ -344,13 +345,22 @@
@SuppressWarnings("unchecked")
public void onModelChange(ModelForView model) {
- if (model instanceof SessionModel) {
- Session tmpSession = (Session)model.getValue();
- if (tmpSession != null && tmpSession.getIMAPUser() == null) {
- reset();
- } else {
- load(tmpSession);
- }
+ 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();
@@ -380,9 +390,9 @@
}
}
private void reset() {
- session = null;
+ user = null;
folderTree.clear();
- mailTable.clear();
+ clearMailTableEntries();
center.clear();
center.add(centerVP);
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java?rev=789106&r1=789105&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/IMAPMessageWidget.java Sun Jun 28 14:58:53 2009
@@ -23,7 +23,8 @@
import org.cobogw.gwt.user.client.ui.ButtonBar;
import org.apache.hupa.client.HupaConstants;
-import org.apache.hupa.common.data.IMAPMessage;
+import org.apache.hupa.client.data.IMAPMessage;
+
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerRegistration;
Modified: labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java?rev=789106&r1=789105&r2=789106&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java Sun Jun 28 14:58:53 2009
@@ -32,6 +32,7 @@
import org.columba.ristretto.imap.IMAPFlags;
import org.columba.ristretto.imap.IMAPProtocol;
import org.columba.ristretto.imap.ListInfo;
+import org.columba.ristretto.imap.SearchKey;
import org.columba.ristretto.imap.SequenceSet;
import org.columba.ristretto.io.StreamUtils;
import org.columba.ristretto.message.Header;
@@ -42,16 +43,15 @@
import org.columba.ristretto.parser.DateParser;
import org.columba.ristretto.parser.ParserException;
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPHeader;
+import org.apache.hupa.client.data.IMAPMessage;
+import org.apache.hupa.client.data.IMAPMessageContent;
+import org.apache.hupa.client.data.IMAPUser;
+import org.apache.hupa.client.data.ResultList;
+import org.apache.hupa.client.data.IMAPMessage.IMAPFlag;
import org.apache.hupa.client.services.IMAPService;
import org.apache.hupa.client.services.IMAPServiceException;
-import org.apache.hupa.common.data.IMAPFolder;
-import org.apache.hupa.common.data.IMAPHeader;
-import org.apache.hupa.common.data.IMAPMessage;
-import org.apache.hupa.common.data.IMAPMessageContent;
-import org.apache.hupa.common.data.IMAPUser;
-import org.apache.hupa.common.data.ResultList;
-import org.apache.hupa.common.data.Session;
-import org.apache.hupa.common.data.IMAPMessage.IMAPFlag;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import org.apache.commons.lang.StringEscapeUtils;
@@ -64,7 +64,7 @@
*/
private static final long serialVersionUID = -1853475303345399549L;
- public Session login(String username, String password)
+ public IMAPUser login(String username, String password)
throws IMAPServiceException {
try {
@@ -75,21 +75,16 @@
protocol.openPort();
protocol.login(username, password.toCharArray());
- if (protocol.getState() == IMAPProtocol.AUTHENTICATED) {
- user.setLoginDate(new Date());
- user.setAuthenticated(true);
- Session session = new Session();
- session.setIMAPUser(user);
- return session;
- }
+
+ user.setLoginDate(new Date());
+ user.setAuthenticated(true);
+ return user;
+
} catch (IOException e) {
throw new IMAPServiceException(e.getMessage());
} catch (IMAPException e) {
throw new IMAPServiceException(e.getMessage());
}
-
- return null;
-
}
private IMAPProtocol getProtocol(IMAPUser user) throws IOException,
@@ -103,13 +98,13 @@
}
- public ResultList<IMAPMessage> getMessages(Session session, int start, int end) throws IMAPServiceException {
+ public ResultList<IMAPMessage> getMessages(IMAPUser user,IMAPFolder folder, int start, int end) throws IMAPServiceException {
ResultList<IMAPMessage> mList = new ResultList<IMAPMessage>();
IMAPProtocol proto = null;
try {
- proto = getProtocol(session.getIMAPUser());
- MailboxInfo mInfo = proto.select(session.getSelectedIMAPFolder().getFullName());
+ proto = getProtocol(user);
+ MailboxInfo mInfo = proto.select(folder.getFullName());
int exists = mInfo.getExists();
mList.setRealSize(exists);
@@ -163,11 +158,11 @@
return mList;
} catch (IOException e) {
throw new IMAPServiceException(
- "Error while fetching headers for user " + session.getIMAPUser().getName()
+ "Error while fetching headers for user " + user.getName()
+ ": " + e.getMessage());
} catch (IMAPException e) {
throw new IMAPServiceException(
- "Error while fetching headers for user " + session.getIMAPUser().getName()
+ "Error while fetching headers for user " + user.getName()
+ ": " + e.getMessage());
} finally {
if (proto != null) {
@@ -181,18 +176,19 @@
}
- public IMAPMessage exposeMessage(Session session) throws IMAPServiceException {
- IMAPMessage msg = session.getSelectedIMAPMessage();
+ public IMAPMessage exposeMessage(IMAPUser user, IMAPFolder folder, IMAPMessage msg) throws IMAPServiceException {
if (msg.isExposed()) {
return msg;
}
IMAPProtocol proto = null;
try {
- proto = getProtocol(session.getIMAPUser());
- proto.select(session.getSelectedIMAPFolder().getName());
+ proto = getProtocol(user);
+ proto.select(folder.getName());
IMAPMessageContent content = new IMAPMessageContent();
+
+
MimeTree mTree = proto.uidFetchBodystructure(msg.getUid());
MimePart textPart = mTree.getFirstTextPart("plain");
@@ -235,7 +231,24 @@
}
msg.setIMAPMessageContent(content);
+
+ IMAPFlags flagsRistretto = new IMAPFlags();
+
+ List<IMAPFlag> flags = msg.getIMAPFlags();
+
+ if (flags.contains(IMAPFlag.SEEN) == false) {
+ flags.add(IMAPFlag.SEEN);
+
+ flagsRistretto.setAnswered(flags.contains(IMAPFlag.ANSWERED));
+ flagsRistretto.setDeleted(flags.contains(IMAPFlag.DELETED));
+ flagsRistretto.setJunk(flags.contains(IMAPFlag.JUNK));
+ flagsRistretto.setRecent(flags.contains(IMAPFlag.RECENT));
+ flagsRistretto.setSeen(flags.contains(IMAPFlag.SEEN));
+ flagsRistretto.setDraft(flags.contains(IMAPFlag.DRAFT));
+
+ proto.uidStore(new SequenceSet(msg.getUid()), true, flagsRistretto);
+ }
return msg;
} catch (IOException e) {
e.printStackTrace();
@@ -257,25 +270,31 @@
}
}
-
- public List<IMAPFolder> getFolders(Session session)
+
+ public List<IMAPFolder> getFolders(IMAPUser user)
throws IMAPServiceException {
List<IMAPFolder> fList = new ArrayList<IMAPFolder>();
IMAPProtocol protocol = null;
try {
- protocol = getProtocol(session.getIMAPUser());
+ protocol = getProtocol(user);
ListInfo[] infos = protocol.list("", "*");
+
for (int i = 0; i < infos.length; i++) {
ListInfo info = infos[i];
+
String fullName = info.getName();
String delimiter = info.getDelimiter();
- // MailboxInfo mInfo= protocol.select(info.getName());
-
+ MailboxInfo mInfo= protocol.select(info.getName());
+
+ // we are want to show the not seen flagged message count
+ int unseen = protocol.search(new SearchKey[]{ new SearchKey(SearchKey.UNSEEN)}).length;
IMAPFolder iFolder = new IMAPFolder(info.getName());
iFolder.setDelimiter(delimiter);
- // iFolder.setMessageCount(mInfo.getExists());
- // iFolder.setUnseenMessageCount(mInfo.);
+ iFolder.setMessageCount(mInfo.getExists());
+
+ iFolder.setUnseenMessageCount(unseen);
+ System.out.println(mInfo.toString() + " " + mInfo.getRecent());
int index = fullName.lastIndexOf(delimiter);
if (index > -1) {
String parentFullName = fullName.substring(0, index);
@@ -288,11 +307,11 @@
} catch (IOException e) {
e.printStackTrace();
throw new IMAPServiceException("Unable to get folders for User "
- + session.getIMAPUser());
+ + user);
} catch (IMAPException e) {
e.printStackTrace();
throw new IMAPServiceException("Unable to get folders for User "
- + session.getIMAPUser());
+ + user);
} finally {
if (protocol != null) {
try {
@@ -319,38 +338,38 @@
}
}
- public void addFolder(Session session, IMAPFolder folder)
+ public void addFolder(IMAPUser user, IMAPFolder folder)
throws IMAPServiceException {
try {
- IMAPProtocol protocol = getProtocol(session.getIMAPUser());
+ IMAPProtocol protocol = getProtocol(user);
protocol.create(folder.getFullName());
protocol.subscribe(folder.getFullName());
} catch (IOException e) {
e.printStackTrace();
throw new IMAPServiceException("Error while removing folder "
- + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+ + folder + " for user " + user + ": " + e.toString());
} catch (IMAPException e) {
e.printStackTrace();
throw new IMAPServiceException("Error while removing folder "
- + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+ + folder + " for user " + user + ": " + e.toString());
}
}
- public void removeFolder(Session session, IMAPFolder folder)
+ public void removeFolder(IMAPUser user, IMAPFolder folder)
throws IMAPServiceException {
try {
- IMAPProtocol protocol = getProtocol(session.getIMAPUser());
+ IMAPProtocol protocol = getProtocol(user);
protocol.unsubscribe(folder.getFullName());
protocol.delete(folder.getFullName());
} catch (IOException e) {
e.printStackTrace();
throw new IMAPServiceException("Error while removing folder "
- + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+ + folder + " for user " + user + ": " + e.toString());
} catch (IMAPException e) {
e.printStackTrace();
throw new IMAPServiceException("Error while removing folder "
- + folder + " for user " + session.getIMAPUser() + ": " + e.toString());
+ + folder + " for user " + user+ ": " + e.toString());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org