/** @see de.willuhn.jameica.gui.Part#paint(org.eclipse.swt.widgets.Composite) */
  public void paint(Composite parent) throws RemoteException {
    try {
      if (this.konto == null) {
        if (tiny) {
          ColumnLayout layout = new ColumnLayout(parent, 2);
          Container left = new SimpleContainer(layout.getComposite());
          left.addInput(this.getKontoAuswahl());
          Container right = new SimpleContainer(layout.getComposite());
          right.addInput(this.getRange());
        } else {
          final TabFolder folder = new TabFolder(parent, SWT.NONE);
          folder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
          TabGroup tab = new TabGroup(folder, i18n.tr("Anzeige einschränken"));

          tab.addInput(this.getKontoAuswahl());
          tab.addInput(this.getRange());

          ButtonArea buttons = new ButtonArea();
          buttons.addButton(
              i18n.tr("Aktualisieren"),
              new Action() {

                /** @see de.willuhn.jameica.gui.Action#handleAction(java.lang.Object) */
                public void handleAction(Object context) throws ApplicationException {
                  reloadListener.handleEvent(new Event());
                }
              },
              null,
              true,
              "view-refresh.png");

          buttons.paint(parent);
        }
      } else {
        Container container = new SimpleContainer(parent);
        container.addInput(this.getRange());
      }

      this.chart = new LineChart();
      this.reloadListener.handleEvent(null); // einmal initial ausloesen
      chart.paint(parent);
    } catch (RemoteException re) {
      throw re;
    } catch (Exception e) {
      Logger.error("unable to paint chart", e);
      Application.getMessagingFactory()
          .sendMessage(
              new StatusBarMessage(
                  i18n.tr("Fehler beim Anzeigen des Saldo-Verlaufs"), StatusBarMessage.TYPE_ERROR));
    }
  }