You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2001/10/29 10:00:59 UTC

cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets StockQuoteAction.java

taylor      01/10/29 01:00:59

  Modified:    src/java/org/apache/jetspeed/modules/actions/portlets
                        StockQuoteAction.java
  Log:
  Changed StockPortlet to get symbols per user, symbol lists are stored on the web service server.
  Added Customization to edit and store symbols on web service server. Symbol lists are stored by user.
  
  Revision  Changes    Path
  1.2       +88 -9     jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/StockQuoteAction.java
  
  Index: StockQuoteAction.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/StockQuoteAction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StockQuoteAction.java	2001/09/23 07:45:59	1.1
  +++ StockQuoteAction.java	2001/10/29 09:00:59	1.2
  @@ -62,10 +62,12 @@
   import org.apache.turbine.util.StringUtils;
   import org.apache.turbine.services.Service;
   import org.apache.turbine.services.TurbineServices;
  +import org.apache.turbine.om.security.User;
   
   // Velocity Stuff
   import org.apache.velocity.context.Context;
   
  +import org.apache.jetspeed.util.StringUtils;
   import org.apache.jetspeed.webservices.finance.stockmarket.StockQuoteService;
   import org.apache.jetspeed.webservices.finance.stockmarket.StockQuote;
   
  @@ -103,8 +105,11 @@
                                             Context context,
                                             RunData rundata )
       {
  +        buildNormalContext( portlet, context, rundata);
  +        
  +        setTemplate(rundata, "stock-quote-customize");
   
  -        buildNormalContext( portlet, context, rundata);        
  +        
       }
   
       /** 
  @@ -114,9 +119,6 @@
        * @param context The velocity context for this request.
        * @param rundata The turbine rundata context for this request.
        */
  -
  -     // TODO: replace this array with configurable velocity screen
  -    static String[] symbols = { "DST", "IONA", "IBM" };
       
       protected void buildNormalContext( VelocityPortlet portlet, 
                                          Context context,
  @@ -126,12 +128,20 @@
           {                        
               StockQuoteService service = 
                   (StockQuoteService)TurbineServices.getInstance().getService(StockQuoteService.SERVICE_NAME);
  -
  -            // TODO: replace fullQuotes with:
  -            //          StockQuote[] quotes = service.quotesByUser( username );
   
  -            StockQuote[] quotes = service.fullQuotes( symbols );
  +            String symbols = (String)context.get("symbols");
  +            if (null == symbols || symbols == "")
  +            {
  +                String userName = getCurrentUser(rundata);
  +                String password = getCurrentPassword(rundata);
  +                symbols = service.getSymbols( "jetspeed", userName, password );
  +                context.put("symbols", symbols);
  +
  +            }
  +            String [] symbolArray = org.apache.jetspeed.util.StringUtils.stringToArray(symbols, ",");
  +            StockQuote[] quotes = service.fullQuotes( symbolArray );
               context.put("quotes", quotes);
  +
           }
           catch (Exception e)
           {
  @@ -139,10 +149,79 @@
               Log.error(e);
   
               rundata.setMessage("Error in Jetspeed Stock Quotes: " + e.toString());
  -            rundata.setStackTrace(StringUtils.stackTrace(e), e);
  +            rundata.setStackTrace(org.apache.turbine.util.StringUtils.stackTrace(e), e);
               rundata.setScreenTemplate("Error.vm");            
           }
       }
  +    
  +    private String getCurrentUser(RunData rundata)
  +    {
  +        User user = rundata.getUser();
  +        String userName;
  +    
  +        if (null == user)
  +        {
  +            userName = "anon";
  +        }
  +        else
  +        {
  +            userName = user.getUserName();
  +            if (null == userName)
  +            {
  +                userName = "anon";
  +            }
  +        }
  +        return userName;
  +    }
   
  +    private String getCurrentPassword(RunData rundata)
  +    {
  +        User user = rundata.getUser();
  +        String password;
  +    
  +        if (null == user)
  +        {
  +            password = "anon";
  +        }
  +        else
  +        {
  +            password = user.getPassword();
  +            if (null == password)
  +            {
  +                password = "anon";
  +            }
  +        }
  +        return password;
  +    }
  +
  +
  +
  +    public void doUpdate(RunData data, Context context)
  +    {
  +        String newSymbols = org.apache.jetspeed.util.StringUtils.removeChars(data.getParameters().getString("symbols"), " ");
  +       
  +        try
  +        {                        
  +            StockQuoteService service = 
  +                (StockQuoteService)TurbineServices.getInstance().getService(StockQuoteService.SERVICE_NAME);
  +
  +            String userName = getCurrentUser(data);
  +            String password = getCurrentPassword(data);
  +            boolean success = service.storeSymbols( "jetspeed", userName, password, newSymbols );
  +            context.put("symbols", newSymbols);
  +            VelocityPortlet portlet = (VelocityPortlet)context.get("portlet");
  +            buildNormalContext( portlet, context, data);
  +
  +        }
  +        catch (Exception e)
  +        {
  +           // log the error msg
  +            Log.error(e);
  +
  +            data.setMessage("Error in Jetspeed Stock Quotes: " + e.toString());
  +            data.setStackTrace(org.apache.turbine.util.StringUtils.stackTrace(e), e);
  +            data.setScreenTemplate("Error.vm");            
  +        }
  +    }
   }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>