Author: norman
Date: Fri Oct 9 12:10:05 2009
New Revision: 823522
URL: http://svn.apache.org/viewvc?rev=823522&view=rev
Log:
Reformat
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=823522&r1=823521&r2=823522&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
Fri Oct 9 12:10:05 2009
@@ -89,54 +89,71 @@
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
-public class MainPresenter extends WidgetPresenter<MainPresenter.Display>{
+public class MainPresenter extends WidgetPresenter<MainPresenter.Display> {
+
+ public interface Display extends WidgetDisplay {
+ public HasClickHandlers getSearchClick();
+
+ public HasValue<String> getSearchValue();
+
+ public void fillOracle(ArrayList<Message> messages);
+
+ public void setCenter(Widget widget);
+
+ public HasSelectionHandlers<TreeItem> getTree();
-
- public interface Display extends WidgetDisplay{
- public HasClickHandlers getSearchClick();
- public HasValue<String> getSearchValue();
- public void fillOracle(ArrayList<Message> messages);
- public void setCenter(Widget widget);
- public HasSelectionHandlers<TreeItem> getTree();
public void bindTreeItems(List<IMAPTreeItem> treeList);
- public HasClickHandlers getRenameClick();
+
+ public HasClickHandlers getRenameClick();
+
public HasClickHandlers getDeleteClick();
+
public HasClickHandlers getNewClick();
+
public HasDialog getDeleteConfirmDialog();
+
public HasClickHandlers getDeleteConfirmClick();
+
public HasEnable getRenameEnable();
+
public HasEnable getDeleteEnable();
+
public HasEnable getNewEnable();
+
public void updateTreeItem(IMAPFolder folder);
+
public void deleteSelectedFolder();
+
public HasEditable createFolder(EditHandler handler);
+
public void increaseUnseenMessageCount(IMAPFolder folder, int amount);
+
public void decreaseUnseenMessageCount(IMAPFolder folder, int amount);
- }
-
- private CachingDispatchAsync cachingDispatcher;
- private User user;
- private IMAPFolder folder;
- private String searchValue;
- private IMAPMessageListPresenter messageListPresenter;
- private IMAPMessagePresenter messagePresenter;
- private MessageSendPresenter sendPresenter;
- private IMAPTreeItem tItem;
- private HasEditable editableTreeItem;
- public static final Place PLACE = new Place("Main");
-
- @Inject
- public MainPresenter(MainPresenter.Display display, EventBus bus,
CachingDispatchAsync cachingDispatcher, IMAPMessageListPresenter
messageListPresenter, IMAPMessagePresenter messagePresenter,
MessageSendPresenter sendPresenter) {
- super(display,bus);
- this.cachingDispatcher = cachingDispatcher;
- this.messageListPresenter = messageListPresenter;
- this.messagePresenter = messagePresenter;
- this.sendPresenter = sendPresenter;
- }
-
-
- protected void loadTreeItems() {
- cachingDispatcher.execute(new FetchFolders(), new
SessionAsyncCallback<FetchFoldersResult>(new
DisplayCallback<FetchFoldersResult>(display) {
+ }
+
+ private CachingDispatchAsync cachingDispatcher;
+ private User user;
+ private IMAPFolder folder;
+ private String searchValue;
+ private IMAPMessageListPresenter messageListPresenter;
+ private IMAPMessagePresenter messagePresenter;
+ private MessageSendPresenter sendPresenter;
+ private IMAPTreeItem tItem;
+ private HasEditable editableTreeItem;
+ public static final Place PLACE = new Place("Main");
+
+ @Inject
+ public MainPresenter(MainPresenter.Display display, EventBus bus,
CachingDispatchAsync cachingDispatcher, IMAPMessageListPresenter
messageListPresenter, IMAPMessagePresenter messagePresenter,
+ MessageSendPresenter sendPresenter) {
+ super(display, bus);
+ this.cachingDispatcher = cachingDispatcher;
+ this.messageListPresenter = messageListPresenter;
+ this.messagePresenter = messagePresenter;
+ this.sendPresenter = sendPresenter;
+ }
+
+ protected void loadTreeItems() {
+ cachingDispatcher.execute(new FetchFolders(), new
SessionAsyncCallback<FetchFoldersResult>(new
DisplayCallback<FetchFoldersResult>(display) {
@Override
protected void handleFailure(Throwable e) {
@@ -146,17 +163,15 @@
@Override
protected void handleSuccess(FetchFoldersResult result) {
display.bindTreeItems(createTreeNodes(result.getFolders()));
-
+
// disable
display.getDeleteEnable().setEnabled(false);
display.getRenameEnable().setEnabled(false);
}
-
- },eventBus,user));
+ }, eventBus, user));
}
-
-
+
/**
* Create recursive the TreeNodes with all childs
*
@@ -168,31 +183,31 @@
for (int i = 0; i < list.size(); i++) {
IMAPFolder iFolder = list.get(i);
-
+
final IMAPTreeItem record = new IMAPTreeItem(iFolder);
record.addEditHandler(new EditHandler() {
public void onEditEvent(EditEvent event) {
- if(event.getEventType().equals(EditEvent.EventType.Stop)) {
- IMAPFolder iFolder = new
IMAPFolder((String)event.getOldValue());
- final String newName = (String)event.getNewValue();
+ if (event.getEventType().equals(EditEvent.EventType.Stop))
{
+ IMAPFolder iFolder = new IMAPFolder((String)
event.getOldValue());
+ final String newName = (String) event.getNewValue();
if (iFolder.getFullName().equalsIgnoreCase(newName) ==
false) {
- cachingDispatcher.execute(new
RenameFolder(iFolder, newName), new SessionAsyncCallback<EmptyResult>(new
AsyncCallback<EmptyResult>() {
+ cachingDispatcher.execute(new
RenameFolder(iFolder, newName), new SessionAsyncCallback<EmptyResult>(new
AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
record.cancelEdit();
- }
+ }
public void onSuccess(EmptyResult result) {
folder.setFullName(newName);
}
-
- },eventBus,user));
+
+ }, eventBus, user));
}
}
}
-
+
});
record.setUserObject(iFolder);
@@ -209,7 +224,7 @@
folder = iFolder;
tItem = record;
}
-
+
tList.add(record);
}
@@ -224,188 +239,187 @@
return tList;
}
- private void showMessageTable(User user, IMAPFolder folder, String
searchValue,boolean refresh) {
- this.user = user;
- this.folder = folder;
- this.searchValue = searchValue;
-
- messagePresenter.unbind();
- sendPresenter.unbind();
-
- messageListPresenter.bind(user, folder, searchValue);
- if (refresh) {
- messageListPresenter.refreshDisplay();
- }
- display.setCenter(messageListPresenter.getDisplay().asWidget());
- }
-
- private void showMessage(User user, IMAPFolder folder, Message message,
MessageDetails details) {
- sendPresenter.unbind();
- messageListPresenter.unbind();
-
- messagePresenter.bind(user,folder,message,details);
- display.setCenter(messagePresenter.getDisplay().asWidget());
- }
-
-
- private void showNewMessage() {
- messagePresenter.unbind();
- messageListPresenter.unbind();
-
- sendPresenter.bind(user, Type.NEW);
- display.setCenter(sendPresenter.getDisplay().asWidget());
- }
-
- private void showForwardMessage(ForwardMessageEvent event) {
- messagePresenter.unbind();
- messageListPresenter.unbind();
-
-
sendPresenter.bind(event.getUser(),event.getFolder(),event.getMessage(),
event.getMessageDetails(), Type.FORWARD);
- display.setCenter(sendPresenter.getDisplay().asWidget());
- }
-
- private void showReplyMessage(ReplyMessageEvent event) {
- messagePresenter.unbind();
- messageListPresenter.unbind();
-
- if (event.getReplyAll()) {
-
sendPresenter.bind(event.getUser(),event.getFolder(),event.getMessage(),event.getMessageDetails(),
Type.REPLY_ALL);
- } else {
-
sendPresenter.bind(event.getUser(),event.getFolder(),event.getMessage(),event.getMessageDetails(),
Type.REPLY);
-
- }
- display.setCenter(sendPresenter.getDisplay().asWidget());
- }
- private void reset() {
- display.getSearchValue().setValue("");
- cachingDispatcher.clear();
- }
-
-
- @Override
- public Place getPlace() {
- return PLACE;
- }
-
- public void bind(User user) {
- this.user = user;
- folder = new
IMAPFolder(user.getSettings().getInboxFolderName());
-
- bind();
- refreshDisplay();
- }
-
- @Override
- protected void onBind() {
-
- registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new
LoadMessagesEventHandler() {
-
- public void onLoadMessagesEvent(LoadMessagesEvent
loadMessagesEvent) {
- showMessageTable(loadMessagesEvent.getUser(),
loadMessagesEvent.getFolder(), loadMessagesEvent.getSearchValue(), true);
- }
-
- }));
- registerHandler(eventBus.addHandler(MessagesReceivedEvent.TYPE,
new MessagesReceivedEventHandler() {
-
- public void onMessagesReceived(MessagesReceivedEvent
event) {
-
- // fill the oracle
- display.fillOracle(event.getMessages());
- }
-
- }));
-
- registerHandler(eventBus.addHandler(ExpandMessageEvent.TYPE,
new ExpandMessageEventHandler() {
-
- public void onExpandMessage(ExpandMessageEvent event) {
- final boolean decreaseUnseen;
- final Message message = event.getMessage();
- // check if the message was already seen in the
past
- if
(event.getMessage().getFlags().contains(IMAPFlag.SEEN) == false) {
- decreaseUnseen = true;
- } else {
- decreaseUnseen = false;
- }
- cachingDispatcher.executeWithCache(new
GetMessageDetails(event.getFolder(),message.getUid()), new
SessionAsyncCallback<GetMessageDetailsResult>(new
DisplayCallback<GetMessageDetailsResult>(display) {
-
- @Override
- protected void handleFailure(Throwable
e) {
- GWT.log("ERROR", e);
- }
-
- @Override
- protected void
handleSuccess(GetMessageDetailsResult result) {
- // decrease the unseen count if
we were able to expose the message
- if (decreaseUnseen) {
- eventBus.fireEvent(new
DecreaseUnseenEvent(user,folder));
- }
-
- showMessage(user, folder,
message, result.getMessageDetails());
- }
-
-
- }, eventBus, user));
- }
-
- }));
- registerHandler(eventBus.addHandler(NewMessageEvent.TYPE, new
NewMessageEventHandler() {
-
- public void onNewMessageEvent(NewMessageEvent event) {
- showNewMessage();
- }
-
- }));
-
- registerHandler(eventBus.addHandler(SentMessageEvent.TYPE, new
SentMessageEventHandler() {
-
- public void onSentMessageEvent(SentMessageEvent ev) {
- showMessageTable(user,folder,searchValue,
false);
- }
-
- }));
-
- registerHandler(eventBus.addHandler(ForwardMessageEvent.TYPE,
new ForwardMessageEventHandler() {
-
- public void onForwardMessageEvent(ForwardMessageEvent
event) {
- showForwardMessage(event);
- }
-
- }));
- registerHandler(eventBus.addHandler(ReplyMessageEvent.TYPE, new
ReplyMessageEventHandler() {
-
- public void onReplyMessageEvent(ReplyMessageEvent
event) {
- showReplyMessage(event);
- }
-
- }));
- registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE,
new FolderSelectionEventHandler() {
-
- public void onFolderSelectionEvent(FolderSelectionEvent
event) {
-
showMessageTable(user,event.getFolder(),searchValue, true);
- }
-
- }));
-
- registerHandler(display.getSearchClick().addClickHandler(new
ClickHandler() {
-
- public void onClick(ClickEvent event) {
- String searchValue = null;
- if
(display.getSearchValue().getValue().trim().length() >0) {
- searchValue =
display.getSearchValue().getValue().trim();
- }
- eventBus.fireEvent(new
LoadMessagesEvent(user,folder,searchValue));
- }
-
- }));
-
- registerHandler(eventBus.addHandler(BackEvent.TYPE, new
BackEventHandler() {
-
- public void onBackEvent(BackEvent event) {
- showMessageTable(user, folder, searchValue,
false);
- }
-
- }));
-
+ private void showMessageTable(User user, IMAPFolder folder, String
searchValue, boolean refresh) {
+ this.user = user;
+ this.folder = folder;
+ this.searchValue = searchValue;
+
+ messagePresenter.unbind();
+ sendPresenter.unbind();
+
+ messageListPresenter.bind(user, folder, searchValue);
+ if (refresh) {
+ messageListPresenter.refreshDisplay();
+ }
+ display.setCenter(messageListPresenter.getDisplay().asWidget());
+ }
+
+ private void showMessage(User user, IMAPFolder folder, Message message,
MessageDetails details) {
+ sendPresenter.unbind();
+ messageListPresenter.unbind();
+
+ messagePresenter.bind(user, folder, message, details);
+ display.setCenter(messagePresenter.getDisplay().asWidget());
+ }
+
+ private void showNewMessage() {
+ messagePresenter.unbind();
+ messageListPresenter.unbind();
+
+ sendPresenter.bind(user, Type.NEW);
+ display.setCenter(sendPresenter.getDisplay().asWidget());
+ }
+
+ private void showForwardMessage(ForwardMessageEvent event) {
+ messagePresenter.unbind();
+ messageListPresenter.unbind();
+
+ sendPresenter.bind(event.getUser(), event.getFolder(),
event.getMessage(), event.getMessageDetails(), Type.FORWARD);
+ display.setCenter(sendPresenter.getDisplay().asWidget());
+ }
+
+ private void showReplyMessage(ReplyMessageEvent event) {
+ messagePresenter.unbind();
+ messageListPresenter.unbind();
+
+ if (event.getReplyAll()) {
+ sendPresenter.bind(event.getUser(), event.getFolder(),
event.getMessage(), event.getMessageDetails(), Type.REPLY_ALL);
+ } else {
+ sendPresenter.bind(event.getUser(), event.getFolder(),
event.getMessage(), event.getMessageDetails(), Type.REPLY);
+
+ }
+ display.setCenter(sendPresenter.getDisplay().asWidget());
+ }
+
+ private void reset() {
+ display.getSearchValue().setValue("");
+ cachingDispatcher.clear();
+ }
+
+ @Override
+ public Place getPlace() {
+ return PLACE;
+ }
+
+ public void bind(User user) {
+ this.user = user;
+ folder = new IMAPFolder(user.getSettings().getInboxFolderName());
+
+ bind();
+ refreshDisplay();
+ }
+
+ @Override
+ protected void onBind() {
+
+ registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new
LoadMessagesEventHandler() {
+
+ public void onLoadMessagesEvent(LoadMessagesEvent
loadMessagesEvent) {
+ showMessageTable(loadMessagesEvent.getUser(),
loadMessagesEvent.getFolder(), loadMessagesEvent.getSearchValue(), true);
+ }
+
+ }));
+ registerHandler(eventBus.addHandler(MessagesReceivedEvent.TYPE, new
MessagesReceivedEventHandler() {
+
+ public void onMessagesReceived(MessagesReceivedEvent event) {
+
+ // fill the oracle
+ display.fillOracle(event.getMessages());
+ }
+
+ }));
+
+ registerHandler(eventBus.addHandler(ExpandMessageEvent.TYPE, new
ExpandMessageEventHandler() {
+
+ public void onExpandMessage(ExpandMessageEvent event) {
+ final boolean decreaseUnseen;
+ final Message message = event.getMessage();
+ // check if the message was already seen in the past
+ if (event.getMessage().getFlags().contains(IMAPFlag.SEEN) ==
false) {
+ decreaseUnseen = true;
+ } else {
+ decreaseUnseen = false;
+ }
+ cachingDispatcher.executeWithCache(new
GetMessageDetails(event.getFolder(), message.getUid()), new
SessionAsyncCallback<GetMessageDetailsResult>(
+ new DisplayCallback<GetMessageDetailsResult>(display) {
+
+ @Override
+ protected void handleFailure(Throwable e) {
+ GWT.log("ERROR", e);
+ }
+
+ @Override
+ protected void
handleSuccess(GetMessageDetailsResult result) {
+ // decrease the unseen count if we were able to
+ // expose the message
+ if (decreaseUnseen) {
+ eventBus.fireEvent(new
DecreaseUnseenEvent(user, folder));
+ }
+
+ showMessage(user, folder, message,
result.getMessageDetails());
+ }
+
+ }, eventBus, user));
+ }
+
+ }));
+ registerHandler(eventBus.addHandler(NewMessageEvent.TYPE, new
NewMessageEventHandler() {
+
+ public void onNewMessageEvent(NewMessageEvent event) {
+ showNewMessage();
+ }
+
+ }));
+
+ registerHandler(eventBus.addHandler(SentMessageEvent.TYPE, new
SentMessageEventHandler() {
+
+ public void onSentMessageEvent(SentMessageEvent ev) {
+ showMessageTable(user, folder, searchValue, false);
+ }
+
+ }));
+
+ registerHandler(eventBus.addHandler(ForwardMessageEvent.TYPE, new
ForwardMessageEventHandler() {
+
+ public void onForwardMessageEvent(ForwardMessageEvent event) {
+ showForwardMessage(event);
+ }
+
+ }));
+ registerHandler(eventBus.addHandler(ReplyMessageEvent.TYPE, new
ReplyMessageEventHandler() {
+
+ public void onReplyMessageEvent(ReplyMessageEvent event) {
+ showReplyMessage(event);
+ }
+
+ }));
+ registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE, new
FolderSelectionEventHandler() {
+
+ public void onFolderSelectionEvent(FolderSelectionEvent event) {
+ showMessageTable(user, event.getFolder(), searchValue, true);
+ }
+
+ }));
+
+ registerHandler(display.getSearchClick().addClickHandler(new
ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ String searchValue = null;
+ if (display.getSearchValue().getValue().trim().length() > 0) {
+ searchValue = display.getSearchValue().getValue().trim();
+ }
+ eventBus.fireEvent(new LoadMessagesEvent(user, folder,
searchValue));
+ }
+
+ }));
+
+ registerHandler(eventBus.addHandler(BackEvent.TYPE, new
BackEventHandler() {
+
+ public void onBackEvent(BackEvent event) {
+ showMessageTable(user, folder, searchValue, false);
+ }
+
+ }));
registerHandler(eventBus.addHandler(ExpandMessageEvent.TYPE, new
ExpandMessageEventHandler() {
@@ -414,7 +428,7 @@
editableTreeItem.cancelEdit();
}
}
-
+
}));
registerHandler(eventBus.addHandler(NewMessageEvent.TYPE, new
NewMessageEventHandler() {
@@ -423,41 +437,41 @@
editableTreeItem.cancelEdit();
}
}
-
+
}));
registerHandler(eventBus.addHandler(DecreaseUnseenEvent.TYPE, new
DecreaseUnseenEventHandler() {
public void onDecreaseUnseenEvent(DecreaseUnseenEvent event) {
- // Check if the folder was the trash folder. If not increase
the message count of the trash folder
+ // Check if the folder was the trash folder. If not increase
the
+ // message count of the trash folder
if
(user.getSettings().getTrashFolderName().equalsIgnoreCase(event.getFolder().getFullName())
== false) {
- display.increaseUnseenMessageCount(new
IMAPFolder(user.getSettings().getTrashFolderName()),event.getAmount());
+ display.increaseUnseenMessageCount(new
IMAPFolder(user.getSettings().getTrashFolderName()), event.getAmount());
}
-
display.decreaseUnseenMessageCount(event.getFolder(),event.getAmount());
+ display.decreaseUnseenMessageCount(event.getFolder(),
event.getAmount());
}
-
+
}));
registerHandler(eventBus.addHandler(IncreaseUnseenEvent.TYPE, new
IncreaseUnseenEventHandler() {
public void onIncreaseUnseenEvent(IncreaseUnseenEvent event) {
-
display.increaseUnseenMessageCount(event.getFolder(),event.getAmount());
+ display.increaseUnseenMessageCount(event.getFolder(),
event.getAmount());
}
-
}));
registerHandler(display.getTree().addSelectionHandler(new
SelectionHandler<TreeItem>() {
public void onSelection(SelectionEvent<TreeItem> event) {
- tItem = (IMAPTreeItem)event.getSelectedItem();
+ tItem = (IMAPTreeItem) event.getSelectedItem();
folder = (IMAPFolder) tItem.getUserObject();
- eventBus.fireEvent(new LoadMessagesEvent(user,folder));
+ eventBus.fireEvent(new LoadMessagesEvent(user, folder));
}
-
+
}));
-
+
registerHandler(display.getTree().addSelectionHandler(new
SelectionHandler<TreeItem>() {
public void onSelection(SelectionEvent<TreeItem> event) {
- tItem = (IMAPTreeItem)event.getSelectedItem();
+ tItem = (IMAPTreeItem) event.getSelectedItem();
folder = (IMAPFolder) tItem.getUserObject();
if
(folder.getFullName().equalsIgnoreCase(user.getSettings().getInboxFolderName()))
{
display.getDeleteEnable().setEnabled(false);
@@ -467,25 +481,25 @@
display.getRenameEnable().setEnabled(true);
}
}
-
+
}));
-
+
registerHandler(display.getRenameClick().addClickHandler(new
ClickHandler() {
public void onClick(ClickEvent event) {
tItem.startEdit();
}
-
+
}));
-
+
registerHandler(display.getDeleteClick().addClickHandler(new
ClickHandler() {
public void onClick(ClickEvent event) {
display.getDeleteConfirmDialog().show();
}
-
+
}));
-
+
registerHandler(display.getDeleteConfirmClick().addClickHandler(new
ClickHandler() {
public void onClick(ClickEvent event) {
@@ -498,73 +512,72 @@
public void onSuccess(EmptyResult result) {
display.deleteSelectedFolder();
}
-
+
});
}
-
+
}));
-
+
registerHandler(display.getNewClick().addClickHandler(new
ClickHandler() {
public void onClick(ClickEvent event) {
editableTreeItem = display.createFolder(new EditHandler() {
public void onEditEvent(EditEvent event) {
- final IMAPTreeItem item =
(IMAPTreeItem)event.getSource();
+ final IMAPTreeItem item = (IMAPTreeItem)
event.getSource();
final String newValue = (String) event.getNewValue();
if
(event.getEventType().equals(EditEvent.EventType.Stop)) {
- cachingDispatcher.execute(new CreateFolder(new
IMAPFolder(newValue.trim())), new AsyncCallback<EmptyResult>() {
+ cachingDispatcher.execute(new CreateFolder(new
IMAPFolder(newValue.trim())), new AsyncCallback<EmptyResult>() {
public void onFailure(Throwable caught) {
- GWT.log("Error while create
folder",caught);
+ GWT.log("Error while create folder",
caught);
item.cancelEdit();
}
public void onSuccess(EmptyResult result) {
// Nothing todo
}
-
+
});
}
}
-
+
});
}
-
+
}));
-
+
registerHandler(eventBus.addHandler(MessagesReceivedEvent.TYPE, new
MessagesReceivedEventHandler() {
public void onMessagesReceived(MessagesReceivedEvent event) {
IMAPFolder f = event.getFolder();
display.updateTreeItem(f);
}
-
+
}));
-
- }
+ }
- @Override
- protected void onPlaceRequest(PlaceRequest request) {
- }
-
- @Override
- protected void onUnbind() {
- messagePresenter.unbind();
- sendPresenter.unbind();
- messageListPresenter.unbind();
- reset();
-
- }
-
- public void refreshDisplay() {
- loadTreeItems();
- showMessageTable(user,folder,null,true);
- }
-
- public void revealDisplay() {
- // TODO Auto-generated method stub
-
- }
+ @Override
+ protected void onPlaceRequest(PlaceRequest request) {
+ }
+
+ @Override
+ protected void onUnbind() {
+ messagePresenter.unbind();
+ sendPresenter.unbind();
+ messageListPresenter.unbind();
+ reset();
+
+ }
+
+ public void refreshDisplay() {
+ loadTreeItems();
+ showMessageTable(user, folder, null, true);
+ }
+
+ public void revealDisplay() {
+ // TODO Auto-generated method stub
+
+ }
}
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=823522&r1=823521&r2=823522&view=diff
==============================================================================
---
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
(original)
+++
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
Fri Oct 9 12:10:05 2009
@@ -72,23 +72,23 @@
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
-public class MainView extends Composite implements MainPresenter.Display{
-
- private DockPanel dockPanel;
- private VerticalPanel north;
- private HupaConstants constants = GWT.create(HupaConstants.class);
- private RoundedPanel west;
- private IMAPTreeImages tImages = GWT.create(IMAPTreeImages.class);
- private Tree folderTree = new Tree(tImages,true);
- private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle("
,@");
- private SuggestBox searchBox = new SuggestBox(oracle);
- private Button searchButton = new Button(constants.searchButton());
- private Loading loading = new Loading(false);
- private Widget centerWidget;
- private RoundedPanel center;
- private IMAPMessageListView mListView;
- private HupaMessages messages = GWT.create(HupaMessages.class);
- private VerticalPanel folderPanel = new VerticalPanel();
+public class MainView extends Composite implements MainPresenter.Display {
+
+ private DockPanel dockPanel;
+ private VerticalPanel north;
+ private HupaConstants constants = GWT.create(HupaConstants.class);
+ private RoundedPanel west;
+ private IMAPTreeImages tImages = GWT.create(IMAPTreeImages.class);
+ private Tree folderTree = new Tree(tImages, true);
+ private MultiWordSuggestOracle oracle = new MultiWordSuggestOracle(" ,@");
+ private SuggestBox searchBox = new SuggestBox(oracle);
+ private Button searchButton = new Button(constants.searchButton());
+ private Loading loading = new Loading(false);
+ private Widget centerWidget;
+ private RoundedPanel center;
+ private IMAPMessageListView mListView;
+ private HupaMessages messages = GWT.create(HupaMessages.class);
+ private VerticalPanel folderPanel = new VerticalPanel();
private SimplePanel panel = new SimplePanel();
private HorizontalPanel folderButtonBar = new HorizontalPanel();
private EnableHyperlink newFolderButton = new
EnableHyperlink(constants.newFolder(), "");
@@ -100,166 +100,165 @@
private EventBus bus;
private PagingScrollTableRowDragController controller;
protected User user;
-
- @Inject
- public MainView(EventBus bus, PagingScrollTableRowDragController
controllerProvider) {
+
+ @Inject
+ public MainView(EventBus bus, PagingScrollTableRowDragController
controllerProvider) {
this.controller = controllerProvider;
this.bus = bus;
-
- dockPanel = new DockPanel();
-
- dockPanel.setSpacing(10);
- dockPanel.setWidth("100%");
-
- createNorth();
- createWest();
- createCenter();
-
- dockPanel.add(north, DockPanel.NORTH);
- dockPanel.add(west, DockPanel.WEST);
- dockPanel.add(center, DockPanel.CENTER);
- dockPanel.setCellHorizontalAlignment(north,
DockPanel.ALIGN_RIGHT);
- dockPanel.setCellHorizontalAlignment(center,
DockPanel.ALIGN_LEFT);
-
- initWidget(dockPanel);
- }
-
- private void createWest() {
- west = new RoundedPanel(RoundedPanel.ALL,1);
- west.add(folderTree);
- west.setWidth("150px");
-
-
- folderTree.setAnimationEnabled(true);
- folderPanel.setSpacing(5);
-
-
- folderButtonBar.setSpacing(3);
- folderButtonBar.add(newFolderButton);
- folderButtonBar.add(renameFolderButton);
- folderButtonBar.add(deleteFolderButton);
- RoundedPanel buttonPanel = new RoundedPanel(RoundedPanel.ALL,1);
- buttonPanel.setBorder();
- buttonPanel.add(folderButtonBar);
-
- folderPanel.add(buttonPanel);
- folderPanel.add(folderTree);
-
- panel.add(loader);
- confirmFolderDeleteBox.setText(messages.confirmDeleteFolder());
-
- bus.addHandler(LoginEvent.TYPE,new LoginEventHandler() {
-
- public void onLogin(LoginEvent event) {
- user = event.getUser();
- }
-
- });
- bus.addHandler(LogoutEvent.TYPE,new LogoutEventHandler() {
-
- public void onLogout(LogoutEvent event) {
- user = null;
- }
-
- });
- west.add(panel);
- }
-
- private void createNorth() {
- north = new VerticalPanel();
- north.setWidth("100%");
-
-
- HorizontalPanel barPanel = new HorizontalPanel();
- barPanel.setWidth("100%");
-
- HorizontalPanel hPanel = new HorizontalPanel();
- hPanel.setSpacing(5);
- hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
-
-
- searchBox.setAnimationEnabled(true);
- searchBox.setAutoSelectEnabled(false);
- searchBox.setWidth("250px");
- searchBox.setLimit(20);
- searchBox.addKeyUpHandler(new KeyUpHandler() {
-
- public void onKeyUp(KeyUpEvent event) {
- if (event.getNativeKeyCode() ==
KeyCodes.KEY_ENTER) {
- searchButton.click();
- }
- }
-
- });
- hPanel.add(searchBox);
- hPanel.add(searchButton);
- barPanel.add(hPanel);
- barPanel.setCellHorizontalAlignment(hPanel,
HorizontalPanel.ALIGN_LEFT);
- barPanel.add(loading);
-
barPanel.setCellHorizontalAlignment(loading,HorizontalPanel.ALIGN_RIGHT);
- barPanel.setCellVerticalAlignment(loading,
HorizontalPanel.ALIGN_MIDDLE);
-
- north.add(barPanel);
-
- }
-
- private void createCenter() {
- center = new RoundedPanel(RoundedPanel.ALL, 1);
- center.setBorder();
- center.setWidth("100%");
- center.add(mListView);
-
- }
-
- public HasClickHandlers getSearchClick() {
- return searchButton;
- }
- public HasValue<String> getSearchValue() {
- return searchBox;
- }
-
-
- public void fillOracle(ArrayList<Message> messages) {
- for (int i = 0; i < messages.size();i++) {
- String subject = messages.get(i).getSubject();
- String from = messages.get(i).getFrom();
- if (subject != null && subject.trim().length() > 0) {
- oracle.add(subject.trim());
- }
- if (from != null && from.trim().length() > 0) {
- oracle.add(from.trim());
- }
- }
- searchBox.setText("");
- }
-
- public void setCenter(Widget widget) {
- centerWidget = widget;
- center.setWidget(centerWidget);
- }
-
+
+ dockPanel = new DockPanel();
+
+ dockPanel.setSpacing(10);
+ dockPanel.setWidth("100%");
+
+ createNorth();
+ createWest();
+ createCenter();
+
+ dockPanel.add(north, DockPanel.NORTH);
+ dockPanel.add(west, DockPanel.WEST);
+ dockPanel.add(center, DockPanel.CENTER);
+ dockPanel.setCellHorizontalAlignment(north, DockPanel.ALIGN_RIGHT);
+ dockPanel.setCellHorizontalAlignment(center, DockPanel.ALIGN_LEFT);
+
+ initWidget(dockPanel);
+ }
+
+ private void createWest() {
+ west = new RoundedPanel(RoundedPanel.ALL, 1);
+ west.add(folderTree);
+ west.setWidth("150px");
+
+ folderTree.setAnimationEnabled(true);
+ folderPanel.setSpacing(5);
+
+ folderButtonBar.setSpacing(3);
+ folderButtonBar.add(newFolderButton);
+ folderButtonBar.add(renameFolderButton);
+ folderButtonBar.add(deleteFolderButton);
+ RoundedPanel buttonPanel = new RoundedPanel(RoundedPanel.ALL, 1);
+ buttonPanel.setBorder();
+ buttonPanel.add(folderButtonBar);
+
+ folderPanel.add(buttonPanel);
+ folderPanel.add(folderTree);
+
+ panel.add(loader);
+ confirmFolderDeleteBox.setText(messages.confirmDeleteFolder());
+
+ bus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+
+ public void onLogin(LoginEvent event) {
+ user = event.getUser();
+ }
+
+ });
+ bus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
+
+ public void onLogout(LogoutEvent event) {
+ user = null;
+ }
+
+ });
+ west.add(panel);
+ }
+
+ private void createNorth() {
+ north = new VerticalPanel();
+ north.setWidth("100%");
+
+ HorizontalPanel barPanel = new HorizontalPanel();
+ barPanel.setWidth("100%");
+
+ HorizontalPanel hPanel = new HorizontalPanel();
+ hPanel.setSpacing(5);
+ hPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+
+ searchBox.setAnimationEnabled(true);
+ searchBox.setAutoSelectEnabled(false);
+ searchBox.setWidth("250px");
+ searchBox.setLimit(20);
+ searchBox.addKeyUpHandler(new KeyUpHandler() {
+
+ public void onKeyUp(KeyUpEvent event) {
+ if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
+ searchButton.click();
+ }
+ }
+
+ });
+ hPanel.add(searchBox);
+ hPanel.add(searchButton);
+ barPanel.add(hPanel);
+ barPanel.setCellHorizontalAlignment(hPanel,
HorizontalPanel.ALIGN_LEFT);
+ barPanel.add(loading);
+ barPanel.setCellHorizontalAlignment(loading,
HorizontalPanel.ALIGN_RIGHT);
+ barPanel.setCellVerticalAlignment(loading,
HorizontalPanel.ALIGN_MIDDLE);
+
+ north.add(barPanel);
+
+ }
+
+ private void createCenter() {
+ center = new RoundedPanel(RoundedPanel.ALL, 1);
+ center.setBorder();
+ center.setWidth("100%");
+ center.add(mListView);
+
+ }
+
+ public HasClickHandlers getSearchClick() {
+ return searchButton;
+ }
+
+ public HasValue<String> getSearchValue() {
+ return searchBox;
+ }
+
+ public void fillOracle(ArrayList<Message> messages) {
+ for (int i = 0; i < messages.size(); i++) {
+ String subject = messages.get(i).getSubject();
+ String from = messages.get(i).getFrom();
+ if (subject != null && subject.trim().length() > 0) {
+ oracle.add(subject.trim());
+ }
+ if (from != null && from.trim().length() > 0) {
+ oracle.add(from.trim());
+ }
+ }
+ searchBox.setText("");
+ }
+
+ public void setCenter(Widget widget) {
+ centerWidget = widget;
+ center.setWidget(centerWidget);
+ }
+
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#bindTreeItems(java.util.List)
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#bindTreeItems(
+ * java.util.List)
*/
public void bindTreeItems(List<IMAPTreeItem> treeList) {
folderTree.clear();
- for (int i = 0; i < dropControllerList.size();i++) {
+ for (int i = 0; i < dropControllerList.size(); i++) {
controller.unregisterDropController(dropControllerList.get(i));
}
-
+
for (int i = 0; i < treeList.size(); i++) {
IMAPTreeItem item = treeList.get(i);
bindDropController(item);
folderTree.addItem(item);
-
+
if (((IMAPFolder)
item.getUserObject()).getFullName().equalsIgnoreCase(user.getSettings().getInboxFolderName()))
{
folderTree.setSelectedItem(item, false);
}
-
+
}
}
-
+
/**
* Bind a IMAPFolderDropController to the given Item and all its childs
*
@@ -269,24 +268,26 @@
IMAPFolderDropController dropController = new
IMAPFolderDropController(item);
controller.registerDropController(dropController);
dropControllerList.add(dropController);
-
+
if (item.getChildCount() > 0) {
- for (int i = 0; i < item.getChildCount(); i++) {
- bindDropController((IMAPTreeItem)item.getChild(i));
+ for (int i = 0; i < item.getChildCount(); i++) {
+ bindDropController((IMAPTreeItem) item.getChild(i));
}
}
}
-
+
/*
* (non-Javadoc)
+ *
* @see org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getTree()
*/
public HasSelectionHandlers<TreeItem> getTree() {
return folderTree;
}
-
+
/*
* (non-Javadoc)
+ *
* @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
*/
public Widget asWidget() {
@@ -295,6 +296,7 @@
/*
* (non-Javadoc)
+ *
* @see net.customware.gwt.presenter.client.Display#startProcessing()
*/
public void startProcessing() {
@@ -305,26 +307,27 @@
/*
* (non-Javadoc)
+ *
* @see net.customware.gwt.presenter.client.Display#stopProcessing()
*/
public void stopProcessing() {
panel.clear();
panel.add(folderPanel);
}
-
+
/**
* Drop controller which handle drop on TreeItems
*
- *
+ *
*/
private class IMAPFolderDropController extends SimpleDropController {
private IMAPTreeItem item;
-
+
public IMAPFolderDropController(IMAPTreeItem item) {
super(item.getWidget());
this.item = item;
}
-
+
/**
* Veto the Drop if the folder is the same
*/
@@ -334,19 +337,19 @@
throw new VetoDragException();
}
}
-
+
/**
* Set the right unseen count on the folders and fire an event
*/
@Override
public void onDrop(DragContext context) {
- IMAPTreeItem oldTreeItem =
(IMAPTreeItem)folderTree.getSelectedItem();
- Message message = (Message)controller.getDragValue();
+ IMAPTreeItem oldTreeItem = (IMAPTreeItem)
folderTree.getSelectedItem();
+ Message message = (Message) controller.getDragValue();
if (message.getFlags().contains(IMAPFlag.SEEN) == false) {
oldTreeItem.decreaseUnseenMessageCount();
item.increaseUnseenMessageCount();
}
- bus.fireEvent(new
MoveMessageEvent(user,(IMAPFolder)oldTreeItem.getUserObject(),(IMAPFolder)item.getUserObject(),message));
+ bus.fireEvent(new MoveMessageEvent(user, (IMAPFolder)
oldTreeItem.getUserObject(), (IMAPFolder) item.getUserObject(), message));
}
/**
@@ -373,7 +376,9 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getRenameClick()
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getRenameClick()
*/
public HasClickHandlers getRenameClick() {
return renameFolderButton;
@@ -381,7 +386,9 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteEnable()
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteEnable()
*/
public HasEnable getDeleteEnable() {
return deleteFolderButton;
@@ -389,7 +396,9 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getNewEnable()
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getNewEnable()
*/
public HasEnable getNewEnable() {
return newFolderButton;
@@ -397,7 +406,9 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getRenameEnable()
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getRenameEnable()
*/
public HasEnable getRenameEnable() {
return renameFolderButton;
@@ -405,7 +416,9 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteClick()
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteClick()
*/
public HasClickHandlers getDeleteClick() {
return deleteFolderButton;
@@ -413,6 +426,7 @@
/*
* (non-Javadoc)
+ *
* @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getNewClick()
*/
public HasClickHandlers getNewClick() {
@@ -421,7 +435,10 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteConfirmDialog()
+ *
+ * @see
+ *
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteConfirmDialog
+ * ()
*/
public HasDialog getDeleteConfirmDialog() {
return confirmFolderDeleteBox;
@@ -429,7 +446,10 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteConfirmClick()
+ *
+ * @see
+ *
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#getDeleteConfirmClick
+ * ()
*/
public HasClickHandlers getDeleteConfirmClick() {
return confirmFolderDeleteBox;
@@ -437,12 +457,14 @@
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#deleteSelectedFolder()
+ *
+ * @see
+ *
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#deleteSelectedFolder
+ * ()
*/
public void deleteSelectedFolder() {
folderTree.getSelectedItem().remove();
-
-
+
// Select the INBOX after delete folder
for (int i = 0; i < folderTree.getItemCount(); i++) {
IMAPTreeItem item = (IMAPTreeItem) folderTree.getItem(i);
@@ -451,23 +473,27 @@
break;
}
}
-
+
}
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#createFolder(org.apache.hupa.client.widgets.EditHandler)
+ *
+ * @see
+ * org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#createFolder(org
+ * .apache.hupa.client.widgets.EditHandler)
*/
public HasEditable createFolder(EditHandler handler) {
- final IMAPTreeItem selected =
(IMAPTreeItem)folderTree.getSelectedItem();
+ final IMAPTreeItem selected = (IMAPTreeItem)
folderTree.getSelectedItem();
IMAPFolder oldFolder = (IMAPFolder) selected.getUserObject();
-
- // Generate a new folder with a whitespace as name, this is needed as
workaround
- IMAPFolder folder = new IMAPFolder(oldFolder.getFullName() +
oldFolder.getDelimiter() +" ");
+
+ // Generate a new folder with a whitespace as name, this is needed as
+ // workaround
+ IMAPFolder folder = new IMAPFolder(oldFolder.getFullName() +
oldFolder.getDelimiter() + " ");
folder.setDelimiter(oldFolder.getDelimiter());
final IMAPTreeItem newItem = new IMAPTreeItem(folder);
-
+
// add the new item as child
folderTree.getSelectedItem().addItem(newItem);
newItem.addEditHandler(handler);
@@ -475,33 +501,35 @@
public void onEditEvent(EditEvent event) {
if (event.getEventType().equals(EditEvent.EventType.Cancel)) {
- // remove the folder
+ // remove the folder
newItem.remove();
folderTree.setSelectedItem(selected, false);
} else if
(event.getEventType().equals(EditEvent.EventType.Stop)) {
// Select the new created folder and fire an event
folderTree.setSelectedItem(newItem, true);
}
-
+
}
-
+
});
- // Expand the parent
- folderTree.getSelectedItem().setState(true,false);
-
- // Select the new folder and start editing it
+ // Expand the parent
+ folderTree.getSelectedItem().setState(true, false);
+
+ // Select the new folder and start editing it
folderTree.setSelectedItem(newItem, false);
newItem.startEdit();
-
+
// reset the text of the new item (remove the whitespace)
newItem.setText("");
-
+
return newItem;
}
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#decreaseUnseenMessageCount(org.apache.hupa.shared.data.IMAPFolder,
int)
+ *
+ * @seeorg.apache.hupa.client.mvp.IMAPFolderPresenter.Display#
+ * decreaseUnseenMessageCount(org.apache.hupa.shared.data.IMAPFolder, int)
*/
public void decreaseUnseenMessageCount(IMAPFolder folder, int amount) {
int count = folderTree.getItemCount();
@@ -511,13 +539,15 @@
item.descreaseUnseenMessageCount(amount);
break;
}
-
+
}
}
/*
* (non-Javadoc)
- * @see
org.apache.hupa.client.mvp.IMAPFolderPresenter.Display#increaseUnseenMessageCount(org.apache.hupa.shared.data.IMAPFolder,
int)
+ *
+ * @seeorg.apache.hupa.client.mvp.IMAPFolderPresenter.Display#
+ * increaseUnseenMessageCount(org.apache.hupa.shared.data.IMAPFolder, int)
*/
public void increaseUnseenMessageCount(IMAPFolder folder, int amount) {
int count = folderTree.getItemCount();
@@ -527,16 +557,16 @@
item.increaseUnseenMessageCount(amount);
break;
}
-
+
}
}
-
+
private IMAPTreeItem findTreeItemForFolder(IMAPTreeItem item, IMAPFolder
folder) {
- if
(folder.getFullName().equalsIgnoreCase(((IMAPFolder)item.getUserObject()).getFullName()))
{
+ if (folder.getFullName().equalsIgnoreCase(((IMAPFolder)
item.getUserObject()).getFullName())) {
return item;
}
for (int i = 0; i < item.getChildCount(); i++) {
- IMAPTreeItem tItem =
findTreeItemForFolder((IMAPTreeItem)item.getChild(i),folder);
+ IMAPTreeItem tItem = findTreeItemForFolder((IMAPTreeItem)
item.getChild(i), folder);
if (tItem != null) {
return tItem;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]