GraphModel oldModel = this.dataModel;
if (oldModel != null) {
clearCanvas();
oldModel.removeModelListener(modelListener);
}
GraphLayout2D oldLayout = this.layout;
if (oldLayout != null) {
oldLayout.removeGraphLayoutListener(modelListener);
oldLayout.removeNodeExpansionListener(modelListener);
}
this.dataModel = data;
createNodeUisFromModel();
createEdgeUisFromModel();
this.layout = (layout != null) ? layout : createLayout();