super.paint(parent);
/////////////////////////////////////////////////////////////////
// Wir ermitteln die Liste der bereits verlinkten Konten
ArrayList linked = new ArrayList();
GenericIterator configs = PinTanConfigFactory.getConfigs();
while (configs.hasNext())
{
PinTanConfig config = (PinTanConfig) configs.next();
if (this.myConfig != null && this.myConfig.equals(config))
continue; // Das sind wir selbst
Konto[] konten = config.getKonten();
if (konten == null || konten.length == 0)
continue;
for (int i=0;i<konten.length;++i)
{
linked.add(konten[i]);
}
}
GenericIterator exclude = PseudoIterator.fromArray((GenericObject[])linked.toArray(new GenericObject[linked.size()]));
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
// Liste der existierenden Konten mit PIN/TAN ermitteln
// Davon ziehen wir die bereits verlinkten ab
ArrayList konten = new ArrayList();
DBIterator list = de.willuhn.jameica.hbci.Settings.getDBService().createList(Konto.class);
list.addFilter("passport_class = ?",PassportImpl.class.getName());
list.setOrder("ORDER BY blz, bezeichnung");
while (list.hasNext())
{
Konto k = (Konto) list.next();
if (exclude.contains(k) != null)
continue; // Ist schon mit einer anderen PIN/TAN-Config verlinkt
konten.add(k);
}
/////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
// Tabelle erzeugen und nur die relevanten markieren
GenericIterator all = PseudoIterator.fromArray((Konto[]) konten.toArray(new Konto[konten.size()]));
// Die derzeit markierten
GenericIterator checked = null;
if (myConfig != null)
{
Konto[] k = myConfig.getKonten();
if (k != null && k.length > 0)
checked = PseudoIterator.fromArray(k);
}
while (all.hasNext())
{
Konto k = (Konto) all.next();
this.addItem(k,checked != null && (checked.contains(k) != null));
}
/////////////////////////////////////////////////////////////////
}