Help with Flex and DropDownList

Hello everybody, i need another help
i'm triyng to do the next in flex: using DropDownListi and Mysql DB, I want select to a product from a DropDownList after i select a corresponding brand for example:
* Coca Cola
  -- Coca Cola Light
  -- Coca Cola Zero
  -- Coca Cola Regular
* Pepsi
  -- Pepsi Light
  -- Pepsi regular
those are products that i have on my DB, i get see on my first DropDownList all brand's but i can select any product, because i don't know how made that relation between DropDownList's, here is my code, can any body help me? PLEASE ????
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                  xmlns:s="library://ns.adobe.com/flex/spark"
                  xmlns:mx="library://ns.adobe.com/flex/mx"
                  minWidth="500" minHeight="600" backgroundColor="#F4BE55"
                  xmlns:employeeservice="services.employeeservice.*">
     <fx:Style source="Prueba8.css"/>
     <fx:Script>
          <![CDATA[
               import com.adobe.serializers.utility.TypeUtility;
               import mx.controls.Alert;
               import mx.controls.Text;
               import mx.events.FlexEvent;
               import mx.rpc.events.ResultEvent;
               import spark.events.IndexChangeEvent;
               protected function marDr_creationCompleteHandler(event:FlexEvent):void
                    getMarcaResult.token = employeeService.getMarca();
               protected function proDp_creationCompleteHandler(event:FlexEvent):void
                    getProductoByMarcaResult.token = employeeService.getProductoByMarca('Pep');
          ]]>
     </fx:Script>
     <fx:Declarations>
          <s:CallResponder id="getMarcaResult"/>
          <employeeservice:EmployeeService id="employeeService"
          fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
                 showBusyCursor="true"/>
          <s:CallResponder id="getProductoByMarcaResult"/>
     </fx:Declarations>
     <s:Label x="137" y="10" text="Prueba 1  -  Ejemplos" fontWeight="bold" fontSize="20"/>
     <s:DropDownList x="99" y="97" prompt="Selecciona Marca ..."
                         width="169" id="marDr"
                         creationComplete="marDr_creationCompleteHandler(event)"
                         labelField="marca"
                         cornerRadius="7"
                         borderColor="#BC660A"
                         chromeColor="#C76F20"
                         focusColor="#AA7A06"
                         selectionColor="#DFA055"
                         rollOverColor="#FFAB3E">
          <s:AsyncListView list="{getMarcaResult.lastResult}"/>
     </s:DropDownList>
     <s:DropDownList x="65" y="247" prompt="Seleccione el producto ..."
                         id="proDp" width="205"
                         creationComplete="proDp_creationCompleteHandler(event)"
                         labelField="ds_producto">
          <s:AsyncListView list="{TypeUtility.convertToCollection(getProductoByMarcaResult.lastResult)}"/>
     </s:DropDownList>
</s:Application>
and this is my service
<?php
class EmployeeService {
  var $username = "test";
  var $password = "12345";
  var $server = "192.168.0.194";
  var $port = "3306";
  var $databasename = "proyect";
  var $connection;
  public function __construct() {
    $this->connection = mysqli_connect(
                       $this->server, 
                       $this->username, 
                       $this->password,
                       $this->databasename,
                       $this->port
    $this->throwExceptionOnError($this->connection);
  public function getMarca() {
     $stmt = mysqli_prepare($this->connection,
          "select co_marca,
                  no_marca
           from cmm_d_marca");    
      $this->throwExceptionOnError();
      mysqli_stmt_execute($stmt);
      $this->throwExceptionOnError();
      $rows = array();
      mysqli_stmt_bind_result($stmt, $row->cod, $row->marca);
      while (mysqli_stmt_fetch($stmt)) {
          $rows[] = $row;
          $row = new stdClass();
          mysqli_stmt_bind_result($stmt,  $row->cod, $row->marca);
      mysqli_stmt_free_result($stmt);
      mysqli_close($this->connection);
      return $rows;
  public function getProductoByMarca($searchStr) {
     $stmt = mysqli_prepare($this->connection,
          "select id_producto,
                  co_marca,
                  ds_producto
          from cmm_f_producto
          where co_marca like ?");
      $this->throwExceptionOnError();
      mysqli_stmt_bind_param($stmt, 's', $searchStr);
      $this->throwExceptionOnError();
      mysqli_stmt_execute($stmt);
      $this->throwExceptionOnError();
      $rows = array();
      mysqli_stmt_bind_result($stmt, $row->id_producto, $row->co_marca,
                              $row->ds_producto);
      while (mysqli_stmt_fetch($stmt)) {
          $rows[] = $row;
          $row = new stdClass();
          mysqli_stmt_bind_result($stmt, $row->id_producto, $row->co_marca,
                              $row->ds_producto);
      mysqli_stmt_free_result($stmt);
      mysqli_close($this->connection);
      return $rows;
?>
Please somebody help me i need a solution a soon as possible please . thank's.
Juedvaga

Hello evrybody, look I upload my project and i need help.
all that i want is made dependents-->   combobox or dorpdownlist.
there are 2 links into megaupload:
Project : http://www.megaupload.com/?d=X6V25N8O
DataBase : http://www.megaupload.com/?d=T6TLI3OL
Please i need help this i have to finish this point to start with another point.

Similar Messages

  • Help with Flex based popup windows and data population.

    Hello, I need a bit of help with Flex popups. I have a flex
    application that uses a popup window when you click on a button and
    displays information about the image above the button the user
    clicked. I have about 4 images and I need to be able to display
    information about each of them through the popup window when users
    click on the buttons below the image.
    At this time, I am trying to do this from somewhat of a
    "static" point of view because I do not believe my hosting company
    supports Flex Data services. You will find my code below.
    First File.
    <?xml version="1.0" encoding="utf-8"?>
    <!--Application Initialization -->
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" width="850" height="750"
    cornerRadius="10" borderColor="#000000"
    backgroundGradientColors="[#1b3434, #000000]">
    <!-- Popup-->
    <mx:Script>
    <![CDATA[
    import mx.managers.PopUpManager;
    [Bindable]
    private var win:IMSAI;
    private function init():void{}
    private function createPopup():void{
    win=IMSAI(PopUpManager.createPopUp(this,IMSAI,true));
    win.title = 'IMSAI.Net';
    win.x = -500;
    win.y = 0;
    customMove.end();
    customMove.play();
    ]]>
    </mx:Script>
    <mx:Style>
    TitleWindow {
    borderStyle:solid;
    borderThickness:2;
    </mx:Style>
    <mx:Parallel id="customMove" target="{win}">
    <mx:Move duration="2000" xTo="{(stage.width - win.width)
    / 2}" yTo="{(stage.height - win.height) / 2}" />
    <mx:WipeDown duration="2000" />
    </mx:Parallel>
    This is the code to trigger the popup when a user clicks on
    the button. The code below is the code for the popup.
    <?xml version="1.0" encoding="utf-8"?>
    <mx:TitleWindow xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="vertical" creationComplete="init()"
    close="PopUpManager.removePopUp(this)"
    showCloseButton="true" alpha=".8"
    headerColors="[#000000,#1F3F62]" color="#FFFFFF"
    minHeight="200" minWidth="300"
    backgroundColor="#000000" title="IMSAI.net" width="520"
    height="394" verticalAlign="middle" horizontalAlign="center">
    <mx:Script>
    <![CDATA[
    import mx.managers.PopUpManager;
    private function init():void{}
    ]]>
    </mx:Script>
    <mx:Canvas width="470" height="338">
    <mx:Image x="10" y="10" width="140" height="103">
    <mx:source>file:///C|/ColdFusion8/wwwroot/IMSAI/Web-App/Site_Images/IMSAI
    Final Movie.swf</mx:source>
    </mx:Image>
    <mx:Text x="10" y="121" text="Description:" width="75"
    height="25" fontWeight="bold" color="#ff0000"/>
    <mx:Text x="158" y="10" text="Client:" width="52"
    height="28" fontWeight="bold" color="#ff0000"/>
    <mx:Text x="196" y="10" text="IMSAI Microcomputers
    &amp; Fischer-Freitas Company" width="252" height="39"/>
    <mx:Text x="159" y="46" text="Industry:"
    fontWeight="bold" color="#ff0000"/>
    <mx:Text x="216" y="46" text="Computer &amp;
    Microcontroller Manufacturing." width="232" height="35"/>
    <mx:Text x="83" y="121" text="IMSAI.net is the front-end
    web application for IMSAI Computer " width="355"/>
    <mx:Text x="10" y="136" text="manufacturing, customer
    support, and order processing. Driven by a Microsoft database
    back-end, this application includes rich flash forms, site search
    capabilities, and flash content. Currently under phase II of a
    three phase development plan, the e-commerce logic and processing
    capabilities are under development. Once finished, this application
    will be able to process orders provide customers with instant order
    confirmation numbers, shipment dates, and payment processing."
    width="428"/>
    <mx:Text x="10" y="244" text="Technologies:"
    fontWeight="bold" color="#ff0000"/>
    <mx:Image x="100" y="244" width="50" height="50">
    <mx:source>file:///C|/ColdFusion8/wwwroot/Sapphire
    Development/content/cf8icon.jpg</mx:source>
    </mx:Image>
    <mx:Image x="244" y="244" width="50" height="50">
    <mx:source>file:///C|/ColdFusion8/wwwroot/Sapphire
    Development/content/flashlogo.jpg</mx:source>
    </mx:Image>
    <mx:Text x="53" y="290" text="Coldfusion 8 Enterprise"
    height="30"/>
    <mx:Text x="230" y="290" text="Adobe Flash 8"/>
    </mx:Canvas>
    What I want to do is either be able to create a popup file
    for each button and photo, or find a way to pass a name like a
    button ID that corresponds to a XML data structure and then
    provides the appropriate data for the photo. I have tried altering
    the first page of code with the "public" declaration to allow for a
    second popup file for each button and image, but the IDE won't
    allow me to do such because it creates errors stating I can only
    have one public declaration of the kind and function above per
    application. Help resolving this would be greatly appreciated.
    Thank you.

    I have an idea of what I want to do. I am just having
    difficulty articulating how to go about such. I know I want to find
    a way so that if a user clicks on button 1, button 1 will send some
    kind of variable. For example, a user clicks Btn1 under a picture.
    Btn1 sends some kind of variable or binding to a data structure
    which returns the picture's description, price, etc. and calls the
    popup to display that data in a form like manner. Then the user
    click Btn2 which does the same thing. The only purpose of the popup
    is to display the data.
    Do I create a data structure with a related name to say a
    button name so when the btn is clicked, the a variable title btn1
    will prepend itself to the data structure like
    {btn1.imagename}
    {btn1.price}
    {btn1.description}.
    I want each btn to call a different set of data about each
    picture because right now, the code I have is allowing me multiple
    buttons, but is just displays the popup. Is there a way to create a
    separate popup window for each button? Thats seems as though it
    would be easier. Thank you for your help.

  • Help with writing and retrieving data from a table field with type "LCHR"

    Hi Experts,
    I need help with writing and reading data from a database table field which has a type of "LCHR". I have given an example of the original code but don't know what to change it to in order to fix it and still read in the original data that's stored in the LCHR field.
    Basically we have two Function modules, one that saves list data to a database table and one that reads in this data. Both Function modules have an identicle table which has an array of fields from type INT4, CHAR, and type P. The INT4 field is the first one.
    Incidentally this worked in the 4.7 non-unicode system but is now dumping in the new ECC6 Unicode system.
    Thanks in advance,
    C
    SAVING THE LIST DATA TO DB
    DATA: L_WA(800).
    LOOP AT T_TAB into L_WA.
    ZDBTAB-DATALEN = STRLEN( L_WA ).
    MOVE: L_WA to ZDBTAB-RAWDATA.
    ZDBTAB-LINENUM = SY-TABIX.
    INSERT ZDBTAB.
    READING THE DATA FROM DB
    DATA: BEGIN OF T_DATA,
                 SEQNR type ZDBTAB-LINENUM,
                 DATA type ZDBTAB-RAWDATA,
               END OF T_TAB.
    Select the data.
    SELECT linenum rawdata from ZDBTAB into table T_DATA
         WHERE repid = w_repname
         AND rundate = w_rundate
         ORDER BY linenum.
    Populate calling Internal Table.
    LOOP AT T-DATA.
    APPEND T_DATA to T_TAB.
    ENDLOOP.

    Hi Anuj,
    The unicode flag is active.
    When I run our report and then to try and save the list data a dump is happening at the following point
    LOOP AT T_TAB into L_WA.
    As I say, T_TAB consists of different fields and field types whereas L_WA is CHAR 800. The dump mentions UC_OBJECTS_NOT_CONVERTIBLE
    When I try to load a saved list the dump is happening at the following point
    APPEND T_DATA-RAWDATA to T_TAB.
    T_DATA-RAWDATA is type LCHR and T_TAB consists of different fields and field types.
    In both examples the dumps mention UC_OBJECTS_NOT_CONVERTIBLE
    Regards
    C

  • What is prereq for reading above, and for start develop/reading with flex and cf(level?) ?

    http://www.adobe.com/devnet/flex/pdfs/getting_started_with_Flex3.pdf
    what is prereq for reading above, and for start develop/reading with flex and cf(level?) ?

    The Flex Quickstarts will be a place for starters, if you want to know 
    about Flex/CF integration the first to know would be some basics of CF.
    Sincerely,
    Michael
    Sent from my iPhone

  • Anyone know how to gernerate CRUD applications with flex and coldfusion?

    Anyone know how to gernerate CRUD applications with flex and
    coldfusion? I am working with a remote coldsfusion installation
    with MS SQL and I don't have RDS.

    You might investigate "squidhead". It is CF based. I'm not
    sure if it has any Flex related features.
    http://squidhead.riaforge.org/

  • Working with Flex and Central

    Hi,
    I am new in Flex and Central and interested in working with
    Flex and Central and I'm currently trying to run one of the samples
    from the "Central Flex SDK", the HelloFlexCentral. I have an error
    when trying to run the application. The "import.mx.central" line is
    not recognized.
    I don't understand how to connect Flex and Central. My
    questions are :
    - Do I have to install a JRun environment to run/develop this
    kind of application or can I develop the application without a JRun
    Environment ?
    - Can I deploy my application on a IIS server for example
    (and then all the users will install it in central by accessing
    this webserver) ?
    - Where do I have to put all the "CentralIntrinsics" stuff to
    avoid this error I encounter ?
    Thank you for your answers.
    Olivier

    If you want three distinct notes, I suggest you cut it into three samples, then using flex pitch drag the notes to the pitches you desire. Keep in mind that the farther away a note is from it's actual sampled pitch, the worse it's quality will be.

  • Help with count and sum query

    Hi I am using oracle 10g. Trying to aggregate duplicate count records. I have so far:
    SELECT 'ST' LEDGER,
    CASE
    WHEN c.Category = 'E' THEN 'Headcount Exempt'
    ELSE 'Headcount Non-Exempt'
    END
    ACCOUNTS,
    CASE WHEN a.COMPANY = 'ZEE' THEN 'OH' ELSE 'NA' END MARKET,
    'MARCH_12' AS PERIOD,
    COUNT (a.empl_id) head_count
    FROM essbase.employee_pubinfo a
    LEFT OUTER JOIN MMS_DIST_COPY b
    ON a.cost_ctr = TRIM (b.bu)
    INNER JOIN MMS_GL_PAY_GROUPS c
    ON a.pay_group = c.group_code
    WHERE a.employee_status IN ('A', 'L', 'P', 'S')
    AND FISCAL_YEAR = '2012'
    AND FISCAL_MONTH = 'MARCH'
    GROUP BY a.company,
    b.district,
    a.cost_ctr,
    c.category,
    a.fiscal_month,
    a.fiscal_year;
    which gives me same rows with different head_counts. I am trying to combine the same rows as a total (one record). Do I use a subquery?

    Hi,
    Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved.
    Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
    user610131 wrote:
    ... which gives me same rows with different head_counts.If they have different head_counts, then the rows are not the same.
    I am trying to combine the same rows as a total (one record). Do I use a subquery?Maybe. It's more likely that you need a different GROUP BY clause, since the GROUP BY clause determines how many rows of output there will be. I'll be able to say more after you post the sample data, results, and explanation.
    You may want both a sub-query and a different GROUP BY clause. For example:
    WITH    got_group_by_columns     AS
         SELECT  a.empl_id
         ,     CASE
                        WHEN  c.category = 'E'
                  THEN  'Headcount Exempt'
                        ELSE  'Headcount Non-Exempt'
                END          AS accounts
         ,       CASE
                        WHEN a.company = 'ZEE'
                        THEN 'OH'
                        ELSE 'NA'
                END          AS market
         FROM              essbase.employee_pubinfo a
         LEFT OUTER JOIN  mms_dist_copy             b  ON   a.cost_ctr     = TRIM (b.bu)
         INNER JOIN       mms_gl_pay_groups        c  ON   a.pay_group      = c.group_code
         WHERE     a.employee_status     IN ('A', 'L', 'P', 'S')
         AND        fiscal_year           = '2012'
         AND        fiscal_month          = 'MARCH'
    SELECT    'ST'               AS ledger
    ,       accounts
    ,       market
    ,       'MARCH_12'          AS period
    ,       COUNT (empl_id)       AS head_count
    FROM       got_group_by_columns
    GROUP BY  accounts
    ,            market
    ;But that's just a wild guess.
    You said you wanted "Help with count and sum". I see the COUNT, but what do you want with SUM? No doubt this will be clearer after you post the sample data and results.
    Edited by: Frank Kulash on Apr 4, 2012 5:31 PM

  • MOVED: [Athlon64] Need Help with X64 and Promise 20378

    This topic has been moved to Operating Systems.
    [Athlon64] Need Help with X64 and Promise 20378

    I'm moving this the the Administration Forum.  It seems more apporpiate there.

  • Help with PHP and FLEX integration

    Hello i was wondering how to use php sessions with flex, i
    need a way to have secure connections between flex and php.
    I am using a script i made to pass mysql commands/results
    between them, and i am currently passing the php session id with
    the transactions. But if anyone gets a hold of a valid php session
    id then they will be able to use it. Possibly using flex server to
    have secure transactions?
    If i host both the flex created swf and the php file on a
    https server will it "talk" securely?
    thanks lots

    You may get a quicker answer from Cartweaver's newsgroups.
    http://www.cartweaver.com/support/
    They're usually quite prompt and helpful.

  • Newbie needs help with Flex app

    Hi there. I am very new to Flex and also fairly new to
    programming although I do have a little experience.
    I am trying to create an app which stores code snippets or
    common text I tend to use every day in my documents and emails.
    So basically I need help on a design level. I can refer to
    the developer's manual for exact instructions for commands, but I
    need to know what to code first.
    The app will consist of:
    -a tree directory structure where I can create groups.
    -There will be a basic text editor where I input all my data,
    basic text formatting options (font, bullets etc) would be a bonus.
    -A search function
    -Finally it will ideally allow multiple client apps write to
    a central database file over a network
    Can anyone suggest how I should approach such a project?
    Or are there any tutorials / source files which demonstrate
    each bullet point?
    thanks.

    Hey jono,
    I'm new too. But I think I might know the right components.
    If you google any of these + flex 3 you should get some
    decent documentation
    tree - advanced dataGrid component
    basic text editor - rich text editor component
    search function - well, you're gonna need to read up on
    arrays, and arraycollection. Once you get that stuff working, you
    can write up a function to search for a string in an array.
    network functionality - HTTPService, you can dump the
    datagrid into a database, and have it load the database when you
    open up the application.
    Give these things a shot, tutorials / sources will come with
    the google searches.

  • Help with Flex Ant build.xml error

    So I've started on a new project and I'm new to Flex. A lot of learning curve here. Anyway, I'm trying to deploy a project that uses flex and is built with Ant. We've moving up from a version of Flex 2 to Flex 3. The build file works fine in the Flex 2 app but for some reason does not seem to be working with Flex 3. I'm hoping someone can give me some insight on what might be wrong or where to start.
    The error is Command not found: compc
    The part of the build file it has a problem with is:
    <compc include-classes="${classes}"
         ouput="${flex.dist.dir}/${flex.app.name}.swc"
         keep-generated-actionscript="false"
         headless-server="${headless.server}"
         incremental="true">
    <load_config filename="${FLEX_HOME}/frameworks/flex-config.xml" />
    <source-path path-element="${FLEX_HOME}/frameworks" />
    <source-path path-element="${flex.app.root}" />
    <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true">
         <include name="libs" />
         <include name="../bundles/{local}" />
    </compiler.library-path>
    <compiler.library-path dir="${flex.app.root}" appent="true">
         <include name="libs" />
    </compiler.library-path>
    </compc>
    Any help at all would be greatly appreciated, thank you.

    Sorry, I meant to address that. Yes, since we've moved up to the Flex 3 sdk, we are pointing at a new directory. The old directory was flex_sdk and the new directory is flex_sdk_340.
    FLEX_HOME is being set in the build.properties file for local building and then overidden in the build.xml file with this code:
    <target name="build">
         <available property="FLEX_HOME" value="/apps/flex_sdk_340" file="/apps/flex_sdk_340" />
         <echo>FLEX_HOME = ${FLEX_HOME}</echo>
         <antcall target="compile" />
    </target>
    I did notice a warning about not using the available property, so I removed it and just changed what FLEX_HOME was set to in the build.properties file to the server directory. Would mess up local building but regardless it didn't matter because it had no effect on the error being generated. I alos looked a little into the file property of the available tag trying to figure out if that was somehow an issue but I wasn't able to come to any conclusion.
    Before the program errors out, it does displayt he echo statement and the value of FLEX_HOME appears to be correct in that it does show /apps/flex_sdk_340.
    Thank you so much for your continued help. This is truly frustrating because nothing but a directory name has really changed and yet it stopped working. I can't find any information anywhere on what could be wrong and this is really my last resort.

  • Help with Mathscipt and for loop

    I have a code in Mathscript/matlab and I need to output the array out. One option is my first code,the other option is using a for loop, but I am only getting the last ouput out. I need to get the whole output out.
    Any help.
    Thanks
    Solved!
    Go to Solution.
    Attachments:
    Help with Mathscript_for loop.vi ‏115 KB
    Help with Mathscript_for loop2.vi ‏84 KB

    Here's how it should look like.
    Message Edited by altenbach on 10-30-2008 05:12 PM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    MathscriptInFOR.png ‏15 KB

  • Need help with JTextArea and Scrolling

    import java.awt.*;
    import java.awt.event.*;
    import java.text.DecimalFormat;
    import javax.swing.*;
    public class MORT_RETRY extends JFrame implements ActionListener
    private JPanel keypad;
    private JPanel buttons;
    private JTextField lcdLoanAmt;
    private JTextField lcdInterestRate;
    private JTextField lcdTerm;
    private JTextField lcdMonthlyPmt;
    private JTextArea displayArea;
    private JButton CalculateBtn;
    private JButton ClrBtn;
    private JButton CloseBtn;
    private JButton Amortize;
    private JScrollPane scroll;
    private DecimalFormat calcPattern = new DecimalFormat("$###,###.00");
    private String[] rateTerm = {"", "7years @ 5.35%", "15years @ 5.5%", "30years @ 5.75%"};
    private JComboBox rateTermList;
    double interest[] = {5.35, 5.5, 5.75};
    int term[] = {7, 15, 30};
    double balance, interestAmt, monthlyInterest, monthlyPayment, monPmtInt, monPmtPrin;
    int termInMonths, month, termLoop, monthLoop;
    public MORT_RETRY()
    Container pane = getContentPane();
    lcdLoanAmt = new JTextField();
    lcdMonthlyPmt = new JTextField();
    displayArea = new JTextArea();//DEFINE COMBOBOX AND SCROLL
    rateTermList = new JComboBox(rateTerm);
    scroll = new JScrollPane(displayArea);
    scroll.setSize(600,170);
    scroll.setLocation(150,270);//DEFINE BUTTONS
    CalculateBtn = new JButton("Calculate");
    ClrBtn = new JButton("Clear Fields");
    CloseBtn = new JButton("Close");
    Amortize = new JButton("Amortize");//DEFINE PANEL(S)
    keypad = new JPanel();
    buttons = new JPanel();//DEFINE KEYPAD PANEL LAYOUT
    keypad.setLayout(new GridLayout( 4, 2, 5, 5));//SET CONTROLS ON KEYPAD PANEL
    keypad.add(new JLabel("Loan Amount$ : "));
    keypad.add(lcdLoanAmt);
    keypad.add(new JLabel("Term of loan and Interest Rate: "));
    keypad.add(rateTermList);
    keypad.add(new JLabel("Monthly Payment : "));
    keypad.add(lcdMonthlyPmt);
    lcdMonthlyPmt.setEditable(false);
    keypad.add(new JLabel("Amortize Table:"));
    keypad.add(displayArea);
    displayArea.setEditable(false);//DEFINE BUTTONS PANEL LAYOUT
    buttons.setLayout(new GridLayout( 1, 3, 5, 5));//SET CONTROLS ON BUTTONS PANEL
    buttons.add(CalculateBtn);
    buttons.add(Amortize);
    buttons.add(ClrBtn);
    buttons.add(CloseBtn);//ADD ACTION LISTENER
    CalculateBtn.addActionListener(this);
    ClrBtn.addActionListener(this);
    CloseBtn.addActionListener(this);
    Amortize.addActionListener(this);
    rateTermList.addActionListener(this);//ADD PANELS
    pane.add(keypad, BorderLayout.NORTH);
    pane.add(buttons, BorderLayout.SOUTH);
    pane.add(scroll, BorderLayout.CENTER);
    addWindowListener( new WindowAdapter()
    public void windowClosing(WindowEvent e)
    System.exit(0);
    public void actionPerformed(ActionEvent e)
    String arg = lcdLoanAmt.getText();
    int combined = Integer.parseInt(arg);
    if (e.getSource() == CalculateBtn)
    try
    JOptionPane.showMessageDialog(null, "Got try here", "Error", JOptionPane.ERROR_MESSAGE);
    catch(NumberFormatException ev)
    JOptionPane.showMessageDialog(null, "Got here", "Error", JOptionPane.ERROR_MESSAGE);
    if ((e.getSource() == CalculateBtn) && (arg != null))
    try{
    if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 1))
    monthlyInterest = interest[0] / (12 * 100);
    termInMonths = term[0] * 12;
    monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest,  -termInMonths))));
    lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
    if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 2))
    monthlyInterest = interest[1] / (12 * 100);
    termInMonths = term[1] * 12;
    monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest,  -termInMonths))));
    lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
    if ((e.getSource() == CalculateBtn) && (rateTermList.getSelectedIndex() == 3))
    monthlyInterest = interest[2] / (12 * 100);
    termInMonths = term[2] * 12;
    monthlyPayment = combined * (monthlyInterest / (1 - (Math.pow (1 + monthlyInterest,  -termInMonths))));
    lcdMonthlyPmt.setText(calcPattern.format(monthlyPayment));
    catch(NumberFormatException ev)
    JOptionPane.showMessageDialog(null, "Invalid Entry!\nPlease Try Again", "Error", JOptionPane.ERROR_MESSAGE);
    }                    //IF STATEMENTS FOR AMORTIZATION
    if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 1))
    loopy(7, 5.35);
    if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 2))
    loopy(15, 5.5);
    if ((e.getSource() == Amortize) && (rateTermList.getSelectedIndex() == 3))
    loopy(30, 5.75);
    if (e.getSource() == ClrBtn)
    rateTermList.setSelectedIndex(0);
    lcdLoanAmt.setText(null);
    lcdMonthlyPmt.setText(null);
    displayArea.setText(null);
    if (e.getSource() == CloseBtn)
    System.exit(0);
    private void loopy(int lTerm,double lInterest)
    double total, monthly, monthlyrate, monthint, monthprin, balance, lastint, paid;
    int amount, months, termloop, monthloop;
    String lcd2 = lcdLoanAmt.getText();
    amount = Integer.parseInt(lcd2);
    termloop = 1;
    paid = 0.00;
    monthlyrate = lInterest / (12 * 100);
    months = lTerm * 12;
    monthly = amount *(monthlyrate/(1-Math.pow(1+monthlyrate,-months)));
    total = months * monthly;
    balance = amount;
    while (termloop <= lTerm)
    displayArea.setCaretPosition(0);
    displayArea.append("\n");
    displayArea.append("Year " + termloop + " of " + lTerm + ": payments\n");
    displayArea.append("\n");
    displayArea.append("Month\tMonthly\tPrinciple\tInterest\tBalance\n");
    monthloop = 1;
    while (monthloop <= 12)
    monthint = balance * monthlyrate;
    monthprin = monthly - monthint;
    balance -= monthprin;
    paid += monthly;
    displayArea.setCaretPosition(0);
    displayArea.append(monthloop + "\t" + calcPattern.format(monthly) + "\t" + calcPattern.format(monthprin) + "\t");
    displayArea.append(calcPattern.format(monthint) + "\t" + calcPattern.format(balance) + "\n");
    monthloop ++;
    termloop ++;
    public static void main(String args[])
    MORT_RETRY f = new MORT_RETRY();
    f.setTitle("MORTGAGE PAYMENT CALCULATOR");
    f.setBounds(600, 600, 500, 500);
    f.setLocationRelativeTo(null);
    f.setVisible(true);
    }need help with displaying the textarea correctly and the scroll bar please.
    Message was edited by:
    new2this2020

    What's the problem you're having ???
    PS.

  • Help with encapsulation and a specific case of design

    Hello all. I have been playing with Java (my first real language and first OOP language) for a couple months now. Right now I am trying to write my first real application, but I want to design it right and I am smashing my head against the wall with my data structure, specifically with encapsulation.
    I go into detail about my app below, but it gets long so for those who don't want to read that far, let me just put these two questions up front:
    1) How do principles of encapsulation change when members are complex objects rather than primitives? If the member objects themselves have only primitive members and show good encapsulation, does it make sense to pass a reference to them? Or does good encapsulation demand that I deep-clone all the way to the bottom of my data structure and pass only cloned objects through my top level accessors? Does the analysis change when the structure gets three or four levels deep? Don't DOM structures built of walkable nodes violate basic principles of encapsulation?
    2) "Encapsulation" is sometimes used to mean no public members, othertimes to mean no public members AND no setter methods. The reasons for the first are obvious, but why go to the extreme of the latter? More importantly HOW do you go to the extreme of the latter? Would an "updatePrices" method that updates encapsulated member prices based on calculations, taking a single argument of say the time of year be considered a "setter" method that violates the stricter vision of encapsulation?
    Even help with just those two questions would be great. For the masochistic, on to my app... The present code is at
    http://www.immortalcoil.org/drake/Code.zip
    The most basic form of the application is statistics driven flash card software for Japanese Kanji (Chinese characters). For those who do not know, these are ideographic characters that represent concepts rather than sounds. There are a few thousand. In abstract terms, my data structure needs to represent the following.
    -  There are a bunch of kanji.
       Each kanji is defined by:
       -  a single character (the kanji itself); and
       -  multiple readings which fall into two categories of "on" and "kun".
          Each reading is defined by:
          -  A string of hiragana or katakana (Japanese phoenetic characters); and
          -  Statistics that I keep to represent knowledge of that reading/kanji pair.Ideally the structure should be extensible. Later I might want to add statistics associated with the character itself rather than individual readings, for example. Right now I am thinking of building a data structure like so:
    -  A Vector that holds:
       -  custom KanjiEntry objects that each hold
          -  a kanji in a primitive char value; and
          -  two (on, kun) arrays or Vectors of custom Reading objects that hold
             -  the reading in a String; and
             -  statistics of some sort, probably in primitive valuesFirst of all, is this approach sensible in the rough outlines?
    Now, I need to be able to do the obvious things... save to and load from file, generate tables and views, and edit values. The quesiton of editting values raises the questions I identified above as (1) and (2). Say I want to pull up a reading, quiz the user on it, and update its statistics based on whether the user got it right or wrong. I could do all this through the KanjiEntry object with a setter method that takes a zillion arguments like:
    theKanjiEntry.setStatistic(
    "on",   // which set of readings
    2,      // which element in that array or Vector
    "score", // which statistic
    98);      // the valueOr I could pass a clone of the Reading object out, work with that, then tell the KanjiEntry to replace the original with my modified clone.
    My instincts balk at the first approach, and a little at the second. Doesn't it make more sense to work with a reference to the Reading object? Or is that bad encapsulation?
    A second point. When running flash cards, I do not care about the subtlties of the structure, like whether a reading is an on or a kun (although this is important when browsing a table representing the entire structure). All I really care about is kanij/reading pairings. And I should be able to quickly poll the Reading objects to see which ones need quizzing the most, based on their statistics. I was thinking of making a nice neat Hashtable with the keys being the kanji characters in Strings (not the KanjiEntry objects) and the values being the Reading objects. The result would be two indeces to the Reading objects... the basic structure and my ad hoc hashtable for runninq quizzes. Then I would just make sure that they stay in sync in terms of the higher level structure (like if a whole new KanjiEntry got added). Is this bad form, or even downright dangerous?
    Apart from good form, the other consideration bouncing around in my head is that if I get all crazy with deep cloning and filling the bottom level guys with instance methods then this puppy is going to get bloated or lag when there are several thousand kanji in memory at once.
    Any help would be appreciated.
    Drake

    Usually by better design. Move methods that use the
    getters inside the class that actually has the data....
    As a basic rule of thumb:
    The one who has the data is the one using it. If
    another class needs that data, wonder what for and
    consider moving that operation away from that class.
    Or move from pull to push: instead of A getting
    something from B, have B give it to A as a method
    call argument.Thanks for the response. I think I see what you are saying.. in my case it is something like this.
    Solution 1 (disfavored):
    public class kanjiDrill{ // a chunk of Swing GUI or something
         public void runDrill(Vector kanjiEntries){
              KanjiEntry currentKanjiEntry = kanjiEntries.elementAt(0); // except really I will pick one randomly
              char theKanji = currentKanjiEntry.getKanji();
              String theReading = currentKanjiEntry.getReading();
              // build and show a flashcard based on theKanji and theReading
              // use a setter to change currentKanji's data based on whether the user answers correctly;
    }Solution 2 (favored):
    public class kanjiDrill{ // a chunk of Swing GUI or something
         public void runDrill(Vector kanjiEntries){
              KanjiEntry currentKanjiEntry = kanjiEntries.elementAt(0); // except really I will pick one randomly
              currentKanji.buildAndShowFlashcard(); // method includes updating stats
    }I can definitely see the advantages to this, but two potential reasons to think hard about it occur to me right away. First, if this process is carried out to a sufficient extreme the objects that hold my data end up sucking in all the functionality of my program and my objects stop resembling natural concepts.
    In your shopping example, say you want to generate price tags for the items. The price tags can be generated with ONLY the raw price, because we do not want the VAT on them. They are simple GIF graphics that have the price printed on a an irregular polygon. Should all that graphics generating code really go into the item objects, or should we just get the price out of the object with a simple getter method and then make the tags?
    My second concern is that the more instance methods I put into my bottom level data objects the bigger they get, and I intend to have thousands of these things in memory. Is there a balance to strike at some point?
    It's not really a setter. Outsiders are not setting
    the items price - it's rather updating its own price
    given an argument. This is exactly how it should be,
    see my above point. A breach of encapsulation would
    be: another object gets the item price, re-calculates
    it using a date it knows, and sets the price again.
    You can see yourself that pushing the date into the
    item's method is much beter than breaching
    encapsulation and getting and setting the price.So the point is not "don't allow access to the members" (which after all you are still doing, albeit less directly) so much as "make sure that any functionality implicated in working with the members is handled within the object," right? Take your shopping example. Say we live in a country where there is no VAT and the app will never be used internationally. Then we would resort to a simple setter/getter scheme, right? Or is the answer that if the object really is pure data are almost so, then it should be turned into a standard java.util collection instead of a custom class?
    Thanks for the help.
    Drake

  • Can anyone help with iPlayer and Sky Mobile?

    Ok, I'm so close to giving up with this useless phone. There are 3 apps on my N97 which give me a constant headache.
    BBC iPlayer
    Sky Mobile*
    YouTube
    *I should point out that I only use Sky Mobile to set recordings on my Sky+. I do not use it for, nor have any desire to use it for actually watching Mobile TV.
    All of these apps work absolutely fine over my home WiFi network. It's when I try to use them over 3G (my Vodafone Live! connection) that I start running in to trouble.
    All 3 give me connection problems, errors, and simply refuse to load half the time when on 3G. I got so annoyed I just did a hard reset the other week, and magically all three started working again. However, now 2 of them are failing me again. YouTube (touch wood) is working fine at the moment, but iPlayer and Sky Mobile just aren't.
    iPlayer sometimes works. But sometimes I get script errors (unable to load content), and sometimes it says something about checking my connection settings. I wouldn't mind but it's not actually possible to access any options for the iPlayer. Even in application settings there are no options you're able to set.
    Sky Mobile simply flat out refuses to work ever on 3G. But it did after I did a hard reset for a couple of weeks, now it just stopped working! It wont even load. It just gives the error message 'Unable to connect to network - please check connection settings" or something along those lines.
    I've tried so many different things. Tried setting my internet connections to 'always ask', tried setting it to default to Vodafone Live! all the time, tried setting my video streaming settings to WAP, all sorts. Every combination I can think of.
    I just can't wait to get rid of this phone. I've put so many people off buying one. They see it and think it's all swish and cool, and I just say 'Don't. You'll regret it'. I can't wait for my contract to be up so I can upgrade to an iPhone now Vodafone have got them.
    Can anyone help with these problems? Thanks in advance, but I don't hold out much hope...

    About iPlayer.
    Have a chat with Vodaphone. Streaming iPlayer over 3G IS allowed on Vodaphone contract, unlike my O2 contract. As long as your contract allows it, and you have the correct AP address, it should be fine. Vodaphone should be able to give you the setting.
    Mine only works over Wlan.
    FWIW, "... streaming over 3G is not currently available on iPhone handsets on any mobile network".
    p.s. Just to be clear. You say  "Tried setting my internet connections to 'always ask', tried setting it to default to Vodafone Live!".
    iPlayer uses the Nokia browser "Web". So that's where you should make the setting "Ask when needed". It should then offer you the choice of whatever you've set in Destinations> Internet> then select whatever you've chosen as your GPRS connection.(as advised, or sent to you by Vodaphone).

Maybe you are looking for