org.apache.openaz.xacml.admin.XacmlAdminConsole.java Source code

Java tutorial

Introduction

Here is the source code for org.apache.openaz.xacml.admin.XacmlAdminConsole.java

Source

/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you 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.apache.openaz.xacml.admin;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.openaz.xacml.admin.components.AttributeDictionary;
import org.apache.openaz.xacml.admin.components.ObadviceDictionary;
import org.apache.openaz.xacml.admin.components.PDPManagement;
import org.apache.openaz.xacml.admin.components.PIPManagement;
import org.apache.openaz.xacml.admin.components.PolicyWorkspace;
import com.vaadin.annotations.AutoGenerated;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.server.ThemeResource;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.Embedded;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;

public class XacmlAdminConsole extends CustomComponent implements View {
    private static final long serialVersionUID = 1L;
    @AutoGenerated
    private VerticalLayout mainLayout;
    @AutoGenerated
    private Label labelCopyright;
    @AutoGenerated
    private TabSheet tabSheet;
    @AutoGenerated
    private HorizontalLayout horizontalLayout_1;
    @AutoGenerated
    private Label labelWelcome;
    @AutoGenerated
    private Label caption;
    @AutoGenerated
    private Embedded embedded_1;

    private static Log logger = LogFactory.getLog(XacmlAdminConsole.class);

    private final PolicyWorkspace policyWorkspace;
    private final AttributeDictionary attributeDictionary;
    private final ObadviceDictionary obadvice;
    private final PDPManagement pdp;
    private final PIPManagement pip;
    //   private final UserManagement user;

    /**
     * The constructor should first build the main layout, set the
     * composition root and then do any custom initialization.
     *
     * The constructor will not be automatically regenerated by the
     * visual editor.
     */
    public XacmlAdminConsole() {
        buildMainLayout();
        setCompositionRoot(mainLayout);

        if (logger.isDebugEnabled()) {
            logger.debug("Creating tabs...");
        }

        this.labelWelcome.setValue("Welcome " + ((XacmlAdminUI) UI.getCurrent()).getUserName());
        this.labelCopyright.setContentMode(ContentMode.HTML);

        if (((XacmlAdminUI) UI.getCurrent()).isAuthorized(XacmlAdminAuthorization.AdminAction.ACTION_READ,
                XacmlAdminAuthorization.AdminResource.RESOURCE_POLICY_WORKSPACE)) {
            this.policyWorkspace = new PolicyWorkspace();
            this.tabSheet.addComponent(this.policyWorkspace);
            this.tabSheet.getTab(this.policyWorkspace).setCaption("Policy Workspace");
        } else {
            this.policyWorkspace = null;
        }

        if (((XacmlAdminUI) UI.getCurrent()).isAuthorized(XacmlAdminAuthorization.AdminAction.ACTION_READ,
                XacmlAdminAuthorization.AdminResource.RESOURCE_DICTIONARIES)) {
            this.attributeDictionary = new AttributeDictionary();
            this.tabSheet.addComponent(this.attributeDictionary);
            this.tabSheet.getTab(this.attributeDictionary).setCaption("Attribute Dictionary");

            this.obadvice = new ObadviceDictionary();
            this.tabSheet.addComponent(this.obadvice);
            this.tabSheet.getTab(this.obadvice).setCaption("Obligation/Advice Dictionary");
        } else {
            this.attributeDictionary = null;
            this.obadvice = null;
        }
        if (((XacmlAdminUI) UI.getCurrent()).isAuthorized(XacmlAdminAuthorization.AdminAction.ACTION_READ,
                XacmlAdminAuthorization.AdminResource.RESOURCE_PDP_ADMIN)) {
            this.pdp = new PDPManagement(((XacmlAdminUI) UI.getCurrent()).getPAPEngine());
            this.tabSheet.addComponent(this.pdp);
            this.tabSheet.getTab(this.pdp).setCaption("PDP Management");
        } else {
            this.pdp = null;
        }

        if (((XacmlAdminUI) UI.getCurrent()).isAuthorized(XacmlAdminAuthorization.AdminAction.ACTION_READ,
                XacmlAdminAuthorization.AdminResource.RESOURCE_PIP_ADMIN)) {
            this.pip = new PIPManagement();
            this.tabSheet.addComponent(this.pip);
            this.tabSheet.getTab(this.pip).setCaption("PIP Management");
        } else {
            this.pip = null;
        }
        /*
         * TODO  - figure out how to add this in
         *
        if (((XacmlAdminUI)UI.getCurrent()).isAuthorized( 
        XacmlAdminAuthorization.AdminAction.ACTION_READ, 
        XacmlAdminAuthorization.AdminResource.RESOURCE_POLICY_WORKSPACE)) {
           this.user = new UserManagement();
           this.tabSheet.addComponent(this.user);
           this.tabSheet.getTab(this.user).setCaption("User Management");
        }
        */

        if (logger.isDebugEnabled()) {
            logger.debug("Done creating tabs.");
        }
    }

    public void refreshAttributes() {
        this.attributeDictionary.refreshContainer();
    }

    public void refreshObadvice() {
        this.obadvice.refreshContainer();
    }

    public void refreshPIPConfiguration() {
        this.pip.refreshContainer();
    }

    public void refreshPDPGroups() {
        this.pdp.refreshContainer();
    }

    public TabSheet getTabSheet() {
        return tabSheet;
    }

    @AutoGenerated
    private VerticalLayout buildMainLayout() {
        // common part: create layout
        mainLayout = new VerticalLayout();
        mainLayout.setImmediate(false);
        mainLayout.setWidth("100%");
        mainLayout.setHeight("100%");
        mainLayout.setMargin(true);

        // top-level component properties
        setWidth("100.0%");
        setHeight("100.0%");

        // horizontalLayout_1
        horizontalLayout_1 = buildHorizontalLayout_1();
        mainLayout.addComponent(horizontalLayout_1);

        // tabSheet
        tabSheet = new TabSheet();
        tabSheet.setImmediate(false);
        tabSheet.setWidth("100.0%");
        tabSheet.setHeight("100.0%");
        mainLayout.addComponent(tabSheet);
        mainLayout.setExpandRatio(tabSheet, 1.0f);

        // labelCopyright
        labelCopyright = new Label();
        labelCopyright.setImmediate(false);
        labelCopyright.setWidth("-1px");
        labelCopyright.setHeight("40px");
        labelCopyright.setValue(
                "<center>Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.</center>");
        mainLayout.addComponent(labelCopyright);
        mainLayout.setComponentAlignment(labelCopyright, new Alignment(48));

        return mainLayout;
    }

    @AutoGenerated
    private HorizontalLayout buildHorizontalLayout_1() {
        // common part: create layout
        horizontalLayout_1 = new HorizontalLayout();
        horizontalLayout_1.setImmediate(false);
        horizontalLayout_1.setWidth("100.0%");
        horizontalLayout_1.setHeight("40px");
        horizontalLayout_1.setMargin(false);

        // embedded_1
        embedded_1 = new Embedded();
        embedded_1.setImmediate(false);
        embedded_1.setWidth("30px");
        embedded_1.setHeight("30px");
        embedded_1.setSource(new ThemeResource("img/att.png"));
        embedded_1.setType(1);
        embedded_1.setMimeType("image/png");
        horizontalLayout_1.addComponent(embedded_1);
        horizontalLayout_1.setComponentAlignment(embedded_1, new Alignment(33));

        // caption
        caption = new Label();
        caption.setImmediate(false);
        caption.setWidth("-1px");
        caption.setHeight("-1px");
        caption.setValue("Apache OpenAZ Admin Console");
        horizontalLayout_1.addComponent(caption);
        horizontalLayout_1.setExpandRatio(caption, 1.0f);
        horizontalLayout_1.setComponentAlignment(caption, new Alignment(33));

        // labelWelcome
        labelWelcome = new Label();
        labelWelcome.setImmediate(false);
        labelWelcome.setWidth("-1px");
        labelWelcome.setHeight("40px");
        labelWelcome.setValue("Label");
        horizontalLayout_1.addComponent(labelWelcome);
        horizontalLayout_1.setComponentAlignment(labelWelcome, new Alignment(34));

        return horizontalLayout_1;
    }

    @Override
    public void enter(ViewChangeEvent event) {
        //
        // This needs to be implemented
        //
    }
}