jease.cms.web.Navigation.java Source code

Java tutorial

Introduction

Here is the source code for jease.cms.web.Navigation.java

Source

/*
Copyright (C) 2016 maik.jablonski@jease.org
    
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
    
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
    
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package jease.cms.web;

import jease.Names;
import jease.Registry;
import jease.cmf.web.JeaseSession;
import jease.cms.domain.User;
import jease.cms.web.content.ContentManager;
import jfix.util.I18N;
import jfix.zk.Images;
import jfix.zk.Logout;
import jfix.zk.Tabbox;

import org.apache.commons.lang3.StringUtils;

public class Navigation extends Tabbox<Object> {

    public Navigation() {
        init();
    }

    public void init() {
        addContentTab();
        addLinkCheckTab();
        addUserTab();
        addSystemTab();
        addLogoutTab();
    }

    public void addContentTab() {
        if (JeaseSession.get(User.class).isContentManager()) {
            add(I18N.get("Content"), ContentManager.class, Images.MailAttachment);
        }
    }

    public void addLinkCheckTab() {
        if (JeaseSession.get(User.class).isContentManager()
                && StringUtils.isNotBlank(Registry.getParameter(Names.JEASE_SITE_DESIGN))) {
            add(I18N.get("Link_Check"), jease.cms.web.system.linkcheck.Table.class, Images.NetworkTransmit);
        }
    }

    public void addUserTab() {
        if (JeaseSession.get(User.class).isAdministrator()
                || StringUtils.isBlank(Registry.getParameter(Names.JEASE_CMS_AUTHENTICATOR))) {
            if (JeaseSession.get(User.class).isAdministrator()) {
                add(I18N.get("User"), jease.cms.web.user.Table.class, Images.SystemUsers);
            } else {
                add(I18N.get("User"), jease.cms.web.user.SessionUserEditor.class, Images.SystemUsers);
            }
        }
    }

    public void addSystemTab() {
        if (JeaseSession.get(User.class).isAdministrator()) {
            add(I18N.get("System"), System.class, Images.ApplicationsSystem);
        }
    }

    public void addLogoutTab() {
        add(I18N.get("Logout"), Logout.class, Images.SystemLogOut);
    }

    public static class System extends Tabbox<Object> {

        public System() {
            init();
        }

        public void init() {
            addParameterTab();
            addRedirectTab();
            addTrashTab();
            addRoleTab();
            addSequenceTab();
            addInfoTab();
        }

        public void addParameterTab() {
            add(I18N.get("Parameter"), jease.cms.web.system.parameter.Table.class, Images.PreferencesSystem);
        }

        public void addRedirectTab() {
            if (StringUtils.isNotBlank(Registry.getParameter(Names.JEASE_SITE_DESIGN))) {
                add(I18N.get("Redirect"), jease.cms.web.system.redirect.Table.class, Images.EmblemSymbolicLink);
            }
        }

        public void addTrashTab() {
            add(I18N.get("Trash"), jease.cms.web.system.trash.Control.class, Images.UserTrashFull);
        }

        public void addRoleTab() {
            add(I18N.get("Role"), jease.cms.web.system.role.Table.class, Images.ApplicationCertificate);
        }

        public void addSequenceTab() {
            add(I18N.get("Sequence"), jease.cms.web.system.sequence.Table.class, Images.AccessoriesCalculator);
        }

        public void addInfoTab() {
            add(I18N.get("Information"), jease.cms.web.system.information.Display.class,
                    Images.UtilitiesSystemMonitor);
        }

    }

}