in src/component.tsx [502:565]
render() {
const datasets: IDatasets = {
rows_all_unfiltered: this.state.rows_all_unfiltered,
rows_filtered: this.state.rows_filtered,
rows_highlighted: this.state.rows_highlighted,
rows_selected: this.state.rows_selected
};
const controlProps: HiPlotDataControlProps = {
restoreAllRows: this.restoreAllRows.bind(this),
filterRows: this.filterRows.bind(this),
...datasets
};
const createPluginProps = function(this: HiPlot, idx: number, name: string): React.ClassAttributes<React.ComponentClass<HiPlotPluginData>> & HiPlotPluginData {
return {
ref: this.plugins_ref[idx],
...(this.state.experiment.display_data && this.state.experiment.display_data[name] ? this.state.experiment.display_data[name] : {}),
...datasets,
rows_selected_filter: this.state.rows_selected_filter,
name: name,
persistentState: this.state.persistentState.children(name),
window_state: this.plugins_window_state[name],
sendMessage: this.sendMessage.bind(this),
get_color_for_row: this.getColorForRow.bind(this),
experiment: this.state.experiment,
params_def: this.state.params_def,
params_def_unfiltered: this.state.params_def_unfiltered,
dp_lookup: this.state.dp_lookup,
colorby: this.state.colorby,
render_row_text: this.renderRowText.bind(this),
context_menu_ref: this.contextMenuRef,
setSelected: this.setSelected.bind(this),
setHighlighted: this.setHighlighted.bind(this),
asserts: this.props.asserts,
};
}.bind(this);
return (
<div ref={this.rootRef} className={`hip_thm--${this.state.dark ? "dark" : "light"}`}>
<div className={style.hiplot}>
<SelectedCountProgressBar {...controlProps} />
<HeaderBar
weightColumn={this.state.experiment ? this.state.experiment.weightcolumn : undefined}
onLoadExperiment={this.loadWithPromise.bind(this)}
persistentState={this.state.persistentState}
dataProvider={this.state.dataProvider}
loadStatus={this.state.loadStatus}
dark={this.state.dark}
{...controlProps}
/>
{this.state.loadStatus == HiPlotLoadStatus.Error &&
<ErrorDisplay error={this.state.error} />
}
{this.state.loadStatus != HiPlotLoadStatus.Loaded &&
<DocAndCredits dark={this.state.dark} />
}
<ContextMenu ref={this.contextMenuRef}/>
{this.state.loadStatus == HiPlotLoadStatus.Loaded &&
<div>
{Object.entries(this.props.plugins).map((plugin, idx) => <React.Fragment key={idx}>{React.createElement(plugin[1], createPluginProps(idx, plugin[0]))}</React.Fragment>)}
</div>
}
</div>
</div>
);
}