Auto Suggest Prompt in 11g
Hi,
We have a requirement to provide Auto Suggestion of values (Like in Google) for OBIEE 11g search options in reports and dashboards.
For Eg: If in a Airport Code prompt, If I type B then it should show all values starting with B like BLR, BOM, BHU etc...
Please suggest.
For Auto - Suggest try below
http://obiee101.blogspot.in/2011/12/obiee10g-auto-suggest-prompt.html
http://www.obieefans.com/obiee10g-auto-suggest-prompt-2/
For Search try below:
http://www.wilson-is.com/blog/2011/08/obiee-10g-finding-a-prompt/
http://debaatobiee.wordpress.com/2009/10/04/javascript-in-obiee-to-search-a-report-and-custom-data-format/
Regards
MuRam
Similar Messages
-
Auto suggestion in outlook 2010
Hi,
As i type in outlook 2010, the word suggestions need to be shown to select then and there( as similar to mobile; when we compose a message by making dictionary ON).
Please suggest me.
Thanks,
VidhyaShankarHi,
By word suggestions/auto suggestions, do you mean the feature that prompt with suggested words when we type the first few letters? If this is the case, I'm afraid there is no such feature in Outlook.
If I've misunderstood it, would please provide a screenshot regarding this feature on the mobile so that we can understand it more clearly? You can share the screenshot to us by sending it to
GBSD TN Office Information Collection [email protected]
The email subject should be the thread link.
Thanks,
Steve Fan
TechNet Community Support
It's recommended to download and install
Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
programs. -
Error implementing Auto Suggest Behaviour (JDeveloper Tutorial)
Hi,
I'm using JDev 11g R2 on Mac OSX. In the JDeveloper Tutorial "Developing Rich Web Applications with Oracle ADF", Part 3, Step 3, I don't get the "Insert Auto Suggest Behavior dialog box", so I used the property inspector to enter "#{bindings.JobId.suggestedItems}" in the "SuggestedItems" property.
When I run the application, and type a value in the JobId, I get the error:
suggestedItems="#{bindings.JobId.suggestedItems}": Method not found: 0.suggestedItems(java.lang.String)
I checked the bindings in "query.jsf", and they're all set.
Does anyone have an idea what could be wrong?
Kind regards,
PhilipThe tutorial (http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_55/jdtut_11r2_55_3.html) suggests that you can drag and drop the auto suggest behavior onto the JobId. But you cannot.
By default, the JobId item is not created as an element that can accept an auto suggest behavior. The source for the item should resemble:
<af:inputComboboxListOfValues id="jobId1Id"
popupTitle="Search and Select: #{bindings.JobId1.hints.label}"
value="#{bindings.JobId1.inputValue}"
label="#{bindings.JobId1.hints.label}"
model="#{bindings.JobId1.listOfValuesModel}"
required="#{bindings.JobId1.hints.mandatory}"
columns="#{bindings.JobId1.hints.displayWidth}"
shortDesc="#{bindings.JobId1.hints.tooltip}">
<f:validator binding="#{bindings.JobId1.validator}"/>
<af:autoSuggestBehavior suggestedItems="#{bindings.JobId1.suggestedItems}"/>
</af:inputComboboxListOfValues>However, when the form itself is dropped onto the page, the JobId is created as a selectOneChoice.
This seems to be an error with the tutorial (http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_55/jdtut_11r2_55_2.html).
Edited by: Dolphin on Sep 29, 2012 2:37 PM -
Auto suggest behaviour copononent is not working
Hi All,
We migrated our application from JDev 11.1.1.3 to 11.1.1.5.
we have a input text with LOV feild in a popup, and the feild has auto suggest behavior,
<af:inputListOfValues id="inputListOfValues3"
popupTitle="Search and Select: #{bindings.Dica.hints.label}"
value="#{bindings.Dica.inputValue}"
label="#{bindings.Dica.hints.label}"
model="#{bindings.Dica.listOfValuesModel}"
required="#{bindings.Dica.hints.mandatory}"
columns="30"
shortDesc="#{bindings.Dica.hints.tooltip}"
autoSubmit="true"
valueChangeListener="#{backingBeanScope.Bean.dIcaChangeListener}"
searchDesc=" ">
<f:validator binding="#{bindings.Dica.validator}"/>
<af:autoSuggestBehavior suggestedItems="#{bindings.Dica.suggestedItems}"/>
</af:inputListOfValues>
it worked well in 11.1.1.3, but after moving it to 11.1.1.5, the auto suggest behaviour stopped working, but found no error in the log. LOV is working good, Value change listener is also working well.
Please advise.
Thanks...Yes, I did that, but no result. we have similar components in the same page itself with auto suggest behaviour and input LOV, for those auto suggest behaviour is working good. But this particular feild is in a popup, that might be the reason.
-
Dynamically loaded data in Auto Suggest
I'm loading data from the server with PHP for the AutoSuggest
Widget. Everything works great (and fast!).
Is there a way to add an additional URL parameter to the one
that is created for the AutoSuggest Widget (by default "prd")?
It obviously won't work when I add the URL parameter to the
data set constructor because it conflicts with the URL parameter
that is created by the Auto Suggest Widget's urlParam.
In other words, this wouldn't work:
new
Spry.Data.XMLDataSet("products.php?id=23,"products/product");
I tried to add it to the urlParam in the AutoSuggest
constructor script below the markup:
urlParam: "id=23&prd"
I was hoping that the above would create the following URL
parameter sting:
?id=23&prd=e (assuming that the first typed letter
would be "e")
since prd alone produces
?prd=e
But that doesn't seem to work either. Do you have any
suggestions?
Thanks!Update:
I just found the solution:
It works when I'm not using the entity name but the actual
ampersand "&" in the URL parameter like this:
urlParam: "id=23&prd"
Obviously, I also have to set loadFromServer to 'true' to
correctly filter the record set (I forgot that at first).
Thanks for the great widget! -
Using Auto Suggest To Set The Value Of Multipe Form Fields
I would like to use the Spry 1.5 Preview Auto Suggest widget
to provide the value for multiple form fields based on the row the
user selects in the auto suggestion data set. I've placed an
example of what I want to do here:
http://www.brucephillips.name/spry/Spry_P1_5_Preview/autosuggest/autosuggestMultipleFields .cfm
It appears that when the user clicks on one of the rows in
the auto suggestion data set, the current row for the data set is
not updated but remains the default (first row in the data set).
Therefore, if you have a spry:detailregion that uses that data set,
the values for that detail region are from the first row in the
data set and not the row the user selected.
Is it possible to set the current row of the auto suggest
data set to the row the user clicked on in the auto suggestion data
set so that the spry:detailregion will have the values from the row
the user clicked on?
I had previously modified the Spry 1.4 Auto Suggest widget to
do this. See:
http://www.brucephillips.name/blog/index.cfm/2006/11/6/Modifing-Sprys-Auto-Suggest-Widget- to-Bind-Users-Selection-to-A-Form
Thank you for any assistance.Cristian: thank you for the reply. I understand your concern
about the user changing the auto suggest field after updating the
complimentary fields. I think that could be handled through user
instruction. Additionally, instead of using form fields to hold the
complimentary data I could use non-editable paragraphs.
I hope the change is not too difficult. I think this
modification would make the auto suggest widget even more useful.
For example think about a product auto suggest. User starts to type
in the name of the product, selects the full product name from the
auto suggestions, and now the page can immediately show in a
spry:detailregion all the product details.
Thanks again for considering my request. I really appreciate
all the work the Spry team is doing. I'm looking forward to the
official release of Spry. -
Need to implement auto suggest with multiple select in a input text field
Hi,
Jdev Ver: 11.1.1.4
My requirement is to create an input field where i can provide auto suggest and user can enter multiple email ids. It is similar to current "To" field while composing a mail in Gmail.
Problem:
I have implemented input box with auto suggest. For the first entry it works fine. when i enter 2nd value(i have used ',' (comma) as separator and handled it in 'suggestItems' bean method to take sub-string after comma for providing the suggestion) , after selection.... the first value get lost. So at a time only one value is selected in the input text.
Input text:
<af:inputText label="Names" id="it21" rows="2"
columns="50" simple="true"
valueChangeListener="#{VisitBackingBean.visitMembersInputBoxCL}"
binding="#{VisitBackingBean.visitMembersInputBox}">
<af:autoSuggestBehavior suggestItems="#{VisitBackingBean.onSuggest}"/>
</af:inputText>
Bean Method:
public List onSuggest(FacesContext facesContext,
AutoSuggestUIHints autoSuggestUIHints) {
BindingContext bctx = BindingContext.getCurrent();
BindingContainer bindings = bctx.getCurrentBindingsEntry();
String inputNamevalue = autoSuggestUIHints.getSubmittedValue().trim();
if(inputNamevalue.contains(",")) {
inputNamevalue = inputNamevalue.substring(inputNamevalue.lastIndexOf(",")+1).trim();
//create suggestion list
List<SelectItem> items = new ArrayList<SelectItem>();
// if (autoSuggestUIHints.getSubmittedValue().length() > 3) {
OperationBinding setVariable =
(OperationBinding)bindings.get("setnameSearch");
setVariable.getParamsMap().put("value",
inputNamevalue);
setVariable.execute();
//the data in the suggest list is queried by a tree binding.
JUCtrlHierBinding hierBinding =
(JUCtrlHierBinding)bindings.get("AutoSuggestName_TUserROView1");
//re-query the list based on the new bind variable values
hierBinding.executeQuery();
//The rangeSet, the list of queries entries, is of type //JUCtrlValueBndingRef.
List<JUCtrlValueBindingRef> displayDataList =
hierBinding.getRangeSet();
for (JUCtrlValueBindingRef displayData : displayDataList) {
Row rw = displayData.getRow();
//populate the SelectItem list
items.add(new SelectItem(rw.getAttribute("UsrUserName").toString().trim() +
"<" +
rw.getAttribute("UsrMailId").toString().trim() +
">",
rw.getAttribute("UsrUserName").toString().trim() +
"<" +
rw.getAttribute("UsrMailId").toString().trim() +
">"));
return items;
Please suggest how can i achieve the mentioned functionality.Hi,
doesn't work this way as the suggest list returns a single value. You can actually use the existing values as a prefix to the new value in which case the suggest list would look a bit odd. Beside of this all you can do is to create a user lookup field with auto suggest and once a name is selected, update another field with the value returned from this action
Frank -
Hi..
I am trying to implement ajax auto-suggest using the example @ http://www.oracle.com/technology/products/jdev/tips/mills/AjaxAutoSuggest/AjaxAutoSuggest.html
After trying it, i realised the auto-suggest component does not work in firefox, but only in IE. Also when using IE 7, the auto-suggest pop up.screen. does not display directly under the textbox.. but rather away from it..unlike what we see in the example.
Is there any other ways to implement autosuggest that work in both firefox and IE using ADF?
thanksThe limitation on browsers is a function of the ajax library used, namely https://blueprints.dev.java.net/bpcatalog/distDrops.html, not ADF. I would suggest finding a similar library that supports the browsers you wish to use.
--RiC -
Auto Suggest Special characters
Hi!
I would like to known if you can use the Auto suggest widget
from the Spry framework with special character typed in the text
box.
In JSONDataSet with loadFromServer:true contains information
with special characters and spry:region appear correctly, but when
i type "Etc fóo" the spry url is ...?parameter=Etc%20f%C3%B3o
but server side value of parameter=Etc fóo,
when i send form url ?parameter=Etc+f%F3o server side value
of parameter is Etc fóo.
I try with charset ISO-8859-1, UTF-8 and i can´t fix
this.
The same error when i type "É" spry url
...?parameter=%C3%89 and server side value of parameter is Ã?,
when i sent form url is ..?parameter=%C9 and i´ts works,
server side is É
Version Spry_1_6_1_022408
same problem
Auto
suggest with special characters
Changes for Spry 1.6.1 - 2008/02/23
Auto Suggest
Fixed a bug for dynamic URL loading where some special
characters like + and & where not sent correctly to the server.
Fixed a bug with suggestion list showing when pressing some
special charactersHello,
I must admit that we didn't include into our test matrix such
a scenario so I don't know the answer. However I would like to
clear me a question before starting the investigation.
Do you mean that if you type the 'a' character the widget
should display the values that also starts with "â" or
"à" ? Because this scenario is really not supported.
Cristian -
Problem using Auto Suggest Behavior
Hi all,
I am using Jdeveloper 11.1.1.2 and ADFBC.
I want to implement auto suggest behavior and I am following the steps on: http://www.oracle.com/technology/products/jdev/howtos/autosuggest/explaining_autosuggestbehavior.htm
When I am writing a partial string on the component I don't show auto suggestion and if I click on the button on the right of the component (the lens for finding records) I see a panel search with all the fields of my VO.
It is a normal behavior I have a warning in the auto suggest component when I write #{bindings.myField.suggestedItems}?? I don't find it under bindings using the expression builder.
Where am I wrong?Any suggestions?
Thank you
AndreaSorry,
after the tag validator I have:
<af:autoSuggestBehavior suggestedItems="#{bindings.myAttribute.suggestedItems}"/>
When I am writing something on the inputText of myAttribute I have this error:
Target Unreachable, 'DescrizioneTecnica' returned null.
Stack trace:
javax.el.PropertyNotFoundException: Target Unreachable, 'myAttribute' returned null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:88)
at com.sun.el.parser.AstValue.invoke(AstValue.java:153)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
at oracle.adfinternal.view.faces.el.InternalELObject.autoSuggest(InternalELObject.java:134)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) -
Auto-Suggest feature in Combo-box LOV is not displaying non-unique values
Hi,
I have an auto-suggest feature implementation on a combo-box lov that displays the name and email-id of a list of people. There are non-unique names in the back-end, for example :
Abraham Mason [email protected]
Abraham Mason [email protected]
But when I use the auto-suggest feature and type in, say 'Ab', instead of showing both the Abraham Masons the auto-suggest displays only one of the values.
As in the example above the email-ids of the two Abraham Masons are different and unique.
If I use the conventional drop down menu of the combo-box then both the values are visible.
Is the auto-suggest feature implemented in a manner so as to display only unique values?
This is the implementation of the auto-suggest feature that I have done -
<af:column headerText="#{bindings.RqmtAtLevel1.hints.Owner.label}"
id="c23" sortable="true" filterable="true"
sortProperty="Owner"
filterFeatures="caseInsensitive">
<af:inputComboboxListOfValues id="ownerId"
popupTitle="#{ResourcesGenBundle['Header.SearchandSelect.Searchandselectanobjectusingad']}: #{bindings.RqmtAtLevel1.hints.Owner.label}"
value="#{row.bindings.Owner.inputValue}"
model="#{row.bindings.Owner.listOfValuesModel}"
required="#{bindings.RqmtAtLevel1.hints.Owner.mandatory}"
columns="#{bindings.RqmtAtLevel1.hints.Owner.displayWidth}"
shortDesc="#{bindings.RqmtAtLevel1.hints.Owner.tooltip}"
autoSubmit="true">
<f:validator binding="#{row.bindings.Owner.validator}"/>
<af:autoSuggestBehavior suggestedItems="#{row.bindings.Owner.suggestedItems}"/>
</af:inputComboboxListOfValues>
</af:column>
Thanks,
Anirudh AcharyaHi,
don't find a bug entry about this, so if this indeed is a defect then this has not been filed. Do you have a test case ? If you have please zip it up and send it in a mail to me. My mail address is in my OTN profile (just click on my name until you get to the profile). Pleas rename the "zip" extension to "unzip" and mention the JDeveloper release you work with. The test case should work against the Oracle HR schema.
If you need to track the issue, I suggest to file a service request with customer support yourself
Frank -
My auto suggestion bar disappeared - how do I get it back?
My auto suggestion bar on my phone when texting - how do I get the suggestion bar back? It was an ios8 feature and I loved it.
If you see a short horizontal bar above your keyboard, tap and slide the bar up to reveal the predictive choices.
-
Creating new Auto-Suggest Component
Hi,
I am new to ADF and looking for Auto-Suggest options. Found Franks code and it was really heplful.
We tried to create a new component based on this but not able to use multiple components of the type on the same page/form.The problem we are thinking of is because of the popup having the same id for all the components we embed in.If we attach 3 components of this type to a form then one of the random ones work as per logic and other 2 not doing any pop ups at all.
Could you please help us to resolve this please?
Thanks
Subha
CODE
suggestComponentModel.java
package com.dstintl.ic.ui.component.suggestbox;
import java.util.List;
public interface SuggestComponentModel{
* Method called to filter data shown in the suggest list. Initial
* request is made with inMemory = false. If in memory sorting is
* enabled then all subsequent calls are made passing trues as the
* value for the inMemory parameter. Implementations may decid to
* ignore the inMemory argument and always query the data source.
public List<String> filteredValues(String filterCriteria,
boolean inMemory);
SuggestBoxTag.java+
package com.dstintl.ic.ui.component.suggestbox;
import javax.el.ValueExpression;
import oracle.adf.view.rich.component.rich.fragment.RichDeclarativeComponent;
import oracle.adfinternal.view.faces.taglib.region.RichDeclarativeComponentTag;
import org.apache.myfaces.trinidad.bean.FacesBean;
* ICDateComponent tag class.
public class SuggestBoxTag extends RichDeclarativeComponentTag {
/*input text properties*/
private ValueExpression styleClass;
private ValueExpression label;
private ValueExpression required;
private ValueExpression displayWidth;
private ValueExpression maximumLength;
private ValueExpression tooltip;
private ValueExpression disabled;
/*popup properties*/
private ValueExpression itemList;
* {@inheritDoc}
@Override
protected String getViewId() {
return "/component/SuggestBox.jspx";
* {@inheritDoc}
@Override
protected RichDeclarativeComponent createComponent() {
return new SuggestBox();
* {@inheritDoc}
@Override
public void release() {
super.release();
label = null;
* {@inheritDoc}
@Override
protected void setProperties(final FacesBean bean) {
super.setProperties(bean);
/*Input text box properties*/
if (label != null) {
bean.setValueExpression(SuggestBox.LABEL_KEY, label);
if (styleClass != null) {
bean.setValueExpression(SuggestBox.STYLE_CLASS_KEY, styleClass);
if (required != null) {
bean.setValueExpression(SuggestBox.REQUIRED_KEY, required);
if (displayWidth != null) {
bean.setValueExpression(SuggestBox.DISPLAY_WIDTH_KEY, displayWidth);
if (maximumLength != null) {
bean.setValueExpression(SuggestBox.MAXIMUM_LENGTH_KEY, maximumLength);
if (tooltip != null) {
bean.setValueExpression(SuggestBox.TOOLTIP_KEY, tooltip);
if (disabled != null) {
bean.setValueExpression(SuggestBox.DISABLED_KEY, disabled);
if (itemList != null) {
bean.setValueExpression(SuggestBox.POPUP_SELECTITEMLIST_KEY, itemList);
* @return label
public ValueExpression getLabel() {
return label;
* @param label
* label
public void setLabel(ValueExpression label) {
this.label = label;
* @return style class.
public ValueExpression getStyleClass() {
return styleClass;
* @param styleClass
* style class.
public void setStyleClass(ValueExpression styleClass) {
this.styleClass = styleClass;
* @param required
* required.
public void setrequired(ValueExpression required) {
this.required = required;
* @return required .
public ValueExpression getrequired() {
return required;
* @param displayWidth
* displayWidth.
public void setDisplayWidth(ValueExpression displayWidth) {
this.displayWidth = displayWidth;
* @return displayWidth .
public ValueExpression getDisplayWidth() {
return displayWidth;
* @param maximumLength
* maximumLength.
public void setmaximumLength(ValueExpression maximumLength) {
this.maximumLength = maximumLength;
* @return maximumLength .
public ValueExpression getmaximumLength() {
return maximumLength;
* @param tooltip
* tooltip.
public void setTooltip(ValueExpression tooltip) {
this.tooltip = tooltip;
* @return tooltip .
public ValueExpression getTooltip() {
return tooltip;
* @param disabled
* disabled.
public void setDisabled(ValueExpression disabled) {
this.disabled = disabled;
* @return disabled .
public ValueExpression getDisabled() {
return disabled;
* @param itemList
* itemList.
public void setItemList(ValueExpression itemList) {
this.itemList = itemList;
* @return itemList .
public ValueExpression getItemList() {
return itemList;
SuggestBox.java+
package com.dstintl.ic.ui.component.suggestbox;
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.model.SelectItem;
import oracle.adf.view.rich.component.rich.fragment.RichDeclarativeComponent;
import oracle.adf.view.rich.component.rich.input.RichSelectOneListbox;
import oracle.adf.view.rich.context.AdfFacesContext;
import oracle.adf.view.rich.render.ClientEvent;
import org.apache.myfaces.trinidad.bean.PropertyKey;
* suggestBox.
public class SuggestBox extends RichDeclarativeComponent {
/** label. **/
public static final PropertyKey LABEL_KEY = PropertyKey.createPropertyKey("label");
/** styleClass **/
public static final PropertyKey STYLE_CLASS_KEY = PropertyKey.createPropertyKey("styleClass");
/** required **/
public static final PropertyKey REQUIRED_KEY = PropertyKey.createPropertyKey("required");
/** displayWidth **/
public static final PropertyKey DISPLAY_WIDTH_KEY = PropertyKey.createPropertyKey("displayWidth");
/** precision **/
public static final PropertyKey MAXIMUM_LENGTH_KEY = PropertyKey.createPropertyKey("maximumLength");
/** toolTip **/
public static final PropertyKey TOOLTIP_KEY = PropertyKey.createPropertyKey("tooltip");
/**disabled **/
public static final PropertyKey DISABLED_KEY = PropertyKey.createPropertyKey("disabled");
/** itemList **/
public static final PropertyKey POPUP_SELECTITEMLIST_KEY = PropertyKey.createPropertyKey("itemList");
* Constructor.
public SuggestBox() {
* Gets the value set to the <code>label</code> attribute.
* @return String label.
public String getLabel() {
String t = (String) getAttributes().get("label");
return t;
* Gets the value set to the <code>styleClass</code> attribute.
* @return String styleClass.
public String getStyleClass() {
String t = (String) getAttributes().get("styleClass");
return t;
* Gets the value set to the <code>required</code> attribute.
* @return b.
public boolean getrequired() {
Boolean b = (Boolean) getAttributes().get("required");
return b;
* Gets the value set to the <code>displayWidth</code> attribute.
* @return String displayWidth.
public String getDisplayWidth() {
String t = (String) getAttributes().get("displayWidth");
return t;
* Gets the value set to the <code>precision</code> attribute.
* @return String precision.
public String getMaximumLength() {
String t = (String) getAttributes().get("maximumLength");
return t;
* Gets the value set to the <code>toolTip</code> attribute.
* @return String styleClass.
public String getToolTip() {
String t = (String) getAttributes().get("tooltip");
return t;
* Gets the value set to the <code>disabled</code> attribute.
* @return b.
public boolean getDisabled() {
Boolean b = (Boolean) getAttributes().get("disabled");
return b;
* Main popUp functionality.
/**Get popUpId label */
private String popUpLabel;
public void setPopUpLabel(String popUpLabel) {
this.popUpLabel = popUpLabel;
public String getPopUpLabel() {
this.popUpLabel =(String) getAttributes().get("label");
return popUpLabel;
/** fullitemList from the binding **/
private List<SelectItem> fullitemList;
/** suggestedList - to populate list of suggestions squeezed from the fullitemList **/
private List<SelectItem> suggestedList = new ArrayList<SelectItem>();
/** suggestListBox - attached to the Main popUp RichSelectOneListbox**/
private RichSelectOneListbox suggestListBox;
* sets suggestListBox
public void setSuggestListBox(RichSelectOneListbox suggestListBox) {
this.suggestListBox = suggestListBox;
* gets suggestListBox
* @return suggestListBox
public RichSelectOneListbox getSuggestListBox() {
return suggestListBox;
* Sets suggested list on the selectOneListbox component
* @param suggestedList
* suggestedList.
public void setSuggestedList(List<SelectItem> suggestedList) {
this.suggestedList = suggestedList;
* Retrieves the list from the bindings and
* initialise suggestedList with the full list(only done during initialisation)
* @return suggestedList.
public List<SelectItem> getSuggestedList() {
if(fullitemList == null){
fullitemList = new ArrayList<SelectItem>();
List<SelectItem> result = (List<SelectItem>) getAttributes().get("itemList");
this.fullitemList.addAll(result);
this.suggestedList.addAll(result);
return suggestedList;
* doFilterList - On Every user keystroke in the suggest input field, the browser client calls
* the doFilterList method through the af:serverListerner component
* af:selectoneListbox (popup) is refreshed at the end of each call to the doFileterList so that
* new list value is populated.
* @param clientEvent
public void doFilterList(ClientEvent clientEvent) {
if(suggestListBox == null) {
UIComponent uic = clientEvent.getComponent();
suggestListBox = (RichSelectOneListbox) uic.getChildren().get(0);
// set the content for the suggest list
String srchString = (String)clientEvent.getParameters().get("filterString");
this.suggestedList.clear();
for(SelectItem item : fullitemList) {
if( item.getLabel().contains(srchString)){
this.suggestedList.add(item);
AdfFacesContext.getCurrentInstance().addPartialTarget(suggestListBox);
SuggestBox.jspx+
<?xml version='1.0' encoding='windows-1252'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=windows-1252" />
<af:componentDef var="attrs" componentVar="component">
<af:document>
<f:facet name="metaContainer">
<af:group>
<![CDATA[
<script>
function handleKeyUpOnSuggestField(evt){
// start the popup aligned to the component that launched it
suggestPopup = evt.getSource().findComponent("suggestPopup");
inputField = evt.getSource();
//don't open when user "tabs" into field
if (suggestPopup.isShowing() == false &&
evt.getKeyCode()!= AdfKeyStroke.TAB_KEY){
hints = {align:AdfRichPopup.ALIGN_AFTER_START, alignId:evt.getSource().getClientId()+"::content"};
suggestPopup.show(hints);
//disable popup hide to avoid popup to flicker on
//key press
suggestPopup.hide = function(){}
//suppress server access for the following keys
//for better performance
if (evt.getKeyCode() == AdfKeyStroke.ARROWLEFT_KEY ||
evt.getKeyCode() == AdfKeyStroke.ARROWRIGHT_KEY ||
evt.getKeyCode() == AdfKeyStroke.ARROWDOWN_KEY ||
evt.getKeyCode() == AdfKeyStroke.SHIFT_MASK ||
evt.getKeyCode() == AdfKeyStroke.END_KEY ||
evt.getKeyCode() == AdfKeyStroke.ALT_KEY ||
evt.getKeyCode() == AdfKeyStroke.HOME_KEY) {
return false;
if (evt.getKeyCode() == AdfKeyStroke.ESC_KEY){
hidePopup(evt);
return false;
// get the user typed values
valueStr = inputField.getSubmittedValue();
// query suggest list on the server
AdfCustomEvent.queue(suggestPopup,"suggestServerListener",
// Send single parameter
{filterString:valueStr},true);
// put focus back to the input text field
setTimeout("inputField.focus();",400);
//TAB and ARROW DOWN keys navigate to the suggest popup
//we need to handle this in the key down event as otherwise
//the TAB doesn't work
function handleKeyDownOnSuggestField(evt){
if (evt.getKeyCode() == AdfKeyStroke.ARROWDOWN_KEY) {
selectList = evt.getSource().findComponent("suggestListBox");
selectList.focus();
return false;
else{
return false;
//method called when pressing a key or a mouse button
//on the list
function handleListSelection(evt){
if(evt.getKeyCode() == AdfKeyStroke.ENTER_KEY ||
evt.getType() == AdfUIInputEvent.CLICK_EVENT_TYPE){
var list = evt.getSource();
evt.cancel();
var listValue = list.getProperty("value");
hidePopup(evt);
inputField = evt.getSource().findComponent("suggestField");
inputField.setValue(listValue);
//cancel dialog
else if (evt.getKeyCode() == AdfKeyStroke.ESC_KEY){
hidePopup(evt);
//function that re-implements the node functionality for the
//popup to then call it
function hidePopup(evt){
var suggestPopup = evt.getSource().findComponent("suggestPopup");
//re-implement close functionality
suggestPopup.hide = AdfRichPopup.prototype.hide;
suggestPopup.hide();
</script>
]]>
</af:group>
</f:facet>
<af:messages/>
</af:document>
<!-- START Suggest Field -->
<af:inputText id="suggestField"
clientComponent="true"
disabled="#{attrs.disabled}"
label="#{attrs.label}"
required="#{attrs.required}"
columns="#{attrs.displayWidth}"
maximumLength="#{attrs.maximumLength}"
styleClass="#{attrs.styleClass}"
shortDesc="#{attrs.tooltip}">
<af:clientListener method="handleKeyUpOnSuggestField"
type="keyUp"/>
<af:clientListener method="handleKeyDownOnSuggestField"
type="keyDown"/>
</af:inputText>
<!-- END Suggest Field -->
<!-- START Suggest popUp -->
<af:popup id="suggestPopup" contentDelivery="immediate" animate="false" clientComponent="true" >
<af:selectOneListbox id="suggestListBox" contentStyle="width: 250px;"
size="5" valuePassThru="true">
<f:selectItems value="#{component.suggestedList}"/>
<af:clientListener method="handleListSelection" type="keyUp"/>
<af:clientListener method="handleListSelection" type="click"/>
</af:selectOneListbox>
<af:serverListener type="suggestServerListener"
method="#{component.doFilterList}"/>
</af:popup>
<!-- END Suggest popUp -->
<af:xmlContent>
<component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
<display-name>suggestBox</display-name>
<attribute>
<attribute-name>id</attribute-name>
</attribute>
<attribute>
<attribute-name>label</attribute-name>
</attribute>
<component-extension>
<component-tag-namespace>com.dstintl.ic.ui.component</component-tag-namespace>
<component-taglib-uri>/com/dstintl/ic/ui/component</component-taglib-uri>
</component-extension>
</component>
</af:xmlContent>
</af:componentDef>
</jsp:root>
component.tld+
<?xml version="1.0" encoding="windows-1252"?>
<taglib xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1" xmlns="http://java.sun.com/xml/ns/javaee">
<display-name>component</display-name>
<tlib-version>1.0</tlib-version>
<short-name>component</short-name>
<uri>/com/dstintl/ic/ui/component</uri>
<!--
Component Name: SuggestBox Description: AutoSuggest or AutoComplete - shows a list of vales
in a drop down list that is filtered by the user input in the input text field.
-->
<tag>
<name>SuggestBox</name>
<tag-class>com.dstintl.ic.ui.component.suggestbox.SuggestBoxTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>label</name>
<required>false</required>
<deferred-value/>
</attribute>
<attribute>
<name>styleClass</name>
<required>false</required>
<deferred-value/>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<deferred-value/>
</attribute>
<attribute>
<name>required</name>
<required>false</required>
<deferred-value>
<type>boolean</type>
</deferred-value>
</attribute>
<attribute>
<name>displayWidth</name>
<required>false</required>
<deferred-value/>
</attribute>
<attribute>
<name>maximumLength</name>
<required>false</required>
<deferred-value/>
</attribute>
<attribute>
<name>tooltip</name>
<required>false</required>
<deferred-value/>
</attribute>
<attribute>
<name>itemList</name>
<required>false</required>
<deferred-value/>
</attribute>
</tag>
</taglib>Hi Subha,
you can distinct the different components using clientAttribute tag with clientListener
<af:inputText id="suggestField" .....>
<af:clientListener method="handleKeyUpOnSuggestField" type="keyUp"/>
<af:clientListener ......"/>
<af:*clientAttribute* name="eventName" value="myCustomEvent"/>
<af:*clientAttribute* name="popupId" value="......"/>
</af:inputText>
in javascript you get the eventName or PopuId from the attribute
component = event.getSource();
var eventName = component.*getProperty* ("eventName");
// Call the server
AdfCustomEvent.queue(popup, *eventName*, ......);
var popupId = component.*getProperty* ("popuId");
var popup = AdfPage.PAGE.findComponent(popupId);
Hope this help,
Maroun -
How to implement Auto Suggest Widget
Hi there
I have a dynamic asp classic page, where the data come from an access db.
On this page, many documents (category and title ) are displayed for download.
I want to implement Auto Suggest Widget in order to find the document easier and to jump to it (href="#document_xy") directly for download.
I don't have a clue on how to implement the Auto Suggest Widget.
The ASP sample works with XML File.
http://labs.adobe.com/technologies/spry/samples/autosuggest/SuggestSample.html
All replies, hints, tutorials are highly appreciated.
kind regards
joey00x
I am using Win XP, Dreamweaver CS3Hi,
thanks for trying to help.
I am sorry to ask again. I am not at all familiar with xml.
I have tried to modify the ASP script you've suggested, but I get strange XML error, which doesn't make sense to me.
I understand that with the script the server creates an XML File on the fly. First I have to connect to my access database, then I fill the records into a recordset object. And then the server loops through the RS and creates the xml file. Is that correct?
The error message I get, points to a complete different place in the code, to a javascript module, which is working perfectly without below code.
Any suggestions where the bug is?
Thanks for your time
kind regards
joey00x
Here the code that I am using:
<%
Dim objRS
Dim SQLxml
SQLxml = "Select category, subcategory, title from DocumentView"
Set objRS=Server.CreateObject("ADODB.Recordset")
objRS.Open SQLxml , objConn, 0, 1
' Send the headers
Response.ContentType = "text/xml"
Response.AddHeader "Pragma", "public"
Response.AddHeader "Cache-control", "private"
Response.AddHeader "Expires", "-1"
%>
<?xml version="1.0" encoding="utf-8"?>
<root>
<% While (NOT objRS.EOF) %>
<row>
<%
For each field in objRS.Fields
column = field.name
%>
<<%=column%>><![CDATA[<%=(objRS.Fields.Item(column).Value)%>]]></<%=column%>>
<%
Next
%>
</row>
<%
objRS.MoveNext()
Wend
%>
</root>
<%
objRS.Close()
Set objRS = Nothing
%> -
Does anyone know if there is a way to get the iPhone to quit auto-suggesting emails addresses? I just started a new job, and it has lot's of old suggestions based on having used Exchange Active-Sync. I have removed the contacts, but it's still suggesting their address.
restore as a new phone then resync and you are back to normal.
Those cached email addresses can be erased if the iPhone is restored and setup as a new phone, as described here: http://docs.info.apple.com/article.html?artnum=305744
Message was edited by: Dynamite DJs
Maybe you are looking for
-
Two email accounts - iCloud wont let me open the second one!
I have two me.com email accounts. One of them is my main account and I use the mail App to use it. The second account I use only occasionally and I have always used it with a browser. Now whenever I try to open this account in my browser I get a mess
-
Is there a Spell check feature in Flex?
I want to have the spelling check funtion in my Flex application. Does anyone know how to do it? Thanks, lucy
-
Set up soundbar to Toshiba LCD TV
I was recently given an iLive sounbar for my tv. I tried connecting with an audio cable that i use in my car for the aux. It did not work so now i have no clue what to do. help please.
-
Hi all I have a servlet which generates a PDF (via jasper reports) for the user to download. After a couple of hours this servlet starts generating outofmemory errors. The pdfs that are generated are relatively small , average 3 pages. The server is
-
Does it have matte or glossy screen?
For the E amd L series its specified when they have a matte screen, but what about the new t450? Its not specified, does that mean all lenovos from the T series have matte displays? Or are they glossy? Does the T450 have a matte or a glossy screen?