Package de.willuhn.jameica.hbci.gui.controller

Source Code of de.willuhn.jameica.hbci.gui.controller.AbstractBaseUeberweisungControl

/**********************************************************************
* $Source: /cvsroot/hibiscus/hibiscus/src/de/willuhn/jameica/hbci/gui/controller/AbstractBaseUeberweisungControl.java,v $
* $Revision: 1.21 $
* $Date: 2012/02/26 13:00:39 $
* $Author: willuhn $
* $Locker:  $
* $State: Exp $
*
* Copyright (c) by willuhn.webdesign
* All rights reserved
*
**********************************************************************/
package de.willuhn.jameica.hbci.gui.controller;

import java.rmi.RemoteException;
import java.util.Date;

import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.input.CheckboxInput;
import de.willuhn.jameica.gui.input.DialogInput;
import de.willuhn.jameica.gui.input.Input;
import de.willuhn.jameica.gui.input.TextInput;
import de.willuhn.jameica.hbci.TextSchluessel;
import de.willuhn.jameica.hbci.gui.input.AddressInput;
import de.willuhn.jameica.hbci.gui.input.KontoInput;
import de.willuhn.jameica.hbci.gui.input.ReminderIntervalInput;
import de.willuhn.jameica.hbci.gui.input.TerminInput;
import de.willuhn.jameica.hbci.reminder.ReminderUtil;
import de.willuhn.jameica.hbci.rmi.BaseUeberweisung;
import de.willuhn.jameica.hbci.rmi.Terminable;
import de.willuhn.jameica.messaging.StatusBarMessage;
import de.willuhn.jameica.reminder.ReminderInterval;
import de.willuhn.jameica.system.Application;
import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;

/**
* Basis-Controller fuer die Ueberweisungen und Lastschriften.
*/
public abstract class AbstractBaseUeberweisungControl extends AbstractTransferControl
{

  // Eingabe-Felder
  private TerminInput termin             = null;
  private ReminderIntervalInput interval = null;
 
  /**
   * ct.
   * @param view
   */
  public AbstractBaseUeberweisungControl(AbstractView view)
  {
    super(view);
  }

  /**
   * Liefert das Eingabe-Feld fuer den Termin.
   * @return Eingabe-Feld.
   * @throws RemoteException
   */
  public TerminInput getTermin() throws RemoteException
  {
    if (this.termin != null)
      return this.termin;
   
    this.termin = new TerminInput((Terminable) getTransfer());
    return this.termin;
  }
 
  /**
   * Liefert das Intervall fuer die zyklische Ausfuehrung.
   * @return Auswahlfeld.
   * @throws Exception
   */
  public ReminderIntervalInput getReminderInterval() throws Exception
  {
    if (this.interval != null)
      return this.interval;
   
    this.interval = new ReminderIntervalInput((Terminable) getTransfer(),(Date)getTermin().getValue());
    return this.interval;
  }
 
  /**
   * Liefert ein Auswahlfeld fuer den Textschluessel.
   * @return Auswahlfeld.
   * @throws RemoteException
   */
  public abstract Input getTextSchluessel() throws RemoteException;
 
  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#handleStore()
   */
  public synchronized boolean handleStore()
  {
    BaseUeberweisung bu = null;
    try
    {
      bu = (BaseUeberweisung) getTransfer();
      if (bu.ausgefuehrt()) // BUGZILLA 1197
        return true;
     
      Date termin = (Date) getTermin().getValue();
      bu.setTermin(termin);
     
      TextSchluessel s = (TextSchluessel) getTextSchluessel().getValue();
      bu.setTextSchluessel(s == null ? null : s.getCode());

      bu.transactionBegin();
      if (super.handleStore())
      {
        // Reminder-Intervall speichern
        ReminderIntervalInput input = this.getReminderInterval();
        if (input.containsInterval())
          ReminderUtil.apply(bu,(ReminderInterval) input.getValue(), input.getEnd());

        bu.transactionCommit();
        return true;
      }
      else
      {
        bu.transactionRollback();
      }
    }
    catch (Exception e)
    {
      if (bu != null) {
        try {
          bu.transactionRollback();
        }
        catch (Exception xe) {
          Logger.error("rollback failed",xe);
        }
      }
     
      if (e instanceof ApplicationException)
      {
        Application.getMessagingFactory().sendMessage(new StatusBarMessage(e.getMessage(),StatusBarMessage.TYPE_ERROR));
      }
      else
      {
        Logger.error("error while saving order",e);
        Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Fehlgeschlagen: {0}",e.getMessage()),StatusBarMessage.TYPE_ERROR));
      }
    }
    return false;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getBetrag()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public Input getBetrag() throws RemoteException
  {
    Input i = super.getBetrag();
    if (((Terminable)getTransfer()).ausgefuehrt())
      i.disable();
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getEmpfaengerBlz()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public TextInput getEmpfaengerBlz() throws RemoteException
  {
    TextInput i = super.getEmpfaengerBlz();
    if (((Terminable)getTransfer()).ausgefuehrt())
      i.disable();
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getEmpfaengerKonto()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public TextInput getEmpfaengerKonto() throws RemoteException
  {
    TextInput i = super.getEmpfaengerKonto();
    if (((Terminable)getTransfer()).ausgefuehrt())
      i.disable();
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getEmpfaengerName()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public AddressInput getEmpfaengerName() throws RemoteException
  {
    AddressInput i = super.getEmpfaengerName();
    if (((Terminable)getTransfer()).ausgefuehrt())
      i.disable();
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getKontoAuswahl()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public KontoInput getKontoAuswahl() throws RemoteException
  {
    KontoInput i = super.getKontoAuswahl();
    i.setEnabled(!((Terminable)getTransfer()).ausgefuehrt());
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getStoreEmpfaenger()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public CheckboxInput getStoreEmpfaenger() throws RemoteException
  {
    CheckboxInput i = super.getStoreEmpfaenger();
    if (((Terminable)getTransfer()).ausgefuehrt())
      i.disable();
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getZweck()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public TextInput getZweck() throws RemoteException
  {
    TextInput i = super.getZweck();
    i.setEnabled(!((Terminable)getTransfer()).ausgefuehrt());
    return i;
  }

  /**
   * @see de.willuhn.jameica.hbci.gui.controller.AbstractTransferControl#getZweck2()
   * Ueberschrieben, um das Control zu deaktivieren, wenn die Ueberweisung bereits ausgefuehrt wurde.
   */
  public DialogInput getZweck2() throws RemoteException
  {
    DialogInput i = super.getZweck2();
    if (((Terminable)getTransfer()).ausgefuehrt())
      i.disableClientControl();
    return i;
  }
}


/**********************************************************************
* $Log: AbstractBaseUeberweisungControl.java,v $
* Revision 1.21  2012/02/26 13:00:39  willuhn
* @B BUGZILLA 1197
*
* Revision 1.20  2011/10/20 16:20:05  willuhn
* @N BUGZILLA 182 - Erste Version von client-seitigen Dauerauftraegen fuer alle Auftragsarten
*
* Revision 1.19  2011-05-20 16:22:31  willuhn
* @N Termin-Eingabefeld in eigene Klasse ausgelagert (verhindert duplizierten Code) - bessere Kommentare
*
* Revision 1.18  2011-05-11 16:23:57  willuhn
* @N BUGZILLA 591
*
* Revision 1.17  2010-08-17 11:32:11  willuhn
* @C Code-Cleanup
*
* Revision 1.16  2009-03-13 00:25:12  willuhn
* @N Code fuer Auslandsueberweisungen fast fertig
*
* Revision 1.15  2009/02/24 23:51:01  willuhn
* @N Auswahl der Empfaenger/Zahlungspflichtigen jetzt ueber Auto-Suggest-Felder
*
* Revision 1.14  2009/01/04 16:18:22  willuhn
* @N BUGZILLA 404 - Kontoauswahl via SelectBox
**********************************************************************/
TOP

Related Classes of de.willuhn.jameica.hbci.gui.controller.AbstractBaseUeberweisungControl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.