package ch.elexis.labor.medics.v2;
import java.net.MalformedURLException;
import java.net.URL;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.core.ui.preferences.SettingsPreferenceStore;
/**
* Einstellungen für Medics Plugin
*
* @author immi
*/
public class MedicsPreferencePage extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
public static final String DOWNLOAD_DIR = "medics/download"; //$NON-NLS-1$
public static final String UPLOAD_DIR = "medics/upload"; //$NON-NLS-1$
public static final String IMED_DIR = "medics/uploadimed"; //$NON-NLS-1$
public static final String ARCHIV_DIR = "medics/archiv"; //$NON-NLS-1$
public static final String ERROR_DIR = "medics/error"; //$NON-NLS-1$
public static final String I_MED_URL = "medics/imed/url"; //$NON-NLS-1$
public static final String BROWSER_EXTERN = "medics/imed/extern"; //$NON-NLS-1$
public static final String DOKUMENT_CATEGORY = "medics/extern"; //$NON-NLS-1$
public static final String DELETE_ARCHIV_DAYS = "medics/del_archiv/days"; //$NON-NLS-1$
private static final String DEFAULT_DOWNLOAD = ""; //$NON-NLS-1$
private static final String DEFAULT_UPLOAD = ""; //$NON-NLS-1$
private static final String DEFAULT_IMED = ""; //$NON-NLS-1$
private static final String DEFAULT_ARCHIV = ""; //$NON-NLS-1$
private static final String DEFAULT_MEDICS_URL = Messages.MedicsPreferencePage_defaultMedicsUrl;
private static final boolean DEFAULT_BROWSER_EXTERN = false;
private static final String DEFAULT_DOKUMENT_CATEGORY =
Messages.MedicsPreferencePage_documentCategoryName;
private static final int DEFAULT_DELETE_ARCHIV_DAYS = 30;
public MedicsPreferencePage(){
super(GRID);
setPreferenceStore(new SettingsPreferenceStore(CoreHub.localCfg));
getPreferenceStore().setDefault(DOWNLOAD_DIR, DEFAULT_DOWNLOAD);
getPreferenceStore().setDefault(UPLOAD_DIR, DEFAULT_UPLOAD);
getPreferenceStore().setDefault(IMED_DIR, DEFAULT_IMED);
getPreferenceStore().setDefault(ARCHIV_DIR, DEFAULT_ARCHIV);
getPreferenceStore().setDefault(I_MED_URL, DEFAULT_MEDICS_URL);
getPreferenceStore().setDefault(BROWSER_EXTERN, DEFAULT_BROWSER_EXTERN);
getPreferenceStore().setDefault(DOKUMENT_CATEGORY, DEFAULT_DOKUMENT_CATEGORY);
getPreferenceStore().setDefault(DELETE_ARCHIV_DAYS, DEFAULT_DELETE_ARCHIV_DAYS);
}
@Override
protected void createFieldEditors(){
addField(new DirectoryFieldEditor(DOWNLOAD_DIR,
Messages.MedicsPreferencePage_labelDownloadDir, getFieldEditorParent()));
addField(new DirectoryFieldEditor(UPLOAD_DIR, Messages.MedicsPreferencePage_labelUploadDir,
getFieldEditorParent()));
addField(new DirectoryFieldEditor(IMED_DIR,
Messages.MedicsPreferencePage_labelUploadDirimed, getFieldEditorParent()));
addField(new DirectoryFieldEditor(ARCHIV_DIR, Messages.MedicsPreferencePage_labelArchivDir,
getFieldEditorParent()));
addField(new DirectoryFieldEditor(ERROR_DIR, Messages.MedicsPreferencePage_labelErrorDir,
getFieldEditorParent()));
addField(new StringFieldEditor(DOKUMENT_CATEGORY,
Messages.MedicsPreferencePage_labelDocumentCategory, getFieldEditorParent()));
addField(new StringFieldEditor(DELETE_ARCHIV_DAYS, "Archiv bereinigen (Tage)",
getFieldEditorParent()));
}
@Override
public void init(IWorkbench workbench){}
public static String getUploadDir(){
return CoreHub.localCfg.get(UPLOAD_DIR, DEFAULT_UPLOAD);
}
public static String getUploadDirimed(){
return CoreHub.localCfg.get(IMED_DIR, DEFAULT_IMED);
}
public static String getDownloadDir(){
return CoreHub.localCfg.get(DOWNLOAD_DIR, DEFAULT_DOWNLOAD);
}
public static String getArchivDir(){
return CoreHub.localCfg.get(ARCHIV_DIR, DEFAULT_ARCHIV);
}
public static String getErrorDir(){
return CoreHub.localCfg.get(ERROR_DIR, null);
}
public static int getDeleteArchivDays(){
return CoreHub.localCfg.get(DELETE_ARCHIV_DAYS, DEFAULT_DELETE_ARCHIV_DAYS);
}
public static URL getIMedUrl() throws MalformedURLException{
String urlStr = CoreHub.localCfg.get(I_MED_URL, DEFAULT_MEDICS_URL);
if (!urlStr.startsWith("http")) { //$NON-NLS-1$
urlStr += "http://" + urlStr; //$NON-NLS-1$
}
return new URL(urlStr);
}
public static boolean showExtern(){
return CoreHub.localCfg.get(BROWSER_EXTERN, DEFAULT_BROWSER_EXTERN);
}
public static String getDokumentKategorie(){
return CoreHub.localCfg.get(DOKUMENT_CATEGORY, DEFAULT_DOKUMENT_CATEGORY);
}
}