com.agnie.useradmin.main.client.ui.DesktopViewFactory.java Source code

Java tutorial

Introduction

Here is the source code for com.agnie.useradmin.main.client.ui.DesktopViewFactory.java

Source

/*******************************************************************************
 * Copyright (c) 2014 Agnie Technologies.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors:
 *     Agnie Technologies - initial API and implementation
 ******************************************************************************/
package com.agnie.useradmin.main.client.ui;

import java.util.ArrayList;
import java.util.List;

import com.agnie.common.gwt.serverclient.client.renderer.Title;
import com.agnie.gwt.common.client.widget.BreadCrumbPanel;
import com.agnie.gwt.common.client.widget.CustomListBox;
import com.agnie.useradmin.common.client.renderer.TitleCell;
import com.agnie.useradmin.login.client.injector.MVPModule;
import com.agnie.useradmin.main.client.presenter.sahered.ui.ListMenu;
import com.agnie.useradmin.main.client.presenter.sahered.ui.Menu;
import com.agnie.useradmin.persistance.client.enums.AuthLevel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.inject.name.Named;

@Singleton
public class DesktopViewFactory implements ViewFactory {
    @Inject
    @Named(MVPModule.DESKTOP)
    private ApplicationUsersView usersView;
    @Inject
    @Named(MVPModule.DESKTOP)
    private RolesView rolesView;
    @Inject
    @Named(MVPModule.DESKTOP)
    private DomainParentView domainParentView;
    @Inject
    @Named(MVPModule.DESKTOP)
    private PermissionsView permissionsView;
    @Inject
    @Named(MVPModule.DESKTOP)
    private ManageContextsView manageContextsView;
    @Inject
    private DomainReadView domainReadView;
    @Inject
    private DomainEditView domainEditView;
    @Inject
    private ListMenu listMenu;
    @Inject
    private Menu menu;
    private HTMLPanel centerContentPanel = new HTMLPanel("");
    private BreadCrumbPanel breadCrumbPanel;
    private Image helpImage = new Image();
    private HTMLPanel helpBreadCrumbPanel = new HTMLPanel("");
    private CustomListBox<Title> levelFilter;
    private List<Title> levelWrapList = new ArrayList<Title>();

    public static class AuthLevelWrapper implements Title {
        private AuthLevel level;

        public AuthLevelWrapper(AuthLevel level) {
            this.level = level;
        }

        /**
         * @return the level
         */
        public AuthLevel getLevel() {
            return level;
        }

        @Override
        public String getTitle() {
            return this.level.name();
        }

    }

    public DesktopViewFactory() {

        // applying float left assuming vertical panel will be always placed
        // inside split panel on left hand side.
        centerContentPanel.addStyleName("content-wrapper");
        centerContentPanel.addStyleName("clearfix");
        helpImage.addStyleName("help-image");
        helpImage.getElement().setAttribute("src", GWT.getModuleBaseURL() + "images/transparent.png");
        helpImage.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                Window.open("http://www.agnie.net/#DEMO", "3a-help", "");
            }
        });
        helpBreadCrumbPanel.addStyleName("help-bread-crumb-pan");
    }

    /**
     * @return the centerContentPanel
     */
    public HTMLPanel getCenterContentPanel() {
        return centerContentPanel;
    }

    public ListMenu getListMenu() {
        return listMenu;
    }

    public Menu getMenu() {
        return menu;
    }

    /**
     * 
     * @return helpImage
     */
    public Image getHelpImage() {
        return helpImage;
    }

    /**
     * 
     * @return helpBreadCrumbPanel
     */
    public HTMLPanel getHelpBreadCrumbPanel() {
        return helpBreadCrumbPanel;
    }

    public BreadCrumbPanel getBreadCrumbPanel() {
        if (breadCrumbPanel == null) {
            breadCrumbPanel = new BreadCrumbPanel();
            breadCrumbPanel.addStyleName("float-left");
        }
        return breadCrumbPanel;
    }

    public ApplicationUsersView getAppUsersView() {
        return usersView;
    }

    public DomainParentView getDomainParentView() {
        return domainParentView;
    }

    public RolesView getListRolesView() {
        return rolesView;
    }

    public PermissionsView getListPermissionsView() {
        return permissionsView;
    }

    public ManageContextsView getManageContextsView() {
        return manageContextsView;
    }

    public CustomListBox<Title> getLevelFilter() {
        if (levelFilter == null) {
            AuthLevelWrapper appWrapper = new AuthLevelWrapper(AuthLevel.APPLICATION);
            levelWrapList.add(appWrapper);
            levelWrapList.add(new AuthLevelWrapper(AuthLevel.CONTEXT));
            levelFilter = new CustomListBox<Title>(new TitleCell());
            levelFilter.setList(levelWrapList);
            levelFilter.setSelectedItem(appWrapper, true);
        }
        return levelFilter;
    }

    public DomainReadView getDomainReadView() {
        return domainReadView;
    }

    public DomainEditView getDomainEditView() {
        return domainEditView;
    }

}