Package de.willuhn.jameica.hbci.messaging

Source Code of de.willuhn.jameica.hbci.messaging.SyncEngineStatusMessageConsumer

/**********************************************************************
*
* Copyright (c) by Olaf Willuhn
* All rights reserved
*
**********************************************************************/

package de.willuhn.jameica.hbci.messaging;

import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.internal.views.Start;
import de.willuhn.jameica.hbci.HBCI;
import de.willuhn.jameica.messaging.Message;
import de.willuhn.jameica.messaging.MessageConsumer;
import de.willuhn.jameica.messaging.QueryMessage;
import de.willuhn.jameica.messaging.StatusBarMessage;
import de.willuhn.jameica.system.Application;
import de.willuhn.logging.Logger;
import de.willuhn.util.I18N;
import de.willuhn.util.ProgressMonitor;

/**
* Wird ueber Status-Updates der Sync-Engine benachrichtigt.
*/
public class SyncEngineStatusMessageConsumer implements MessageConsumer
{
  private final static I18N i18n = Application.getPluginLoader().getPlugin(HBCI.class).getResources().getI18N();
 
  /**
   * @see de.willuhn.jameica.messaging.MessageConsumer#getExpectedMessageTypes()
   */
  @Override
  public Class[] getExpectedMessageTypes()
  {
    return new Class[]{QueryMessage.class};
  }

  /**
   * @see de.willuhn.jameica.messaging.MessageConsumer#handleMessage(de.willuhn.jameica.messaging.Message)
   */
  @Override
  public void handleMessage(Message message) throws Exception
  {
    QueryMessage msg = (QueryMessage) message;
    Object data = msg.getData();
    if (!(data instanceof Integer))
      return;
   
    final int status = ((Integer) data).intValue();
   
    // finaler Status.
    if (status == ProgressMonitor.STATUS_CANCEL ||
        status == ProgressMonitor.STATUS_DONE ||
        status == ProgressMonitor.STATUS_ERROR)
    {
      GUI.getDisplay().asyncExec(new Runnable() {
        @Override
        public void run()
        {
          // Startseite neu laden, falls sie derzeit angezeigt wird.
          if (GUI.getCurrentView().getClass().equals(Start.class))
          {
            Logger.info("Reloading start view");
            GUI.startView(Start.class,null);
          }
         
          int statusbarType = StatusBarMessage.TYPE_SUCCESS;
          if (status == ProgressMonitor.STATUS_ERROR)
            statusbarType = StatusBarMessage.TYPE_ERROR;
          else if (status == ProgressMonitor.STATUS_CANCEL)
            statusbarType = StatusBarMessage.TYPE_INFO;
         
          Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Synchronisierung beendet"),statusbarType));
         
        }
      });
    }
  }

  /**
   * @see de.willuhn.jameica.messaging.MessageConsumer#autoRegister()
   */
  @Override
  public boolean autoRegister()
  {
    // per plugin.xml registriert
    return false;
  }

}

TOP

Related Classes of de.willuhn.jameica.hbci.messaging.SyncEngineStatusMessageConsumer

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.