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/07/08 15:44:22 UTC
svn commit: r792137 - in /labs/hupa: src/main/java/org/apache/hupa/
src/main/java/org/apache/hupa/client/events/
src/main/java/org/apache/hupa/client/gin/
src/main/java/org/apache/hupa/client/mvp/ war/
Author: norman
Date: Wed Jul 8 13:44:20 2009
New Revision: 792137
URL: http://svn.apache.org/viewvc?rev=792137&view=rev
Log:
Commit first version of supporting paging for the MailTable. Its still ugly and the MVP pattern needs some review, but at least it work.
Added:
labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEvent.java
labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEventHandler.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
Removed:
labs/hupa/src/main/java/org/apache/hupa/client/events/IMAPFolderChangeEvent.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/Hupa.gwt.xml
labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
labs/hupa/war/Hupa.css
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=792137&r1=792136&r2=792137&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 Wed Jul 8 13:44:20 2009
@@ -13,7 +13,10 @@
<!-- Other module inherits -->
<inherits name='org.cobogw.gwt.user.User' />
-
+ <inherits name='com.google.gwt.widgetideas.WidgetIdeas'/>
+ <inherits name='com.google.gwt.gen2.commonwidget.CommonWidget' />
+ <inherits name='com.google.gwt.gen2.table.override.Override'/>
+ <inherits name='com.google.gwt.gen2.table.ScrollTable'/>
<inherits name='net.customware.gwt.dispatch.Dispatch' />
<inherits name="com.google.gwt.inject.Inject"/>
Added: labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEvent.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEvent.java?rev=792137&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEvent.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEvent.java Wed Jul 8 13:44:20 2009
@@ -0,0 +1,64 @@
+
+/****************************************************************
+ * 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.events;
+
+import org.apache.hupa.client.data.IMAPFolder;
+import org.apache.hupa.client.data.IMAPUser;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+public class LoadMessagesEvent extends GwtEvent<LoadMessagesEventHandler>{
+ public static Type<LoadMessagesEventHandler> TYPE = new Type<LoadMessagesEventHandler>();
+ private IMAPUser user;
+ private IMAPFolder folder;
+ private String searchValue;
+
+ public LoadMessagesEvent(IMAPUser user, IMAPFolder folder) {
+ this(user,folder,null);
+ }
+
+ public LoadMessagesEvent(IMAPUser user, IMAPFolder folder, String searchValue) {
+ this.user = user;
+ this.folder = folder;
+ this.searchValue = searchValue;
+ }
+ public IMAPUser getUser() {
+ return user;
+ }
+ public IMAPFolder getFolder() {
+ return folder;
+ }
+
+ public String getSearchValue() {
+ return searchValue;
+ }
+
+ @Override
+ protected void dispatch(LoadMessagesEventHandler handler) {
+ handler.onLoadMessagesEvent(this);
+ }
+
+ @Override
+ public com.google.gwt.event.shared.GwtEvent.Type<LoadMessagesEventHandler> getAssociatedType() {
+ return TYPE;
+ }
+
+}
Added: labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEventHandler.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEventHandler.java?rev=792137&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEventHandler.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/events/LoadMessagesEventHandler.java Wed Jul 8 13:44:20 2009
@@ -0,0 +1,27 @@
+/****************************************************************
+ * 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.events;
+
+import com.google.gwt.event.shared.EventHandler;
+
+public interface LoadMessagesEventHandler extends EventHandler{
+
+ public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent);
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java?rev=792137&r1=792136&r2=792137&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/gin/MyClientModule.java Wed Jul 8 13:44:20 2009
@@ -22,6 +22,7 @@
import org.apache.hupa.client.events.EventBus;
import org.apache.hupa.client.mvp.AppPresenter;
import org.apache.hupa.client.mvp.AppView;
+import org.apache.hupa.client.mvp.IMAPMessageView;
import org.apache.hupa.client.mvp.LoginPresenter;
import org.apache.hupa.client.mvp.LoginView;
import org.apache.hupa.client.mvp.MainPresenter;
@@ -41,6 +42,7 @@
bind(AppPresenter.class).in(Singleton.class);
bind(MainView.class).in(Singleton.class);
bind(MainPresenter.class).in(Singleton.class);
+ bind(IMAPMessageView.class).in(Singleton.class);
}
}
Added: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=792137&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Wed Jul 8 13:44:20 2009
@@ -0,0 +1,278 @@
+/****************************************************************
+ * 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.mvp;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import net.customware.gwt.dispatch.client.DispatchAsync;
+
+import org.apache.hupa.client.HupaConstants;
+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.events.EventBus;
+import org.apache.hupa.client.events.LoadMessagesEvent;
+import org.apache.hupa.client.events.LoadMessagesEventHandler;
+import org.apache.hupa.client.rpc.FetchMessages;
+import org.apache.hupa.client.rpc.FetchMessagesResult;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.gen2.table.client.AbstractColumnDefinition;
+import com.google.gwt.gen2.table.client.ColumnDefinition;
+import com.google.gwt.gen2.table.client.DefaultRowRenderer;
+import com.google.gwt.gen2.table.client.DefaultTableDefinition;
+import com.google.gwt.gen2.table.client.FixedWidthFlexTable;
+import com.google.gwt.gen2.table.client.FixedWidthGrid;
+import com.google.gwt.gen2.table.client.FixedWidthGridBulkRenderer;
+import com.google.gwt.gen2.table.client.PagingOptions;
+import com.google.gwt.gen2.table.client.PagingScrollTable;
+import com.google.gwt.gen2.table.client.TableDefinition;
+import com.google.gwt.gen2.table.client.TableModel;
+import com.google.gwt.gen2.table.client.TableModelHelper;
+import com.google.gwt.gen2.table.client.AbstractScrollTable.ResizePolicy;
+import com.google.gwt.gen2.table.client.AbstractScrollTable.ScrollPolicy;
+import com.google.gwt.gen2.table.client.SelectionGrid.SelectionPolicy;
+import com.google.gwt.gen2.table.client.TableDefinition.AbstractRowView;
+import com.google.gwt.gen2.table.client.TableModelHelper.Request;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.CheckBox;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.inject.Inject;
+
+public class IMAPMessageView extends Composite{
+
+ private HupaConstants constants = GWT.create(HupaConstants.class);
+ private DispatchAsync dispatcher;
+ private IMAPUser user;
+ private IMAPFolder folder;
+ private String searchValue;
+
+ private PagingScrollTable<IMAPMessage> mailTable = new PagingScrollTable<IMAPMessage>(
+ new IMAPMessageTableModel(), createDataTable(),
+ createHeaderTable(),
+ createTableDefinitation());
+
+ @Inject
+ public IMAPMessageView(DispatchAsync dispatcher,EventBus bus) {
+ this.dispatcher = dispatcher;
+ bus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
+
+ public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
+ user = loadMessagesEvent.getUser();
+ folder = loadMessagesEvent.getFolder();
+ searchValue = loadMessagesEvent.getSearchValue();
+ mailTable.reloadPage();
+ }
+
+ });
+
+ VerticalPanel vPanel = new VerticalPanel();
+
+ final CheckBox headerCheckbox = new CheckBox();
+ headerCheckbox.addClickHandler(new ClickHandler() {
+
+ public void onClick(ClickEvent event) {
+ mailTable.getDataTable();
+ /*
+ for (int i = 1; i < mailTable.getDataTable().getRowCount(); i++) {
+ ((CheckBox) mailTable.getDataTable().getWidget(i, 0))
+ .setValue(headerCheckbox.getValue());
+ if(headerCheckbox.getValue() == true) {
+ mailTable.getDataTable().getRowFormatter().setStyleName(i, "hupa-Mailtable-row-selected");
+ } else {
+ mailTable.getDataTable().getRowFormatter().removeStyleName(i, "hupa-Mailtable-row-selected");
+
+ }
+
+ IMAPMessage message = mMap.get(i);
+ if (message.getIMAPFlags().contains(IMAPFlag.SEEN) == false) {
+ mailTable.getDataTable().getRowFormatter().addStyleName(i,
+ "hupa-Mailtable-row-notseen");
+ } else {
+ mailTable.getDataTable().getRowFormatter().removeStyleName(i, "hupa-Mailtable-row-notseen");
+ }
+ }
+ */
+ }
+
+ });
+
+
+ mailTable.setPageSize(20);
+ mailTable.setEmptyTableWidget(new HTML("There is no data to display"));
+ FixedWidthGridBulkRenderer<IMAPMessage> bulkRenderer = new FixedWidthGridBulkRenderer<IMAPMessage>(mailTable.getDataTable(),mailTable);
+ mailTable.setBulkRenderer(bulkRenderer);
+
+ mailTable.setCellPadding(0);
+ mailTable.setResizePolicy(ResizePolicy.FILL_WIDTH);
+ mailTable.setScrollPolicy(ScrollPolicy.DISABLED);
+ mailTable.setSize("900px", "600px");
+
+ PagingOptions options = new PagingOptions(mailTable);
+ vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+ vPanel.add(options);
+ vPanel.add(mailTable);
+ //vPanel.add(options);
+ initWidget(vPanel);
+ }
+
+ private TableDefinition<IMAPMessage> createTableDefinitation() {
+ DefaultTableDefinition<IMAPMessage> def = new DefaultTableDefinition<IMAPMessage>(createColumnDefinitionList());
+ def.setRowRenderer(new DefaultRowRenderer<IMAPMessage>() {
+
+ @Override
+ public void renderRowValue(IMAPMessage rowValue,
+ AbstractRowView<IMAPMessage> view) {
+ super.renderRowValue(rowValue, view);
+ }
+
+ });
+ return def;
+ }
+
+ private FixedWidthFlexTable createHeaderTable() {
+ FixedWidthFlexTable headerTable = new FixedWidthFlexTable();
+ final CheckBox box = new CheckBox();
+ headerTable.setWidget(0, 0, box);
+ headerTable.setText(0, 1, constants.headerFrom());
+ headerTable.setText(0, 2, constants.mailTableSubject());
+ headerTable.setText(0, 3, constants.mailTableDate());
+
+ headerTable.setCellSpacing(0);
+
+ headerTable.getRowFormatter().setStyleName(0,"hupa-Mailtable-Header");
+
+ headerTable.getFlexCellFormatter().addStyleName(0,0,"hupa-Mailtable-Header");
+ headerTable.getFlexCellFormatter().addStyleName(0,1,"hupa-Mailtable-Header");
+ headerTable.getFlexCellFormatter().addStyleName(0,2,"hupa-Mailtable-Header");
+ headerTable.getFlexCellFormatter().addStyleName(0,3,"hupa-Mailtable-Header");
+ return headerTable;
+ }
+
+ /**
+ * @return the newly created data table.
+ */
+ private FixedWidthGrid createDataTable() {
+ FixedWidthGrid dataTable = new FixedWidthGrid();
+ dataTable.setSelectionPolicy(SelectionPolicy.CHECKBOX);
+ return dataTable;
+ }
+
+
+ private List<ColumnDefinition<IMAPMessage, ?>> createColumnDefinitionList() {
+ List<ColumnDefinition<IMAPMessage, ?>> cList = new ArrayList<ColumnDefinition<IMAPMessage, ?>>();
+
+ FromColumnDefination from = new FromColumnDefination();
+ from.setMinimumColumnWidth(200);
+ cList.add(from);
+
+
+ SubjectColumnDefination subject =new SubjectColumnDefination();
+ subject.setMinimumColumnWidth(500);
+
+
+ cList.add(subject);
+
+ DateColumnDefination date = new DateColumnDefination();
+ date.setMinimumColumnWidth(100);
+
+ cList.add(date);
+
+ return cList;
+ }
+
+ private final class IMAPMessageTableModel extends TableModel<IMAPMessage> {
+
+ @Override
+ public void requestRows(
+ final Request request,
+ final com.google.gwt.gen2.table.client.TableModel.Callback<IMAPMessage> callback) {
+ dispatcher.execute(new FetchMessages(user,folder,request.getStartRow(),request.getStartRow() + request.getNumRows(),searchValue), new AsyncCallback<FetchMessagesResult>() {
+
+ public void onFailure(Throwable caught) {
+ callback.onFailure(caught);
+ }
+
+ public void onSuccess(final FetchMessagesResult result) {
+ callback.onRowsReady(request, new TableModelHelper.Response<IMAPMessage>() {
+
+ @Override
+ public Iterator<IMAPMessage> getRowValues() {
+ return result.getMessages().iterator();
+ }
+
+ });
+ }
+
+ });
+ }
+
+ }
+
+ private final class FromColumnDefination extends AbstractColumnDefinition<IMAPMessage, String> {
+
+ @Override
+ public String getCellValue(IMAPMessage rowValue) {
+ return rowValue.getIMAPHeader().getFrom();
+ }
+
+ @Override
+ public void setCellValue(IMAPMessage rowValue, String cellValue) {
+ rowValue.getIMAPHeader().setFrom(cellValue);
+ }
+
+ }
+
+ private final class SubjectColumnDefination extends AbstractColumnDefinition<IMAPMessage, String> {
+
+ @Override
+ public String getCellValue(IMAPMessage rowValue) {
+ return rowValue.getIMAPHeader().getSubject();
+ }
+
+ @Override
+ public void setCellValue(IMAPMessage rowValue, String cellValue) {
+ rowValue.getIMAPHeader().setSubject(cellValue);
+
+ }
+
+ }
+
+ private final class DateColumnDefination extends AbstractColumnDefinition<IMAPMessage, String> {
+
+ @Override
+ public String getCellValue(IMAPMessage rowValue) {
+ return rowValue.getIMAPHeader().getReceivedDate().toString();
+ }
+
+ @Override
+ public void setCellValue(IMAPMessage rowValue, String cellValue) {
+ rowValue.getIMAPHeader().setReceivedDate(null);
+
+ }
+
+ }
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java?rev=792137&r1=792136&r2=792137&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java Wed Jul 8 13:44:20 2009
@@ -5,37 +5,30 @@
import java.util.Comparator;
import java.util.List;
+import net.customware.gwt.dispatch.client.DispatchAsync;
+
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.events.EventBus;
+import org.apache.hupa.client.events.LoadMessagesEvent;
import org.apache.hupa.client.events.LoginEvent;
import org.apache.hupa.client.events.LoginEventHandler;
import org.apache.hupa.client.events.LogoutEvent;
import org.apache.hupa.client.events.LogoutEventHandler;
import org.apache.hupa.client.rpc.FetchFolders;
import org.apache.hupa.client.rpc.FetchFoldersResult;
-import org.apache.hupa.client.rpc.FetchMessages;
-import org.apache.hupa.client.rpc.FetchMessagesResult;
import org.apache.hupa.client.rpc.LogoutUser;
import org.apache.hupa.client.rpc.LogoutUserResult;
import org.apache.hupa.client.widgets.IMAPTreeItem;
-import net.customware.gwt.dispatch.client.DispatchAsync;
-
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.HasAllKeyHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.event.dom.client.KeyCodes;
-import com.google.gwt.event.dom.client.KeyUpEvent;
-import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
-import com.google.gwt.user.client.ui.HTMLTable;
import com.google.gwt.user.client.ui.HasValue;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.HTMLTable.Cell;
@@ -49,11 +42,10 @@
public HasSelectionHandlers<TreeItem> getTree();
public HasClickHandlers getSearchClick();
public HasValue<String> getSearchValue();
- public HasAllKeyHandlers getRowsPerPage();
- public HasValue<String> getRowsPerPageValue();
- public HasClickHandlers getTableClick();
+
+ //public HasRowSelectionHandlers getTableClick();
public void bindTreeItems(List<IMAPTreeItem> treeList);
- public void bindMessages(List<IMAPMessage> messageList);
+ //public void bindMessages(List<IMAPMessage> messageList);
}
@@ -62,7 +54,7 @@
private Display display;
private IMAPUser user;
private IMAPFolder folder;
- private String searchValue = null;
+
protected Cell cell;
@Inject
@@ -84,11 +76,12 @@
bus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
public void onLogout(LogoutEvent logoutEvent) {
- display.bindTreeItems(new ArrayList<IMAPTreeItem>());
+ reset();
}
});
}
+
protected void loadTreeItems() {
dispatcher.execute(new FetchFolders(user), new AsyncCallback<FetchFoldersResult>() {
@@ -166,8 +159,7 @@
public void onSelection(SelectionEvent<TreeItem> event) {
TreeItem item = event.getSelectedItem();
folder = (IMAPFolder) item.getUserObject();
- fetchMessages();
-
+ bus.fireEvent(new LoadMessagesEvent(user,folder));
}
@@ -176,61 +168,20 @@
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();
}
- fetchMessages();
-
-
+ bus.fireEvent(new LoadMessagesEvent(user,folder,searchValue));
}
});
-
- display.getRowsPerPage().addKeyUpHandler(new KeyUpHandler() {
-
-
- public void onKeyUp(KeyUpEvent event) {
- if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
- fetchMessages();
- }
- }
- });
-
- display.getTableClick().addClickHandler(new ClickHandler() {
-
- public void onClick(ClickEvent event) {
- HTMLTable table = (HTMLTable) event.getSource();
- cell = table.getCellForEvent(event);
- if (cell.getRowIndex() > 0 && cell.getCellIndex() != 0) {
-
-
- }
-
- }
-
- });
}
-
- private void fetchMessages() {
- int rowsPerPage = Integer.parseInt(display.getRowsPerPageValue().getValue());
- dispatcher.execute(new FetchMessages(user,folder,0,0+rowsPerPage,searchValue), new AsyncCallback<FetchMessagesResult>() {
- public void onFailure(Throwable caught) {
- GWT.log("ERROR",caught);
- }
- public void onSuccess(FetchMessagesResult result) {
- display.bindMessages(result.getMessages());
- }
-
- });
-
- }
-
private void reset() {
- display.bindMessages(new ArrayList<IMAPMessage>());
+ //display.bindMessages(new ArrayList<IMAPMessage>());
display.bindTreeItems(new ArrayList<IMAPTreeItem>());
display.getSearchValue().setValue("");
}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=792137&r1=792136&r2=792137&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java Wed Jul 8 13:44:20 2009
@@ -1,32 +1,23 @@
package org.apache.hupa.client.mvp;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import org.apache.hupa.client.HupaConstants;
import org.apache.hupa.client.bundles.IMAPTreeImages;
import org.apache.hupa.client.data.IMAPMessage;
-import org.apache.hupa.client.data.IMAPMessage.IMAPFlag;
import org.apache.hupa.client.widgets.IMAPTreeItem;
import org.cobogw.gwt.user.client.ui.Button;
import org.cobogw.gwt.user.client.ui.ButtonBar;
import org.cobogw.gwt.user.client.ui.RoundedPanel;
import com.google.gwt.core.client.GWT;
-import com.google.gwt.event.dom.client.ClickEvent;
-import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.HasAllKeyHandlers;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
-import com.google.gwt.i18n.client.DateTimeFormat;
-import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HasValue;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
@@ -36,6 +27,7 @@
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.inject.Inject;
public class MainView extends Composite implements MainPresenter.Display{
@@ -52,12 +44,12 @@
private Button logoutButton = new Button(constants.logoutButton());
private VerticalPanel centerVP = new VerticalPanel();
private TextBox rowsPerPageBox = new TextBox();
- private FlexTable mailTable = new FlexTable();
- private Map<Integer, IMAPMessage> mMap = new HashMap<Integer, IMAPMessage>();
private RoundedPanel center;
- private DateTimeFormat dFormat = DateTimeFormat.getShortDateTimeFormat();
+ private IMAPMessageView messageView;
- public MainView() {
+ @Inject
+ public MainView(IMAPMessageView messageView) {
+ this.messageView = messageView;
dockPanel = new DockPanel();
dockPanel.setSpacing(10);
@@ -77,12 +69,11 @@
}
private void createWest() {
-
-
west = new RoundedPanel(RoundedPanel.ALL);
west.add(folderTree);
west.setWidth("30%");
folderTree.setAnimationEnabled(true);
+
}
private void createNorth() {
@@ -148,54 +139,12 @@
navPanel.add(rowsPerPageBox);
navPanel.add(new Label(constants.rowsPerPageLabel()));
centerVP.add(navPanel);
-
- final CheckBox headerCheckbox = new CheckBox();
- headerCheckbox.addClickHandler(new ClickHandler() {
-
- public void onClick(ClickEvent event) {
- for (int i = 1; i < mailTable.getRowCount(); i++) {
- ((CheckBox) mailTable.getWidget(i, 0))
- .setValue(headerCheckbox.getValue());
- if(headerCheckbox.getValue() == true) {
- mailTable.getRowFormatter().setStyleName(i, "hupa-Mailtable-row-selected");
- } else {
- mailTable.getRowFormatter().removeStyleName(i, "hupa-Mailtable-row-selected");
-
- }
- IMAPMessage message = mMap.get(i);
- if (message.getIMAPFlags().contains(IMAPFlag.SEEN) == false) {
- mailTable.getRowFormatter().addStyleName(i,
- "hupa-Mailtable-row-notseen");
- } else {
- mailTable.getRowFormatter().removeStyleName(i, "hupa-Mailtable-row-notseen");
- }
- }
- }
-
- });
-
- mailTable.setCellSpacing(0);
- mailTable.setWidget(0, 0, headerCheckbox);
- mailTable.getFlexCellFormatter().setWidth(0, 0, "15px");
- mailTable.setText(0, 1, constants.mailTableFrom());
- mailTable.getFlexCellFormatter().setWidth(0, 1, "200px");
- mailTable.setText(0, 2, constants.mailTableSubject());
- mailTable.getFlexCellFormatter().setWidth(0, 2, "500px");
- mailTable.setText(0, 3, constants.mailTableDate());
- mailTable.getFlexCellFormatter().setWidth(0, 3, "200px");
- mailTable.getRowFormatter().setStyleName(0,"hupa-Mailtable-Header");
-
- mailTable.getFlexCellFormatter().addStyleName(0,0,"hupa-Mailtable-Header");
- mailTable.getFlexCellFormatter().addStyleName(0,1,"hupa-Mailtable-Header");
- mailTable.getFlexCellFormatter().addStyleName(0,2,"hupa-Mailtable-Header");
- mailTable.getFlexCellFormatter().addStyleName(0,3,"hupa-Mailtable-Header");
-
-
-
- centerVP.add(mailTable);
+ //messageView.setPixelSize(900, 600);
+ centerVP.add(messageView);
center = new RoundedPanel();
center.add(centerVP);
center.setWidth("100%");
+
}
private String truncate(String rawString) {
if (rawString.length() > 50) {
@@ -204,15 +153,6 @@
return rawString;
}
}
- private void clearMailTableEntries() {
- // clear table
- int a = 0;
- while ((a = mailTable.getRowCount()) != 1) {
- mailTable.removeRow(a - 1);
- }
-
- mMap.clear();
- }
private void fillOracle(IMAPMessage msg) {
oracle.add(msg.getIMAPHeader().getFrom());
@@ -232,13 +172,6 @@
public HasValue<String> getSearchValue() {
return searchBox;
}
- public HasValue<String> getRowsPerPageValue() {
- return rowsPerPageBox;
- }
-
- public HasAllKeyHandlers getRowsPerPage() {
- return rowsPerPageBox;
- }
public void bindTreeItems(List<IMAPTreeItem> treeList) {
folderTree.clear();
@@ -249,6 +182,7 @@
}
}
+ /*
public void bindMessages(List<IMAPMessage> result) {
// clear table
clearMailTableEntries();
@@ -259,12 +193,12 @@
mCheckbox.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
- int row = mailTable.getCellForEvent(event).getRowIndex();
+ int row =1;//= mailTable.getDataTable().getSelectedRows();
if(mCheckbox.getValue() == true) {
- mailTable.getRowFormatter().setStyleName(row, "hupa-Mailtable-row-selected");
+ mailTable.getDataTable().getRowFormatter().setStyleName(row, "hupa-Mailtable-row-selected");
} else {
- mailTable.getRowFormatter().removeStyleName(row, "hupa-Mailtable-row-selected");
+ mailTable.getDataTable().getRowFormatter().removeStyleName(row, "hupa-Mailtable-row-selected");
}
@@ -274,45 +208,47 @@
IMAPMessage message = result.get(i);
fillOracle(message);
mMap.put(rows, message);
- mailTable.setWidget(rows, 0, mCheckbox);
- mailTable.setText(rows, 1, truncate(message.getIMAPHeader()
+ mailTable.getDataTable().setWidget(rows, 0, mCheckbox);
+ mailTable.getDataTable().setText(rows, 1, truncate(message.getIMAPHeader()
.getFrom()));
- mailTable.setText(rows, 2, truncate(message.getIMAPHeader()
+ mailTable.getDataTable().setText(rows, 2, truncate(message.getIMAPHeader()
.getSubject()));
- mailTable.setText(rows, 3, dFormat.format(message
+ mailTable.getDataTable().setText(rows, 3, dFormat.format(message
.getIMAPHeader().getReceivedDate()));
if (rows % 2 == 0) {
- mailTable.getRowFormatter().setStyleName(rows,
+ mailTable.getDataTable().getRowFormatter().setStyleName(rows,
"hupa-Mailtable-row1");
} else {
- mailTable.getRowFormatter().setStyleName(rows,
+ mailTable.getDataTable().getRowFormatter().setStyleName(rows,
"hupa-Mailtable-row2");
}
if (message.getIMAPFlags().contains(IMAPFlag.SEEN) == false) {
- mailTable.getRowFormatter().addStyleName(rows,
+ mailTable.getDataTable().getRowFormatter().addStyleName(rows,
"hupa-Mailtable-row-notseen");
} else {
- mailTable.getRowFormatter().removeStyleName(rows, "hupa-Mailtable-row-notseen");
+ mailTable.getDataTable().getRowFormatter().removeStyleName(rows, "hupa-Mailtable-row-notseen");
}
- mailTable.getCellFormatter().setWordWrap(rows, 1,
+ mailTable.getDataTable().getCellFormatter().setWordWrap(rows, 1,
false);
- mailTable.getCellFormatter().setWordWrap(rows, 2,
+ mailTable.getDataTable().getCellFormatter().setWordWrap(rows, 2,
false);
- mailTable.getCellFormatter().setWordWrap(rows, 3,
+ mailTable.getDataTable().getCellFormatter().setWordWrap(rows, 3,
false);
- mailTable.getFlexCellFormatter().addStyleName(rows,0,"hupa-Mailtable");
- mailTable.getFlexCellFormatter().addStyleName(rows,1,"hupa-Mailtable");
- mailTable.getFlexCellFormatter().addStyleName(rows,2,"hupa-Mailtable");
- mailTable.getFlexCellFormatter().addStyleName(rows,3,"hupa-Mailtable");
- mailTable.getFlexCellFormatter().addStyleName(rows,3,"hupa-Mailtable-cell-date");
+ mailTable.getDataTable().getCellFormatter().addStyleName(rows,0,"hupa-Mailtable");
+ mailTable.getDataTable().getCellFormatter().addStyleName(rows,1,"hupa-Mailtable");
+ mailTable.getDataTable().getCellFormatter().addStyleName(rows,2,"hupa-Mailtable");
+ mailTable.getDataTable().getCellFormatter().addStyleName(rows,3,"hupa-Mailtable");
+ mailTable.getDataTable().getCellFormatter().addStyleName(rows,3,"hupa-Mailtable-cell-date");
rows++;
}
}
- public HasClickHandlers getTableClick() {
- return mailTable;
+ public HasRowSelectionHandlers getTableClick() {
+ return mailTable.getDataTable();
}
+
+ */
}
Modified: labs/hupa/war/Hupa.css
URL: http://svn.apache.org/viewvc/labs/hupa/war/Hupa.css?rev=792137&r1=792136&r2=792137&view=diff
==============================================================================
--- labs/hupa/war/Hupa.css (original)
+++ labs/hupa/war/Hupa.css Wed Jul 8 13:44:20 2009
@@ -6,6 +6,23 @@
text-align: center;
}
+.gwt-GlassPanel {
+
+ /* Override glass panel color to be `green` */
+ background-color: green !important;
+
+ /* Override glass panel to 10% opacity (= 90% transparency) */
+ filter: alpha(opacity = 10) !important; /* IE */
+ opacity: 0.1 !important; /* non-IE */
+
+ /*
+ NOTE: Please do NOT use either CSS 'width' or 'height' here, as
+ this would defeat much of the effort that went into GlassPanel
+ in order to get it to work consistently in a variety of
+ circumstances. Specifically, please resist the urge to use
+ 'width/height: 100%' or similar constructs.
+ */
+ }
.cbg-RP {
background-color: #E6E6FA;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org