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/10 05:12:24 UTC

svn commit: r792792 - in /labs/hupa: src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java src/main/java/org/apache/hupa/client/mvp/MainView.java war/Hupa.css

Author: norman
Date: Fri Jul 10 03:12:24 2009
New Revision: 792792

URL: http://svn.apache.org/viewvc?rev=792792&view=rev
Log:
some more work in progress for MVP and better look

Added:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/MainView.java
    labs/hupa/war/Hupa.css

Added: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=792792&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java Fri Jul 10 03:12:24 2009
@@ -0,0 +1,25 @@
+package org.apache.hupa.client.mvp;
+
+import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers;
+import com.google.gwt.gen2.table.event.client.RowSelectionEvent;
+import com.google.gwt.gen2.table.event.client.RowSelectionHandler;
+
+public class IMAPMessagePresenter {
+	
+	public interface Display {
+		public HasRowSelectionHandlers getDataTableSelection();
+	}
+	
+	
+	public void bind(Display display) {
+		display.getDataTableSelection().addRowSelectionHandler(new RowSelectionHandler() {
+
+			public void onRowSelection(RowSelectionEvent event) {
+				// TODO Auto-generated method stub
+				
+			}
+			
+		});
+	}
+
+}

Modified: 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=792792&r1=792791&r2=792792&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Fri Jul 10 03:12:24 2009
@@ -30,19 +30,22 @@
 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.IMAPMessage.IMAPFlag;
 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.mvp.IMAPMessagePresenter.Display;
 import org.apache.hupa.client.rpc.FetchMessages;
 import org.apache.hupa.client.rpc.FetchMessagesResult;
+import org.cobogw.gwt.user.client.ui.Button;
+import org.cobogw.gwt.user.client.ui.ButtonBar;
 
 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.logical.shared.ResizeEvent;
+import com.google.gwt.event.logical.shared.ResizeHandler;
 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;
@@ -56,18 +59,21 @@
 import com.google.gwt.gen2.table.client.AbstractScrollTable.ScrollPolicy;
 import com.google.gwt.gen2.table.client.PagingOptions.PagingOptionsImages;
 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.gen2.table.event.client.HasRowSelectionHandlers;
 import com.google.gwt.gen2.table.event.client.PageLoadEvent;
 import com.google.gwt.gen2.table.event.client.PageLoadHandler;
+import com.google.gwt.user.client.Window;
 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.HorizontalPanel;
+import com.google.gwt.user.client.ui.RootPanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.inject.Inject;
 
-public class IMAPMessageView extends Composite{
+public class IMAPMessageView extends Composite implements Display{
 
 	private HupaConstants constants = GWT.create(HupaConstants.class);
 	private DispatchAsync dispatcher;
@@ -75,10 +81,7 @@
 	private IMAPFolder folder;
 	private String searchValue;
 
-	private PagingScrollTable<IMAPMessage> mailTable = new PagingScrollTable<IMAPMessage>(
-			new IMAPMessageTableModel(), createDataTable(),
-			createHeaderTable(),
-			createTableDefinitation());
+	private PagingScrollTable<IMAPMessage> mailTable;
 	
 	@Inject
 	public IMAPMessageView(DispatchAsync dispatcher,EventBus bus) {
@@ -98,87 +101,92 @@
 		
 		VerticalPanel vPanel = new VerticalPanel();
 
+		mailTable = new PagingScrollTable<IMAPMessage>(
+				new IMAPMessageTableModel(), createDataTable(),
+				createHeaderTable(),
+				createTableDefinitation());
 		mailTable.setPageSize(20);
-		mailTable.setEmptyTableWidget(new HTML("There is no data to display"));
+		HTML emptyTable = new HTML("There is no data to display");
+		emptyTable.setHeight("300px");
+		mailTable.setEmptyTableWidget(emptyTable);
 		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");
+		mailTable.setSize(Window.getClientWidth() - 200 + "px", "600px");
 		mailTable.addPageLoadHandler(new PageLoadHandler() {
 
 			public void onPageLoad(PageLoadEvent event) {
 				for (int i = 0; i < mailTable.getDataTable().getRowCount(); i++) {
-					if (i % 2 == 0) {
-						mailTable.getDataTable().getRowFormatter().setStyleName(i,
-								"hupa-Mailtable-row1");
-					} else {
-						mailTable.getDataTable().getRowFormatter().setStyleName(i,
-								"hupa-Mailtable-row2");
-					}
-					/*
-					mailTable.getDataTable().getCellFormatter().setWordWrap(i, 0,
-							false);
-					mailTable.getDataTable().getCellFormatter().setWordWrap(i, 1,
-							false);
-					mailTable.getDataTable().getCellFormatter().setWordWrap(i, 2,
-							false);
-					*/
+					mailTable.getDataTable().getRowFormatter().setStyleName(i,"hupa-Mailtable-row");
+					mailTable.getDataTable().getCellFormatter().setWordWrap(i, 0,false);
+					mailTable.getDataTable().getCellFormatter().setWordWrap(i, 1,false);
+					mailTable.getDataTable().getCellFormatter().setWordWrap(i, 2,false);
+					
 					mailTable.getDataTable().getCellFormatter().addStyleName(i,0,"hupa-Mailtable");
 					mailTable.getDataTable().getCellFormatter().addStyleName(i,1,"hupa-Mailtable");
-					mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable-cell-date");
+					mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable");
+					//mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable-cell-date");
 
 				}
 			}
 			
 		});
 		mailTable.getDataTable().setCellSpacing(0);
-		
+		Window.addResizeHandler(new ResizeHandler() {
 
+			public void onResize(ResizeEvent event) {
+				int width = event.getWidth() - 200;
+				mailTable.setWidth(width + "px");
+		
+			}
+		});
+		
+		mailTable.fillWidth();
 		PagingOptions options = new PagingOptions(mailTable, (PagingOptionsImages) GWT.create(MyPagingOptionImages.class));
 		
-		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-		vPanel.add(options);
+		ButtonBar navigatorBar = new ButtonBar();
+		Button newMailButton = new Button(constants.newMailButton());
+		navigatorBar.add(newMailButton);
+		Button deleteMailButton = new Button(constants.deleteMailButton());
+		navigatorBar.add(deleteMailButton);
+
+		HorizontalPanel hPanel = new HorizontalPanel();
+		hPanel.setStyleName("hupa-MailTableControl");
+		hPanel.setSpacing(10);
+		hPanel.add(navigatorBar);
+		hPanel.add(options);
+		hPanel.setWidth("100%");
+		hPanel.setHeight("100%");
+		vPanel.add(hPanel);
 		vPanel.add(mailTable);
-		//vPanel.add(options);
 		initWidget(vPanel);
 	}
 	
-	private String truncate(String rawString) {
-		if (rawString.length() > 50) {
-			return rawString.substring(0, 50);
-		} else {
-			return rawString;
-		}
-	}
-	
 
 	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();
+		return headerTable;
+		/*
 		final CheckBox box = new CheckBox();
 		box.addClickHandler(new ClickHandler() {
 
 			public void onClick(ClickEvent event) {
 				CheckBox headerCheckbox = (CheckBox) event.getSource();
-				for (int i = 1; i < mailTable.getDataTable().getRowCount(); i++) {
-					((CheckBox) mailTable.getDataTable().getWidget(i, 0))
-							.setValue(headerCheckbox.getValue());
+				if (headerCheckbox.getValue()) {
+					mailTable.getDataTable().selectAllRows();
+				} else {
+					mailTable.getDataTable().deselectAllRows();
+				}
+				
+				for (int i = 0; i < mailTable.getDataTable().getRowCount(); i++) {
 					if(headerCheckbox.getValue() == true) {
 						mailTable.getDataTable().getRowFormatter().setStyleName(i, "hupa-Mailtable-row-selected");
 					} else {
@@ -186,13 +194,16 @@
 
 					}
 				
+				
 					IMAPMessage message = mailTable.getRowValue(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");
 					}
+					
 				}
 			}
 
@@ -211,6 +222,7 @@
 		headerTable.getFlexCellFormatter().addStyleName(0,2,"hupa-Mailtable-Header");
 		headerTable.getFlexCellFormatter().addStyleName(0,3,"hupa-Mailtable-Header");
 		return headerTable;
+		*/
 	}
 	
 	/**
@@ -227,19 +239,19 @@
 		List<ColumnDefinition<IMAPMessage, ?>> cList = new ArrayList<ColumnDefinition<IMAPMessage, ?>>();
 
 		FromColumnDefination from = new FromColumnDefination();
-		from.setMinimumColumnWidth(200);
+		from.setColumnTruncatable(true);
+		from.setPreferredColumnWidth(250);
 		cList.add(from);
 
 		
 		SubjectColumnDefination subject =new SubjectColumnDefination();
-		subject.setMinimumColumnWidth(500);
-
-		
+		subject.setColumnTruncatable(true);
+		from.setPreferredColumnWidth(800);
 		cList.add(subject);
 		
 		DateColumnDefination date = new DateColumnDefination();
-		date.setMinimumColumnWidth(100);
-		
+		date.setColumnTruncatable(true);
+
 		cList.add(date);
 		
 		return cList;
@@ -251,6 +263,18 @@
 		public void requestRows(
 				final Request request,
 				final com.google.gwt.gen2.table.client.TableModel.Callback<IMAPMessage> callback) {
+			GWT.log("HERE", null);
+			if (user == null || folder == null) {
+				setRowCount(0);
+				callback.onRowsReady(request, new TableModelHelper.Response<IMAPMessage>() {
+
+					@Override
+					public Iterator<IMAPMessage> getRowValues() {
+						return new ArrayList<IMAPMessage>().iterator();
+					}
+					
+				});
+			}
 			dispatcher.execute(new FetchMessages(user,folder,request.getStartRow(),request.getStartRow() + request.getNumRows(),searchValue), new AsyncCallback<FetchMessagesResult>() {
 
 				public void onFailure(Throwable caught) {
@@ -309,7 +333,7 @@
 
 		@Override
 		public String getCellValue(IMAPMessage rowValue) {
-			return rowValue.getIMAPHeader().getReceivedDate().toString();
+			return ""; //rowValue.getIMAPHeader().getReceivedDate().toString();
 		}
 
 		@Override
@@ -319,4 +343,8 @@
 		}
 		
 	}
+
+	public HasRowSelectionHandlers getDataTableSelection() {
+		return mailTable.getDataTable();
+	}
 }

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=792792&r1=792791&r2=792792&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 Fri Jul 10 03:12:24 2009
@@ -4,6 +4,7 @@
 
 import org.apache.hupa.client.HupaConstants;
 import org.apache.hupa.client.bundles.IMAPTreeImages;
+import org.apache.hupa.client.data.IMAPFolder;
 import org.apache.hupa.client.data.IMAPMessage;
 import org.apache.hupa.client.widgets.IMAPTreeItem;
 import org.cobogw.gwt.user.client.ui.Button;
@@ -71,7 +72,7 @@
 	private void createWest() {
 			west = new RoundedPanel(RoundedPanel.ALL);
 			west.add(folderTree);
-			west.setWidth("30%");	
+			west.setWidth("150px");	
 			folderTree.setAnimationEnabled(true);
 			
 		
@@ -119,30 +120,10 @@
 	}
 
 	private void createCenter() {
-
-		centerVP.setSpacing(10);
-
-		HorizontalPanel navPanel = new HorizontalPanel();
-		navPanel.setSpacing(10);
-		navPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
-		ButtonBar navigatorBar = new ButtonBar();
-		Button newMailButton = new Button(constants.newMailButton());
-		navigatorBar.add(newMailButton);
-		Button deleteMailButton = new Button(constants.deleteMailButton());
-		navigatorBar.add(deleteMailButton);
-
-		navPanel.add(navigatorBar);
-		
-		rowsPerPageBox.setWidth("40px");
-		rowsPerPageBox.setValue("20");
-		
-		navPanel.add(rowsPerPageBox);
-		navPanel.add(new Label(constants.rowsPerPageLabel()));
-		centerVP.add(navPanel);
-		//messageView.setPixelSize(900, 600);
-		centerVP.add(messageView);
-		center = new RoundedPanel();
-		center.add(centerVP);
+		center = new RoundedPanel(RoundedPanel.ALL, 3);
+		center.setBorderColor("#C3D9FF");
+		
+		center.add(messageView);
 		center.setWidth("100%");
 
 	}
@@ -170,8 +151,13 @@
 		folderTree.clear();
 		
 		for (int i = 0; i < treeList.size(); i++) {
-			folderTree.addItem(treeList.get(i));
-		
+			IMAPTreeItem item = treeList.get(i);
+			IMAPFolder folder = (IMAPFolder)item.getUserObject();
+			folderTree.addItem(item);
+
+			if (folder.getFullName().equalsIgnoreCase("INBOX")) {
+				folderTree.setSelectedItem(item);
+			}
 		}
 	}
 }

Modified: labs/hupa/war/Hupa.css
URL: http://svn.apache.org/viewvc/labs/hupa/war/Hupa.css?rev=792792&r1=792791&r2=792792&view=diff
==============================================================================
--- labs/hupa/war/Hupa.css (original)
+++ labs/hupa/war/Hupa.css Fri Jul 10 03:12:24 2009
@@ -1,31 +1,28 @@
-h1 {
-  font-size: 2em;
-  font-weight: bold;
-  color: #777777;
-  margin: 40px 0px 70px;
-  text-align: center;
-}
 
 .cbg-RP { 
-	background-color:	#E6E6FA; 
+	background-color:	#E0ECFF;
 }
 
 .hupa-ErrorLabel {
     color:              #FF0000;
 }
 
+.hupa-MailTableControl {
+	background-color:	#E0ECFF;	
+}
+
 .hupa-LoginWidgetHeader {
 	border-top:			1pt solid grey;
 	border-bottom:		1pt solid grey;
 	text-align:			left;
 	padding-left:		5px;
-	background-color:	#E6E6FA;
+	background-color:	#E0ECFF;
 }
 
 .hupa-IMAPMessageWidget-Header {
 	border:				1pt solid grey;
 	text-align:			left;
-	background-color:	#E6E6FA;
+	background-color:	#E0ECFF;
 }
 
 .hupa-IMAPMessageWidget-ButtonBar {
@@ -37,16 +34,15 @@
 .hupa-Northpanel {
 	border-top:			1pt solid grey;
 	border-bottom:		1pt solid grey;
-	
-	background-color:	#E6E6FA;
+	background-color:	#E0ECFF;
 }
 
 .hupa-Mailtable{
-    border-bottom:      1pt solid silver;
+    border-top:      1pt solid silver;
 }
 
 .hupa-Mailtable-Header {
-	background-color:	#E6E6FA;
+	background-color:	#E0ECFF;
 	text-align: 		center;
 	border-top:         1pt solid grey;
 	border-bottom:      1pt solid grey;
@@ -61,7 +57,7 @@
 	  background-color:	#F0E68C;
 	  text-align: 		left;
 	  vertical-align: 	top;
-  	  margin: 			0px 5px 0px 5px;
+	padding: 			0px 10px 0px 10px;
 	  font-size: 	    80%;
 	  cursor:           hand;
 }
@@ -69,27 +65,10 @@
 .hupa-Mailtable-row {
     text-align: 		left;
 	vertical-align: 	top;
-	margin: 			0px 5px 0px 5px;
+	padding: 			0px 10px 0px 10px;
 	font-size: 			80%;
 	cursor:             hand;
 }
-.hupa-Mailtable-row1 {
-	background-color:	#FFFFFF;
-	text-align: 		left;
-	vertical-align: 	top;
-	margin: 			0px 5px 0px 5px;
-	font-size: 			80%;
-	cursor:             hand; 
-}
-
-.hupa-Mailtable-row2 {
-	background-color:	#F5F5F5;
-	text-align: 		left;
-	vertical-align:		top;
-	margin: 			0px 5px 0px 5px;
-	font-size: 			80%;
-	cursor:             hand; 
-}
 
 .hupa-Mailtable-cell-date {
 	text-align: 		right;
@@ -97,5 +76,5 @@
 }
 
 .hupa-IMAPFolder-selected {
-	background:			#E6E6FA;
+	background:			#E0ECFF;
 }
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org