Cascading Combo Box

I have a page with 2 cascading Single Once Choice (SOC). Price list SOC and Product list SOC. The requirement is that a customer ID will be sent into the page via url parameters which will filter the dropdown value for Price List. Price list SOC will drive what the Product list dropdown values are. The model design is as follows
* Price List VO with a view criteria for customer ID
* Product List VO with a view criteria for PriceList ID
* A MainVO that uses both PriceList VO and Product List VO with 2 VA (Price List ID and Product List ID) and 2 LOVs PriceListVO1 and ProductListVO1
We used the LOVs to create 2 SOCs in the page with partial trigger setting. We create an AM method to receive the value from the URL param and parse it to determine the customer id and set the PriceList view criteria. We are using a taskflow that actually receives the url values and calls the AM method to process it and set the PriceList VO and then pass the flow control to the page with SOCs.
We were able to make the following work
* Taskflow is able to receive the values from url and call the AM method
* AM method executes the logic to determine customer ID and is able to set the Price List VO customer ID and execute Price List VO query. I used VO.getrow count to check the row count and notice that the VO is correctly set
But when the Taskflow passes the control to the pages with cascading SOCs it is not working. The PriceList SOC does not have any values indicating that the VA PriceListVO1 which is based on PriceList VO does not have any rows indicating that the criteria is not set.
I dont know what I am doing wrong. I tried to programmatically access the VA - PriceListVO1 in the same AM method and set the Viewcriteria to CustomerID execute the query but the result is the same. When the taskflow is passing the control to page the PriceList VO criteria are all removed.
Kndly help
I am using Jdeveloper 11.1.1.5.0
Edited by: user4220874 on Nov 19, 2011 6:38 AM

HI,
If you use pageFlowScope use that to pass parameter instead UPL passing.
Hopes following links will helpful to adf cascading lov
http://blogs.oracle.com/shay/entry/got_to_love_cascading_lovs_in
http://andrejusb.blogspot.com/2008/12/cascading-lovs-in-oracle-adf-11g-update.html

Similar Messages

  • Parameter query or cascading combo boxes

    In my Access 2013 web app, I have a form for entering a specific type of  activity.  I am using a related item control to add contacts to each activity.  The main table is Activity, the related Item Control is based on (join table) Assignment.
     So far so good.
    Now on the popup view I need to be able to assign contacts to the activity and I need to filter the choice of contacts based on location and group, so for example, when I open the contact combo box, I see only my volunteers from office 1, or only my staff
    from office 2, etc.  Is this best accomplished by cascading combo boxes? Or should I somehow use a parameter query? I have tried the cascading combo boxes but so far have not been able to get them to work. 
    FYI: In the contacts table, every contact has a location and group. Also, I have one table for location and one for group, so that I can use those in look ups. 
    My join table is: Activity ID (look up to activity table) / Contact (look up to Contact Table) 

    Hi,
    >>
    I need to filter the choice of contacts based on location and group
    Is this best accomplished by cascading combo boxes?
    I have tried the cascading combo boxes but so far have not been able to get them to work.
    <<
    In this case, I will suggest you using the Combo Box control which has the build-in support on cascading feature.
    And what do you mean by “not been able to get them work”? I did a quick test and it worked as expected.
    Regards,
    Jeffrey
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • I have NO scripting experience but am attempting to create "cascading combo box" with two boxes.

    I have copied and edited to the best of my ability several options but keep getting errors, mostly illegal character on line...
    I do not have LifeCycle, merely Adobe Acrobat IX (and a trial version of Acrobat XI PRO) and the extent of my knowledge ends at placing fields, text, etc. . .
    The scenario is as follows:
    On the document, there are two combo boxes
    1- "DeptName"
    2- "Position"
    The goal is to be able to select one of 15 different departments, and based on that selection, choose from between 2 to 15 different positions for that corresponding department.
    Below is what I was hopeful would work, but alas - FAIL!!
    If anyone could assist it would be GREATLY APPRECIATED!
    myDeptNameValues =
    "ADMINISTRATION – RSADMN (8171)",
    "BEVERAGE – RSBEV (8174)",
    "CATERING – RCCAT (8959)",
    "CLUB – RSCLB (8174)",
    "CONCESSIONS – RCCON (8961)",
    "CONCESSIONS – RSCON (8173)",
    "CULINARY – RSKIT (8177)",
    "FACILITIES – RSFAC (6925)",
    "RETAIL – RSRET (8175)",
    "SUITES – RSSTE (8177)",
    "VENDING – RSVND (8173)",
    "WAREHOUSE – RSWHS (8173)"
    this.getField("DeptName").setItems(myDeptNameValues);
    var DeptData =
    ADMINISTRATION – RSADMN (8171):["Teller","Security"],
    BEVERAGE – RSBEV (8174):["Bartender","Barback"],
    CATERING – RCCAT (8959):["Banquet Server",”Banquet Captain"],
    CLUB – RSCLB (8174):["Cashier","Counter","Cook","In Seat Server","Runner","Stand Manager"],
    CONCESSIONS – RCCON (8961):["Counter","Cashier","Cook","Runner","Beer Attendant/SMC","Stand Lead","Supervisor"],
    CONCESSIONS – RSCON (8173):["Counter","Cashier","Cook","Runner","Beer Attendant/SMC","Stand Lead","Supervisor"],
    CULINARY – RSKIT (8177):["Cook 1 – Entry Level","Cook 2 – Advanced Level","Cook 3 – Lead Cook","Kitchen Supervisor","Steward"],
    FACILITIES – RSFAC (6925):["Lead – Blower/Press","Cleaning Services Worker"],
    RETAIL – RSRET (8175):["Warehouse","Supervisor","Warehouse Supervisor","Vendors/Hawkers","Senior Supervisor","Associates"],
    SUITES – RSSTE (8177):["Suite Attendant","Ice Cream Cart Attendant","Runner","ReOrder Clerk","Suite Captain","Pantry Supervisor"],
    VENDING – RSVND (8173):["Vendor","Vendor Filler","Alcohol Compliance Supervisor","Auditor","Level Supervisor","Senior Supervisor"],
    WAREHOUSE – RSWHS (8173):["Runner","Supervisor"]
    function SetFieldValues(cDeptName)
    this.getField("Position").setItems(DeptData[cDeptName]);
    The above code was placed in the document script.  Within the format area of the "DeptName" box, I have the following code placed in the keystroke script.
    if( event.willCommit )
    if(event.value == "")
    this.getField("box2").clearItems();
    else
    SetFieldValues(event.value);
    I have spent the past four days, more than 18 hours in the last two alone trying to nail this down and I can't explain how completely defeated I feel, not to mention frustrated.
    Again, thanks for your help!!

    I suppose I am not meant to figure this out.  I am trying my absolute hardest to accomplish compiling this document without having to resort to asking someone to do it for me as I have noticed in a few other threads, but it just seems to get more frustrating.  I have accomplished the first thing I set out to do and I completely appreciate your assistance with that.  My issue now is that i have other text fields I want to automatically fill based on the selection of the very same DeptName combo box.  I can make the cascading/dependent box work with the initial DeptName box, or all the additional text fields with the DeptName box, but cannot seem to accomplish having them work together.  I have been working daily, reading blogs/forums, watching videos all in an effort to complete this before it's needed on Feb. 2. 
    Is it possible to make 7 text fields and a combo box(B) fill based on the selection of a separate combo box (A), and then have 5 more text fields automatically fill based on the selection from the secondary box (B)?  I can make it all happen individually, meaning only the text fields for one box or the combo box (A to b) but not in conjunction.
    http://1drv.ms/1GDpESS
    This is the file, if it helps to see what I'm hoping to accomplish

  • Cascaded Combo Box handling?

    I've two combo boxes(cascaded) if i click directly on second combo box it should display error message like "Please Select 1st Combo Box"
    Please Help  me Out
    Thank you
    Raghu
    Message was edited by: Michael Appleby

            //MIR Category DropDown
            var mirCategoryCombo= new sap.ui.commons.ComboBox({
                id:"mirCategoryCombo",
                tooltip:"Select a category",
                value:"",
                width:"100%",
                editable:false,
                change:function(){
                    if(this.getSelectedKey()==""||this.getSelectedKey()==null){
                        this.setValueState(sap.ui.core.ValueState.Error);
                        raiseNotification(5, 20014,  ""  , "", "", "", "I");
                    }else{
                        this.setValueState(sap.ui.core.ValueState.None);
                        // get all product group based on category
                        mirController.getMirProductGroupByCategory("form");
                    mirController.mirEmptyProductControls("mirCategoryCombo");
    var mirProductGroupCombo = new sap.ui.commons.ComboBox({
                id:"mirProductGroupCombo",
                width:"100%",
                editable:false,
                liveChange:function(){
                  if(sap.ui.getCore().byId("mirCategoryCombo").getValue()==""){
                      this.setValueState(sap.ui.core.ValueState.Error);
                  }else{
                      this.setValueState(sap.ui.core.ValueState.None);
                change:function(){
                    if(this.getSelectedKey()=="" || this.getSelectedKey()==null){
                        this.setValueState(sap.ui.core.ValueState.Error);
                        raiseNotification(5,20019,"","","","","I");
                    }else{
                        this.setValueState(sap.ui.core.ValueState.None);
                    mirController.mirEmptyProductControls("mirProductGroupCombo");

  • LOV's in form combo box - how to change font size?

    Greetings:
    I've a table generated form (custom vs. tabular), with a combo-box field that fills with a LOV's that has as it's visible data, a rather long concatenated string. Therefore, this field makes the entire form rather wide when the LOV's contains a long string (as returned from the SQL that gathers the data).
    I've tried using the FONT tag in the 2nd tab (Form wizard) for custom layouts; that didn't work.
    Anyone have ideas for decreasing the font size of the LOV's? Else, I'll have to leave-out some of the info concatenated on that string.
    As always, thanks for you continued guidance and support...
    Ed in Tampa

    Hi,
    Changing the font size and other properties like font color, width, height, etc.. of the form elements can be achieved by using Cascading Style Sheet (CSS).
    It cannot be changed using <FONT> tag.
    In Portal, one can add the CSS attribute to the HTML tags in the custom layout of the form. But adding the CSS attribute to FORM elements (Input, select..)is not possible through Form wizards.
    However, this can be achieved by creating a form through the Dynamic Page. In this case you have to define your whole form.
    To know more about CSS you can visit: http://www.mako4css.com
    Thanks,
    Shivank

  • In a tubular form: how do you make one combo box reflect another

    For example:
    if there are two fields, one with combo box with bread, meat, juice and I select juice, I and the contents of another combo box in another field to say Orange, grape, lemon.
    field one field two
    bread orange
    meat grape
    juice lemon
    in field one there is just those 3 but in the table representing two there are many such as types of bread and meat and juice, all three.
    Hope you can understand this example. Thanks for your help.

    Your description is not very clear but looks like you want cascading select lists, where 2nd select list is populated based on value selected in the first select list.
    AJAX is a good solution if you are comfortable with it. Since I'm not very familiar with that, I end up using pl/sql.
    Someone had asked similar question few days back, and i had provided a detailed answer. You can check it out at:
    Re: select menu depends from selection
    Hope this helps.

  • How to pass a combo box parameter on reporting services?

    How to pass a combo box parameter on reporting services?
    For example, a report has a parameter which is a combo box, its items came from a database query.
    Looks like the combo box didn't got populated and greyed out if I didn't pass the parameter.

    Hi LAScorpion,
    In Reporting Services, if we want to pass a combo box parameter (means signal-parameter) from one report (main report) to another report (subreport), we can enable an action with “Go to report” or “Go to URL” option to achieve the requirement. For more details,
    please see:
    Method1: Go to report
    Right-click a report item to open the properties dialog in subreport, click Action in the left pane.
    Enable Go to report action, then select the main report name in the drop-down list.
    Add a parameter as below:
    Select ID (a parameter name from main report) in the drop-down list of Name, and select [ID] (a field name from subreport) in the drop-down list of Value.
    Method2: Go to URL
    Right-click a report item to open the properties dialog in subreport, click Action in the left pane.
    Enable Go to URL action, the URL below is for your reference:
    ="javascript:void(window.open('http://server_name/ReportServer/Pages/ReportViewer.aspx?%2ffolder_name%2fmain_report_name&rs:Command=Render&parameter_name="& Parameters!parameter_name.Value &"'))"
    Besides, if the parameter’s values are based on other parameters, then the combo-box got greyed out when we haven’t select values in preceding parameters. For more details, please see:
    Cascading Parameters
    If there are any misunderstanding, please elaborate the issue for further investigation.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Combo Box for SSRS

    I have a very large list and would like to filter via combo box.  Is it possible to use a combo box for a parameter in SSRS either 2012 or 2008 (currently running 2008)
    Thanks,
    JOe K.

    Hi tjcinnamon,
    According to your description, you want to filter data by using a combo box in a parameter. Right?
    In Reporting Services, it's not supported to have a combo box in a parameter. For your requirement, we can create cascading parameter to achieve it, it can generate corresponding values in drop down list based on the selection in another parameter. For more
    information, please see the link below:
    Add Cascading Parameters to a Report (Report Builder and SSRS)
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • How to populate data in the data table on combo box change event

    hi
    i am deepak .
    i am very new to JSF.
    my problem is i want to populate data in the datatable on the combo box change event.
    for example ---
    combo box has name of the city. when i will select a city
    the details of the city should populate in the datatable. and if i will select another city then the datatable should change accordingly..
    its urgent
    reply as soon as possible
    thanks in advance

    i am using Rational Application Developer to develop my application.
    i am using a combo box and i am assigning cityName from the SDO.
    and i am declaring a variable in the pageCode eg.
    private String cityName;
    public void setCityName(String cityName){
    this.cityName = cityName;
    public String getCityName(){
    return cityName;
    <h:selectOneMenu id="menu1" styleClass="selectOneMenu" value="#{pc_Test1.loginID}" valueChangeListener="#{pc_Test1.handleMenu1ValueChange}">
                        <f:selectItems
                             value="#{selectitems.pc_Test1.usercombo.LOGINID.LOGINID.toArray}" />
                   </h:selectOneMenu>
                   <hx:behavior event="onchange" target="menu1" behaviorAction="get"
                        targetAction="box1"></hx:behavior>
    and also i am declaring a requestParam type variable named city;
    and at the onChangeEvent i am writing the code
    public void handleMenu1ValueChange(ValueChangeEvent valueChangedEvent) {
    FacesContext context = FacesContext.getCurrentInstance();
    Map requestScope = ext.getApplication().createValueBinding("#{requestScope}").getValue(context);
    requestScope.put("login",(String)valueChangedEvent.getNewValue());
    and also i am creating another SDO which is used to populate data in datatable and in this SDO in the where clause i am using that requestParam .
    it is assigning value in the pageCode variable and in the requestParam but it is not populating the dataTable. i don't no why??
    it is possible that i may not clear at this point.
    please send me the way how my problem can be solved.
    thanks in advance

  • How to Bind a Combo Box so that it retrieves and display content corresponding to the Id in a link table and populates itself with the data in the main table?

    I am developing a desktop application in Wpf using MVVM and Entity Frameworks. I have the following tables:
    1. Party (PartyId, Name)
    2. Case (CaseId, CaseNo)
    3. Petitioner (CaseId, PartyId) ............. Link Table
    I am completely new to .Net and to begin with I download Microsoft's sample application and
    following the pattern I have been successful in creating several tabs. The problem started only when I wanted to implement many-to-many relationship. The sample application has not covered the scenario where there can be a any-to-many relationship. However
    with the help of MSDN forum I came to know about a link table and managed to solve entity framework issues pertaining to many-to-many relationship. Here is the screenshot of my application to show you what I have achieved so far.
    And now the problem I want the forum to address is how to bind a combo box so that it retrieves Party.Name for the corresponding PartyId in the Link Table and also I want to populate it with Party.Name so that
    users can choose one from the dropdown list to add or edit the petitioner.

    Hello Barry,
    Thanks a lot for responding to my query. As I am completely new to .Net and following the pattern of Microsoft's Employee Tracker sample it seems difficult to clearly understand the concept and implement it in a scenario which is different than what is in
    the sample available at the link you supplied.
    To get the idea of the thing here is my code behind of a view vBoxPetitioner:
    <UserControl x:Class="CCIS.View.Case.vBoxPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:v="clr-namespace:CCIS.View.Case"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    d:DesignWidth="300"
    d:DesignHeight="200">
    <UserControl.Resources>
    <DataTemplate DataType="{x:Type vm:vmPetitioner}">
    <v:vPetitioner Margin="0,2,0,0" />
    </DataTemplate>
    </UserControl.Resources>
    <Grid>
    <HeaderedContentControl>
    <HeaderedContentControl.Header>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
    <TextBlock Margin="2">
    <Hyperlink Command="{Binding Path=AddPetitionerCommand}">Add Petitioner</Hyperlink>
    | <Hyperlink Command="{Binding Path=DeletePetitionerCommand}">Delete</Hyperlink>
    </TextBlock>
    </StackPanel>
    </HeaderedContentControl.Header>
    <ListBox BorderThickness="0" SelectedItem="{Binding Path=CurrentPetitioner, Mode=TwoWay}" ItemsSource="{Binding Path=tblParties}" />
    </HeaderedContentControl>
    </Grid>
    </UserControl>
    This part is working fine as it loads another view that is vPetioner perfectly in the manner I want it to be.
    Here is the code of vmPetitioner, a ViewModel:
    Imports Microsoft.VisualBasic
    Imports System.Collections.ObjectModel
    Imports System
    Imports CCIS.Model.Party
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' ViewModel of an individual Email
    ''' </summary>
    Public Class vmPetitioner
    Inherits vmParty
    ''' <summary>
    ''' The Email object backing this ViewModel
    ''' </summary>
    Private petitioner As tblParty
    ''' <summary>
    ''' Initializes a new instance of the EmailViewModel class.
    ''' </summary>
    ''' <param name="detail">The underlying Email this ViewModel is to be based on</param>
    Public Sub New(ByVal detail As tblParty)
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Me.petitioner = detail
    End Sub
    ''' <summary>
    ''' Gets the underlying Email this ViewModel is based on
    ''' </summary>
    Public Overrides ReadOnly Property Model() As tblParty
    Get
    Return Me.petitioner
    End Get
    End Property
    ''' <summary>
    ''' Gets or sets the actual email address
    ''' </summary>
    Public Property fldPartyId() As String
    Get
    Return Me.petitioner.fldPartyId
    End Get
    Set(ByVal value As String)
    Me.petitioner.fldPartyId = value
    Me.OnPropertyChanged("fldPartyId")
    End Set
    End Property
    End Class
    End Namespace
    And below is the ViewMode vmParty which vmPetitioner Inherits:
    Imports Microsoft.VisualBasic
    Imports System
    Imports System.Collections.Generic
    Imports CCIS.Model.Case
    Imports CCIS.Model.Party
    Imports CCIS.ViewModel.Helpers
    Namespace CCIS.ViewModel.Case
    ''' <summary>
    ''' Common functionality for ViewModels of an individual ContactDetail
    ''' </summary>
    Public MustInherit Class vmParty
    Inherits ViewModelBase
    ''' <summary>
    ''' Gets the underlying ContactDetail this ViewModel is based on
    ''' </summary>
    Public MustOverride ReadOnly Property Model() As tblParty
    '''' <summary>
    '''' Gets the underlying ContactDetail this ViewModel is based on
    '''' </summary>
    'Public MustOverride ReadOnly Property Model() As tblAdvocate
    ''' <summary>
    ''' Gets or sets the name of this department
    ''' </summary>
    Public Property fldName() As String
    Get
    Return Me.Model.fldName
    End Get
    Set(ByVal value As String)
    Me.Model.fldName = value
    Me.OnPropertyChanged("fldName")
    End Set
    End Property
    ''' <summary>
    ''' Constructs a view model to represent the supplied ContactDetail
    ''' </summary>
    ''' <param name="detail">The detail to build a ViewModel for</param>
    ''' <returns>The constructed ViewModel, null if one can't be built</returns>
    Public Shared Function BuildViewModel(ByVal detail As tblParty) As vmParty
    If detail Is Nothing Then
    Throw New ArgumentNullException("detail")
    End If
    Dim e As tblParty = TryCast(detail, tblParty)
    If e IsNot Nothing Then
    Return New vmPetitioner(e)
    End If
    Return Nothing
    End Function
    End Class
    End Namespace
    And final the code behind of the view vPetitioner:
    <UserControl x:Class="CCIS.View.Case.vPetitioner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:vm="clr-namespace:CCIS.ViewModel.Case"
    mc:Ignorable="d"
    Width="300">
    <UserControl.Resources>
    <ResourceDictionary Source=".\CompactFormStyles.xaml" />
    </UserControl.Resources>
    <Grid>
    <Border Style="{StaticResource DetailBorder}">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" Text="Petitioner:" />
    <ComboBox Grid.Column="1" Width="240" SelectedValuePath="." SelectedItem="{Binding Path=tblParty}" ItemsSource="{Binding Path=PetitionerLookup}" DisplayMemberPath="fldName" />
    </Grid>
    </Border>
    </Grid>
    </UserControl>
    The problem, presumably, seems to be is that the binding path "PetitionerLookup" of the ItemSource of the Combo box in the view vPetitioner exists in a different ViewModel vmCase which serves as an ObservableCollection for MainViewModel. Therefore,
    what I need to Know is how to route the binding path if it exists in a different ViewModel?
    Sir, I look forward to your early reply bringing a workable solution to the problem I face. 
    Warm Regards,
    Arun

  • Not able to populate data in the combo box

    Hi Guys,
    I m new to flex development and I want to populate the data
    coming from the databasein the combobox.I am able to get the length
    .but not able to populate the data.
    Can anyone helpme out?
    The code is below:
    The data displayed in the combox box is displayed as
    [object],[object] etc.I m sure that the data is coming from the
    database and its not populated in the combo box.any help is
    appreciated.
    private function getParkinfo(event:ResultEvent):void
    { Alert.show(event.result.length.toString());
    countries.dataProvider = event.result;
    <mx:ComboBox id="countries" />

    What does the data look like in the result? Is it XML? Post a
    sample of it.

  • Display data in list and combo box

    hi all....
    how to display data from database in list and combo box? i use MYSQL...
    help me please..... tq...

    1 - Write a query to retrieve the data you want from database
    2 - In a servlet, connect to database, Run the query, scroll through the result set and put the data into a list of Java Objects.
    3 - Set a request/session attribute of that list of objects
    4 - Forward to JSP
    5 - In JSP, create a <select> box, and then use a <c:forEach> loop to generate <option> tags from the list.

  • Show text box from one combo box selection

    Total newb here and need help.  I tried searching for a javascript to copy/paste, but without any luck.  I am using Acrobat Pro 9.2.0.  If you could help me out with the javascript or with directions on how to make the following be accomplished, I would be greatly appreciative.
    I am creating a fillable PDF and currently have a combo box that is labeled "Internship Satisfied By" with the options of "TCoB PDP", "MRKTNG 4185", and "Other College".  I would like a hidden text box (where the end user can fill in to explain) to become visible only when the end user selects the "Other College" option, but stay hidden for the other selections.  The hidden text box is labeled "Internship Explained".
    Thanks in advance! Jarrod

    Use this code as the combo box's validation script:
    if (event.value == "Other College") {
    getField("Internship Explained").display = display.visible;
    } else {
    getField("Internship Explained").display = display.hidden;

  • Adding an event listener to combo box

    I am working on a mortgage calculator and I cannot figure out how to add an event listener to a combo box.
    I want to get the mortgage term and interest rate to calucate the mortgage using the combo cox. Here is my program.
    Modify the mortgage program to allow the user to input the amount of a mortgage
    and then select from a menu of mortgage loans: 7 year at 5.35%, 15 year at 5.50%, and
    30 year at 5.75%. Use an array for the different loans. Display the mortgage payment
    amount. Then, list the loan balance and interest paid for each payment over the term
    of the loan. Allow the user to loop back and enter a new amount and make a new
    selection, with resulting new values. Allow user to exit if running as an application
    (can't do that for an applet though).
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.text.NumberFormat;
    import java.util.Locale;
    //creates class MortgageCalculator
    public class MortgageCalculator extends JFrame implements ActionListener {
    //creates title for calculator
         JPanel row = new JPanel();
         JLabel mortgageCalculator = new JLabel("MORTGAGE CALCULATOR", JLabel.CENTER);
    //creates labels and text fields for amount entered          
         JPanel firstRow = new JPanel(new GridLayout(3,1,1,1));
         JLabel mortgageLabel = new JLabel("Mortgage Payment $", JLabel.LEFT);
         JTextField mortgageAmount = new JTextField(10);
         JPanel secondRow = new JPanel();
         JLabel termLabel = new JLabel("Mortgage Term/Interest Rate", JLabel.LEFT);
         String[] term = {"7", "15", "30"};
         JComboBox mortgageTerm = new JComboBox(term);
         JPanel thirdRow = new JPanel();
         JLabel interestLabel = new JLabel("Interest Rate (%)", JLabel.LEFT);
         String[] interest = {"5.35", "5.50", "5.75"};
         JComboBox interestRate = new JComboBox(interest);
         JPanel fourthRow = new JPanel(new GridLayout(3, 2, 10, 10));
         JLabel paymentLabel = new JLabel("Monthly Payment $", JLabel.LEFT);
         JTextField monthlyPayment = new JTextField(10);
    //create buttons to calculate payment and clear fields
         JPanel fifthRow = new JPanel(new GridLayout(3, 2, 1, 1));
         JButton calculateButton = new JButton("CALCULATE PAYMENT");
         JButton clearButton = new JButton("CLEAR");
         JButton exitButton = new JButton("EXIT");
    //Display area
         JPanel sixthRow = new JPanel(new GridLayout(2, 2, 10, 10));
         JLabel displayArea = new JLabel(" ", JLabel.LEFT);
         JTextArea textarea = new JTextArea(" ", 8, 50);
    public MortgageCalculator() {
         super("Mortgage Calculator");                     //title of frame
         setSize(550, 350);                                             //size of frame
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         Container pane = getContentPane();
         GridLayout grid = new GridLayout(7, 3, 10, 10);
         pane.setLayout(grid);
         pane.add(row);
         pane.add(mortgageCalculator);
         pane.add(firstRow);
         pane.add(mortgageLabel);
         pane.add(mortgageAmount);
         pane.add(secondRow);
         pane.add(termLabel);
         pane.add(mortgageTerm);
         pane.add(thirdRow);
         pane.add(interestLabel);
         pane.add(interestRate);
         pane.add(fourthRow);
         pane.add(paymentLabel);
         pane.add(monthlyPayment);
         monthlyPayment.setEnabled(false);
         pane.add(fifthRow);
         pane.add(calculateButton);
         pane.add(clearButton);
         pane.add(exitButton);
         pane.add(sixthRow);
         pane.add(textarea); //adds texaarea to frame
         pane.add(displayArea);
         setContentPane(pane);
         setVisible(true);
         //Adds Listener to buttons
         calculateButton.addActionListener(this);
         clearButton.addActionListener(this);
         exitButton.addActionListener(this);
         mortgageTerm.addActionListener(this);
         interestRate.addActionListener(this);
    public void actionPerformed(ActionEvent event) { 
         Object command = event.getSource();
         JComboBox mortgageTerm = (JComboBox)event.getSource();
         String termYear = (String)mortgageTerm.getSelectedItem();
    if (command == calculateButton) //calculates mortgage payment
         int year = Integer.parseInt(mortgageTerm.getText());
         double rate = new Double(interestRate.getText()).doubleValue();
         double mortgage = new Double(mortgageAmount.getText()).doubleValue();
         double interest = rate /100.0 / 12.0;
         double monthly = mortgage *(interest/(1-Math.pow(interest+1,-12.0 * year)));
                   NumberFormat myCurrencyFormatter;
                   myCurrencyFormatter = NumberFormat.getCurrencyInstance(Locale.US);
                   monthlyPayment.setText(myCurrencyFormatter.format(monthly));
         if(command == clearButton) //clears all text fields
                   mortgageAmount.setText(null);
                   //mortgageTerm.setText(null);
                   //interestRate.setText(null);
                   monthlyPayment.setText(null);
              if(command == exitButton) //sets exit button
                        System.exit(0);
         public static void main(String[] arguments) {
              MortgageCalculator mor = new MortgageCalculator();

    The OP already did this to both JComboBoxes.
    mochatay, here is a new actionPerformed method for you to use.
    I've improved a few things here and there...
    1) You can't just cast the ActionEvent's source into a JComboBox!
    What if it was a JButton that fired the event? Then you would get ClassCastExceptions (I'm sure you did)
    So check for all options, what the source of the ActionEvent actually was...
    2) You can't assume the user will always type in valid data.
    So enclose the Integer and Double parse methods in try-catch brakcets.
    Then you can do something when you know that the user has entered invalid input
    (like tell him/her what a clumsy idiot they are !)
    3) As soon as user presses an item in any JComboBox, just re-calculate.
    I did this here by programmatically clicking the 'Calculate' button.
    Alternatively, you could have a 'calculate' method, which does everything inside the
    if(command==calculateButton) if-block.
    This will be called when:
    a)calculateButton is pressed
    b)when either of the JComboBoxes are pressed.
    public void actionPerformed (ActionEvent event)
            Object command = event.getSource ();
            if (command == calculateButton) //calculates mortgage payment
                int year = 0;
                double rate = 0;
                double mortgage = 0;
                double interest = 0;
                /* If user has input invalid data, tell him so
                and return (Exit from this method back to where we were before */
                try
                    year = Integer.parseInt (mortgageTerm.getSelectedItem ().toString ());
                    rate = new Double (interestRate.getSelectedItem ().toString ()).doubleValue ();
                    mortgage = new Double (mortgageAmount.getText ()).doubleValue ();
                    interest = rate / 100.0 / 12.0;
                catch (NumberFormatException nfe)
                    /* Display a message Dialogue box with a message */
                    JOptionPane.showMessageDialog (this, "Error! Invalid input!");
                    return;
                double monthly = mortgage * (interest / (1 - Math.pow (interest + 1, -12.0 * year)));
                NumberFormat myCurrencyFormatter;
                myCurrencyFormatter = NumberFormat.getCurrencyInstance (Locale.US);
                monthlyPayment.setText (myCurrencyFormatter.format (monthly));
            else if (command == clearButton) //clears all text fields
                /* Better than setting it to null (I think) */
                mortgageAmount.setText ("");
                //mortgageTerm.setText(null);
                //interestRate.setText(null);
                monthlyPayment.setText ("");
            else if (command == exitButton) //sets exit button
                System.exit (0);
            else if (command == mortgageTerm)
                /* Programmatically 'clicks' the button,
                As is user had clicked it */
                calculateButton.doClick ();
            else if (command == interestRate)
                calculateButton.doClick ();
            //JComboBox mortgageTerm = (JComboBox) event.getSource ();
            //String termYear = (String) mortgageTerm.getSelectedItem ();
        }Hope this solves your problems.
    I also hope you'll be able to learn from what I've indicated, so you can use similar things yourself
    in future!
    Regards,
    lutha

  • How to get the values from xml file to java combo box

    Hi frens,
    I am new to java and xml programming,
    Now, i want to have a code of getting the tag values from the xml file
    into the swing combo box of java front end.
    How can we do that?
    any help of code or tutorial or an ebook is a great help for me.
    Thank you,
    Karthik.
    Edited by: Karthik84 on Aug 27, 2008 1:49 AM
    Edited by: Karthik84 on Aug 27, 2008 11:29 PM

    look at this link
    http://www.stylusstudio.com/docs/v2006/d_help30.html
    I read sometime back that castor has a tool to do
    conversion. You might have a look into casto as well.

Maybe you are looking for

  • Item deletion when a subsequent document exists

    Hello everybody, When I create a quotation Y in reference to another quotation X, it is impossible to delete à line in the quotation X. The system displays an error message "Item 000020 cannot be deleted because of subsequent document Y". Is there a

  • Import and Save Quark Express Files - Acrobat Pro XI

    A friend of mine has some newsletters that she produced in Quark Express in the late 1990's and wishes to share them with me. She no longer has Quark Express and neither do I. I'm wondering if it is still possible to import these files into Acrobat P

  • Customize My trips and Expenses

    Hi all,    In the page my trips and expenses , there are four tabs of which i would like to use only my expense reports/otherwise i want it displayed as a differnt iview. Pls help me in this regard. Regards, Anil.

  • Chats in Tiger, between Comcast and Time Warner don't work

    My iChat worked when I was in 10.3.9 and iChat 2, with someone operating 10.4.10 and iChat 3. Since I upgraded to 10.4.10 and iChat 3, our chats get the "bandwidth" errors, even though I've set those in QT. My isp is Comcast. Their isp is TimeWarner.

  • Problems when generating forms from Module Generator

    I am trying to generate a form from a module in Module Generator. The form is generating OK, but when design editor tries to show the form in the browser it doesn't work. This is the URL it is trying to use: http://127.0.0.1:8888/forms90/f90servlet/?