Is there an easy-ish way to identify and ignore events that are caused
by moving *within* a CellList?  I need to be able to determine that a
CellList is gaining focus from some other element, or is losing focus
to some other element, and the same for mouseover & mouseout.  But I'm
getting floods of events as I navigate within the CellList, with no
obvious way to distinguish between internal and external events.  In
all cases, getRelatedEventTarget() is null.

Here's some debug code:

        CellList<String> cellList = new CellList<String>(new
TextCell())
        {
            public void onBrowserEvent2(Event event)
            {
                GWT.log(event.getType());
                super.onBrowserEvent2(event);
            }
        };

        cellList.sinkEvents(Event.ONFOCUS | Event.ONBLUR |
Event.ONMOUSEOVER | Event.ONMOUSEOUT);

As I move the mouse within the CellList, I get mouseover & mouseout
events corresponding to each individual cell.

FWIW, the complete test program is:


package com.sample.client;

import java.util.Arrays;
import java.util.List;

import com.google.gwt.cell.client.TextCell;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ScrollEvent;
import com.google.gwt.event.dom.client.ScrollHandler;
import com.google.gwt.user.cellview.client.AbstractPager;
import com.google.gwt.user.cellview.client.CellList;
import
com.google.gwt.user.cellview.client.HasKeyboardPagingPolicy.KeyboardPagingPolicy;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.HasRows;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SingleSelectionModel;

public class Sample implements EntryPoint
{
    private static final List<String> LIST =
        Arrays.asList(getList());

    public void onModuleLoad()
    {
        final Label message = new Label();

        CellList<String> cellList = new CellList<String>(new
TextCell())
        {
            public void onBrowserEvent2(Event event)
            {
                GWT.log(event.getType());
                super.onBrowserEvent2(event);
            }
        };
        cellList.setKeyboardPagingPolicy(
            KeyboardPagingPolicy.INCREASE_RANGE);
//        cellList.setKeyboardSelectionPolicy(
//            KeyboardSelectionPolicy.BOUND_TO_SELECTION);
        final SingleSelectionModel<String> selectionModel =
            new SingleSelectionModel<String>();
        cellList.setSelectionModel(selectionModel);
        cellList.setPageSize(LIST.size());
        cellList.setRowCount(LIST.size(), true);

        cellList.sinkEvents(Event.ONFOCUS | Event.ONBLUR |
Event.ONMOUSEOVER | Event.ONMOUSEOUT);

        ListDataProvider<String> dataProvider =
            new ListDataProvider<String>(LIST);
        dataProvider.addDataDisplay(cellList);

        ScrollingPager pager = new ScrollingPager();
        pager.setDisplay(cellList);

        ListBox listbox = new ListBox(true);
        listbox.setVisibleItemCount(15);
        listbox.setPixelSize(250, 350);
        for (int i = 0; i < LIST.size(); ++i)
            listbox.addItem(LIST.get(i));

        RootPanel.get("message").add(message);
        RootPanel.get("cell").add(pager);
        RootPanel.get("list").add(listbox);
    }

    public class ScrollingPager extends AbstractPager
    {
        private int incrementSize = 20;
        private int lastScrollPos = 0;
        private final ScrollPanel scrollable = new ScrollPanel();

        public ScrollingPager()
        {
            initWidget(scrollable);
            scrollable.setPixelSize(250, 350);
            scrollable.addScrollHandler(new ScrollHandler()
            {
                public void onScroll(ScrollEvent p_event)
                {
                    // If scrolling up, ignore the event.
                    int oldScrollPos = lastScrollPos;
                    lastScrollPos =
scrollable.getVerticalScrollPosition();
                    if (oldScrollPos >= lastScrollPos)
                    {
                        return;
                    }
                    HasRows display = getDisplay();
                    if (display == null)
                    {
                        return;
                    }
                    int maxScrollTop =
                        scrollable.getWidget().getOffsetHeight()
                            - scrollable.getOffsetHeight();
                    if (lastScrollPos >= maxScrollTop)
                    {
                        // We are near the end, so increase the page
size.
                        int newPageSize =
Math.min(display.getVisibleRange()
                                .getLength()
                                + incrementSize,
display.getRowCount());
                        display.setVisibleRange(0, newPageSize);
                    }
                }
            });
        }

        public int getIncrementSize()
        {
            return incrementSize;
        }

        @Override
        public void setDisplay(HasRows display)
        {
            assert display instanceof Widget : "display must extend
Widget";
            scrollable.setWidget((Widget)display);
            super.setDisplay(display);
        }

        public void setIncrementSize(int incrementSize)
        {
            this.incrementSize = incrementSize;
        }

        @Override
        protected void onRangeOrRowCountChanged()
        {
        }
    }

    private static String[] getList()
    {
        return new String[] { "ABBOTT", "ACEVEDO", "ACOSTA", "ADAMS",
"ADKINS",
                "AGUILAR", "AGUIRRE", "ALEXANDER", "ALI", "ALLEN",
"ALLISON",
                "ALVARADO", "ALVAREZ", "ANDERSEN", "ANDERSON",
"ANDRADE",
                "ANDREWS", "ANTHONY", "ARCHER", "ARELLANO", "ARIAS",
                "ARMSTRONG", "ARNOLD", "ARROYO", "ASHLEY", "ATKINS",
                "ATKINSON", "AUSTIN", "AVERY", "AVILA", "AYALA",
"AYERS",
                "BAILEY", "BAIRD", "BAKER", "BALDWIN", "BALL",
"BALLARD",
                "BANKS", "BARAJAS", "BARBER", "BARKER", "BARNES",
"BARNETT",
                "BARR", "BARRERA", "BARRETT", "BARRON", "BARRY",
"BARTLETT",
                "BARTON", "BASS", "BATES", "BAUER", "BAUTISTA",
"BAXTER",
                "BEAN", "BEARD", "BEASLEY", "BECK", "BECKER", "BELL",
                "BELTRAN", "BENDER", "BENITEZ", "BENJAMIN", "BENNETT",
                "BENSON", "BENTLEY", "BENTON", "BERG", "BERGER",
"BERNARD",
                "BERRY", "BEST", "BIRD", "BISHOP", "BLACK",
"BLACKBURN",
                "BLACKWELL", "BLAIR", "BLAKE", "BLANCHARD",
"BLANKENSHIP",
                "BLEVINS", "BOLTON", "BOND", "BONILLA", "BOOKER",
"BOONE",
                "BOOTH", "BOWEN", "BOWERS", "BOWMAN", "BOYD", "BOYER",
"BOYLE",
                "BRADFORD", "BRADLEY", "BRADSHAW", "BRADY", "BRANCH",
"BRANDT",
                "BRAUN", "BRAY", "BRENNAN", "BREWER", "BRIDGES",
"BRIGGS",
                "BRIGHT", "BROCK", "BROOKS", "BROWN", "BROWNING",
"BRUCE",
                "BRYAN", "BRYANT", "BUCHANAN", "BUCK", "BUCKLEY",
"BULLOCK",
                "BURCH", "BURGESS", "BURKE", "BURNETT", "BURNS",
"BURTON",
                "BUSH", "BUTLER", "BYRD", "CABRERA", "CAIN",
"CALDERON",
                "CALDWELL", "CALHOUN", "CALLAHAN", "CAMACHO",
"CAMERON",
                "CAMPBELL", "CAMPOS", "CANNON", "CANTRELL", "CANTU",
                "CARDENAS", "CAREY", "CARLSON", "CARNEY", "CARPENTER",
"CARR",
                "CARRILLO", "CARROLL", "CARSON", "CARTER", "CASE",
"CASEY",
                "CASTANEDA", "CASTILLO", "CASTRO", "CERVANTES",
"CHAMBERS",
                "CHAN", "CHANDLER", "CHANEY", "CHANG", "CHAPMAN",
"CHARLES",
                "CHASE", "CHAVEZ", "CHEN", "CHERRY", "CHOI",
"CHRISTENSEN",
                "CHRISTIAN", "CHUNG", "CHURCH", "CISNEROS", "CLARK",
"CLARKE",
                "CLAY", "CLAYTON", "CLEMENTS", "CLINE", "COBB",
"COCHRAN",
                "COFFEY", "COHEN", "COLE", "COLEMAN", "COLLIER",
"COLLINS",
                "COLON", "COMBS", "COMPTON", "CONLEY", "CONNER",
"CONRAD",
                "CONTRERAS", "CONWAY", "COOK", "COOKE", "COOLEY",
"COOPER",
                "COPELAND", "CORDOVA", "CORTEZ", "COSTA", "COWAN",
"COX",
                "CRAIG", "CRANE", "CRAWFORD", "CROSBY", "CROSS",
"CRUZ",
                "CUEVAS", "CUMMINGS", "CUNNINGHAM", "CURRY", "CURTIS",
                "DALTON", "DANIEL", "DANIELS", "DAUGHERTY",
"DAVENPORT",
                "DAVID", "DAVIDSON", "DAVIES", "DAVILA", "DAVIS",
"DAWSON",
                "DAY", "DEAN", "DECKER", "DELACRUZ", "DELEON",
"DELGADO",
                "DENNIS", "DIAZ", "DICKERSON", "DICKSON", "DILLON",
"DIXON",
                "DODSON", "DOMINGUEZ", "DONALDSON", "DONOVAN",
"DORSEY",
                "DOUGHERTY", "DOUGLAS", "DOWNS", "DOYLE", "DRAKE",
"DUARTE",
                "DUDLEY", "DUFFY", "DUKE", "DUNCAN", "DUNLAP", "DUNN",
"DURAN",
                "DURHAM", "DYER", "EATON", "EDWARDS", "ELLIOTT",
"ELLIS",
                "ELLISON", "ENGLISH", "ERICKSON", "ESCOBAR",
"ESPARZA",
                "ESPINOZA", "ESTES", "ESTRADA", "EVANS", "EVERETT",
"EWING",
                "FARLEY", "FARMER", "FARRELL", "FAULKNER", "FERGUSON",
                "FERNANDEZ", "FERRELL", "FIELDS", "FIGUEROA",
"FINLEY",
                "FISCHER", "FISHER", "FITZGERALD", "FITZPATRICK",
"FLEMING",
                "FLETCHER", "FLORES", "FLOWERS", "FLOYD", "FLYNN",
"FOLEY",
                "FORBES", "FORD", "FOSTER", "FOWLER", "FOX",
"FRANCIS",
                "FRANCO", "FRANK", "FRANKLIN", "FRAZIER", "FREDERICK",
                "FREEMAN", "FRENCH", "FREY", "FRIEDMAN", "FRITZ",
"FROST",
                "FRY", "FRYE", "FUENTES", "FULLER", "GAINES",
"GALLAGHER",
                "GALLEGOS", "GALLOWAY", "GALVAN", "GAMBLE", "GARCIA",
                "GARDNER", "GARNER", "GARRETT", "GARRISON", "GARZA",
"GATES",
                "GAY", "GENTRY", "GEORGE", "GIBBS", "GIBSON",
"GILBERT",
                "GILES", "GILL", "GILLESPIE", "GILMORE", "GLASS",
"GLENN",
                "GLOVER", "GOLDEN", "GOMEZ", "GONZALES", "GONZALEZ",
"GOOD",
                "GOODMAN", "GOODWIN", "GORDON", "GOULD", "GRAHAM",
"GRANT",
                "GRAVES", "GRAY", "GREEN", "GREENE", "GREER",
"GREGORY",
                "GRIFFIN", "GRIFFITH", "GRIMES", "GROSS", "GUERRA",
"GUERRERO",
                "GUTIERREZ", "GUZMAN", "HAAS", "HAHN", "HALE",
"HALEY", "HALL",
                "HAMILTON", "HAMMOND", "HAMPTON", "HANCOCK", "HANEY",
"HANNA",
                "HANSEN", "HANSON", "HARDIN", "HARDING", "HARDY",
"HARMON",
                "HARPER", "HARRELL", "HARRINGTON", "HARRIS",
"HARRISON",
                "HART", "HARTMAN", "HARVEY", "HATFIELD", "HAWKINS",
"HAYDEN",
                "HAYES", "HAYNES", "HAYS", "HEATH", "HEBERT",
"HENDERSON",
                "HENDRICKS", "HENDRIX", "HENRY", "HENSLEY", "HENSON",
"HERMAN",
                "HERNANDEZ", "HERRERA", "HERRING", "HESS", "HESTER",
"HICKMAN",
                "HICKS", "HIGGINS", "HILL", "HINES", "HINTON", "HO",
"HOBBS",
                "HODGE", "HODGES", "HOFFMAN", "HOGAN", "HOLDEN",
"HOLDER",
                "HOLLAND", "HOLLOWAY", "HOLMES", "HOLT", "HOOD",
"HOOPER",
                "HOOVER", "HOPKINS", "HORN", "HORNE", "HORTON",
"HOUSE",
                "HOUSTON", "HOWARD", "HOWE", "HOWELL", "HUANG",
"HUBBARD",
                "HUBER", "HUDSON", "HUERTA", "HUFF", "HUFFMAN",
"HUGHES",
                "HULL", "HUMPHREY", "HUNT", "HUNTER", "HURLEY",
"HURST",
                "HUTCHINSON", "HUYNH", "IBARRA", "INGRAM", "IRWIN",
"JACKSON",
                "JACOBS", "JACOBSON", "JAMES", "JARVIS", "JEFFERSON",
                "JENKINS", "JENNINGS", "JENSEN", "JIMENEZ", "JOHNS",
"JOHNSON",
                "JOHNSTON", "JONES", "JORDAN", "JOSEPH", "JOYCE",
"JUAREZ",
                "KAISER", "KANE", "KAUFMAN", "KEITH", "KELLER",
"KELLEY",
                "KELLY", "KEMP", "KENNEDY", "KENT", "KERR", "KEY",
"KHAN",
                "KIDD", "KIM", "KING", "KIRBY", "KIRK", "KLEIN",
"KLINE",
                "KNAPP", "KNIGHT", "KNOX", "KOCH", "KRAMER", "KRAUSE",
                "KRUEGER", "LAM", "LAMB", "LAMBERT", "LANDRY", "LANE",
"LANG",
                "LARA", "LARSEN", "LARSON", "LAWRENCE", "LAWSON",
"LE",
                "LEACH", "LEBLANC", "LEE", "LEON", "LEONARD",
"LESTER",
                "LEVINE", "LEVY", "LEWIS", "LI", "LIN", "LINDSEY",
"LITTLE",
                "LIU", "LIVINGSTON", "LLOYD", "LOGAN", "LONG",
"LOPEZ", "LOVE",
                "LOWE", "LOWERY", "LOZANO", "LUCAS", "LUCERO", "LUNA",
"LUTZ",
                "LYNCH", "LYNN", "LYONS", "MACDONALD", "MACIAS",
"MACK",
                "MADDEN", "MADDOX", "MAHONEY", "MALDONADO", "MALONE",
"MANN",
                "MANNING", "MARKS", "MARQUEZ", "MARSH", "MARSHALL",
"MARTIN",
                "MARTINEZ", "MASON", "MASSEY", "MATA", "MATHEWS",
"MATHIS",
                "MATTHEWS", "MAXWELL", "MAY", "MAYER", "MAYNARD",
"MAYO",
                "MAYS", "MCBRIDE", "MCCALL", "MCCANN", "MCCARTHY",
"MCCARTY",
                "MCCLAIN", "MCCLURE", "MCCONNELL", "MCCORMICK",
"MCCOY",
                "MCCULLOUGH", "MCDANIEL", "MCDONALD", "MCDOWELL",
"MCFARLAND",
                "MCGEE", "MCGRATH", "MCGUIRE", "MCINTOSH", "MCINTYRE",
"MCKAY",
                "MCKEE", "MCKENZIE", "MCKINNEY", "MCKNIGHT",
"MCLAUGHLIN",
                "MCLEAN", "MCMAHON", "MCMILLAN", "MCNEIL",
"MCPHERSON",
                "MEADOWS", "MEDINA", "MEJIA", "MELENDEZ", "MELTON",
"MENDEZ",
                "MENDOZA", "MERCADO", "MERCER", "MERRITT", "MEYER",
"MEYERS",
                "MEZA", "MICHAEL", "MIDDLETON", "MILES", "MILLER",
"MILLS",
                "MIRANDA", "MITCHELL", "MOLINA", "MONROE", "MONTES",
                "MONTGOMERY", "MONTOYA", "MOODY", "MOON", "MOONEY",
"MOORE",
                "MORA", "MORALES", "MORAN", "MORENO", "MORGAN",
"MORRIS",
                "MORRISON", "MORROW", "MORSE", "MORTON", "MOSES",
"MOSLEY",
                "MOSS", "MOYER", "MUELLER", "MULLEN", "MULLINS",
"MUNOZ",
                "MURILLO", "MURPHY", "MURRAY", "MYERS", "NASH",
"NAVARRO",
                "NEAL", "NELSON", "NEWMAN", "NEWTON", "NGUYEN",
"NICHOLS",
                "NICHOLSON", "NIELSEN", "NIXON", "NOBLE", "NOLAN",
"NORMAN",
                "NORRIS", "NORTON", "NOVAK", "NUNEZ", "OBRIEN",
"OCHOA",
                "OCONNELL", "OCONNOR", "ODOM", "ODONNELL", "OLIVER",
"OLSEN",
                "OLSON", "ONEAL", "ONEILL", "OROZCO", "ORR", "ORTEGA",
"ORTIZ",
                "OSBORN", "OSBORNE", "OWEN", "OWENS", "PACE",
"PACHECO",
                "PADILLA", "PAGE", "PALMER", "PARK", "PARKER",
"PARKS",
                "PARRISH", "PARSONS", "PATEL", "PATRICK", "PATTERSON",
                "PATTON", "PAUL", "PAYNE", "PEARSON", "PECK", "PENA",
                "PENNINGTON", "PEREZ", "PERKINS", "PERRY", "PETERS",
                "PETERSEN", "PETERSON", "PETTY", "PHAM", "PHELPS",
"PHILLIPS",
                "PIERCE", "PINEDA", "PITTMAN", "PITTS", "POLLARD",
"PONCE",
                "POOLE", "POPE", "PORTER", "POTTER", "POTTS",
"POWELL",
                "POWERS", "PRATT", "PRESTON", "PRICE", "PRINCE",
"PROCTOR",
                "PRUITT", "PUGH", "QUINN", "RAMIREZ", "RAMOS",
"RAMSEY",
                "RANDALL", "RANDOLPH", "RANGEL", "RASMUSSEN", "RAY",
"RAYMOND",
                "REED", "REESE", "REEVES", "REID", "REILLY", "REYES",
                "REYNOLDS", "RHODES", "RICE", "RICH", "RICHARD",
"RICHARDS",
                "RICHARDSON", "RICHMOND", "RIDDLE", "RIGGS", "RILEY",
"RIOS",
                "RITTER", "RIVAS", "RIVERA", "RIVERS", "ROACH",
"ROBBINS",
                "ROBERSON", "ROBERTS", "ROBERTSON", "ROBINSON",
"ROBLES",
                "ROCHA", "RODGERS", "RODRIGUEZ", "ROGERS", "ROJAS",
"ROLLINS",
                "ROMAN", "ROMERO", "ROSALES", "ROSARIO", "ROSE",
"ROSS",
                "ROTH", "ROWE", "ROWLAND", "ROY", "RUBIO", "RUIZ",
"RUSH",
                "RUSSELL", "RUSSO", "RYAN", "SALAS", "SALAZAR",
"SALINAS",
                "SAMPSON", "SANCHEZ", "SANDERS", "SANDOVAL",
"SANFORD",
                "SANTANA", "SANTIAGO", "SANTOS", "SAUNDERS", "SAVAGE",
                "SAWYER", "SCHAEFER", "SCHMIDT", "SCHMITT",
"SCHNEIDER",
                "SCHROEDER", "SCHULTZ", "SCHWARTZ", "SCOTT",
"SELLERS",
                "SERRANO", "SEXTON", "SHAFFER", "SHAH", "SHANNON",
"SHARP",
                "SHAW", "SHEA", "SHELTON", "SHEPARD", "SHEPHERD",
"SHEPPARD",
                "SHERMAN", "SHIELDS", "SHORT", "SILVA", "SIMMONS",
"SIMON",
                "SIMPSON", "SIMS", "SINGH", "SINGLETON", "SKINNER",
"SLOAN",
                "SMALL", "SMITH", "SNOW", "SNYDER", "SOLIS",
"SOLOMON", "SOSA",
                "SOTO", "SPARKS", "SPEARS", "SPENCE", "SPENCER",
"STAFFORD",
                "STANLEY", "STANTON", "STARK", "STEELE", "STEIN",
"STEPHENS",
                "STEPHENSON", "STEVENS", "STEVENSON", "STEWART",
"STOKES",
                "STONE", "STOUT", "STRICKLAND", "STRONG", "STUART",
"SUAREZ",
                "SULLIVAN", "SUMMERS", "SUTTON", "SWANSON", "SWEENEY",
                "TANNER", "TAPIA", "TATE", "TAYLOR", "TERRELL",
"TERRY",
                "THOMAS", "THOMPSON", "THORNTON", "TODD", "TORRES",
"TOWNSEND",
                "TRAN", "TRAVIS", "TREVINO", "TRUJILLO", "TUCKER",
"TURNER",
                "TYLER", "UNDERWOOD", "VALDEZ", "VALENCIA",
"VALENTINE",
                "VALENZUELA", "VANCE", "VANG", "VARGAS", "VASQUEZ",
"VAUGHAN",
                "VAUGHN", "VAZQUEZ", "VEGA", "VELASQUEZ", "VELAZQUEZ",
"VELEZ",
                "VILLA", "VILLANUEVA", "VILLARREAL", "VILLEGAS",
"VINCENT",
                "WADE", "WAGNER", "WALKER", "WALL", "WALLACE",
"WALLER",
                "WALLS", "WALSH", "WALTER", "WALTERS", "WALTON",
"WANG",
                "WARD", "WARE", "WARNER", "WARREN", "WASHINGTON",
"WATERS",
                "WATKINS", "WATSON", "WATTS", "WEAVER", "WEBB",
"WEBER",
                "WEBSTER", "WEEKS", "WEISS", "WELCH", "WELLS",
"WERNER",
                "WEST", "WHEELER", "WHITAKER", "WHITE", "WHITEHEAD",
"WHITNEY",
                "WIGGINS", "WILCOX", "WILEY", "WILKERSON", "WILKINS",
                "WILKINSON", "WILLIAMS", "WILLIAMSON", "WILLIS",
"WILSON",
                "WINTERS", "WISE", "WOLF", "WOLFE", "WONG", "WOOD",
"WOODARD",
                "WOODS", "WOODWARD", "WRIGHT", "WU", "WYATT", "YANG",
"YATES",
                "YODER", "YORK", "YOUNG", "YU", "ZAMORA", "ZAVALA",
"ZHANG",
                "ZIMMERMAN", "ZUNIGA" };
    }
}

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to