浏览代码

Map column components by id (#9624)

Fixes #9452
tags/8.1.0.rc1
Teemu Suo-Anttila 6 年前
父节点
当前提交
4d085fd8b3
共有 1 个文件被更改,包括 6 次插入5 次删除
  1. 6
    5
      server/src/main/java/com/vaadin/ui/Grid.java

+ 6
- 5
server/src/main/java/com/vaadin/ui/Grid.java 查看文件

@@ -872,7 +872,7 @@ public class Grid<T> extends AbstractListing<T> implements HasComponents,

@Override
public void destroyData(T item) {
removeComponent(item);
removeComponent(getGrid().getDataProvider().getId(item));
}

@Override
@@ -885,7 +885,7 @@ public class Grid<T> extends AbstractListing<T> implements HasComponents,
};

private Binding<T, ?> editorBinding;
private Map<T, Component> activeComponents = new HashMap<>();
private Map<Object, Component> activeComponents = new HashMap<>();

private String userId;

@@ -1038,12 +1038,13 @@ public class Grid<T> extends AbstractListing<T> implements HasComponents,
// Make Grid track components.
if (renderer instanceof ComponentRenderer
&& presentationValue instanceof Component) {
addComponent(item, (Component) presentationValue);
addComponent(getGrid().getDataProvider().getId(item),
(Component) presentationValue);
}
return ((Renderer<P>) renderer).encode(presentationValue);
}

private void addComponent(T item, Component component) {
private void addComponent(Object item, Component component) {
if (activeComponents.containsKey(item)) {
if (activeComponents.get(item).equals(component)) {
// Reusing old component
@@ -1055,7 +1056,7 @@ public class Grid<T> extends AbstractListing<T> implements HasComponents,
getGrid().addExtensionComponent(component);
}

private void removeComponent(T item) {
private void removeComponent(Object item) {
Component component = activeComponents.remove(item);
if (component != null) {
getGrid().removeExtensionComponent(component);

正在加载...
取消
保存