Package de.willuhn.jameica.hbci.gui.parts

Source Code of de.willuhn.jameica.hbci.gui.parts.UmsatzTypChart

/**********************************************************************
* $Source: /cvsroot/hibiscus/hibiscus/src/de/willuhn/jameica/hbci/gui/parts/UmsatzTypChart.java,v $
* $Revision: 1.12 $
* $Date: 2011/08/29 08:04:58 $
* $Author: willuhn $
* $Locker:  $
* $State: Exp $
*
* Copyright (c) by willuhn.webdesign
* All rights reserved
*
**********************************************************************/

package de.willuhn.jameica.hbci.gui.parts;

import java.rmi.RemoteException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;

import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.Part;
import de.willuhn.jameica.gui.util.Container;
import de.willuhn.jameica.gui.util.DelayedListener;
import de.willuhn.jameica.gui.util.SimpleContainer;
import de.willuhn.jameica.hbci.HBCI;
import de.willuhn.jameica.hbci.gui.chart.BarChart;
import de.willuhn.jameica.hbci.gui.chart.ChartData;
import de.willuhn.jameica.hbci.gui.chart.ChartDataUmsatzTyp;
import de.willuhn.jameica.hbci.gui.input.UmsatzDaysInput;
import de.willuhn.jameica.hbci.rmi.UmsatzTyp;
import de.willuhn.jameica.system.Application;
import de.willuhn.logging.Logger;
import de.willuhn.util.I18N;

/**
* Komponente, die die Umsatzverteilung grafisch anzeigt.
* @author willuhn
*/
public class UmsatzTypChart implements Part
{
 
  private I18N i18n   = null;
  private int start   = UmsatzDaysInput.getDefaultDays();

  /**
   * ct.
   */
  public UmsatzTypChart()
  {
    this.i18n = Application.getPluginLoader().getPlugin(HBCI.class).getResources().getI18N();
  }

  /**
   * @see de.willuhn.jameica.gui.Part#paint(org.eclipse.swt.widgets.Composite)
   */
  public void paint(Composite parent) throws RemoteException
  {
    try
    {
      // TODO: Hier werden die benutzerdefinierten Farben von Kategorien noch nicht genutzt
      final Container group = new SimpleContainer(parent,true);
      final ChartData eData = new ChartDataUmsatzTyp(UmsatzTyp.TYP_EINNAHME,start);
      final ChartData aData = new ChartDataUmsatzTyp(UmsatzTyp.TYP_AUSGABE,start);
     
      final BarChart einnahmen = new BarChart();
      final BarChart ausgaben  = new BarChart();
     
      if (start < 0)
      {
        einnahmen.setTitle(i18n.tr("Einnahmen (alle Ums�tze)"));
        ausgaben.setTitle(i18n.tr("Ausgaben (alle Ums�tze)"));
      }
      else
      {
        einnahmen.setTitle(i18n.tr("Einnahmen ({0} Tage)",""+start));
        ausgaben.setTitle(i18n.tr("Ausgaben ({0} Tage)",""+start));
      }
      einnahmen.addData(eData);
      ausgaben.addData(aData);

      final UmsatzDaysInput i = new UmsatzDaysInput();
      i.addListener(new DelayedListener(300, new Listener()
      {
        private ChartData myEData = null;
        private ChartData myAData = null;
        public void handleEvent(Event event)
        {
          try
          {
            int newStart = ((Integer)i.getValue()).intValue();
            if (newStart == start)
              return;

            start = newStart;
           
            if (myEData != null) einnahmen.removeData(myEData);
            else                 einnahmen.removeData(eData);
            if (myAData != null) ausgaben.removeData(myAData);
            else                 ausgaben.removeData(aData);

            myEData = new ChartDataUmsatzTyp(UmsatzTyp.TYP_EINNAHME,newStart);
            myAData = new ChartDataUmsatzTyp(UmsatzTyp.TYP_AUSGABE,newStart);
            if (newStart < 0)
            {
              einnahmen.setTitle(i18n.tr("Einnahmen (alle Ums�tze)"));
              ausgaben.setTitle(i18n.tr("Ausgaben (alle Ums�tze)"));
            }
            else
            {
              einnahmen.setTitle(i18n.tr("Einnahmen ({0} Tage)",Integer.toString(newStart)));
              ausgaben.setTitle(i18n.tr("Ausgaben ({0} Tage)",Integer.toString(newStart)));
            }
            einnahmen.addData(myEData);
            ausgaben.addData(myAData);
            einnahmen.redraw();
            ausgaben.redraw();
          }
          catch (Throwable t)
          {
            Logger.error("unable to redraw chart",t);
            GUI.getStatusBar().setErrorText(i18n.tr("Fehler beim Aktualisieren der Umsatzverteilung"));
          }
        }
      }));


      group.addInput(i);
     
      final Composite comp = new Composite(group.getComposite(),SWT.NONE);
      GridData gridData = new GridData(GridData.FILL_BOTH);
      gridData.horizontalSpan = 2;
      comp.setLayoutData(gridData);

      GridLayout layout = new GridLayout(2,true);
      layout.horizontalSpacing = 0;
      layout.verticalSpacing = 0;
      layout.marginHeight = 0;
      layout.marginWidth = 0;
      comp.setLayout(layout);
     
      einnahmen.paint(comp);
      ausgaben.paint(comp);
    }
    catch (RemoteException re)
    {
      throw re;
    }
    catch (Exception e)
    {
      Logger.error("unable to paint chart",e);
      GUI.getStatusBar().setErrorText(i18n.tr("Fehler beim Anzeigen der Umsatzverteilung"));
    }
  }
}


/*********************************************************************
* $Log: UmsatzTypChart.java,v $
* Revision 1.12  2011/08/29 08:04:58  willuhn
* @B Dispose-Check fehlte
* @N Umsatzverteilung verzoegert neu berechnen - der Schieberegler hakelt sonst
*
* Revision 1.11  2011-05-03 10:13:15  willuhn
* @R Hintergrund-Farbe nicht mehr explizit setzen. Erzeugt auf Windows und insb. Mac teilweise unschoene Effekte. Besonders innerhalb von Label-Groups, die auf Windows/Mac andere Hintergrund-Farben verwenden als der Default-Hintergrund
*
* Revision 1.10  2010-11-24 16:27:18  willuhn
* @R Eclipse BIRT komplett rausgeworden. Diese unsaegliche Monster ;)
* @N Stattdessen verwenden wir jetzt SWTChart (http://www.swtchart.org). Das ist statt den 6MB von BIRT sagenhafte 250k gross
*
* Revision 1.9  2010-08-12 15:32:02  willuhn
* @R Rahmen entfernt - spart Platz
*
* Revision 1.8  2010-08-11 16:06:05  willuhn
* @N BUGZILLA 783 - Saldo-Chart ueber alle Konten
*
* Revision 1.7  2009/08/27 13:37:28  willuhn
* @N Der grafische Saldo-Verlauf zeigt nun zusaetzlich  eine Trendkurve an
*
* Revision 1.6  2009/05/08 13:58:30  willuhn
* @N Icons in allen Menus und auf allen Buttons
* @N Fuer Umsatz-Kategorien koennen nun benutzerdefinierte Farben vergeben werden
*
* Revision 1.5  2008/08/29 16:46:24  willuhn
* @N BUGZILLA 616
*
* Revision 1.4  2007/01/16 12:35:43  willuhn
* @B "-1 Tage"
*
* Revision 1.3  2006/10/31 23:04:48  willuhn
* @B Wurde mit der falschen Anzahl Default-Tage initialisiert
*
* Revision 1.2  2006/08/05 22:00:51  willuhn
* *** empty log message ***
*
* Revision 1.1  2006/04/03 21:39:07  willuhn
* @N UmsatzChart
*
*********************************************************************/
TOP

Related Classes of de.willuhn.jameica.hbci.gui.parts.UmsatzTypChart

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.