GWT - реализовать событие ClickHandler в строке FlexTable - PullRequest
1 голос
/ 20 июля 2011

Таким образом, мое программное обеспечение отображает гибкую таблицу (данные извлекаются и отображаются из базы данных) с пользователями, позволяющими установить флажок для выбора данных.

//users is the flextable object.
userCheck = new ClickHandler() {
        public void onClick(ClickEvent event) {
            CheckBox src = (CheckBox) event.getSource();
            for (int i = 1, n = users.getRowCount(); i < n; i++) {
                CheckBox box = (CheckBox) users.getWidget(i, 0);

                if (!box.equals(src)) {
                    box.setValue(false, false);
                }
            }
            removeUserButton.setEnabled(src.getValue());
            editUserButton.setEnabled(src.getValue());

        }
    };

Приведенный выше код работает, но теперь я пытаюсь реализовать действие, в котором вместо того, чтобы пользователь щелкнул по флажку, я хочу, чтобы пользователь щелкнул по строке (в каждой ячейке таблицы) и сделал всю строку (где пользователь выбрал) для выделения. Поэтому я реализовал этот код ниже, но пока он не работает (например, щелчок мышью не будет зарегистрирован, я еще не реализовал цветную палитру .. :(). Есть предложения?

userRowCheck = new ClickHandler() {
        public void onClick(ClickEvent event) {
            Cell src = users.getCellForEvent(event);
            int rowIndex = src.getRowIndex();
            System.out.println("Cell Selected: userRowCheck Handler, rowIndex: " + rowIndex);
            //This is just to check if this method is even called out. And well, it doesn't.
        }
    };

Большое спасибо !!!!

1 Ответ

2 голосов
/ 21 июля 2011

Если вы добавили userRowCheck в FlexTable: myFlexTable.addClickHandler(userRowCheck);, это должно работать.Просто убедитесь, что вы тестировали src для null, потому что, если вы не поместили виджет в ячейку и пользователь нажимает на эту ячейку, он возвращает null.

...