package de.open4me.depot.gui.dialogs;
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import jsq.fetch.factory.Factory;
import jsq.fetcher.history.BaseFetcher;
import org.eclipse.swt.widgets.Composite;
import de.open4me.depot.gui.action.JSQweitereQuellenAction;
import de.willuhn.jameica.gui.Action;
import de.willuhn.jameica.gui.dialogs.AbstractDialog;
import de.willuhn.jameica.gui.input.CheckboxInput;
import de.willuhn.jameica.gui.input.SelectInput;
import de.willuhn.jameica.gui.parts.Button;
import de.willuhn.jameica.gui.parts.ButtonArea;
import de.willuhn.jameica.gui.util.Container;
import de.willuhn.jameica.gui.util.SimpleContainer;
import de.willuhn.jameica.system.OperationCanceledException;
import de.willuhn.util.ApplicationException;
public class KursAktualisierenAnbieterAuswahlDialog extends AbstractDialog
{
private SelectInput anbieter;
protected BaseFetcher bf;
private Boolean speich;
public KursAktualisierenAnbieterAuswahlDialog(int position, String name)
{
super(position);
setTitle(name);
}
/**
* @see de.willuhn.jameica.gui.dialogs.AbstractDialog#paint(org.eclipse.swt.widgets.Composite)
*/
protected void paint(Composite parent) throws Exception
{
Container group = new SimpleContainer(parent);
group.addText("Bitte wählen Sie den Anbeiter für die Kursaktualisierung:", false);
group.addInput(getHistoryKurse());
final CheckboxInput erlaubnis = new CheckboxInput(false);
group.addCheckbox(erlaubnis,
"Hiermit bestätigen sie, dass sie die\n"
+ "Nutzungsbedingungen des Anbieters gelesen haben \n"
+ "und sie zu einer Nutzung berechtigt sind!\n\n");
final CheckboxInput speichern = new CheckboxInput(false);
group.addCheckbox(speichern,
"Aktualisierungseinstellungen speichern und\nbeim nächsten Abruf automatisch nutzen\n");
ButtonArea buttons1 = new ButtonArea();
buttons1.addButton(i18n.tr("Weitere Datenquellen installieren"), new Action() {
@Override
public void handleAction(Object context)
throws ApplicationException {
(new JSQweitereQuellenAction()).handleAction(context);
throw new OperationCanceledException("Abgebrochen");
}
}
,null,true,"dialog-information.png");
buttons1.addButton(i18n.tr("Anbieter Webseite öffnen"), new Action() {
public void handleAction(Object context) throws ApplicationException
{
String url = ((BaseFetcher) anbieter.getValue()).getURL();
try {
Desktop.getDesktop().browse(new URI(url));
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
}
},null,true,"dialog-information.png");
group.addButtonArea(buttons1);
final Button weiterButton = new Button("Weiter", new Action() {
public void handleAction(Object context) throws ApplicationException
{
if ((Boolean) erlaubnis.getValue()) {
bf = (BaseFetcher) anbieter.getValue();
speich = (Boolean) speichern.getValue();
close();
}
}},null ,false, "ok.png");
ButtonArea buttons = new ButtonArea();
buttons.addButton(weiterButton);
buttons.addButton(i18n.tr("Abbrechen"), new Action() {
public void handleAction(Object context) throws ApplicationException
{
throw new OperationCanceledException("Abgebrochen");
}
},null,true,"process-stop.png");
group.addButtonArea(buttons);
}
private SelectInput getHistoryKurse()
{
anbieter = new SelectInput(Factory.getHistoryFetcher(), null);
anbieter.setName("Anbieter");
anbieter.setMandatory(true);
return anbieter;
}
public boolean getSpeichernSetting() {
return speich;
}
@Override
protected Object getData() throws Exception {
return bf;
}
}