blob: 91e831bd401e2b6a058fbdfbff20138bdac01ce7 [file] [log] [blame]
/*
* 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
//
}
}