package de.flower.rmt.ui.panel; import de.flower.rmt.model.db.entity.event.Event; import de.flower.rmt.service.IICalendarProvider; import de.flower.rmt.service.mail.ICalendarHelper; import org.apache.wicket.injection.Injector; import org.apache.wicket.markup.html.link.ResourceLink; import org.apache.wicket.model.IModel; import org.apache.wicket.request.resource.ByteArrayResource; import org.apache.wicket.spring.injection.annot.SpringBean; /** * @author flowerrrr */ public class DownloadIcsLink extends ResourceLink { public DownloadIcsLink(final String id, final IModel<Event> model, String filename) { super(id, new ICalendarResource(model, filename)); } public static class ICalendarResource extends ByteArrayResource { @SpringBean private IICalendarProvider iCalendarProvider; private IModel<Event> model; public ICalendarResource(final IModel<Event> model, final String filename) { super(ICalendarHelper.CONTENT_TYPE_HTTP, null, filename); this.model = model; Injector.get().inject(this); } @Override protected byte[] getData(final Attributes attributes) { return ICalendarHelper.getBytes(iCalendarProvider.getICalendar(model.getObject())); } } }