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:11 UTC

[07/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/validators/RFC822NameValidator.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/RFC822NameValidator.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/RFC822NameValidator.java
deleted file mode 100644
index 4211cd7..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/RFC822NameValidator.java
+++ /dev/null
@@ -1,45 +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.validators;
-
-import java.text.ParseException;
-
-import org.apache.openaz.xacml.std.datatypes.RFC822Name;
-import com.vaadin.data.Validator;
-
-public class RFC822NameValidator implements Validator {
-	private static final long serialVersionUID = 1L;
-
-	public RFC822NameValidator() {
-	}
-
-	@Override
-	public void validate(Object value) throws InvalidValueException {
-		if (value instanceof String) {
-			try {
-				RFC822Name.newInstance((String) value);
-			} catch (ParseException e) {
-				throw new InvalidValueException(e.getLocalizedMessage());
-			}
-		} else
-			throw new InvalidValueException("Unrecognized RFC822 Name");
-	}
-}

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/validators/StringValidator.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/StringValidator.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/StringValidator.java
deleted file mode 100644
index 7d03d38..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/StringValidator.java
+++ /dev/null
@@ -1,38 +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.validators;
-
-import com.vaadin.data.Validator;
-
-public class StringValidator implements Validator {
-	private static final long serialVersionUID = 1L;
-
-	public StringValidator() {
-		// TODO Auto-generated constructor stub
-	}
-
-	@Override
-	public void validate(Object value) throws InvalidValueException {
-		// TODO Auto-generated method stub
-		
-	}
-
-}

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/validators/TimeValidator.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/TimeValidator.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/TimeValidator.java
deleted file mode 100644
index b93dafe..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/TimeValidator.java
+++ /dev/null
@@ -1,45 +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.validators;
-
-import java.text.ParseException;
-
-import org.apache.openaz.xacml.std.datatypes.ISO8601Time;
-import com.vaadin.data.Validator;
-
-public class TimeValidator implements Validator {
-	private static final long serialVersionUID = 1L;
-
-	public TimeValidator() {
-	}
-
-	@Override
-	public void validate(Object value) throws InvalidValueException {
-		if (value instanceof String) {
-			try {
-				ISO8601Time.fromISO8601TimeString((String) value);
-			} catch (ParseException e) {
-				throw new InvalidValueException(e.getLocalizedMessage());
-			}
-		} else
-			throw new InvalidValueException("Unrecognized Time");
-	}
-}

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/validators/ValidatorFactory.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/ValidatorFactory.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/ValidatorFactory.java
deleted file mode 100644
index 354d662..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/ValidatorFactory.java
+++ /dev/null
@@ -1,71 +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.validators;
-
-import org.apache.openaz.xacml.admin.jpa.Datatype;
-import org.apache.openaz.xacml.api.XACML3;
-import com.vaadin.data.Validator;
-
-public class ValidatorFactory {
-
-	public static Validator	newInstance(Datatype datatype) {
-		
-		if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_ANYURI)) {
-			return new AnyURIValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_BASE64BINARY)) {
-			return new Base64BinaryValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_BOOLEAN)) {
-			return new BooleanValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_DATE)) {
-			return new DateValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_DATETIME)) {
-			return new DateTimeValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_DAYTIMEDURATION)) {
-			return new DayTimeDurationValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_DNSNAME)) {
-			return new DNSNameValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_DOUBLE)) {
-			return new DoubleValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_HEXBINARY)) {
-			return new HexBinaryValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_INTEGER)) {
-			return new IntegerValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_IPADDRESS)) {
-			return new IpAddressValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_RFC822NAME)) {
-			return new RFC822NameValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_STRING)) {
-			return new StringValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_TIME)) {
-			return new TimeValidator();
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_X500NAME)) {
-			return new X500NameValidator();
-		/*
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_XPATHEXPRESSION)) {
-			
-		*/
-		} else if (datatype.getIdentifer().equals(XACML3.ID_DATATYPE_YEARMONTHDURATION)) {
-			return new YearMonthDurationValidator();
-		}
-		
-		return null;
-	}
-}

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/validators/X500NameValidator.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/X500NameValidator.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/X500NameValidator.java
deleted file mode 100644
index 977a13d..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/X500NameValidator.java
+++ /dev/null
@@ -1,44 +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.validators;
-
-import javax.security.auth.x500.X500Principal;
-
-import com.vaadin.data.Validator;
-
-public class X500NameValidator implements Validator {
-	private static final long serialVersionUID = 1L;
-
-	public X500NameValidator() {
-	}
-
-	@Override
-	public void validate(Object value) throws InvalidValueException {
-		if (value instanceof String) {
-			try {
-				new X500Principal((String) value);
-			} catch (IllegalArgumentException e) {
-				throw new InvalidValueException(e.getLocalizedMessage());
-			}
-		} else
-			throw new InvalidValueException("Unrecognized X500 Name");
-	}
-}

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/validators/YearMonthDurationValidator.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/YearMonthDurationValidator.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/YearMonthDurationValidator.java
deleted file mode 100644
index 8d53629..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/validators/YearMonthDurationValidator.java
+++ /dev/null
@@ -1,45 +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.validators;
-
-import java.text.ParseException;
-
-import org.apache.openaz.xacml.std.datatypes.XPathYearMonthDuration;
-import com.vaadin.data.Validator;
-
-public class YearMonthDurationValidator implements Validator {
-	private static final long serialVersionUID = 1L;
-
-	public YearMonthDurationValidator() {
-	}
-
-	@Override
-	public void validate(Object value) throws InvalidValueException {
-		if (value instanceof String) {
-			try {
-				XPathYearMonthDuration.newInstance((String) value);
-			} catch (ParseException e) {
-				throw new InvalidValueException(e.getLocalizedMessage());
-			}
-		} else
-			throw new InvalidValueException("Unrecognized YearMonthDuration");
-	}
-}

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/AdviceEditorWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AdviceEditorWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AdviceEditorWindow.java
deleted file mode 100644
index 802eb43..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AdviceEditorWindow.java
+++ /dev/null
@@ -1,208 +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.AdviceExpressionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.EffectType;
-
-import org.apache.openaz.xacml.admin.XacmlAdminUI;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-import com.vaadin.data.Validator.InvalidValueException;
-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.TextField;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class AdviceEditorWindow 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 OptionGroup optionGroupEffect;
-	@AutoGenerated
-	private TextField textFieldAdviceID;
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private final AdviceEditorWindow self = this;
-	private final AdviceExpressionType advice;
-	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 AdviceEditorWindow(AdviceExpressionType advice) {
-		buildMainLayout();
-		//setCompositionRoot(mainLayout);
-		setContent(mainLayout);
-		//
-		// Save
-		//
-		this.advice = advice;
-		//
-		// Set our shortcuts
-		//
-		this.setCloseShortcut(KeyCode.ESCAPE);
-		//
-		// Initialize GUI
-		//
-		this.initialize();
-		this.initializeButton();
-		//
-		// Focus
-		//
-		this.textFieldAdviceID.focus();
-	}
-	
-	protected void initialize() {
-		//
-		// The text field for the advice ID
-		//
-		this.textFieldAdviceID.setNullRepresentation("");
-		if (this.advice.getAdviceId() == null) {
-			this.textFieldAdviceID.setValue(XacmlAdminUI.getDomain());
-		} else {
-			this.textFieldAdviceID.setValue(advice.getAdviceId());
-		}
-		this.textFieldAdviceID.setRequiredError("You must have an ID for the advice");
-		//
-		// The option
-		//
-		this.optionGroupEffect.setRequiredError("You must select Permit or Deny for the advice");
-		this.optionGroupEffect.addItem(EffectType.PERMIT);
-		this.optionGroupEffect.addItem(EffectType.DENY);
-		if (this.advice.getAppliesTo() == null) {
-			this.optionGroupEffect.select(EffectType.PERMIT);
-		} else {
-			if (this.advice.getAppliesTo().equals(EffectType.PERMIT)) {
-				this.optionGroupEffect.select(EffectType.PERMIT);
-			} else {
-				this.optionGroupEffect.select(EffectType.DENY);
-			}
-		}
-	}
-	
-	protected void initializeButton() {
-		this.buttonSave.setImmediate(true);
-		this.buttonSave.setClickShortcut(KeyCode.ENTER);
-		this.buttonSave.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				try {
-					//
-					// Commit
-					//
-					self.textFieldAdviceID.commit();
-					self.optionGroupEffect.commit();
-					//
-					// all good, save everything
-					//
-					self.advice.setAdviceId(self.textFieldAdviceID.getValue());
-					self.advice.setAppliesTo((EffectType) self.optionGroupEffect.getValue());
-					//
-					// Set ourselves as saved
-					//
-					self.isSaved = true;
-					//
-					// Close the window
-					//
-					self.close();
-				} catch (SourceException | InvalidValueException e) { //NOPMD
-					//
-					// Vaadin displays the error
-					//
-				}
-			}			
-		});
-	}
-	
-	public boolean isSaved() {
-		return this.isSaved;
-	}
-	
-	public AdviceExpressionType getAdvice() {
-		return this.advice;
-	}
-
-	@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");
-		
-		// textFieldAdviceID
-		textFieldAdviceID = new TextField();
-		textFieldAdviceID.setCaption("Advice ID");
-		textFieldAdviceID.setImmediate(false);
-		textFieldAdviceID.setWidth("-1px");
-		textFieldAdviceID.setHeight("-1px");
-		textFieldAdviceID.setInvalidAllowed(false);
-		textFieldAdviceID.setRequired(true);
-		textFieldAdviceID.setInputPrompt("Eg. urn:com:foo:advice:sample");
-		mainLayout.addComponent(textFieldAdviceID);
-		
-		// optionGroupEffect
-		optionGroupEffect = new OptionGroup();
-		optionGroupEffect.setCaption("Applies To");
-		optionGroupEffect.setImmediate(false);
-		optionGroupEffect.setWidth("-1px");
-		optionGroupEffect.setHeight("-1px");
-		optionGroupEffect.setInvalidAllowed(false);
-		optionGroupEffect.setRequired(true);
-		mainLayout.addComponent(optionGroupEffect);
-		
-		// 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/ApplyEditorWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ApplyEditorWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ApplyEditorWindow.java
deleted file mode 100644
index e8496e5..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/ApplyEditorWindow.java
+++ /dev/null
@@ -1,600 +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.List;
-import java.util.Map;
-
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.XacmlAdminUI;
-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.util.JPAUtils;
-import org.apache.openaz.xacml.admin.view.events.ApplyParametersChangedListener;
-import org.apache.openaz.xacml.admin.view.events.ApplyParametersChangedNotifier;
-import org.apache.openaz.xacml.api.XACML3;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-import com.vaadin.data.Container;
-import com.vaadin.data.Container.Filter;
-import com.vaadin.data.Item;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.data.util.BeanItemContainer;
-import com.vaadin.data.util.filter.Compare;
-import com.vaadin.data.util.filter.SimpleStringFilter;
-import com.vaadin.event.FieldEvents.TextChangeEvent;
-import com.vaadin.event.FieldEvents.TextChangeListener;
-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.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.ComboBox;
-import com.vaadin.ui.HorizontalLayout;
-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 ApplyEditorWindow extends Window implements ApplyParametersChangedNotifier {
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-	@AutoGenerated
-	private Button buttonSelect;
-	@AutoGenerated
-	private Table tableFunction;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayout_1;
-	@AutoGenerated
-	private CheckBox checkBoxFilterIsBag;
-	@AutoGenerated
-	private ComboBox comboBoxDatatypeFilter;
-	@AutoGenerated
-	private TextField textFieldFilter;
-	@AutoGenerated
-	private TextArea textAreaDescription;
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private static Log logger	= LogFactory.getLog(ApplyEditorWindow.class);
-	private final ApplyEditorWindow self = this;
-	private final ApplyParametersChangedNotifier notifier = new ApplyParametersChangedNotifier.BasicNotifier();
-	private final BeanItemContainer<FunctionDefinition>	container = new BeanItemContainer<FunctionDefinition>(FunctionDefinition.class);
-	private final ApplyType apply;
-	private final ApplyType applyParent;
-	private final FunctionArgument argument;
-	private final Object parent;
-	private boolean isSaved = false;
-	private FunctionDefinition function = 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 parent 
-	 * @param parentApply 
-	 */
-	public ApplyEditorWindow(ApplyType apply, ApplyType parentApply, FunctionArgument argument, Object parent) {
-		buildMainLayout();
-		//setCompositionRoot(mainLayout);
-		setContent(mainLayout);
-		//
-		// Save
-		//
-		this.apply = apply;
-		this.applyParent = parentApply;
-		this.argument = argument;
-		this.parent = parent;
-		logger.info(this.apply + " " + this.applyParent + " " + this.argument + " " + this.parent);
-		//
-		// Set our shortcuts
-		//
-		this.setCloseShortcut(KeyCode.ESCAPE);
-		//
-		// Initialize
-		//
-		this.textAreaDescription.setValue(apply.getDescription());
-		this.textAreaDescription.setNullRepresentation("");
-		this.initializeButton();
-		this.initializeTable();
-		this.initializeFilters();
-		//
-		// focus
-		//
-		this.textFieldFilter.focus();
-	}
-	
-	protected void initializeTable() {
-		//
-		// Setup GUI properties
-		//
-		this.tableFunction.setImmediate(true);
-		this.tableFunction.setSelectable(true);
-		this.tableFunction.setNullSelectionAllowed(false);
-		this.tableFunction.setRequired(true);
-		this.tableFunction.setRequiredError("You MUST select a function for the Apply");
-		//
-		// Set its data source
-		//
-		this.tableFunction.setContainerDataSource(this.container);
-		this.tableFunction.setVisibleColumns(new Object[] {"xacmlid", "shortname", "datatypeBean", "isBagReturn"});
-		this.tableFunction.setColumnHeaders(new String[] {"Function Xacml ID", "ID", "Return Data Type", "Return Bag?"});
-		//
-		// Determine appropriate filters
-		//
-		Datatype datatypeId = null;
-		if (this.applyParent == null) {
-			if (this.parent instanceof ConditionType) {
-				//
-				// Only boolean functions allowed
-				//
-				datatypeId = JPAUtils.findDatatype(XACML3.ID_DATATYPE_BOOLEAN);
-			}
-		} else {
-			String parentFunction = this.applyParent.getFunctionId();
-			this.function = JPAUtils.findFunction(parentFunction);
-			if (this.function == null) {
-				throw new IllegalArgumentException("applyParent's function is not found:" + parentFunction);
-			}
-			if (this.argument == null) {
-				throw new IllegalArgumentException("Need to know what argument apply is ");
-			}
-			datatypeId = this.argument.getDatatypeBean();
-		}
-		Map<Datatype, List<FunctionDefinition>> functionMap = JPAUtils.getFunctionDatatypeMap();
-		if (datatypeId == null) {
-			//
-			// All functions are available
-			//
-			for (Datatype id : functionMap.keySet()) {
-				this.addTableEntries(functionMap.get(id));
-			}
-		} else {
-			for (Datatype id : functionMap.keySet()) {
-				if (id == null) {
-					if (datatypeId == null) {
-						this.addTableEntries(functionMap.get(id));
-						break;
-					}
-					continue;
-				}
-				if (id.getId() == datatypeId.getId()) {
-					this.addTableEntries(functionMap.get(id));
-					break;
-				}
-			}
-		}
-		//
-		// Setup double-click
-		//
-		this.tableFunction.addItemClickListener(new ItemClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void itemClick(ItemClickEvent event) {
-				if (event.isDoubleClick()) {
-					self.selected();
-				}
-			}
-		});
-		//
-		// Value change listener
-		//
-		this.tableFunction.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				logger.info("valueChange " + self.tableFunction.getValue());
-				if (self.tableFunction.getValue() != null) {
-					self.buttonSelect.setEnabled(true);
-				} else {
-					self.buttonSelect.setEnabled(false);
-				}
-			}			
-		});
-		//
-		// Select current value if possible
-		//
-		if (this.apply != null && this.apply.getFunctionId() != null && this.apply.getFunctionId().isEmpty() == false) {
-			FunctionDefinition current = JPAUtils.findFunction(this.apply.getFunctionId());
-			if (current != null) {
-				this.tableFunction.select(current);
-				this.tableFunction.setCurrentPageFirstItemId(current);
-			} else {
-				logger.warn("Could not find function in table for " + this.apply.getFunctionId());
-			}
-		} else {
-			this.buttonSelect.setEnabled(false);
-		}
-	}
-	
-	protected void addTableEntries(List<FunctionDefinition> functions) {
-		if (functions == null) {
-			logger.warn("NULL list of functions, cannot add to table.");
-			return;
-		}
-		for (FunctionDefinition function : functions) {
-			//
-			// Just check if this function is available for this
-			// apply.
-			//
-//			if (XACMLFunctionValidator.isFunctionAvailable(function, this.apply, this.argument)) {
-				this.container.addBean(function);
-//			} else {
-//				if (logger.isDebugEnabled()) {
-//					logger.debug("Function not available: " + function);
-//				}
-//			}
-		}
-	}
-	
-	protected void initializeButton() {
-		this.buttonSelect.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				self.selected();
-			}
-		});
-	}
-	
-	protected void initializeFilters() {
-		this.textFieldFilter.setImmediate(true);
-		this.textFieldFilter.addTextChangeListener(new TextChangeListener() {
-			private static final long serialVersionUID = 1L;
-			SimpleStringFilter currentFilter = null;
-			
-			@Override
-			public void textChange(TextChangeEvent event) {
-				//
-				// Remove current filter
-				//
-				if (this.currentFilter != null) {
-					self.container.removeContainerFilter(this.currentFilter);
-					this.currentFilter = null;
-				}
-				//
-				// Get the text
-				//
-				String value = event.getText();
-				if (value != null && value.length() > 0) {
-					//
-					// Add the new filter
-					//
-					this.currentFilter = new SimpleStringFilter("shortname", value, true, false);
-					self.container.addContainerFilter(this.currentFilter);
-				}
-			}
-		});
-		
-		this.comboBoxDatatypeFilter.setContainerDataSource(((XacmlAdminUI) UI.getCurrent()).getDatatypes());
-		this.comboBoxDatatypeFilter.setImmediate(true);
-		this.comboBoxDatatypeFilter.setItemCaptionMode(ItemCaptionMode.PROPERTY);
-		this.comboBoxDatatypeFilter.setItemCaptionPropertyId("xacmlId");
-		this.comboBoxDatatypeFilter.setNullSelectionAllowed(true);
-		this.comboBoxDatatypeFilter.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-			Container.Filter currentFilter = null;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				//
-				// Remove current filter
-				//
-				if (this.currentFilter != null) {
-					self.container.removeContainerFilter(this.currentFilter);
-					this.currentFilter = null;
-				}
-				//
-				// Get the current selection
-				//
-				Object id = self.comboBoxDatatypeFilter.getValue();
-				if (id == null) {
-					return;
-				}
-				//
-				// Setup the filter
-				//
-				final Datatype datatype = ((XacmlAdminUI) UI.getCurrent()).getDatatypes().getItem(id).getEntity();
-				this.currentFilter = new Container.Filter() {
-					private static final long serialVersionUID = 1L;
-
-					@Override
-					public boolean passesFilter(Object itemId, Item item) throws UnsupportedOperationException {
-						if (itemId instanceof FunctionDefinition) {
-							Datatype dt = ((FunctionDefinition) itemId).getDatatypeBean();
-							if (dt == null) {
-								return false;
-							}
-							return dt.getXacmlId().equals(datatype.getXacmlId());
-						}
-						return false;
-					}
-					
-					@Override
-					public boolean appliesToProperty(Object propertyId) {
-						if (propertyId != null && propertyId.toString().equals("datatypeBean")) {
-							return true;
-						}
-						return false;
-					}
-				};
-				self.container.addContainerFilter(this.currentFilter);
-			}
-		});
-		
-		this.checkBoxFilterIsBag.setImmediate(true);
-		this.checkBoxFilterIsBag.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-			Filter currentFilter = null;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				//
-				// Remove current filter
-				//
-				if (this.currentFilter != null) {
-					self.container.removeContainerFilter(this.currentFilter);
-					this.currentFilter = null;
-				}
-				//
-				// Is it checked?
-				//
-				if (self.checkBoxFilterIsBag.getValue() == false) {
-					//
-					// Nope, get out of here
-					//
-					return;
-				}
-				//
-				// Add the filter
-				//
-				this.currentFilter = new Compare.Equal("isBagReturn", true);
-				self.container.addContainerFilter(this.currentFilter);
-			}
-		});
-	}
-	
-	protected	void	selected() {
-		//
-		// Is there a selected function?
-		//
-		try {
-			//
-			// Run the commit
-			//
-			this.textAreaDescription.commit();
-			this.tableFunction.commit();
-			//
-			// Commit worked, get the selected function
-			//
-			Object id = this.tableFunction.getValue();
-			//
-			// Sanity check, it *should* never be null
-			// unless someone changed the initialization code.
-			//
-			if (id == null || ! (id instanceof FunctionDefinition)) {
-				throw new InvalidValueException(this.tableFunction.getRequiredError());
-			}
-			//
-			// Get the actual function and save it into the apply
-			//
-			this.function = (FunctionDefinition) id;
-			this.apply.setDescription(this.textAreaDescription.getValue());
-			this.apply.setFunctionId(function.getXacmlid());
-		} catch (SourceException | InvalidValueException e) {
-			//
-			// Vaadin GUI will display message
-			//
-			return;
-		}
-		/**
-		//
-		// Make sure the arguments are good
-		//
-		final ApplyType copyApply = XACMLObjectCopy.copy(this.apply);
-		final ApplyArgumentsEditorWindow window = new ApplyArgumentsEditorWindow(copyApply, this.function);
-		window.setCaption("Define Arguments for " + this.function.getShortname());
-		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;
-				}
-				//
-				// Save our arguments
-				//
-				self.apply.getExpression().clear();
-				self.apply.getExpression().addAll(copyApply.getExpression());
-				//
-				// We are saved
-				//
-				self.isSaved = true;
-				//
-				// Fire
-				//
-				self.fireEvent(self.apply, self.applyParent, self.argument, self.parent);
-				//
-				// Close the apply editor window
-				//
-				self.close();
-			}
-		});
-		window.center();
-		UI.getCurrent().addWindow(window);
-		**/
-		//
-		// We are saved
-		//
-		self.isSaved = true;
-		//
-		// Fire
-		//
-		self.fireEvent(self.apply, self.applyParent, self.argument, self.parent);
-		//
-		// Close the apply editor window
-		//
-		self.close();
-	}
-
-	@Override
-	public boolean addListener(ApplyParametersChangedListener listener) {
-		return this.notifier.addListener(listener);
-	}
-
-	@Override
-	public boolean removeListener(ApplyParametersChangedListener listener) {
-		return this.notifier.removeListener(listener);
-	}
-
-	@Override
-	public void fireEvent(ApplyType apply, ApplyType parent, FunctionArgument argument, Object container) {
-		this.notifier.fireEvent(apply, parent, argument, container);
-	}
-
-	public boolean isSaved() {
-		return this.isSaved;
-	}
-	
-	public FunctionDefinition	getSelectedFunction() {
-		return this.function;
-	}
-	
-	@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");
-		
-		// horizontalLayout_1
-		horizontalLayout_1 = buildHorizontalLayout_1();
-		mainLayout.addComponent(horizontalLayout_1);
-		
-		// tableFunction
-		tableFunction = new Table();
-		tableFunction.setCaption("Select A Function");
-		tableFunction.setImmediate(false);
-		tableFunction.setWidth("100.0%");
-		tableFunction.setHeight("-1px");
-		tableFunction.setInvalidAllowed(false);
-		tableFunction.setRequired(true);
-		mainLayout.addComponent(tableFunction);
-		mainLayout.setExpandRatio(tableFunction, 1.0f);
-		
-		// buttonSelect
-		buttonSelect = new Button();
-		buttonSelect.setCaption("Select and Continue");
-		buttonSelect.setImmediate(true);
-		buttonSelect.setWidth("-1px");
-		buttonSelect.setHeight("-1px");
-		mainLayout.addComponent(buttonSelect);
-		mainLayout.setComponentAlignment(buttonSelect, 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);
-		
-		// textAreaDescription
-		textAreaDescription = new TextArea();
-		textAreaDescription.setCaption("Enter A Description");
-		textAreaDescription.setImmediate(false);
-		textAreaDescription.setWidth("50.0%");
-		textAreaDescription.setHeight("-1px");
-		horizontalLayout_1.addComponent(textAreaDescription);
-		
-		// textFieldFilter
-		textFieldFilter = new TextField();
-		textFieldFilter.setCaption("Filter Function By ID");
-		textFieldFilter.setImmediate(false);
-		textFieldFilter.setWidth("-1px");
-		textFieldFilter.setHeight("-1px");
-		horizontalLayout_1.addComponent(textFieldFilter);
-		horizontalLayout_1.setComponentAlignment(textFieldFilter,
-				new Alignment(9));
-		
-		// comboBoxDatatypeFilter
-		comboBoxDatatypeFilter = new ComboBox();
-		comboBoxDatatypeFilter.setCaption("Filter By Data Type");
-		comboBoxDatatypeFilter.setImmediate(false);
-		comboBoxDatatypeFilter.setWidth("-1px");
-		comboBoxDatatypeFilter.setHeight("-1px");
-		horizontalLayout_1.addComponent(comboBoxDatatypeFilter);
-		horizontalLayout_1.setComponentAlignment(comboBoxDatatypeFilter,
-				new Alignment(9));
-		
-		// checkBoxFilterIsBag
-		checkBoxFilterIsBag = new CheckBox();
-		checkBoxFilterIsBag.setCaption("Is Bag Filter");
-		checkBoxFilterIsBag.setImmediate(false);
-		checkBoxFilterIsBag.setWidth("-1px");
-		checkBoxFilterIsBag.setHeight("-1px");
-		horizontalLayout_1.addComponent(checkBoxFilterIsBag);
-		horizontalLayout_1.setComponentAlignment(checkBoxFilterIsBag,
-				new Alignment(9));
-		
-		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/AttributeAssignmentExpressionEditorWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeAssignmentExpressionEditorWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeAssignmentExpressionEditorWindow.java
deleted file mode 100644
index a9306fa..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeAssignmentExpressionEditorWindow.java
+++ /dev/null
@@ -1,228 +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.AttributeAssignmentExpressionType;
-
-import org.apache.openaz.xacml.admin.XacmlAdminUI;
-import org.apache.openaz.xacml.admin.jpa.Category;
-import com.vaadin.addon.jpacontainer.EntityItem;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-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.TextField;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class AttributeAssignmentExpressionEditorWindow 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 tableCategories;
-	@AutoGenerated
-	private TextField textFieldIssuer;
-	@AutoGenerated
-	private TextField textFieldAttributeID;
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private final AttributeAssignmentExpressionEditorWindow self = this;
-	private final AttributeAssignmentExpressionType assignment;
-	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 AttributeAssignmentExpressionEditorWindow(AttributeAssignmentExpressionType assignment) {
-		buildMainLayout();
-		//setCompositionRoot(mainLayout);
-		setContent(mainLayout);
-		//
-		// Save
-		//
-		this.assignment = assignment;
-		//
-		// Set our shortcuts
-		//
-		this.setCloseShortcut(KeyCode.ESCAPE);
-		//
-		// Initialize GUI
-		//
-		this.initializeText();
-		this.initializeTable();
-		this.initializeButton();
-		//
-		// Focus
-		//
-		this.textFieldAttributeID.focus();
-	}
-	
-	protected void initializeText() {
-		//
-		//
-		//
-		this.textFieldAttributeID.setNullRepresentation("");
-		if (this.assignment.getAttributeId() == null) {
-			this.textFieldAttributeID.setValue(XacmlAdminUI.getDomain());
-		} else {
-			this.textFieldAttributeID.setValue(this.assignment.getAttributeId());
-		}
-		this.textFieldAttributeID.setRequiredError("You must have an attribute id for the assignment expression.");
-		//
-		//
-		//
-		this.textFieldIssuer.setNullRepresentation("");
-		this.textFieldIssuer.setValue(this.assignment.getIssuer());
-	}
-	
-	protected void initializeTable() {
-		this.tableCategories.setContainerDataSource(((XacmlAdminUI) UI.getCurrent()).getCategories());
-		this.tableCategories.setVisibleColumns(new Object[] {"xacmlId"});
-		this.tableCategories.setColumnHeaders(new String[] {"XACML ID"});
-		this.tableCategories.setSelectable(true);
-		this.tableCategories.setNullSelectionAllowed(true);
-		this.tableCategories.setPageLength(((XacmlAdminUI) UI.getCurrent()).getCategories().size());
-	}
-	
-	protected void initializeButton() {
-		this.buttonSave.setClickShortcut(KeyCode.ENTER);
-		this.buttonSave.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				try {
-					//
-					// Commit
-					//
-					self.textFieldAttributeID.commit();
-					self.textFieldIssuer.commit();
-					self.tableCategories.commit();
-					//
-					// Save
-					//
-					self.assignment.setAttributeId(self.textFieldAttributeID.getValue());
-					self.assignment.setIssuer(self.textFieldIssuer.getValue());
-					Object cat = self.tableCategories.getValue();
-					if (cat != null) {
-						EntityItem<Category> entity = ((XacmlAdminUI) UI.getCurrent()).getCategories().getItem(cat);
-						if (entity != null && entity.getEntity() != null) {
-							self.assignment.setCategory(entity.getEntity().getXacmlId());
-						} else {
-							self.assignment.setCategory(null);
-						}
-					} else {
-						self.assignment.setCategory(null);
-					}
-					//
-					// Set ourselves as saved
-					//
-					self.isSaved = true;
-					//
-					// close window
-					//
-					self.close();
-				} catch (SourceException e) { //NOPMD
-					//
-					// Vaadin displays error GUI
-					//
-				}
-			}
-		});
-	}
-	
-	public boolean isSaved() {
-		return this.isSaved;
-	}
-	
-	public AttributeAssignmentExpressionType getAssignment () {
-		return this.assignment;
-	}
-
-	@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");
-		
-		// textFieldAttributeID
-		textFieldAttributeID = new TextField();
-		textFieldAttributeID.setCaption("Attribute Assignment ID");
-		textFieldAttributeID.setImmediate(false);
-		textFieldAttributeID.setWidth("-1px");
-		textFieldAttributeID.setHeight("-1px");
-		textFieldAttributeID.setInvalidAllowed(false);
-		textFieldAttributeID.setRequired(true);
-		mainLayout.addComponent(textFieldAttributeID);
-		
-		// textFieldIssuer
-		textFieldIssuer = new TextField();
-		textFieldIssuer.setCaption("Issuer (Optional)");
-		textFieldIssuer.setImmediate(false);
-		textFieldIssuer.setWidth("-1px");
-		textFieldIssuer.setHeight("-1px");
-		textFieldIssuer.setNullSettingAllowed(true);
-		mainLayout.addComponent(textFieldIssuer);
-		
-		// tableCategories
-		tableCategories = new Table();
-		tableCategories.setCaption("Category (Optional)");
-		tableCategories.setImmediate(false);
-		tableCategories.setWidth("100.0%");
-		tableCategories.setHeight("-1px");
-		mainLayout.addComponent(tableCategories);
-		
-		// 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/AttributeEditorWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeEditorWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeEditorWindow.java
deleted file mode 100644
index 62e9c1a..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeEditorWindow.java
+++ /dev/null
@@ -1,336 +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 org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.openaz.xacml.admin.XacmlAdminUI;
-import org.apache.openaz.xacml.admin.jpa.Attribute;
-import org.apache.openaz.xacml.admin.jpa.ConstraintType;
-import org.apache.openaz.xacml.admin.jpa.Datatype;
-import org.apache.openaz.xacml.admin.view.fields.ConstraintField;
-import org.apache.openaz.xacml.admin.view.fields.DesignatorSelectorField;
-import org.apache.openaz.xacml.api.Identifier;
-import org.apache.openaz.xacml.api.XACML3;
-import com.vaadin.addon.jpacontainer.EntityItem;
-import com.vaadin.addon.jpacontainer.fieldfactory.SingleSelectConverter;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.fieldgroup.FieldGroup;
-import com.vaadin.data.fieldgroup.FieldGroup.CommitException;
-import com.vaadin.data.fieldgroup.PropertyId;
-import com.vaadin.data.util.filter.Compare;
-import com.vaadin.data.util.filter.Not;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.shared.ui.combobox.FilteringMode;
-import com.vaadin.ui.AbstractSelect.ItemCaptionMode;
-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.ComboBox;
-import com.vaadin.ui.FormLayout;
-import com.vaadin.ui.TextArea;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.Window;
-
-public class AttributeEditorWindow extends Window {
-	private static final long serialVersionUID = 1L;
-	private static final Log logger	= LogFactory.getLog(AttributeEditorWindow.class);
-	private AttributeEditorWindow self = this;
-	
-	private boolean isSaved = false;
-	private Attribute attribute;
-	
-	private FormLayout mainLayout = new FormLayout();
-	
-	@PropertyId("isDesignator")
-	DesignatorSelectorField selectDesignator;
-	
-	@PropertyId("selectorPath")
-	TextField selectorPath = new TextField("Attribute Selector Path");
-	
-	@PropertyId("xacmlId")
-	TextField xacmlID = new TextField("XACML ID");
-
-	@PropertyId("categoryBean")
-	ComboBox category = new ComboBox("Category");
-	
-	@PropertyId("description")
-	TextArea descriptionField = new TextArea("Description");
-	
-	@PropertyId("datatypeBean")
-	ComboBox datatype = new ComboBox("DataType");
-	
-	@PropertyId("constraintType")
-	ComboBox constraintTypes = new ComboBox("Constraint Type");
-	
-	@PropertyId("constraintValues")
-	ConstraintField constraintValues;
-	
-	Button saveButton = new Button("Save");
-	
-	FieldGroup fieldGroup = 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.
-	 */
-	public AttributeEditorWindow(EntityItem<Attribute> entityItem) {
-		//
-		// Save our attribute
-		//
-		this.attribute = entityItem.getEntity();
-		if (logger.isDebugEnabled()) {
-			logger.debug("Editing attribute: " + entityItem.getEntity().toString());
-		}
-		//
-		// Set our shortcuts
-		//
-		this.setCloseShortcut(KeyCode.ESCAPE);
-		//
-		// Create our main layout
-		//
-		this.setContent(mainLayout);
-		//
-		// Finish setting up the main layout
-		//
-		this.mainLayout.setSpacing(true);
-		this.mainLayout.setMargin(true);
-		//
-		// Setup option group, binding the
-		// field group doesn't seem to work.
-		//
-		this.selectDesignator = new DesignatorSelectorField(entityItem);
-		this.selectDesignator.setCaption("Select the Attribute Type");
-		this.selectDesignator.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				Object value = self.selectDesignator.getValue();
-				if (value == null || ! (value instanceof Character)) {
-					self.selectorPath.setVisible(false);
-				}
-				if (((Character) value) == '1') {
-					self.selectorPath.setVisible(false);
-				} else {
-					self.selectorPath.setVisible(true);
-				}
-			}			
-		});
-		//
-		// Setup selector path
-		//
-		this.selectorPath.setImmediate(true);
-		this.selectorPath.setNullRepresentation("");
-		this.selectorPath.setWidth("100%");
-		//
-		// Setup the Category combo
-		//
-		this.category.setContainerDataSource(((XacmlAdminUI) UI.getCurrent()).getCategories());
-		this.category.setItemCaptionMode(ItemCaptionMode.PROPERTY);
-		this.category.setItemCaptionPropertyId("xacmlId");
-		this.category.setFilteringMode(FilteringMode.CONTAINS);
-		this.category.setImmediate(true);
-		this.category.setNullSelectionAllowed(false);
-		this.category.setConverter(new SingleSelectConverter<Object>(this.category));
-		//
-		// Setup the Datatype combo
-		//
-		this.datatype.setContainerDataSource(((XacmlAdminUI) UI.getCurrent()).getDatatypes());
-		this.datatype.setItemCaptionMode(ItemCaptionMode.PROPERTY);
-		this.datatype.setItemCaptionPropertyId("xacmlId");
-		this.datatype.setFilteringMode(FilteringMode.CONTAINS);
-		this.datatype.setImmediate(true);
-		this.datatype.setNullSelectionAllowed(false);
-		this.datatype.setConverter(new SingleSelectConverter<Object>(this.datatype));
-		//
-		// Setup the constraint type combo
-		//
-		this.constraintTypes.setContainerDataSource(((XacmlAdminUI) UI.getCurrent()).getConstraintTypes());
-		this.constraintTypes.setItemCaptionMode(ItemCaptionMode.PROPERTY);
-		this.constraintTypes.setItemCaptionPropertyId("constraintType");
-		this.constraintTypes.setFilteringMode(FilteringMode.CONTAINS);
-		this.constraintTypes.setImmediate(true);
-		this.constraintTypes.setNullSelectionAllowed(true);
-		this.constraintTypes.setConverter(new SingleSelectConverter<Object>(this.constraintTypes));
-		//
-		// Setup the constraint value custom field
-		//
-		this.constraintValues = new ConstraintField(entityItem);
-		//
-		// Finish laying out the main layout
-		//
-		this.mainLayout.addComponent(this.selectDesignator);
-		this.mainLayout.addComponent(this.selectorPath);
-		this.mainLayout.addComponent(this.xacmlID);
-		this.mainLayout.addComponent(this.category);
-		this.mainLayout.addComponent(this.descriptionField);
-		this.mainLayout.addComponent(this.datatype);
-		this.mainLayout.addComponent(this.constraintTypes);
-		this.mainLayout.addComponent(this.constraintValues);
-		//
-		// Now create our field group and bind our bean items
-		// This will populate the components with the attribute's
-		// current value.
-		//
-		this.fieldGroup = new FieldGroup(entityItem);
-		this.fieldGroup.bindMemberFields(this);
-		//
-		// Finishing setting up after the bind. There are some components
-		// where initializing the bind causes some properties to be reset.
-		//
-		this.xacmlID.setWidth("100%");
-		this.descriptionField.setNullRepresentation("");
-		this.descriptionField.setWidth("100%");
-		this.setupDatatype(this.attribute.getDatatypeBean().getIdentifer());
-		this.datatype.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				Identifier id = self.getCurrentDatatype();
-				if (id != null) {
-					self.setupDatatype(id);
-				}
-			}			
-		});
-		//
-		// Listen to when constraint type changes
-		//
-		this.constraintTypes.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				Object value = self.constraintTypes.getValue();
-				if (value == null) {
-					self.constraintValues.resetContent(null, self.getCurrentDatatype());
-				} else {
-					ConstraintType newValue = ((XacmlAdminUI) UI.getCurrent()).getConstraintTypes().getItem(value).getEntity();
-					self.constraintValues.resetContent(newValue, self.getCurrentDatatype());
-				}
-			}
-		});
-		//
-		// Setup our "SAVE" button to commit the fields
-		//
-		this.mainLayout.addComponent(this.saveButton);
-		this.mainLayout.setComponentAlignment(this.saveButton, Alignment.MIDDLE_CENTER);
-		this.saveButton.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				try {
-					//
-					// SAVE the latest values
-					//
-					fieldGroup.commit();
-					//
-					// Set that we did save the attribute
-					//
-					self.isSaved = true;
-					//
-					// Close the window
-					//
-					self.close();
-				} catch (CommitException e) {
-					logger.error("Failed to commit fields", e);
-				}
-			}
-			
-		});
-		//
-		// Add our close listener so we can discard anything that was changed.
-		//
-		this.addCloseListener(new CloseListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void windowClose(CloseEvent e) {
-				if (self.isSaved == false) {
-					logger.info("discarding");
-					//
-					// Discard any changes to the existing JPA container entity
-					//
-					self.fieldGroup.discard();
-					//
-					// Make sure there are no filters on the container
-					//
-					((XacmlAdminUI) UI.getCurrent()).getConstraintTypes().removeAllContainerFilters();
-				}
-			}
-			
-		});
-		//
-		// Set focus
-		//
-		this.xacmlID.focus();
-	}
-	
-	private void setupDatatype(Identifier datatype) {
-		if (datatype.equals(XACML3.ID_DATATYPE_INTEGER) ||
-				datatype.equals(XACML3.ID_DATATYPE_DOUBLE)) {
-			((XacmlAdminUI) UI.getCurrent()).getConstraintTypes().removeAllContainerFilters();
-			this.constraintTypes.setEnabled(true);
-			this.constraintValues.resetDatatype(datatype);
-			return;
-		}
-		if (datatype.equals(XACML3.ID_DATATYPE_STRING)) {
-			((XacmlAdminUI) UI.getCurrent()).getConstraintTypes().addContainerFilter(new Not(new Compare.Equal("constraintType", ConstraintType.RANGE_TYPE)));
-			if (this.attribute.getConstraintType() != null && 
-					this.attribute.getConstraintType().getConstraintType() != null &&
-					this.attribute.getConstraintType().getConstraintType().equals(ConstraintType.RANGE_TYPE)) {
-				this.attribute.setConstraintType(null);
-			}
-			this.constraintValues.resetDatatype(datatype);
-			return;
-		}
-		//
-		// No constraint for all other datatypes
-		//
-		this.attribute.setConstraintType(null);
-		this.constraintTypes.select(null);
-		this.constraintTypes.setEnabled(false);
-	}
-	
-	private Identifier getCurrentDatatype() {
-		Object id = self.datatype.getValue();
-		if (id != null) {
-			EntityItem<Datatype> dt = ((XacmlAdminUI) UI.getCurrent()).getDatatypes().getItem(id);
-			if (dt != null) {
-				return dt.getEntity().getIdentifer();
-			}
-		}
-		return null;
-	}
-		
-	public boolean isSaved() {
-		return this.isSaved;
-	}
-}

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/AttributeSelectionWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeSelectionWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeSelectionWindow.java
deleted file mode 100644
index b1448bf..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeSelectionWindow.java
+++ /dev/null
@@ -1,396 +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.AttributeDesignatorType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeSelectorType;
-
-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.util.JPAUtils;
-import org.apache.openaz.xacml.admin.view.components.AttributeDictionarySelectorComponent;
-import org.apache.openaz.xacml.admin.view.components.AttributeSimpleCreatorComponent;
-import org.apache.openaz.xacml.admin.view.components.AttributeStandardSelectorComponent;
-import org.apache.openaz.xacml.admin.view.events.AttributeChangedEventListener;
-import org.apache.openaz.xacml.admin.view.events.AttributeChangedEventNotifier;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Buffered.SourceException;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator.InvalidValueException;
-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.CheckBox;
-import com.vaadin.ui.CustomComponent;
-import com.vaadin.ui.HorizontalLayout;
-import com.vaadin.ui.OptionGroup;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class AttributeSelectionWindow extends Window implements AttributeChangedEventListener {
-
-	/*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
-	
-	@AutoGenerated
-	private VerticalLayout mainLayout;
-	@AutoGenerated
-	private Button buttonSave;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayoutAttribute;
-	@AutoGenerated
-	private HorizontalLayout horizontalLayout_1;
-	@AutoGenerated
-	private VerticalLayout verticalLayout_2;
-	@AutoGenerated
-	private CheckBox checkBoxMustBePresent;
-	@AutoGenerated
-	private TextField textFieldIssuer;
-	@AutoGenerated
-	private OptionGroup optionGroupAttribute;
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private static Log logger	= LogFactory.getLog(AttributeSelectionWindow.class);
-	private final AttributeSelectionWindow self = this;
-	private final Datatype datatype;
-	private final Attribute defaultAttribute;
-	private AttributeChangedEventNotifier currentComponent = null;
-	private Attribute attribute = null;
-	private boolean isSaved = false;
-	
-	public static final String	ATTRIBUTE_OPTION_DICTIONARY = "Use Attribute From Dictionary";
-	public static final String	ATTRIBUTE_OPTION_STANDARD = "Use A Standard Attribute";
-	public static final String	ATTRIBUTE_OPTION_INPUT = "Input A New Attribute";
-	public static final String[] ATTRIBUTE_OPTIONS = new String[] {ATTRIBUTE_OPTION_DICTIONARY, ATTRIBUTE_OPTION_STANDARD, ATTRIBUTE_OPTION_INPUT};
-	
-	/**
-	 * 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 AttributeSelectionWindow(Datatype datatype, Object defaultAttribute) {
-		buildMainLayout();
-		//setCompositionRoot(mainLayout);
-		setContent(mainLayout);
-		//
-		// Save data
-		//
-		this.datatype = datatype;
-		if (defaultAttribute == null) {
-			this.defaultAttribute = null;
-		} else {
-			//
-			// Given a default attribute
-			//
-			Attribute tempAttribute;
-			if (defaultAttribute instanceof AttributeDesignatorType) {
-				tempAttribute = JPAUtils.createAttribute((AttributeDesignatorType) defaultAttribute);
-			} else if (defaultAttribute instanceof AttributeSelectorType) {
-				tempAttribute = JPAUtils.createAttribute((AttributeSelectorType) defaultAttribute);
-			} else {
-				this.defaultAttribute = null;
-				throw new IllegalArgumentException("Selection window only works with designator or selector objects.");
-			}
-			//
-			// See if the attribute exists in our dictionary
-			//
-			Attribute dictionaryAttribute = JPAUtils.findAttribute(tempAttribute);
-			if (dictionaryAttribute != null) {
-				this.defaultAttribute = dictionaryAttribute;
-			} else {
-				this.defaultAttribute = tempAttribute;
-			}
-		}
-		//
-		// Close shortcut
-		//
-		this.setCloseShortcut(KeyCode.ESCAPE);
-		//
-		// Initialize GUI
-		//
-		this.initializeOption();
-		this.initializeButtons();
-		this.initializeAttribute();
-		//
-		// Setup attribute
-		//
-		this.resetAttributeOption();
-		//
-		// Focus
-		//
-	}
-	
-	protected void initializeOption() {
-		//
-		// Setup datasource and GUI properties
-		//
-		this.optionGroupAttribute.setImmediate(true);
-		this.optionGroupAttribute.addItem(ATTRIBUTE_OPTION_DICTIONARY);
-		this.optionGroupAttribute.addItem(ATTRIBUTE_OPTION_STANDARD);
-		this.optionGroupAttribute.addItem(ATTRIBUTE_OPTION_INPUT);
-		//
-		// Respond to events
-		//
-		this.optionGroupAttribute.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				self.resetAttributeOption();
-			}
-		});
-	}
-	
-	protected void initializeButtons() {
-		this.buttonSave.setClickShortcut(KeyCode.ENTER);
-		this.buttonSave.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				try {
-					//
-					// Commit everything??
-					//
-					self.textFieldIssuer.commit();
-					self.checkBoxMustBePresent.commit();
-					self.currentComponent.commit();
-					//
-					// Save to the attribute
-					//
-					String issuer = self.textFieldIssuer.getValue();
-					if (issuer == null || issuer.length() == 0) {
-						self.attribute.setIssuer(null);
-					} else {
-						self.attribute.setIssuer(issuer);
-					}
-					self.attribute.setMustBePresent(self.checkBoxMustBePresent.getValue());
-					//
-					// Mark as saved
-					//
-					self.isSaved = true;
-					//
-					// Close the window
-					//
-					self.close();
-				} catch (SourceException | InvalidValueException e) { //NOPMD
-					//
-					// Vaadin displays the error
-					//
-				}
-			}
-		});
-	}
-		
-	protected void initializeAttribute() {
-		//
-		// Are we editing something?
-		//
-		if (this.defaultAttribute == null) {
-			//
-			// No, this is a new attribute being created
-			//
-			this.optionGroupAttribute.select(ATTRIBUTE_OPTION_STANDARD);
-			return;
-		}
-		//
-		// Yes, is it in our dictionary?
-		//
-		Attribute attribute = JPAUtils.findAttribute(this.defaultAttribute);
-		if (attribute != null) {
-			//
-			// Yes its in our dictionary
-			//
-			this.attribute = attribute;
-			this.optionGroupAttribute.select(ATTRIBUTE_OPTION_DICTIONARY);
-			return;
-		}
-		//
-		// Is it a standard attribute?
-		//
-		attribute = JPAUtils.isStandardAttribute(this.defaultAttribute);
-		if (attribute == null) {
-			//
-			// No, start editing via custom input attribute
-			//
-			this.attribute = this.defaultAttribute;
-			this.optionGroupAttribute.select(ATTRIBUTE_OPTION_INPUT);
-			return;
-		}
-		//
-		// Yes - its a standard attribute
-		//
-		this.attribute = attribute;
-		this.optionGroupAttribute.select(ATTRIBUTE_OPTION_STANDARD);
-	}
-	
-	protected void resetAttributeOption() {
-		//
-		// Remove GUI components from layout
-		//
-		this.horizontalLayoutAttribute.removeAllComponents();
-		this.currentComponent = null;
-		//
-		// Grab our currently selected option value
-		//
-		Object value = self.optionGroupAttribute.getValue();
-		//
-		// What is it set to?
-		//
-		if (value.toString().equals(ATTRIBUTE_OPTION_DICTIONARY)) {
-			this.currentComponent = new AttributeDictionarySelectorComponent(this.datatype, this.defaultAttribute);
-		} else if (value.toString().equals(ATTRIBUTE_OPTION_STANDARD)) {
-			this.currentComponent = new AttributeStandardSelectorComponent(this.datatype, this.defaultAttribute);
-		} else if (value.toString().equals(ATTRIBUTE_OPTION_INPUT)) {
-			this.currentComponent = new AttributeSimpleCreatorComponent(this.datatype, this.defaultAttribute);
-		} else {
-			logger.error("Unknown option" + value);
-			return;
-		}
-		this.currentComponent.addListener(this);
-		this.horizontalLayoutAttribute.addComponent((CustomComponent) this.currentComponent);
-		this.currentComponent.fireAttributeChanged(this.currentComponent.getAttribute());
-	}
-	
-	@Override
-	public void attributeChanged(Attribute attribute) {
-		if (logger.isDebugEnabled()) {
-			logger.debug("attributeChanged: " + attribute);
-		}
-		this.attribute = attribute;
-		if (attribute == null) {
-			this.buttonSave.setEnabled(false);
-		} else {
-			this.buttonSave.setEnabled(true);
-		}
-	}
-	
-	public boolean isSaved() {
-		return this.isSaved;
-	}
-	
-	public Attribute	getAttribute() {
-		return this.attribute;
-	}
-	
-	@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");
-		
-		// horizontalLayout_1
-		horizontalLayout_1 = buildHorizontalLayout_1();
-		mainLayout.addComponent(horizontalLayout_1);
-		
-		// horizontalLayoutAttribute
-		horizontalLayoutAttribute = new HorizontalLayout();
-		horizontalLayoutAttribute.setImmediate(false);
-		horizontalLayoutAttribute.setWidth("-1px");
-		horizontalLayoutAttribute.setHeight("-1px");
-		horizontalLayoutAttribute.setMargin(false);
-		mainLayout.addComponent(horizontalLayoutAttribute);
-		mainLayout.setExpandRatio(horizontalLayoutAttribute, 1.0f);
-		
-		// buttonSave
-		buttonSave = new Button();
-		buttonSave.setCaption("Select");
-		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);
-		
-		// optionGroupAttribute
-		optionGroupAttribute = new OptionGroup();
-		optionGroupAttribute.setCaption("Attribute Source");
-		optionGroupAttribute.setImmediate(false);
-		optionGroupAttribute.setWidth("-1px");
-		optionGroupAttribute.setHeight("-1px");
-		optionGroupAttribute.setInvalidAllowed(false);
-		horizontalLayout_1.addComponent(optionGroupAttribute);
-		
-		// verticalLayout_2
-		verticalLayout_2 = buildVerticalLayout_2();
-		horizontalLayout_1.addComponent(verticalLayout_2);
-		
-		return horizontalLayout_1;
-	}
-
-	@AutoGenerated
-	private VerticalLayout buildVerticalLayout_2() {
-		// common part: create layout
-		verticalLayout_2 = new VerticalLayout();
-		verticalLayout_2.setImmediate(false);
-		verticalLayout_2.setWidth("-1px");
-		verticalLayout_2.setHeight("-1px");
-		verticalLayout_2.setMargin(true);
-		verticalLayout_2.setSpacing(true);
-		
-		// textFieldIssuer
-		textFieldIssuer = new TextField();
-		textFieldIssuer.setCaption("Issuer");
-		textFieldIssuer.setImmediate(false);
-		textFieldIssuer.setWidth("-1px");
-		textFieldIssuer.setHeight("-1px");
-		verticalLayout_2.addComponent(textFieldIssuer);
-		
-		// checkBoxMustBePresent
-		checkBoxMustBePresent = new CheckBox();
-		checkBoxMustBePresent.setCaption("Attribute Must Be Present");
-		checkBoxMustBePresent.setImmediate(false);
-		checkBoxMustBePresent.setWidth("-1px");
-		checkBoxMustBePresent.setHeight("-1px");
-		verticalLayout_2.addComponent(checkBoxMustBePresent);
-		
-		return verticalLayout_2;
-	}
-
-}

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/AttributeValueEditorWindow.java
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeValueEditorWindow.java b/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeValueEditorWindow.java
deleted file mode 100644
index 13ae0b1..0000000
--- a/openaz-xacml-pap-admin/src/main/java/org/apache/openaz/xacml/admin/view/windows/AttributeValueEditorWindow.java
+++ /dev/null
@@ -1,320 +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.AttributeValueType;
-
-import org.apache.openaz.xacml.admin.XacmlAdminUI;
-import org.apache.openaz.xacml.admin.jpa.Datatype;
-import org.apache.openaz.xacml.admin.util.JPAUtils;
-import org.apache.openaz.xacml.admin.view.validators.ValidatorFactory;
-import com.vaadin.addon.jpacontainer.EntityItem;
-import com.vaadin.addon.jpacontainer.fieldfactory.SingleSelectConverter;
-import com.vaadin.annotations.AutoGenerated;
-import com.vaadin.data.Property.ValueChangeEvent;
-import com.vaadin.data.Property.ValueChangeListener;
-import com.vaadin.data.Validator;
-import com.vaadin.data.Validator.InvalidValueException;
-import com.vaadin.event.ShortcutAction.KeyCode;
-import com.vaadin.shared.ui.combobox.FilteringMode;
-import com.vaadin.ui.AbstractSelect.ItemCaptionMode;
-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.ComboBox;
-import com.vaadin.ui.TextField;
-import com.vaadin.ui.UI;
-import com.vaadin.ui.VerticalLayout;
-import com.vaadin.ui.Window;
-
-public class AttributeValueEditorWindow 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 textFieldValue;
-	@AutoGenerated
-	private ComboBox comboBoxDatatype;
-	private static final long serialVersionUID = 1L;
-	private final AttributeValueEditorWindow self = this;
-	private final Datatype datatypeRestriction;
-	private final AttributeValueType value;
-	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 AttributeValueEditorWindow(AttributeValueType value, Datatype datatypeRestriction) {
-		buildMainLayout();
-		//setCompositionRoot(mainLayout);
-		setContent(mainLayout);
-		//
-		// Save
-		//
-		this.value = value;
-		this.datatypeRestriction = datatypeRestriction;
-		//
-		// Make sure the value has the same datatype as the restriction
-		//
-		if (this.datatypeRestriction != null) {
-			this.value.setDataType(this.datatypeRestriction.getXacmlId());
-		}
-		//
-		// Set our shortcuts
-		//
-		this.setCloseShortcut(KeyCode.ESCAPE);
-		//
-		// Initialize GUI
-		//
-		this.initializeCombo();
-		this.initializeTextField();
-		this.initializeButtons();
-		//
-		// Focus?
-		//
-		if (this.datatypeRestriction == null) {
-			this.comboBoxDatatype.focus();
-		} else {
-			this.textFieldValue.focus();
-		}
-	}
-	
-	protected void initializeCombo() {
-		this.comboBoxDatatype.setContainerDataSource(((XacmlAdminUI) UI.getCurrent()).getDatatypes());
-		this.comboBoxDatatype.setItemCaptionMode(ItemCaptionMode.PROPERTY);
-		this.comboBoxDatatype.setItemCaptionPropertyId("xacmlId");
-		this.comboBoxDatatype.setFilteringMode(FilteringMode.CONTAINS);
-		this.comboBoxDatatype.setImmediate(true);
-		this.comboBoxDatatype.setNullSelectionAllowed(false);
-		this.comboBoxDatatype.setConverter(new SingleSelectConverter<Object>(this.comboBoxDatatype));
-		//
-		// Select a value if its defined
-		//
-		if (this.datatypeRestriction != null) {
-			this.comboBoxDatatype.select(this.datatypeRestriction.getId());
-		} else if (this.value.getDataType() != null) {
-			this.comboBoxDatatype.select(JPAUtils.findDatatype(this.value.getDataType()).getId());
-		}
-		//
-		// Can the user change the datatype?
-		//
-		if (this.datatypeRestriction != null) {
-			this.comboBoxDatatype.setEnabled(false);
-			return;
-		}
-		//
-		// Listen to events
-		//
-		this.comboBoxDatatype.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				Object id = self.comboBoxDatatype.getValue();
-				assert id != null;
-				//
-				// Get the entity and save it
-				//
-				EntityItem<Datatype> entity = ((XacmlAdminUI) UI.getCurrent()).getDatatypes().getItem(id);
-				self.value.setDataType(entity.getEntity().getXacmlId());
-				//
-				// Reset the validator
-				//
-				self.textFieldValue.removeAllValidators();
-				Validator validator = ValidatorFactory.newInstance(entity.getEntity());
-				if (validator != null) {
-					self.textFieldValue.addValidator(validator);
-				}
-			}
-		});
-	}
-	
-	protected void initializeTextField() {
-		//
-		// GUI properties
-		//
-		this.textFieldValue.setImmediate(true);
-		this.textFieldValue.setNullRepresentation("");
-		//
-		// Setup validator
-		//
-		if (this.datatypeRestriction != null) {
-			Validator validator = ValidatorFactory.newInstance(this.datatypeRestriction);
-			if (validator != null) {
-				this.textFieldValue.addValidator(validator);
-			}
-		}
-		//
-		// Text change or Value Change?
-		//
-		this.textFieldValue.addValueChangeListener(new ValueChangeListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void valueChange(ValueChangeEvent event) {
-				//
-				// Save the new value. TODO - assuming position 0 of content list.
-				//
-				self.saveValue(0, self.textFieldValue.getValue());
-				//
-				// Setup the save button
-				//
-				if (self.textFieldValue.getValue() == null || self.textFieldValue.getValue().isEmpty()) {
-					self.buttonSave.setEnabled(false);
-				} else {
-					self.buttonSave.setEnabled(true);
-				}
-			}
-		});
-		//
-		// Initialize the value
-		//
-		if (this.value != null && this.value.getContent().isEmpty() == false) {
-			//
-			// TODO - If there are multiple Content objects...Right now we work with the first one only.
-			//
-			this.textFieldValue.setValue(this.value.getContent().get(0).toString());
-		}
-	}
-	
-	protected void saveValue(int i, String value) {
-		//
-		// Get the content - TODO
-		//
-		if (this.value.getContent().isEmpty()) {
-			this.value.getContent().add(value);
-			return;
-		}
-		Object o = this.value.getContent().get(i);
-		if (o == null) {
-			//
-			// Add it into the list - ensure its a
-			//
-			assert this.value.getContent().size() == i;
-			this.value.getContent().add(value);
-		} else {
-			//
-			// Overwrite the previous object
-			//
-			this.value.getContent().set(i, value);
-		}
-	}
-
-	protected void initializeButtons() {
-		this.buttonSave.setClickShortcut(KeyCode.ENTER);
-		this.buttonSave.addClickListener(new ClickListener() {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public void buttonClick(ClickEvent event) {
-				try {
-					//
-					// Make sure it validates (i.e. call the Validators)
-					//
-					self.comboBoxDatatype.validate();
-					self.textFieldValue.validate();
-					//
-					// Yes
-					//
-					self.isSaved = true;
-					//
-					// Close
-					//
-					self.close();
-				} catch (InvalidValueException e) { //NOPMD
-					//
-					// Vaadin with update GUI displaying the error
-					//
-				}
-			}
-		});
-	}
-	
-	public boolean isSaved() {
-		return this.isSaved;
-	}
-	
-	public String	getValue() {
-		return this.textFieldValue.getValue();
-	}
-	
-	public AttributeValueType	getAttribute() {
-		return this.value;
-	}
-	
-	public Datatype getDatatype() {
-		return JPAUtils.findDatatype(this.value.getDataType());
-	}
-
-	@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");
-		
-		// comboBoxDatatype
-		comboBoxDatatype = new ComboBox();
-		comboBoxDatatype.setCaption("Select Datatype");
-		comboBoxDatatype.setImmediate(false);
-		comboBoxDatatype.setWidth("-1px");
-		comboBoxDatatype.setHeight("-1px");
-		comboBoxDatatype.setInvalidAllowed(false);
-		comboBoxDatatype.setRequired(true);
-		mainLayout.addComponent(comboBoxDatatype);
-		
-		// textFieldValue
-		textFieldValue = new TextField();
-		textFieldValue.setCaption("Attribute Value");
-		textFieldValue.setImmediate(false);
-		textFieldValue.setWidth("100.0%");
-		textFieldValue.setHeight("-1px");
-		textFieldValue.setInvalidAllowed(false);
-		textFieldValue.setRequired(true);
-		mainLayout.addComponent(textFieldValue);
-		
-		// 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;
-	}
-
-}