package com.hilotec.elexis.kgview;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.core.ui.preferences.SettingsPreferenceStore;
import ch.elexis.core.ui.preferences.inputs.MultilineFieldEditor;
/**
* Einstelllungsseite fuer kgview-Plugin.
*
* @author Antoine Kaufmann
*/
public class Preferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
private static SettingsPreferenceStore store;
public static final String CFG_EVLISTE = "hilotec/kgview/einnahmevorschriften";
public static final String CFG_FLORDZ = "hilotec/kgview/ordnungszahlfavliste";
public static final String CFG_MK_INCSTOP = "hilotec/kgview/mkincludestopdate";
public static final String CFG_AKG_HEARTBEAT = "hilotec/kgview/archivkgheartbaeat";
public static final String CFG_AKG_SCROLLPERIOD = "hilotec/kgview/archivkgscrollperiod";
public static final String CFG_AKG_SCROLLDIST_UP = "hilotec/kgview/archivkgscrolldistup";
public static final String CFG_AKG_SCROLLDIST_DOWN = "hilotec/kgview/archivkgscrolldistdown";
static {
store = new SettingsPreferenceStore(CoreHub.mandantCfg);
// Standardwerte setzten
store.setDefault(CFG_FLORDZ, false);
store.setDefault(CFG_MK_INCSTOP, false);
store.setDefault(CFG_AKG_HEARTBEAT, 10);
store.setDefault(CFG_AKG_SCROLLPERIOD, 200);
store.setDefault(CFG_AKG_SCROLLDIST_UP, 5);
store.setDefault(CFG_AKG_SCROLLDIST_DOWN, 5);
}
public Preferences(){
super(GRID);
setPreferenceStore(store);
}
@Override
public void init(IWorkbench workbench){}
@Override
protected void createFieldEditors(){
addField(new MultilineFieldEditor(CFG_EVLISTE, "Einnahmevorschriften", 5, SWT.V_SCROLL,
true, getFieldEditorParent()));
addField(new BooleanFieldEditor(CFG_FLORDZ, "Ordnungszahl in FML anzeigen",
getFieldEditorParent()));
addField(new BooleanFieldEditor(CFG_MK_INCSTOP,
"In Medikarte bis&mit Stoppdatum anzeigen?", getFieldEditorParent()));
addField(new IntegerFieldEditor(CFG_AKG_HEARTBEAT, "Archiv KG Heartbeat",
getFieldEditorParent()));
addField(new IntegerFieldEditor(CFG_AKG_SCROLLPERIOD, "Archiv KG Scroll Periode [ms]",
getFieldEditorParent()));
addField(new IntegerFieldEditor(CFG_AKG_SCROLLDIST_UP,
"Archiv KG Scroll Distanz hoch [px]", getFieldEditorParent()));
addField(new IntegerFieldEditor(CFG_AKG_SCROLLDIST_DOWN,
"Archiv KG Scroll Distanz runter [px]", getFieldEditorParent()));
}
/**
* @return Konfigurierte Einnahmevorschriften im aktuellen Mandant.
*/
public static String[] getEinnahmevorschriften(){
String s = CoreHub.mandantCfg.get(CFG_EVLISTE, "");
return s.split(",");
}
/**
* @return
*/
public static boolean getOrdnungszahlInFML(){
boolean oz = CoreHub.mandantCfg.get(CFG_FLORDZ, false);
return oz;
}
/**
* @return Sollen in der gefilterten Medikarteansicht auch Medikament angezeigt werden, die das
* aktuelle Datum als Stoppdatum haben?
*/
public static boolean getMedikarteStopdatumInkl(){
return store.getBoolean(CFG_MK_INCSTOP);
}
/**
* @return Heartbeat abstand in Sekunden, fuer die Aktualisierung der ArchivKG-Ansicht.
*/
public int getArchivKGHeartbeat(){
int n = store.getInt(CFG_AKG_HEARTBEAT);
if (n < 1)
n = 1;
return n;
}
/**
* @return Fuer automatisches Scrollen in ArchivKG, Periode in Millisekunden.
*/
public static int getArchivKGScrollPeriod(){
int n = store.getInt(CFG_AKG_SCROLLPERIOD);
if (n < 50)
n = 50;
return n;
}
/**
* @return Fuer automatisches Scrollen in ArchivKG, Scrolldistanz in Pixel
*/
public static int getArchivKGScrollDistUp(){
int n = store.getInt(CFG_AKG_SCROLLDIST_UP);
if (n < 1)
n = 1;
return n;
}
/**
* @return Fuer automatisches Scrollen in ArchivKG, Scrolldistanz in Pixel
*/
public static int getArchivKGScrollDistDown(){
int n = store.getInt(CFG_AKG_SCROLLDIST_DOWN);
if (n < 1)
n = 1;
return n;
}
}