Bind a list element to a java ArrayList

Hello,
I have:
static ArrayList<String> myListwhich I declared static in class A.
I try to bind the items in a JavaFX ListBox to A.myList, so that whenever the content of myList changes, the items in the JavaFX ListBox change too.
How can this be done?
Thanks,
Ryan

The topic have been discussed several times in this forum.
IIRC one solution was to use Observer/Observable patterns.
You cannot bind, in the JavaFX sense, Java objects.

Similar Messages

  • How to pass java arraylist into javascript arrays

    Hi, i have declare an arraylist
    ArrayList list1 = new ArrayList();Inside the arraylist, there are elements. Now, i wan to pass the elements in the java arraylist into javascript arrays but i encounter javascript errors.
    This is how i code.
    var arr1 = new Array();
    <%
    for ( int x =0; x<list1.size(); x++)
    %>
         arr1[<%=x%>] = <%=(String)list1.get(x)%>;
    <%
    %>how do i solve this problem?
    Thanks for the guidance in advance

    JTech wrote:
    Hi,
    Use Quotes around string value ( arr1[indexposition] = "stringvalue";), when assign to javascript array as below.
    arr1[<%=x%>] = "<%=(String)list1.get(x)%>"; Regards,
    Ram.Hi Ram,
    How about using arr1 = <%=list.toArray()%> ??? Is this possible? I tried it but was not working on my IDE. Do you have any solutions for this??
    Regards,
    Thiagu

  • ContextException : cannot bind or add element

    Hi all,
    I can't find an answer to my problem.
    Hope you'll be able to
    Here are the facts :
    Context :
    I'm currently creating a TeamViewer for Managers to be able to select the employees they manage.
    For that, I have a table which lists them all, displaying their infos in specific columns.
    Both columns and data are dynamic and are specified in the SAP back end.
    I use the following bapis to get these informations :
    - HRWPC_RFC_GET_COL_INFO (returns columns informations)
    - HRWPC_RFC_GET_OBJECTS (returns employees personal numbers -> pernr)
    Fact is the second one doesn't return as much informations as needed.
    So I have then to call a third bapi :
    - MYBAPI_USER_INFOS (return informations about an employee)
    which, from an employee pernr, returns a lot more informations about him.
    Fact is I manage to use efficiently both first bapis, so I get columns and pernr data.
    Then I would like to get in a context node the list of enhanced informations of the employees, which is mapped to my view context and applied to a dynamic table.
    My problem :
    While adding programmaticaly the columns to my context node, I get the following exception : "com.sap.tc.webdynpro.progmodel.context.ContextException: Node(TeamViewerApp.MainViewColumns): cannot bind or add element, because it is already bound to a node" error.
    Error summary :
    - com.sap.tc.webdynpro.progmodel.context.ContextException: Node(TeamViewerApp.MainViewColumns): cannot bind or add element, because it is already bound to a node
    -- at com.sap.tc.webdynpro.progmodel.context.Node.prepareAddElement(Node.java:649)
    -- at com.sap.tc.webdynpro.progmodel.context.Node.addElement(Node.java:635)
    -- at com.airfrance.tv1.teamviewer.components.TeamViewerApp.updateMainView(*TeamViewerApp.java:560*)
    -- at com.airfrance.tv1.teamviewer.components.wdp.InternalTeamViewerApp.updateMainView(InternalTeamViewerApp.java:534)
    -- at com.airfrance.tv1.teamviewer.components.views.TeamViewerView.onActionChangeView(TeamViewerView.java:197)
    TeamViewerComp code :
         wdThis.getColumnsMainView(viewId, userLanguage, userId); // get the columns infos
         IGetColumns_ResultNode columns = wdContext.nodeGetColumns_Result();
         for(int i=0; i<columns.size(); i++) {
              IWDNodeElement column = columns.getElementAt(i); // get the #i column
              wdContext.nodeMainViewColumns().addElement(column);  +//add this column to my other context +
    My context :
    Component
    - GetColumns (Model)
    -- GetColumns_Output
    --- GetColumns_Result
    Colname
    Heading
    -- Langu
    -- Uname
    -- Viewid
    - MainViewColumns (Value)
    -- lot of infos
    - SubViewColumns (Value)
    -- lot of infos
    My environment :
    - os : Windows XP SP2
    - procesor : 3GHz
    - memory : 3Gb
    - ide : SAP NWDS 7.0.12
    - server JEE : 7.00 SP12
    - server VM : Java Sun 1.4.2_12
    Any help will be really appreciated
    Thank you for your time!
    Alphonse

    HI,
    com.sap.tc.webdynpro.progmodel.context.ContextException: Node(HrChiefRedressalView.Ctx_FilteredOutput): cannot bind or add element, because it is already bound to a node
    Try to bind or add element from the source of the node instead of mapped one.
    Ex:
    Controller->View
    If your node is mapped from controller to view. bind/add element should be done at controller level not at view level.
    Regards
    Ayyapparaj

  • How to bind a UI element to the context

    Hi Experts,
               I have a problem binding UI element to the context. In my code i have to create TabStrips dynamically and under this tabstrip number of UI elements would be there. For this i have a code like this..
    IWDTransparentContainer theActionContainer =(IWDTransparentContainer)view.getElement("RootUIElementContainer");
         IWDTabStrip ts = (IWDTabStrip) view.createElement(IWDTabStrip.class,"TabStrip");
              IWDTab tab1 = (IWDTab) view.createElement(IWDTab.class,"Tab1");
              IWDInputField in = (IWDInputField) view.createElement(IWDInputField.class,"in");
              IWDCaption header1 = (IWDCaption) view.createElement(IWDCaption.class,"Header1");
              header1.setText("Tab1");
              tab1.setContent(in);
              ts.addTab(tab1);
              IWDTab tab2 = (IWDTab) view.createElement(IWDTab.class,"Tab2");
              IWDInputField in2 = (IWDInputField) view.createElement(IWDInputField.class,"in2");
              IWDCaption header2 = (IWDCaption) view.createElement(IWDCaption.class,"Header2");
              header2.setText("Tab2");
              tab2.setHeader(header2);
              ts.addTab(tab2);
              theActionContainer.addChild(ts);
    <b>when i run this code it is giving following exceptions..</b>
    The initial exception that caused the request to fail, was:
       com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Property 'value' of AbstractInputField with id 'in' in view 'LoginView' must be bound to the context
        at com.sap.tc.webdynpro.clientserver.uielib.standard.impl.AbstractInputField.getValue(AbstractInputField.java:1260)
        at com.sap.tc.webdynpro.clientserver.uielib.standard.uradapter.InputFieldAdapter.getValue(InputFieldAdapter.java:582)
        at com.sap.tc.ur.renderer.ie6.InputFieldRenderer.render(InputFieldRenderer.java:56)
        at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:435)
        at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:134)
        ... 63 more
    com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Property 'value' of AbstractInputField with id 'in' in view 'LoginView' must be bound to the context
         at com.sap.tc.webdynpro.clientserver.uielib.standard.impl.AbstractInputField.getValue(AbstractInputField.java:1260)
         at com.sap.tc.webdynpro.clientserver.uielib.standard.uradapter.InputFieldAdapter.getValue(InputFieldAdapter.java:582)
         at com.sap.tc.ur.renderer.ie6.InputFieldRenderer.render(InputFieldRenderer.java:56)
         at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:435)
         at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.RenderManager.render(RenderManager.java:134)
         at com.sap.tc.ur.renderer.ie6.TabStripRenderer.renderTabStripItemContentFragment(TabStripRenderer.java:1867)
         at com.sap.tc.ur.renderer.ie6.TabStripRenderer.renderTabStripFragment(TabStripRenderer.java:838)
    From these exceptions what  i understood is, i need to bind these UI elements to context.
       Can any body tell me how to bind a UI element to the context if I understood the exceptions correct..
    Thanks in Advance,
    Murthy.

    HI,
    lets say Ctx is your context attribute,
    IWDAttributeInfo attrInfo = wdContext.getNodeInfo.getAttribute("Ctx");
    then , as per your code,
    IWDInputField in = (IWDInputField) view.createElement(IWDInputField.class,"in");
    <b>in.bindValue(attrInfo);</b>
    if your contex attribute is child of some other node then do like this,
    IWDAttributeInfo attrInfo = wdContext.getNodeInfo.getChildNode("SalesOrder",0)getAttribute("Ctx");
    //this is when Ctx is child of node SalesOrder, and we are taking Ctx from its 0th element
    then ,
    IWDInputField in = (IWDInputField) view.createElement(IWDInputField.class,"in");
    <b>in.bindValue(attrInfo);</b>
    include this in your code ,
    let me know if you face any problem
    regards
    reward points if it helps

  • How to pass a Java arraylist as a parameter to a StoredProcedureCall

    I need to invoke a stored procedurecall which takes in a collection parameter represented as a nested table. I need to pass a java ArrayList object to it. How can I pass this parameter to the stored procedure using StoredProcedureCall class.

    Hello,
    Check out
    Is possible to pass array/list as parameter in TopLink StoredProcedureCall?
    for some more information on using VARRAYs in 10.1.3. TopLink 11 has a feature that converts VARRAYs to/from collection types for you. An example using "myProcedure" that has an inout parameter "names" defined as type "NAMELIST_TYPE" would be:
        StoredProcedureCall sqlcall = new StoredProcedureCall();
        sqlcall.setProcedureName("myProcedure");
        sqlcall.addUnamedInOutputArgument("names", "names", Types.ARRAY, "NAMELIST_TYPE", ArrayList.class);
        DataReadQuery query = new DataReadQuery();
        query.addArgument("names");
        query.setCall(sqlcall);
        Vector args = new Vector();
        ArrayList names = new ArrayList();
        names.add("firstname1");
        names.add("firstname2");
        args.add(names);
        //DataReadQuery returns a collection of DatabaseRecords
        results = (Vector)getSession().executeQuery(query, args);
        //getting one record from the list:
        names =((ArrayList)((DatabaseRecord)results.get(0)).get("names"))This is just a simple example. More complex nested types can be done by providing a ObjectRelationalDatabaseField parameter describing the type, but I dont have any examples showing this handy.
    Hope this example helps,
    Chris

  • How to control rendering logic of static list element defintion?

    We are using 10gR4 version of site studio and are working with region templates and element definitions. We created a reporters static lits element definition which contains 3 columns (Name, About, Details) and added that to Reporters region template. Next defined a place holder defintion and associated region defintion and the region template fo reporters. Finally I added that place holder onto a article template. In the contribution mode for article we were able to add reporters rows (static list). BUt in the presentation of article I don't to see any listing of reporters. How could I control the display of static list element defintions from the region template forreporters? I don't see a way I could retrieve the individual rows and columns of static list and display the the results. The detail column of static lits just contatin a link to toher content item which is contributed through other region template. I would like to display the contents of that content items in line in the reporters template by making a wcm-place_holder service call for the embedded content items. How to achieve this?
    Regards,
    Pratap

    You are not making a remote call. Take a look at java RMI for more  info:
    http://docs.oracle.com/javase/6/docs/api/java/rmi/package-summary.html
    You can do it using a change listener.
    Take a look at this thread: https://forums.oracle.com/thread/2554119
    Change your class name (Menu ).  There is already  a menu control:
    http://docs.oracle.com/javafx/2/api/javafx/scene/control/Menu.html  

  • Preferred workaround for inability to bind a List as a parameter.

    I've discovered that the JPA spec doesn't allow one to bind a List to an query like "select foo from Foo foo where status in (:statusList)". What is the preferred workaround?
    Do I need to change my query to something like "select foo from Foo foo where status in (:status1, :status2, :status3, ..., :statusN), and bind each element individually?
    Thanks.
    Josh Davis

    EclipseLink's Expression criteria API allows the use of lists as arguments. So you should be able to define this query using the native Expression or DatabaseQuery API.
    http://wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI#EntityManager_createQuery.28Expression.29
    Otherwise you will need to dynamically generate your JPQL as you listed.
    Also see bug,
    https://bugs.eclipse.org/bugs/show_bug.cgi?id=219814
    James : http://www.eclipselink.org

  • Getting problem in binding DropDown List with table data in visual JSF

    Hi All,
    I am new to visual JSF.
    I am getting few problems while working over components.
    I have succeeded in binding data of Person table in a drop down list .
    By just drag drop ..it worked.
    But while connecting to external DB this drag drop mechanism didn't work for me .
    1st problem that i faced was by dragging method columns are not visible when i did right click-> bind to Data -> DataProvider window .
    But i am successfully printed table Data in backend ie: by putting
    for(int i=0; i<xn_white_listDataProvider.getAllRows().length;i++){
           System.out.println("  value :"+xn_white_listDataProvider.getValue("SUB_ID",xn_white_listDataProvider.getRowKey(Integer.toString(i))));
    }I am not getting how to set Items in dropdown1
    I tried putting
    HelloSh.xn_white_listDataProvider.options['XNODE.XN_WHITE_LIST.SUB_ID, XNODE.XN_WHITE_LIST.SUB_ID'but it didn't work while for person data table
      items="#{HelloSh.personDataProvider.options['PERSON.PERSONID,PERSON.NAME']}"it is working
    when i am writting items="24,28" in dropdown1 box
    & printing its value in static text Like
    <webuijsf:staticText id="staticText3" style="position: absolute; left: 72px; top: 120px" text="#{HelloSh.dropDown1.items}"/> it is printing fine .
    Plz help me in this regard.
    Any clarification if needed plz let me know.
    Thanks in advance.

    <h:selectOneMenu id="menu1" styleClass="selectOneMenu">
    <f:selectItems value="*#{selectitems.pc_DynamicPortletEdit.regList}*" />
    </h:selectOneMenu>When we bind the list to the h:selectOneMenu the code in the JSP will be as given above.
    My doubts here are
    1) But when i tried to bind the list to a selectonemenu the code in the JSP is looking like this one
    <h:selectOneMenu id="menu1" styleClass="selectOneMenu">
    <f:selectItems value="*#{selectitems.pc_DynamicPortletEdit.regList.regList.toArray}*" />
    </h:selectOneMenu>2) Also in the runtime instead of displaying the values in the dropdown, i am getting the object names (javax.faces.model.SelectItem@680d0ccc) in the drop down.
    What am I doing wrong? Any help here would be usefull for me.
    BTW,
    the code in the backing bean for setting the values is like this
    List dropListValue = new ArrayList();
        for (int x=0; x<result.length; x++){ //where result is array of string values              
            SelectItem tempSelect = new SelectItem();
            tempSelect.setLabel(result[x]);
            tempSelect.setValue(result[x]);
            dropListValue.add(result[x]);                      
    this.setRegList(dropListValue );The bean is in request scope only.

  • Bind additional context elements

    Hi
    İs it necessary to restart AS Java when editing the model
    binding and bind additional context elements to an
    already existing Model Node in the context?
    Regards
    erdem

    Hi,
    It is only necessary when you are trying to reimport the BAPI ....incase your portal is IN SP14 then no problem.
    You can use the ARFC tool to remove the cache
    http://blrsapepdev002:50000/webdynpro/dispatcher/sap.com/tcwdtools/WebDynproConsole
    Try removing the cache from here , or wht you can do ....open the JCO which is used for the MetaData and recreate it. 
    all of them works fine
    regards
    pankaj prasoon

  • How to parse whole xml elements into a java String

    hello everybody,
    I am trying to parse whole xml into a string for example
    my xml file is as below:
    <root>
        <element>
           <data id="1">1</data>
        </element>
        <element>
           <data id="2">2</data>
        </element>
    </root>
    in java whole data should be transfered as
    String xmlString ="<root><element><data id=\"1\">1</data></element><element><data id=\"2\">2</data></element></root>";or in a simple way can xml be copied into a string? any assistance ...
    thanQ in Advance.
    Han.

    This code is to convert xml document to a string.
                             try {
                                  javax.xml.transform.TransformerFactory tfactory = TransformerFactory.newInstance();
                                  javax.xml.transform.Transformer xform = tfactory.newTransformer();
                                  javax.xml.transform.Source src = new DOMSource(xmlString);
                                  java.io.StringWriter writer = new StringWriter();
                                  StreamResult result = new javax.xml.transform.stream.StreamResult(writer);
                                  xform.transform(src, result);
                                  //System.out.println(writer.toString());          
                             } catch (TransformerConfigurationException e) {
                                  e.printStackTrace();
                             }catch(Exception ex )
                                  ex.printStackTrace();
                             }

  • Binding a JavaFX variable to a Java class instance variable

    Hi,
    I am pretty new to JavaFX but have been developing in Java for many years. I am trying to develop a JavaFX webservice client. What I am doing is creating a basic scene that displays the data values that I am polling with a Java class that extends Thread. The Java class is reading temperature and voltage from a remote server and storing the response in an instance variable. I would like to bind a JavaFx variable to the Java class instance variable so that I can display the values whenever they change.
    var conn: WebserviceConnection; // Java class that extends Thread
    var response: WebserviceResponse;
    try {
    conn = new WebserviceConnection("some_url");
    conn.start();
    Thread.sleep(10000);
    } catch (e:Exception) {
    e.printStackTrace();
    def bindTemp = bind conn.getResponse().getTemperature();
    def bindVolt = bind conn.getResponse().getVoltage();
    The WebserviceConnection class is opening a socket connection and reading some data in a separate thread. A regular socket connection is used because the server is not using HTTP.
    When I run the application, the bindTemp and bindVolt are not updated whenever new data values are received.
    Am I missing something with how bind works? Can I do what I want to do with 'bind'. I basically want to run a separate thread to retrieve data and want my UI to be updated when the data changes.
    Is there a better way to do this than the way I am trying to do it?
    Thanks for any help in advance.
    -Richard

    Hi,
    If you don't want to constantly poll for value change, you can use the observer design pattern, but you need to modify the classes that serve the values to javafx.
    Heres a simple example:
    The Thread which updates a value in every second:
    // TimeServer.java
    public class TimeServer extends Thread {
        private boolean interrupted = false;
        public ValueObject valueObject = new ValueObject();
        @Override
        public void run() {
            while (!interrupted) {
                try {
                    valueObject.setValue(Long.toString(System.currentTimeMillis()));
                    sleep(1000);
                } catch (InterruptedException ex) {
                    interrupted = true;
    }The ValueObject class which contains the values we want to bind in javafx:
    // ValueObject.java
    import java.util.Observable;
    public class ValueObject extends Observable {
        private String value;
        public String getValue() {
            return this.value;
        public void setValue(String value) {
            this.value = value;
            fireNotify();
        private void fireNotify() {
            setChanged();
            notifyObservers();
    }We also need an adapter class in JFX so we can use bind:
    // ValueObjectAdapter.fx
    import java.util.Observer;
    import java.util.Observable;
    public class ValueObjectAdapter extends Observer {
        public-read var value : String;
        public var valueObject : ValueObject
            on replace { valueObject.addObserver(this)}
        override function update(observable: Observable, arg: Object) {
             // We need to run every code in the JFX EDT
             // do not change if the update method can be called outside the Event Dispatch Thread!
             FX.deferAction(
                 function(): Void {
                    value = valueObject.getValue();
    }And finally the main JFX code which displays the canging value:
    // Main.fx
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import javafx.scene.text.Text;
    import javafx.scene.text.Font;
    import threadbindfx.TimeServer;
    var timeServer : TimeServer;
    var valueObjectAdapter : ValueObjectAdapter = new ValueObjectAdapter();
    timeServer = new TimeServer();
    valueObjectAdapter.valueObject = timeServer.valueObject;
    timeServer.start();
    Stage {
        title: "Time Application"
        width: 250
        height: 80
        scene: Scene {
            content: Text {
                font : Font {
                    size : 24
                x : 10, y : 30
                content: bind valueObjectAdapter.value;
    }This approach uses less cpu time than constant polling, and changes aren't dependent on the polling interval.
    However this cannot be applied to code which you cannot change obviously.
    I hope this helps.

  • All listing element must have index,name and value?

    when i trying to convert a fmb file to xml, it shows a warning.
    All listing element must have index,name and value...
    how to resolve this..
    Edited by: skud on Mar 9, 2011 6:03 AM

    when i trying to convert a fmb file to xml, it shows a warning.
    All listing element must have index,name and value...
    how to resolve this..
    Edited by: skud on Mar 9, 2011 6:03 AM

  • How to create dynamic list element in Site Studio designer?

    Hi all,
    I have installed the Site Studio Designer(10gR4).The dynamic list element that i have added in the contributor region executes a query to search and display all the files in a particular folder.In the contributor mode when i try to add/edit the dynamic list element it gives an error saying :
    Unable to perform the action due to the following reasons:
    [+] Unable to retrieve search results. Unable to retrieve search results. Unable to create result set for query 'SELECT IdcColl2.dID, dDocName, dDocTitle, dDocType, dRevisionID, dSecurityGroup, dDocAuthor, dDocAccount, dRevLabel, dFormat, dOriginalName, dExtension, dWebExtension, dInDate, dOutDate, dCreateDate, dPublishType, dRendition1, dRendition2, VaultFileSize, WebFileSize, URL, dFullTextFormat, dFullTextCharset, DocMeta.* FROM IdcColl2, DocMeta WHERE IdcColl2.dID=DocMeta.dID AND (((((( xCollectionID >= 14 AND xCollectionID <= 14 ) AND NOT ( (CONTAINS(xDontShowInListsForWebsites, '{DIPP_Sample}') > 0) )))))) ORDER BY dDocTitle desc'. ORA-20000: Oracle Text error: DRG-10599: column is not indexed
    I have enabled the full-text search on the content server and also included xWebsites and xWebsiteObjectType columns to be full indexed in the Zone Fields Configuration.Is there any other setting to be done?Please help.
    Thanks,
    nithya

    Hi
    Include the xDontShowInListsForWebsites also from the zone filed and then update it.Then test it out.
    Hope it helps
    Srinath

  • How to get the list element label ? Please help

    Dear all
    I have a problem.
    I need to get the current list element lable
    for example
    the emp_list displays the employee_name and return the employee_id
    I need the following:
    when_list_change , i need to put the label of the selected element in a text item :EMP_NAME_TEXT
    I can put the put the element value easily when the user select an element
    :EMP_NAME_TEXT := :emp_list ;
    I need to put the label not the value
    please help

    Hi,
    Try out the get_list_element_label built-in function.....
    Find info in the on-line help.....
    Regards,
    Simon

  • Reading .csv Files & Empty List Elements

    I have an application allowing users to upload .csv files for
    import into a database.
    The issue is however, that in some cases every column in the
    csv file will be populated, and in others, not.
    As ColdFusion ignores empty list elements I cannot accurately
    import data based on it's column numbers.
    I'm curious how others get around this issue.

    ckbentdesigns wrote:
    > As ColdFusion ignores empty list elements
    Yes, most list functions ignore empty elements. If you are
    using CF8, try the listToArray function. It has a new attribute
    includeEmptyElements.
    Otherwise, there are several solutions. I listed a few of
    them in this thread. Though there are others. You should google
    something like:
    ColdFusion csv Files Empty List Elements to see other
    options and the +/- of each.
    http://www.tek-tips.com/viewthread.cfm?qid=1490791&page=1

Maybe you are looking for