/** * Copyright 2012 Universitat Pompeu Fabra. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ package org.onexus.website.api; import org.apache.wicket.markup.html.WebPage; import org.onexus.resource.api.ORI; import org.onexus.website.api.pages.IPageCreator; import org.onexus.website.api.pages.IPageManager; import org.ops4j.pax.wicket.api.WebApplicationFactory; public class WebsiteApplicationFactory implements WebApplicationFactory<WebsiteApplication> { private String webPath; private String website; private Class<? extends WebPage> signInPageClass; private IPageManager pageManager; public WebsiteApplicationFactory() { } public WebsiteApplicationFactory(String webPath, String website, Class<? extends WebPage> signInPageClass, IPageManager pageManager) { this.webPath = webPath; this.website = website; this.signInPageClass = signInPageClass; this.pageManager = pageManager; } public String getWebPath() { return webPath; } public void setWebPath(String webPath) { this.webPath = webPath; } public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } public Class<? extends WebPage> getSignInPageClass() { return signInPageClass; } public void setSignInPageClass(Class<? extends WebPage> signInPageClass) { this.signInPageClass = signInPageClass; } @Override public Class<WebsiteApplication> getWebApplicationClass() { return WebsiteApplication.class; } @Override public void onInstantiation(WebsiteApplication application) { application.setWebsiteOri(new ORI(website)); application.setWebPath(webPath); application.setSignInPageClass(signInPageClass); for (IPageCreator pageCreator : pageManager.getCreators()) { application.getApplicationListeners().add(pageCreator); } } }