package ch.docbox.elexis;
import org.eclipse.jface.dialogs.Dialog;
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.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.docbox.ws.client.WsClientConfig;
public class CertificateConfigDialog extends Dialog {
private Text certFileText;
private Button certFileBtn;
private Text certPass;
protected CertificateConfigDialog(Shell parentShell){
super(parentShell);
}
@Override
protected Control createDialogArea(Composite parent){
Composite container = (Composite) super.createDialogArea(parent);
container.setLayout(new GridLayout(2, false));
Label lbl = new Label(container, SWT.NONE);
lbl.setText("Zertifikat");
Composite fileChooser = new Composite(container, SWT.NONE);
fileChooser.setLayout(new GridLayout(2, false));
fileChooser.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
certFileText = new Text(fileChooser, SWT.BORDER);
certFileText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
certFileBtn = new Button(fileChooser, SWT.PUSH);
certFileBtn.setText("...");
certFileBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
FileDialog dlg = new FileDialog(getShell());
String path = dlg.open();
if (path != null) {
certFileText.setText(path);
}
}
});
lbl = new Label(container, SWT.NONE);
lbl.setText("Passwort");
certPass = new Text(container, SWT.PASSWORD | SWT.BORDER);
certPass.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
fromConfig();
return container;
}
@Override
protected void okPressed(){
toConfig();
super.okPressed();
}
private void fromConfig(){
certFileText.setText(WsClientConfig.getP12Path());
certPass.setText(WsClientConfig.getP12Password());
}
private void toConfig(){
CoreHub.mandantCfg.set(WsClientConfig.USR_DEFDOCBOXP12PATH, certFileText.getText());
CoreHub.mandantCfg.set(WsClientConfig.USR_DEFDOCBOXP12PASSWORD, certPass.getText());
}
@Override
protected void configureShell(Shell newShell){
super.configureShell(newShell);
newShell.setText("Zertifikat");
}
}