From d4bf37b47aa74c111ff5642a4d096a41ee4c5bd0 Mon Sep 17 00:00:00 2001
From: "Barbara B. Frosik" <bfrosik@aps.anl.gov>
Date: Fri, 13 Feb 2015 22:40:58 +0000
Subject: [PATCH] abc

---
 .../controllers/ExperimentController.java     | 28 +++++++++++++++++--
 .../dm/portal/model/entities/Experiment.java  |  4 +--
 .../experimentPoliciesEditSelection.xhtml     | 24 +++++++++++++---
 3 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
index a39e381a..721359a0 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java
@@ -211,7 +211,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
             for (PolicyType type : list) {
                 experimentPolicyType = new ExperimentPolicyType(type);
                 newList.add(experimentPolicyType);
-                policy = getCurrent().getPolicyForType(type);
+                policy = getCurrent().getPolicyForType(type.getId());
                 experimentPolicyType.setPolicy(policy);
             }
             return newList;
@@ -306,7 +306,18 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
 
     @Override
     protected Experiment createEntityInstance() {
-        return new Experiment();
+        Experiment newExperiment = new Experiment();
+        if (!initialized) {
+            initializeTables();
+        }
+        for (PolicyType policyType : policies.keySet()) {
+            ExperimentPolicy experimentPolicy = new ExperimentPolicy();
+            experimentPolicy.setExperiment(newExperiment);
+            experimentPolicy.setPolicyType(policyType);
+            experimentPolicy.setPolicyValue(policyType.getDefaultPolicyValue());
+            newExperiment.getExperimentPolicyList().add(experimentPolicy);
+        }
+        return newExperiment;
     }
 
     @Override
@@ -451,6 +462,19 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     public List<AllowedPolicyValue> getAllowedPolicies(PolicyType policyType) {
         return policies.get(policyType);
     }
+    
+    public List<String> getPoliciesNamesForType(int id) {
+        for (PolicyType type : policies.keySet()) {
+            if (type.getId() == id) {
+                List<String> values = new ArrayList<>();
+                for (AllowedPolicyValue policy : policies.get(type) ) {
+                    values.add(policy.getName());
+                }
+                return values;
+            }
+        }
+        return null;
+    }
          
     public void updateRemovedExperimentRoles() {
         UserExperimentRole userExperimentRole;
diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java
index fd3d12c0..0e2e2868 100644
--- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java
+++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/Experiment.java
@@ -161,9 +161,9 @@ public class Experiment extends CloneableEntity
         this.experimentType = experimentType;
     }
     
-    public ExperimentPolicy getPolicyForType(PolicyType type) {
+    public ExperimentPolicy getPolicyForType(int typeId) {
         for (ExperimentPolicy experimentPolicy : experimentPolicyList) {
-            if (experimentPolicy.getPolicyType().getId() == type.getId()) {
+            if (experimentPolicy.getPolicyType().getId() == typeId) {
                 return experimentPolicy;
             }
         }
diff --git a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
index 97c39b9a..f64d0209 100644
--- a/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/experimentPoliciesEditSelection.xhtml
@@ -8,7 +8,23 @@
                 xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
 
     <p/>
-    <p:dataTable id="experimentPoliciesEditDataTable"                              
+
+        <h:panelGrid columns="2" cellpadding="5">
+            <p:outputLabel for="deletionPolicy" value="Data Deletion Policy: " />
+            <p:selectOneMenu id="deletionPolicy" value="#{experimentController.current.getPolicyForType(1).name}" style="width:150px">
+                <f:selectItem itemLabel="#{experimentController.current.getPolicyForType(1).name}" itemValue="" noSelectionOption="false" />
+                <f:selectItems value="#{experimentController.getPoliciesNamesForType(1)}" />
+            </p:selectOneMenu>
+ 
+            <p:outputLabel for="transferPolicy" value="Data Transfer Policy: " />
+            <p:selectOneMenu id="transferPolicy" value="#{experimentController.current.getPolicyForType(2).name}" style="width:150px">
+                <f:selectItem itemLabel="#{experimentController.current.getPolicyForType(1).name}" itemValue="" noSelectionOption="false" />
+                <f:selectItems value="#{experimentController.getPoliciesNamesForType(2)}" />
+            </p:selectOneMenu>
+ 
+        </h:panelGrid> 
+
+<!--        <p:dataTable id="experimentPoliciesEditDataTable"                              
                  var="policyTypeObject" 
                  value="#{experimentController.experimentPoliciesTypeTable.listDataModel}" 
                  filteredValue="#{experimentController.experimentPoliciesTypeTable.filteredObjectList}"
@@ -40,11 +56,11 @@
             <h:outputText value="#{policyTypeObject.policyValue}"/>
         </p:column>
 
-<!--        <p:column sortBy="#{policyTypeObject.policyType.description}" headerText="Description" 
+        <p:column sortBy="#{policyTypeObject.policyType.description}" headerText="Description" 
                   filterBy="#{policyTypeObject.policyType.description}" filterMatchMode="contains">
             <h:outputText value="#{policyTypeObject.policyType.description}"/>
-        </p:column>-->
+        </p:column>
 
-    </p:dataTable>
+    </p:dataTable>-->
 
 </ui:composition>
-- 
GitLab