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 a39e381addf4940ac9bde4c3d3a8b62829f85879..721359a06c2554abf884f7d0d582dc5ed0f3e665 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 fd3d12c0faaa699584e899e16e845efdda1e697d..0e2e2868d2af30ac7dc6f48ca20531b58a58c3bd 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 97c39b9ae6012172e115b4d21b58210c4c876202..f64d0209441af326aaf06e8baa9848d0e30a819e 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>