How to define the rules of navigation in faces - config.xml dynamically?

In jdev 12.1.2 I am studying and performing the adf faces demo (12.1.2 version).

I am trying to implement the function of navigation like this:

1. in the navigation tree in the left panel of the accordion will show the features of an application which is read from database tables;

2. When you click on a node in the navigation tree, a corresponding function/page will be launched in the Panel to the right of the home page;

3. the navigation tree nodes display names and information pages target will be resident in the database tables and will be read in my case, the control of data bindings.

and now I know, the click action was executed in this file in the demo: componentGallerySideBarTree.jsff:

->action = "#{stamp.actionOutcome}"

< af:tree id = "tree" value = "#{attrs.menuModel}" var = "stamp" = "single" rowSelection fetchSize = "200" "

Summary = "#{uploading." Summary}"disclosedRowKeys =" #{attrs.menuModel.foldersTreeState} "autoHeightRows = '0'"

displayRow selectedRowKeys = "#{attrs.menuModel.selectionState}" = "selected" "

contentDelivery = 'immediate' emptyText = "there are no demos for this category.

styleClass = "AFStretchWidth" >

< f: facet name = "nodeStamp" >

< af:panelGroupLayout id = "nodePgl" >

< af:image source = "#{stamp.ico}" styleClass = "GalleryIcon" shortDesc = "Image of a tree node" "

ID = "nodeImg" / >

< af:switcher facetName = "#{stamp.children == null?' leaves ': 'notLeaf'}" id = "nodeSw" > "

< f: facet = "journal batch name" >

< af:link id = text = "#{stamp.label"leafLink"} '"

shortDesc = "#{stamp.label} #{stamp.deprecated eq 'real'?" (not recommended) " :"} »

action = "#{stamp.actionOutcome}"

inlineStyle = "#{stamp.deprecated eq 'true'?-style: italic; color: gray':"} ' "

selected = "true" >

< af:target execute="@this"/ >

< / af:link >

< / f: facet >

< f: facet name = "notLeaf" >

< af:outputText id = value = "#{stamp.label"notLeafText"} ' shortDesc =" #{stamp.label} "/ >"

< / f: facet >

< / af:switcher >

< / af:panelGroupLayout >

< / f: facet >

< / af:tree >

and the value of actionOutcome was entered in this file DemoConfusedComponentsMenuModel.java:

(for the case of the confused component navagation tree folder)

private TreeModel _initConfusedComponents()

{

Confused components

The list < DemoItemNode > confusedComponentsNodes = new ArrayList < DemoItemNode >)

{

{

..

Add (new DemoItemNode ("Tabs", "/ confusedComponents/tabs.jspx","/adfdt/panelTabbed.png","confused.tabs"));

Add (new DemoItemNode ("iterators","/ confusedComponents/iterators.jspx","/adfdt/iterator.png","confused.iterators" ""));

}

};

DemoItemNode confusedComponentsGroup = new DemoItemNode ("Often confused", "/ images/folder.png", confusedComponentsNodes);

List ConfusedComponentsList = new ArrayList();
confusedComponentsList.add (confusedComponentsGroup);

TreeModel confusedComponents = new ChildPropertyTreeModel (confusedComponentsList, _CHILDREN);
Return confusedComponents;
}

In addition, there are elements in faces-config .xml to define the rules of navigation for the actions 'by clicking on the tree node.

<>navigation-case

< from outcome >confused.iterators< / de-results >

< to view - id > /confusedComponents/iterators.jspx< / to-view-id >

<!-< redirect / >->

< / navigation-case >

So, I can add a new entry in the navigation tree, like this:

1. in DemoConfusedComponentsMenuModel.javaof the file: Add

Add (new DemoItemNode ("Iterators", "/confusedComponents/cms.jspx","/ adfdt/iterator.png","confused.cms" ""));

2. in the file faces - config.xml, add:

<>navigation-case

< from outcome >confused.cms< / de-results >

< to view - id > /confusedComponents/cms.jspx< / to-view-id >

<!-< redirect / >->

< / navigation-case >

and it works!- I have successfully added a new node in the navigation tree, called a new page created by myself cms.jspx.

If I implement them using database tables (links datacontrols EO/VO),.

I think I can put action = "#{stamp.actionOutcome}" by links.

But how can I pay the entry in the faces-config file. XML? -That is to say:

How to define the rules of navigation in faces - config.xml dynamically?

Thanks in advance!

ADF 12 c comes with support for JSF 2.0, you can use the implicit navigation feature.

In short: you don't need to add case action property, any set of navigation in the name of the page (and include the path if necessary).

In your case, the name of the action will be: ' / confusedComponents/cms.jspx ' and of course, you can link the action property of method that returns this string.

If you want to add by the case of navigation program, try ConfigurableNavigationHandler.

For example:

Manager of ConfigurableNavigationHandler = (ConfigurableNavigationHandler) FacesContext.getCurrentInstance () .getApplication () .getNavigationHandler ();

handler.getNavigationCases () .put (...);

Dario

Tags: Java

Similar Questions

  • How to define the rules of holiday for the purchase of the Oracle?

    Hi all

    How to define the rules of holiday in the Workflow administrator to a particular position?


    Please help me with the screenshots.


    Thanks in advance

    Responsibility: System Administrator

    Navigation: Administrator Workflow-> Administration

    Click on the link "rule of holiday.

  • How to use the Precendence_rules.csv file to define the rules of priority in integration ATG-short

    Hello

    I'm integrating ATG 10.1.2 Catalogue of products with short. I am successfully able to publish data from ATG to store short CASE file and run the update of the base.

    I used the model of integration of catalog:

    http://docs.Oracle.com/CD/E35827_01/ToolsAndFrameworks.310/PDF/ProductCatalogDTGuide.PDF

    The problem I am facing is, I have a dimension created from the structure of the ATG catalogue. I also have dimensions that I created in developer studio.

    I want to apply priority rules on the dimension, which I created in dev studio. using the Sun. by coming to the dimval CASE record store. Because I'm not able to view the dimensions to the CASE record store I can't define the rules of priority in dev studio.

    Page no. 12 of the guide above, they suggested that I use this precedence_rules.csv file in < app >/config/api - entry directory. I tried all the possible permutations and combinations to add priority rules by using this file, but they still do not work (I checked in JSP REF). All other prules I created in the studio of dev (between dims created in dev.studio) are being created.

    Another doubt, I must settle prules on a Sun. Val a dimension named product.category (coming from the record store Sun). Is this format I used below correct (I used the Windows format of folklore as suggested in the guide)?

    Precedence.source_dimension_name, Precedence.source_dimval_spec, Precedence.target_dimension_name, Precedence.type

    response of Product.Category/Accessories, 102016, Accessories 1, sheet

    Ideas/pointers would be greatly appreciated.

    I have no way of knowing that my FCM/ConfigurationGeneratorForge is actuall read this file because it didn't we no log being generated.

    Thank you

    Arjun

    I think I understood the problem I had. FCM correctly reads the precedence_rules.csv file, but it supports the priority rules for the dimensions of the root level. I could create a prule for "product.category" (it is NOT a dimension of autogen) which is a dimension created by the components of indexing of the ATG.

    It supports mapping prules for dims created in dev.studio and those created from on the side of the ATG and vice versa.

    When I tried to add the "product.category/accessories" as the size of the CBC in the priority rule, it does not work. "Accessories" are a dimval under "product.category" and it doesn't have an entry in the record of the CASE of the application schema store. I guess that's the problem that prevents me to add prules to the dimval.

    If someone managed to create the rule of priority for a dimval, let me know.

    Any help would be greatly appreciated.

    Kind regards

    Arjun

  • Microsoft Paint - how to change the rule in inches and centimeters

    How to change the rule in inches, centimeters, etc.. ?

    While in the paint, select the arrow down in the blue box in the upper left of the window.

    Select Properties

    Set the unit of inches, etc.

  • Call the rule of Navigation of Backing Bean

    Hi everyone

    I have a small problem with the redirect in the adf.

    So far, I used this code to redirect a Page to another page:


    FacesContext fctx = FacesContext.getCurrentInstance ();
    ExternalContext ectx = fctx.getExternalContext ();

    String viewId = pageToRedirect;
    ControllerCtx ControllerContext = null;
    controllerCtx = ControllerContext.getInstance ();
    String activityURL = controllerCtx.getGlobalViewActivityURL (viewId);
    ectx. Redirect (activityURL);

    This code is used in an ActionListner.
    From now I can't use this code more. I know that if I use an action I can redirect easily but I have to use an actionlistner so I would like to redirect using the navigation rule that I defined in my faces-config.

    Can I do this in my actionlistner? How?


    Thanks in advance to you all.

    If you have the control-flow-case defined between Page1.jspx to Page2.jspx as "goToPage2."
    You can use the code snippet in the bean managed in Page1.jspx

    FacesContext context = FacesContext.getCurrentInstance ();
    context.getApplication () .getNavigationHandler () .handleNavigation (context,
    NULL,
    * 'goToPage2'); *

    Thank you
    Nini

  • How to use the rule in WordPad for Windows 7

    Aid for the revised new WordPad for Windows 7 does not mention rule. There is no indication as to the definition of the margins of sovereign or how to click on the settings tab.

    The margin for Wordpad settings are stored in the Page layout dialog box. Access it from the "file" menu (icon just to the right of the home tab).

    Change tabs is a matter of clicking on the rule itself. Once a custom tab has been created, the tab spaces by default in 0.5 are replaced until the tabs custom custom tab can be moved left and right to improve positioning, or dragged the rule to remove. The rule also allows to change the body and the first indents of line from any point.

    If you prefer to work with dialog boxes for the settings section/tab, right-click on any paragraph and select the paragraph menu item. It can also be raised with the paragraph buttonon the home Ribbon, then on the right-most button tab in the second row or paragraph section. The tabs button is at the bottom left of this new dialog box.

    Using WordPad
    http://Windows.Microsoft.com/en-CA/Windows7/using-WordPad

    If you use the Internet to find more information, do not forget to include Windows7 in your search terms so that you get the appropriate information. (for example 'tab in Windows 7 wordpad settings')

    • If this proposal of solution solves your problem, please go back and mark as answer for others to consider.
  • Dreamweaver beginner 2015 CC [how you define the page of the document with the same dimensions?]

    Maybe this is a stupid question.  How do you define the page of the document to exactly what you design.  I need to create an ad by e-mail to the 800px 650px.

    There are no stupid questions, answers all simply stupid. I hope that this will not be one of these responses.

    The short answer is that you don't set limits to a document, such as e-mails, Web sites or other. An email to read on an iPhone will have completely different dimensions for a reading on a computer screen. Mesaages read in Outlook will behave different to those read in a text format.

    Unless you know your audience and the device they are using, you must keep the liquid paper. For more information, see here http://webdesign.tutsplus.com/articles/creating-a-simple-responsive-html-email--webdesign-12978

  • How to call the action of navigation?

    Hello

    I use JDeveloper 11 g 10.1.1.3

    I need to call the action of navigation on double-click on the row in the table.
    I know how to use clientListener and serverListener, but I can't call action of navigation (it is described in the adfc-config. XML) of the serverListener method.
    How I do that?

    Anatolii

    Hello

    the navigation is specific to the line in the table? You can always use a hidden command button which is the case of navigation configured in its action property. Then the FacesContext--> ViewRoot, looking for the component hidden (by ID) and it queue as explained here (see page 31: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/nov2010-otn-harvest-190744.pdf). We sample command button hidden ethe

    Frank

  • How to have the backup CSS navigation for older browsers

    Hello

    I'm on DW CS4 and I use an iMac intel. I just put a new CSS cool gradient on the my site navigation bar, and I know that I need a backup for older browsers that cannot display the CSS gradients.

    And I * thought * that simply by putting in solid background colors as a backup in the same chains of CSS would work for older browsers. But I don't get any result on IE 6 - I simply empty squares for navigation. The text is there fortunately, but this is all I get.

    http://www.frankbright.com/index3.htm

    Could someone point me to a tutorial or offer a tip on how to do this? I really appreciate all the assistance.

    Thank you, Frank B.

    One trick is to use conditional comments to earlier versions of Internet Explorer. Comment between theandTags of your HTML documents like this:

    
    

    Nancy O.
    ALT-Web Design & Publishing
    Web: Print: graphic design: media
    http://ALT-Web.com/
    Twitter: http://twitter.com/altweb
    Blog: http://alt-web.blogspot.com/

  • How to apply the rule of mail for mac?

    before mac I use windows machine and there is a lot of rule set in outlook mail, but now I have change all the mail to mac mail folder and I want to add my rule also but I serve as outlook e-mail rule:

    my e-mail outlook rule is to follow:

    Apply this rule after the arrival of massage

    where my name is in the cc box

    and where my name is not not in the box of

    and ...@com

    and only this machine only

    Move it to the... folder

    Please, help me mail from mac game.

    Mail rules apply to the new unread messages in the Inbox only. Open Mail preferences, select the rules tab and add a rule. The rules are different in the messaging applications, but you should have no problem setting up a similar to the one above:

    The illustration below shows something similar to what you have above. What do you do with this problems?

  • How to define the axis of the source of the meter

    I'm programming using the PCI-6251 DAQ with the Commission BNC2110 and Labview 7.1 card.

    I just want to write a program to count frequencies of two signals from outside. In the measurement and automation, I could use the edge count by selecting the source edge as Dev1/PFI0 etc. But in the vi window, how to change the axis of the ctr0 source to say PFI0 or PFI1 or something else?

    And the strategy of my program is correct or not? Because later, I want to use an internal counter to count for my external signal frequencies.

    Use the channel property node and the Jack for the meter.

  • How to define the range of data to a strict typdef through the control reference

    Hello world

    I'm trying to define the range of data to a strict typdef through the reference of the order, when I do, I get an 'error of property node.

    Is it possible to set the range of the strict typdef.

    Thank you

    Vignesh

    Vignesh1987 wrote:

    I'm trying to define the range of data to a strict typdef through the reference of the order, when I do, I get an 'error of property node.

    Is it possible to set the range of the strict typdef.

    Try to set the original control (type-def) and not its instances... to open the reference of the original type-def command, use 'Open VI reference'.

    Published:

    These properties are not available with STRICT TYPE DEF.

    a. data entry limits: increment property

    b. data entry property of limits: Maximum

    c. property limits: Minimum for the data entry

  • How to limit the rules (CPU usage) doesn't include a few servers (IP)

    Hello

    There are few servers who always raised processor and we do not generate alerts for servers, but we need to get the statistics of CPU in the FMS, is there a way I can limit the rules (i.e., the CPU utilization) to not stand for these servers.

    Thank you

    Shashank Soni.

    Hello

    You can change the definition of the rule to exclude certain hosts.

    In this example, we add a condition by saying that the does not apply to a specific host, or hosts.
    Note that you may need to replace the name of the property with the property that designates the host name.

    You can also check the host name in the status itself

    Another option you have is to find the variable being compared and it scope (give it a very high value for specific hosts.

    I hope this helps.

    Golan

  • How to populate the list of navigation on every page using 4 APEX

    I'm building a list (named top_navigation_list) under components of brilliance which is used for navigation. There are more than 50 pages added in the list.

    The problem is that is it possible to populate the list of navigation to each page easily?

    I know there are two ways to do this, but none of them are good:

    1. create the list for a region and see the top_navigation_list for each page. This needs a lot of works.

    2. with the creation of the list, choose 'create region for each target page list '. But isn't that can fill 5 pages.

    Y at - it an idea to do this easily?

    Thank you very much!

    Hello

    Create global page and create your list here.

    https://docs.Oracle.com/CD/E37097_01/doc.42/e35125/ui_allpgs.htm#HTMDB28490

    Kind regards

    Jari

  • How to define the condition in the analytic function

    Oracle 10g version

    Hi all

    I have the following data samples:

    Examples of data

    WITH DATA AS

    (

    SELECT 100 case_id, next_date, to_date('01-feb-2015','dd-mon-yyyy') UNION double, ALL crt_date to_date('01-jan-2015','dd-mon-yyyy')

    SELECT 100 case_id, next_date, to_date('01-mar-2015','dd-mon-yyyy') UNION double, ALL crt_date to_date('01-feb-2015','dd-mon-yyyy')

    SELECT 100 case_id, next_date, to_date('01-apr-2015','dd-mon-yyyy') UNION double, ALL crt_date to_date('01-may-2015','dd-mon-yyyy')

    SELECT 100 case_id, to_date('01-jun-2015','dd-mon-yyyy') next_date, to_date('01-apr-2015','dd-mon-yyyy') crt_date FROM dual

    )

    SELECT wagneur, MIN (next_date) OVER (PARTITION BY case_id) min_dt_analytical

    ,(

    SELECT MIN (next_date) DATA dd

    WHERE dd.case_id = d.case_id

    AND dd.next_date > crt_date

    ) min_dt_sub_query

    DATA d

    ;

    My question is that I get min_dt_sub_query using sub query but I want to use the analytical instead of query sub function so I created min_dt_analytical column, but I do not have how to give the condition that is AND dd.next_date > crt_date analytical so that I can get the same result as min_dt_sub_query data accordingly. Thanks in advance

    Concerning

    MIT

    Do not know if I understood your needs... but... something like that?

    WITH DATA AS (SELECT 100 case_id, next_date, to_date('01-feb-2015','dd-mon-yyyy') UNION double, ALL crt_date to_date('01-jan-2015','dd-mon-yyyy')

    SELECT the 100 case_id, next_date, to_date('01-mar-2015','dd-mon-yyyy') UNION double, ALL crt_date to_date('01-feb-2015','dd-mon-yyyy')

    SELECT the 100 case_id, next_date, to_date('01-apr-2015','dd-mon-yyyy') UNION double, ALL crt_date to_date('01-may-2015','dd-mon-yyyy')

    SELECT 100 case_id, next_date, to_date('01-apr-2015','dd-mon-yyyy') double crt_date to_date('01-jun-2015','dd-mon-yyyy'))

    SELECT d.

    MIN (next_date) OVER (PARTITION BY case_id) min_dt_analytical

    MIN(CASE WHEN next_date > crt_date THEN next_date ELSE NULL END) OVER (PARTITION BY case_id) AS min_dt_sub_query2

    DATA d;

    HTH

Maybe you are looking for