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 21:17:29 UTC

svn commit: r792273 - in /labs/hupa: src/main/java/org/apache/hupa/client/bundles/ src/main/java/org/apache/hupa/client/mvp/ src/main/java/org/apache/hupa/client/rpc/ src/main/java/org/apache/hupa/server/ war/

Author: norman
Date: Wed Jul  8 19:17:28 2009
New Revision: 792273

URL: http://svn.apache.org/viewvc?rev=792273&view=rev
Log:
A bit more I candy in the PagingTable
PagingTable now set the right PageCount

Added:
    labs/hupa/src/main/java/org/apache/hupa/client/bundles/MyPagingOptionImages.java
    labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_end_blue.png   (with props)
    labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_fastforward_blue.png   (with props)
    labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_rewind_blue.png   (with props)
    labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_start_blue.png   (with props)
    labs/hupa/war/scrollTableLoading.gif
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/src/main/java/org/apache/hupa/client/rpc/FetchMessagesResult.java
    labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java
    labs/hupa/war/Hupa.css

Added: labs/hupa/src/main/java/org/apache/hupa/client/bundles/MyPagingOptionImages.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/bundles/MyPagingOptionImages.java?rev=792273&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/bundles/MyPagingOptionImages.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/bundles/MyPagingOptionImages.java Wed Jul  8 19:17:28 2009
@@ -0,0 +1,37 @@
+/****************************************************************
+ * 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.bundles;
+
+import com.google.gwt.gen2.table.client.PagingOptions.PagingOptionsImages;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+public interface MyPagingOptionImages extends PagingOptionsImages{
+
+	
+	@Resource("control_start_blue.png")
+	AbstractImagePrototype pagingOptionsFirstPage();
+	@Resource("control_end_blue.png")
+	AbstractImagePrototype pagingOptionsLastPage();
+	@Resource("control_fastforward_blue.png")
+	AbstractImagePrototype pagingOptionsNextPage();
+	@Resource("control_rewind_blue.png")
+	AbstractImagePrototype pagingOptionsPrevPage();
+
+}

Added: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_end_blue.png
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_end_blue.png?rev=792273&view=auto
==============================================================================
Binary file - no diff available.

Propchange: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_end_blue.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_fastforward_blue.png
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_fastforward_blue.png?rev=792273&view=auto
==============================================================================
Binary file - no diff available.

Propchange: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_fastforward_blue.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_rewind_blue.png
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_rewind_blue.png?rev=792273&view=auto
==============================================================================
Binary file - no diff available.

Propchange: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_rewind_blue.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_start_blue.png
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_start_blue.png?rev=792273&view=auto
==============================================================================
Binary file - no diff available.

Propchange: labs/hupa/src/main/java/org/apache/hupa/client/bundles/control_start_blue.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

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=792273&r1=792272&r2=792273&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 Wed Jul  8 19:17:28 2009
@@ -26,9 +26,11 @@
 import net.customware.gwt.dispatch.client.DispatchAsync;
 
 import org.apache.hupa.client.HupaConstants;
+import org.apache.hupa.client.bundles.MyPagingOptionImages;
 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;
@@ -52,9 +54,12 @@
 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.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.PageLoadEvent;
+import com.google.gwt.gen2.table.event.client.PageLoadHandler;
 import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.CheckBox;
 import com.google.gwt.user.client.ui.Composite;
@@ -84,42 +89,14 @@
 				user = loadMessagesEvent.getUser();
 				folder = loadMessagesEvent.getFolder();
 				searchValue = loadMessagesEvent.getSearchValue();
+				mailTable.getTableModel().setRowCount(0);
 				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");
-					}
-				}
-				*/
-			}
-
-		});
 		
+		VerticalPanel vPanel = new VerticalPanel();
 
 		mailTable.setPageSize(20);
 		mailTable.setEmptyTableWidget(new HTML("There is no data to display"));
@@ -130,14 +107,53 @@
 		mailTable.setResizePolicy(ResizePolicy.FILL_WIDTH);
 		mailTable.setScrollPolicy(ScrollPolicy.DISABLED);
 		mailTable.setSize("900px", "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().getCellFormatter().addStyleName(i,0,"hupa-Mailtable");
+					mailTable.getDataTable().getCellFormatter().addStyleName(i,1,"hupa-Mailtable");
+					mailTable.getDataTable().getCellFormatter().addStyleName(i,2,"hupa-Mailtable-cell-date");
 
-		PagingOptions options = new PagingOptions(mailTable);
+				}
+			}
+			
+		});
+		mailTable.getDataTable().setCellSpacing(0);
+		
+
+		PagingOptions options = new PagingOptions(mailTable, (PagingOptionsImages) GWT.create(MyPagingOptionImages.class));
+		
 		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
 		vPanel.add(options);
 		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());
@@ -156,6 +172,31 @@
 	private FixedWidthFlexTable createHeaderTable() {
 		FixedWidthFlexTable headerTable = new FixedWidthFlexTable();
 		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() == true) {
+						mailTable.getDataTable().getRowFormatter().setStyleName(i, "hupa-Mailtable-row-selected");
+					} else {
+						mailTable.getDataTable().getRowFormatter().removeStyleName(i, "hupa-Mailtable-row-selected");
+
+					}
+				
+					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");
+					}
+				}
+			}
+
+		});
 		headerTable.setWidget(0, 0, box);
 		headerTable.setText(0, 1, constants.headerFrom());
 		headerTable.setText(0, 2, constants.mailTableSubject());
@@ -213,18 +254,21 @@
 			dispatcher.execute(new FetchMessages(user,folder,request.getStartRow(),request.getStartRow() + request.getNumRows(),searchValue), new AsyncCallback<FetchMessagesResult>() {
 
 				public void onFailure(Throwable caught) {
+					setRowCount(0);
 					callback.onFailure(caught);
 				}
 
 				public void onSuccess(final FetchMessagesResult result) {
-					callback.onRowsReady(request, new TableModelHelper.Response<IMAPMessage>() {
+					 TableModelHelper.Response<IMAPMessage> response = new TableModelHelper.Response<IMAPMessage>() {
 
 						@Override
 						public Iterator<IMAPMessage> getRowValues() {
 							return result.getMessages().iterator();
 						}
 						
-					});
+					};
+					setRowCount(result.getRealCount());
+					callback.onRowsReady(request,response);
 				}
 				
 			});

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=792273&r1=792272&r2=792273&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 19:17:28 2009
@@ -146,14 +146,7 @@
 		center.setWidth("100%");
 
 	}
-	private String truncate(String rawString) {
-		if (rawString.length() > 50) {
-			return rawString.substring(0, 50);
-		} else {
-			return rawString;
-		}
-	}
-	
+
 	private void fillOracle(IMAPMessage msg) {
 		oracle.add(msg.getIMAPHeader().getFrom());
 		oracle.add(msg.getIMAPHeader().getSubject());
@@ -181,74 +174,4 @@
 		
 		}
 	}
-	
-	/*
-	public void bindMessages(List<IMAPMessage> result) {
-		// clear table
-		clearMailTableEntries();
-
-		int rows = 1;
-		for (int i = 0; i < result.size(); i++) {
-			final CheckBox mCheckbox = new CheckBox();
-			mCheckbox.addClickHandler(new ClickHandler() {
-
-				public void onClick(ClickEvent event) {
-					int row =1;//=  mailTable.getDataTable().getSelectedRows();
-
-					if(mCheckbox.getValue() == true) {
-						mailTable.getDataTable().getRowFormatter().setStyleName(row, "hupa-Mailtable-row-selected");
-					} else {
-						mailTable.getDataTable().getRowFormatter().removeStyleName(row, "hupa-Mailtable-row-selected");
-
-					}
-					
-				}
-
-			});
-			IMAPMessage message = result.get(i);
-			fillOracle(message);
-			mMap.put(rows, message);
-			mailTable.getDataTable().setWidget(rows, 0, mCheckbox);
-			mailTable.getDataTable().setText(rows, 1, truncate(message.getIMAPHeader()
-					.getFrom()));
-			mailTable.getDataTable().setText(rows, 2, truncate(message.getIMAPHeader()
-					.getSubject()));
-			mailTable.getDataTable().setText(rows, 3, dFormat.format(message
-					.getIMAPHeader().getReceivedDate()));
-			
-			if (rows % 2 == 0) {
-				mailTable.getDataTable().getRowFormatter().setStyleName(rows,
-						"hupa-Mailtable-row1");
-			} else {
-				mailTable.getDataTable().getRowFormatter().setStyleName(rows,
-						"hupa-Mailtable-row2");
-			}
-			if (message.getIMAPFlags().contains(IMAPFlag.SEEN) == false) {
-				mailTable.getDataTable().getRowFormatter().addStyleName(rows,
-						"hupa-Mailtable-row-notseen");
-			} else {
-				mailTable.getDataTable().getRowFormatter().removeStyleName(rows, "hupa-Mailtable-row-notseen");
-			}
-			mailTable.getDataTable().getCellFormatter().setWordWrap(rows, 1,
-					false);
-			mailTable.getDataTable().getCellFormatter().setWordWrap(rows, 2,
-					false);
-			mailTable.getDataTable().getCellFormatter().setWordWrap(rows, 3,
-					false);
-			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 HasRowSelectionHandlers getTableClick() {
-		return mailTable.getDataTable();
-	}
-
-	*/
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/client/rpc/FetchMessagesResult.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/rpc/FetchMessagesResult.java?rev=792273&r1=792272&r2=792273&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/rpc/FetchMessagesResult.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/rpc/FetchMessagesResult.java Wed Jul  8 19:17:28 2009
@@ -52,15 +52,17 @@
 	private ArrayList<IMAPMessage> messages;
 	private int start;
 	private int offset;
+	private int realCount;
 
 	@SuppressWarnings("unused")
 	private FetchMessagesResult() {
 	}
 	
-	public FetchMessagesResult(ArrayList<IMAPMessage> messages,int start,int offset) {
+	public FetchMessagesResult(ArrayList<IMAPMessage> messages,int start,int offset,int realCount) {
 		this.messages = messages;
 		this.start = start;
 		this.offset = offset;
+		this.realCount = realCount;
 	}
 	
 	public ArrayList<IMAPMessage> getMessages() {
@@ -74,4 +76,8 @@
 	public int getStart() {
 		return start;
 	}
+	
+	public int getRealCount() {
+		return realCount;
+	}
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java?rev=792273&r1=792272&r2=792273&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java Wed Jul  8 19:17:28 2009
@@ -48,7 +48,7 @@
 
 	public FetchMessagesResult execute(FetchMessages action, ExecutionContext arg1)
 			throws ActionException {
-		return new FetchMessagesResult(getMessages(action.getUser(), action.getFolder(), action.getStart(), action.getStart() + action.getOffset(), action.getSearchString()),action.getStart(),action.getOffset());
+		return getMessages(action.getUser(), action.getFolder(), action.getStart(), action.getOffset(), action.getSearchString());
 		
 	}
 
@@ -61,9 +61,10 @@
 		// TODO Auto-generated method stub
 		
 	}
-	protected ArrayList<IMAPMessage> getMessages(IMAPUser user,IMAPFolder folder, int start, int end,String searchString) throws ActionException {
+	
+	protected FetchMessagesResult getMessages(IMAPUser user,IMAPFolder folder, int start, int offset,String searchString) throws ActionException {
 		ArrayList<IMAPMessage> mList = new ArrayList<IMAPMessage>();
-
+		int end = start + offset;
 		IMAPProtocol proto = null;
 		try {
 			proto = getProtocol(user);
@@ -71,8 +72,9 @@
 
 			int exists = mInfo.getExists();
 
+			
 			if (exists == 0) {
-				return mList;
+				return new FetchMessagesResult(mList,start,offset,exists);
 			}
 
 			if (end > exists) {
@@ -89,7 +91,7 @@
 				Collections.sort(matchedList);
 				
 				if (matchedList.size() == 0) {
-					return mList;
+					return new FetchMessagesResult(mList,start,offset,exists);
 				}
 				sSet = new SequenceSet(matchedList);
 			}
@@ -147,7 +149,7 @@
 				msg.setIMAPFlags(iFlags);
 				mList.add(0, msg);
 			}
-			return mList;
+			return new FetchMessagesResult(mList,start,offset,exists);
 		} catch (IOException e) {
 			throw new ActionException(
 					"Error while fetching headers for user " + user.getName()

Modified: labs/hupa/war/Hupa.css
URL: http://svn.apache.org/viewvc/labs/hupa/war/Hupa.css?rev=792273&r1=792272&r2=792273&view=diff
==============================================================================
--- labs/hupa/war/Hupa.css (original)
+++ labs/hupa/war/Hupa.css Wed Jul  8 19:17:28 2009
@@ -6,24 +6,6 @@
   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; 
 }
@@ -116,7 +98,4 @@
 
 .hupa-IMAPFolder-selected {
 	background:			#E6E6FA;
-}
-
-.hupa-IMAPFolder {
 }
\ No newline at end of file

Added: labs/hupa/war/scrollTableLoading.gif
URL: http://svn.apache.org/viewvc/labs/hupa/war/scrollTableLoading.gif?rev=792273&view=auto
==============================================================================
--- labs/hupa/war/scrollTableLoading.gif (added)
+++ labs/hupa/war/scrollTableLoading.gif Wed Jul  8 19:17:28 2009
@@ -0,0 +1,1120 @@
+
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <script type="text/javascript">
+ 
+ 
+ 
+ var codesite_token = "089299570f7886003fadaad4d3298cea";
+ 
+ 
+ var logged_in_user_email = "norman.maurer@googlemail.com";
+ 
+ </script>
+ <title>scrollTableLoading.gif - 
+ google-web-toolkit-incubator -
+ 
+ Google Code</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/ph_core.css">
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/ph_detail.css" >
+ 
+ 
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/d_sb_20080522.css" >
+ 
+ 
+ 
+<!--[if IE]>
+ <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/6209364925050224960/css/d_ie.css" >
+<![endif]-->
+</head>
+<body class="t4">
+ <div id="gaia">
+ 
+ <span>
+ 
+ <b>norman.maurer@googlemail.com</b>
+ 
+ 
+ | <a href="/u/norman.maurer/" id="projects-dropdown" onclick="return false;">My favorites</a><img width="14" height="14" class="menuIcon off" id="menuIcon-projects-dropdown" src="http://www.gstatic.com/codesite/ph/images/cleardot.gif"/>
+ 
+ | <a href="/u/norman.maurer/" onclick="_CS_click('/gb/ph/profile');" title="Profile, Updates, and Settings">Profile</a>
+ | <a href="http://www.google.com/accounts/Logout?continue=http%3A%2F%2Fcode.google.com%2Fp%2Fgoogle-web-toolkit-incubator%2Fsource%2Fbrowse%2Ftrunk%2Fsrc%2Fcom%2Fgoogle%2Fgwt%2Fgen2%2Ftable%2Fpublic%2FscrollTableLoading.gif" onclick="_CS_click('/gb/ph/signout');">Sign out</a>
+ 
+ </span>
+
+ </div>
+ <div class="gbh" style="left: 0pt;"></div>
+ <div class="gbh" style="right: 0pt;"></div>
+ 
+ 
+ <div style="height: 1px"></div>
+ <table style="padding:0px; margin: 20px 0px 0px 0px; width:100%" cellpadding="0" cellspacing="0">
+ <tr style="height: 58px;">
+ <td style="width: 55px; text-align:center;">
+ <a href="/p/google-web-toolkit-incubator/">
+ 
+ 
+ 
+ <img src="http://www.gstatic.com/codesite/ph/images/code_small.png"
+ width="161" height="40" alt="Google">
+ 
+ 
+ 
+ </a>
+ </td>
+ <td style="padding-left: 0.8em">
+ 
+ <div id="pname" style="margin: 0px 0px -3px 0px">
+ <a href="/p/google-web-toolkit-incubator/" style="text-decoration:none; color:#000">google-web-toolkit-incubator</a>
+ </div>
+ <div id="psum">
+ <i><a id="project_summary_link" href="/p/google-web-toolkit-incubator/" style="text-decoration:none; color:#000">The Official incubator of widgets and libraries for Google Web Toolkit</a></i>
+ </div>
+ 
+ </td>
+ <td style="white-space:nowrap; text-align:right">
+ 
+ <form action="/hosting/search">
+ <input size="30" name="q" value="">
+ <input type="submit" name="projectsearch" value="Search projects" >
+ </form>
+ 
+ </tr>
+ </table>
+
+ <div style="font-weight:bold; color:#a03; padding:5px; margin:6px; text-align:center; background:#ffeac0;">
+ Project hosting is currently READ-ONLY for network maintenance.
+ 
+ </div>
+
+
+
+ <table id="mt" cellspacing="0" cellpadding="0" width="100%" border="0">
+ <tr>
+ <th onclick="if (!cancelBubble) _go('/p/google-web-toolkit-incubator/');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/google-web-toolkit-incubator/">Project&nbsp;Home</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/google-web-toolkit-incubator/wiki/Downloads?tm=2');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/google-web-toolkit-incubator/wiki/Downloads?tm=2">Downloads</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/google-web-toolkit-incubator/wiki/Documentation?tm=6');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/google-web-toolkit-incubator/wiki/Documentation?tm=6">Wiki</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/google-web-toolkit-incubator/issues/list');">
+ <div class="tab inactive">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/google-web-toolkit-incubator/issues/list">Issues</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ 
+ 
+ 
+ <th onclick="if (!cancelBubble) _go('/p/google-web-toolkit-incubator/source/checkout');">
+ <div class="tab active">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <a onclick="cancelBubble=true;" href="/p/google-web-toolkit-incubator/source/checkout">Source</a>
+ </div>
+ </div>
+ </th><td>&nbsp;&nbsp;</td>
+ 
+ 
+ <td width="100%">&nbsp;</td>
+ </tr>
+</table>
+<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
+ <tr>
+ 
+ 
+ 
+ 
+ 
+ 
+ <td>
+ <div class="st2">
+ <div class="isf">
+ <span class="inst1"><a href="/p/google-web-toolkit-incubator/source/checkout">Checkout</a></span> |
+ <span class="inst2"><a href="/p/google-web-toolkit-incubator/source/browse/">Browse</a></span> |
+ <span class="inst3"><a href="/p/google-web-toolkit-incubator/source/list">Changes</a></span> |
+ 
+ <form action="http://www.google.com/codesearch" method="get" style="display:inline"
+ onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://google-web-toolkit-incubator\\.googlecode\\.com'">
+ <input type="hidden" name="q" id="codesearchq" value="">
+ <input maxlength="2048" size="35" id="origq" name="origq" value="" title="Google Code Search" style="font-size:92%">&nbsp;<input type="submit" value="Search Trunk" name="btnG" style="font-size:92%">
+ 
+ 
+ 
+ </form>
+ </div>
+</div>
+
+ </td>
+ 
+ 
+ 
+ 
+ 
+ <td height="4" align="right" valign="top" class="bevel-right">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ </td>
+ </tr>
+</table>
+<script type="text/javascript">
+ var cancelBubble = false;
+ function _go(url) { document.location = url; }
+</script>
+
+
+<div id="maincol"
+ 
+>
+
+ 
+<!-- IE -->
+
+
+
+<div class="expand">
+
+
+<style type="text/css">
+ #file_flipper { display: inline; float: right; white-space: nowrap; }
+ #file_flipper.hidden { display: none; }
+ #file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
+ #file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
+</style>
+<div id="nav_and_rev" class="heading">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner" id="bub">
+ <div class="bub-top">
+ <div class="pagination" style="margin-left: 2em">
+ <table cellpadding="0" cellspacing="0" class="flipper">
+ <tbody>
+ <tr>
+ 
+ <td><b>r1686</b></td>
+ 
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ 
+ <div class="" style="vertical-align: top">
+ <div class="src_crumbs src_nav">
+ <strong class="src_nav">Source path:&nbsp;</strong>
+ <span id="crumb_root">
+ 
+ <a href="/p/google-web-toolkit-incubator/source/browse/">svn</a>/&nbsp;</span>
+ <span id="crumb_links" class="ifClosed"><a href="/p/google-web-toolkit-incubator/source/browse/trunk/">trunk</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/">src</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/">com</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/">google</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/">gwt</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/">gen2</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/">table</a><span class="sp">/&nbsp;</span><a href="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/public/">public</a><span class="sp">/&nbsp
 ;</span>scrollTableLoading.gif</span>
+ 
+ 
+ </div>
+ 
+ </div>
+ <div style="clear:both"></div>
+ </div>
+ </div>
+</div>
+
+<style type="text/css">
+ 
+  tr.inline_comment {
+ background: #fff;
+ vertical-align: top;
+ }
+ div.draft, div.published {
+ padding: .3em;
+ border: 1px solid #999; 
+ margin-bottom: .1em;
+ font-family: arial, sans-serif;
+ max-width: 60em;
+ }
+ div.draft {
+ background: #ffa;
+ } 
+ div.published {
+ background: #e5ecf9;
+ }
+ div.published .body, div.draft .body {
+ padding: .5em .1em .1em .1em;
+ max-width: 60em;
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap;
+ white-space: -pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word;
+ }
+ div.draft .actions {
+ margin-left: 1em;
+ font-size: 90%;
+ }
+ div.draft form {
+ padding: .5em .5em .5em 0;
+ }
+ div.draft textarea, div.published textarea {
+ width: 95%;
+ height: 10em;
+ font-family: arial, sans-serif;
+ margin-bottom: .5em;
+ }
+
+
+ 
+ .nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
+ background-color: white;
+ height: 2px;
+ }
+ .cursor, .cursor td {
+ background-color: darkblue;
+ height: 2px;
+ display: '';
+ }
+
+</style>
+<div class="fc">
+ 
+
+
+ <p><em>
+ 
+ <img src="http://google-web-toolkit-incubator.googlecode.com/svn/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif" alt="/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif"/>
+ 
+ </em></p>
+
+
+
+ <div id="log">
+ <div style="text-align:right">
+ <a class="ifCollapse" href="#" onclick="_toggleMeta('google-web-toolkit-incubator', this)">Show details</a>
+ <a class="ifExpand" href="#" onclick="_toggleMeta('google-web-toolkit-incubator', this)">Hide details</a>
+ </div>
+ <div class="ifExpand">
+ 
+ <div class="pmeta_bubble_bg" style="border:1px solid white">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <div id="changelog">
+ <p>Change log</p>
+ <div>
+ <a href="/p/google-web-toolkit-incubator/source/detail?spec=svn1686&r=1061">r1061</a>
+ by jlaba...@google.com
+ on Sep 25, 2008
+ &nbsp; <a href="/p/google-web-toolkit-incubator/source/diff?spec=svn1686&r=1061&amp;format=side&amp;path=/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif&amp;old_path=/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif&amp;old=">Diff</a>
+ </div>
+ <pre>Adds the new and improved gen2
+<a title="A full featured table that supports scrolling, paging, column resizing and sorting, cell editing, and more..." href="/p/google-web-toolkit-incubator/wiki/PagingScrollTable">PagingScrollTable</a> and all supported
+classes.  This new version includes
+parameterized column definitions, table
+definitions, a more efficient table model,
+and the new gen2 events.
+
+Patch by: jlabanca
+</pre>
+ </div>
+ 
+ 
+ 
+ 
+ 
+ 
+ <script type="text/javascript">
+ var detail_url = '/p/google-web-toolkit-incubator/source/detail?r=1061&spec=svn1686';
+ var publish_url = '/p/google-web-toolkit-incubator/source/detail?r=1061&spec=svn1686#publish';
+ // describe the paths of this revision in javascript.
+ var changed_paths = [];
+ var changed_urls = [];
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/PagingScrollTableDemo.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/PagingScrollTableDemo.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/ScrollTableDemo.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/ScrollTableDemo.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceService.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceService.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceServiceAsync.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceServiceAsync.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceTableModel.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceTableModel.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTab.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTab.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabColumnWidth.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabColumnWidth.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabDataManipulation.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabDataManipulation.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabHeaderManipulation.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabHeaderManipulation.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabHighlighting.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabHighlighting.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabPanelLog.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabPanelLog.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabResizing.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabResizing.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabSorting.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabSorting.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ModeledTabDataManipulation.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ModeledTabDataManipulation.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ModeledTabPaging.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ModeledTabPaging.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/PagingScrollTableDemo.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/PagingScrollTableDemo.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ScrollTableDemo.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ScrollTableDemo.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/PagingScrollTableDemo.html');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/PagingScrollTableDemo.html?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/ScrollTableDemo.css');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/ScrollTableDemo.css?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/ScrollTableDemo.html');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/ScrollTableDemo.html?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/images');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/images?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/images/bg_header_gradient.gif');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/images/bg_header_gradient.gif?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/server');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/server?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/server/DataSourceServiceImpl.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/server/DataSourceServiceImpl.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared/Student.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared/Student.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared/StudentGenerator.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared/StudentGenerator.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/Gen2.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/Gen2.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/event/logical/shared/HasUnhighlightHandlers.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/event/logical/shared/HasUnhighlightHandlers.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/event/logical/shared/UnhighlightEvent.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/event/logical/shared/UnhighlightEvent.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/event/logical/shared/UnhighlightHandler.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/event/logical/shared/UnhighlightHandler.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/FixedWidthFlexTable.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/FixedWidthFlexTable.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/FixedWidthGrid.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/FixedWidthGrid.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/OverrideDOM.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/OverrideDOM.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/ScrollTable.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/ScrollTable.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/Table.gwt.xml');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/Table.gwt.xml?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/AbstractCellEditor.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/AbstractCellEditor.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/CachedTableModel.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/CachedTableModel.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/ClientTableModel.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/ClientTableModel.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/ColumnDefinition.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/ColumnDefinition.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/FixedWidthFlexTable.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FixedWidthFlexTable.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/FixedWidthGrid.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FixedWidthGrid.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/FixedWidthGridBulkRenderer.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FixedWidthGridBulkRenderer.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/FlexTableBulkRenderer.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FlexTableBulkRenderer.java?r=1061&spec=svn1686');
+ 
+ 
+ changed_paths.push('/trunk/src/com/google/gwt/gen2/table/client/GridBulkRenderer.java');
+ changed_urls.push('/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/GridBulkRenderer.java?r=1061&spec=svn1686');
+ 
+ 
+ function getCurrentPageIndex() {
+ for (var i = 0; i < changed_paths.length; i++) {
+ if (selected_path == changed_paths[i]) {
+ return i;
+ }
+ }
+ }
+ function getNextPage() {
+ var i = getCurrentPageIndex();
+ if (i < changed_paths.length - 1) {
+ return changed_urls[i + 1];
+ }
+ return null;
+ }
+ function getPreviousPage() {
+ var i = getCurrentPageIndex();
+ if (i > 0) {
+ return changed_urls[i - 1];
+ }
+ return null;
+ }
+ function gotoNextPage() {
+ var page = getNextPage();
+ if (!page) {
+ page = detail_url;
+ }
+ window.location = page;
+ }
+ function gotoPreviousPage() {
+ var page = getPreviousPage();
+ if (!page) {
+ page = detail_url;
+ }
+ window.location = page;
+ }
+ function gotoDetailPage() {
+ window.location = detail_url;
+ }
+ function gotoPublishPage() {
+ window.location = publish_url;
+ }
+</script>
+ 
+ <style type="text/css">
+ #review_nav {
+ border-top: 3px solid white;
+ padding-top: 6px;
+ margin-top: 1em;
+ }
+ #review_nav td {
+ vertical-align: middle;
+ }
+ #review_nav select {
+ margin: .5em 0;
+ }
+ </style>
+ <div id="review_nav">
+ <table><tr><td>Go to:&nbsp;</td><td>
+ <select name="files_in_rev" onchange="window.location=this.value">
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable?r=1061&amp;spec=svn1686"
+ 
+ >...google/gwt/gen2/demo/scrolltable</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/PagingScrollTableDemo.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...le/PagingScrollTableDemo.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/ScrollTableDemo.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...olltable/ScrollTableDemo.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client?r=1061&amp;spec=svn1686"
+ 
+ >...gwt/gen2/demo/scrolltable/client</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceService.java?r=1061&amp;spec=svn1686"
+ 
+ >...le/client/DataSourceService.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceServiceAsync.java?r=1061&amp;spec=svn1686"
+ 
+ >...ient/DataSourceServiceAsync.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DataSourceTableModel.java?r=1061&amp;spec=svn1686"
+ 
+ >...client/DataSourceTableModel.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTab.java?r=1061&amp;spec=svn1686"
+ 
+ >.../scrolltable/client/DemoTab.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabColumnWidth.java?r=1061&amp;spec=svn1686"
+ 
+ >...e/client/DemoTabColumnWidth.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabDataManipulation.java?r=1061&amp;spec=svn1686"
+ 
+ >...ent/DemoTabDataManipulation.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabHeaderManipulation.java?r=1061&amp;spec=svn1686"
+ 
+ >...t/DemoTabHeaderManipulation.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabHighlighting.java?r=1061&amp;spec=svn1686"
+ 
+ >.../client/DemoTabHighlighting.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabPanelLog.java?r=1061&amp;spec=svn1686"
+ 
+ >...able/client/DemoTabPanelLog.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabResizing.java?r=1061&amp;spec=svn1686"
+ 
+ >...able/client/DemoTabResizing.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/DemoTabSorting.java?r=1061&amp;spec=svn1686"
+ 
+ >...table/client/DemoTabSorting.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ModeledTabDataManipulation.java?r=1061&amp;spec=svn1686"
+ 
+ >.../ModeledTabDataManipulation.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ModeledTabPaging.java?r=1061&amp;spec=svn1686"
+ 
+ >...ble/client/ModeledTabPaging.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/PagingScrollTableDemo.java?r=1061&amp;spec=svn1686"
+ 
+ >...lient/PagingScrollTableDemo.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/client/ScrollTableDemo.java?r=1061&amp;spec=svn1686"
+ 
+ >...able/client/ScrollTableDemo.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public?r=1061&amp;spec=svn1686"
+ 
+ >...gwt/gen2/demo/scrolltable/public</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/PagingScrollTableDemo.html?r=1061&amp;spec=svn1686"
+ 
+ >...ublic/PagingScrollTableDemo.html</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/ScrollTableDemo.css?r=1061&amp;spec=svn1686"
+ 
+ >...table/public/ScrollTableDemo.css</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/ScrollTableDemo.html?r=1061&amp;spec=svn1686"
+ 
+ >...able/public/ScrollTableDemo.html</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/images?r=1061&amp;spec=svn1686"
+ 
+ >...2/demo/scrolltable/public/images</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/public/images/bg_header_gradient.gif?r=1061&amp;spec=svn1686"
+ 
+ >...ic/images/bg_header_gradient.gif</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/server?r=1061&amp;spec=svn1686"
+ 
+ >...gwt/gen2/demo/scrolltable/server</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/server/DataSourceServiceImpl.java?r=1061&amp;spec=svn1686"
+ 
+ >...erver/DataSourceServiceImpl.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared?r=1061&amp;spec=svn1686"
+ 
+ >...gwt/gen2/demo/scrolltable/shared</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared/Student.java?r=1061&amp;spec=svn1686"
+ 
+ >.../scrolltable/shared/Student.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src-demo/com/google/gwt/gen2/demo/scrolltable/shared/StudentGenerator.java?r=1061&amp;spec=svn1686"
+ 
+ >...ble/shared/StudentGenerator.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/Gen2.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...com/google/gwt/gen2/Gen2.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/event/logical/shared/HasUnhighlightHandlers.java?r=1061&amp;spec=svn1686"
+ 
+ >...ared/HasUnhighlightHandlers.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/event/logical/shared/UnhighlightEvent.java?r=1061&amp;spec=svn1686"
+ 
+ >...cal/shared/UnhighlightEvent.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/event/logical/shared/UnhighlightHandler.java?r=1061&amp;spec=svn1686"
+ 
+ >...l/shared/UnhighlightHandler.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table?r=1061&amp;spec=svn1686"
+ 
+ >...nk/src/com/google/gwt/gen2/table</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/FixedWidthFlexTable.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...able/FixedWidthFlexTable.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/FixedWidthGrid.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...en2/table/FixedWidthGrid.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/OverrideDOM.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...t/gen2/table/OverrideDOM.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/ScrollTable.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...t/gen2/table/ScrollTable.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/Table.gwt.xml?r=1061&amp;spec=svn1686"
+ 
+ >...gle/gwt/gen2/table/Table.gwt.xml</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client?r=1061&amp;spec=svn1686"
+ 
+ >...com/google/gwt/gen2/table/client</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/AbstractCellEditor.java?r=1061&amp;spec=svn1686"
+ 
+ >...e/client/AbstractCellEditor.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/CachedTableModel.java?r=1061&amp;spec=svn1686"
+ 
+ >...ble/client/CachedTableModel.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/ClientTableModel.java?r=1061&amp;spec=svn1686"
+ 
+ >...ble/client/ClientTableModel.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/ColumnDefinition.java?r=1061&amp;spec=svn1686"
+ 
+ >...ble/client/ColumnDefinition.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FixedWidthFlexTable.java?r=1061&amp;spec=svn1686"
+ 
+ >.../client/FixedWidthFlexTable.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FixedWidthGrid.java?r=1061&amp;spec=svn1686"
+ 
+ >...table/client/FixedWidthGrid.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FixedWidthGridBulkRenderer.java?r=1061&amp;spec=svn1686"
+ 
+ >.../FixedWidthGridBulkRenderer.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/FlexTableBulkRenderer.java?r=1061&amp;spec=svn1686"
+ 
+ >...lient/FlexTableBulkRenderer.java</option>
+ 
+ <option value="/p/google-web-toolkit-incubator/source/browse/trunk/src/com/google/gwt/gen2/table/client/GridBulkRenderer.java?r=1061&amp;spec=svn1686"
+ 
+ >...ble/client/GridBulkRenderer.java</option>
+ 
+ </select>
+ </td></tr></table>
+ 
+ 
+ 
+
+
+
+
+ 
+ </div>
+ 
+ 
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+ </div>
+ <div class="pmeta_bubble_bg" style="border:1px solid white">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <div id="older_bubble">
+ <p>Older revisions</p>
+ 
+ <a href="/p/google-web-toolkit-incubator/source/list?path=/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif&start=1061">All revisions of this file</a>
+ </div>
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+ </div>
+ <div class="pmeta_bubble_bg" style="border:1px solid white">
+ <div class="round4"></div>
+ <div class="round2"></div>
+ <div class="round1"></div>
+ <div class="box-inner">
+ <div id="fileinfo_bubble">
+ <p>File info</p>
+ 
+ <div>Size: 1849 bytes</div>
+ 
+ <div><a href="http://google-web-toolkit-incubator.googlecode.com/svn/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif">View raw file</a></div>
+ </div>
+ 
+ <div id="props">
+ <p>File properties</p>
+ <dl>
+ 
+ <dt>svn:mime-type</dt>
+ <dd>image/gif</dd>
+ 
+ </dl>
+ </div>
+ 
+ </div>
+ <div class="round1"></div>
+ <div class="round2"></div>
+ <div class="round4"></div>
+ </div>
+ </div>
+ </div>
+
+
+</div>
+</div>
+
+<script src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/source_file_scripts_20080115.js"></script>
+
+ <script type="text/javascript" src="http://kibbles.googlecode.com/files/kibbles-1.3.1.comp.js"></script>
+ <script type="text/javascript">
+ var lastStop = null;
+ var initilized = false;
+ 
+ function updateCursor(next, prev) {
+ if (prev && prev.element) {
+ prev.element.className = 'cursor_stop cursor_hidden';
+ }
+ if (next && next.element) {
+ next.element.className = 'cursor_stop cursor';
+ lastStop = next.index;
+ }
+ }
+ 
+ function pubRevealed(data) {
+ updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
+ if (initilized) {
+ reloadCursors();
+ }
+ }
+ 
+ function draftRevealed(data) {
+ updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
+ if (initilized) {
+ reloadCursors();
+ }
+ }
+ 
+ function draftDestroyed(data) {
+ updateCursorForCell(data.cellId, 'nocursor');
+ if (initilized) {
+ reloadCursors();
+ }
+ }
+ function reloadCursors() {
+ kibbles.skipper.reset();
+ loadCursors();
+ if (lastStop != null) {
+ kibbles.skipper.setCurrentStop(lastStop);
+ }
+ }
+ // possibly the simplest way to insert any newly added comments
+ // is to update the class of the corresponding cursor row,
+ // then refresh the entire list of rows.
+ function updateCursorForCell(cellId, className) {
+ var cell = document.getElementById(cellId);
+ // we have to go two rows back to find the cursor location
+ var row = getPreviousElement(cell.parentNode);
+ row.className = className;
+ }
+ // returns the previous element, ignores text nodes.
+ function getPreviousElement(e) {
+ var element = e.previousSibling;
+ if (element.nodeType == 3) {
+ element = element.previousSibling;
+ }
+ if (element && element.tagName) {
+ return element;
+ }
+ }
+ function loadCursors() {
+ // register our elements with skipper
+ var elements = CR_getElements('*', 'cursor_stop');
+ var len = elements.length;
+ for (var i = 0; i < len; i++) {
+ var element = elements[i]; 
+ element.className = 'cursor_stop cursor_hidden';
+ kibbles.skipper.append(element);
+ }
+ }
+ function toggleComments() {
+ CR_toggleCommentDisplay();
+ reloadCursors();
+ }
+ function keysOnLoadHandler() {
+ // setup skipper
+ kibbles.skipper.addStopListener(
+ kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
+ // Set the 'offset' option to return the middle of the client area
+ // an option can be a static value, or a callback
+ kibbles.skipper.setOption('padding_top', 50);
+ // Set the 'offset' option to return the middle of the client area
+ // an option can be a static value, or a callback
+ kibbles.skipper.setOption('padding_bottom', 100);
+ // Register our keys
+ kibbles.skipper.addFwdKey("n");
+ kibbles.skipper.addRevKey("p");
+ kibbles.keys.addKeyPressListener(
+ 'u', function() { window.location = detail_url; });
+ kibbles.keys.addKeyPressListener(
+ 'r', function() { window.location = detail_url + '#publish'; });
+ 
+ kibbles.keys.addKeyPressListener('j', gotoNextPage);
+ kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
+ 
+ 
+ }
+ window.onload = function() {keysOnLoadHandler();};
+ </script>
+
+
+<!-- code review support -->
+<script src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/code_review_scripts_20081023.js"></script>
+<script type="text/javascript">
+ 
+ // the comment form template
+ var form = '<div class="draft"><div class="header"><span class="title">Draft comment:</span></div>' +
+ '<div class="body"><form onsubmit="return false;"><textarea id="$ID">$BODY</textarea><br>$ACTIONS</form></div>' +
+ '</div>';
+ // the comment "plate" template used for both draft and published comment "plates".
+ var draft_comment = '<div class="draft" ondblclick="$ONDBLCLICK">' +
+ '<div class="header"><span class="title">Draft comment:</span><span class="actions">$ACTIONS</span></div>' +
+ '<pre id="$ID" class="body">$BODY</pre>' +
+ '</div>';
+ var published_comment = '<div class="published">' +
+ '<div class="header"><span class="title"><a href="$PROFILE_URL">$AUTHOR:</a></span><div>' +
+ '<pre id="$ID" class="body">$BODY</pre>' +
+ '</div>';
+
+ function showPublishInstructions() {
+ var element = document.getElementById('review_instr');
+ if (element) {
+ element.className = 'opened';
+ }
+ }
+ function revsOnLoadHandler() {
+ // register our source container with the commenting code
+ var paths = {'svn1061': '/trunk/src/com/google/gwt/gen2/table/public/scrollTableLoading.gif'}
+ _setup('google-web-toolkit-incubator', 'svn1686', paths, '089299570f7886003fadaad4d3298cea',
+ CR_BrowseIntegrationFactory);
+ // register our hidden ui elements with the code commenting code ui builder.
+ CR_registerLayoutElement('form', form);
+ CR_registerLayoutElement('draft_comment', draft_comment);
+ CR_registerLayoutElement('published_comment', published_comment);
+ 
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, showPublishInstructions);
+ 
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_PUB_PLATE, pubRevealed);
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.REVEAL_DRAFT_PLATE, draftRevealed);
+ CR_registerActivityListener(CR_ACTIVITY_TYPE.DISCARD_DRAFT_COMMENT, draftDestroyed);
+ 
+ 
+ 
+ 
+ var initilized = true;
+ reloadCursors();
+ }
+ window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};
+</script>
+
+<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/dit_scripts_20081013.js"></script>
+
+ 
+ <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/6209364925050224960/js/core_scripts_20081103.js"></script>
+ <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
+ 
+ 
+ 
+ 
+ 
+ </div>
+<div id="footer" dir="ltr">
+ 
+ <div class="text">
+ 
+ &copy;2009 Google -
+ <a href="/">Code Home</a> -
+ <a href="/tos.html">Terms of Service</a> -
+ <a href="http://www.google.com/privacy.html">Privacy Policy</a> -
+ <a href="/more/">Site Directory</a> -
+ <a href="/p/support/">Project Hosting Help</a>
+ 
+ </div>
+</div>
+<script type="text/javascript">
+/**
+ * Reports analytics.
+ * It checks for the analytics functionality (window._gat) every 100ms
+ * until the analytics script is fully loaded in order to invoke siteTracker.
+ */
+function _CS_reportAnalytics() {
+ window.setTimeout(function() {
+ if (window._gat) {
+ try {
+ siteTracker = _gat._getTracker(CS_ANALYTICS_ACCOUNT);
+ siteTracker._trackPageview();
+ } catch (e) {}
+ var projectTracker = _gat._getTracker("UA-2494387-6");
+projectTracker._initData();
+projectTracker._trackPageview();
+ } else {
+ _CS_reportAnalytics();
+ }
+ }, 100);
+}
+</script>
+
+ 
+ 
+ 
+ 
+ 
+
+
+ 
+ </body>
+</html>
+



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