Breadcrumbs in JHeadstart 10.1.2.1

Dear JHeadstart Team,
Following the instructions found in chapter 5 of the JHeadstart Developer's Guide I have tried to influence the generation of breadcrumbs in UIX pages generated with JHeadstart 10.1.2.1. The situation I have generated and then post-generation modified is like this. I have a table overview (say, Departments) with an Edit button (Edit Department). I then made a change to have a button that allows to search (Search Department) an existing record before clicking the create button (Create Department). Basically I replaced the create button in the second UIX page to go to the Search page and added a create button in the Search page that leads back to the second page but now in create mode.
This introduces some unwanted behaviour with the breadcrumbs stack. From the user's point of view, a breadcrumbs list <overview> <edit> <search> <create> is expected. But when clicking the Create button, the breadcrumbs stack is rolled back and the Edit label is modified into Create.
In order to circumvent this behaviour, I have added
<set-property property="rollbackBreadcrumbStack" value="false"/>
to the appropriate actions in struts-config.xml which means that clicking the create button will not rollback the breadcrumbs stack and leave Edit there and add Create after Search. So far so hoopy.
But this means that ANY action that is related to the Edit/Create action will add another breadcrumb to the stack. When the Edit breadcrumb is clicked after clicking the Create button, another Edit breadcrumb is added to the stack. Moreover, when sorting a table (e.g. a detail table that is shown on the same page as Edit) several times, several additional breadcrumbs are added to the stack.
I noticed there are separate entries for the Edit and Create labels in the resource bundle of our application and the JHeadstart Developer's Guide mentions this as well (page 5-60). Is there any way of treating Edit and Create separately without creating mile long breadcrumb stacks? If not, are there any plans to make this possible? It will probably very difficult to explain this behaviour to future users of our application you see.
Thanks in advance,
Wouter van Reeven
AMIS

Wouter,
Basically, your problem with the breadcrumb mechanism is that there always is only one breadcrumb per DataAction, OR one breadcrumb per "set of" DataActions that have the same "breadcrumbKey" property (so 1:1 or 1:n), but not multiple breadcrumbs for one action (n:1). The first possible solution I gave was to overcome your problem by creating two DataPage, one for New and one for Edit, so that two separate breadcrumbs, one for each DataPage, could be put on the stack. If I understand correctly you did create the second DataPage but used the breadcrumbKey property to have them share a single breadcrumb, while the whole reason for creating a second DataPage was so it could have its own, separate breadcrumb.
I will put the EL expressions idea on our Enhancements list, but I don't think we will put it in any time soon. We prioritize on a "how many developers will benefit, and how often" basis. Furthermore, my gut feeling is that there will be a lot of "small stuff" to deal with, especially with rolling back, when multiple breadcrumbs in the stack could have originated from a single DataPage.
It is very possible to create your own BreadcrumbManager, by extending the JhsActionServlet and overriding this method:
protected boolean processBreadcrumbs(HttpServletRequest request, ActionMapping mapping, ActionForward forward)
BreadcrumbManager manager = BreadcrumbManager.getBreadcrumbManager(....);
return manager.processBreadcrumbs(request,mapping,forward);
You can copy or subclass the three classes in the JhsRuntime that deal with breadcrumbs (they can all be found in the package oracle.jheadstart.util.breadcrumbs, and use your own version instead.
Kind regards,
Peter Ebell
JHeadstart Team

Similar Messages

  • Problem generating detail disclosure in JHeadstart 10.1.2.1

    Hi,
    In order to get the "Read Only In Tables" and "Read Only In Forms" options to work in JHeadstart, I had to enable generating the view (UIX in my case). However, doing so effectively removed all Detail Disclosure columns in my page! In the Application Structure File editor I have the option "Detail Disclosure? (UIX only)" enabled, but no option to show the non-shown details is created in my table.
    Can this be beacuse I upgraded from JHeadstart 10.1.2 (build 19) to JHeadstart 10.1.2.1 (build 27)? The relevant part of the Application Structure File is
    <Group name="MyGroup" description="MyGroup" viewObject="MyGroupView"
    viewObjectUsage="MyGroupView1" layoutStyle="table" breadCrumbs="true"
    advancedSearch="samePage" quickSearch="dropdownList"
    advancedSearchColumns="2" autoQuery="true" tabName="MyGroup"
    displayTitle="MyGroup" displayTitleSingular="MyGroup"
    descriptorAttribute="IntName" insert="false" update="false"
    delete="false" tableInsert="true" tableUpdate="true"
    tableDelete="false" formWidth="10%" columns="1" tableWidth="50%"
    sortable="false" useTableRange="true" tableRangeSize="10"
    detailDisclosure="true" formLink="button" generateUix="true"
    overwriteUIModel="true" overwriteStrutsConfig="true"
    generateGlobalHeader="true" generateServiceGroup="true"/>
    In the JHeadstart ViewObject Editor for this group I have several attributes that are shown both in tables and in forms, but also several attributes that are shown in forms but NOT in tables. I even set these options to true or false where appropriate and this didn't help.
    To be sure the generation of detail disclosure went ok before we merged to build 27, I took the old project files and regenerated the MyGroup pages. This went ok and detail disclosure works perfectly well.
    So, the only difference between the build 19 and build 27 Application Structure Files is the "Read Only In Tables" and "Read Only In Forms" options which the build 19 file doesn't have, but the build 27 file does. I even removed them to see if that makes a difference, but it doesn't.
    Would anyone know what's going on here?
    Thanks,
    Wouter van Reeven
    AMIS

    OK as it turns out, I didn't do a proper upgrade from JHeadstart 10.1.2 to JHeadstart 10.1.2.1 which caused the generation of detail disclosure to fail. To solve this issue I
    - created a new Web Project with a name similar to the old one.
    - enabled JHeadstart on this project
    - created a new JHeadstart Application Structure File specifying the same View Package as my old project
    After having done this I copied over the old Application Structure File to the new project and restarted JDeveloper. Next I edited the Application Structure File and made sure all pages and application parts (struts-config, tab bars etc) were set to be generated. Running the JHeadstart Application Generator on the Application Structure File now produced a UIX page with detail disclosure. All I have to do now is to check my old project for post generation changes and implement them in the new one, either by setting the proper options via JHeadstart or by modifying the UIX code afterwards.
    Greets, Wouter

  • JHeadstart 10.1.2.1: NoSuchElementException in generated JSP

    I have generated a jsp with table layout based on a viewobject. In this JSP I can add one new row. If I leave a mandatory field empty I get a message saying the field must have a value (which is correct) and I get a stacktrace in my JSP. This stacktrace only appears when inserting a new row with a invalid value.
    Can someone tell me what is causing the stacktrace?
    The stacktrace appears in the last cell of the last row (the newly added, invalid row).
    java.util.NoSuchElementException
         at java.util.AbstractList$Itr.next(AbstractList.java:426)
         at org.apache.taglibs.standard.tag.common.core.ForEachSupport$SimpleForEachIterator.next(ForEachSupport.java:143)
         at org.apache.taglibs.standard.tag.common.core.ForEachSupport.next(ForEachSupport.java:165)
         at javax.servlet.jsp.jstl.core.LoopTagSupport.doAfterBody(LoopTagSupport.java:301)
         at web2d_inf._page._ReferentietabellenTable._jspService(ReferentietabellenTable.jsp:107)
         [SRC:/WEB-INF/page/ReferentietabellenTable.jsp:24]
         at com.orionserver[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:350)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:663)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:222)
         at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
         at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
         at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
         at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
         at oracle.jheadstart.controller.strutsadf.JhsRequestProcessor.process(JhsRequestProcessor.java:385)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         at oracle.jheadstart.controller.strutsadf.JhsActionServlet.process(JhsActionServlet.java:130)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
         at oracle.jheadstart.controller.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:176)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:239)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:285)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:126)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)JSP code:
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <%@ include file="/common/taglibs.jsp" %>
    <html>
       <head>
          <link rel="stylesheet" type="text/css" href="<c:out value='${requestContextPath}/jheadstart/css/jspStyles.css'/>"/>
    <style type="text/css">
            .invisible {display:none;}
            .visible {display:block;}
    </style>
       </head>
       <body>
          <jsp:include page="/common/routerForm.jsp" flush="true">
             <jsp:param name="dataFormName" value="ReferentietabellenBean"/>
          </jsp:include>
          <jsp:include page="/common/header.jsp" flush="true"/>
          <jsp:include page="RBSReferentieServiceTabBar.jsp" flush="true">
       <jsp:param name="current" value="Referentietabellen"/>
    </jsp:include>
          <jsp:include page="/common/breadcrumbs.jsp" flush="true"/>
          <jsp:include page="/common/jhsInfo.jsp" flush="true"/>
          <html:form name="ReferentietabellenBean" action="ReferentietabellenTable.do"
               type="oracle.jheadstart.view.strutsadf.JhsBindingContainerActionForm" scope="session">
             <jsp:include page="/common/hiddenFormFields.jsp" flush="true"/>
             <jsp:include page="/common/timestamp.jsp" flush="true"/>
             <input type="hidden" name="<c:out value='${bindings.statetokenid}'/>" value="<c:out value='${bindings.statetoken}'/>"/>
           <br>
    <jsp:include page="/common/heading1.jsp" flush="true">
       <jsp:param name="key" value="TABLE_TITLE_REFERENTIETABELLEN"/>
    </jsp:include>
    <c:if test="${bindings.ReferentietabellenIterator.findMode!='true'}">
    <table id="tgTable" width="50%">
      <c:set var="rangeStart" scope="request" value="${bindings.ReferentietabellenIterator.rangeStart}"/>
    <c:set var="rangeSize" scope="request" value="${bindings.ReferentietabellenIterator.rangeSize}"/>
    <c:set var="rowCount" scope="request" value="${bindings.ReferentietabellenIterator.estimatedRowCount}"/>
    <jsp:include page="/common/tableScrollButtons.jsp" flush="true"/>
      <tr>
       <td>
         <table id="tgItemsTable" cellpadding="1" cellspacing="0" class="tableForm" width="100%">
          <tr class="header">
       <th id="NaamHeader" class="data">
          <bean:message key="REFERENTIETABELLEN_TABLE_NAAM"/>
       </th>
       <th id="SoortHeader" class="data">
          <bean:message key="REFERENTIETABELLEN_TABLE_SOORT"/>
       </th>
       <th id="OmschrijvingHeader" class="data">
          <bean:message key="REFERENTIETABELLEN_TABLE_OMSCHRIJVING"/>
       </th>
       <th class="fixed">
          <bean:message key="DELETE_COLUMN_HEADER"/>
       </th>
       <th class="fixed"/>
    </tr>
    <c:set var="ReferentietabellenView1NewRows" value="1" scope="request"/>
    <c:forEach var="ReferentietabellenView1" varStatus="status" items="${jhsTableBindings.ReferentietabellenView1.rangeSet}">
       <html:hidden name="ReferentietabellenView1" property="rowKeyStr" indexed="true"/>
       <c:set var="editMode" scope="request" value="${!(status.index ge bindings.ReferentietabellenIterator.rangeSize or status.index ge bindings.ReferentietabellenIterator.estimatedRowCount-bindings.ReferentietabellenIterator.rangeStart) and bindings.ReferentietabellenIterator.currentRowIndexInRange!=-1}"/>
            <tr class="altRow<c:out value="${status.index % 2 + 1 }"/>">
          <c:set var="rowKeyStr" scope="request" value="${ReferentietabellenView1.rowKeyStr}"/>
       <html:hidden name="ReferentietabellenView1" property="ReferentietabellenId" indexed="true"/>
       <td nowrap="nowrap">
          <font class="required">*</font>
          <html:text name="ReferentietabellenView1" property="ReferentietabellenNaam" size="25" maxlength="64" indexed="true"/>
       </td>
       <td nowrap="nowrap">
          <font class="required">*</font>
          <html:select name="ReferentietabellenView1" property="ReferentietabellenSoort" indexed="true">
             <option/>
             <html:option value="G">
                <bean:message key="DOMAIN_REFERENTIETABELLENSOORTDOMAIN_G"/>
             </html:option>
             <html:option value="S">
                <bean:message key="DOMAIN_REFERENTIETABELLENSOORTDOMAIN_S"/>
             </html:option>
          </html:select>
       </td>
       <td nowrap="nowrap">
          <html:text name="ReferentietabellenView1" property="ReferentietabellenOmschrijving" size="50" maxlength="256" indexed="true"/>
       </td>
       <td class="fixed">
          <html:checkbox name="ReferentietabellenView1" property="deleteRow" indexed="true"/>
       </td>
       <td class="fixed" nowrap="true">
          <c:if test="${editMode}">
             <jsp:include page="/common/masterToDetailButton.jsp" flush="true">
                <jsp:param name="key" value="REFERENTIETABELLEN_TO_KOLOMMEN_BUTTON"/>
                <jsp:param name="eventValue" value="Kolommen"/>
             </jsp:include>
             <jsp:include page="/common/masterToDetailButton.jsp" flush="true">
                <jsp:param name="key" value="REFERENTIETABELLEN_TO_RIJEN_BUTTON"/>
                <jsp:param name="eventValue" value="Rijen"/>
             </jsp:include>
          </c:if>
       </td>
            </tr>
          </c:forEach>  
         </table>
        </td>
       </tr>
    </table>
    </c:if> 
            <table id="fbTable">
              <tr>
                <td align="center" valign="bottom" height="40px">
                  <jsp:include page="/common/saveButton.jsp" flush="true">
       <jsp:param name="saveKey" value="SAVE_BUTTON_LABEL_REFERENTIETABELLEN"/>
    </jsp:include>
                </td>
              </tr>
            </table>        
          </html:form>
          <jsp:include page="/common/footer.jsp" flush="true"/>
       </body>
    </html>

    I am now getting this issue also in another JSP. It occurs in this JSP when I fill in a wrong value so that a exception is raised on the backend (database) which is catched on the middletier. There a JBO exception is raised. That's all okay, but at the end of the forEach loop in my JSP suddenly the stacktrace appears!
    It looks like the iterator contains a invalid element which is created (or not cleared correctly?) when an error occurred.
    I have also tried to catch this exception in the JSP and ignore it (dirty, I know), but in that case the next navigation in the page leads to a classcastException in the routerform.jsp and this one could only be solved by restarting OC4J! So that's not really a workaround.
    Does anyone else have a suggestion I can try?
    Hint: Maybe related with this problem: I also see that sometimes a row is shown twice in the jsp. This only happens after entering a wrong value at creation time, then fill in the right value and commit and only in certain occasions. Then navigate back via the breadcrumbs and voila, two rows instead of one. After a requery the correct rows are shown.

  • JHeadstart 10.1.2 (27): Error: form.resetBreadcrumbs has no properties

    I have generated master-detail-detail pages (JSP) with a global header. But when I click the link in the header I get a Javascript error saying:
    Error: form.resetBreadcrumbs has no properties
    Source File: http://10.17.21.128:8988/RBSAbos-context-root/jheadstart/form.js
    Line: 1873
    It seems a form is not loaded. I have tried to generate the pages with and without the breadcrumbs option but I keep getting this error.
    Can someone help me with this?

    Paskal,
    I cannot reproduce this error. But I think it might be caused by an old version of routerForm.jsp. Can you check that the following line is included in routerForm.jsp:
    <input type="hidden" name="resetBreadcrumbs"/>
    If it is not, something probably went wrong during your migration from 10.1.2.0 to 10.1.2.1. Make sure you remove all .jsp files from the /common directory (make a backup first), and remove all .jjt files as well. When you then generate again, the 10.1.2.1 version of these files will be copied to your file system.
    Steven Davelaar,
    JHeadstart Team.

  • Feedback from JHeadstart Workshop - Enhancement Requests

    Hi,
    We at AMIS just finished a six-day workshop on JHeadstart in combination with UIX & (primarily) JSP and BC4J & (primarily) Toplink. We have discovered a lot of things we can do rather easily using JHeadstart and the related frameworks and we feel pretty confident about using JHeadstart in the real world. In fact, in hindsight we feel that one of our recent projects could have been substantially accelerated had we been using JHeadstart with Struts and JSPs.
    Of course we have also discovered quite a number of things we would like to see improved in JHeadstart. Below I will list just a few that we would really like to see made part of the product.
    * Support for distinct display properties in VO Attributes for find/table/form-page
    * Generate Struts submodules
    * A strategy document outlining the best approach for (re-)generating later on in the project after having made manual changes (it seems we could not get the Application Generator to not overwrite the struts-config.xml even for groups that we explicitly excluded from regeneration of controller-logic); it seems that the main stumbling block for using JHeadstart in a serious project - or at least the generation capabilities- is not being able to deal with regeneration
    * Good explanation of the extension points of JHeadstart; Struts has very well defined and documented extension points; JHeadstart (generated) applications are somewhat less clearly extensible.
    * Better documentation on how to change the look&feel of the generated application - the pointers in the Developer's Guide are really quite meagre for this task.
    * Extend property persistentAttribute in VO Attributes to override the persistentAttribute property currently generated in Form Bean as always equal to the VO att name (you can override the DataObjectImpl.getAttribute() and allow different patterns to be passed for persistentAttribute, such as manager.department.location to get hold of the name of the department of the manager of the current employee
    * Support a diplay type of Image for Attributes (type BLOB or RAW) that contain Images; such images should be displayed as IMG where the src-attribute refers to a download action in the Struts-Controller.
    * Support a diplay type of File for Attributes (type CLOB, BLOB or RAW) that contain contents to be downloaded as file; such files should be displayed as download button or link where the href-attribute refers to a download action in the Struts-Controller.
    * Support a display type of Hyperlink for Attributes that contain a URL; in display only mode this attribute should be displayed as hyperlink, in insert/update mode the field should be accompanied by a small icon that allows navigation.
    * Allow the JAG to generate Resource Bundels for multiple languages at once, rather than rerunning several times for each language
    * Generate Breadcrumbs in JSPs
    * Generate Regions in JSPs
    * Allow static values for query type arguments to be provided - in struts config as action properties (for example for poplist population) - compare example Choosing Custom Query from Poplist in Tutorial where the page needs to provide the queryType bindparameter value; currently the value for the bindparameters used in the queryType need to be set in the session (typically from a form-field in the posted form); however, a queryType that can support for example all Domains in CG_REF_CODES with only the domain name bindparameter making the difference is very useful for populating poplists before displaying pages. It would be very handy if I can just specify the domainName as bindparameter in the getDataObjectSet action along with the queryType instead of forcing the value of the domainName into the Session.
    * generate lookup (hyperlink/navigation to (popup with) details for the indicated record (for example: navigate to departments details by clicking on the Departments name in the Employees(Table)Page
    * generate navigation buttons - new childtype in Application Structure file along with Regions: Navigation (Button); properties: targetGroup, possible page (table/form/child) and primary key of dataobject in target to be passed
    Thanks for implementing any of these suggestions!
    "The JHeadstart Team at AMIS!"

    Lucas,
    Thanks you very much for the useful feedback.
    The good news is that many of your enhancement requests are already on our radar screen.
    Your comments on the documentation are well taken. There is always room to improve the doc. If you have any specific topics/customizations that should be documented first, that would help us setting priorities on improving the doc.
    Here are more detailed comments on some of your suggestions:
    * Support for distinct display properties in VO Attributes for find/table/form-page
    Not sure about this one. You can already get this by using resource bundles, we generate sperate keys for table and form items
    * Generate Struts submodules
    We will generate forwardPattern="$P" in the next patch.
    * Support a diplay type of Image for Attributes (type BLOB or RAW) that contain Images; such images should be displayed as IMG where the src-attribute refers to a download action in the Struts-Controller.
    The runtime support for this is done. We hope to include generation of images in the patch release schduled for November.
    * Support a diplay type of File for Attributes (type CLOB, BLOB or RAW) that contain contents to be downloaded as file; such files should be displayed as download button or link where the href-attribute refers to a download action in the Struts-Controller.
    Same status as images.
    * Support a display type of Hyperlink for Attributes that contain a URL; in display only mode this attribute should be displayed as hyperlink, in insert/update mode the field should be accompanied by a small icon that allows navigation.
    Good idea, easy to do in read only mode.
    * Allow the JAG to generate Resource Bundels for multiple languages at once, rather than rerunning several times for each language
    Nice to have, not a top priority in our view.
    * Generate Breadcrumbs in JSPs
    Yes, not easy to do, but is already on our list for next major release.
    * Generate Regions in JSPs
    Same status as breadcrumbs.
    * Allow static values for query type arguments to be provided - in struts config as action properties (for example for poplist population) - compare example Choosing Custom Query from Poplist in Tutorial where the page needs to provide the queryType bindparameter value; currently the value for the bindparameters used in the queryType need to be set in the session (typically from a form-field in the posted form); however, a queryType that can support for example all Domains in CG_REF_CODES with only the domain name bindparameter making the difference is very useful for populating poplists before displaying pages. It would be very handy if I can just specify the domainName as bindparameter in the getDataObjectSet action along with the queryType instead of forcing the value of the domainName into the Session.
    Understand the value, we could do this by using single quotes to indicate constants within the attributeNames property.
    * generate lookup (hyperlink/navigation to (popup with) details for the indicated record (for example: navigate to departments details by clicking on the Departments name in the Employees(Table)Page
    We have designed a simple but powerful way to link groups, which effectively provides you the ability of unlimited nesting of groups. Design is ready, implementation has to start, but we very much would like to include this in the patch release. No promises though...
    * generate navigation buttons - new childtype in Application Structure file along with Regions: Navigation (Button); properties: targetGroup, possible page (table/form/child) and primary key of dataobject in target to be passed
    This is included in the design as mentioned in the previous item.
    Steven Davelaar,
    JHeadstart Team

  • Breadcrumb returning always to first stacked detail group

    Hi,
    Inside a dummy view group (say Dummy1) I have implemented stacked detail groups containing table-forms. The main page looks like below when I select Dummy1
    Dummy1|Dummy2
    Tab1|Tab2|Tab3|Tab4
    After I select let's say Tab3, the corresponding table appears and afterwards I select "Details" for a row in that table which leads me to the corresponding form.
    That form contains the following Breadcrump
    Modify Dummy1 >
    When I select the hyperlink, the breadcrumb returns me back to Dummy1 but to Tab1 is selected instead of Tab3. How can I make it return to Dummy1 but have Tab3 selected?
    TIA

    To preserve the selected tab, you will need to save the state of the showOneTab element using the binding property in a session-scoped managed bean.
    Here are the steps:
    - In the generated page, select the af:showOneTab element
    - go to the property inspector, click on the Binding property, and click on the three dots button that appears. This launches a dialog to bind the binding property to a managed bean.
    - In the dialog, click the New button to create a new managed bean. Name it soemthing like MyPageState, and set the class to something like view.MyPageState. Set the Scope to "session" and leave the checkbox "generate class if it does not exist" checked. Click OK
    - now click the New button at the right of the property name, and enter a property name like "mySelectOneTab".
    - Click OK twice
    - Run the page, you will see that the tab state is now preserved when you navigate back to the the page using the breadcrumb.
    - To preserve this post-generation change after regeneration, you need to create a custom template for the selectOneTab, and move the generated bean definition to a non-generated faces-config.xml, for example faces-config-custom.xml. If you create such an additional faces-config-custom.xml, make sure you add the name to the javax.faces.CONFIG_FILES context param in web.xml
    Steven Davelaar,
    JHeadstart Team.

  • Many App Modules - breadcrumb links jumbled

    Hi,
    We use the JHeadstart 10.1.3.3 to develop multiple app modules for our projects.
    As per the documentation available, we have modified the
    Main Faces Config,
    Group Beans Faces Config Directory,
    UI Pages Directory,
    UI Regions Directory names for different modules.
    The functionality works for all the modules. But the breadcrumb links seem to have problem.
    when we come out of one app module completely and start with the new traversing of the second module, the old breadcrumb values seem to remain.
    ie.
    I traverse and update Master and detail tables of 1st App module, i see the breadcrumb to be.
    "App Module 1 Master Table -> App Module 1 Detail Table ->"
    Then i switch to next app module(App Module 2) link,
    Now i expect to see
    "App Module 2 Master table "
    but i see
    "App Module 1 Master Table -> App Module 1 Detail Table -> App Module 2 Master Table"
    How do we remove the existing breadcrumbs when we come out of one app module?
    Or in other words, is there any other settings we need to modify?
    Thanks,
    Siva

    See More than one Application definition Files

  • 'if condition' in EL Expression in JHeadStart

    Hi,
    I am developing an application using Oracle JHeadstart 10.1.3 Preview Version 10.1.3.0.83
    How I can put an 'if condition' in the EL Expression? I can put an expression which will return true or false. But how I can put an 'if condition' that will return a value if it is true and it will return another value if it is false.
    Any help would be appreciated
    Thanks
    Syed

    You can use the '? :' operators in EL
    e.g.. following code is genered by JHS for tables:
    emptyText="#{bindings.MyVOTable.viewable ? 'No rows yet.' : 'Access Denied.'}"

  • Breadcrumb doesn't retain the previous page values

    I have the following hierarchy in my pages. home > search > summary > details.
    The user goes to the search page gives a criteria and the summary page shows all the required matching results. Now the summary results is a table of name, id, date etc. The id field is a hyper link which when clicked takes to the details page.
    My problem is that when I am on the details page and I click on the "summary" breadcrumb it works fine and navigates to the summary page but doesn't show the results that it previously showed. So the breadcrumb forgets the values.
    Also I have another problem: Say a user enters a search criteria and there are no results found and the user is now in the summary page. Then if the user clicks on the search breadcrumb the search page opens. It works fine till here. But this is what is required. In the text fields the value with which the search was performed should be present.
    Can anyone help please ?
    Thanks in advance.

    Any one with any ideas as to how to go about implementing this ?
    Bread Crumbs is working fine but it doesn't retain the values !!!!!!!
    Thanks in advance.

  • I dont see Jheadstart Forms2ADF in my Jdeveloper 11g

    Hi am very new to Jdeveloper. My requirement is, I want to convert a Oracle form to J2EE. I have downloaded and installed the Jdeveloper 11g. And then I selected the application FUSION WEB APPLICATION(ADF). And when I click on the Model -> New-> Business Tier, I am unable to see Jheadstart forms2ADF tool.
    Someone Please help me how to include this tool and if possible provide me steps with converting forms to J2EE.
    Note: I followed the demo given in Oracle site. But no use.
    Edited by: Karthik GJ on Aug 1, 2010 8:44 PM

    Karthik,
    You can download an evaluation version of JHeadstart 11g through JDeveloper Check for Updates, but that evaluation version does not include the Forms2ADF Generator (see http://blogs.oracle.com/jheadstart/2010/04/jheadstart_11g_evaluation_vers.html ).
    Licensed JHeadstart customers can download the fully functional version of JHeadstart through the Oracle Consulting Supplement Option at http://cso.oracle.com. If you want to purchase JHeadstart licenses, please see http://www.oracle.com/technology/products/jheadstart/files/jheadstart_faq.html#BM3 and contact your local Oracle Consulting representative.
    Hope this helps,
    Sandra Muller
    JHeadstart Team

  • If you create a 3 level deep site heirarchy (with the first two levels based on the document centre template) the sharepoint OOTB breadcrumbs break

    if you create a site collection with document center as the template, then create another document center site (as a subsite) underneath it. Then create a team site (as a subsite) in this document center site. So now you have a 3 level deep site heiarchy
    with 2 levels of doc center followed by a teamsite.
    Note that the breadcrumb (when I say breadcrumb I mean the drop down folder button which shows the heirachy) shown on the teamsite skips the middle level doc center.
    I have replicated this bug in production and in my test server.  Has anyone run into this before?  This must be something peculiar with the Doc Center template.  If I do the same thing but I make the middle level a team site I do NOT have
    this problem
    krd

    Hi,
    Per my test, it seems that if the second level uses a different category template except the Collaboration templates, the site will not show on the breadcrumb.
    No matter if the first level uses any template, when we view the subsite which uses the Collaboration templates, all the subsites which uses a different category template above will not show in the breadcrumb.
    You can create your own breadcrumb using code.
    http://blog.mastykarz.nl/building-breadcrumbs-sharepoint-2010/
    Thanks,
    Victoria
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Victoria Xia
    TechNet Community Support

  • Using JHeadstart to generate shuttles for updates

    Hi guys,
    Using JHeadstart 11.1.1.3 - is it possible to generate shuttle boxes for the simple task of updating records.
    For example - in the leading list I want to see all employees with a status of 'ACTIVE'. In the trailing list I want to see all employees with a status of 'INACTIVE'. By shuttling employees between the two lists, the status of the employee should be updated accordingly. I know there are processShuttle class in JhsApplicationModuleImpl but this (and the App Def Editor) only really seem to cope with data where a parent-child relationship exists.
    Is there any way to achieve this in JHeadstart (I recall years ago somehow using dummy parent VO's ?) - or am I best dropping back to ADF for this and then using templates to preserve the code
    Cheers,
    Brent

    Hi Steven,
    I have actually managed to get this working in JHeadstart - and with only a couple of lines of custom code needed - so I thought I would post the process I followed here in case anyone else is interested (and perhaps get some feedback from you on whether this method is ok to use, or indeed if it can be tweaked/improved on :)
    So, for my testing I used the HR schema
    1. Extended the EMPLOYEES table to add a new column EMPLOYEE_STATUS. Not null, set most to "INACTIVE", some to "RETIRED" and some to "ACTIVE"
    2. Created Employee EO and Employees VO
    3. Also created a new VO EmployeesToBeActivatedShuttle - based on Employee EO with a custom where clause of WHERE Employees.EMPLOYEE_STATUS in ('ACTIVE','INACTIVE') - as in my unselected list, I don't want to see employees with a status of "RETIRED"
    4. Created a dummy parent VO EmployeeStatusActiveDummy - Read only VO with query "select 'ACTIVE' as emp_active_status from dual"
    5. Created a view link between EmployeeStatusActiveDummy and Employees
    6. In AppModule added EmployeeStatusActiveDummy and the child Employees VO (renamed ActiveEmployeesShuttle)
    7. In JAG, created a group ActivateEmployees with Data Collection EmployeeStatusActiveDummy. Hide single attribute.
    8. Created a dynamic domain for the unselected list using EmployeesToBeActivatedShuttle with EmployeeID as value and LastName as meaning
    9. Created a child group ActiveEmployees using the Data Collection ActiveEmployeesShuttle. Set group to parent-shuttle, set the unselected list domain and relevant titles
    As it stands, after generation this works perfect for showing just the INACTIVE employees in the leading shuttle and ACTIVE employees in the trailing shuttle. Also, moving employees from the INACTIVE to the ACTIVE shuttle also works as the existing processSelectedParentShuttleRow method in JhsApplicationModuleImpl simply updates the child attr (EmployeeStatus in this case) to the value of the parent attribute (hard coded as ACTIVE). What doesn't work out of the box is moving employees the other way (ie un-selecting them) as the standard processUnselectedParentShuttleRow method sets the child attr to null.
    I simply overrode processShuttle in my AppModuleImpl, and depending on the value of the childVo ViewObject I replace the processUnselectedParentShuttleRow with a shuttle box specific one (processUnselectedEmpStatusActiveShuttleRow). In this I simply change the line setting the child attr from null to INACTIVE (in my real world case I am looking up another attribute on the row that holds the previous status and using this value to reset the current status).
    And voila - JHeadstart generated shuttle updating the status of my records :)
    Hopefully it will stand up to more testing !
    Cheers,
    Brent

  • Display image in detail groups in jheadstart 11.1.1.3.35

    Hi, I've been trying to make a project that should display one picture in one of the detail groups. but when i generate the jheadstart definition editor and run the project, it shows an empty box for the image (image is not loaded).
    I've seen the source code and every thing seems right and when i use that detail group as a master group the image display just fine.
    is jheadstart 11g have a problem for displaying image in detail groups? because I've heard this option works in 10g pretty fine.
    please help me how i can fix this problem and i have to say my project deadline is coming :(

    We are not aware of such a problem.
    To really check whether it is related to a detail group, can you temporarily make the detail group a top-level group, generate and run your application to see whether the problem goes away?
    Make sure you first uncheck the Same Page checkbox before you drag and drop the detail group to become a top group.
    There is a known ADF issue that when you upload a new image, the new image is only shown when you restart the session.
    Steven Davelaar,
    JHeadstart Team.

  • JHeadstart 10.1.3 questions

    I have a few questions about the new 10.1.3 version. The text below is copied from the old JHeadstart blog, so I'd like to see what that described features were implemented in this release:
    Generation of JSF / ADF Faces pages. Instead of generating UIX pages, the new release will generate ADF Faces pages (in .jspx format). What is now known as View Type "JSP" will also result in .jspx pages using JSF tags. We are still investigating what mix of JSF implementations (RI, ADF Faces, MyFaces?) we want to use in these pages.
    Is it using ADF Faces only? If so, does it have any chance to use more than one JSF implementation in the future?
    A new extendable and pluggable generator architecture. As you might know, the JHeadstart Application Generator is driven by generator templates. These templates contain tokens that are resolved and replaced with dynamic content. Currenty, the tokens are resolved by a mix of XSLT stylesheets and java classes. In the next release, we will go for java classes only and we will use the Spring Bean Factory to instantiate the JHeadstart Token Resolver classes. This will make it very easy to plug in your own customized token resolvers: just register them in the bean factory xml file.
    This is one of the most interesting features for me and one of the most I don't have a good knowledge as well. Of course, we have to deal frequently with post-generation changes, and most of time we would like to be able to modify the original generator. How easy (and well documented) will this feature be available for us? Is it expected that an experienced Java programmer can easily add/define/change the templates?
    Nice to have, but not committed features for this release include export to excel, generic report launch form (supporting Oracle reports and XML Publisher) and matrix forms.
    Any advances in this features? The export to excel is one that I realized and was planning to implement in 10.1.2, integrating it with Jasper. The idea was to give the user an easy way to export/print all that current data (since HTML is not a good option to export/print) and from the programmer perspective, it could have this feature in an UIX page without the need to code anything. But of course, if this is planned to be in JHeadstart in the near future, it would be fine for me just wait the release.
    Thanks!
    Eduardo

    Eduardo,
    A difference with 10.1.2 is that the generated page content is 100% template-driven. Each page snippet / component has its own template that can be customized.
    The default template set included with 10.1.3 only uses ADF Faces Components but nothing stops you from creating custom templates that use other JSF Components. For example, in the ADF-JHeadstart workshop we have an exercise with custom templates where we use the MyFaces Html Editor component.
    JHeadstart uses the open source Velocity template engine. The language used in the JHeadstart Templates is the Velocity Template Language (VTL). Lots of doc about Velocity can be found at http://jakarta.apache.org/velocity/
    So, once you understand VTL and the JHeadstart metamodel structure and properties, you can make really advanced customizations by creating custom templates. We plan to write one of our next weblog posts about the templating mechanism.
    Although the need will be because of the template-driven nature of 10.1.3, you can now easily subclass the JHeadstart generator classes that provide the information used by the templates. We use the Spring Bean Factory to register our generator classes. You can make a subclass and register your subclass in the Spring bean XML config file.
    XSLT stylesheets are not used anymore.
    The nice to have features will certainly not make the first production release.
    Steven Davelaar,
    JHeadstart Team.

  • How can I prevent breadcrumbs from being used on the first page?

    Hi,
    I'm using the latest version of the technical communication suite to produce a WebHelp
    layout from a framemaker book. Thanks to all the help I've received so far it's proceeding
    well, although slowly.
    II have an initia l'home'  page, that isn't present in the TOC, just with a program logo, a company
    logo and a helpdesk address. How can I stop breadcrumbs from appearing on this page?
    I'm happy for this to be the Home page and to keep the word Home, and it is a separate
    document in the linked framemaker book.
    Has anyone got any ideas as to how I can do this?
    Thanks in advance for your help.
    Best wishes,
    Karen

    Hi Karen
    To each his or her own. Jeff's approach certainly will work but will require you to repeat the process each time you generate. With the approach I outlined you would only need to do things once.
    As for the breadcrumbs not appearing at all, it depends on *WHERE* in the Master Page you elected to add them. In order for the approach I outlined to work, you need to ensure you add the placeholder *OUTSIDE* the Body placeholder. Then you should see breadcrumbs on the pages you have associated with the Master Page.
    Cheers... Rick
    Helpful and Handy Links
    RoboHelp Wish Form/Bug Reporting Form
    Begin learning RoboHelp HTML 7, 8 or 9 within the day!
    Adobe Certified RoboHelp HTML Training
    SorcerStone Blog
    RoboHelp eBooks

Maybe you are looking for

  • CF8 DirectoryWatcher Gateway Doesn't Run When I Overwrite a File

    I've set up a Coldfusion Directory Event Gateway on my site (Win2K3 server, CF8 Ent).  The DW monitors an FTP directory where my users upload a batch of 5 PDF files each week.  The files are named file1.pdf, file2.pdf and so on.  When my DW gateway s

  • Apple TV via iTunes

    Gidday, I'm profoundly Deaf and I'm wanting to buy an Apple TV I have one question before I actually buy it.. The TV programmes, movies (both buy and rental) do they all offer subtitles or captions? Cheers S1l3ntworld

  • Project does not open with TopLink 10.1.3 DP3 R2

    I have a project that opens fine with 10.0.3 DP Build 031022 but won't open with 10g DP3 Build 041116. Here's the error. I 'd appreciate any suggestions or workarounds short of re-creating the project from scratch. racle.toplink.workbench.framework.O

  • SQL Loader Control File use of integer(n)

    Dear Gentlemen, I have an "ascii" file where some fields are binary of 2, 4 and 8 bytes. This file has to be loaded to oracle (8.1.7) Table using SQL Loader. According to SQL Loader documentation, for this case I must use as a field type: integer(n),

  • Inserting standard table data using ztable

    Hi all,            I have an issue like i have created "ztable" where i am taking few of the mara table fields. but my problem is i m not getting data into these fields , so can anyone tell me wht shuld be done to get the data into my ztable which wi