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/13 08:03:13 UTC
svn commit: r793467 - in /labs/hupa/src/main/java/org/apache/hupa/client:
mvp/IMAPMessageListView.java widgets/MyPagingScrollTable.java
widgets/ToolTip.java widgets/ToolTipProvider.java
Author: norman
Date: Mon Jul 13 06:03:12 2009
New Revision: 793467
URL: http://svn.apache.org/viewvc?rev=793467&view=rev
Log:
Better handling of ToolTips
Added:
labs/hupa/src/main/java/org/apache/hupa/client/widgets/MyPagingScrollTable.java
labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTipProvider.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTip.java
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=793467&r1=793466&r2=793467&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java Mon Jul 13 06:03:12 2009
@@ -31,7 +31,8 @@
import org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display;
import org.apache.hupa.client.rpc.EventBus;
import org.apache.hupa.client.widgets.MyFixedWithGrid;
-import org.apache.hupa.client.widgets.ToolTip;
+import org.apache.hupa.client.widgets.MyPagingScrollTable;
+import org.apache.hupa.client.widgets.ToolTipProvider;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.IMAPMessage;
import org.apache.hupa.shared.data.IMAPUser;
@@ -53,7 +54,6 @@
import com.google.gwt.gen2.table.client.FixedWidthFlexTable;
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;
@@ -64,8 +64,6 @@
import com.google.gwt.gen2.table.client.SelectionGrid.SelectionPolicy;
import com.google.gwt.gen2.table.client.TableDefinition.AbstractCellView;
import com.google.gwt.gen2.table.client.TableModelHelper.Request;
-import com.google.gwt.gen2.table.event.client.CellHighlightEvent;
-import com.google.gwt.gen2.table.event.client.CellHighlightHandler;
import com.google.gwt.gen2.table.event.client.HasPageLoadHandlers;
import com.google.gwt.gen2.table.event.client.HasRowSelectionHandlers;
import com.google.gwt.gen2.table.event.client.PageLoadEvent;
@@ -78,6 +76,7 @@
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.Label;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.inject.Inject;
@@ -89,9 +88,8 @@
private IMAPUser user;
private IMAPFolder folder;
private String searchValue;
- private ToolTip tip;
- private PagingScrollTable<IMAPMessage> mailTable;
+ private MyPagingScrollTable<IMAPMessage> mailTable;
private EventBus bus;
private MyFixedWithGrid<IMAPMessage> dataTable = createDataTable();
@@ -103,10 +101,10 @@
VerticalPanel vPanel = new VerticalPanel();
- mailTable = new PagingScrollTable<IMAPMessage>(
+ mailTable = new MyPagingScrollTable<IMAPMessage>(
new IMAPMessageTableModel(), dataTable,
createHeaderTable(),
- createTableDefinitation());
+ createTableDefinitation(), new IMAPMessageToolTipProvider());
mailTable.setPageSize(20);
@@ -160,27 +158,6 @@
}
});
- dataTable.addCellHighlightHandler(new CellHighlightHandler() {
-
- public void onCellHighlight(CellHighlightEvent event) {
-
-
- if (event.getValue().getCellIndex() == 3) {
- if (tip != null) {
- tip.hide(true);
- }
- tip = new ToolTip(mailTable.getRowValue(event.getValue().getRowIndex()).getIMAPHeader().getSubject());
- tip.show();
- } else if (event.getValue().getCellIndex() == 2) {
- if (tip != null) {
- tip.hide(true);
- }
- tip = new ToolTip(mailTable.getRowValue(event.getValue().getRowIndex()).getIMAPHeader().getFrom());
- tip.show();
- }
- }
-
- });
mailTable.getDataTable().setCellSpacing(0);
@@ -232,6 +209,21 @@
initWidget(vPanel);
}
+ private class IMAPMessageToolTipProvider implements ToolTipProvider<IMAPMessage> {
+
+ public Widget getToolTipContent(IMAPMessage rowValue, int cell, int row) {
+ switch (cell) {
+ case 2:
+ return new Label(rowValue.getIMAPHeader().getFrom());
+ case 3:
+ return new Label(rowValue.getIMAPHeader().getSubject());
+ default:
+ break;
+ }
+ return null;
+ }
+
+ }
private TableDefinition<IMAPMessage> createTableDefinitation() {
DefaultTableDefinition<IMAPMessage> def = new DefaultTableDefinition<IMAPMessage>(createColumnDefinitionList());
Added: labs/hupa/src/main/java/org/apache/hupa/client/widgets/MyPagingScrollTable.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/MyPagingScrollTable.java?rev=793467&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/MyPagingScrollTable.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/MyPagingScrollTable.java Mon Jul 13 06:03:12 2009
@@ -0,0 +1,89 @@
+/****************************************************************
+ * 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.widgets;
+
+import com.google.gwt.gen2.table.client.FixedWidthFlexTable;
+import com.google.gwt.gen2.table.client.FixedWidthGrid;
+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.event.client.CellHighlightEvent;
+import com.google.gwt.gen2.table.event.client.CellHighlightHandler;
+import com.google.gwt.gen2.table.event.client.CellUnhighlightEvent;
+import com.google.gwt.gen2.table.event.client.CellUnhighlightHandler;
+import com.google.gwt.gen2.table.event.client.TableEvent.Cell;
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.Widget;
+
+public class MyPagingScrollTable<E> extends PagingScrollTable<E>{
+
+ private ToolTipProvider<E> toolTipProvider = null;
+ private Timer toolTipTimer;
+ private ToolTip tTip;
+ public MyPagingScrollTable(TableModel<E> tableModel,
+ FixedWidthGrid dataTable, FixedWidthFlexTable headerTable,
+ TableDefinition<E> tableDefinition,ToolTipProvider<E> tooltipProvider) {
+ super(tableModel, dataTable, headerTable, tableDefinition);
+ this.toolTipProvider = tooltipProvider;
+
+
+ dataTable.addCellHighlightHandler(new CellHighlightHandler() {
+
+ public void onCellHighlight(final CellHighlightEvent event) {
+ toolTipTimer= new Timer() {
+
+ @Override
+ public void run() {
+ Cell c = event.getValue();
+ Widget w = toolTipProvider.getToolTipContent(getRowValue(c.getRowIndex()), c.getCellIndex(), c.getRowIndex());
+ if (w != null) {
+ tTip = new ToolTip(w,3000);
+ tTip.show();
+ }
+ }
+
+ };
+ toolTipTimer.schedule(2000);
+ }
+
+ });
+
+ dataTable.addCellUnhighlightHandler(new CellUnhighlightHandler() {
+
+ public void onCellUnhighlight(CellUnhighlightEvent event) {
+ if (tTip != null) {
+ tTip.hide(true);
+ }
+ if (toolTipTimer != null) {
+ toolTipTimer.cancel();
+ }
+ }
+
+ });
+ }
+
+ public MyPagingScrollTable(TableModel<E> tableModel,
+ FixedWidthGrid dataTable, FixedWidthFlexTable headerTable,
+ TableDefinition<E> tableDefinition) {
+ this(tableModel, dataTable, headerTable, tableDefinition,null);
+ }
+
+
+}
Modified: labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTip.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTip.java?rev=793467&r1=793466&r2=793467&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTip.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTip.java Mon Jul 13 06:03:12 2009
@@ -25,6 +25,7 @@
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.Widget;
/**
* A ToolTip which is shown a configured time before get destroyed
@@ -37,9 +38,9 @@
private Timer closeTimer;
- public ToolTip(String text, int showTimeMillis) {
+ public ToolTip(Widget content, int showTimeMillis) {
this.showTimeMillis = showTimeMillis;
- setWidget(new Label(text));
+ setWidget(content);
closeTimer = new Timer() {
@Override
@@ -61,8 +62,8 @@
*
* @param text
*/
- public ToolTip(String text) {
- this(text,3000);
+ public ToolTip(Widget w) {
+ this(w,3000);
}
/**
Added: labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTipProvider.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTipProvider.java?rev=793467&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTipProvider.java (added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/ToolTipProvider.java Mon Jul 13 06:03:12 2009
@@ -0,0 +1,9 @@
+package org.apache.hupa.client.widgets;
+
+import com.google.gwt.user.client.ui.Widget;
+
+public interface ToolTipProvider<E> {
+
+ public Widget getToolTipContent(E rowValue,int cell,int row);
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org