package ch.elexis.connector.medicosearch.ui;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
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.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.wb.swt.ResourceManager;
import ch.elexis.connector.medicosearch.MedicosearchUtil;
import ch.elexis.connector.medicosearch.Messages;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.core.ui.preferences.SettingsPreferenceStore;
public class MedicosearchPreferences extends PreferencePage implements IWorkbenchPreferencePage {
public static final String CFG_MEDICOSEARCH_CONFIG = "medicosearch/config";
private Text txtConfigFile;
private Button btnOpen;
private String configFileLocation;
public MedicosearchPreferences(){}
@Override
public void init(IWorkbench workbench){
setPreferenceStore(new SettingsPreferenceStore(CoreHub.globalCfg));
setImageDescriptor(ResourceManager.getPluginImageDescriptor(
"ch.elexis.connector.medicosearch", "icons/medicosearch.png"));
configFileLocation = MedicosearchUtil.getInstance().getConfigurationFilePath();
}
@Override
protected Control createContents(Composite parent){
Composite area = new Composite(parent, SWT.NONE);
area.setLayout(new GridLayout(3, false));
area.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Label lblConfigFile = new Label(area, SWT.NONE);
lblConfigFile.setText(Messages.PrefsConfigFile);
txtConfigFile = new Text(area, SWT.BORDER);
txtConfigFile.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
txtConfigFile.setText(configFileLocation);
txtConfigFile.setEditable(false);
btnOpen = new Button(area, SWT.PUSH);
btnOpen.setText(Messages.PrefsOpenConfig);
btnOpen.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
if (configFileLocation != null) {
// open with system default text editor
Program.findProgram(".txt").execute(configFileLocation);
}
}
});
return null;
}
}