package de.open4me.depot.gui.view;
import java.rmi.RemoteException;
import org.eclipse.swt.widgets.Composite;
import de.open4me.depot.Settings;
import de.open4me.depot.abruf.utils.Utils;
import de.open4me.depot.gui.action.EinrichtungsassistentenAction;
import de.open4me.depot.gui.control.DepotListControl;
import de.open4me.depot.sql.GenericObjectHashMap;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.parts.Button;
import de.willuhn.jameica.gui.parts.ButtonArea;
import de.willuhn.jameica.gui.util.Container;
import de.willuhn.jameica.gui.util.SimpleContainer;
import de.willuhn.jameica.hbci.gui.action.KontoFetchUmsaetze;
import de.willuhn.jameica.hbci.rmi.Konto;
import de.willuhn.jameica.hbci.rmi.KontoType;
import de.willuhn.jameica.messaging.StatusBarMessage;
import de.willuhn.jameica.system.Application;
import de.willuhn.util.ApplicationException;
public class DepotView extends AbstractView
{
/**
* @see de.willuhn.jameica.gui.AbstractView#bind()
*/
public void bind() throws Exception {
GUI.getView().setTitle(Settings.i18n().tr("Depots"));
final DepotListControl control = new DepotListControl(this);
if (Utils.getDepotKonten().size() == 0) {
Container container = new SimpleContainer(getParent());
container.addHeadline("Einrichtungsassistent:");
container.addText("Sie haben noch keine Konten dem Depotviewer zugewiesen.\n"
+ "Möchten sie den Einrichtungsassistent starten, der Ihnen bei der Einrichtung hilft?\n"
+ "Sie können den Einrichtungsassistenten auch später über den Menüpunkt \"Depot-Viewer\" starten.", true);
ButtonArea baEinrichtung = new ButtonArea();
baEinrichtung.addButton("Einrichtungsassistent starten", new Action() {
@Override
public void handleAction(Object context) {
(new EinrichtungsassistentenAction()).handleAction(null);
}
}
,null,true,"dialog-warning-large.png");
container.addPart(baEinrichtung);
}
getText(getParent(), control);
}
public Container getText(Composite composite, final DepotListControl control) throws RemoteException, ApplicationException {
Container container = new SimpleContainer(composite, true);
container.addHeadline("Folgende Depots sind aktuell dem Depot-Viewer zugewiesen:");
container.addPart(control.getDepotOverview());
Button abrufen = new Button("Abrufen", new Action() {
@Override
public void handleAction(Object context)
throws ApplicationException {
try {
Object obj = control.getSelectedItem();
if (obj == null || !(obj instanceof GenericObjectHashMap)) {
Application.getMessagingFactory().sendMessage(new StatusBarMessage(Application.getI18n().tr("Bitte ein Depot auswählen!"),StatusBarMessage.TYPE_INFO));
return;
}
GenericObjectHashMap o = (GenericObjectHashMap) obj;
Konto k = (Konto) o.getAttribute("kontoobj");
(new KontoFetchUmsaetze()).handleAction(k);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
,null,true,"dialog-information.png");
Button einstellungen = new Button("Einstellungen", new Action() {
@Override
public void handleAction(Object context)
throws ApplicationException {
Object obj = control.getSelectedItem();
if (obj == null || !(obj instanceof GenericObjectHashMap)) {
Application.getMessagingFactory().sendMessage(new StatusBarMessage(Application.getI18n().tr("Bitte ein Depot auswählen!"),StatusBarMessage.TYPE_INFO));
return;
}
control.exec(obj);
}
}
,null,true,"dialog-information.png");
ButtonArea buttons1 = new ButtonArea();
buttons1.addButton(abrufen);
buttons1.addButton(einstellungen);
container.addPart(buttons1);
container.addHeadline("Unterstütze Banken:");
container.addText("Es werden im wesentlichen nur Banken unterstützt, die für ihre Depots HBCI Support zu Verfügung stellen.\nFür alle anderen Banken müssen handisch Erweiterungen programmiert werden.\n", true);
container.addHeadline("Notwendige Konto-Einstellungen für die Nutzung:");
container.addText("Kontoart:\n" +
" '" + KontoType.WERTPAPIERDEPOT.getName() + "' oder ' " + KontoType.FONDSDEPOT.getName()+ "'\n", true);
container.addText("Zugangsarten: \n" +
" HBCI, falls die Bank dieses tatsächlich unterstützt\n" +
" DepotViewer (z.Z. nur für die Fondsdepot Bank)\n", true);
container.addHeadline("Geschäftsvorfall WPDepotUms wird nicht unterstützt");
container.addText("Teilweise unterstützen die Banken bei HBCI nur den Bestandsabruf und nicht den Abruf von Umsätzen.\n" +
"Falls die Fehlermeldung 'Geschäftsvorfall WPDepotUms wird nicht unterstützt' erscheint, so ist unter Einstellungen der Punkt 'Nur Bestand via HBCI abrufen' zu aktivieren. " +
"In diesem Fall wird versucht, die fehlenden Informationen aus der Differenz zwischen dem aktuellen und dem letzten Bestand zu ermitteln.\n"
, true);
return container;
}
}