Retrieve the values of the executable (Dialog.Ask)
Hello world!
I have a situation where I have to ask the user a question according to the status of a remote object (sent to a web service). This operation is performed within a Thread, so I can't directly use the Dialog.Ask () because it translates into the exception "Engine UI consulted without holding the lock of the event". I used this code sample to get the dialog to the user
synchronized(UiApplication.getEventLock()) { Runnable push = new Runnable() { public void run() { Dialog.ask(message, choices, 0); } }; UiApplication.getUiApplication().invokeLater(push); }
This work is nice, but I can't retrieve the result... And because it's in a thread, I don't know how I could get it... Can someone help me with this one?
Thank you!
You usually use
Synchronized (UiApplication.getEventLock ())
or
UiApplication.getUiApplication (.invokeLater)
There's no value in using both at the same time.
In this case, the Dialog.ask returns an int, that indicates the result. The doc of the API:
Returns:
The selection of your choice (not the index) value, as must be returned by getSelectedValue(). For example, CANCEL, OK or DELETE are among the possible return values.
Thus, you can code something like:
int i = Dialog.ask (...);
Treat the i then returned.
Without doubt, you actually want to return the result in your calling Thread. I don't know how "legal", it is, but you might be able to get away with:
selectedChoice int = - 1;
{Synchronized (UiApplication.getEventLock ())}
selectedChoice = Dialog.ask (.);
}
If you can't do that, then look to split the treatment at the time of questions and using a DialogClosedListener to the decision of the user process. I don't know there are other options, just of can't think right now.
Tags: BlackBerry Developers
Similar Questions
-
Retrieve the value of Dialog.ask
I am trying to write a function that will create a context menu using Dialog.ask and return the result of the dialog box to the calling Thread. So far I have somethings like this:
//display a pop-up "Yes or No" box and return true for yes, false for no public boolean ask(final String question){ UiApplication.getUiApplication().invokeLater (new Runnable(){ public void run(){ int answer = Dialog.ask(Dialog.D_YES_NO, question, Dialog.NO); if(answer == Dialog.YES){ //somehow return true } else{ //somehow return false } }}); }
I've seen a similar thread, but I didn't know how to use the solution.
In short, how to use DialogClosedListener to retrieve the value of Dialog.ask to ?
First of all, you probably want to use invokeAndWait so that the calling thread is blocked until the Runnable.run () ends. After that, one solution is to store the result of somewhere. For example, the subclass of the floor and add a field where you store the value (a more general concept of an executable that can return a value in J2SE is the future, but it is not available out of the box in J2ME). Once completed invokeAndWait, you can read this field. Alternatively, you may return the value by changing something in the outer class (one that contstructs the Runnable). For example,.
final int[] result = new int[1]; UiApplication.getUiApplication().invokeAndWait(new Runnable() { public void run() { result[0] = Dialog.ask(...); } }); int choice = result[0]; ...
-
Retrieve the value of the dialog box
Hello
I have a class that extends the dialog box. A few Radiobuttns are added. I want to get the value of the RadioButton selected the actual class of the screen, call the dialog box by clicking the Dialog.OK button. The code I tried is as follows:
My class of the screen:
XXXDialog clScrn = new XXXDialog (); if (clScrn.doModal() == Dialog.OK) {
// I click Ok, but this is never shown Dialog.alert("Closed & here"); Dialog.alert("Selected = " + clScrn.getSelectedItem()); } clScrn = null;
The dialog class-
public XXXDialog() { super(Dialog.D_OK, "Select Item", Dialog.OK, null, VERTICAL_SCROLL | VERTICAL_SCROLLBAR | Field.USE_ALL_WIDTH | Field.USE_ALL_HEIGHT); rbg = new RadioButtonGroup(); rb1 = new RadioButtonField("One", rbg, false, Field.USE_ALL_WIDTH); rb2 = new RadioButtonField("Two", rbg, false, Field.USE_ALL_WIDTH); rb1.setChangeListener(this); rb2.setChangeListener(this); add(rb1); add(rb2); } public void fieldChanged(Field f, int context) { /* Actually, I want to know which field was clicked RadioButton or Ok button. If it is Ok, then I want to hide and return back to screen. */ try { RadioButtonField fd = (RadioButtonField) f; item = fd.getLabel(); System.out.println("Selected = " + item); } catch (Exception e) { } try{ ButtonField fd = (ButtonField) f; System.out.println("********* Button PRESSED = " + f); this.close(); } catch (Exception e) { } System.out.println("*********** Field Count = " + f.getManager().getFieldCount() + " Index = " + f.getIndex()); } public String getSelectedItem() { return item; }
The XXXDialog class is in a separate file of java.
Can anyone help me on what to do and how to achieve the goal.
Thank you
I found my solution. What I did is: -.
In my main screen, I call the as dialog box
clScrn.doModal ();
Dialog.Alert (Come Back here"); I see this alert as soon as the dialog box is closed.
In my class of dialogue, I have only the Ok button, dialog can be closed using the ESC key as I implemetned the code-
Dialog box does not close on ESC
{} public boolean keyChar (key char, int status, int time)
Boolean retVal = false;
{Switch (Key)}
case Characters.ESCAPE:
break;
}
Return retVal;
}So now, there is no other means to close the exception, Ok button dialog box and I make sure that when Ok is clicked, 1 radiobutton is selected.
Thank you all for the time and effort.
-
How to retrieve the values of character without using single quotes
Hi all
How to retrieve the values of character without the use of single quotes. Its Possible in Oracle SQL
Please answer me...
For example
Is actual query-> Select * from employees where name like in("SCOTT", "JAMES", "ALBERT",...);
I want to--> Select * from employees where name like(SCOTT, JAMES, ALBERT...); -without the use of single quotes.
Why I need this application, I need to retrieve the records more than 200 employees in a select statement by using name in where clause.
shagarmahabubjan wrote:
Hi all
How to retrieve the values of character without the use of single quotes. Its Possible in Oracle SQL
Please answer me...
For example
Actual query is---> Select * from employees where name like in("SCOTT", "JAMES", "ALBERT",...);
I want to---> Select * from employees where name like(SCOTT, JAMES, ALBERT...); -without the use of single quotes.
Why I need this application, I need to retrieve the records more than 200 employees in a select statement by using name in where clause.
In short... you can't. The channels are channels, and SQL and PL languages dictate that the string literals are provided within single quotes.
I don't see how trying to retrieve more than 200 records of employees in the select statement means that you must get rid of the quotes.
Be clear in what you ask: Re: 2. How can I ask a question on the forums?
and take note of the FAQ link davidp provided the solution "variable IN the list.
-
How to retrieve the values of a number of column by column in pl sql
I wanted to know how can I retrieve the values of a column just in number and not the name of the column.user10989720 wrote:
I need exactly this kind of thing.I am retrieving the name of the column from all_tab_columns and under this column name can I retrieve values using any kind of query sub.
Select column_name
from all_tab_columns
where table_name = 'QUOTE_HEADERS_EXT' and
column_id = 58You're still not understanding. You need to do if you want to get the values of the table dynamically.
Either like this:
SQL> create or replace type t_colval is table of varchar2(4000); 2 / Type created. SQL> ed Wrote file afiedt.buf 1 CREATE OR REPLACE FUNCTION get_column(p_sql IN VARCHAR2, p_column_no NUMBER) RETURN t_colval PIPELINED IS 2 v_finaltxt VARCHAR2(4000); 3 v_v_val VARCHAR2(4000); 4 v_n_val NUMBER; 5 v_d_val DATE; 6 v_ret NUMBER; 7 c NUMBER; 8 d NUMBER; 9 col_cnt INTEGER; 10 f BOOLEAN; 11 rec_tab DBMS_SQL.DESC_TAB; 12 col_num NUMBER; 13 BEGIN 14 c := DBMS_SQL.OPEN_CURSOR; 15 DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE); 16 d := DBMS_SQL.EXECUTE(c); 17 DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab); 18 FOR j in 1..col_cnt 19 LOOP 20 CASE rec_tab(j).col_type 21 WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000); 22 WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val); 23 WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val); 24 ELSE 25 DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000); 26 END CASE; 27 END LOOP; 28 LOOP 29 v_ret := DBMS_SQL.FETCH_ROWS(c); 30 EXIT WHEN v_ret = 0; 31 v_finaltxt := NULL; 32 CASE rec_tab(p_column_no).col_type 33 WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,p_column_no,v_v_val); 34 WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,p_column_no,v_n_val); 35 v_v_val := to_char(v_n_val); 36 WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,p_column_no,v_d_val); 37 v_v_val := to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'); 38 ELSE 39 DBMS_SQL.COLUMN_VALUE(c,p_column_no,v_v_val); 40 END CASE; 41 PIPE ROW (v_v_val); 42 END LOOP; 43 DBMS_SQL.CLOSE_CURSOR(c); 44* END; SQL> / Function created. SQL> select * from table(get_column('select * from emp',1)); COLUMN_VALUE --------------------------------------------------------------------------------------------------------------- 7369 7499 7521 7566 7654 7698 7782 7788 7839 7844 7876 7900 7902 7934 14 rows selected. SQL> select * from table(get_column('select * from emp',2)); COLUMN_VALUE --------------------------------------------------------------------------------------------------------------- SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER 14 rows selected. SQL>
Or like this:
SQL> create or replace type t_colval is table of varchar2(4000); 2 / Type created. SQL> ed Wrote file afiedt.buf 1 CREATE OR REPLACE FUNCTION get_column(p_table IN VARCHAR2, p_column_no NUMBER) RETURN t_colval PIPELINED IS 2 v_column_name VARCHAR2(30); 3 v_rc SYS_REFCURSOR; 4 v_val VARCHAR2(4000); 5 BEGIN 6 SELECT column_name 7 INTO v_column_name 8 FROM user_tab_columns 9 WHERE column_id = p_column_no 10 AND table_name = UPPER(p_table); 11 OPEN v_rc FOR ('SELECT '||v_column_name||' FROM '||p_table); 12 LOOP 13 FETCH v_rc INTO v_val; 14 EXIT WHEN v_rc%NOTFOUND; 15 PIPE ROW(v_val); 16 END LOOP; 17 CLOSE v_rc; 18* END; SQL> / Function created. SQL> select * from table(get_column('EMP',2)); COLUMN_VALUE ---------------------------------------------------------------------------------------------------------------- SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER 14 rows selected. SQL>
-
reactivate the confirmation dialog before executing applets
I chose "[] do not ask again" when you are prompted to run the java applet. Now all the applets run without confirmation.
How to restore the dialogue of confirmation for java applets?Already done, did not help.
In any case, was to play with the settings, deleted all the cache in the browser and java and did the following:
In java Control Panel:
Security tab-> Certificates-> certificate trust-> user-> (breakdowns) tab set all.
Advanced-> Security-> general-> unchecked tab "do not ask for a client certificate selection when there is no certificate or only one.In Firefox, about: config
reset the default ' pref.advanced.javascript.disable_button.advanced' property.
(Now I don't see this property more?)I don't really know, one that helped, but the confirmation dialog box appears now!
Thanks for all the help.
-
Call Dialog.ask in the Thread Run method
"in I want to call Dialog.alert and using following code but its exception to throw the wire.
"Exception occurs java.lang.RuntimeException: pushModalScreen called by a thread of non-event."
synchronized (Application.getEventLock ())
{
if (Dialog.ask ("catalog is obsolete. You want to keep it? ", choices, select, select [0])(==1)"
{
Run the required functionality
}
}
pls help me
I keep saying this, so forgive me of repeating myself, but:
synchronized (Application.getEventLock ()) {}
should only be used when nothing else will work for you or you make a very simple, very fast UI update.
A Dialog.ask is not very fast!
In this case, you have several options, but the most obvious solution is to ask the question before starting the Thread. So, if that is your treatment
Thread catUpdateThread = new Thread() {}
public void run() {}
Dialog.ask (...)
Other treatments
}
}
catUpdateThread.start ();
What should do the same and works OK. :
UiApplication.getUiApplication.invokelater (new Runnable() {}
public void run() {}
Dialog.ask (...)
If (result == Yes) {}
Thread catUpdateThread =...;
catUpdateThread... Start();
}
}
});
-
No big deal here, I want to just my 'Yes' button, highlighted initially instead of the 'no' in the dialog.ask function. Anyone know how to change it? Thank you!
Something like that?
int choice = Dialog.ask (Dialog.D_YES_NO, "You want to stop downloading?", Dialog.NO);
-
How to store and retrieve long values in the store persistent
Hello
In my application I want to store and retrieve long values in the persistent store that I used with Longvector and all is well, but LongVector is supported for operating system > = 4.6
I need to work my request in 4.5 also, can any one infrom me what are the other alternatives, I have to get my pls any abstract requirement...
Vector v = new Vector();
fill vector
Long premierElement = (Long) v.firstElement ();
myLong long = firstElement.longValue (); -
Prevent a Dialog.ask beeing scrolled down on the launch
Hello!
I want to show a EULA (very long chain) in a Dialog.ask, but it scrolls down to the buttons when it is released. Is there a simple way to avoid that I can't find?
Thank you!
only focusable components allow to scroll.
I had a similar problem while displaying a EULA. on top, it was very long, and the formatting is complex.
I opted for the EULA, including in html format.
in my UI I show accept, refuse, and display buttons.
show the button opens the html code in the browser - with all the formatting done automatically.
nobody reads the EULA anyway, and let the user scroll through miles of text if it does not intend to read is bad design.
-
Hallo,
I defined a VO with 3 fields (A, B and C) and I would like to create a SelectOneChoiche that shows only the field as options from this instance of VO.
In a managed bean, I need to retrieve the values for all areas (A, B and C) of the item selected by the user.
I started dragging the entire VO instance to UI to create a SelectOneChoiche (in which I have chosen to show only the to field).
Then, I created a for the SOC ValueChangeListener read the values A, B and C of the selected element, but the only thing I've done is to get the displayed value:
System.out.println((String) ((RichSelectOneChoice) FacesUtils.findComponent("MySoc")).getValue());
You kindly help me?
Thank you
Federico
Federico, sorry I didn't see your answer.
As you use 12.1.3 you can do this more easily than the code that I posted before. You can use
{} public void onCountrySelection (ValueChangeEvent valueChangeEvent)
FacesContext will involve = FacesContext.getCurrentInstance ();
Make sure that the selection change is processed and the current link lov line has the new selected line
valueChangeEvent.getComponent () .processUpdates (contxt);
BindingContext lBindingContext = BindingContext.getCurrent ();
BindingContainer lBindingContainer = lBindingContext.getCurrentBindingsEntry ();
List JUCtrlListBinding = lBindingContainer.get ("CountryId") (JUCtrlListBinding);
the newindex in not necessary, but ok let's get it (must be equal to the CountryId, the pharmacokinetics of the binding of the lov
String newindex = (String) valueChangeEvent.getNewValue ();
get the selected value in the list that is the selected line of the binding of the lov
Line lFromList = list.getSelectedValue () (line);
now, we can get the attributes of the line of lov
String s = (String) lFromList.getAttribute ("CountryId");
System.out.println ("CountryId:" + s);
String s2 = (String) lFromList.getAttribute ("CountryName");
System.out.println ("CountryName:" + s2);
BigDecimal s3 = lFromList.getAttribute("RegionId") (BigDecimal);
System.out.println ("RegionId:" + s3.toString ());
}
The form that I use is based on the location of the HR DB schema table. The CountryId is configured in the view object to display a lov based on the campagneVoir. This view contains thre CountryId, CountryName and RegionId attributes.
If you want to get to the attributes of an action listener you can use this code
{} public void onGetSelectedCountryLov (ActionEvent actionEvent)
BindingContext lBindingContext = BindingContext.getCurrent ();
BindingContainer lBindingContainer = lBindingContext.getCurrentBindingsEntry ();
List JUCtrlListBinding = lBindingContainer.get ("CountryId") (JUCtrlListBinding);
get the selected value in the list that is the selected line of the binding of the lov
Line lFromList = list.getSelectedValue () (line);
now, we can get the attributes of the line of lov
String s = (String) lFromList.getAttribute ("CountryId");
System.out.println ("CountryId:" + s);
String s2 = (String) lFromList.getAttribute ("CountryName");
System.out.println ("CountryName:" + s2);
BigDecimal s3 = lFromList.getAttribute("RegionId") (BigDecimal);
System.out.println ("RegionId:" + s3.toString ());
}
You must add the valueChangeListener and at least add the lines
FacesContext will involve = FacesContext.getCurrentInstance ();
Make sure that the selection change is processed and the current link lov line has the new selected line
valueChangeEvent.getComponent () .processUpdates (contxt);
to ensure that the selected line is available when you click the button.
And set autosubmit'= true for the field in the UI that displays the LOV.
Timo
-
search form Web apps: how to retrieve the value of the data-source type field
Hello
My question is:
How can I retrieve the value of the source field of a web - app data-types when you insert the "form web search apps" on a web page.
I have a web application that contains fields from the data source of the type. These fields to recover the (data) value of the 'web app' - 'elements of the field' field of another web application.
When I insert the form
Web apps
Web apps-search form
Name of the Web application
It displays the fields with the field (ie. string, number) types other than type of field 'data source '.
(Note: in the mode 'model of list' module of data tags, the fields of the data source are visible).
What other (alternative) possibilities are there to create a search form?
Thanks for your help.
Kind regards
Carla
By chance, I came up with this workaround. Of course there are other methods to get your data from a web - app, but if you want to use the 'Web apps search form', it would be a workaround.
I noticed that the "Web apps entry form" contains all the fields of web applications for your web application (including the fields of the data source).
It is possible to add the fields to the form of the "Web apps entry form" in the «Web apps search form»
If you insert the "Web apps entry form" on a blank page, you will see all the fields in your web App including the "data source fields. The names of form fields contain something like.
-
Print button to print the page 10 to the dialog asking the user how many times to print page 10
Hi all
Want javascript to attach to a button that does the following: -.
ask the user in the dialog box how many copies of page 10, they wish to print.
Seems easy hmmm not to me... Unfortunately.
If this cannot be done is is it possible to have page 10 selected in the dialog box for normal printing on a button... which brings up the print dialog box and all you have to do is select the number of copies.
Thanks in advance
Stephen
You can use this code to do this:
var copies = Number(app.response("How many times do you want to print page 10?","","")); if (!isNaN(copies) && copies>0) { var pp = this.getPrintParams(); pp.firstPage = 9; pp.lastPage = 9; pp.NumCopies = copies; this.print(pp); }
-
In a Web app "Listing", I've created several fields with the type of field "datasource". After making the data on an Internet site the output in html code changes. The value is retrieved from the field in the data source, but also the 'href' link - code. It interferes with my markup schema.org.
Is there a way only to retrieve the datasource value?
Thanks in advance for any help.
Krgds Carla@home
I finally found the answer in the documentation on: http://docs.businesscatalyst.com/reference/liquid/filters.html
How to remove HTML code
that is, if you want to remove the
-tag, you use the command:
{{ '
My paragraph
' | strip_html }}the above code removes the HTML of the string and outputs 'my paragraph.
-
How to retrieve the value of a custom field
Hello @all.
In my vCenter, I created a custom field 'email '. The value of this field is set to the e-mail address of the operator of that belongs to a virtual machine.
I would like to retrieve these values in a perl script. But I have found a method to set the values of the custom fields. For example:
$CustomFieldsManager -> SetField(entity => $_, key=> $emailKey, value => "[email protected]");
What should I do to retrieve the value of the $emailKey key? Could someone provide a quick and dirty-snippet, please?
Best regards
Trondesson
of course, in this discussion https://communities.vmware.com/message/1512863#1512863 you can see how it's done
Maybe you are looking for
-
iCloud does not synchronize my MBP 2013 (OSX 10.9.5) end and my iPhone 5 (iOS 9.3.1) the same thing. Mail sent to me via my mail ID Apple gets to my iPhone, but not for my MBP.
-
I use Vista and Internet Explorer 8. My Outlook emails not let me open the hyperlinks. I get the same error message other inquisitive got solutions for IE6 and IE7: "operation has been cancelled due to restrictions on this computer. Please contact
-
Please help me solve this message: Userinit logon application stopped working. I have windows 7. Thank you.
-
Getting started Questions: 3
Hi Ch membersFirst of all, I want to thank the people who answered my questions in the past. The fact this is the first time that I've never used a forum, I didn't know how to tag 2 times the same question as well.Products Adobe have a feature that a
-
Hi all I have a procedure I need the value of the field date null in this procedure. I tried several ways, but it does not have null in the date field. Please help me. The procedure looks like: TEST. PROC (USER_ID, Date); I tried the TEST. PROC ("123