package ch.elexis.core.ui.dialogs;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
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.Shell;
import org.eclipse.swt.widgets.Text;
import ch.elexis.core.ui.util.SWTHelper;
public class TextTemplateImportConflictDialog extends TitleAreaDialog {
private String name;
private Button btnReplace, btnChangeName, btnSkip;
private Text txtNewName;
private String newFilename;
private boolean replaceTemplate, changeTemplateName, skipTemplate;
public TextTemplateImportConflictDialog(Shell parentShell, String name){
super(parentShell);
this.name = name;
}
@Override
protected Control createDialogArea(Composite parent){
Composite area = new Composite(parent, SWT.NONE);
area.setLayout(new GridLayout(1, false));
area.setLayoutData(SWTHelper.getFillGridData(1, true, 1, true));
setMessage("Eine Vorlage mit dem Namen '" + name
+ "' besteht bereits. Wie soll vorgegangen werden?");
setTitle("Vorlage existiert bereits");
btnReplace = new Button(area, SWT.RADIO);
btnReplace.setText("Ersetzen (Bestehende Vorlage wird überschrieben)");
btnReplace.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
clearAndDisableTextField();
}
});
btnChangeName = new Button(area, SWT.RADIO);
btnChangeName.setText("Name der Vorlage ändern zu");
btnChangeName.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
txtNewName.setEnabled(true);
}
});
txtNewName = new Text(area, SWT.BORDER);
txtNewName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
txtNewName.setEnabled(false);
btnSkip = new Button(area, SWT.RADIO);
btnSkip.setText("Vorlage nicht importieren");
btnSkip.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
clearAndDisableTextField();
}
});
return area;
}
@Override
protected void createButtonsForButtonBar(Composite parent){
createButton(parent, IDialogConstants.OK_ID, "OK", true);
}
private void clearAndDisableTextField(){
txtNewName.setText("");
txtNewName.setEnabled(false);
}
@Override
protected void okPressed(){
if (btnChangeName.getSelection()) {
if (txtNewName.getText().isEmpty()) {
SWTHelper.alert("Fehlende Bezeichnung",
"Neuer Name der Vorlage muss definiert werden!");
return;
}
this.newFilename = txtNewName.getText();
}
replaceTemplate = btnReplace.getSelection();
changeTemplateName = btnChangeName.getSelection();
skipTemplate = btnSkip.getSelection();
super.okPressed();
}
@Override
protected boolean canHandleShellCloseEvent(){
return false;
}
public boolean doReplaceTemplate(){
return replaceTemplate;
}
public boolean doChangeTemplateName(){
return changeTemplateName;
}
public boolean doSkipTemplate(){
return skipTemplate;
}
public String getNewName(){
return newFilename;
}
}