Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Getting ADF Error while doing sorting option inside the List Of Values popup

2941307Apr 18 2017 — edited Apr 19 2017

Hi All,

I am using Jdeveloper 12.2.1.

We have two programmatic View object (CountryView & StatesView). CountryView is having three fields countryname ,statename and countryid and StateView have statename and statetid. In CountryView have statename as Input LOV from StateView. Now when we click on StateName LOV from CountryView shows list of statenames. But after it shows list of values am trying to click the sorting order icon to make it in ascending order. when I do this it throws ADF error.

For Creating the rows in StateView I am overriding the StatesViewImpl methods. May be that is reason got this error. But don't know the reason why it's occurring.

pastedImage_4.png

My StudentViewImpl Codes:

public class StatesViewImpl extends ViewObjectImpl {

List\<StateDetails> listvalue;//=new List\<String>();

/\*\*

 \* This is the default constructor (do not remove).

 \*/

public StatesViewImpl() {

}

/\*\*

 \* executeQueryForCollection - for custom java data source support.

 \*/

@Override

protected void executeQueryForCollection(Object qc, Object\[\] params, int noUserParams) {

    Test test=new Test();

    listvalue=test.myList();

    setFetchPos(qc, 0);

    super.executeQueryForCollection(qc, params, noUserParams);

}

/\*\*

 \* hasNextForCollection - for custom java data source support.

 \*/

@Override

protected boolean hasNextForCollection(Object qc) {

// boolean bRet = super.hasNextForCollection(qc);

// return bRet;

    return getFetchPos(qc) \< listvalue.size();

}

/\*\*

 \* createRowFromResultSet - for custom java data source support.

 \*/

@Override

protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet resultSet) {

// ViewRowImpl value = super.createRowFromResultSet(qc, resultSet);

// return value;

    int pos = getFetchPos(qc);

    StatesViewRowImpl newRow = (StatesViewRowImpl) createNewRowForCollection(qc);

    newRow.setStateId(listvalue.get(pos).getStateid());

    newRow.setStateName(listvalue.get(pos).getStatename());

    setFetchPos(qc, pos + 1);

    return newRow;

}

/\*\*

 \* getQueryHitCount - for custom java data source support.

 \*/

@Override

public long getQueryHitCount(ViewRowSetImpl viewRowSet) {

    long value = super.getQueryHitCount(viewRowSet);

    return value;

}

/\*\*

 \* getCappedQueryHitCount - for custom java data source support.

 \*/

@Override

public long getCappedQueryHitCount(ViewRowSetImpl viewRowSet, Row\[\] masterRows, long oldCap, long cap) {

    long value = super.getCappedQueryHitCount(viewRowSet, masterRows, oldCap, cap);

    return value;

}

private void setFetchPos(Object rowset, int pos) {

                if (pos == listvalue.size()) {

                    setFetchCompleteForCollection(rowset, true);

                }

                setUserDataForCollection(rowset, new Integer(pos));

            }

    private int getFetchPos(Object rowset) {

        int value = ((Integer) getUserDataForCollection(rowset)).intValue();

        return value;

    }

}

Test.Java Codes:

public class Test {

public List<StateDetails> myList() {

   List\<StateDetails> completeList=new ArrayList\<StateDetails>();

   StateDetails statdetails1=new StateDetails();

   StateDetails statdetails2=new StateDetails();

   StateDetails statdetails3=new StateDetails();

   StateDetails statdetails4=new StateDetails();

   statdetails1.setStateid("1");

   statdetails1.setStatename("NewYork");

   statdetails2.setStateid("2");

   statdetails2.setStatename("California");

   statdetails3.setStateid("3");

   statdetails3.setStatename("LosAngeles");

   statdetails4.setStateid("4");

   statdetails4.setStatename("NewJersey");

   completeList.add(statdetails1);

   completeList.add(statdetails2);

   completeList.add(statdetails3);

   completeList.add(statdetails4);

  return completeList;     

}

}

StateDetails.java Codes:

public class StateDetails {

String stateid;

String statename;

public void setStateid(String stateid) {

    this.stateid = stateid;

}

public String getStateid() {

    return stateid;

}

public void setStatename(String statename) {

    this.statename = statename;

}

public String getStatename() {

    return statename;

}

}

Thanks,

Madeshwarn

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 17 2017
Added on Apr 18 2017
5 comments
658 views