/*******************************************************************************
* Copyright (c) 2005-2008, 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.agenda.preferences;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import ch.elexis.agenda.Messages;
import ch.elexis.agenda.data.Termin;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.core.ui.preferences.SettingsPreferenceStore;
import ch.elexis.core.ui.preferences.inputs.MultilineFieldEditor;
import ch.elexis.core.ui.util.SWTHelper;
import ch.rgw.tools.StringTool;
public class AgendaDefinitionen extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
SettingsPreferenceStore prefs = new SettingsPreferenceStore(CoreHub.globalCfg);
Button btnAvoidDoubleBooking;
public AgendaDefinitionen(){
super(GRID);
prefs.setDefault(PreferenceConstants.AG_TERMINTYPEN,
StringTool.join(Termin.TerminTypes, ",")); //$NON-NLS-1$
prefs.setDefault(PreferenceConstants.AG_TERMINSTATUS,
StringTool.join(Termin.TerminStatus, ",")); //$NON-NLS-1$
prefs.setDefault(PreferenceConstants.AG_AVOID_PATIENT_DOUBLE_BOOKING,
PreferenceConstants.AG_AVOID_PATIENT_DOUBLE_BOOKING_DEFAULT);
setPreferenceStore(prefs);
setDescription(Messages.AgendaDefinitionen_defForAgenda);
}
@Override
protected void createFieldEditors(){
addField(new MultilineFieldEditor(PreferenceConstants.AG_BEREICHE,
Messages.AgendaDefinitionen_shortCutsForBer, 5, SWT.V_SCROLL, true,
getFieldEditorParent()));
addField(new MultilineFieldEditor(PreferenceConstants.AG_TERMINTYPEN,
Messages.AgendaDefinitionen_enterTypes, 5, SWT.V_SCROLL, true, getFieldEditorParent()));
addField(new MultilineFieldEditor(PreferenceConstants.AG_TERMINSTATUS,
Messages.AgendaDefinitionen_states, 5, SWT.V_SCROLL, true, getFieldEditorParent()));
/*
* addField(new StringListFieldEditor(PreferenceConstants.AG_BEREICHE,
* Messages.AgendaDefinitionen_shortCutsForBer, Messages.AgendaDefinitionen_enterNames +
* Messages.AgendaDefinitionen_5,
* Messages.AgendaDefinitionen_ranges,getFieldEditorParent()));
*
* addField(new StringListFieldEditor(PreferenceConstants.AG_TERMINTYPEN,
* Messages.AgendaDefinitionen_enterTypes, Messages.AgendaDefinitionen_enterTypeList,
* Messages.AgendaDefinitionen_types,getFieldEditorParent()));
*
* addField(new StringListFieldEditor(PreferenceConstants.AG_TERMINSTATUS,
* Messages.AgendaDefinitionen_states,Messages.AgendaDefinitionen_enterStates+
* Messages.AgendaDefinitionen_12,Messages.AgendaDefinitionen_state
* ,getFieldEditorParent()));
*/
}
@Override
protected Control createContents(Composite parent){
// create the field editors by calling super
Control superParent = super.createContents(parent);
Composite feParent = getFieldEditorParent();
new Label(feParent, SWT.NONE);
Label separator = new Label(feParent, SWT.HORIZONTAL | SWT.SEPARATOR);
GridData separatorGridData = new GridData();
separatorGridData.horizontalSpan = 3;
separatorGridData.grabExcessHorizontalSpace = true;
separatorGridData.horizontalAlignment = GridData.FILL;
separatorGridData.verticalIndent = 0;
separator.setLayoutData(separatorGridData);
btnAvoidDoubleBooking = new Button(feParent, SWT.CHECK);
btnAvoidDoubleBooking.setLayoutData(SWTHelper.getFillGridData(3, true, 1, false));
btnAvoidDoubleBooking.setText(Messages.AgendaDefinitionen_AvoidPatientDoubleBooking);
btnAvoidDoubleBooking.setSelection(CoreHub.localCfg.get(
PreferenceConstants.AG_AVOID_PATIENT_DOUBLE_BOOKING,
PreferenceConstants.AG_AVOID_PATIENT_DOUBLE_BOOKING_DEFAULT));
return superParent;
}
@Override
public boolean performOk(){
CoreHub.localCfg.set(PreferenceConstants.AG_AVOID_PATIENT_DOUBLE_BOOKING,
btnAvoidDoubleBooking.getSelection());
CoreHub.localCfg.flush();
prefs.flush();
return super.performOk();
}
public void init(IWorkbench workbench){
// TODO Auto-generated method stub
}
}