concept JG22Network is Swingable {
  JPanel mainPanel = jpanelWithoutLayoutManager();
  new G22Network network;

  *(G22Network *network) {
    for (element : network.elements)
      visualizeElement(element);
  }
  
  void visualizeElement(G22NetworkElement element) {
    addAndRepaint(mainPanel, new JG22NetworkElement(element));
  }
  
  void newElement {
    new G22NetworkElement element;
    element.network(network);
    network.elements.add(element);
    network.change();
    visualizeElement(element);
  }
  
  cachedVisual
    withRightAlignedButtons(mainPanel,
      "New element", rThread newElement);
}