    001// Licensed under the Apache License, Version 2.0 (the "License");
    002// you may not use this file except in compliance with the License.
    003// You may obtain a copy of the License at
    004//
    005//     http://www.apache.org/licenses/LICENSE-2.0
    006//
    007// Unless required by applicable law or agreed to in writing, software
    008// distributed under the License is distributed on an "AS IS" BASIS,
    009// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    010// See the License for the specific language governing permissions and
    011// limitations under the License.
    012
    013package org.apache.tapestry5.corelib.pages;
    014
    015import org.apache.tapestry5.Block;
    016import org.apache.tapestry5.SymbolConstants;
    017import org.apache.tapestry5.annotations.*;
    018import org.apache.tapestry5.corelib.base.AbstractInternalPage;
    019import org.apache.tapestry5.http.TapestryHttpSymbolConstants;
    020import org.apache.tapestry5.ioc.annotations.Inject;
    021import org.apache.tapestry5.ioc.annotations.Symbol;
    022import org.apache.tapestry5.services.dashboard.DashboardManager;
    023
    024/**
    025 * @see org.apache.tapestry5.services.dashboard.DashboardManager
    026 * @since 5.4
    027 */
    028@UnknownActivationContextCheck(false)
    029@WhitelistAccessOnly
    030@ContentType("text/html")
    031@Import(stylesheet = "dashboard.css")
    032public class T5Dashboard extends AbstractInternalPage
    033{
    034    @Inject
    035    @Symbol(SymbolConstants.TAPESTRY_VERSION)
    036    @Property
    037    private String frameworkVersion;
    038
    039    @Property
    040    @Inject
    041    @Symbol(TapestryHttpSymbolConstants.PRODUCTION_MODE)
    042    private boolean productionMode;
    043
    044    @Inject
    045    @Property
    046    private DashboardManager dashboardManager;
    047
    048    @Property
    049    private String tabName;
    050
    051    private String activeTab;
    052
    053    public String getTabClass()
    054    {
    055        return tabName.equalsIgnoreCase(activeTab) ? "active" : null;
    056    }
    057
    058    public Block getContent()
    059    {
    060        return dashboardManager.getTabContent(activeTab);
    061    }
    062
    063    void onActivate()
    064    {
    065        activeTab = dashboardManager.getTabNames().get(0);
    066    }
    067
    068    boolean onActivate(String tabName)
    069    {
    070        activeTab = tabName;
    071
    072        return true;
    073    }
    074
    075    String onPassivate()
    076    {
    077        return activeTab;
    078    }
    079}