class SidePanel extends JPanel implements SideModel.Listener<T> {

  @Override
  public void modelChanged(@NotNull SideModel<T> model, @NotNull SideModel.EventType unused) {
    myCards.removeAll();
    myCards.add(mySplitter, SPLITTER);
    myCards.add(myEmpty, EMPTY);
    addVisibleTools(model.getVisibleTools(mySide));
    addHiddenTools(model.getHiddenTools(mySide));
    revalidate();
    repaint();
  }

    SidePanel(@NotNull Side side, @NotNull SideModel<T> model);

}