5 Replies Latest reply on Feb 4, 2013 8:01 AM by user404

    ADF mobile: how to link task flow to a list view item

    Vik Kumar-Oracle

      I am trying to build a mobile app in adf and i created a popup on the left button on the header. this popup has a list view showing few options.

      now the requirement is to click on the option and navigate to that feature (which is created as a task flow).

      so, i am not sure how do like the task flow to the link in the listView of the popup. Please advise
        • 1. Re: ADF mobile: how to link task flow to a list view item
          I suppose that taskflow is a part of another feature?
          If so, you can use goToFeature(String) from the ApplicationFeatures datacontrol.
          The param is the ID of that taskflow.
          1 person found this helpful
          • 3. Re: ADF mobile: how to link task flow to a list view item
            Vik2 wrote:
            any documentation on this ?
            On what specific?
            Here is the official dev guide:
            • 4. Re: ADF mobile: how to link task flow to a list view item
              Vik Kumar-Oracle
              i have 4-5 items in the list view and each is supposed to navigate to a feature(task flow). so do i have to invoke this method programmatically passing the id of the feature? doesnt look a nice way for say large number of features required to be navigated in this way.
              • 5. Re: ADF mobile: how to link task flow to a list view item
                Well, if that list contains all features, you can use the 'features' from the ApplicationFeatures DC (they contain the ID, name, ... so you can use #{row.id} instead of hardcoding it).
                If that list does only contain a few features, you can make your own list.
                In your own backing bean or data control, you can get all the features by using:
                        ApplicationFeatures af = new ApplicationFeatures();
                And filter them.

                An example that I made/use myself:
                It uses an commandLink to navigate because I need to be able to 'disable' (= not clickable) some features (it has the same look as an ListView).
                So iff just use the getFeatures(), you can use the ListView for navigation.

                <amx:iterator var="row" value="#{bindings.features.collectionModel}" id="i1">    
                        <amx:tableLayout width="100%" id="tl2" inlineStyle="background-color:White;">
                          <amx:rowLayout id="rl2">
                            <amx:cellFormat width="50px" height="50px" halign="center" id="cf4" valign="middle"
                                            inlineStyle="border-bottom:thin solid #b8b9c8;">
                              <amx:image source="#{row.icon}" id="i2" inlineStyle="width:40px;"/>
                            <amx:cellFormat width="100%"  height="43px" id="cf3" valign="middle"
                                            inlineStyle="border-bottom:thin solid #b8b9c8;">
                              <amx:commandLink text="#{row.name}" id="cl1" inlineStyle="color:Black; font-weight:bolder; font-size:110%;"
                                <amx:setPropertyListener from="#{row.id}" to="#{pageFlowScope.feature}" />
                                <amx:actionListener binding="#{bindings.resetFeature.execute}"/>
                This my own data control :
                public class MenuDC {
                    private ExtendedFeatureInformation[] features;
                    private String message;
                    public MenuDC() {
                    public ExtendedFeatureInformation[] getFeatures() 
                        ApplicationFeatures af = new ApplicationFeatures();
                        return features;
                    private void fillExtendedFeatureList(FeatureInformation[] realFeatures)
                        message = "";
                        features = new ExtendedFeatureInformation[realFeatures.length];
                        for(int i = 0; i < realFeatures.length; i++)  
                            boolean enable = true;
                            FeatureInformation fi = realFeatures;
                enable = false;
                if(ModelController.getSingletonModelController().getRegisDFromLastSevenDays().size() == 0)
                enable = false;

                message = "SYNC_NEEDED";

                ExtendedFeatureInformation efi = new ExtendedFeatureInformation(fi.getId(),fi.getName(),fi.getIcon(),fi.getImage(),enable);
                features[i] = efi;

                public String getMessage() {
                return message;

                I made my own POJO which implements the FeatureInformation interface,
                because I needed an extra boolean attribute for disabling some features.
                public class ExtendedFeatureInformation implements FeatureInformation {
                    private String id,name,icon,image;
                    private boolean enable;
                    public ExtendedFeatureInformation() {
                    public ExtendedFeatureInformation(String id, String name, String icon, String image, boolean enable) {
                        this.id = id;
                        this.name = name;
                        this.icon = icon;
                        this.image = image;
                        this.enable = enable;
                    public String getId() {
                        return id;
                    public String getName() {
                        return name;
                    public String getIcon() {
                        return icon;
                    public String getImage() {
                        return image;
                    public boolean isEnable() {
                        return enable;