From: Jonathan O. <os...@us...> - 2009-09-10 18:19:09
|
Update of /cvsroot/dlsciences/dlese-tools-project/src/org/dlese/dpc/schemedit/autoform In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv7037 Modified Files: RendererImpl.java Log Message: fixed bug that broke inputHelpers because the id attribute was attached to the wrong DOM element Index: RendererImpl.java =================================================================== RCS file: /cvsroot/dlsciences/dlese-tools-project/src/org/dlese/dpc/schemedit/autoform/RendererImpl.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** RendererImpl.java 4 Sep 2009 21:29:13 -0000 1.19 --- RendererImpl.java 10 Sep 2009 18:18:54 -0000 1.20 *************** *** 417,424 **** /* - we need to attach an id to the element that will be shown/hidden when the collapse - widget is invoked. If the outer element has a struts tag, then we add a "styleId" - attribute, otherwise we add a regular "id" attribute. - NOTE: the complexity of this method is a KLUDGE! We should have classes responsible for building their input fields. These classes would have attributes --- 417,420 ---- *************** *** 429,443 **** And their "render" method would produce the required XML/JSP */ Element inputHelper = getInputHelper(xpath); ! Element prompts = df.createElement("st__fieldPrompt") .addAttribute("pathArg", xpath); ! ! /* ! if there is an inputHelper, we want to insert it just after the element ! with the id attribute (that responds to the collapse/expand directives). ! If the id is attached to a table, we have to insert a new row/cell/helper, ! otherwise, we can just insert the helper. ! */ if (inputElement.getName().equals("table")) { inputElement.addAttribute("id", "${id}"); --- 425,436 ---- And their "render" method would produce the required XML/JSP */ + Element inputHelper = getInputHelper(xpath); ! Element prompts = df.createElement("st__fieldPrompt") .addAttribute("pathArg", xpath); ! ! /* if the 'inputElement' is a table, this is a complext element and there input ! for this path. in this casse we assign the id to the table to support hide/show */ if (inputElement.getName().equals("table")) { inputElement.addAttribute("id", "${id}"); *************** *** 452,467 **** else { /* ! If the inputElement is just a single element, we have to create a ! wrapper, which gets the id and then add the helper and the ! inputElement inside the wrapper. */ ! Element wrapper = df.createElement("div") ! .addAttribute("id", "${id}"); wrapper.add(prompts); if (inputHelper != null) wrapper.add(inputHelper); wrapper.add(inputElement); inputElement = wrapper; } if (schemaNode.isDerivedModel() && !this.sh.isRequiredBranch(schemaNode)) { --- 445,463 ---- else { /* ! If the inputElement is just a single element, then we assume this is ! truly an input (textarea, text, etc). In this case we create a ! wrapper, then add the prompt and helper and the inputElement inside the wrapper. ! NOTE: the id attribute gets attached to the input. Since the input is rendered ! using an "html" tag, the id attribute name is 'styleId' */ ! Element wrapper = df.createElement("div"); wrapper.add(prompts); if (inputHelper != null) wrapper.add(inputHelper); wrapper.add(inputElement); + inputElement.addAttribute("styleId", "${id}"); inputElement = wrapper; } + if (schemaNode.isDerivedModel() && !this.sh.isRequiredBranch(schemaNode)) { |