FileDocCategorySizeDatePackage
rfq.javaAPI DocApache Axis 1.428145Sat Apr 22 18:56:52 BST 2006samples.bidbuy

rfq

public class rfq extends JPanel

Fields Summary
private vInterface
vv
private String
regServerURL
private TitledBorder
regServerBorder
private JComboBox
regServerList
private JButton
removeButton
private JTable
serverTable
private DefaultTableModel
tableModel
private JPanel
regListPanel
private JButton
refreshButton
private JButton
pingButton
private JButton
selectAllButton
private JButton
deselectAllButton
private JButton
requestButton
private JButton
registerButton
private JButton
addServerButton
private JButton
removeServerButton
private JButton
unregisterServerButton
private JPanel
purchasePanel
private JComboBox
buyList
private JTextField
tServer
private JTextField
tQuantity
private JTextField
tAddress
private JComboBox
tNumItems
public boolean
doAxis
private static int
CHECK_COLUMN
private static int
NAME_COLUMN
private static int
URL_COLUMN
private static int
TYPE_COLUMN
private static int
WSDL_COLUMN
private static int
STATE_COLUMN
private static int
QUOTE_COLUMN
private static int
NUM_COLUMNS
Constructors Summary
public rfq()

    setLayout( new BorderLayout() );

    // Do the Registration Server list area
    //////////////////////////////////////////////////////////////////////////
    JPanel regSelectPanel = new JPanel();
    regSelectPanel.setLayout( new BoxLayout(regSelectPanel, BoxLayout.X_AXIS) );
    regSelectPanel.setBorder( new EmptyBorder(5,5,5,5) );
    regSelectPanel.add( new JLabel( "Registration Server: " ) );
    regSelectPanel.add( regServerList = new JComboBox() );
    regSelectPanel.add( Box.createRigidArea(new Dimension(5,0)) );
    regSelectPanel.add( removeButton = new JButton("Remove") );

    loadRegList();

    regServerList.setEditable( true );
    regServerList.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          String act = event.getActionCommand();
          if ( act.equals( "comboBoxChanged" ) ) {
            String name = (String) regServerList.getSelectedItem();
            if ( name != null && !name.equals("") ) {
              chooseRegServer( name );
              addRegistrationServer( name );
            }
            else
              clearTable();
          }
        };
      });

    removeButton.setEnabled( true );
    removeButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Remove".equals(event.getActionCommand()) ) {
            String name = (String) regServerList.getSelectedItem();
            regServerList.removeItem( name );
            saveRegList();
          }
        };
      });

    add( regSelectPanel, BorderLayout.NORTH );

    // Do the List Of Registration Servers Table
    //////////////////////////////////////////////////////////////////////////
    regListPanel = new JPanel();
    regListPanel.setLayout( new BorderLayout() );
    regServerBorder = new TitledBorder(" Product Servers ");
    regListPanel.setBorder( regServerBorder );
    regListPanel.add( new JLabel( "Select the servers you want to request " +
                                  "a price from:"), BorderLayout.NORTH );
                
    tableModel = new MyTableModel( new Object[] {"", "Name", "URL", "Type", 
                                                 "WSDL", "State", "Quote", 
                                                 ""}, 0 );
    serverTable = new JTable( 0, NUM_COLUMNS );
    serverTable.setModel( tableModel );
    serverTable.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
    TableColumn col = serverTable.getColumnModel().getColumn(CHECK_COLUMN);
    col.setMaxWidth( 10 );
    // col = serverTable.getColumnModel().getColumn(STATE_COLUMN);
    // col.setMaxWidth( col.getPreferredWidth()/2 );
    // col = serverTable.getColumnModel().getColumn(QUOTE_COLUMN);
    // col.setMaxWidth( col.getPreferredWidth()/2 );
    col = serverTable.getColumnModel().getColumn(TYPE_COLUMN);
    col.setMaxWidth( col.getPreferredWidth()/2 );

    tableModel.addTableModelListener( new TableModelListener() {
        public void tableChanged(TableModelEvent event) {
          int type = event.getType();
          if ( type == TableModelEvent.UPDATE && event.getColumn() == 0 )
            enableButtons();
        };
      });

    regListPanel.add( new JScrollPane(serverTable), BorderLayout.CENTER );

    JPanel  btns = new JPanel();
    // btns.setLayout( new BoxLayout( btns, BoxLayout.X_AXIS ) );
    btns.setLayout( new GridBagLayout() );

    GridBagConstraints  c = new GridBagConstraints();

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    c.fill = GridBagConstraints.HORIZONTAL ;

    // row 1
    btns.add( refreshButton = new JButton( "Refresh List" ), c );
    btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    btns.add( selectAllButton = new JButton( "Select All" ), c );
    btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    btns.add( requestButton = new JButton( "Request RFQs" ), c );
    c.weightx = 1.0 ;
    btns.add( Box.createHorizontalGlue(), c );
    c.weightx = 0.0 ;
    btns.add( registerButton = new JButton( "Register Server" ), c );
    btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    c.gridwidth = GridBagConstraints.REMAINDER ;
    btns.add( addServerButton = new JButton( "Add Bid Server" ), c );

    // row 2
    c.gridwidth = 1 ;
    c.gridx = 2 ;
    btns.add( deselectAllButton = new JButton( "Deselect All" ), c );
    c.gridx = GridBagConstraints.RELATIVE ;
    btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    btns.add( pingButton = new JButton( "Ping" ), c );
    c.weightx = 1.0 ;
    btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    c.weightx = 0.0 ;
    btns.add( unregisterServerButton = new JButton( "Unregister Server" ), c );
    btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    // btns.add( Box.createRigidArea(new Dimension(5,0)), c );
    c.gridwidth = GridBagConstraints.REMAINDER ;
    btns.add( removeServerButton = new JButton( "Remove Server" ), c );

    regListPanel.add( btns, BorderLayout.SOUTH );

    refreshButton.setEnabled( false );
    refreshButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Refresh List".equals(event.getActionCommand()) ) {
            refreshList();
          }
        };
      });

    selectAllButton.setEnabled( false );
    selectAllButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Select All".equals(event.getActionCommand()) ) {
            for ( int i = 0 ; i < tableModel.getRowCount() ; i++ ){
              tableModel.setValueAt(new Boolean(true),i,CHECK_COLUMN);
            }
          }
        };
      });

    deselectAllButton.setEnabled( false );
    deselectAllButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Deselect All".equals(event.getActionCommand()) ) {
            for ( int i = 0 ; i < tableModel.getRowCount() ; i++ ){
              tableModel.setValueAt(new Boolean(false),i,CHECK_COLUMN);
            }
          }
        };
      });

    pingButton.setEnabled( false );
    pingButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Ping".equals(event.getActionCommand()) ) {
            ping();
          }
        };
      });

    requestButton.setEnabled( false );
    requestButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Request RFQs".equals(event.getActionCommand()) ) {
            requestRFQs();
          }
        };
      });

    registerButton.setEnabled( false );
    registerButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Register Server".equals(event.getActionCommand()) ) 
            registerNewServer();
        };
      });

    addServerButton.setEnabled( true );
    addServerButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Add Bid Server".equals(event.getActionCommand()) )
            promptForServer();
        };
      });

    removeServerButton.setEnabled( false );
    removeServerButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Remove Server".equals(event.getActionCommand()) )
            removeServers();
        };
      });

    unregisterServerButton.setEnabled( false );
    unregisterServerButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Unregister Server".equals(event.getActionCommand()) )
            unregisterServer();
        };
      });


    // Purchase data
    //////////////////////////////////////////////////////////////////////////
    GridBagLayout       layout        = new GridBagLayout();
    // GridBagConstraints  c             = new GridBagConstraints();
    c             = new GridBagConstraints();

    purchasePanel = new JPanel(layout);
    purchasePanel.setBorder( new TitledBorder("Purchase") );

    JButton    tSimpleBuy ;
    JButton    tPOBuy ;

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    purchasePanel.add( new JLabel("Select the purchase server from the " +
                                  "combo box" ),c );

    c.anchor    = GridBagConstraints.EAST ;
    c.gridwidth = 1 ;
    purchasePanel.add( new JLabel("Server:"), c );

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    purchasePanel.add( buyList = new JComboBox(), c );

    c.gridwidth = 1 ;
    c.anchor    = GridBagConstraints.EAST ;
    purchasePanel.add( new JLabel("Quantity:"),c );

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    purchasePanel.add( tQuantity = new JTextField(6), c );
    tQuantity.setText("1");

    c.anchor    = GridBagConstraints.EAST ;
    c.gridwidth = 1 ;
    purchasePanel.add( new JLabel("# Line Items:"),c );

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    purchasePanel.add( tNumItems = new JComboBox(), c );

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    purchasePanel.add( tSimpleBuy = new JButton( "Simple Buy" ) );

    c.anchor    = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    purchasePanel.add( tPOBuy = new JButton( "PO Buy" ) );

    for ( int j = 1 ; j < 20 ; j++ )
      tNumItems.addItem( ""+j );

    tSimpleBuy.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Simple Buy".equals(event.getActionCommand()) ) {
            simpleBuy();
          }
        };
      });

    tPOBuy.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "PO Buy".equals(event.getActionCommand()) ) {
            poBuy();
          }
        };
      });

    JSplitPane  splitPane = new JSplitPane( 0, regListPanel, 
                                               new JScrollPane(purchasePanel));
    add( splitPane, BorderLayout.CENTER );
    setSize(getPreferredSize());
    splitPane.setDividerLocation( 200 );
    purchasePanel.setEnabled( false );
  
Methods Summary
public voidaddRegistrationServer(java.lang.String name)

    int     count, i ;

    if ( name == null || "".equals(name) ) return ;
    count = regServerList.getItemCount();
    for ( i = 0 ; i < count ; i++ ) 
      if ( name.equals( regServerList.getItemAt(i) ) ) return ;
    regServerList.addItem( name );
    saveRegList();
  
public voidaddServer(Service s)

    Object[]  objs = new Object[NUM_COLUMNS] ;
    objs[0] = new Boolean(false);
    objs[1] = s.getServiceName();
    objs[2] = s.getServiceUrl();
    objs[3] = s.getServiceType();
    objs[4] = s.getServiceWsdl();
    objs[5] = null ;
    objs[6] = null ;

    tableModel.addRow( objs );
  
public voidchooseRegServer(java.lang.String name)

    regServerURL = name ;
    regServerBorder.setTitle( " Product Servers at ' " + name + " ' " );
    regListPanel.repaint();
    refreshList();
  
public voidclearTable()

    while ( tableModel.getRowCount() > 0 )
      tableModel.removeRow(0);
    enableButtons();
  
public voidenableButtons()

    boolean flag ;
    int i ;
    int total = tableModel.getRowCount();
    int count = 0 ;
    for ( i = 0 ; i < total ; i++ ) {
      flag = ((Boolean)tableModel.getValueAt(i,CHECK_COLUMN)).booleanValue();
      if ( flag ) count++ ;
    }
    selectAllButton.setEnabled( total > 0 && count != total );
    deselectAllButton.setEnabled( total > 0 && count > 0 );
    pingButton.setEnabled( count > 0 );
    requestButton.setEnabled( count > 0 );
    removeServerButton.setEnabled( count > 0 );
    unregisterServerButton.setEnabled( count > 0 );
  
public voidloadRegList()

    try {
      FileReader fr = new FileReader( "reg.lst" );
      LineNumberReader lnr = new LineNumberReader( fr );
      String  line = null ;

      while ( (line = lnr.readLine()) != null )
        addRegistrationServer( line );
      fr.close();
    }
    catch( Exception e ) {
      e.printStackTrace();
    }
  
public static voidmain(java.lang.String[] args)

    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      JFrame  window = new JFrame("Request For Quote Client") {
          protected void processWindowEvent(WindowEvent event) {
            switch( event.getID() ) {
              case WindowEvent.WINDOW_CLOSING: exit();
                                               break ;
              default: super.processWindowEvent(event);
                       break ;
            }
          }
          private void exit() {
            System.exit(0);
          }
        };

      window.getContentPane().add( new rfq() );
      window.pack();
      window.setSize( new Dimension(800, 500) );
      window.setVisible( true );
    }
    catch( Throwable exp ) {
      exp.printStackTrace();
    }
  
public voidping()

    Boolean  flag ;
    int      i;

    for ( i = 0 ; i < tableModel.getRowCount() ; i++ ) {
      flag = (Boolean) tableModel.getValueAt( i, CHECK_COLUMN );
      if ( flag.booleanValue() ) {
        String url = (String) tableModel.getValueAt( i, URL_COLUMN );
        Boolean value = new Boolean(false);

        try {
          value = vv.ping( url );

          tableModel.setValueAt( value.booleanValue() ? "Alive" : "Down", 
                                 i, STATE_COLUMN );
          serverTable.repaint();
        }
        catch( Exception e ) {
          JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                        JOptionPane.INFORMATION_MESSAGE );
        }

      }
    }
  
public voidpoBuy()

    try {
      String url = null ;
      int total = tableModel.getRowCount();
      String name = (String) buyList.getSelectedItem();
      double price = 0 ;
      for ( int i = 0 ; i < total ; i++ ) {
        String val = (String) tableModel.getValueAt(i, NAME_COLUMN) ;
        Double dval ;
        if ( val.equals(name) ) {
          url = (String) tableModel.getValueAt(i, URL_COLUMN);
          dval = (Double) tableModel.getValueAt(i, QUOTE_COLUMN);
          price = dval.doubleValue();
          break ;
        }
      }
      // String address = (String) tAddress.getText();
      String product = "soap" ;
      int quantity = Integer.parseInt((String) tQuantity.getText());
      int numItems = Integer.parseInt((String) tNumItems.getSelectedItem());
      String value = null ;

      value = vv.buy( url, quantity, numItems, price );

      JOptionPane.showMessageDialog(this, value, "Receipt",
                                    JOptionPane.INFORMATION_MESSAGE );
    }
    catch( Exception e ) {
      e.printStackTrace();
      JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                    JOptionPane.INFORMATION_MESSAGE );
    }
  
public voidpromptForServer()

    Component parent = this ;
    while ( parent != null && !(parent instanceof JFrame) )
      parent = parent.getParent();
    final JDialog j = new JDialog((JFrame)parent, "Add Bid Server", true );
    Container  pane = j.getContentPane();
    final JTextField  fName = new JTextField(20), 
                      fURL  = new JTextField(20), 
                      fType = new JTextField(20), 
                      fWsdl = new JTextField(20);
    JButton     addButton, cancelButton ; 

    pane.setLayout( new GridBagLayout() );
    GridBagConstraints c = new GridBagConstraints();

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "Service Name" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fName, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "Service URL" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fURL, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "Service Type" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fType, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "WSDL URL" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fWsdl, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( addButton = new JButton( "Add" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( Box.createHorizontalStrut(3), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( cancelButton = new JButton( "Cancel" ), c );

    fType.setText( "Bid" );

    addButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Add".equals(event.getActionCommand()) ) {
            Service s = new Service();
            s.setServiceName( fName.getText() );
            s.setServiceUrl( fURL.getText() );
            s.setServiceType( fType.getText() );
            s.setServiceWsdl( fWsdl.getText() );
            addServer( s );
            j.dispose();
          }
        };
      });

    cancelButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Cancel".equals(event.getActionCommand()) ) {
            j.dispose();
          }
        };
      });

    j.pack();
    Point p = new Point( parent.getLocation() );
    Dimension d = parent.getSize();
    p.setLocation( (int)(p.getX() + d.getWidth()/2), 
                   (int)(p.getY() + d.getHeight()/2) );
    d = j.getSize();
    j.setLocation( (int)(p.getX() - d.getWidth()/2), 
                   (int)(p.getY() - d.getHeight()/2) );
    j.show();
  
public voidrefreshList()

    clearTable();

    Vector services = null ;

    try {
      services = vv.lookupAsString(regServerURL);
    }
    catch( Exception e ) {
      System.err.println("---------------------------------------------");
      e.printStackTrace();
      JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                    JOptionPane.INFORMATION_MESSAGE );
    }

    for ( int i = 0 ; services != null && i < services.size() ; i++ ) {
      Service s = (Service) services.elementAt(i);
      addServer( s );
    }

    buyList.removeAllItems();
    purchasePanel.setEnabled( false );
    refreshButton.setEnabled( true );
    registerButton.setEnabled( true );
    enableButtons();
  
public voidregister(Service s)

    try {
      vv.register( (String) regServerList.getSelectedItem(), s );
      refreshList();
    }
    catch( Exception e ) {
      JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                    JOptionPane.INFORMATION_MESSAGE );
    }
  
public voidregisterNewServer()

    Component parent = this ;
    while ( parent != null && !(parent instanceof JFrame) )
      parent = parent.getParent();
    final JDialog j = new JDialog((JFrame)parent, "Register Server", true );
    Container  pane = j.getContentPane();
    final JTextField  fName = new JTextField(20), 
                      fURL  = new JTextField(20), 
                      fType = new JTextField(20), 
                      fWsdl = new JTextField(20);
    JButton     regButton, cancelButton ; 

    pane.setLayout( new GridBagLayout() );
    GridBagConstraints c = new GridBagConstraints();

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "Service Name" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fName, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "Service URL" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fURL, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "Service Type" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fType, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( new JLabel( "WSDL URL" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = GridBagConstraints.REMAINDER ;
    pane.add( fWsdl, c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( regButton = new JButton( "Register" ), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( Box.createHorizontalStrut(3), c );

    c.anchor = GridBagConstraints.WEST ;
    c.gridwidth = 1 ;
    pane.add( cancelButton = new JButton( "Cancel" ), c );

    fType.setText( "Bid" );

    regButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Register".equals(event.getActionCommand()) ) {
            Service s = new Service();
            s.setServiceName( fName.getText() );
            s.setServiceUrl( fURL.getText() );
            s.setServiceType( fType.getText() );
            s.setServiceWsdl( fWsdl.getText() );
            register( s );
            j.dispose();
          }
        };
      });

    cancelButton.addActionListener( new ActionListener() {
        public void actionPerformed(ActionEvent event) {
          if ( "Cancel".equals(event.getActionCommand()) ) {
            j.dispose();
          }
        };
      });

    j.pack();
    Point p = new Point( parent.getLocation() );
    Dimension d = parent.getSize();
    p.setLocation( (int)(p.getX() + d.getWidth()/2), 
                   (int)(p.getY() + d.getHeight()/2) );
    d = j.getSize();
    j.setLocation( (int)(p.getX() - d.getWidth()/2), 
                   (int)(p.getY() - d.getHeight()/2) );
    j.show();
  
public voidremoveServers()

    Boolean  flag ;
    int      i, j;

    for ( i = tableModel.getRowCount()-1 ; i >= 0 ; i-- ) {
      flag = (Boolean) tableModel.getValueAt( i, CHECK_COLUMN );
      if ( flag.booleanValue() )
        tableModel.removeRow( i );
    }
    enableButtons();
  
public voidrequestRFQs()

    Boolean  flag ;
    int      i, j;

    // buyList.removeAllItems();

    for ( i = 0 ; i < tableModel.getRowCount() ; i++ ) {
      flag = (Boolean) tableModel.getValueAt( i, CHECK_COLUMN );
      if ( flag.booleanValue() ) {
        String url = (String) tableModel.getValueAt( i, URL_COLUMN );
        double value = 0.0 ;

        try {
          value = vv.requestForQuote( url );

          tableModel.setValueAt( new Double(value), i, QUOTE_COLUMN );
          serverTable.repaint();

          String str = (String) tableModel.getValueAt(i, NAME_COLUMN);
          for ( j = 0 ; j < buyList.getItemCount(); j++ ) 
            if ( ((String)buyList.getItemAt(j)).equals(str) ) break ;
          if ( j == buyList.getItemCount() )
            buyList.addItem( str );
        }
        catch( Exception e ) {
          JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                        JOptionPane.INFORMATION_MESSAGE );
        }

      }
    }
    // buyList.setSelectedIndex(-1);
    purchasePanel.setEnabled( true );
  
public voidsaveRegList()

    try {
      FileOutputStream fos = new FileOutputStream( "reg.lst" );
      PrintWriter      pw  = new PrintWriter( fos );
      int              count = regServerList.getItemCount();
      int              i ;

      for ( i = 0 ; i < count ; i++ ) 
        pw.println( (String) regServerList.getItemAt(i) );
      pw.close();

      fos.close();
    }
    catch( Exception e ) {
      e.printStackTrace();
    }
  
public voidsimpleBuy()

    try {
      String url = null ;
      int total = tableModel.getRowCount();
      String name = (String) buyList.getSelectedItem();
      for ( int i = 0 ; i < total ; i++ ) {
        String val = (String) tableModel.getValueAt(i, NAME_COLUMN) ;
        if ( val.equals(name) ) {
          url = (String) tableModel.getValueAt(i, URL_COLUMN);
          break ;
        }
      }
      String address = "123 Main Street, Any Town, USA" ;
      String product = "soap" ;
      int quantity = Integer.parseInt((String) tQuantity.getText());
      String value = null ;

      value = vv.simpleBuy( url, quantity );

      JOptionPane.showMessageDialog(this, value, "Receipt",
                                    JOptionPane.INFORMATION_MESSAGE );
    }
    catch( Exception e ) {
      JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                    JOptionPane.INFORMATION_MESSAGE );
    }
  
public voidunregisterServer()

    Boolean  flag ;
    int      i;

    for ( i = 0 ; i < tableModel.getRowCount() ; i++ ) {
      flag = (Boolean) tableModel.getValueAt( i, CHECK_COLUMN );
      if ( flag.booleanValue() ) {
        String name = (String) tableModel.getValueAt( i, NAME_COLUMN );
        String regServer =  (String) regServerList.getSelectedItem() ;
        Boolean value = new Boolean(false);

        try {
          vv.unregister( regServer, name);
        }
        catch( Exception e ) {
          JOptionPane.showMessageDialog(this, e.toString(), "Error",
                                        JOptionPane.INFORMATION_MESSAGE );
        }

      }
    }
    refreshList();