Support 'webcal' urls (replace with 'http')
[ical-validator.git] / src / main / java / net / bzzt / ical / UrlFormPanel.java
blobb666a1aadc1e587ed980ea3b5d53ce3bcab52f73
1 package net.bzzt.ical;
3 import org.apache.commons.httpclient.URI;
4 import org.apache.commons.httpclient.URIException;
5 import org.apache.wicket.PageParameters;
6 import org.apache.wicket.markup.html.form.Form;
7 import org.apache.wicket.markup.html.form.TextField;
8 import org.apache.wicket.markup.html.panel.Panel;
9 import org.apache.wicket.model.CompoundPropertyModel;
11 public class UrlFormPanel extends Panel {
12 /**
15 private static final long serialVersionUID = 1L;
17 public class UrlForm extends Form<UrlForm> {
19 /**
22 private static final long serialVersionUID = 1L;
24 private URI url;
26 public UrlForm(String id, URI url) {
27 super(id);
28 this.url = url;
29 setDefaultModel(new CompoundPropertyModel<UrlForm>(this));
31 add(new TextField<URI>("url"));
34 /* (non-Javadoc)
35 * @see org.apache.wicket.markup.html.form.Form#onSubmit()
37 @Override
38 protected void onSubmit() {
39 URI uri = UrlForm.this.getModelObject().url;
41 if ("webcal".equals(uri.getScheme()))
43 try {
44 uri = new URI(uri.toString().replace("webcal", "http"), false);
45 } catch (Exception e) {
46 throw new RuntimeException(e);
50 PageParameters parameters = new PageParameters();
51 parameters.add("url", uri.toString());
52 setResponsePage(UrlValidationPage.class, parameters);
56 public UrlFormPanel(String id)
58 super(id);
59 add(new UrlForm("urlForm", null));
62 public UrlFormPanel(String id, URI url)
64 super(id);
65 add(new UrlForm("urlForm", url));