001    /*
002     * Copyright 2005-2007 The Kuali Foundation
003     * 
004     * 
005     * Licensed under the Educational Community License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     * 
009     * http://www.opensource.org/licenses/ecl2.php
010     * 
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.kuali.rice.edl.impl.components;
018    
019    import org.kuali.rice.edl.impl.EDLContext;
020    import org.kuali.rice.edl.impl.EDLModelComponent;
021    import org.kuali.rice.edl.impl.EDLXmlUtils;
022    import org.kuali.rice.edl.impl.RequestParser;
023    import org.kuali.rice.kew.api.WorkflowDocument;
024    import org.w3c.dom.Document;
025    import org.w3c.dom.Element;
026    import org.w3c.dom.Node;
027    
028    
029    /**
030     * This class makes xml for the instructions template of widgets.  Processes config elements
031     * instructions and createInstructions.
032     * 
033     * @author Kuali Rice Team (rice.collab@kuali.org)
034     *
035     */
036    public class InstructionsEDLComponent implements EDLModelComponent {
037    
038            public void updateDOM(Document dom, Element configElement, EDLContext edlContext) {
039                    
040                    Element edlElement = EDLXmlUtils.getEDLContent(dom, false);
041                    Element edlSubElement = EDLXmlUtils.getOrCreateChildElement(edlElement, "edl", true);
042                    WorkflowDocument document = (WorkflowDocument)edlContext.getRequestParser().getAttribute(RequestParser.WORKFLOW_DOCUMENT_SESSION_KEY);
043                    edlSubElement.setAttribute("title", document.getTitle());
044                    
045                    if(configElement.getTagName().equals("instructions")) {
046                            Node instTextNode = configElement.getChildNodes().item(0);
047                            if (instTextNode == null) {
048                                    return ;
049                            }
050                            String instructions = instTextNode.getNodeValue(); 
051                            EDLXmlUtils.createTextElementOnParent(edlSubElement, "instructions", instructions);
052                            edlElement.setAttribute("title", instructions); 
053                    } else if (configElement.getTagName().equals("createInstructions")) {
054                            Node instTextNode = configElement.getChildNodes().item(0);
055                            if (instTextNode == null) {
056                                    return ;
057                            }
058                            String instructions = instTextNode.getNodeValue();
059                            EDLXmlUtils.createTextElementOnParent(edlSubElement, "createInstructions", instructions);       
060                    }
061            }
062    
063    }