/**********************************************************************
* $Source: /cvsroot/hibiscus/hibiscus/src/de/willuhn/jameica/hbci/gui/views/Settings.java,v $
* $Revision: 1.57 $
* $Date: 2011/06/30 16:29:42 $
* $Author: willuhn $
* $Locker: $
* $State: Exp $
*
* Copyright (c) by willuhn.webdesign
* All rights reserved
*
**********************************************************************/
package de.willuhn.jameica.hbci.gui.views;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.TabFolder;
import de.willuhn.jameica.gui.AbstractView;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.GUI;
import de.willuhn.jameica.gui.extension.Extendable;
import de.willuhn.jameica.gui.parts.ButtonArea;
import de.willuhn.jameica.gui.util.TabGroup;
import de.willuhn.jameica.hbci.HBCI;
import de.willuhn.jameica.hbci.gui.action.UmsatzTypNew;
import de.willuhn.jameica.hbci.gui.controller.SettingsControl;
import de.willuhn.jameica.system.Application;
import de.willuhn.util.ApplicationException;
import de.willuhn.util.I18N;
/**
* Einstellungs-Dialog.
*/
public class Settings extends AbstractView implements Extendable
{
private final static I18N i18n = Application.getPluginLoader().getPlugin(HBCI.class).getResources().getI18N();
/**
* Wir merken uns das letzte aktive Tab
*/
private static Integer lastActiveTab = null;
/**
* Der Tabfolder.
*/
private TabFolder folder = null;
/**
* @see de.willuhn.jameica.gui.AbstractView#bind()
*/
public void bind() throws Exception
{
GUI.getView().setTitle(i18n.tr("Einstellungen"));
final SettingsControl control = new SettingsControl(this);
// Grund-Einstellungen
TabGroup system = new TabGroup(getTabFolder(),i18n.tr("Grundeinstellungen"));
system.addCheckbox(control.getOnlineMode(),i18n.tr("Dauerhafte Internetverbindung, Aufforderung zum Verbinden nicht erforderlich"));
system.addCheckbox(control.getCachePin(),i18n.tr("PIN-Eingaben f�r die aktuelle Sitzung zwischenspeichern"));
system.addCheckbox(control.getStorePin(),i18n.tr("PIN-Eingaben permanent speichern (nur bei PIN/TAN)"));
system.addCheckbox(control.getDecimalGrouping(),i18n.tr("Tausender-Trennzeichen bei Geld-Betr�gen anzeigen"));
system.addCheckbox(control.getKontoCheck(),i18n.tr("Kontonummern und Bankleitzahlen mittels Pr�fsumme testen"));
system.addCheckbox(control.getKontoCheckExcludeAddressbook(),i18n.tr("Au�er Bankverbindungen des Adressbuches"));
system.addLabelPair(i18n.tr("Limit f�r Auftr�ge"), control.getUeberweisungLimit());
// Farb-Einstellungen
TabGroup colors = new TabGroup(getTabFolder(),i18n.tr("Farben"));
colors.addLabelPair(i18n.tr("Textfarbe von Sollbuchungen"),control.getBuchungSollForeground());
colors.addLabelPair(i18n.tr("Textfarbe von Habenbuchungen"),control.getBuchungHabenForeground());
// Umsatz-Kategorien
TabGroup umsatztypes = new TabGroup(getTabFolder(),i18n.tr("Umsatz-Kategorien"));
control.getUmsatzTypTree().paint(umsatztypes.getComposite()); // BUGZILLA 410
ButtonArea umsatzButtons = new ButtonArea();
umsatzButtons.addButton(i18n.tr("Neue Umsatz-Kategorie..."),new UmsatzTypNew(),null,false,"text-x-generic.png");
umsatztypes.addButtonArea(umsatzButtons);
ButtonArea buttons = new ButtonArea();
buttons.addButton(i18n.tr("Speichern"),new Action()
{
public void handleAction(Object context) throws ApplicationException
{
control.handleStore();
}
},null,true,"document-save.png");
buttons.paint(getParent());
// Mal checken, ob wir uns das zuletzt aktive Tab gemerkt haben.
if (lastActiveTab != null)
getTabFolder().setSelection(lastActiveTab.intValue());
}
/**
* Liefert den Tab-Folder, in dem die einzelnen Module der Einstellungen
* untergebracht sind.
* @return der Tab-Folder.
*/
public TabFolder getTabFolder()
{
if (this.folder != null)
return this.folder;
this.folder = new TabFolder(getParent(), SWT.NONE);
this.folder.setLayoutData(new GridData(GridData.FILL_BOTH));
return this.folder;
}
/**
* @see de.willuhn.jameica.gui.AbstractView#unbind()
*/
public void unbind() throws ApplicationException
{
// Wir merken uns das aktive Tab
lastActiveTab = new Integer(getTabFolder().getSelectionIndex());
}
/**
* @see de.willuhn.jameica.gui.extension.Extendable#getExtendableID()
*/
public String getExtendableID()
{
return this.getClass().getName();
}
}