Browse Source

Fixed NPE in Table tooltip handling (#10705)

Change-Id: I907af51c06c68da26c74359fae4e6f9a43dda8bc
tags/7.0.0.rc1
Artur Signell 11 years ago
parent
commit
05b3faab88

+ 2
- 1
client/src/com/vaadin/client/ui/VScrollTable.java View File

@@ -4985,7 +4985,8 @@ public class VScrollTable extends FlowPanel implements HasWidgets,

TooltipInfo info = null;
final Element targetTdOrTr = getTdOrTr((Element) target.cast());
if ("td".equals(targetTdOrTr.getTagName().toLowerCase())) {
if (targetTdOrTr != null
&& "td".equals(targetTdOrTr.getTagName().toLowerCase())) {
TableCellElement td = (TableCellElement) targetTdOrTr
.cast();
info = cellToolTips.get(td);

+ 61
- 0
uitest/src/com/vaadin/tests/components/table/PopupViewInTable.java View File

@@ -0,0 +1,61 @@
/*
* Copyright 2012 Vaadin Ltd.
*
* Licensed 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 com.vaadin.tests.components.table;

import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
import com.vaadin.ui.Label;
import com.vaadin.ui.PopupView;
import com.vaadin.ui.Table;
import com.vaadin.ui.VerticalLayout;

public class PopupViewInTable extends AbstractTestUI {

@Override
protected void setup(VaadinRequest request) {
Table t = new Table();
t.addContainerProperty("text", String.class, "");
t.addContainerProperty("pv", Component.class, null);
t.addItem(new Object[] { "Foo", createPopupView() }, "foo");
addComponent(t);
}

private PopupView createPopupView() {
PopupView pv = new PopupView("Click me", createContent());
return pv;
}

private Component createContent() {
VerticalLayout vl = new VerticalLayout(new Label("Hello"), new Button(
"World"));
return vl;
}

@Override
protected String getTestDescription() {
// TODO Auto-generated method stub
return null;
}

@Override
protected Integer getTicketNumber() {
// TODO Auto-generated method stub
return null;
}

}

Loading…
Cancel
Save