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 advanceJTech 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!
AlphonseHI,
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,
PratapYou 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 DavisEclipseLink'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
erdemHi,
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.
-RichardHi,
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 AMwhen 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,
nithyaHi
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 helpHi,
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
-
How to connect my macbook pro to my car cd player
hello how to connect my macbook pro to my car cd player
-
How do I sign on to itunes if it asks me to review my account information, then asks me to sign on again. Just round and round no answer.
-
A box with this error: "there was a problem sending the command to the program" always pops up upon clicking any URL sitting in my desktop (or from any other folder). It will not happen if Firefox is already open. However, it is only an annoyance as
-
Cumputer crashing when syncing photos to iPad
When I sync photos to my iPad my computer crashes. Not just iTunes, but my computer shuts down. The time it takes for the crash to happen varies. I read on a post from earlier this year to delete the photo cache and try again. This makes iTunes t
-
Apple Mobile Device Support won't uninstall
I called the support line to see why my phone won't show up in iTunes. They told me to unistall all 6 components o iTunes and I have with the exception of apple mobile deivce support. It won't unistall regardless of what I do. Help?!