new layout based on jquery, icons from 'iconic' set
[ical-aggregator.git] / src / main / java / net / bzzt / ical / aggregator / web / AggregatorLayoutPage.java
blobf2516c47d0cacd2b989d1bf1d5d27f9058e12089
1 package net.bzzt.ical.aggregator.web;
3 import java.util.Locale;
5 import net.bzzt.ical.aggregator.model.Right;
6 import net.bzzt.ical.aggregator.service.UserService;
7 import net.bzzt.ical.aggregator.web.admin.EventDetailPage;
8 import net.bzzt.ical.aggregator.web.admin.ManageFeeds;
10 import org.apache.wicket.ResourceReference;
11 import org.apache.wicket.Session;
12 import org.apache.wicket.ajax.AjaxRequestTarget;
13 import org.apache.wicket.markup.html.IHeaderContributor;
14 import org.apache.wicket.markup.html.IHeaderResponse;
15 import org.apache.wicket.markup.html.WebPage;
16 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
17 import org.apache.wicket.markup.html.link.Link;
18 import org.apache.wicket.markup.html.panel.FeedbackPanel;
19 import org.apache.wicket.model.Model;
20 import org.apache.wicket.spring.injection.annot.SpringBean;
22 public abstract class AggregatorLayoutPage extends WebPage implements IHeaderContributor
24 @SpringBean
25 private UserService userService;
27 public class LocaleLink extends Link<Locale>
30 /**
33 private static final long serialVersionUID = 1L;
35 public LocaleLink(String id, Locale locale)
37 super(id, new Model<Locale>(locale));
40 @Override
41 public void onClick()
43 Session.get().setLocale(getModelObject());
48 public AggregatorLayoutPage()
50 add(new BookmarkablePageLink<Void>("home", HomePage.class));
52 add(new BookmarkablePageLink<Void>("manageFeeds", ManageFeeds.class));
54 add(new BookmarkablePageLink<Void>("day", DayView.class));
55 add(new BookmarkablePageLink<Void>("weekView", WeekView.class));
57 add(new BookmarkablePageLink<Void>("addEvent", EventDetailPage.class));
59 add(new BookmarkablePageLink<Void>("verifyEvents", EventVerificationPage.class).setVisible(userService
60 .hasRight(AggregatorSession.get().getLoggedInUser(), Right.VERIFY_EVENTS)));
62 add(new LocaleLink("toDutch", new Locale("nl", "NL")));
64 add(new LocaleLink("toEnglish", Locale.ENGLISH));
66 add(new LoginPanel("login"));
68 add(new FeedbackPanel("feedback"));
70 add(new FeedSelection("feedSelection", this));
73 @Override
74 public void renderHead(IHeaderResponse response)
76 response.renderCSSReference(new ResourceReference(AggregatorLayoutPage.class, "style.css"));
77 response.renderJavascriptReference(new ResourceReference(AggregatorLayoutPage.class, "jquery-1.4.2.min.js"), "JQUERY");
78 response.renderJavascriptReference(new ResourceReference(AggregatorLayoutPage.class, "jquery.layout.min-1.2.0.js"), "JQUERY_LAYOUT");
79 response.renderOnDomReadyJavascript("$('body').layout({ applyDefaultStyles: true });");
82 public AggregatorSession getSession()
84 return (AggregatorSession) Session.get();
87 public void refresh(AjaxRequestTarget target)