Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/confirmation.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/confirmation.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/confirmation.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/confirmation.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,49 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:s="http://stonehenge.apache.com/jsf"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Trade + </ui:define> + <ui:define name="body"> + <div id="confirm"> + <h2>Trade Confirmation</h2> + <div class="confirm-content"><c:if + test="#{tradeBean.type=='Buy'}"> + <h:outputFormat + value="You have requested to buy shares of {0} which is currently + trading at {1}."> + <f:param value="#{tradeBean.symbol}" /> + <f:param value="#{tradeBean.price}" /> + </h:outputFormat> + </c:if> <c:if test="#{tradeBean.type=='Sell'}"> + <h:outputFormat + value="You have requested to sell all or part of your holding {0}. This holding has a total of {2} shares of stock {0}. Please indicate how many share to sell."> + <f:param value="#{tradeBean.symbol}" /> + <f:param value="#{tradeBean.price}" /> + <f:param value="#{tradeBean.quantity}" /> + </h:outputFormat> + </c:if> <br /> + <br /> + <h:form> + <h:outputText value="Number of Shares:" /> + <h:inputText id="quantity" value="#{tradeBean.quantity}" size="10" /> + <c:if test="#{tradeBean.type=='Buy'}"> + <h:commandButton value="Buy" action="#{tradeBean.buy}" /> + <h:commandButton value="Cancel" action="#{tradeBean.cancelBuy}"/> + </c:if> + <c:if test="#{tradeBean.type=='Sell'}"> + <h:commandButton value="Sell" action="#{tradeBean.sell}" /> + <h:commandButton value="Cancel" action="#{tradeBean.cancelSell}"/> + </c:if> + </h:form></div> + </div> + <ui:include src="getQuote.jsf" /> + </ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file
Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/css/style.css URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/css/style.css?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/css/style.css (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/css/style.css Thu Aug 6 03:41:14 2009 @@ -0,0 +1,392 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +body { +background-image: url(../images/bg.gif); +background-repeat: repeat-x; +background-position: left top; +background-attachment: scroll; +font-size: 11px; +font-family: Verdana, Arial, Helvetica, san-serif; +padding: 0px; +margin: 0px; +} + +p { } + +h3 { +margin-top:5px; +font-size: 16px; +font-weight: normal; +color: #711D1E; +} + +td { } + +a:link { +color: #D17270; +text-decoration: none; +} + +a:visited { + +} + +a:hover { +text-decoration: underline; +} + +a:active { } + +input { +border-left: solid 1px #999; +border-bottom: solid 1px #333; +border-right: solid 1px #333; +border-top: solid 1px #999; +margin-right: 7px; +} +input.button { +background-image: url(../images/button-bg.gif); +background-repeat: repeat-x; +background-position: left top; +background-attachment: scroll; +border-left: solid 1px #C0372D; +border-bottom: solid 2px #C0472D; +border-right: solid 2px #C0572D; +border-top: solid 1px #C0672D; +height: 22px; +font-weight: bold; +padding-left: 10px; +padding-right: 10px; +cursor: pointer; +} +td { +vertical-align: top; +} + +div#content { +width: 902px; +margin: auto; +margin-top: 15px; +} +div#header { +background-image: url(../images/header-bg.gif); +background-repeat: no-repeat; +background-position: left top; +background-attachment: scroll; +background-color: #fff; +height: 57px; +} +div#header div.logo { +float: left; +margin-top: 0px; +margin-left: 20px; +} +div#header div.powered { +float: right; +margin-top: 10px; +margin-right: 20px; +} +div#header-links { +border-left: solid 2px #d17270; +border-right: solid 2px #d17270; +height: 35px; +padding-left: 70px; +padding-right: 20px; +padding-top: 0px; +background-image: url(../images/header-links-bg.gif); +background-repeat: no-repeat; +background-position: left top; +background-attachment: scroll; +} +div#header-links table { +height: 30px; + +} +div#header-links table td { +} +div#header-links table td a { +display: block; +text-decoration: none; +color: #fff; +padding-left: 15px; +padding-right: 15px; +padding-top: 7px; +background-image: url(../images/header-link-bg.gif); +background-repeat: repeat-x; +background-position: left top; +background-attachment: scroll; +height: 23px; +font-size: 12px; +font-weight: bold; +} +div#header-links table td a:hover { +background-image: url(../images/header-link-bg-hover.gif); +background-repeat: repeat-x; +background-position: left top; +background-attachment: scroll; +} +div#middle { +background-image: url(../images/middle-bg.gif); +background-repeat: repeat-y; +background-position: left top; +background-attachment: scroll; +background-color: #fff; +min-height: 300px; +padding-left: 40px; +padding-right: 40px; +padding-top: 20px; +padding-bottom: 20px; +} +div#middle div.main-title { +border-bottom: solid 1px #d17270; +text-align: right; +vertical-align: bottom; +height: 30px; +margin-bottom: 20px; +} +div#middle div.main-title h1{ +margin-top: 0px; +padding-top: 0px; +font-size: 22px; +color: #711D1E; +float: left; +} +div#middle div.main-title span.time { +} +div.left { +width: 400px; +} +div.right { +border: solid 1px #d17270; +margin-left: 40px; +width: 373px; +} +div.right p { +padding-left: 10px; +padding-right: 10px; +} +div.right h3{ +margin: 0px; +background-color: #d17270; +color: #fff; +padding: 5px; +font-size: 12px; +} + +div.login { +text-align: center; +} +div.login table { +margin: auto; +font-size: 12px; +} +div.login p.new-user { +font-size: 12px; +font-weight: bold; +} +div.quotes { +text-align: center; +width: auto; +margin: auto; +} +div#middle table.normal { +margin-bottom: 20px; +} +div#middle table.normal tr{ +text-align: left; +font-size: 12px; +} +div#middle table.normal tr th { +font-size: 12px; +border-bottom: solid 1px #333; +border-left: 0px; +border-right: 0px; +border-top: 0px; +padding-bottom: 3px; +color: #d17270; +} +div#middle table.normal tr td.left { +text-align: right; +color: #d17270; +padding-top: 3px; +vertical-align: top; +} + +table.table-inner { +border: solid 1px #999; +width: 100%; +} +table.table-inner tr td,th{ +border: solid 1px #333; +padding: 5px; +} +table.table-inner tr th { +background-color: #999; +color: #fff; +} +table.table-inner tbody tr td { +background-color: #ccc; +text-align: right; +} + +table.table-outer { +border: solid 0px #333; +width: auto; +} +table.table-outer tr td,th{ + border: solid 1px #fff; + padding: 5px; +} +table.table-outer thead tr th { +background-color: #999; +border: solid 1px #fff; +color: #fff; +padding: 3px; +} +table.table-outer tbody tr td { +background-color: #ededed; +text-align: center; +} +table.table-outer tbody tr td.special { +background-color: #ccc; +font-weight: bold; +text-align: left; +} +table.table-outer tbody tr td.currency { +text-align: right; +} +table.table-outer tbody tr.total td{ +background-color: #BCBEC0; +font-weight: bold; +text-align: right; +} +span.price { +color: #711d1e; +} +span.price-gain { +color: #711d1e; +background-image: url(../images/green-arrow.gif); +background-repeat: no-repeat; +background-position: right top; +background-attachment: scroll; +padding-right: 17px; +} +span.price-loss { +color: #C0272D; +background-image: url(../images/red-arrow.gif); +background-repeat: no-repeat; +background-position: right bottom; +background-attachment: scroll; +padding-right: 17px; +} +table.profile { +border: solid 1px #711d1e; +width: 100%; +margin-top: 15px; +background-color: #ededed; +} +table.profile tr td,th{ +padding: 2px; +} +table.profile thead tr th { +color: #711d1e; +border-bottom: solid 1px #711d1e; +font-size: 12px; +padding: 5px; +} +table.profile tbody tr td { +background-color: #ededed; +text-align: right; +} +table.profile tbody tr td.button { +text-align: center; +padding: 7px; +} +table.profile-content { +width: auto; +margin-bottom: 10px; +} +table.profile-content tbody tr td { +padding: 5px; +border: solid 1px #999; +} +table.profile-content tbody tr td.left { +color: #D17270; +} +table.glossary { +width: 80%; +background-color: #ccc; +} +table.glossary thead tr th { +background-color: #666; +color: #fff; +border: 0px; +padding: 5px; +} +table.glossary tbody tr td { +background-color: #fff; +padding: 5px; +} +table.glossary td.left { +font-weight: bold; +} +div#confirm { +margin-top: 7%; +margin-bottom: 7%; +width: 60%; +margin-left: auto; +margin-right: auto; +} +div#confirm h2 { +color: #711D1E; +text-align: center; +font-size: 18px; +} +div#confirm div.confirm-content { +background-color: #F89C8F; +border-top: solid 1px #CF6A67; +border-left: solid 1px #CF6A67; +border-right: solid 2px #CF6A67; +border-bottom: solid 2px #CF6A67; +padding-top: 10px; +padding-bottom: 20px; +padding-left: 20px; +padding-right: 20px; +text-align: center; +} +div.bottom { +margin-top: 10px; +border-top: solid 1px #711d1e; +padding-top: 10px; +padding-bottom: 0px; +text-align: center; +vertical-align: middle; +} +div#footer { +background-image: url(../images/footer-bg.gif); +background-repeat: no-repeat; +background-position: left top; +background-attachment: scroll; +background-color: #fff; +height: 30px; +padding-top: 25px; +padding-left: 20px; +color: #711D1E; +} +a img { + border: none; +} Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/getQuote.jsf URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/getQuote.jsf?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/getQuote.jsf (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/getQuote.jsf Thu Aug 6 03:41:14 2009 @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html xmlns:ui="http://java.sun.com/jsf/facelets"> +<body> +<ui:composition> + <div class="bottom"> + <form action="quotes.faces" method="post"><input type="text" + value="" name="SYMBOLS" id="" size="25" /><input type="submit" + name="GETQUOTE" value="Get Quote" class="button" /></form> + </div> +</ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/glossary.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/glossary.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/glossary.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/glossary.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,172 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:ui="http://java.sun.com/jsf/facelets"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Glossary + </ui:define> + <ui:define name="body"> + <table align="center" class="glossary"> + <thead> + <tr> + <th>Term</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td class="left">Account ID</td> + <td>A unique Integer based key. Each user is assigned an account ID at account creation time.</td> + </tr> + <tr> + <td class="left">Account Created</td> + <td>The time and date the users account was first created.</td> + </tr> + <tr> + <td class="left">Cash Balance</td> + <td>The current cash balance in the users account. This does not include current stock holdings.</td> + </tr> + <td class="left">Company</td> + <td>The full company name for an individual stock.</td> + <tr> + <td class="left">Current Gain/Loss</td> + <td>The total gain or loss of this account, computed by substracting the current sum of cash/holdings + minus the opening account balance. + </td> + </tr> + <td class="left">Current Price</td> + <td>The current trading price for a given stock symbol.</td> + <tr> + <td class="left">Gain/Loss</td> + <td>The current gain or loss of an individual stock holding, computed as (current market value - holding + basis). + </td> + </tr> + <tr> + <td class="left">Last Login</td> + <td>The date and time this user last logged in to Trade.</td> + </tr> + <tr> + <td class="left">Market Value</td> + <td>The current total value of a stock holding, computed as (quantity * current price).</td> + </tr> + <tr> + <td class="left">Number of Holdings</td> + <td>The total number of stocks currently owned by this account.</td> + </tr> + <tr> + <td class="left">Open Price</td> + <td>The price of a given stock at the open of the trading session.</td> + </tr> + <tr> + <td class="left">Order ID</td> + <td>A unique Integer based key. Each order is assigned an order ID at order creation time.</td> + </tr> + <tr> + <td class="left">Opening Balance</td> + <td>The initial cash balance in this account when it was opened.</td> + </tr> + <tr> + <td class="left">Order Status</td> + <td>orders are opened, processed, closed and completed. Order status shows the current stat for this + order. + </td> + </tr> + <tr> + <td class="left">Price Range</td> + <td>The low and high prices for this stock during the current trading session</td> + </tr> + <tr> + <td class="left">Purchase Date</td> + <td>The date and time the a stock was purchased.</td> + </tr> + <tr> + <td class="left">Purchase Price</td> + <td>The price used when purchasing the stock.</td> + </tr> + <tr> + <td class="left">Purchase Basis</td> + <td>The total cost to purchase this holding. This is computed as (quantity * purchase price).</td> + </tr> + <tr> + <td class="left">Quantity</td> + <td>The number of stock shares in the order or user holding.</td> + </tr> + <tr> + <td class="left">Session Created</td> + <td>An HTTP session is created for each user at during login. Session created shows the time and day + when the session was created. + </td> + </tr> + <tr> + <td class="left">Sum of Cash/Holdings</td> + <td>The total current value of this account. This is the sum of the cash balance along with the value of + current stock holdings. + </td> + </tr> + <tr> + <td class="left">Symbol</td> + <td>The symbol for a Trade stock.</td> + </tr> + <tr> + <td class="left">Total Logins</td> + <td>The total number of logins performed by this user.</td> + </tr> + <tr> + <td class="left">Total Logouts</td> + <td>The total number of logouts performed by this user.</td> + </tr> + <tr> + <td class="left">Total of Holdings</td> + <td>The current total value of all stock holdings in this account given the current valuation of each + stock held. + </td> + </tr> + <tr> + <td class="left">Top gainers</td> + <td>The list of stocks (matching LIKE CLAUSE 's:1__%' per WebSphere Trade 6.1 behavior) gaining the most + in price during the current trading session. + </td> + </tr> + <tr> + <td class="left">Top Losers</td> + <td>The list of stocks (matching LIKE CLAUSE 's:1__%' per WebSphere Trade 6.1 behavior) falling the most + in price during the current trading session. + </td> + </tr> + <tr> + <td class="left">Trader Stock Index (TSIA)</td> + <td>A computed index of the top 20 stocks (matching LIKE CLAUSE 's:1__%' per WebSphere Trade 6.1 + behavior) in Trade. + </td> + </tr> + <tr> + <td class="left">Trading Volume</td> + <td>The total number of shares traded for stocks (matching LIKE CLAUSE 's:1__%' per WebSphere Trade 6.1 + behavior) during this trading session. + </td> + </tr> + <tr> + <td class="left">Txn Fee</td> + <td>The fee charged by the brokerage to process this order.</td> + </tr> + <tr> + <td class="left">Type</td> + <td>The order type (buy or sell).</td> + </tr> + <tr> + <td class="left">User ID</td> + <td>The unique user ID for the account chosen by the user at account registration.</td> + </tr> + <tr> + <td class="left">Volume</td> + <td>The total number of shares traded for this stock.</td> + </tr> + </tbody> + </table> + </ui:define> + </ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/home.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/home.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/home.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/home.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,170 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:s="http://stonehenge.apache.com/jsf"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Home + </ui:define> + <ui:define name="body"> + <h3><h:outputText value="Welcome #{userBean.currentUserName}" /></h3> + + <table> + <tr> + <td> + <div class="left"> + <table class="normal"> + <thead> + <tr> + <th colspan="2">User Statistics</th> + </tr> + </thead> + <tbody> + <tr> + <td class="left">Account ID:</td> + <td><h:outputText value="#{userBean.accountID}" /></td> + </tr> + <tr> + <td class="left">Account Created:</td> + <td><h:outputText value="#{userBean.creationDate}" /></td> + </tr> + <tr> + <td class="left">Total Logins:</td> + <td><h:outputText value="#{userBean.loginCount}" /></td> + </tr> + <tr> + <td class="left">Session Created:</td> + <td><h:outputText value="#{userBean.lastLoginDate}" /></td> + </tr> + </tbody> + <thead> + <tr> + <th colspan="2">Summary</th> + </tr> + </thead> + <tbody> + <tr> + <td class="left">Cash Balance:</td> + <td><h:outputText value="#{userBean.balance}" /></td> + </tr> + + <tr> + <td class="left">Number of Holdings:</td> + <td><h:outputText value="#{userBean.holdingInfo.noOfHoldings}" /></td> + </tr> + + <tr> + <td class="left">Total of Holdings:</td> + <td><s:currency value="#{userBean.holdingInfo.totalHoldings}" /></td> + </tr> + + <tr> + <td class="left">Sum of Cash and Holdings:</td> + <td><s:currency value="#{userBean.sumOfCashHolding}" /></td> + </tr> + + <tr> + <td class="left">Opening Balance:</td> + <td><s:currency value="#{userBean.openBalance}" /></td> + </tr> + + <tr> + <td class="left">Current Gain/(Loss):</td> + <td><span class="price"> <s:price + value = "#{userBean.currentGain}" /> </span></td> + </tr> + + <tr> + <td class="left">%Gain/(Loss):</td> + <td><s:price value="#{userBean.gainPercent}" + displayValue="#{userBean.gainPercentString}" /></td> + </tr> + </tbody> + </table> + </div> + </td> + + <td> + <div class="right"> + <h3>Market Summary</h3> + <p><script type="text/javascript"> + document.writeln(new Date().toUTCString()); +</script></p> + <table class="table-outer" cellspacing="0"> + <tr> + <td class="special">Trade Stock Index (TSIA)</td> + <td><h:outputText value="#{userBean.tradeStockIndex} " /> <s:price + value="#{userBean.currentGain}" /></td> + </tr> + <tr> + <td class="special">Trading Volume</td> + <td><h:outputText value="#{userBean.volume}" /></td> + </tr> + <tr> + <td class="special">Top Gainers</td> + <td> + <table class="table-inner" cellspacing="0"> + <thead> + <tr> + <th>Symbol</th> + <th>Price</th> + <th>Change</th> + </tr> + </thead> + <tbody> + <ui:repeat value="#{userBean.topGainers}" var="topGainer"> + <tr> + <td> + <form action="quotes.faces" method="post"><input + type="hidden" name="SYMBOLS" value="#{topGainer.symbol}" /> + <input type="submit" name="GETQUOTE" + value="#{topGainer.symbol}" /></form> + </td> + <td><h:outputText value="\$#{topGainer.price}" /></td> + <td><s:price value="#{topGainer.change}" /></td> + </tr> + </ui:repeat> + </tbody> + </table> + </td> + </tr> + + + <tr> + <td class="special">Top Losers</td> + <td> + <table class="table-inner" cellspacing="0"> + <thead> + <tr> + <th>Symbol</th> + <th>Price</th> + <th>Change</th> + </tr> + </thead> + <tbody> + <ui:repeat var="topLoser" value="#{userBean.topLosers}"> + <tr> + <td> + <form action="quotes.faces" method="post"><input + type="hidden" name="SYMBOLS" value="#{topLoser.symbol}" /> <input + type="submit" name="GETQUOTE" value="#{topLoser.symbol}" /></form> + </td> + <td><h:outputText value="\$#{topLoser.price}" /></td> + <td><s:price value="#{topLoser.change}"/></td> + </tr> + </ui:repeat> + </tbody> + </table> + </td> + </tr> + </table> + </div> + </td> + </tr> + </table> + <ui:include src="getQuote.jsf"/> + </ui:define> +</ui:composition> +</body> +</html> Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/button-bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/button-bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/button-bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/favicon.ico URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/favicon.ico?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/favicon.ico ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/footer-bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/footer-bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/footer-bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/green-arrow.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/green-arrow.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/green-arrow.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-link-bg-hover.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-link-bg-hover.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-link-bg-hover.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-link-bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-link-bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-link-bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-links-bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-links-bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/header-links-bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/logo.png URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/logo.png?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/logo.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/middle-bg.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/middle-bg.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/middle-bg.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/powered-by-logo.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/powered-by-logo.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/powered-by-logo.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/red-arrow.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/red-arrow.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/red-arrow.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/spinner.gif URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/spinner.gif?rev=801507&view=auto ============================================================================== Binary file - no diff available. Propchange: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/images/spinner.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/login.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/login.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/login.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/login.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,41 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:ui="http://java.sun.com/jsf/facelets"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Login +</ui:define> + <ui:define name="body"> + <div class="login"> + <h:form> + <h:panelGrid columns="2"> + <h:outputLabel for="userName"> + <h:outputText value="Username"/> + </h:outputLabel> + + <h:inputText id="userName" size="25" value="#{loginBean.username}"/> + + <h:outputLabel for="password"> + <h:outputText value="Password"/> + </h:outputLabel> + + <h:inputSecret id="password" size="25" value="#{loginBean.password}"/> + + <h:panelGroup/> + <h:commandButton title="submit" value="Submit" action="#{loginBean.login}"/> + </h:panelGrid> + </h:form> + + <p>Try password "xxx" for user "uid:0" to access the stock trader web application.</p> + + <p class="new-user"> + <a href="./register.jsf">First time user?</a> + </p> + </div> + </ui:define> + </ui:composition> + </body> + </html> + Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/newOrder.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/newOrder.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/newOrder.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/newOrder.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,54 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:s="http://stonehenge.apache.com/jsf"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + New Order + </ui:define> + <ui:define name="body"> + <p align="center"> + <h:outputFormat + value="Order {0, number, ##} to {1}.{2} shares of {3} has been submitted for processing."> + <f:param value="#{tradeBean.orderReturn.orderID}" /> + <f:param value="#{tradeBean.orderReturn.quantity}" /> + <f:param value="#{tradeBean.orderReturn.quantity}" /> + <f:param value="#{tradeBean.orderReturn.symbol}" /> + </h:outputFormat> + </p> + <p align="center">Order Details:</p> + <table class="table-outer" cellspacing="0" align="center"> + <thead> + <tr> + <th>Order ID</th> + <th>Order Status</th> + <th>Creation Date</th> + <th>Completion Date</th> + <th>Txn Fee</th> + <th>Type</th> + <th>Symbol</th> + <th>Quantity</th> + </tr> + </thead> + <tbody> + <tr> + <td><h:outputText value="#{tradeBean.orderReturn.orderID}" /></td> + <td><h:outputText value="#{tradeBean.orderReturn.orderStatus}" /></td> + <td><h:outputText value="#{tradeBean.orderReturn.openDate.time}"> + <f:convertDateTime pattern="#{accountBean.dateFormat}" /> + </h:outputText></td> + <td>Pending</td> + <td><h:outputText value="#{tradeBean.orderReturn.orderFee}" /></td> + <td><h:outputText value="#{tradeBean.orderReturn.orderType}" /></td> + <td><h:outputText value="#{tradeBean.orderReturn.symbol}" /></td> + <td><h:outputText value="#{tradeBean.orderReturn.quantity}" /></td> + </tr> + </tbody> + </table> + </ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/portfolio.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/portfolio.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/portfolio.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/portfolio.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,83 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:s="http://stonehenge.apache.com/jsf"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Portfolio Information + </ui:define> + <ui:define name="body"> + <c:if test="#{!empty portfolioBean.closedOrdersReturn}"> + <ui:include src="alertInfo.jsf" /> + </c:if> + <table class="table-outer" cellspacing="0" align="center"> + <thead> + <tr> + <th>Holding ID</th> + <th>Purchase Date</th> + <th>Symbol</th> + <th>Quantity</th> + <th>Purchase Price</th> + <th>Current Price</th> + <th>Purchase Basis</th> + <th>Market Value</th> + <th>Gain(Loss)</th> + <th>Trade</th> + </tr> + </thead> + <tbody> + <ui:repeat value="#{userBean.holdingInfo.holdingsReturn}" var="holdingData"> + <tr> + <td><h:outputText value="#{holdingData.holdingID}" /></td> + <td><h:outputText value="#{holdingData.purchaseDate.time}"> + <f:convertDateTime pattern="#{accountBean.dateFormat}" /> + </h:outputText></td> + <td> + + <form action="quotes.faces" method="post"><input + type="hidden" name="SYMBOLS" value="#{holdingData.quoteID}" /> <input + type="submit" name="GETQUOTE" value="#{holdingData.quoteID}"></input> + </form> + </td> + <td class="currency"><h:outputText + value="#{holdingData.quantity}" /></td> + <td class="currency"><s:currency + value="#{holdingData.purchasePrice}" /></td> + <td class="currency"><h:outputText + value="#{userBean.holdingInfo.quoteInfo[holdingData.quoteID]}" /></td> + <td class="currency"><s:currency + value="#{holdingData.purchasePrice*holdingData.quantity}" /></td> + <td class="currency"><s:currency + value="#{holdingData.quantity*userBean.holdingInfo.quoteInfo[holdingData.quoteID]}" /></td> + <td class="currency"><s:price + value="#{(userBean.holdingInfo.quoteInfo[holdingData.quoteID]-holdingData.purchasePrice)*holdingData.quantity}" /></td> + <td class="currency"> + <h:form><input + type="hidden" name="holdingId" value="#{holdingData.holdingID}"></input><input + type="hidden" name="quantity" value="#{holdingData.quantity}"></input><input + type="hidden" name="symbol" value="#{holdingData.quoteID}"></input><input + type="hidden" name="type" value="Sell" /><h:commandButton + value="Sell" action="#{tradeBean.submitToConfirm}" /></h:form> + </td> + </tr> + </ui:repeat> + + <tr class="total"> + <td colspan="6">Totals</td> + <td class="currency"><s:currency + value="#{userBean.holdingInfo.purchaseBasis}" /></td> + <td class="currency"><s:currency + value="#{userBean.holdingInfo.totalHoldings}" /></td> + <td><s:price value="#{userBean.holdingInfo.gain}"/></td> + <td></td> + </tr> + </tbody> + </table> + <ui:include src="getQuote.jsf" /> + </ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/quotes.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/quotes.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/quotes.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/quotes.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,56 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:c="http://java.sun.com/jstl/core" + xmlns:s="http://stonehenge.apache.com/jsf"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Stock Quotes + </ui:define> + <ui:define name="body"> + <c:if test="#{!empty portfolioBean.closedOrdersReturn}"> + <ui:include src="alertInfo.jsf" /> + </c:if> + <table class="table-outer" cellspacing="0" align="center"> + <thead> + <tr> + <th>Symbol</th> + <th>Company</th> + <th>Volume</th> + <th>Price Range</th> + <th>Open Price</th> + <th>Current Price</th> + <th>Gain(Loss)</th> + <th>Trade</th> + </tr> + </thead> + <tbody> + <ui:repeat value="#{quoteBean.quoteBeanReturns}" + var="quoteBeanReturn"> + <tr> + <td><h:outputText value="#{quoteBeanReturn.symbol}" /></td> + <td><h:outputText value="#{quoteBeanReturn.companyName}" /></td> + <td><h:outputText value="#{quoteBeanReturn.volume}" /></td> + <td><h:outputText + value="\$#{quoteBeanReturn.low}-\$#{quoteBeanReturn.high}" /></td> + <td><s:currency value="#{quoteBeanReturn.open}" /></td> + <td><s:currency value="#{quoteBeanReturn.price}" /></td> + <td><s:price value="#{quoteBeanReturn.change}"/></td> + <td><h:form> + <input type="hidden" name="quantity" value="#{quoteBeanReturn.volume}" /> + <input type="hidden" name="symbol" value="#{quoteBeanReturn.symbol}" /> + <input type="hidden" name="price" value="#{quoteBeanReturn.price}" /> + <input type="hidden" name="type" value="Buy" /> + <h:commandButton value="Buy" action="#{tradeBean.submitToConfirm}"/> + </h:form></td> + </tr> + </ui:repeat> + </tbody> + </table> + <ui:include src="getQuote.jsf" /> + </ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/register.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/register.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/register.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/register.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,72 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Register +</ui:define> + <ui:define name="body"> + <h:messages style="color: red" align="center" /> + <table class="profile" cellspacing="0" width="100%"> + <thead> + <tr> + <th>Create Account Profile:</th> + </tr> + </thead> + <tbody> + <tr> + <td><h:form id="AccountProfile"> + <table cellspacing="0" align="center"> + <tr> + </tr> + <tr> + <td>Requested ID:</td> + <td><h:inputText id="UserID" size="25" + value="#{registerBean.userId}" required="true" /></td> + <td>Opening Balance:</td> + <td><h:inputText id="OpeningBalance" + value="#{registerBean.openBalance}" size="25" required="true" /></td> + </tr> + <tr> + <td>Full Name:</td> + <td><h:inputText id="FullName" size="25" + value="#{registerBean.fullName}" required="true" /></td> + <td>Email Address:</td> + <td><h:inputText id="Email" size="25" + value="#{registerBean.email}" required="true" /></td> + </tr> + <tr> + <td>Address:</td> + <td><h:inputText id="Address" size="25" + value="#{registerBean.address}" required="true" /></td> + <td>Password:</td> + <td><h:inputSecret id="Password" size="25" + value="#{registerBean.password}" required="true" /></td> + </tr> + + <tr> + <td>Credit Card:</td> + <td><h:inputText size="25" id="CreditCard" + value="#{registerBean.creditCard}" required="true" /></td> + <td>Confirm Password:</td> + <td><h:inputSecret id="ConPASSWORD" validator="#{registerBean.passwordValidate}" required="true" + value="#{registerBean.confPassword}" + size="25" /></td> + </tr> + <tr> + <td colspan="4" class="button"><h:commandButton + class="button" title="submit" value="Register" + action="#{registerBean.register}" /></td> + </tr> + </table> + </h:form></td> + </tr> + </tbody> + </table> + </ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/registerSuccess.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/registerSuccess.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/registerSuccess.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/registerSuccess.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,21 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Register +</ui:define> + <ui:define name="body"> + <p style="color: red" align="center" > + <h:outputText value="Registration was successful, please " /> + <h:outputLink value="login.jsf" > + <h:outputText value="login." /> + </h:outputLink> + </p> +</ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/template.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/template.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/template.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/template.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,47 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets"> +<head> +<title>Apache Stonehenge StockTrader Welcome</title> +<link rel="stylesheet" type="text/css" href="css/style.css" /> +</head> + +<body> +<div id="content"> +<div id="header"> +<div class="logo"><img src="images/logo.png" /></div> +</div> +<div id="header-links"> +<table> + <tr> + <td><a href="welcome.jsf">Welcome</a></td> + <td><a href="home.faces">Home</a></td> + <td><a href="account.faces">Account</a></td> + <td><a href="portfolio.faces">Portfolio</a></td> + <td><a href="quotes.faces">Quotes/Trade</a></td> + <td><a href="glossary.jsf">Glossary</a></td> + <td><a href="configService.jsf">Config</a></td> + <td><a href="login.jsf">Login/Logout</a></td> + </tr> +</table> +</div> + +<div id="middle"> +<div class="main-title"> +<h1><ui:insert name="title">Welcome!</ui:insert></h1> +<script type="text/javascript"> + var thisdate = new Date(); + document.writeln(thisdate.toLocaleString()); +</script></div> + +<ui:insert name="body"></ui:insert></div> + +<div id="footer"> +<div style="float: right;">Powered by <a + href="https://metro.dev.java.net/"> <img align="top" + src="images/powered-by-logo.gif" + style="margin-top: -3px; margin-left: 0px;" /> </a></div> +</div> +</div> +</body> +</html> \ No newline at end of file Added: incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/welcome.xhtml URL: http://svn.apache.org/viewvc/incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/welcome.xhtml?rev=801507&view=auto ============================================================================== --- incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/welcome.xhtml (added) +++ incubator/stonehenge/contrib/stocktrader/metro/trader_client/web/welcome.xhtml Thu Aug 6 03:41:14 2009 @@ -0,0 +1,64 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:h="http://java.sun.com/jsf/html"> +<body> +<ui:composition template="/template.xhtml"> + <ui:define name="title"> + Welcome! +</ui:define> + <ui:define name="body"> + <table> + <tr> + <td> + <div class="left"> + <p>This application is an end-to-end sample application for JSF technologies. It is a service-oriented application + written using JSF that utilize <a + href="https://metro.dev.java.net/">SUN METRO</a>.</p> + + <p>The application also offers a rich set of interoperability + options with other platforms. This includes interoperability with + Java-based application servers and <a + href="http://wso2.org/projects/wsf/php">WSO2 + WSF/PHP</a> sample application, and <a + href="http://msdn.microsoft.com/en-us/netframework/bb499684.aspx">Microsoft + .NET Stocktrader</a> sample application. The application offers an + excellent opportunity for developers to learn about JSF and + building interoperable, service-oriented applications.</p> + + <p>For more details, check <a + href="http://incubator.apache.org/stonehenge">Apache Stonehenge + home page</a>.</p> + + </div> + </td> + + <td> + <div class="right"> + <h3>Sample of Technologies Demonstrated</h3> + <table> + <tbody> + <tr> + <td> + <ul> + <li>Service-oriented, n-tier design with PHP, Java and .NET</li> + + <li>Clean separation of UI, business services and DB access</li> + <li>SUN Web Services Framework Metro For Java</li> + <li>SUN Web Services Application Server Glassfish</li> + <li>Interoperability with .NET</li> + <li>Loosely-coupled, message-oriented design</li> + </ul> + + </td> + </tr> + </tbody> + </table> + </div> + </td> + </tr> + </table> + </ui:define> +</ui:composition> +</body> +</html> \ No newline at end of file