class LayeredPanel extends JBLayeredPane implements SideModel.Listener<T>, Disposable {

  @Override
  public void modelChanged(@NotNull SideModel<T> model, @NotNull SideModel.EventType unused) {
    model.getHiddenSliders().forEach(this::addHiddenTool);
    addVisibleTool(model.getVisibleAutoHideTool());
    revalidate();
    repaint();
  }

    LayeredPanel(@NotNull String benchName, @NotNull JComponent defaultLayer, @NotNull SideModel<T> model);
    LayeredPanel(@NotNull String benchName,
               @NotNull JComponent defaultLayer,
               @NotNull SideModel<T> model,
               @NotNull PropertiesComponent propertiesComponent);

}