You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openaz.apache.org by pd...@apache.org on 2016/03/17 02:13:10 UTC
[06/23] incubator-openaz git commit: Revert "Ported original att
source to openaz"
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ColumnSelectionWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ColumnSelectionWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ColumnSelectionWindow.java
deleted file mode 100644
index b961a78..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ColumnSelectionWindow.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * 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.view.windows;
-
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.data.validator.IntegerRangeValidator;
-import com.vaadin.event.FieldEvents.TextChangeEvent;
-import com.vaadin.event.FieldEvents.TextChangeListener;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-// import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class ColumnSelectionWindow extends Window {
-
- /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
- @AutoGenerated
- private VerticalLayout mainLayout;
- @AutoGenerated
- private Button buttonSave;
- @AutoGenerated
- private TextField textFieldColumn;
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private boolean isSaved = false;
- private ColumnSelectionWindow self = this;
-
- /**
- * 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 ColumnSelectionWindow(Integer value) {
- buildMainLayout();
- //setCompositionRoot(mainLayout);
- setContent(mainLayout);
- //
- // Initialize
- //
- this.initialize();
- //
- // Set the value
- //
- if (value != null) {
- this.textFieldColumn.setValue(value.toString());
- } else {
- this.textFieldColumn.setValue(Integer.toString(0));
- }
- //
- // Shortcuts
- //
- this.setCloseShortcut(KeyCode.ESCAPE);
- this.buttonSave.setClickShortcut(KeyCode.ENTER);
- //
- // Focus
- //
- this.textFieldColumn.focus();
- }
-
- protected void initialize() {
- this.initializeText();
- this.initializeButton();
- }
-
- protected void initializeText() {
- //
- // Add a validator
- //
- this.textFieldColumn.addValidator(new IntegerRangeValidator("Please enter an integer greater than or equal to 0.", 0, null));
- //
- // Respond to text changing to setup the button
- //
- this.textFieldColumn.addTextChangeListener(new TextChangeListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void textChange(TextChangeEvent event) {
- if (event.getText() != null && event.getText().isEmpty() == false) {
- self.buttonSave.setEnabled(true);
- } else {
- self.buttonSave.setEnabled(false);
- }
- }
- });
- }
-
- protected void initializeButton() {
- self.buttonSave.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- try {
- //
- // Commit
- //
- self.textFieldColumn.commit();
- //
- // If we get here, the value is valid.
- // Mark ourselves as saved and close the window
- //
- self.isSaved = true;
- self.close();
- } catch (SourceException | InvalidValueException e) { //NOPMD
- //
- // Vaadin will display error
- //
- }
- }
- });
- }
-
- public boolean isSaved() {
- return this.isSaved;
- }
-
- public Integer getColumn() {
- try {
- return Integer.parseInt(this.textFieldColumn.getValue());
- } catch (NumberFormatException e) {
- return null;
- }
- }
-
- @AutoGenerated
- private VerticalLayout buildMainLayout() {
- // common part: create layout
- mainLayout = new VerticalLayout();
- mainLayout.setImmediate(false);
- mainLayout.setWidth("-1px");
- mainLayout.setHeight("-1px");
- mainLayout.setMargin(true);
- mainLayout.setSpacing(true);
-
- // top-level component properties
- setWidth("-1px");
- setHeight("-1px");
-
- // textFieldColumn
- textFieldColumn = new TextField();
- textFieldColumn.setCaption("Column");
- textFieldColumn.setImmediate(false);
- textFieldColumn.setDescription("0-based index into CSV line");
- textFieldColumn.setWidth("-1px");
- textFieldColumn.setHeight("-1px");
- textFieldColumn.setRequired(true);
- textFieldColumn.setInputPrompt("Eg. ‘0'");
- mainLayout.addComponent(textFieldColumn);
-
- // buttonSave
- buttonSave = new Button();
- buttonSave.setCaption("Save");
- buttonSave.setImmediate(false);
- buttonSave.setWidth("-1px");
- buttonSave.setHeight("-1px");
- mainLayout.addComponent(buttonSave);
- mainLayout.setComponentAlignment(buttonSave, new Alignment(48));
-
- return mainLayout;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPGroupWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPGroupWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPGroupWindow.java
deleted file mode 100644
index 468634c..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPGroupWindow.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*
- * 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.view.windows;
-
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.openaz.xacml.admin.model.PDPPIPContainer;
-import org.apache.openaz.xacml.admin.model.PDPPolicyContainer;
-import org.apache.openaz.xacml.admin.util.AdminNotification;
-import org.apache.openaz.xacml.api.pap.PAPEngine;
-import org.apache.openaz.xacml.api.pap.PAPException;
-import org.apache.openaz.xacml.api.pap.PDPGroup;
-import org.apache.openaz.xacml.api.pap.PDPPIPConfig;
-import org.apache.openaz.xacml.api.pap.PDPPolicy;
-import org.apache.openaz.xacml.std.pap.StdPDPGroup;
-import org.apache.openaz.xacml.std.pap.StdPDPPolicy;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Validator;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.event.Action;
-import com.vaadin.event.Action.Handler;
-import com.vaadin.event.FieldEvents.TextChangeEvent;
-import com.vaadin.event.FieldEvents.TextChangeListener;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.Table;
-import com.vaadin.ui.TextArea;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class EditPDPGroupWindow extends Window {
-
- /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
- @AutoGenerated
- private VerticalLayout mainLayout;
- @AutoGenerated
- private Button buttonSave;
- @AutoGenerated
- private Table tablePIP;
- @AutoGenerated
- private Table tablePolicies;
- @AutoGenerated
- private TextArea textDescription;
- @AutoGenerated
- private TextField textName;
-
-
- private static final Action ADD_POLICY = new Action ("Add New Policy");
- private static final Action REMOVE_POLICY = new Action ("Remove Policy");
- private static final Action MAKE_ROOT = new Action ("Make Root");
- private static final Action MAKE_REFERENCED = new Action ("Make Referenced");
-
- private static final Action EDIT_CONFIG = new Action("Edit Configurations");
-
- //
- // ?? Why is this static?
- //
- private static PDPPolicyContainer policyContainer;
- private PDPPIPContainer pipContainer;
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private final EditPDPGroupWindow self = this;
- private final StdPDPGroup group;
- private boolean isSaved = false;
-
- // this is the version that contains all of the edits made by the user.
- // it may be a copy of the original object (edited) or a new one.
- private StdPDPGroup updatedObject;
-
- private PAPEngine papEngine;
- private List<PDPGroup> groups;
-
- /**
- * 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 EditPDPGroupWindow(StdPDPGroup group, List<PDPGroup> list, PAPEngine engine) {
- buildMainLayout();
- //setCompositionRoot(mainLayout);
- setContent(mainLayout);
- //
- // Save pointers
- //
- this.group = group;
- this.groups = list;
- this.papEngine = engine;
- //
- // Initialize
- //
- this.initialize();
- //
- // Shortcuts
- //
- this.setCloseShortcut(KeyCode.ESCAPE);
- this.buttonSave.setClickShortcut(KeyCode.ENTER);
- //
- // Focus
- //
- this.textName.focus();
- }
-
- protected void initialize() {
- this.initializeText();
- this.initializeButton();
- this.initializeTables();
- }
-
- protected void initializeText() {
- this.textName.setNullRepresentation("");
- this.textDescription.setNullRepresentation("");
- if (this.group != null) {
- this.textName.setValue(this.group.getName());
- this.textDescription.setValue(this.group.getDescription());
- }
- //
- // Validation
- //
- this.textName.addValidator(new Validator() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void validate(Object value) throws InvalidValueException {
- assert value instanceof String;
- if (value == null) {
- throw new InvalidValueException("The name cannot be blank.");
- }
- // Group names must be unique so that user can distinguish between them (and we can create unique IDs from them)
- for (PDPGroup g : self.groups) {
- if (group != null && g.getId().equals(group.getId())) {
- // ignore this group - we may or may not be changing the name
- continue;
- }
- if (g.getName().equals(value.toString())) {
- throw new InvalidValueException("Name must be unique");
- }
- }
- }
- });
- this.textName.addTextChangeListener(new TextChangeListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void textChange(TextChangeEvent event) {
- if (event.getText() == null || event.getText().isEmpty()) {
- self.buttonSave.setEnabled(false);
- } else {
- self.buttonSave.setEnabled(true);
- }
- }
- });
- }
-
- protected void initializeTables() {
- this.initializePolicyTable();
- this.initializePIPTable();
- }
-
- protected void initializePolicyTable() {
- if (this.group == null) {
- this.tablePolicies.setVisible(false);
- return;
- }
- //
- // GUI properties
- //
- EditPDPGroupWindow.policyContainer = new PDPPolicyContainer(group);
- this.tablePolicies.setContainerDataSource(EditPDPGroupWindow.policyContainer);
- this.tablePolicies.setVisibleColumns("Root", "Name", "Version", "Id");//, "Description");
- this.tablePolicies.setPageLength(EditPDPGroupWindow.policyContainer.size() + 1);
- this.tablePolicies.setSelectable(true);
- this.tablePolicies.setSizeFull();
- /*
- * Not in this release.
- *
- this.tablePolicies.setColumnCollapsingAllowed(true);
- this.tablePolicies.setColumnCollapsed("Description", true);
- //
- // Generated columns
- //
- this.tablePolicies.addGeneratedColumn("Description", new ColumnGenerator() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Object generateCell(Table source, Object itemId, Object columnId) {
- TextArea area = new TextArea();
- if (itemId != null && itemId instanceof PDPPolicy) {
- area.setValue(((PDPPolicy)itemId).getDescription());
- }
- area.setNullRepresentation("");
- area.setWidth("100.0%");
- return area;
- }
- });
- */
- //
- // Actions
- //
- this.tablePolicies.addActionHandler(new Handler() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Action[] getActions(Object target, Object sender) {
- if (target == null) {
- return new Action[] {ADD_POLICY};
- }
- return new Action[] {ADD_POLICY, REMOVE_POLICY, MAKE_ROOT, MAKE_REFERENCED};
- }
-
- @Override
- public void handleAction(Action action, Object sender, Object target) {
- if (action == ADD_POLICY) {
-
- final SelectWorkspacePoliciesWindow policiesWindow = new SelectWorkspacePoliciesWindow();
- policiesWindow.setCaption("Select Policy to Add");
- policiesWindow.setModal(true);
- policiesWindow.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent event) {
- //
- // Did the user hit save?
- //
- if (policiesWindow.isSaved() == false) {
- return;
- }
- //
- // Get the selected policy
- //
- StdPDPPolicy selectedPolicy = policiesWindow.getSelectedPolicy();
- if (selectedPolicy != null) {
-
- // do not allow multiple copies of same policy
- for (Object existingPolicy : EditPDPGroupWindow.policyContainer.getItemIds()) {
- if (selectedPolicy.getId().equals(((PDPPolicy)existingPolicy).getId())) {
- AdminNotification.warn("Cannot re-add Policy with the same ID (i.e. same Name, source Sub-Domain and Version)");
- return;
- }
- }
- // copy policy to PAP
- try {
- papEngine.copyPolicy(selectedPolicy, self.group);
- } catch (PAPException e) {
- AdminNotification.warn("Unable to copy Policy '" + selectedPolicy.getPolicyId() + "' to PAP: " + e.getMessage());
- return;
- }
-
- // add Policy to group
- EditPDPGroupWindow.policyContainer.addItem(selectedPolicy);
- self.markAsDirtyRecursive();
- }
- }
- });
- policiesWindow.center();
- UI.getCurrent().addWindow(policiesWindow);
- return;
- }
- if (action == REMOVE_POLICY) {
- assert target != null;
- PDPPolicy policy = (PDPPolicy)target;
- EditPDPGroupWindow.policyContainer.removeItem(policy);
- self.markAsDirtyRecursive();
- return;
- }
- if (action == MAKE_ROOT) {
- assert target != null;
- assert target instanceof StdPDPPolicy;
- StdPDPPolicy policy = (StdPDPPolicy)target;
- EditPDPGroupWindow.policyContainer.getItem(policy).getItemProperty("Root").setValue(true);
- self.markAsDirtyRecursive();
- return;
- }
- if (action == MAKE_REFERENCED) {
- assert target != null;
- assert target instanceof StdPDPPolicy;
- StdPDPPolicy policy = (StdPDPPolicy)target;
- EditPDPGroupWindow.policyContainer.getItem(policy).getItemProperty("Root").setValue(false);
- self.markAsDirtyRecursive();
- return;
- }
-
- AdminNotification.error("Unrecognized action '" + action + "' on target '" + target + "'");
- }
- });
- }
-
- protected void initializePIPTable() {
- if (this.group == null) {
- this.tablePIP.setVisible(false);
- return;
- }
- //
- // Setup data source and GUI properties
- //
- this.pipContainer = new PDPPIPContainer(group);
- this.tablePIP.setContainerDataSource(this.pipContainer);
- this.tablePIP.setPageLength(this.pipContainer.size() + 2);
- this.tablePIP.setSelectable(true);
- this.tablePIP.setSizeFull();
- //
- // Add the action handler
- //
- this.tablePIP.addActionHandler(new Handler() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Action[] getActions(Object target, Object sender) {
- return new Action[] {EDIT_CONFIG};
- }
-
- @Override
- public void handleAction(Action action, Object sender, Object target) {
- if (action == EDIT_CONFIG) {
- self.editPIPConfiguration();
- return;
- }
- }
- });
- }
-
- protected void editPIPConfiguration() {
- final SelectPIPConfigurationWindow window = new SelectPIPConfigurationWindow(this.group);
- window.setCaption("Select PIP Configurations");
- window.setModal(true);
- window.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user click save button?
- //
- if (window.isSaved() == false) {
- return;
- }
- //
- // Yes - save the PIP configuration
- //
- Set<PDPPIPConfig> configs = window.getSelectedConfigs();
- assert configs != null;
- self.group.setPipConfigs(configs);
- //
- // Update the container
- //
- self.pipContainer.refresh();
- }
- });
- window.center();
- UI.getCurrent().addWindow(window);
- }
-
- protected void initializeButton() {
- this.buttonSave.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- try {
- //
- // Validate
- //
- self.textName.commit();
- //
- // All good save everything
- //
- self.doSave();
- //
- // mark ourselves as saved
- //
- self.isSaved = true;
- //
- // Close the window
- //
- self.close();
- } catch (InvalidValueException e) { //NOPMD
- //
- // Ignore, Vaadin will display our message
- //
- }
- }
- });
- }
-
- protected void doSave() {
- if (this.group == null) {
- return;
- }
- StdPDPGroup updatedGroupObject = new StdPDPGroup(
- this.group.getId(),
- this.group.isDefaultGroup(),
- this.textName.getValue(),
- this.textDescription.getValue(),
- null);
- // replace the original set of Policies with the set from the container (possibly modified by the user)
- Set<PDPPolicy> changedPolicies = new HashSet<PDPPolicy>();
- changedPolicies.addAll((Collection<PDPPolicy>) EditPDPGroupWindow.policyContainer.getItemIds());
- updatedGroupObject.setPolicies(changedPolicies);
- updatedGroupObject.setPdps(this.group.getPdps());
- // replace the original set of PIP Configs with the set from the container
-//TODO - get PIP Configs from a container used to support editing
-// selfPDPObject.getPipConfigs().clear();
-// selfPDPObject.getPipConfigs().addAll(containerGroup.getPipConfigs());
- updatedGroupObject.setPipConfigs(this.group.getPipConfigs());
- // copy those things that the user cannot change from the original to the new object
- updatedGroupObject.setStatus(this.group.getStatus());
- this.updatedObject = updatedGroupObject;
- }
-
- public boolean isSaved() {
- return this.isSaved;
- }
-
- public String getGroupName() {
- return this.textName.getValue();
- }
-
- public String getGroupDescription() {
- return this.textDescription.getValue();
- }
-
- public PDPGroup getUpdatedObject() {
- return this.updatedObject;
- }
-
- @AutoGenerated
- private VerticalLayout buildMainLayout() {
- // common part: create layout
- mainLayout = new VerticalLayout();
- mainLayout.setImmediate(false);
- mainLayout.setWidth("100.0%");
- mainLayout.setHeight("-1px");
- mainLayout.setMargin(true);
- mainLayout.setSpacing(true);
-
- // top-level component properties
- setWidth("-1px");
- setHeight("-1px");
-
- // textName
- textName = new TextField();
- textName.setCaption("Group Name");
- textName.setImmediate(false);
- textName.setWidth("-1px");
- textName.setHeight("-1px");
- textName.setRequired(true);
- mainLayout.addComponent(textName);
-
- // textDescription
- textDescription = new TextArea();
- textDescription.setCaption("Group Description");
- textDescription.setImmediate(false);
- textDescription.setWidth("100.0%");
- textDescription.setHeight("-1px");
- textDescription.setNullSettingAllowed(true);
- mainLayout.addComponent(textDescription);
- mainLayout.setExpandRatio(textDescription, 1.0f);
-
- // tablePolicies
- tablePolicies = new Table();
- tablePolicies.setCaption("Policies");
- tablePolicies.setImmediate(false);
- tablePolicies.setWidth("-1px");
- tablePolicies.setHeight("-1px");
- mainLayout.addComponent(tablePolicies);
- mainLayout.setExpandRatio(tablePolicies, 1.0f);
-
- // tablePIP
- tablePIP = new Table();
- tablePIP.setCaption("PIP Configurations");
- tablePIP.setImmediate(false);
- tablePIP.setWidth("-1px");
- tablePIP.setHeight("-1px");
- mainLayout.addComponent(tablePIP);
- mainLayout.setExpandRatio(tablePIP, 1.0f);
-
- // buttonSave
- buttonSave = new Button();
- buttonSave.setCaption("Save");
- buttonSave.setImmediate(true);
- buttonSave.setWidth("-1px");
- buttonSave.setHeight("-1px");
- mainLayout.addComponent(buttonSave);
- mainLayout.setComponentAlignment(buttonSave, new Alignment(48));
-
- return mainLayout;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPWindow.java
deleted file mode 100644
index d2c40e9..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/EditPDPWindow.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * 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.view.windows;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-
-import org.apache.openaz.xacml.admin.util.AdminNotification;
-import org.apache.openaz.xacml.api.pap.PDP;
-import org.apache.openaz.xacml.api.pap.PDPGroup;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-import com.vaadin.data.Validator;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.data.validator.RegexpValidator;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.TextArea;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-import elemental.events.KeyboardEvent.KeyCode;
-
-public class EditPDPWindow extends Window {
-
- /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
- @AutoGenerated
- private VerticalLayout mainLayout;
- @AutoGenerated
- private Button buttonSave;
- @AutoGenerated
- private TextArea textDescription;
- @AutoGenerated
- private TextField textName;
- @AutoGenerated
- private TextField textId;
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private final EditPDPWindow self = this;
- private final PDP pdp;
- private final List<PDPGroup> groups;
- private boolean isSaved = false;
- /**
- * 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.
- * @param pdp
- */
- public EditPDPWindow(PDP pdp, List<PDPGroup> list) {
- buildMainLayout();
- //setCompositionRoot(mainLayout);
- setContent(mainLayout);
- //
- // Save data
- //
- this.pdp = pdp;
- this.groups = list;
- //
- // Initialize
- //
- this.initializeText();
- this.initializeButton();
- //
- // Keyboard short
- //
- this.setCloseShortcut(KeyCode.ESC);
- this.buttonSave.setClickShortcut(KeyCode.ENTER);
- //
- // Focus
- //
- this.textId.focus();
- }
-
- protected void initializeText() {
- //
- // Initialize values
- //
- if (this.pdp != null) {
- this.textId.setValue(this.pdp.getId());
- this.textName.setValue(this.pdp.getName());
- this.textDescription.setValue(this.pdp.getDescription());
- }
- //
- //
- //
- this.textId.setRequiredError("You must enter a valid id for the PDP.");
- this.textId.setNullRepresentation("");
- this.textId.addValidator(new RegexpValidator("[\\w=,]", false, "Please enter a valid URL with no whitespace or \"=\" or \",\" characters."));
- this.textId.addValidator(new Validator() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void validate(Object value) throws InvalidValueException {
- //
- // Cannot be null
- //
- if (value == null || value.toString().length() == 0) {
- throw new InvalidValueException("ID cannot be null.");
- }
- //
- // Make sure its a valid URL
- //
- try {
- new URL(value.toString());
- } catch (MalformedURLException e) {
- throw new InvalidValueException("The PDP URL '" + value.toString() + "' is not a valid URL: '" + e.getMessage() +"'");
- }
- }
- });
- //
- //
- //
- this.textName.setNullRepresentation("");
- this.textName.addValidator(new Validator() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void validate(Object value) throws InvalidValueException {
- //
- // If the value is null, set it to the id
- //
- if (value == null || value.toString().length() == 0) {
- return;
- }
- }
- });
- //
- //
- //
- this.textDescription.setNullRepresentation("");
- }
-
- protected void initializeButton() {
- this.buttonSave.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- try {
- //
- // Do a commit
- //
- self.textName.commit();
- self.textId.commit();
- self.textDescription.commit();
- //
- // Should be a string, but to be safe
- //
- String id = self.textId.getValue();
- String name = self.textName.getValue();
- if (name == null || name.isEmpty()) {
- self.textName.setValue(id);
- name = id;
- }
- //
- // ID must be unique.
- // Also the Name must be unique AND not match any existing IDs
- // because user uses the NAME to identify this PDP on the browser window, not the ID.
- //
- for (PDPGroup g : self.groups) {
- for (PDP p : g.getPdps()) {
- if (p.getId().equals(id)) {
- if (self.pdp != null) {
- //
- // we are editing this pdp
- //
- continue;
- }
- throw new InvalidValueException("URL must be unique - the PDP '" + id + "' already exists in group '" + g.getName() + "'");
- }
- if (id.equals(p.getName())) {
- throw new InvalidValueException("A previous PDP with URL '" + p.getId() + "' has been given the name '" + id +
- "'. Please edit that PDP to change the name before creating a nwe PDP with this URL.");
- }
- if (name != null && name.length() > 0 && self.pdp == null && (p.getId().equals(name) || name.equals(p.getName()))) {
- throw new InvalidValueException("Name must not be the same as another PDP's name OR another PDP's URL.");
- }
- }
- }
- //
- // make sure name is NOT a URL, unless it is identical to the ID.
- // (If it is a URL, then a later PDP might be created with that URL as it's ID, which would be confusing.)
- //
- if ( ! id.equals(name)) {
- try {
- new URL(name);
- // if we get here the name is a URL but not identical to the id, which is not good
- AdminNotification.warn("The Name must not be a URL unless it is the same as the PDP URL");
- return;
- } catch (Exception e) { //NOPMD
- // ignore - we want to get here
- }
- }
- //
- // If we get here the inputs are ok
- //
- self.isSaved = true;
- //
- //
- //
- self.close();
- } catch (SourceException | InvalidValueException e1) { //NOPMD
- //
- // Vaadin will display error
- //
- }
- }
- });
- }
-
- public boolean isSaved() {
- return this.isSaved;
- }
-
- public String getPDPId() {
- return this.textId.getValue();
- }
-
- public String getPDPName() {
- return this.textName.getValue();
- }
-
- public String getPDPDescription() {
- return this.textDescription.getValue();
- }
-
- @AutoGenerated
- private VerticalLayout buildMainLayout() {
- // common part: create layout
- mainLayout = new VerticalLayout();
- mainLayout.setImmediate(false);
- mainLayout.setWidth("-1px");
- mainLayout.setHeight("-1px");
- mainLayout.setMargin(true);
- mainLayout.setSpacing(true);
-
- // top-level component properties
- setWidth("-1px");
- setHeight("-1px");
-
- // textId
- textId = new TextField();
- textId.setCaption("PDP URL");
- textId.setImmediate(false);
- textId.setDescription("The URL is the ID of the PDP");
- textId.setWidth("-1px");
- textId.setHeight("-1px");
- textId.setRequired(true);
- textId.setInputPrompt("Eg. http://localhost:8080/pdp");
- mainLayout.addComponent(textId);
-
- // textName
- textName = new TextField();
- textName.setCaption("PDP Name");
- textName.setImmediate(false);
- textName.setWidth("-1px");
- textName.setHeight("-1px");
- mainLayout.addComponent(textName);
-
- // textDescription
- textDescription = new TextArea();
- textDescription.setCaption("PDP Description");
- textDescription.setImmediate(false);
- textDescription.setWidth("100.0%");
- textDescription.setHeight("-1px");
- textDescription.setNullSettingAllowed(true);
- mainLayout.addComponent(textDescription);
- mainLayout.setExpandRatio(textDescription, 1.0f);
-
- // buttonSave
- buttonSave = new Button();
- buttonSave.setCaption("Save");
- buttonSave.setImmediate(true);
- buttonSave.setWidth("-1px");
- buttonSave.setHeight("-1px");
- mainLayout.addComponent(buttonSave);
- mainLayout.setComponentAlignment(buttonSave, new Alignment(48));
-
- return mainLayout;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionBuilderComponent.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionBuilderComponent.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionBuilderComponent.java
deleted file mode 100644
index b231d70..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionBuilderComponent.java
+++ /dev/null
@@ -1,1078 +0,0 @@
-/*
- * 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.view.windows;
-
-import java.util.Map;
-
-import javax.xml.bind.JAXBElement;
-
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeSelectorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.FunctionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ObjectFactory;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.jpa.Attribute;
-import org.apache.openaz.xacml.admin.jpa.Datatype;
-import org.apache.openaz.xacml.admin.jpa.FunctionArgument;
-import org.apache.openaz.xacml.admin.jpa.FunctionDefinition;
-import org.apache.openaz.xacml.admin.model.ExpressionContainer;
-import org.apache.openaz.xacml.admin.util.AdminNotification;
-import org.apache.openaz.xacml.admin.util.JPAUtils;
-import org.apache.openaz.xacml.admin.util.XACMLFunctionValidator;
-import org.apache.openaz.xacml.admin.view.events.ApplyParametersChangedListener;
-import org.apache.openaz.xacml.util.XACMLObjectCopy;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Container.ItemSetChangeEvent;
-import com.vaadin.data.Container.ItemSetChangeListener;
-import com.vaadin.data.Item;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.event.Action;
-import com.vaadin.event.Action.Handler;
-import com.vaadin.event.ItemClickEvent;
-import com.vaadin.event.ItemClickEvent.ItemClickListener;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.ui.AbstractSelect.ItemCaptionMode;
-import com.vaadin.ui.AbstractSelect.ItemDescriptionGenerator;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.CheckBox;
-import com.vaadin.ui.Component;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.TreeTable;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class ExpressionBuilderComponent extends Window implements ApplyParametersChangedListener {
- /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
- @AutoGenerated
- private VerticalLayout mainLayout;
- @AutoGenerated
- private Button buttonSave;
- @AutoGenerated
- private TreeTable treeExpressions;
- @AutoGenerated
- private HorizontalLayout horizontalLayout_1;
- @AutoGenerated
- private CheckBox checkBoxShortName;
- @AutoGenerated
- private Button buttonClearAll;
- @AutoGenerated
- private Button buttonDeleteExpression;
- @AutoGenerated
- private Button buttonAddExpression;
- /*
- *
- *
- *
- */
- private static final long serialVersionUID = 1L;
- private static Log logger = LogFactory.getLog(ExpressionBuilderComponent.class);
-
- private static final Action ADD_EXPRESSION = new Action ("Add Expression");
- private static final Action EDIT_EXPRESSION = new Action ("Edit Expression");
- private static final Action DELETE_EXPRESSION = new Action ("Delete Expression");
- private static final Action ADD_ARGUMENT = new Action ("Add Argument");
- private static final Action EDIT_ARGUMENT = new Action ("Edit Argument");
- private static final Action DELETE_ARGUMENT = new Action ("Delete Argument");
-
- private final Object[] visibleColumns = new Object[] {ExpressionContainer.PROPERTY_NAME, ExpressionContainer.PROPERTY_ID, ExpressionContainer.PROPERTY_ID_SHORT, ExpressionContainer.PROPERTY_DATATYPE, ExpressionContainer.PROPERTY_DATATYPE_SHORT};
- private final String[] columnHeaders = new String[] {"Name", "XCAML ID or Value", "XCAML ID or Value", "Data Type ID", "Data Type ID"};
-
- private final ExpressionBuilderComponent self = this;
- private final Object parent;
- private final Map<VariableDefinitionType, PolicyType> variables;
- private final ExpressionContainer container;
- private boolean isSaved = false;
- /**
- * 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 ExpressionBuilderComponent(Object parent, Object root, FunctionArgument argument, Map<VariableDefinitionType, PolicyType> variables) {
- buildMainLayout();
-// setCompositionRoot(mainLayout);
- setContent(mainLayout);
- //
- // Save our data
- //
- this.parent = parent;
- this.variables = variables;
- this.container = new ExpressionContainer(parent, root, argument);
- //
- // Make sure we support the parent object
- //
- if (this.isSupported() == false) {
- throw new IllegalArgumentException("Unsupported object type");
- }
- //
- // Set our shortcuts
- //
- this.setCloseShortcut(KeyCode.ESCAPE);
- //
- // Finish our GUI initialization
- //
- this.initializeTree();
- this.initializeButtons();
- this.initializeCheckbox();
- //
- // Setup the buttons
- //
- this.setupButtons();
- }
-
- private boolean isSupported() {
- return this.isParentACondition() ||
- this.isParentAVariable() ||
- this.isParentAAssignment();
- }
-
- private boolean isParentACondition() {
- return this.parent instanceof ConditionType;
- }
-
- private boolean isParentAVariable() {
- return this.parent instanceof VariableDefinitionType;
- }
-
- private boolean isParentAAssignment() {
- return this.parent instanceof AttributeAssignmentExpressionType;
- }
-
- private void initializeTree() {
- //
- // Initialize GUI properties
- //
- this.treeExpressions.setImmediate(true);
- this.treeExpressions.setSelectable(true);
- //
- // Initialize the data source
- //
- this.treeExpressions.setContainerDataSource(this.container);
- this.treeExpressions.setItemCaptionMode(ItemCaptionMode.PROPERTY);
- this.treeExpressions.setVisibleColumns(this.visibleColumns);
- this.treeExpressions.setColumnHeaders(this.columnHeaders);
- this.treeExpressions.setColumnCollapsingAllowed(true);
- this.treeExpressions.setColumnCollapsed(ExpressionContainer.PROPERTY_ID, true);
- this.treeExpressions.setColumnCollapsed(ExpressionContainer.PROPERTY_DATATYPE, true);
- //
- // Add our action handler
- //
- this.treeExpressions.addActionHandler(new Handler() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public Action[] getActions(Object target, Object sender) {
- if (target == null) {
- if (self.container.size() == 0) {
- return new Action[] {ADD_EXPRESSION};
- }
- return null;
- }
- if (target instanceof ApplyType && XACMLFunctionValidator.canHaveMoreArguments((ApplyType) target)) {
- return new Action[] {ADD_ARGUMENT, EDIT_EXPRESSION, DELETE_EXPRESSION};
- }
- return new Action[] {EDIT_ARGUMENT, DELETE_ARGUMENT};
- }
-
- @Override
- public void handleAction(Action action, Object sender, Object target) {
- if (action == ADD_EXPRESSION && target == null) {
- self.addExpression(null, null);
- }
- if (action == EDIT_EXPRESSION && target != null) {
- self.editExpression(target, (ApplyType) self.container.getParent(target), (FunctionArgument) self.container.getArgument(target));
- }
- if (action == DELETE_EXPRESSION && target != null) {
- self.deleteExpression(target);
- }
- if (action == ADD_ARGUMENT && target != null && target instanceof ApplyType) {
- self.addArgument((ApplyType) target);
- }
- if (action == EDIT_ARGUMENT && target != null) {
- self.editExpression(target, (ApplyType) self.container.getParent(target), (FunctionArgument) self.container.getArgument(target));
- }
- if (action == DELETE_ARGUMENT && target != null) {
- self.deleteExpression(target);
- }
- }
- });
- //
- // Listen to double-click item selections
- //
- this.treeExpressions.addItemClickListener(new ItemClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void itemClick(ItemClickEvent event) {
- if (event.isDoubleClick()) {
- Object target = event.getItemId();//self.treeExpressions.getValue();
- if (target == null) {
- return;
- }
- self.editExpression(target, (ApplyType) self.container.getParent(target), (FunctionArgument) self.container.getArgument(target));
- }
- }
- });
- //
- // Listen when the user selects a row
- //
- this.treeExpressions.addValueChangeListener(new ValueChangeListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void valueChange(ValueChangeEvent event) {
- self.setupButtons();
- }
- });
- //
- // Listen to when the table contents change
- //
- this.treeExpressions.addItemSetChangeListener(new ItemSetChangeListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void containerItemSetChange(ItemSetChangeEvent event) {
- self.validateExpression();
- }
- });
- //
- // Expand columns automatically
- //
- this.treeExpressions.setColumnExpandRatio(ExpressionContainer.PROPERTY_NAME, 1.0f);
- this.treeExpressions.setColumnExpandRatio(ExpressionContainer.PROPERTY_ID, 1.0f);
- this.treeExpressions.setColumnExpandRatio(ExpressionContainer.PROPERTY_DATATYPE, 1.0f);
- //
- // Expand all the children
- //
- for (Object id : this.treeExpressions.getItemIds()) {
- this.treeExpressions.setCollapsed(id, false);
- }
- //
- // Have a description generator
- //
- this.treeExpressions.setItemDescriptionGenerator(new ItemDescriptionGenerator() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public String generateDescription(Component source, Object itemId, Object propertyId) {
- if (propertyId != null && propertyId.equals(ExpressionContainer.PROPERTY_NAME) && itemId instanceof ApplyType) {
- return ((ApplyType) itemId).getDescription();
- }
- return null;
- }
- });
- }
-
- private void initializeButtons() {
- this.buttonClearAll.setImmediate(true);
- this.buttonClearAll.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- self.clearAllExpressions();
- }
-
- });
-
- this.buttonAddExpression.setImmediate(true);
- this.buttonAddExpression.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- Object selected = self.treeExpressions.getValue();
- if (selected == null) {
- //
- // Adding a root expression
- //
- self.addExpression(null, null);
- } else {
- //
- // Adding an argument
- //
- if (selected instanceof ApplyType) {
- //
- // Get the function
- //
- self.addArgument((ApplyType) selected);
- }
- }
- }
- });
-
- this.buttonDeleteExpression.setImmediate(true);
- this.buttonDeleteExpression.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- Object id = self.treeExpressions.getValue();
- if (id == null) {
- logger.error("Delete button clicked on null selection");
- return;
- }
- self.deleteExpression(id);
- }
-
- });
-
- this.buttonSave.setImmediate(true);
- this.buttonSave.setClickShortcut(KeyCode.ENTER);
- this.buttonSave.setEnabled(false);
- this.buttonSave.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- //
- // TODO validate
- //
- //
- // Mark that we are saved
- //
- self.isSaved = true;
- //
- // Close the window
- //
- self.close();
- }
- });
- }
-
- protected void initializeCheckbox() {
- this.checkBoxShortName.setValue(true);
- this.checkBoxShortName.setImmediate(true);
- this.checkBoxShortName.addValueChangeListener(new ValueChangeListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void valueChange(ValueChangeEvent event) {
- self.treeExpressions.setColumnCollapsed(ExpressionContainer.PROPERTY_ID, self.checkBoxShortName.getValue());
- self.treeExpressions.setColumnCollapsed(ExpressionContainer.PROPERTY_DATATYPE, self.checkBoxShortName.getValue());
- self.treeExpressions.setColumnCollapsed(ExpressionContainer.PROPERTY_ID_SHORT, ! self.checkBoxShortName.getValue());
- self.treeExpressions.setColumnCollapsed(ExpressionContainer.PROPERTY_DATATYPE_SHORT, ! self.checkBoxShortName.getValue());
- }
- });
- }
-
- protected void setupButtons() {
- if (this.treeExpressions.size() == 0) {
- this.buttonAddExpression.setEnabled(true);
- this.buttonClearAll.setEnabled(false);
- this.buttonSave.setEnabled(false);
- } else {
- this.validateExpression();
- this.buttonAddExpression.setEnabled(false);
- this.buttonClearAll.setEnabled(true);
- }
- Object value = this.treeExpressions.getValue();
- if (value == null) {
- this.buttonDeleteExpression.setEnabled(false);
- } else {
- this.buttonDeleteExpression.setEnabled(true);
- }
- }
-
- protected void validateExpression() {
- boolean valid = false;
- boolean canHaveMore = false;
- if (this.isParentACondition()) {
- valid = XACMLFunctionValidator.validateCondition((ConditionType) this.parent);
- canHaveMore = XACMLFunctionValidator.canHaveMoreArguments((ConditionType) this.parent);
- } else if (this.isParentAVariable()) {
- valid = XACMLFunctionValidator.validateVariable((VariableDefinitionType) this.parent);
- canHaveMore = XACMLFunctionValidator.canHaveMoreArguments((VariableDefinitionType) this.parent);
- } else if (this.isParentAAssignment()) {
- valid = XACMLFunctionValidator.validateAssignment((AttributeAssignmentExpressionType)this.parent);
- canHaveMore = XACMLFunctionValidator.canHaveMoreArguments((AttributeAssignmentExpressionType) this.parent);
- }
- if (logger.isDebugEnabled()) {
- logger.debug("valid: " + valid + " canHaveMore: " + canHaveMore);
- }
-// this.buttonAddExpression.setEnabled(canHaveMore);
- this.buttonSave.setEnabled(valid);
- }
-
- protected void addArgument(final ApplyType parentApply) {
- //
- // Get the function
- //
- FunctionDefinition function = JPAUtils.findFunction(parentApply.getFunctionId());
- if (function != null) {
- FunctionArgument argument = XACMLFunctionValidator.getFunctionArgument(parentApply.getExpression().size() + 1, function);
- if (logger.isDebugEnabled()) {
- logger.debug("Add Argument: " + argument);
- }
- assert argument != null;
- //
- // Is this a high order bag function? And it's data type not defined? (most likely)
- //
- if (function.isHigherOrder() && argument.getDatatypeBean() == null) {
- if (logger.isDebugEnabled()) {
- logger.debug("isHighOrder and a null datatype bean");
- }
- //
- // Get what the data type restriction should be
- //
- try {
- assert parentApply.getExpression().size() > 0;
- JAXBElement<?> element = parentApply.getExpression().get(0);
- assert element != null && element.getValue() != null;
- Object declaredFunction = element.getValue();
- assert declaredFunction instanceof FunctionType;
- FunctionDefinition declaredFunctionDefinition = JPAUtils.findFunction(((FunctionType) declaredFunction).getFunctionId());
- assert declaredFunctionDefinition != null;
- if (logger.isDebugEnabled()) {
- logger.debug("declaredFunction is: " + declaredFunctionDefinition);
- }
- FunctionArgument declaredFunctionArgument = XACMLFunctionValidator.getFunctionArgument(parentApply.getExpression().size(), declaredFunctionDefinition);
- assert declaredFunctionArgument != null;
- if (logger.isDebugEnabled()) {
- logger.debug("declaredFunctionArgument is: " + declaredFunctionArgument);
- }
- //
- // Copy the argument
- //
- argument = new FunctionArgument(argument);
- argument.setDatatypeBean(declaredFunctionArgument.getDatatypeBean());
- } catch (Exception e) {
- logger.error("Exception while determining parent apply's FunctionType argument datatype.");
- }
-
- }
- self.addExpression(parentApply, argument);
- } else {
- AdminNotification.error("ApplyType does not have a function defined. Please define that first.");
- }
-
- }
-
- protected void addExpression(final ApplyType parentApply, final FunctionArgument argument) {
- if (logger.isDebugEnabled()) {
- logger.debug("Adding Expression: " + parentApply + " arg: " + argument);
- }
- //
- // First we need to select what Expression They want
- //
- final ExpressionSelectionWindow selector = new ExpressionSelectionWindow(parentApply,
- this.isParentAAssignment(),
- (argument != null ? argument.isBag() : false),
- (argument != null ? ! argument.isBag() : false));
- selector.setCaption("Select the Expression Type");
- selector.setModal(true);
- selector.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Was something selected?
- //
- String selection = selector.getSelection();
- if (selection == null) {
- return;
- }
- //
- // What did the user select?
- //
- if (selection.equals(ExpressionSelectionWindow.OPTION_APPLY)) {
- //
- self.editApply(new ApplyType(), parentApply, argument);
- //
- } else if (selection.equals(ExpressionSelectionWindow.OPTION_DESIGNATOR)) {
- //
- self.editAttribute(new AttributeDesignatorType(), parentApply, argument);
- //
- } else if (selection.equals(ExpressionSelectionWindow.OPTION_SELECTOR) ) {
- //
- self.editAttribute(new AttributeSelectorType(), parentApply, argument);
- //
- } else if (selection.equals(ExpressionSelectionWindow.OPTION_VALUE)) {
- //
- self.editValue(new AttributeValueType(), parentApply, argument);
- //
- } else if (selection.equals(ExpressionSelectionWindow.OPTION_VARIABLE)) {
- //
- self.editVariable(new VariableReferenceType(), parentApply, argument);
- //
- }
- }
- });
- selector.center();
- UI.getCurrent().addWindow(selector);
- }
-
- protected void editApply(final ApplyType apply, final ApplyType parent, final FunctionArgument argument) {
- if (logger.isDebugEnabled()) {
- logger.debug("editApply: " + apply + " parent: " + parent + " :" + argument);
- }
- //
- // Copy the apply and create its window
- //
- final ApplyType copyApply = XACMLObjectCopy.copy(apply);
- final ApplyEditorWindow window = new ApplyEditorWindow(copyApply, parent, argument, self.parent);
- window.setCaption("Edit The Apply Expression");
- window.setModal(true);
- //
- // Set ourselves as an ApplyParametersChanged listener
- //
- window.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user save?
- //
- if (window.isSaved() == false) {
- return;
- }
- //
- // Copy back the apply
- //
- apply.setDescription(copyApply.getDescription());
- apply.setFunctionId(copyApply.getFunctionId());
- //
- // Get the function information
- //
- FunctionDefinition function = JPAUtils.findFunction(apply.getFunctionId());
- assert function != null;
- //
- // Is this a new Apply?
- //
- if (self.container.containsId(apply)) {
- //
- // No - we are updating
- //
- self.container.updateItem(apply);
- } else {
- //
- // Is this a higher-order bag function?
- //
- if (function.isHigherOrder()) {
- //
- // Have the user select a function for it
- //
- final FunctionSelectionWindow functionSelection = new FunctionSelectionWindow(null);
- functionSelection.setCaption("Select Function");
- functionSelection.setModal(true);
- functionSelection.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user save?
- //
- if (functionSelection.isSaved() == false) {
- return;
- }
- //
- // Get the function
- //
- String function = functionSelection.getSelectedFunction();
- if (function == null || function.isEmpty()) {
- logger.error("Function window said it was saved, but there was no function.");
- return;
- }
- //
- // Create the function object
- //
- FunctionType hoFunction = new FunctionType();
- hoFunction.setFunctionId(function);
- //
- // Add it into the apply
- //
- apply.getExpression().add(new ObjectFactory().createFunction(hoFunction));
- //
- // New Item
- //
- Item item = self.container.addItem(apply, parent, argument);
- assert item != null;
- self.treeExpressions.setCollapsed(apply, false);
- self.treeExpressions.select(apply);
- }
- });
- functionSelection.center();
- UI.getCurrent().addWindow(functionSelection);
- } else {
- //
- // New Item
- //
- Item item = self.container.addItem(apply, parent, argument);
- assert item != null;
- self.treeExpressions.setCollapsed(apply, false);
- self.treeExpressions.select(apply);
- }
- }
- }
- });
- window.center();
- UI.getCurrent().addWindow(window);
- }
-
- protected void editAttribute(final Object target, final ApplyType parent, final FunctionArgument argument) {
- if (logger.isDebugEnabled()) {
- logger.debug("editAttribute: " + target + " parent: " + parent + " :" + argument);
- }
- //
- // Determine what the data type needs to be
- //
- Datatype datatype = null;
- if (parent == null && this.isParentACondition()) {
- datatype = JPAUtils.getBooleanDatatype();
- } else {
- if (argument != null) {
- datatype = argument.getDatatypeBean();
- }
- }
- //
- // Copy the attribute
- //
- final Object copyAttribute = XACMLObjectCopy.deepCopy(target);
- //
- // Create the window
- //
- final AttributeSelectionWindow window = new AttributeSelectionWindow(datatype, copyAttribute);
- if (target instanceof AttributeDesignatorType) {
- window.setCaption("Edit Designator " + (((AttributeDesignatorType) target).getAttributeId() != null ? ((AttributeDesignatorType) target).getAttributeId() : ""));
- } else {
- window.setCaption("Edit Selector " + (((AttributeSelectorType) target).getContextSelectorId() != null ? ((AttributeSelectorType) target).getContextSelectorId() : ""));
- }
- window.setModal(true);
- window.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user hit save?
- //
- if (window.isSaved() == false) {
- return;
- }
- //
- // Grab the attribute
- //
- Attribute attribute = window.getAttribute();
- if (attribute == null) {
- return;
- }
- //
- // Save it back into the original
- //
- if (target instanceof AttributeDesignatorType) {
- ((AttributeDesignatorType)target).setAttributeId(attribute.getXacmlId());
- ((AttributeDesignatorType)target).setCategory(attribute.getCategoryBean().getXacmlId());
- ((AttributeDesignatorType)target).setDataType(attribute.getDatatypeBean().getXacmlId());
- ((AttributeDesignatorType)target).setIssuer(attribute.getIssuer());
- ((AttributeDesignatorType)target).setMustBePresent(attribute.isMustBePresent());
- } else {
- ((AttributeSelectorType)target).setContextSelectorId(attribute.getXacmlId());
- ((AttributeSelectorType)target).setCategory(attribute.getCategoryBean().getXacmlId());
- ((AttributeSelectorType)target).setDataType(attribute.getDatatypeBean().getXacmlId());
- ((AttributeSelectorType)target).setPath(attribute.getSelectorPath());
- ((AttributeSelectorType)target).setMustBePresent(attribute.isMustBePresent());
- }
- //
- // Is this a new item?
- //
- if (self.container.containsId(target)) {
- //
- // No, just update the container
- //
- self.container.updateItem(target);
- } else {
- //
- // Yes a new item, add it in
- //
- //assert(self.container.addItem(JPAUtils.createDesignator(attribute), parent, argument) != null);
- Item item = self.container.addItem(target, parent, argument);
- assert item != null;
- self.treeExpressions.select(target);
- }
- }
- });
- window.center();
- UI.getCurrent().addWindow(window);
- }
-
- protected void editValue(final AttributeValueType value, final ApplyType parent, final FunctionArgument argument) {
- if (logger.isDebugEnabled()) {
- logger.debug("editvalue: " + value + " parent: " + parent + " :" + argument);
- }
- //
- // Copy the attribute value
- //
- final AttributeValueType copyValue = XACMLObjectCopy.copy(value);
- //
- // Get what the datatype should be
- //
- Datatype datatypeRestriction = null;
- //
- // Is this a root?
- //
- if (parent == null) {
- //
- // Check if our parent container is a condition
- //
- if (self.isParentACondition()) {
- //
- // We are only allowed to return boolean's
- //
- datatypeRestriction = JPAUtils.getBooleanDatatype();
- }
- } else {
- //
- // Are we an argument?
- //
- if (argument != null) {
- //
- // Yes - we are restricted to that argument's datatype
- //
- datatypeRestriction = argument.getDatatypeBean();
- }
- }
- //
- // Create the window
- //
- final AttributeValueEditorWindow window = new AttributeValueEditorWindow(copyValue, datatypeRestriction);
- window.setCaption("Edit Attribute Value");
- window.setModal(true);
- window.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user click save?
- //
- if (window.isSaved() == false) {
- return;
- }
- //
- // Yes - get the value
- //
- value.getContent().clear();
- for (Object o : copyValue.getContent()) {
- value.getContent().add(o);
- }
- value.setDataType(copyValue.getDataType());
- //
- // Was this a new value?
- //
- if (self.container.containsId(value)) {
- //
- // No - update it
- //
- self.container.updateItem(value);
- } else {
- //
- // Yes - add it in
- //
- Item item = self.container.addItem(value, parent, argument);
- assert item != null;
- }
- }
- });
- window.center();
- UI.getCurrent().addWindow(window);
- }
-
- protected void editVariable(final VariableReferenceType variable, final ApplyType parent, final FunctionArgument argument) {
- if (logger.isDebugEnabled()) {
- logger.debug("editVariable: " + variable + " parent: " + parent + " :" + argument);
- }
- //
- // Copy the variable
- //
- final VariableReferenceType copyVariable = XACMLObjectCopy.copy(variable);
- //
- // Create the window
- //
- final VariableReferenceEditorWindow window = new VariableReferenceEditorWindow(copyVariable, this.variables);
- window.setCaption("Edit Variable Reference");
- window.setModal(true);
- window.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user click save?
- //
- if (window.isSaved() == false) {
- return;
- }
- //
- // Copy the variable changes back
- //
- variable.setVariableId(copyVariable.getVariableId());
- //
- // Is this a new one?
- //
- if (self.container.containsId(variable)) {
- //
- // No - update it
- //
- self.container.updateItem(variable);
- } else {
- //
- // Yes - add it
- //
- Item item = self.container.addItem(variable, parent, argument);
- assert item != null;
- }
- }
- });
- window.center();
- UI.getCurrent().addWindow(window);
- }
-
- protected void editFunction(final FunctionType func, final ApplyType parent, final FunctionArgument argument) {
- if (logger.isDebugEnabled()) {
- logger.debug("editFunction: " + func + " parent: " + parent + " :" + argument);
- }
-
- final FunctionSelectionWindow functionSelection = new FunctionSelectionWindow((func != null ? func.getFunctionId() : null));
- functionSelection.setCaption("Edit Function");
- functionSelection.setModal(true);
- functionSelection.addCloseListener(new CloseListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void windowClose(CloseEvent e) {
- //
- // Did the user save?
- //
- if (functionSelection.isSaved() == false) {
- return;
- }
- //
- // Get the function
- //
- String function = functionSelection.getSelectedFunction();
- if (function == null || function.isEmpty()) {
- logger.error("Function window said it was saved, but there was no function.");
- return;
- }
- //
- // New one?
- //
- if (func == null) {
- //
- // Create the function object
- //
- FunctionType hoFunction = new FunctionType();
- hoFunction.setFunctionId(function);
- //
- // Add it into the apply
- //
- assert parent.getExpression().size() == 0;
- parent.getExpression().add(new ObjectFactory().createFunction(hoFunction));
- //
- // New Item
- //
- Item item = self.container.addItem(func, parent, argument);
- assert item != null;
- self.treeExpressions.setCollapsed(parent, false);
- self.treeExpressions.select(func);
- } else {
- //
- // Editing an existing
- //
- func.setFunctionId(function);
- self.container.updateItem(func);
- //
- // Warn user
- //
- if (parent.getExpression().size() > 1) {
- AdminNotification.warn("You have updated the function ID. The rest of the arguments may be invalid for the function. Please verify the other arguments.");
- }
- }
- }
- });
- functionSelection.center();
- UI.getCurrent().addWindow(functionSelection);
- }
-
- protected void editExpression(final Object target, final ApplyType parent, final FunctionArgument argument) {
- if (target instanceof ApplyType) {
- //
- this.editApply((ApplyType) target, parent, argument);
- //
- } else if (target instanceof AttributeValueType) {
- //
- this.editValue((AttributeValueType) target,parent, argument);
- //
- } else if (target instanceof AttributeDesignatorType || target instanceof AttributeSelectorType) {
- //
- this.editAttribute(target, parent, argument);
- //
- } else if (target instanceof VariableReferenceType) {
- //
- this.editVariable((VariableReferenceType) target, parent, argument);
- //
- } else if (target instanceof FunctionType) {
- //
- this.editFunction((FunctionType) target, parent, argument);
- //
- }
- }
-
- protected void deleteExpression(Object target) {
- if (this.container.isRoot(target)) {
- if (this.treeExpressions.removeAllItems() == false) {
- logger.error("Failed to remove everything.");
- }
- } else {
- if (this.treeExpressions.removeItem(target) == false) {
- logger.error("Failed to remove " + target);
- }
- }
- this.setupButtons();
- }
-
- protected void clearAllExpressions() {
- if (this.treeExpressions.removeAllItems() == false) {
- logger.error("Failed to remove everything.");
- }
- this.setupButtons();
- }
-
- @Override
- public void applyParameterChanged(ApplyType apply, ApplyType parent, FunctionArgument argument, Object container) {
- logger.info("applyParameterChanged: " + apply + " " + parent + " " + argument + " " + container);
- //
- // TODO - figure out if this something being edited, or a new one
- //
- }
-
- public boolean isSaved() {
- return this.isSaved;
- }
-
- @AutoGenerated
- private VerticalLayout buildMainLayout() {
- // common part: create layout
- mainLayout = new VerticalLayout();
- mainLayout.setImmediate(false);
- mainLayout.setWidth("100%");
- mainLayout.setHeight("-1px");
- mainLayout.setMargin(true);
- mainLayout.setSpacing(true);
-
- // top-level component properties
- setWidth("-1px");
- setHeight("-1px");
-
- // horizontalLayout_1
- horizontalLayout_1 = buildHorizontalLayout_1();
- mainLayout.addComponent(horizontalLayout_1);
- mainLayout.setExpandRatio(horizontalLayout_1, 1.0f);
-
- // treeExpressions
- treeExpressions = new TreeTable();
- treeExpressions.setImmediate(false);
- treeExpressions.setWidth("100.0%");
- treeExpressions.setHeight("-1px");
- mainLayout.addComponent(treeExpressions);
- mainLayout.setExpandRatio(treeExpressions, 1.0f);
-
- // buttonSave
- buttonSave = new Button();
- buttonSave.setCaption("Save");
- buttonSave.setImmediate(true);
- buttonSave.setWidth("-1px");
- buttonSave.setHeight("-1px");
- mainLayout.addComponent(buttonSave);
- mainLayout.setComponentAlignment(buttonSave, 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("-1px");
- horizontalLayout_1.setHeight("-1px");
- horizontalLayout_1.setMargin(false);
- horizontalLayout_1.setSpacing(true);
-
- // buttonAddExpression
- buttonAddExpression = new Button();
- buttonAddExpression.setCaption("Add Expression");
- buttonAddExpression.setImmediate(true);
- buttonAddExpression.setWidth("-1px");
- buttonAddExpression.setHeight("-1px");
- horizontalLayout_1.addComponent(buttonAddExpression);
-
- // buttonDeleteExpression
- buttonDeleteExpression = new Button();
- buttonDeleteExpression.setCaption("Delete Expression");
- buttonDeleteExpression.setImmediate(true);
- buttonDeleteExpression.setWidth("-1px");
- buttonDeleteExpression.setHeight("-1px");
- horizontalLayout_1.addComponent(buttonDeleteExpression);
-
- // buttonClearAll
- buttonClearAll = new Button();
- buttonClearAll.setCaption("Clear All");
- buttonClearAll.setImmediate(true);
- buttonClearAll.setDescription("Clears all the expressions.");
- buttonClearAll.setWidth("-1px");
- buttonClearAll.setHeight("-1px");
- horizontalLayout_1.addComponent(buttonClearAll);
-
- // checkBoxShortName
- checkBoxShortName = new CheckBox();
- checkBoxShortName.setCaption("Display Short XACML ID's");
- checkBoxShortName.setImmediate(false);
- checkBoxShortName
- .setDescription("If checked, the right-most string of the function and datatype URI's will only be displayed.");
- checkBoxShortName.setWidth("-1px");
- checkBoxShortName.setHeight("-1px");
- horizontalLayout_1.addComponent(checkBoxShortName);
-
- return horizontalLayout_1;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionEditorWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionEditorWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionEditorWindow.java
deleted file mode 100644
index 0ee6eea..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionEditorWindow.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.view.windows;
-
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.ui.ComboBox;
-import com.vaadin.ui.Tree;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class ExpressionEditorWindow extends Window {
-
- /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
- @AutoGenerated
- private VerticalLayout mainLayout;
- @AutoGenerated
- private Tree treeExpression;
- @AutoGenerated
- private ComboBox comboBox;
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- /**
- * 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 ExpressionEditorWindow() {
- buildMainLayout();
- //setCompositionRoot(mainLayout);
- setContent(mainLayout);
-
- // TODO add user code here
- }
-
- @AutoGenerated
- private VerticalLayout buildMainLayout() {
- // common part: create layout
- mainLayout = new VerticalLayout();
- mainLayout.setImmediate(false);
- mainLayout.setWidth("-1px");
- mainLayout.setHeight("-1px");
- mainLayout.setMargin(true);
- mainLayout.setSpacing(true);
-
- // top-level component properties
- setWidth("-1px");
- setHeight("-1px");
-
- // comboBox
- comboBox = new ComboBox();
- comboBox.setImmediate(false);
- comboBox.setWidth("-1px");
- comboBox.setHeight("-1px");
- mainLayout.addComponent(comboBox);
-
- // treeExpression
- treeExpression = new Tree();
- treeExpression.setImmediate(false);
- treeExpression.setWidth("100.0%");
- treeExpression.setHeight("-1px");
- mainLayout.addComponent(treeExpression);
- mainLayout.setExpandRatio(treeExpression, 1.0f);
-
- return mainLayout;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/c68f98c5/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionSelectionWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionSelectionWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionSelectionWindow.java
deleted file mode 100644
index d7bfeb0..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ExpressionSelectionWindow.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * 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.view.windows;
-
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType;
-
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.ui.Alignment;
-import com.vaadin.ui.Button;
-import com.vaadin.ui.Button.ClickEvent;
-import com.vaadin.ui.Button.ClickListener;
-import com.vaadin.ui.OptionGroup;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class ExpressionSelectionWindow extends Window {
-
- public static String OPTION_APPLY = "Apply";
- public static String OPTION_VALUE = "Attribute Value";
- public static String OPTION_DESIGNATOR = "Attribute Designator";
- public static String OPTION_SELECTOR = "Attribute Selector";
- public static String OPTION_VARIABLE = "Variable Reference";
-
- /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
- @AutoGenerated
- private VerticalLayout mainLayout;
- @AutoGenerated
- private Button buttonSave;
- @AutoGenerated
- private OptionGroup optionGroupExpression;
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private final ExpressionSelectionWindow self = this;
- boolean isSaved = false;
- String selection = null;
- /**
- * 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.
- * @param parentApply
- */
- // TODO - Refactor. Unused formal parameter parentApply. Either determine
- // whether this is unnecessary and remove it (including removing it from all
- // constructor consumers), or use it.
- // NOTE: parentApply was originally used by passing to private initializeOption method.
- // However, the parameter was unused by that method also.
- // Setting to NOPMD for now.
- public ExpressionSelectionWindow(ApplyType parentApply, boolean isAttributeAssignment, boolean mustBeBag, boolean mustBeValue) { //NOPMD
- buildMainLayout();
- //setCompositionRoot(mainLayout);
- setContent(mainLayout);
- //
- // Set our shortcuts
- //
- this.setCloseShortcut(KeyCode.ESCAPE);
- //
- // Finish GUI initialization
- //
- // this.initializeOption(parentApply, isAttributeAssignment, mustBeBag, mustBeValue);
- this.initializeOption(isAttributeAssignment, mustBeBag, mustBeValue);
- this.initializeButtons();
- }
-
- // private void initializeOption(ApplyType parentApply, boolean isAttributeAssignment, boolean mustBeBag, boolean mustBeValue) {
- private void initializeOption(boolean isAttributeAssignment, boolean mustBeBag, boolean mustBeValue) {
-// if (!isAttributeAssignment) {
- this.optionGroupExpression.addItem(OPTION_APPLY);
-// }
- if (!mustBeBag || mustBeValue) {
- this.optionGroupExpression.addItem(OPTION_VALUE);
- }
- if (mustBeBag || !mustBeValue) {
- this.optionGroupExpression.addItem(OPTION_DESIGNATOR);
- this.optionGroupExpression.addItem(OPTION_SELECTOR);
- }
- this.optionGroupExpression.addItem(OPTION_VARIABLE);
- //
- // Default Selection
- //
- if (!isAttributeAssignment) {
- this.optionGroupExpression.select(OPTION_APPLY);
- } else {
- if (!mustBeBag || mustBeValue) {
- this.optionGroupExpression.select(OPTION_VALUE);
- } else {
- this.optionGroupExpression.select(OPTION_DESIGNATOR);
- }
- }
- }
-
- private void initializeButtons() {
- this.buttonSave.addClickListener(new ClickListener() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void buttonClick(ClickEvent event) {
- self.isSaved = true;
- self.selection = self.optionGroupExpression.getValue().toString();
- self.close();
- }
- });
- }
-
- public String getSelection() {
- if (this.isSaved == false) {
- return null;
- }
- return this.selection;
- }
-
- @AutoGenerated
- private VerticalLayout buildMainLayout() {
- // common part: create layout
- mainLayout = new VerticalLayout();
- mainLayout.setImmediate(false);
- mainLayout.setWidth("-1px");
- mainLayout.setHeight("-1px");
- mainLayout.setMargin(true);
- mainLayout.setSpacing(true);
-
- // top-level component properties
- setWidth("-1px");
- setHeight("-1px");
-
- // optionGroupExpression
- optionGroupExpression = new OptionGroup();
- optionGroupExpression
- .setCaption("Select One Of The Following Types of Expressions");
- optionGroupExpression.setImmediate(false);
- optionGroupExpression.setWidth("-1px");
- optionGroupExpression.setHeight("-1px");
- mainLayout.addComponent(optionGroupExpression);
-
- // buttonSave
- buttonSave = new Button();
- buttonSave.setCaption("Select");
- buttonSave.setImmediate(false);
- buttonSave.setWidth("-1px");
- buttonSave.setHeight("-1px");
- mainLayout.addComponent(buttonSave);
- mainLayout.setComponentAlignment(buttonSave, new Alignment(24));
-
- return mainLayout;
- }
-
-}