/** * $URL: https://source.sakaiproject.org/svn/sitestats/trunk/sitestats-tool/src/java/org/sakaiproject/sitestats/tool/wicket/components/Menu.java $ * $Id: Menu.java 105078 2012-02-24 23:00:38Z ottenhoff@longsight.com $ * * Copyright (c) 2006-2009 The Sakai Foundation * * Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.sakaiproject.sitestats.tool.wicket.components; import org.apache.wicket.AttributeModifier; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import org.apache.wicket.model.ResourceModel; import org.sakaiproject.exception.IdUnusedException; import org.sakaiproject.sitestats.tool.facade.Locator; import org.sakaiproject.sitestats.tool.wicket.pages.AdminPage; import org.sakaiproject.sitestats.tool.wicket.pages.OverviewPage; import org.sakaiproject.sitestats.tool.wicket.pages.PreferencesPage; import org.sakaiproject.sitestats.tool.wicket.pages.ReportsPage; /** * @author Nuno Fernandes */ public class Menu extends Panel { private static final long serialVersionUID = 1L; /** * Default constructor. * @param id The wicket:id */ public Menu(String id) { super(id); setRenderBodyOnly(true); renderBody(); } /** * Default constructor. * @param id The wicket:id */ public Menu(String id, String siteId) { super(id); setRenderBodyOnly(true); renderBody(siteId); } /** * Render Sakai Menu for current site */ @SuppressWarnings("unchecked") private void renderBody() { renderBody(Locator.getFacade().getToolManager().getCurrentPlacement().getContext()); } /** * Render Sakai Menu for specified site id */ @SuppressWarnings("unchecked") private void renderBody(String siteId) { // current page Class currentPageClass = getRequestCycle().getResponsePageClass(); PageParameters pageParameters = new PageParameters(); if(siteId != null) { pageParameters.put("siteId", siteId); } String realSiteId = Locator.getFacade().getToolManager().getCurrentPlacement().getContext(); boolean isSiteStatsAdminPage = Locator.getFacade().getStatsAuthz().isSiteStatsAdminPage(); boolean isBrowsingThisSite = siteId != null && siteId.equals(realSiteId); // Site display String siteTitle = null; try{ siteTitle = Locator.getFacade().getSiteService().getSite(siteId).getTitle(); }catch(IdUnusedException e){ siteTitle = siteId; } Label siteDisplay = new Label("siteDisplay", siteTitle); boolean siteDisplayVisible = isSiteStatsAdminPage && !isBrowsingThisSite; siteDisplay.setVisible(siteDisplayVisible); add(siteDisplay); // Admin page /*boolean adminPageVisible = Locator.getFacade().getStatsAuthz().isUserAbleToViewSiteStatsAdmin(realSiteId) && Locator.getFacade().getStatsAuthz().isSiteStatsAdminPage(); MenuItem adminPage = new MenuItem("adminPage", new ResourceModel("menu_sitelist"), AdminPage.class, pageParameters, adminPageVisible); adminPage.setVisible(adminPageVisible); adminPage.add(new AttributeModifier("class", true, new Model("firstToolBarItem"))); add(adminPage);*/ // Overview boolean overviewVisible = !AdminPage.class.equals(currentPageClass) && (Locator.getFacade().getStatsManager().isEnableSiteVisits() || Locator.getFacade().getStatsManager().isEnableSiteActivity()); MenuItem overview = new MenuItem("overview", new ResourceModel("menu_overview"), OverviewPage.class, pageParameters, !siteDisplayVisible /*overviewVisible && !adminPageVisible*/); overview.setVisible(overviewVisible); add(overview); // Reports MenuItem reports = new MenuItem("reports", new ResourceModel("menu_reports"), ReportsPage.class, pageParameters, false); if(!overviewVisible) { reports.add(new AttributeModifier("class", true, new Model("firstToolBarItem"))); } add(reports); // Preferences MenuItem preferences = new MenuItem("preferences", new ResourceModel("menu_prefs"), PreferencesPage.class, pageParameters, false); add(preferences); } /* (non-Javadoc) * @see org.apache.wicket.markup.html.panel.Panel#onComponentTag(org.apache.wicket.markup.ComponentTag) */ @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); checkComponentTag(tag, "menu"); } }