Saturday 17 December 2016

ADF : Treetable - SelectionListner and onLoad execution

ADF : Treetable - SelectionListner and onLoad execution













On Selection Listner – Store data into pageflowscope

    public void fileImpotObjectsTreeSelectionListener(SelectionEvent selectionEvent){
        ADFUtil.invokeEL("#{ApplicationsTreeBean.treeSelectionHandler}",
                         new Class[] { SelectionEvent.class },
                         new Object[] { selectionEvent });  
       
        CollectionModel treeModel =
          (CollectionModel) fileImpotObjectsTreeTable.getValue();
        RowKeySet rs = getFileImpotObjectsTreeTable().getSelectedRowKeys();
        RichTreeTable fileImpotObjectsTreeTable = this.getFileImpotObjectsTreeTable();
        Object oldKey = fileImpotObjectsTreeTable.getRowKey();
        Map attributeMap = new HashMap();
        if(rs != null){
            Iterator it = rs.iterator();
            if (it.hasNext()){
                List rowKey = (List) it.next();
                if (rowKey.size() > 0){
                    //Key k = (Key) rowKey.get(0);
                    //ADFUtil.setEL("#{pageFlowScope.selectedTerrKey}", k);
                    fileImpotObjectsTreeTable.setRowKey(treeModel.getRowKey());
                    JUCtrlHierNodeBinding rowData =
                      (JUCtrlHierNodeBinding) fileImpotObjectsTreeTable.getRowData();
                   
                    if (rowData != null) {
                        Row r = rowData.getRow();
                        ADFUtil.setEL("#{pageFlowScope.selectedObjectDetailId}", r.getAttribute("ObjectDetailId"));
                        attributeMap.put("alternatekey", r.getAttribute("AlternateKeys"));
                        attributeMap.put("mandatoryattr", r.getAttribute("MandatoryAttrs"));
                        attributeMap.put("mandatorygrpattr", r.getAttribute("MandatoryGroupAttrs"));
                        ADFUtil.setEL("#{pageFlowScope.attributeMap}", attributeMap);
                        ADFUtil.invokeEL("#{bindings.filterObjectAttributesByObjectDetail.execute}");
                        AdfFacesContext.getCurrentInstance().addPartialTarget(this.fileImpotObjectsAttributeTable);
                    }
                }
            }
        }
    }

On Page load – Store data into pageflowscope
    public Object getRowKeysOnPageLoad() {
        RichTreeTable fileImpotObjectsTreeTable = this.getFileImpotObjectsTreeTable();
        if (fileImpotObjectsTreeTable != null) {
            Object oldKey = fileImpotObjectsTreeTable.getRowKey();
            Object key = null;
            Map attributeMap = new HashMap();
            CollectionModel treeModel =
              (CollectionModel) fileImpotObjectsTreeTable.getValue();
           
            if (treeModel != null) {
                RowKeySet selectedRowKeySet =
                  fileImpotObjectsTreeTable.getSelectedRowKeys();
               
                if (selectedRowKeySet != null) {
                    Iterator selectedRowKeySetIterator =
                      selectedRowKeySet.iterator();
                   
                    fileImpotObjectsTreeTable.setRowIndex(0);
                    key = fileImpotObjectsTreeTable.getRowKey();
                    fileImpotObjectsTreeTable.setRowKey(treeModel.getRowKey());
                   
                    //Add the first row to the selection list
                    fileImpotObjectsTreeTable.getSelectedRowKeys().add(treeModel.getRowKey());
                   
                    //Add the first row to the disclosed list, so that the tree is expanded on page load
                    fileImpotObjectsTreeTable.getDisclosedRowKeys().add(treeModel.getRowKey());
                   
                    //retrieve the data of the first row
                    JUCtrlHierNodeBinding rowData =
                      (JUCtrlHierNodeBinding) fileImpotObjectsTreeTable.getRowData();
                   
                    if (rowData != null) {
                        Row row = rowData.getRow();
                       
                        DCIteratorBinding parentObjectDetailsIterator =
                          this.findIterator("ParentObjectDetailsIterator");
                        if (parentObjectDetailsIterator != null) {
                            RowSetIterator rsi =
                              parentObjectDetailsIterator.getRowSetIterator();
                            Row[] selectedRow =
                              rsi.getFilteredRows("ObjectDetailId",
                                                  row.getAttribute("ObjectDetailId"));
                            if (selectedRow.length > 0) {
                                rsi.setCurrentRow(selectedRow[0]);
                                ADFUtil.setEL("#{pageFlowScope.selectedObjectDetailId}", row.getAttribute("ObjectDetailId"));
                                attributeMap.put("alternatekey", row.getAttribute("AlternateKeys"));
                                attributeMap.put("mandatoryattr", row.getAttribute("MandatoryAttrs"));
                                attributeMap.put("mandatorygrpattr", row.getAttribute("MandatoryGroupAttrs"));
                                ADFUtil.setEL("#{pageFlowScope.attributeMap}", attributeMap);
                                ADFUtil.invokeEL("#{bindings.filterObjectAttributesByObjectDetail.execute}");
                                AdfFacesContext.getCurrentInstance().addPartialTarget(this.fileImpotObjectsAttributeTable);
                            }
                        }
                    }
                }
            }
            fileImpotObjectsTreeTable.setRowKey(oldKey);
            return key != null? key: fileImpotObjectsTreeTable.getRowKey();
        }
        return null;
    }

Reuse Stored data from pageflowscope

public void loadTableList(ActionEvent actionEvent) {
        List<FileImportValidationMessage> thisValidationMessageList =
            (List<FileImportValidationMessage>)ADFUtil.evaluateEL("#{pageFlowScope.keyTableList}");

        if (thisValidationMessageList != null) {
                    Object alternateKey = resolvElDC("#{row.TaskDetails14}");
                    if(alternateKey != null && !"".equalsIgnoreCase(alternateKey.toString())){
       
                        FileImportValidationMessage fileImportValidationMessage = null;
                        List<FileImportValidationMessage> keyTableList = new ArrayList<FileImportValidationMessage>();
                            String alternamteKeyStr = alternateKey.toString();
                            String keys[] = alternamteKeyStr.split("|");
                            Integer count = 1;
                            for(int i = 0; i < keys.length; i++) {
                               
                                fileImportValidationMessage = new FileImportValidationMessage(count.toString(),keys[i]);
                                keyTableList.add(fileImportValidationMessage);
                               
                            }
                            this.keyTableList = keyTableList;
                            ADFUtil.setEL("#{pageFlowScope.keyTableList}", keyTableList);
                    }
            }
               
    }

JSFF code

<af:treeTable   value="#{bindings.ParentObjectDetails1.treeModel}"
                                            var="node" rowSelection="single"
                                            selectionListener="#{backingBeanScope.FileImportManageImportObjects.fileImpotObjectsTreeSelectionListener}"
                                            id="ATTt1" initiallyExpanded="true" expandAllEnabled="true" autoHeightRows="10"
                                            displayRowKey="#{backingBeanScope.FileImportManageImportObjects.rowKeysOnPageLoad}"
                                            binding="#{backingBeanScope.FileImportManageImportObjects.fileImpotObjectsTreeTable}"
                                            rowBandingInterval="0" columnStretching="last" contentDelivery="immediate"
                                            summary="#{MktCommonMarketingGenBundle['OLabel.TargetObjects']}" >
                                <f:facet name="nodeStamp">
                                    <af:column headerText="#{MktCommonMarketingGenBundle['OLabel.DisplayName6']}"
                                       id="c1" sortable="true" width="200" rowHeader="unstyled">
                                           
                                               
                                               <af:panelGroupLayout id="pgl5"
                                                                     layout="horizontal">
                                                    <af:image source="/images/qual_checkmark_16.png" rendered="#{node.IsCustomObject}"
                                                              shortDesc="#{MktCommonMarketingGenBundle['OLabel.CustomObject']}"
                                                              id="i1"/>
                                                    <af:spacer width="10" rendered="#{node.IsCustomObject}"
                                                               height="10"
                                                               id="s2"/>
                                                <af:outputText value="#{node.ObjectNamePathDisplayLabel}"
                                                               id="ot1"/>
                                            </af:panelGroupLayout>
                                           
                                        </af:column>
                                </f:facet>
                                <f:facet name="pathStamp">
                                       
                                            <af:group id="g22">
                                                <af:panelGroupLayout id="pgl544"
                                                                         layout="horizontal">
                                                        <af:image source="/images/qual_checkmark_16.png" rendered="#{node.IsCustomObject}"
                                                                  shortDesc="#{MktCommonMarketingGenBundle['OLabel.CustomObject']}"
                                                                  id="i133"/>
                                                        <af:spacer width="10" rendered="#{node.IsCustomObject}"
                                                                   height="10"
                                                                   id="s233"/>
                                                <af:outputText value="#{node.ObjectNamePathDisplayLabel}"
                                                               id="ot2"/>
                                            </af:panelGroupLayout>
                                            </af:group>           
                                       
                                    </f:facet>
                               
                                <af:column headerText="#{MktCommonMarketingGenBundle['Header.LanguageIndependentCode.LanguageIndependentObjectAttri']}"
                                     id="c2" sortable="true" width="200">
                                        <af:outputText value="#{node.ViewObjectInstanceName}"
                                           id="ot3"/>
                                </af:column>
                                <af:column headerText="Alternatekey"
                                     id="c222" sortable="true" width="100">
                                        <af:commandImageLink
                                                             id="cil1"
                                                             icon="/images/key_dwn.png">
                                               <af:showPopupBehavior popupId=":::p1" triggerType="click"/>             
                                        </af:commandImageLink>
                                    </af:column>
                                <af:column headerText="Required fields"
                                     id="c233" sortable="true" width="100">
                                        <af:commandImageLink
                                                             id="cil2"
                                                             icon="/images/fuse-icon-checkmark.png">
                                                        <af:showPopupBehavior popupId=":::popup1" triggerType="click"/>
                                                        </af:commandImageLink>    
                                                            
                                    </af:column>
                                <!--
                                <af:column headerText="#{MktCommonMarketingGenBundle['OLabel.CustomObject']}"
                                     id="c3" sortable="true" width="200" align="center">
                                     <af:switcher defaultFacet="false" facetName="#{node.IsCustomObject}"  id="s1">
                                        <f:facet name="true">
                                          <af:image source="/images/qual_checkmark_16.png" shortDesc="#{MktCommonMarketingGenBundle['OLabel.CustomObject']}"
                                                    id="i1"/>
                                        </f:facet>
                                        <f:facet name="false"/>
                                    </af:switcher>
                                </af:column>
                                -->
                                <af:column  sortable="true"
                                         headerText="#{MktCommonMarketingAttrBundle['ColAttr.Description.ImportMappingDescription.MKTIMPMAP.DESCTEXT']}"
                                         id="c10">
                                <af:outputText value="#{node.Description}" id="ot10"/>
                              </af:column>
                            </af:treeTable>

ADF : Transient Attribute - Not sorting

ADF : Transient Attribute - Not sorting



Monday 12 September 2016

ADF : Reset or clear transient attribute manually

ADF : Reset or clear transient attribute manually

public void updateMappedFlag(){
        ViewObjectImpl mapColumnVo =
                   (ViewObjectImpl)this.findIterator("FileImportMapColumnsIterator").getViewObject();
        OAViewObjectImpl attrVo =
                   (OAViewObjectImpl)this.findIterator("FileImportAttrForObjectDetailForMapFieldsPageIterator").getViewObject();
        RowSetIterator attrRSI = attrVo.getRowSetIterator();
        RowSetIterator mapsRSI = mapColumnVo.getRowSetIterator();
        Row[] mapColRows = mapColumnVo.getAllRowsInRange();
        int count = 1;
        long attrRowCount = 0;
        attrRowCount = attrVo.getEstimatedRowCount();
        int mapColumnRowCount = 0;
        mapColumnRowCount = (int) mapColumnVo.getEstimatedRowCount();
       
       
        attrRSI.reset();
        attrVo.clearCache(); 
       
       
        //testing
        for(int i=0; i< mapColRows.length; i++){
                    Row mapColumnRow = mapColRows[i];
                    String sourceAttr = (String) mapColumnRow.getAttribute("ImpFieldName");
                    String objColDispName = (String) mapColumnRow.getAttribute("ObjColDisplayName");
                    String sourceMapped1 = (String) mapColumnRow.getAttribute("IgnoreFieldFlag");
                    if(objColDispName != null && !"".equalsIgnoreCase(objColDispName)){
                            Row[] attrRows = attrRSI.getFilteredRows("ObjectAttrName", objColDispName);
                            if(attrRows != null && attrRows.length == 1){
                                Row attrRow = attrRows[0];
                                if(attrRow != null){
                                    attrRow.setAttribute("Mapped", "Y");
                                }
                            }
                                
                    }
                    
            }
        //end

        mapsRSI.closeRowSetIterator();
        attrRSI.closeRowSetIterator();

            AdfFacesContext.getCurrentInstance().addPartialTarget(this.panelGL);
     
    }