/*******************************************************************************
* Copyright (c) 2008-2011, G. Weirich and Elexis
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* G. Weirich - initial implementation
*
*******************************************************************************/
package ch.elexis.core.ui.contacts.preferences;
import static ch.elexis.core.ui.constants.UiPreferenceConstants.USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_CLOSED;
import static ch.elexis.core.ui.constants.UiPreferenceConstants.USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_OPEN;
import static ch.elexis.core.ui.constants.UiPreferenceConstants.USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_REMEMBER_STATE;
import static ch.elexis.core.ui.constants.UiPreferenceConstants.USERSETTINGS2_EXPANDABLE_COMPOSITES;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import ch.elexis.core.constants.Preferences;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.core.ui.constants.UiResourceConstants;
import ch.elexis.core.ui.contacts.views.Patientenblatt2;
import ch.elexis.core.ui.preferences.Messages;
import ch.elexis.core.ui.preferences.SettingsPreferenceStore;
import ch.elexis.core.ui.preferences.inputs.ComboFieldEditor;
import ch.elexis.core.ui.preferences.inputs.MultilineFieldEditor;
import ch.elexis.core.ui.util.SWTHelper;
import ch.elexis.data.Patient;
import ch.rgw.tools.StringTool;
public class UserSettings2 extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public static final String REMEMBER_LAST_STATE = Messages.UserSettings2_RememberLastState;
public static final String ALWAYS_CLOSED = Messages.UserSettings2_AlwaysClosed;
public static final String ALWAYS_OPEN = Messages.UserSettings2_AlwaysOpen;
private SettingsPreferenceStore prefs = new SettingsPreferenceStore(CoreHub.userCfg);
private static final String[] patlistFocusFields = {
Patient.FLD_PATID, Patient.FLD_NAME, Patient.FLD_FIRSTNAME, Patient.BIRTHDATE,
};
public UserSettings2(){
super(GRID);
setPreferenceStore(prefs);
prefs.setDefault(USERSETTINGS2_EXPANDABLE_COMPOSITES,
USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_REMEMBER_STATE);
prefs.setDefault(Preferences.USR_PATLIST_SHOWPATNR, false);
prefs.setDefault(Preferences.USR_PATLIST_SHOWNAME, true);
prefs.setDefault(Preferences.USR_PATLIST_SHOWFIRSTNAME, true);
prefs.setDefault(Preferences.USR_PATLIST_SHOWDOB, true);
}
@Override
protected void createFieldEditors(){
addField(new RadioGroupFieldEditor(USERSETTINGS2_EXPANDABLE_COMPOSITES,
Messages.UserSettings2_ExtendableFields, 1, new String[][] {
{
ALWAYS_OPEN, USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_OPEN
}, {
ALWAYS_CLOSED, USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_CLOSED
}, {
REMEMBER_LAST_STATE, USERSETTINGS2_EXPANDABLECOMPOSITE_STATE_REMEMBER_STATE
}
}, getFieldEditorParent()));
new Label(getFieldEditorParent(), SWT.SEPARATOR | SWT.HORIZONTAL).setLayoutData(SWTHelper
.getFillGridData(2, true, 1, false));
new Label(getFieldEditorParent(), SWT.NONE).setText(Messages.UserSettings2_FieldsInList);
addField(new BooleanFieldEditor(Preferences.USR_PATLIST_SHOWPATNR,
Messages.UserSettings2_PatientNr, getFieldEditorParent()));
addField(new BooleanFieldEditor(Preferences.USR_PATLIST_SHOWNAME,
Messages.UserSettings2_PatientName, getFieldEditorParent()));
addField(new BooleanFieldEditor(Preferences.USR_PATLIST_SHOWFIRSTNAME,
Messages.UserSettings2_PatientFirstname, getFieldEditorParent()));
addField(new BooleanFieldEditor(Preferences.USR_PATLIST_SHOWDOB,
Messages.UserSettings2_Birthdate, getFieldEditorParent()));
addField(new ComboFieldEditor(Preferences.USR_PATLIST_FOCUSFIELD, "Fokusfeld",
patlistFocusFields, getFieldEditorParent()));
new Label(getFieldEditorParent(), SWT.SEPARATOR | SWT.HORIZONTAL).setLayoutData(SWTHelper
.getFillGridData(2, true, 1, false));
new Label(getFieldEditorParent(), SWT.NONE)
.setText(Messages.UserSettings2_AddidtionalFields);
addField(new MultilineFieldEditor(Patientenblatt2.CFG_EXTRAFIELDS, StringTool.leer, 5,
SWT.NONE, true, getFieldEditorParent()));
}
public void init(IWorkbench workbench){
// TODO Auto-generated method stub
}
@Override
public boolean performOk(){
prefs.flush();
CoreHub.userCfg.flush();
SWTHelper.reloadViewPart(UiResourceConstants.PatientenListeView_ID);
return super.performOk();
}
}