|
|
@@ -61,12 +61,12 @@ public class ComponentRendererConnector |
|
|
|
|
|
|
|
@Override |
|
|
|
public void render(RendererCellReference cell, String connectorId, |
|
|
|
SimplePanel widget) { |
|
|
|
SimplePanel widget) { |
|
|
|
createConnectorHierarchyChangeHandler(); |
|
|
|
Widget connectorWidget = null; |
|
|
|
if (connectorId != null) { |
|
|
|
ComponentConnector connector = (ComponentConnector) ConnectorMap |
|
|
|
.get(getConnection()).getConnector(connectorId); |
|
|
|
.get(getConnection()).getConnector(connectorId); |
|
|
|
if (connector != null) { |
|
|
|
connectorWidget = connector.getWidget(); |
|
|
|
knownConnectors.add(connectorId); |
|
|
@@ -95,22 +95,26 @@ public class ComponentRendererConnector |
|
|
|
|
|
|
|
/** |
|
|
|
* Adds a listener for grid hierarchy changes to find detached connectors |
|
|
|
* previously handled by this renderer in order to detach from DOM their widgets |
|
|
|
* before {@link AbstractComponentConnector#onUnregister()} is invoked |
|
|
|
* otherwise an error message is logged. |
|
|
|
* previously handled by this renderer in order to detach from DOM their |
|
|
|
* widgets before {@link AbstractComponentConnector#onUnregister()} is |
|
|
|
* invoked otherwise an error message is logged. |
|
|
|
*/ |
|
|
|
private void createConnectorHierarchyChangeHandler() { |
|
|
|
if (handlerRegistration == null) { |
|
|
|
handlerRegistration = getGridConnector().addConnectorHierarchyChangeHandler(event -> { |
|
|
|
Iterator<String> iterator = knownConnectors.iterator(); |
|
|
|
while (iterator.hasNext()) { |
|
|
|
ComponentConnector connector = (ComponentConnector) ConnectorMap.get(getConnection()).getConnector(iterator.next()); |
|
|
|
if (connector != null && connector.getParent() == null) { |
|
|
|
connector.getWidget().removeFromParent(); |
|
|
|
iterator.remove(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
handlerRegistration = getGridConnector() |
|
|
|
.addConnectorHierarchyChangeHandler(event -> { |
|
|
|
Iterator<String> iterator = knownConnectors.iterator(); |
|
|
|
while (iterator.hasNext()) { |
|
|
|
ComponentConnector connector = (ComponentConnector) ConnectorMap |
|
|
|
.get(getConnection()) |
|
|
|
.getConnector(iterator.next()); |
|
|
|
if (connector != null |
|
|
|
&& connector.getParent() == null) { |
|
|
|
connector.getWidget().removeFromParent(); |
|
|
|
iterator.remove(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|