ch.medshare.mediport.MediportClientSetsPrefPage.java Source code

Java tutorial

Introduction

Here is the source code for ch.medshare.mediport.MediportClientSetsPrefPage.java

Source

/*******************************************************************************
 * Copyright (c) 2006-2007, 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.medshare.mediport;

import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Hashtable;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Vector;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;

import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.data.Mandant;
import ch.elexis.data.Query;
import ch.elexis.tarmedprefs.TarmedRequirements;
import ch.elexis.core.ui.util.Log;
import ch.elexis.core.ui.util.SWTHelper;
import ch.medshare.awt.Desktop;
import ch.medshare.mediport.config.Client;
import ch.medshare.mediport.config.ClientParam;
import ch.medshare.mediport.config.ConfigKeys;
import ch.medshare.mediport.config.MPCProperties;
import ch.medshare.mediport.util.MediPortHelper;
import ch.medshare.swt.widgets.DirectoryText;
import ch.medshare.swt.widgets.FileText;
import ch.rgw.tools.ExHandler;

public class MediportClientSetsPrefPage extends MediPortAbstractPrefPage {

    String prefsKey;

    Combo cbMandant;

    // Client Felder
    Group clientComp;

    Combo cbMKey;

    Text txtSenderEan;

    Button cxWieMandant;

    DirectoryText txtSendDir;

    DirectoryText txtReceiveDir;

    DirectoryText txtReceiveTestDir;

    DirectoryText txtErrorDir;

    DirectoryText txtDocStatDir;

    FileText txtPartnerFile;

    // Param Felder
    Group paramComp;

    Combo cbNKey;

    Text txtName;

    DirectoryText txtClientDir;

    Combo cbDocAttr;

    Combo cbDocPrinted;

    Combo cbDistType;

    Combo cbPrintLanguage;

    Text txtTrustCenterEAN;

    Integer currentClientNum;

    Integer currentParamNum;

    Map<String, Mandant> mandantMap = new Hashtable<String, Mandant>();

    private Client mapClientValues(Client mappedClient) {
        if (mappedClient == null) {
            return null;
        }
        mappedClient.setEan(txtSenderEan.getText());
        mappedClient.setSend_dir(txtSendDir.getText());
        mappedClient.setReceive_dir(txtReceiveDir.getText());
        mappedClient.setReceivetest_dir(txtReceiveTestDir.getText());
        mappedClient.setError_dir(txtErrorDir.getText());
        mappedClient.setPartner_file(txtPartnerFile.getText());
        mappedClient.setDocstat_dir(txtDocStatDir.getText());

        return mappedClient;
    }

    private ClientParam mapParamValues(ClientParam mappedParam) {
        if (mappedParam == null) {
            return null;
        }
        mappedParam.setName(txtName.getText());
        mappedParam.setDir(txtClientDir.getText());

        String selDocAttr = cbDocAttr.getItem(cbDocAttr.getSelectionIndex());
        mappedParam.setDocattr(selDocAttr);

        String selDocPrinted = cbDocPrinted.getItem(cbDocPrinted.getSelectionIndex());
        if (LBL_DOC_PRINT_COPY.equals(selDocPrinted)) {
            mappedParam.setDocprinted(ConfigKeys.FALSE);
        } else {
            mappedParam.setDocprinted(ConfigKeys.TRUE);
        }

        String selDistType = cbDistType.getItem(cbDistType.getSelectionIndex());
        if (LBL_DIST_TYPE_A.equals(selDistType)) {
            mappedParam.setDisttype("1"); //$NON-NLS-1$
        } else {
            mappedParam.setDisttype("0"); //$NON-NLS-1$
        }

        String selLanguage = cbPrintLanguage.getItem(cbPrintLanguage.getSelectionIndex());
        if (LBL_LANGUAGE_F.equals(selLanguage)) {
            mappedParam.setPrintlanguage(ConfigKeys.FRENCH);
        } else if (LBL_LANGUAGE_I.equals(selLanguage)) {
            mappedParam.setPrintlanguage(ConfigKeys.ITALIAN);
        } else {
            mappedParam.setPrintlanguage(ConfigKeys.GERMAN);
        }

        mappedParam.setTrustcenterean(txtTrustCenterEAN.getText());

        return mappedParam;
    }

    private Mandant getSelectedMandant() {
        return this.mandantMap.get(cbMandant.getText());
    }

    private Integer getSelectedNum(Combo cbKey) {
        Integer key = null;
        String keyStr = cbKey.getText();
        if (keyStr != null && keyStr.length() > 0) {
            if (!LBL_NEW_KEY.equals(keyStr)) {
                try {
                    key = Integer.parseInt(cbKey.getText());
                } catch (NumberFormatException e) {
                    Log.get(getClass().getName()).log(e.getMessage(), Log.WARNINGS);
                }
            }
        }
        return key;
    }

    private Integer getSelectedClientNum() {
        return getSelectedNum(cbMKey);
    }

    private Integer getSelectedParamNum() {
        return getSelectedNum(cbNKey);
    }

    private void fillMKey(Integer clientNum) {
        String clientNumStr = null;
        if (clientNum != null) {
            Client client = props.getClient(clientNum);
            if (client != null) {
                clientNumStr = clientNum.toString();
            } else {
                clientNum = null;
            }
        }

        cbMKey.removeAll();
        cbMKey.add(LBL_NEW_KEY);
        for (String key : getFreeClientKeys(props, getSelectedMandant(), mandantMap.values())) {
            cbMKey.add(key);
            if (key.equals(clientNumStr)) {
                clientNumStr = null;
            }
        }
        if (clientNum != null) {
            if (clientNumStr != null) {
                cbMKey.add(clientNumStr);
            }
            cbMKey.setText(clientNum.toString());
        } else {
            cbMKey.setText(LBL_NEW_KEY);
        }
        this.currentClientNum = getSelectedClientNum();
    }

    private void fillNKey(Client client, Integer paramNum) {
        String paramNumStr = null;
        if (paramNum != null) {
            paramNumStr = paramNum.toString();
        }

        cbNKey.removeAll();
        cbNKey.add(LBL_NEW_KEY);
        if (client != null) {
            for (Integer key : client.getParamKeys()) {
                cbNKey.add(key.toString());
                if (key.toString().equals(paramNumStr)) {
                    paramNumStr = null;
                }
            }
        }
        if (paramNum == null) {
            cbNKey.select(0);
        } else {
            if (paramNumStr != null) {
                cbNKey.add(paramNumStr);
            }
            cbNKey.setText(paramNum.toString());
        }
        this.currentParamNum = getSelectedParamNum();
    }

    private void fillClient(Mandant mandant, Integer clientNum) {
        Client client = props.getClient(clientNum);
        if (client == null) {
            client = new Client(getPrefString(MediPortAbstractPrefPage.MPC_INSTALL_DIR));
        }
        if ((client.getEan() == null || client.getEan().length() == 0) && mandant != null) {
            client.setEan(TarmedRequirements.getEAN(mandant));
        }

        fillMKey(clientNum);

        String mandantEan = TarmedRequirements.getEAN(mandant);
        String senderEan = client.getEan();
        if (senderEan == null && mandantEan != null) {
            senderEan = mandantEan;
        }
        txtSenderEan.setText(senderEan);
        cxWieMandant.setSelection(
                (mandantEan == null && senderEan == null) || (senderEan != null) && senderEan.equals(mandantEan));
        txtSenderEan.setEnabled(!cxWieMandant.getSelection());

        txtSendDir.setText(client.getSend_dir());
        txtReceiveDir.setText(client.getReceive_dir());
        txtReceiveTestDir.setText(client.getReceivetest_dir());
        txtErrorDir.setText(client.getError_dir());
        txtDocStatDir.setText(client.getDocstat_dir());
        txtPartnerFile.setText(client.getPartner_file());

        Integer firstParamKey = null;
        if (client.getParamKeys().size() > 0) {
            firstParamKey = client.getParamKeys().get(0);
        }
        fillParam(clientNum, firstParamKey);
    }

    private void fillParam(Integer clientNum, Integer paramNum) {
        Client client = props.getClient(clientNum);
        ClientParam param = new ClientParam(Messages.getString("MediportClientSetsPrefPage.default.paramName")); //$NON-NLS-1$
        if (client != null && paramNum != null) {
            param = client.getParam(paramNum);
        }

        fillNKey(client, paramNum);

        txtName.setText(param.getName());
        txtClientDir.setText(param.getDir());
        cbDocAttr.setText(param.getDocattr());
        if (ConfigKeys.TRUE.equals(param.getDocprinted())) {
            cbDocPrinted.select(0);
        } else {
            cbDocPrinted.select(1);
        }

        if ("0".equals(param.getDisttype())) { // B-Post //$NON-NLS-1$
            cbDistType.select(0);
        } else {
            cbDistType.select(1);
        }

        if (ConfigKeys.FRENCH.equals(param.getPrintlanguage())) {
            cbPrintLanguage.select(1);
        } else if (ConfigKeys.ITALIAN.equals(param.getPrintlanguage())) {
            cbPrintLanguage.select(2);
        } else {
            cbPrintLanguage.select(0);
        }

        txtTrustCenterEAN.setText(param.getTrustcenterean());
    }

    private void writeClient() {
        Integer clientNum = this.currentClientNum;
        Client client = null;
        if (clientNum != null) {
            client = props.getClient(clientNum);
        }
        if (client == null) {
            client = new Client(getPrefString(MediPortAbstractPrefPage.MPC_INSTALL_DIR));
            clientNum = props.addNewClient(client);
            fillMKey(clientNum);
        }
        mapClientValues(client);
        putPrefString(prefsKey, String.valueOf(clientNum));
        storePrefs();
    }

    private void writeParam() {
        Integer clientNum = this.currentClientNum;
        ClientParam param = new ClientParam(""); //$NON-NLS-1$
        if (clientNum != null) {
            Client client = props.getClient(clientNum);
            Integer paramNum = this.currentParamNum;
            if (paramNum != null) {
                param = client.getParam(paramNum);
            } else {
                paramNum = client.addNewParam(param);
                fillNKey(client, paramNum);
            }
        }

        mapParamValues(param);
    }

    private boolean storeParam() {
        writeParam();

        try {
            props.store();
        } catch (IOException ex) {
            ExHandler.handle(ex);
            MessageDialog.openError(getShell(),
                    Messages.getString("MediportClientSetsPrefPage.error.title.saveConfig"), ex //$NON-NLS-1$
                            .getMessage());
            return false;
        }

        return true;
    }

    protected boolean storeAll() {
        if (props != null) {
            writeClient();

            return storeParam();
        }
        return true;
    }

    private void clientChanged() {
        // Zuerst aktuelle Werte speichern
        if (this.currentClientNum != null) {
            Client client = props.getClient(this.currentClientNum);
            client = mapClientValues(client);
            if (client != null && client.hasChanged()) {
                storeAll();
            }
        }

        Integer clientNum = getSelectedClientNum();
        Mandant mandant = getSelectedMandant();
        prefsKey = MediPortHelper.getMandantPrefix(mandant.getLabel());
        String numString = getPrefString(prefsKey);
        if (numString != null && numString.length() > 0) {
            clientNum = Integer.parseInt(numString);
        }

        fillClient(mandant, clientNum);
    }

    private void mKeyChanged() {
        // Zuerst aktuelle Werte speichern
        if (this.currentClientNum != null) {
            Client client = props.getClient(this.currentClientNum);
            client = mapClientValues(client);
            if (client != null && client.hasChanged()) {
                storeAll();
            }
        }
        this.currentClientNum = getSelectedClientNum();
        fillClient(getSelectedMandant(), this.currentClientNum);
    }

    private void nKeyChanged() {
        // Zuerst aktuelle Werte speichern
        Integer clientNum = getSelectedClientNum();
        if (clientNum != null && this.currentParamNum != null) {
            Client client = props.getClient(clientNum);
            ClientParam param = client.getParam(this.currentParamNum);
            param = mapParamValues(param);
            if (param != null && param.hasChanged()) {
                storeAll();
            }
        }

        this.currentParamNum = getSelectedParamNum();
        fillParam(clientNum, this.currentParamNum);
    }

    private List<String> getFreeClientKeys(MPCProperties props, Mandant currentMandant,
            Collection<Mandant> mandanten) {
        // Zugeordnete Mandanten lesen
        List<String> allocatedKeyList = new Vector<String>();
        for (Mandant m : mandanten) {
            if (!m.equals(currentMandant)) {
                String key = getPrefString(MediPortHelper.getMandantPrefix(m.getLabel()));
                if (key != null && key.length() > 0) {
                    allocatedKeyList.add(key);
                }
            }
        }
        List<String> retList = new Vector<String>();
        for (Integer key : props.getClientKeys()) {
            String keyStr = key.toString();
            if (!allocatedKeyList.contains(keyStr)) {
                retList.add(keyStr);
            }
        }

        return retList;
    }

    @Override
    protected Control createContents(Composite parent) {
        if (props != null) {
            Composite comp = new Composite(parent, SWT.NONE);
            comp.setLayout(new GridLayout(2, false));
            cbMandant = new Combo(comp, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.FILL);
            cbMandant.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            // Client
            clientComp = new Group(comp, SWT.NONE);
            clientComp.setText(Messages.getString("MediportClientSetsPrefPage.lbl.title.config")); //$NON-NLS-1$
            clientComp.setLayout(new GridLayout(3, false));
            clientComp.setLayoutData(SWTHelper.getFillGridData(3, true, 1, true));

            Label lblMKey = new Label(clientComp, SWT.NONE);
            lblMKey.setText(Messages.getString("MediportClientSetsPrefPage.lbl.mKey")); //$NON-NLS-1$
            cbMKey = new Combo(clientComp, SWT.DROP_DOWN | SWT.READ_ONLY);
            cbMKey.setLayoutData(SWTHelper.getFillGridData(2, false, 1, false));

            Label lblEan = new Label(clientComp, SWT.NONE);
            lblEan.setText(Messages.getString("MediportClientSetsPrefPage.lbl.SenderEAN")); //$NON-NLS-1$
            txtSenderEan = new Text(clientComp, SWT.BORDER);
            txtSenderEan.setEnabled(false);
            txtSenderEan.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            cxWieMandant = new Button(clientComp, SWT.CHECK);
            cxWieMandant.setText(Messages.getString("MediportClientSetsPrefPage.lbl.WieMandant")); //$NON-NLS-1$

            Label lblSendDir = new Label(clientComp, SWT.NONE);
            lblSendDir.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Sendeverzeichnis")); //$NON-NLS-1$
            txtSendDir = new DirectoryText(clientComp, SWT.BORDER);
            txtSendDir.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Label lblReceiveDir = new Label(clientComp, SWT.NONE);
            lblReceiveDir.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Empfangsverzeichnis")); //$NON-NLS-1$
            txtReceiveDir = new DirectoryText(clientComp, SWT.BORDER);
            txtReceiveDir.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Label lblReceiveTestDir = new Label(clientComp, SWT.NONE);
            lblReceiveTestDir.setText(Messages.getString("MediportClientSetsPrefPage.lbl.EmpfangsverzeichnisTest")); //$NON-NLS-1$
            txtReceiveTestDir = new DirectoryText(clientComp, SWT.BORDER);
            txtReceiveTestDir.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Label lblErrorDir = new Label(clientComp, SWT.NONE);
            lblErrorDir.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Fehlerverzeichnis")); //$NON-NLS-1$
            txtErrorDir = new DirectoryText(clientComp, SWT.BORDER);
            txtErrorDir.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Label lblDocStatDir = new Label(clientComp, SWT.NONE);
            lblDocStatDir.setText(Messages.getString("MediportClientSetsPrefPage.lbl.DokumentstatusVerzeichnis")); //$NON-NLS-1$
            txtDocStatDir = new DirectoryText(clientComp, SWT.BORDER);
            txtDocStatDir.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Label lblPartnerFile = new Label(clientComp, SWT.NONE);
            lblPartnerFile.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Partnerfile")); //$NON-NLS-1$
            txtPartnerFile = new FileText(clientComp, SWT.BORDER);
            txtPartnerFile.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Button btnPartnerFile = new Button(clientComp, SWT.PUSH);
            btnPartnerFile.setText(Messages.getString("MediportClientSetsPrefPage.btn.PartnerinfoAnzeigen")); //$NON-NLS-1$
            btnPartnerFile.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            // Parameter-Set
            paramComp = new Group(clientComp, SWT.NONE);
            paramComp.setText(Messages.getString("MediportClientSetsPrefPage.lbl.title.Parameter")); //$NON-NLS-1$
            paramComp.setLayout(new GridLayout(3, false));
            paramComp.setLayoutData(SWTHelper.getFillGridData(3, true, 1, true));

            Label lblNKey = new Label(paramComp, SWT.NONE);
            lblNKey.setText(Messages.getString("MediportClientSetsPrefPage.lbl.nKey")); //$NON-NLS-1$
            cbNKey = new Combo(paramComp, SWT.DROP_DOWN | SWT.READ_ONLY);
            cbNKey.setLayoutData(SWTHelper.getFillGridData(2, false, 1, false));

            Label lblParam = new Label(paramComp, SWT.NONE);
            lblParam.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Bezeichnung")); //$NON-NLS-1$
            txtName = new Text(paramComp, SWT.BORDER);
            txtName.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));

            Label lblClientDir = new Label(paramComp, SWT.NONE);
            lblClientDir.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Ausgabeverzeichnis")); //$NON-NLS-1$
            txtClientDir = new DirectoryText(paramComp, SWT.BORDER);
            txtClientDir.setLayoutData(SWTHelper.getFillGridData(1, true, 1, false));

            Label lblDocAttr = new Label(paramComp, SWT.NONE);
            lblDocAttr.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Workflow")); //$NON-NLS-1$
            cbDocAttr = new Combo(paramComp, SWT.BORDER | SWT.READ_ONLY);
            cbDocAttr.add(TIER_PAYANT);
            cbDocAttr.add(TIER_GARANT_MANUELL);
            cbDocAttr.add(TIER_GARANT_DIRECT);
            cbDocAttr.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));

            Label lblDocPrinted = new Label(paramComp, SWT.NONE);
            lblDocPrinted.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Rechnungskopie")); //$NON-NLS-1$
            cbDocPrinted = new Combo(paramComp, SWT.BORDER | SWT.READ_ONLY);
            cbDocPrinted.add(LBL_DOC_NO_PRINT);
            cbDocPrinted.add(LBL_DOC_PRINT_COPY);
            cbDocPrinted.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));

            Label lblDistType = new Label(paramComp, SWT.NONE);
            lblDistType.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Versandart")); //$NON-NLS-1$
            cbDistType = new Combo(paramComp, SWT.BORDER | SWT.READ_ONLY);
            cbDistType.add(LBL_DIST_TYPE_B);
            cbDistType.add(LBL_DIST_TYPE_A);
            cbDistType.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));

            Label lblPrintLanguage = new Label(paramComp, SWT.NONE);
            lblPrintLanguage.setText(Messages.getString("MediportClientSetsPrefPage.lbl.Drucksprache")); //$NON-NLS-1$
            cbPrintLanguage = new Combo(paramComp, SWT.BORDER | SWT.READ_ONLY);
            cbPrintLanguage.add(LBL_LANGUAGE_D);
            cbPrintLanguage.add(LBL_LANGUAGE_F);
            cbPrintLanguage.add(LBL_LANGUAGE_I);
            cbPrintLanguage.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));

            Label lblTrustEan = new Label(paramComp, SWT.NONE);
            lblTrustEan.setText(Messages.getString("MediportClientSetsPrefPage.lbl.TrustcenterEAN")); //$NON-NLS-1$
            txtTrustCenterEAN = new Text(paramComp, SWT.BORDER);
            txtTrustCenterEAN.setLayoutData(SWTHelper.getFillGridData(2, true, 1, false));

            // Events
            cbMandant.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    clientChanged();
                }
            });

            cbMKey.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    mKeyChanged();
                }
            });

            cxWieMandant.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    txtSenderEan.setEnabled(!cxWieMandant.getSelection());
                    txtSenderEan.setText(TarmedRequirements.getEAN(getSelectedMandant()));
                }
            });

            cbNKey.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    nKeyChanged();
                }
            });

            btnPartnerFile.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    try {
                        File partnerFile = new File(txtPartnerFile.getText());
                        Desktop.open(partnerFile);
                    } catch (Exception ex) {
                        ExHandler.handle(ex);
                        MessageDialog.openError(getShell(),
                                Messages.getString("MediportClientSetsPrefPage.error.msg.PartnerdateiOeffnen"), //$NON-NLS-1$
                                ex.getMessage());
                    }
                }
            });

            // Data
            Query<Mandant> qbe = new Query<Mandant>(Mandant.class);
            List<Mandant> list = qbe.execute();
            for (Mandant m : list) {
                cbMandant.add(m.getLabel());
                mandantMap.put(m.getLabel(), m);
            }
            final String actMandantLabel = CoreHub.actMandant.getLabel();
            cbMandant.setText(actMandantLabel);

            cxWieMandant.setSelection(true);
            cbDocAttr.select(0);
            cbDocPrinted.select(0);
            cbDistType.select(0);
            String defaultLang = Locale.getDefault().getLanguage();
            if (Locale.FRENCH.getLanguage().equals(defaultLang)) {
                cbPrintLanguage.select(1);
            } else if (Locale.ITALIAN.getLanguage().equals(defaultLang)) {
                cbPrintLanguage.select(2);
            } else {
                cbPrintLanguage.select(0);
            }

            clientChanged();

            return comp;
        } else {
            Composite form = new Composite(parent, SWT.NONE);
            form.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
            form.setLayout(new FillLayout());
            new Label(form, SWT.WRAP)
                    .setText(Messages.getString("MediportClientSetsPrefPage.error.msg.missingConfiguration")); //$NON-NLS-1$
            return form;
        }
    }

    @Override
    protected void showReloadInfo() {
        if (props != null) {
            MessageDialog.openInformation(getShell(),
                    Messages.getString("MediportClientSetsPrefPage.info.title.MediPortCommunicator"), //$NON-NLS-1$
                    Messages.getString("MediportClientSetsPrefPage.info.reloadInfo1") //$NON-NLS-1$
                            + Messages.getString("MediportClientSetsPrefPage.info.reloadInfo2")); //$NON-NLS-1$
        }
    }

    public void init(IWorkbench workbench) {
        setMessage(Messages.getString("MediportClientSetsPrefPage.message")); //$NON-NLS-1$
    }

}