From 9c8860b270080940bd556e8a81a25a5708cc1a34 Mon Sep 17 00:00:00 2001
From: "Barbara B. Frosik" <bfrosik@aps.anl.gov>
Date: Fri, 11 Sep 2015 15:02:00 +0000
Subject: [PATCH] change edit experiment screen not to edit ESAF experiments

---
 .../controllers/ExperimentController.java       |  6 ++++++
 .../private/experimentEditPanelGrid.xhtml       | 17 +++++++++++++----
 2 files changed, 19 insertions(+), 4 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 27b36ab3..e3cf4ade 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
@@ -356,6 +356,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     boolean initialized = false;
     private List<MissingPolicyType> missingPolicyTypes = new ArrayList<>();
     private final Map<Integer, String> experimentPropertiesMap = new HashMap<>();
+    private List<String> notEditableTypes = new ArrayList<>();
+    { notEditableTypes.add("ESAF"); }
 
     public ExperimentController() {
     }
@@ -904,6 +906,10 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
     public void setExperimentPropertyToDelete(ExperimentPolicyPropertyValue experimentPropertyToDelete) {
         this.experimentPropertyToDelete = experimentPropertyToDelete;
     }
+    
+    public boolean isEditable() {
+        return notEditableTypes.contains(current.getExperimentType().getName());
+    }
 
      @FacesConverter(forClass = Experiment.class)
     public static class ExperimentControllerConverter implements Converter {
diff --git a/src/java/DmWebPortal/web/views/experiment/private/experimentEditPanelGrid.xhtml b/src/java/DmWebPortal/web/views/experiment/private/experimentEditPanelGrid.xhtml
index d5a26b47..a8c8ab40 100644
--- a/src/java/DmWebPortal/web/views/experiment/private/experimentEditPanelGrid.xhtml
+++ b/src/java/DmWebPortal/web/views/experiment/private/experimentEditPanelGrid.xhtml
@@ -3,9 +3,11 @@
 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:h="http://java.sun.com/jsf/html"
                 xmlns:p="http://primefaces.org/ui"
-                xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
+                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+                xmlns:f="http://xmlns.jcp.org/jsf/core">
 
     <ui:param name="experimentObject" value="#{experimentController.current}"/>
+    <ui:param name="isEditable" value="#{!experimentController.isEditable()}"/>
 
     <p:panelGrid columns="2" > 
 
@@ -16,13 +18,20 @@
         <h:outputText id="experimentType" value="#{experimentObject.experimentType.name}" title="Name" styleClass="entityDataText"/>
 
         <h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
-        <h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataInputText"/>  
+        <h:inputText id="description" rendered="#{isEditable}" value="#{experimentObject.description}" title="Description" styleClass="entityDataInputText"/>  
+        <h:outputText id="description1" rendered="#{!isEditable}" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/>  
         
         <h:outputLabel for="startDate" value="Start Date" styleClass="entityDataLabel"/>
-        <p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" pattern="#{resources.DateTimePattern}" />
+        <p:calendar id="startDate" rendered="#{isEditable}" value="#{experimentObject.startDate}" mode="popup" showOn="button" pattern="#{resources.DateTimePattern}" />
+        <h:outputText  id="startDate1" rendered="#{!isEditable}" value="#{experimentObject.startDate}" styleClass="entityDataText">
+            <f:convertDateTime pattern="#{resources.DateTimeZonePattern}" type="both" timeZone="#{resources.Timezone}" />
+        </h:outputText>
         
         <h:outputLabel for="endDate" value="End Date" styleClass="entityDataLabel"/>
-        <p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" pattern="#{resources.DateTimePattern}" />
+        <p:calendar id="endDate" rendered="#{isEditable}" value="#{experimentObject.endDate}" mode="popup" showOn="button" pattern="#{resources.DateTimePattern}" />
+        <h:outputText  id="endDate1" rendered="#{!isEditable}" value="#{experimentObject.endDate}" styleClass="entityDataText">
+            <f:convertDateTime pattern="#{resources.DateTimeZonePattern}" type="both" timeZone="#{resources.Timezone}" />
+        </h:outputText>
 
     </p:panelGrid>
 
-- 
GitLab