summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-05-27 10:12:24 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-05-27 10:12:24 +0000
commit46576bda96cf80886ed8bd811e79dee9b1e63f4c (patch)
treeb8ac5e49c7c999f9a03425cab3e844a0a24e6d6a /sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main
parentd3ab2b28493cecc4092814c3fd6873d74d1018d8 (diff)
Move the travel sample tutorial from 2.x trunk to contrib as its not in the build, doesn't build, and no one is actively working on it. (and even if they were, i wonder if this should be released seperately like the 1.x version and so not in the trunk tree anyway
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@948750 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main')
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml28
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite58
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.html399
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.odgbin0 -> 11880 bytes
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.pngbin0 -> 16554 bytes
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/style.css135
6 files changed, 620 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml
new file mode 100644
index 0000000000..96ff425edb
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:scatours="http://tuscanyscatours.com/">
+ <deployable composite="scatours:fullapp-ui" />
+ <import.java package="com.tuscanyscatours" />
+ <import.java package="com.tuscanyscatours.impl" />
+ <import.java package="com.tuscanyscatours.shoppingcart" />
+ <import.java package="com.tuscanyscatours.travelcatalog" />
+ <import.java package="com.tuscanyscatours.tripbooking" />
+</contribution>
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite
new file mode 100644
index 0000000000..34c4d66059
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://tuscanyscatours.com/"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ name="fullapp-ui">
+
+ <component name="SCAToursUserInterface">
+ <tuscany:implementation.widget location="scatours.html"/>
+ <service name="Widget">
+ <tuscany:binding.http uri="/scatours"/>
+ </service>
+ <reference name="scaToursCatalog" target="SCATours/SCAToursSearch">
+ <tuscany:binding.jsonrpc/>
+ </reference>
+ <reference name="scaToursBooking" target="SCATours/SCAToursBooking">
+ <tuscany:binding.jsonrpc/>
+ </reference>
+ <reference name="scaToursCart" target="SCATours/SCAToursCart">
+ <tuscany:binding.jsonrpc/>
+ </reference>
+ </component>
+
+ <component name="SCATours">
+ <implementation.java class="com.tuscanyscatours.impl.SCAToursImpl"/>
+ <service name="SCAToursSearch">
+ <tuscany:binding.jsonrpc/>
+ </service>
+ <service name="SCAToursBooking">
+ <tuscany:binding.jsonrpc/>
+ </service>
+ <service name="SCAToursCart">
+ <tuscany:binding.jsonrpc/>
+ </service>
+ <reference name="travelCatalogSearch" target="TravelCatalog/TravelCatalogSearch"/>
+ <reference name="tripBooking" target="TripBooking"/>
+ <reference name="cartInitialize" target="ShoppingCart/CartInitialize"/>
+ <reference name="cartCheckout" target="ShoppingCart/CartCheckout"/>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.html b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.html
new file mode 100644
index 0000000000..52479c1cde
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.html
@@ -0,0 +1,399 @@
+<!--
+ * 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.
+-->
+<html>
+<head>
+<title>SCA Tours</title>
+
+<link rel="stylesheet" type="text/css" href="style.css" />
+
+<script type="text/javascript" src="scatours.js"></script>
+
+<script language="JavaScript">
+
+ //@Reference
+ var scaToursCatalog = new tuscany.sca.Reference("scaToursCatalog");
+
+ //@Reference
+ var scaToursBooking = new tuscany.sca.Reference("scaToursBooking");
+
+ //@Reference
+ var scaToursCart = new tuscany.sca.Reference("scaToursCart");
+
+ //local state
+ var packagedItems;
+ var bespokeItems;
+ var cartId;
+
+ //the constructor for trip leg beans
+ function TripLegType(id,
+ fromLocation,
+ toLocation,
+ fromDate,
+ toDate,
+ noOfPeople) {
+ this.id = id;
+ this.fromLocation = fromLocation;
+ this.toLocation = toLocation;
+ this.fromDate = fromDate;
+ this.toDate = toDate;
+ this.noOfPeople = noOfPeople;
+ }
+
+ function getTripLeg(){
+ return new TripLegType(cartId,
+ document.searchForm.fromLocation.value,
+ document.searchForm.toLocation.value,
+ document.searchForm.fromDate.value,
+ document.searchForm.toDate.value,
+ document.searchForm.noOfPeople.value);
+ }
+
+ //the constructor for bespoke trip beans
+ function TripType() {
+ this.id = cartId;
+ this.type = "Bespoke";
+ this.tripItems = new Array();
+ // json databinding can't tolerate having a class hint set as the
+ // databinding transformer is not in the right classloader to load
+ // the class pointed to by the hint
+ //this.javaClass = "scatours.common.TripItem";
+ }
+
+ function getTrip(){
+ return new TripType();
+ }
+
+ // remove class hint from the trip object
+ // can also be used to limit the amount of
+ // data returned to the server
+ function copyTrip(trip){
+ var tripCopy = new TripType();
+
+ tripCopy.id = trip.id;
+ tripCopy.tripId = trip.tripId;
+ tripCopy.type = trip.type;
+ tripCopy.name = trip.name;
+ tripCopy.description = trip.description;
+ tripCopy.location = trip.location;
+ tripCopy.fromDate = trip.fromDate;
+ tripCopy.toDate = trip.toDate;
+ tripCopy.price = trip.price;
+ tripCopy.currency = trip.currency;
+ tripCopy.link = trip.link;
+
+ return tripCopy;
+ }
+
+ function init() {
+ try {
+ newCart();
+ }
+ catch(e) {
+ alert(e);
+ }
+ }
+
+ function reset() {
+ document.getElementById('packagedTripItems').innerHTML = "";
+ document.getElementById('bespokeTripItems').innerHTML = "";
+ document.getElementById('cartItems').innerHTML = "";
+ document.getElementById('cartPrice').innerHTML = "";
+ packagedItems = new Array();
+ bespokeItems = new Array();
+ }
+
+ function newCart() {
+ scaToursCart.newCart(newCart_response);
+ reset();
+ }
+
+ function newCart_response(newCartId, exception) {
+ if(exception){
+ alert(exception.javaStack);
+ return;
+ }
+ cartId = newCartId
+ }
+
+ function searchTravelCatalog() {
+ scaToursCatalog.search(getTripLeg(), search_response);
+ }
+
+ function search_response(items, exception) {
+ if(exception){
+ alert(exception.javaStack);
+ return;
+ }
+
+ var packagedHTML = '<h3>Packaged Trip Items</h3>';
+ packagedHTML += '<table border="0">';
+ packagedHTML += '<tr>';
+ packagedHTML += '<td>Select</td><td>Name</td><td>Description</td><td>Location</td><td>From - To</td><td>Price</td>';
+ packagedHTML += '</tr>';
+
+ var bespokeHTML = '<h3>Bespoke Trip Items</h3>';
+ bespokeHTML += '<table border="0">';
+ bespokeHTML += '<tr>';
+ bespokeHTML += '<td>Select</td><td>Name</td><td>Description</td><td>Location</td><td>From - To</td><td>Price</td>';
+ bespokeHTML += '</tr>';
+
+ for (var i=0; i<items.length; i++) {
+ if (items[i].type == "Trip") {
+ packagedHTML += '<tr>';
+ packagedHTML += '<td><input onClick="processPackagedSelection()" name="packagedTripItemSelection" type="checkbox" value="' + items[i].id + '"></td>'
+ packagedHTML += '<td>' + items[i].name + '</td>';
+ packagedHTML += '<td>' + items[i].description + '</td>';
+ packagedHTML += '<td>' + items[i].location + '</td>';
+ packagedHTML += '<td>' + items[i].fromDate + ' - ' + items[i].toDate +'</td>';
+ packagedHTML += '<td>' + items[i].price + ' ' + items[i].currency + '</td>';
+ packagedHTML += '</tr>';
+ packagedItems.push(items[i]);
+ } else {
+ bespokeHTML += '<tr>';
+ bespokeHTML += '<td><input onClick="processBespokeSelection()" name="bespokeTripItemSelection" type="checkbox" value="' + items[i].id + '"></td>'
+ bespokeHTML += '<td>' + items[i].name + '</td>';
+ bespokeHTML += '<td>' + items[i].description + '</td>';
+ bespokeHTML += '<td>' + items[i].location + '</td>';
+ bespokeHTML += '<td>' + items[i].fromDate + ' - ' + items[i].toDate +'</td>';
+ bespokeHTML += '<td>' + items[i].price + ' ' + items[i].currency + '</td>';
+ bespokeHTML += '</tr>';
+ bespokeItems.push(items[i]);
+ }
+ }
+
+ packagedHTML += '</table>';
+ packagedHTML += '<input type="button" onClick="bookPackagedTrip()" value="Book Packaged Trip">';
+
+ bespokeHTML += '<tr><td/><td/><td>Total Price</td><td/><td/><td><div id="bespokeTripPrice"></div> </td></tr>';
+ bespokeHTML += '</table>';
+ bespokeHTML += '<input type="button" onClick="bookBespokeTrip()" value="Book Bespoke Trip">';
+
+ if (packagedItems.length > 0){
+ document.getElementById('packagedTripItems').innerHTML = packagedHTML;
+ }
+
+ if (bespokeItems.length > 0){
+ document.getElementById('bespokeTripItems').innerHTML = bespokeHTML;
+ }
+ }
+
+ function processPackagedSelection() {
+ // do nothing at the moment
+ }
+
+ function processBespokeSelection() {
+ // calculate total price
+ var items = document.getElementsByName("bespokeTripItemSelection");
+ var totalPrice = 0.0;
+ for (var i=0; i<items.length; i++) {
+
+ // find the items that are checked
+ if (items[i].checked == true) {
+ totalPrice = totalPrice + bespokeItems[i].price;
+ }
+ }
+ document.getElementById('bespokeTripPrice').innerHTML = totalPrice + ' ' + bespokeItems[0]. currency;
+ }
+
+ function bookPackagedTrip() {
+ // find first selected trip item
+ var trip = null;
+ var items = document.getElementsByName("packagedTripItemSelection");
+ for (var i=0; i<items.length; i++) {
+
+ // find the items that are checked
+ if (items[i].checked == true) {
+ trip = copyTrip(packagedItems[i]);
+ break;
+ }
+ }
+
+ if (trip != null) {
+ // book trip
+ scaToursBooking.bookTrip(cartId, trip);
+
+ // reset the display
+ reset();
+
+ // re-populate the cart with all entries
+ getCartTrips();
+ } else {
+ alert ("Please select a trip")
+ }
+ }
+
+ function bookBespokeTrip() {
+ // create a trip object
+ var trip = getTrip();
+
+ // add selected trip items to trip
+ var items = document.getElementsByName("bespokeTripItemSelection");
+ for (var i=0; i<items.length; i++) {
+
+ // find the items that are checked
+ if (items[i].checked == true) {
+ trip.tripItems.push(copyTrip(bespokeItems[i]));
+ }
+ }
+
+ if (trip.tripItems.length > 0) {
+ // book trip
+ scaToursBooking.bookTrip(cartId, trip);
+
+ // reset the display
+ reset();
+
+ // re-populate the cart with all entries
+ getCartTrips();
+ } else {
+ alert ("Please select some trip items!")
+ }
+ }
+
+ function getCartTrips() {
+ scaToursCart.getTrips(cartId, getCartTrips_response);
+ }
+
+ function getCartTrips_response(trips, exception) {
+ if(exception){
+ alert(exception.javaStack);
+ return;
+ }
+ var itemsHTML = '';
+ var totalPrice = 0.0;
+ var currency = '?';
+
+ for (var x=0; x<trips.length; x++){
+ itemsHTML += '<h3>Trip - ' + trips[x].id + '</h3>';
+ itemsHTML += '<table border="0">';
+ itemsHTML += '<tr>';
+ itemsHTML += '<td>Booking Ref</td><td>Name</td><td>Description</td><td>Location</td><td>From - To</td><td>Price</td>';
+ itemsHTML += '</tr>';
+
+ if (trips[x].type == "Trip") {
+ itemsHTML += '<tr>';
+ itemsHTML += '<td>' + trips[x].bookingCode + '</td>';
+ itemsHTML += '<td>' + trips[x].name + '</td>';
+ itemsHTML += '<td>' + trips[x].description + '</td>';
+ itemsHTML += '<td>' + trips[x].location + '</td>';
+ itemsHTML += '<td>' + trips[x].fromDate + ' - ' + trips[x].toDate +'</td>';
+ itemsHTML += '<td>' + trips[x].price + ' ' + trips[x].currency + '</td>';
+ itemsHTML += '</tr>';
+ if (totalPrice == 0.0) {
+ currency = trips[x].currency;
+ }
+ totalPrice = totalPrice + trips[x].price;
+
+ } else {
+ var tripItems = trips[x].tripItems;
+
+ for (var i=0; i<tripItems.length; i++) {
+ itemsHTML += '<tr>';
+ itemsHTML += '<td>' + tripItems[i].bookingCode + '</td>';
+ itemsHTML += '<td>' + tripItems[i].name + '</td>';
+ itemsHTML += '<td>' + tripItems[i].description + '</td>';
+ itemsHTML += '<td>' + tripItems[i].location + '</td>';
+ itemsHTML += '<td>' + tripItems[i].fromDate + ' - ' + tripItems[i].toDate +'</td>';
+ itemsHTML += '<td>' + tripItems[i].price + ' ' + tripItems[i].currency + '</td>';
+ itemsHTML += '</tr>';
+ if (totalPrice == 0.0) {
+ currency = tripItems[i].currency;
+ }
+ totalPrice = totalPrice + tripItems[i].price;
+ }
+ }
+
+ itemsHTML += '</table>';
+ }
+
+ document.getElementById('cartItems').innerHTML = itemsHTML;
+ document.getElementById('cartPrice').innerHTML = totalPrice + ' ' + currency;
+ }
+
+ function checkout() {
+ scaToursCart.checkout(cartId);
+
+ document.getElementById('packagedTripItems').innerHTML = "";
+ document.getElementById('bespokeTripItems').innerHTML = "";
+ document.getElementById('cartItems').innerHTML = "Thank you for shopping with SCA Tours";
+ document.getElementById('cartPrice').innerHTML = "";
+ searchResponseItems = null;
+ tripItems = null;
+ init();
+ }
+
+ function purchase() {
+ }
+
+</script>
+
+</head>
+
+<body onload="init()" background="">
+ <img src="scatours.png" border="0" />
+ <div id="scatours">
+ <form name="searchForm">
+ <h3>Search for trips, hotels, flights and cars</h3>
+ <br/>
+ <table border="0">
+ <tr>
+ <td>From Location:</td>
+ <td><input type="text" name="fromLocation" value="LGW"></td>
+ <td>To Location:</td>
+ <td><input type="text" name="toLocation" value="FLR"></td>
+ </tr>
+ <tr>
+ <td>Start Date:</td>
+ <td><input type="text" name="fromDate" value="06/12/09"></td>
+ <td>End Date:</td>
+ <td><input type="text" name="toDate" value="13/12/09"></td>
+ </tr>
+ <tr>
+ <td>Number of people:</td>
+ <td><select name="noOfPeople">
+ <option>1
+ <option selected>2
+ <option>3
+ <option>4
+ </select></td>
+ <td/>
+ <td/>
+ </tr>
+ </table>
+ <br/>
+ <input type="button" onClick="searchTravelCatalog()" value="Search">
+ </form>
+ <form name="packagedTripForm">
+ <div id="packagedTripItems"></div>
+ </form>
+ <form name="bespokeTripForm">
+ <div id="bespokeTripItems"></div>
+ </form>
+ <form name="cartForm">
+ <h3>Shopping Cart</h3>
+ <div id="cartItems"></div>
+ <br/>
+ Total Price: <div id="cartPrice"></div>
+ <br/>
+ <input type="button" onClick="checkout()" value="Checkout">
+ </form>
+ </div>
+
+</body>
+</html>
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.odg b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.odg
new file mode 100644
index 0000000000..8466377374
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.odg
Binary files differ
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.png b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.png
new file mode 100644
index 0000000000..563bf4ea91
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/scatours.png
Binary files differ
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/style.css b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/style.css
new file mode 100644
index 0000000000..6e17c2747b
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/fullapp-ui/src/main/resources/style.css
@@ -0,0 +1,135 @@
+/*
+ * 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.
+ */
+
+
+
+/*******************************************/
+
+p,table,li,h1,h2,h3
+{
+font-family: verdana, arial, 'sans serif';
+}
+
+p, h1, h2, h3, table, li, hr
+{
+margin-left: 10pt;
+}
+
+table
+{
+border-color: black;
+border-collapse: separate;
+border-spacing: 0px 1px;
+
+margin-right: 10pt;
+margin-left: 10pt;
+width: 800px;
+}
+
+.sourceDetailsTable
+{
+width: 600px;
+}
+
+tr, td
+{
+margin-left: 0pt;
+margin-right: 0pt;
+padding-left: 10pt;
+font-size: 90%;
+}
+
+p,li,th
+{
+font-size: 90%;
+margin-left: 10pt;
+}
+
+pre
+{
+margin-left: 10pt;
+}
+
+body
+{
+#ffffff;
+}
+
+h1,h2,h3,hr
+{
+color: firebrick;
+}
+
+a:link {COLOR: firebrick;}
+a:visited {COLOR: firebrick;}
+a:active {COLOR: navy;}
+
+.link
+{
+COLOR: firebrick;
+text-decoration: underline;
+}
+
+.clickable
+{
+cursor: pointer
+}
+
+.unread_title
+{
+font-weight: bold;
+}
+
+.read_title
+{
+font-weight: normal;
+}
+
+.summary
+{
+color: DimGrey;
+}
+
+.hidden
+{
+display: none;
+}
+
+.source_name
+{
+width: 600px;
+}
+
+.alert_text
+{
+width: 600px;
+}
+
+.alert_data
+{
+margin-left: 10px;
+width: 800px;
+height: 800px;
+}
+
+.source_0
+{
+background-color: LightGreen;
+}
+