summaryrefslogtreecommitdiffstats
path: root/java/sca
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2008-07-03 01:03:50 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2008-07-03 01:03:50 +0000
commit2bd12eeb21785924346b1114272c9306a2dc7b25 (patch)
tree03dec87f514ede7ea7a0593f7d94934f4d0a0d4e /java/sca
parent71961dd90a5eca97bf70f5ffcc0d9d713f616040 (diff)
Simple picture gallery just showing list of pictures from a album stored as project resource
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@673556 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca')
-rw-r--r--java/sca/samples/photo-gallery/src/main/java/launch/Launch.java2
-rw-r--r--java/sca/samples/photo-gallery/src/main/java/services/Album.java29
-rw-r--r--java/sca/samples/photo-gallery/src/main/java/services/AlbumImpl.java95
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery.html57
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00368.jpgbin0 -> 32808 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00369.jpgbin0 -> 35980 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00370.jpgbin0 -> 44614 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00371.jpgbin0 -> 40745 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00373.jpgbin0 -> 76470 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00375.jpgbin0 -> 34834 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00376.jpgbin0 -> 38797 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00377.jpgbin0 -> 35776 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00378.jpgbin0 -> 35248 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00379.jpgbin0 -> 55042 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00380.jpgbin0 -> 55236 bytes
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/photo-gallery.composite41
-rw-r--r--java/sca/samples/photo-gallery/src/main/resources/uiservices/gallery.html141
17 files changed, 194 insertions, 171 deletions
diff --git a/java/sca/samples/photo-gallery/src/main/java/launch/Launch.java b/java/sca/samples/photo-gallery/src/main/java/launch/Launch.java
index 858fdb6bf2..e1a96f9309 100644
--- a/java/sca/samples/photo-gallery/src/main/java/launch/Launch.java
+++ b/java/sca/samples/photo-gallery/src/main/java/launch/Launch.java
@@ -25,7 +25,7 @@ public class Launch {
public static void main(String[] args) throws Exception {
System.out.println("Starting ...");
SCADomain scaDomain = SCADomain.newInstance("photo-gallery.composite");
- System.out.println("store.composite ready for big business !!!");
+ System.out.println("photo.gallery.composite ready for big business !!!");
System.in.read();
System.out.println("Stopping ...");
scaDomain.close();
diff --git a/java/sca/samples/photo-gallery/src/main/java/services/Album.java b/java/sca/samples/photo-gallery/src/main/java/services/Album.java
new file mode 100644
index 0000000000..5257d0e703
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/java/services/Album.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+package services;
+
+import org.osoa.sca.annotations.Remotable;
+
+@Remotable
+public interface Album {
+
+ public String[] getPictures();
+
+}
diff --git a/java/sca/samples/photo-gallery/src/main/java/services/AlbumImpl.java b/java/sca/samples/photo-gallery/src/main/java/services/AlbumImpl.java
new file mode 100644
index 0000000000..dd2b086e29
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/java/services/AlbumImpl.java
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+package services;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+
+public class AlbumImpl implements Album {
+ private String gallery;
+ private String album;
+ private String location;
+ private List<String> pictures = new ArrayList<String>();
+
+ @Property
+ public void setGallery(String gallery) {
+ this.gallery = gallery;
+ this.location = null;
+ }
+ @Property
+ public void setAlbum(String album) {
+ this.album = album;
+ this.location = null;
+ }
+
+ protected String getLocation() {
+ if (location == null) {
+ location = gallery + "/" + album + "/";
+ }
+ return location;
+
+ }
+
+ @Init
+ public void init() {
+ try {
+ URL albumURL = this.getClass().getClassLoader().getResource(getLocation());
+ if(albumURL != null) {
+ File album = new File(albumURL.toURI());
+ if (album.isDirectory() && album.exists()) {
+ String[] listPictures = album.list(new ImageFilter(".jpg"));
+ for(String image : listPictures) {
+ image = getLocation() + image;
+ pictures.add(image);
+ }
+ }
+ }
+ } catch (Exception e) {
+ // FIXME: ignore for now
+ e.printStackTrace();
+ }
+ }
+
+ public String[] getPictures() {
+ String[] pictureArray = new String[pictures.size()];
+ pictures.toArray(pictureArray);
+ return pictureArray;
+ }
+
+ /**
+ * Inner fileFilter class
+ */
+ private class ImageFilter implements FilenameFilter {
+ String afn;
+ ImageFilter(String afn) { this.afn = afn; }
+ public boolean accept(File dir, String name) {
+ // Strip path information:
+ String f = new File(name).getName();
+ return f.indexOf(afn) != -1;
+ }
+ } ///:~
+
+}
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery.html b/java/sca/samples/photo-gallery/src/main/resources/gallery.html
new file mode 100644
index 0000000000..2a7b32f6ed
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery.html
@@ -0,0 +1,57 @@
+<!--
+ * 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>Photo Gallery</title>
+
+<script type="text/javascript" src="gallery.js"></script>
+
+<script language="JavaScript">
+
+ //@Reference
+ var album = new Reference("album");
+
+ var albumItems;
+
+ function album_getResponse(items) {
+ var albumPictures = "";
+ for (var i=0; i<items.length; i++) {
+ albumPictures += '<img src="' + items[i] + '"> <br>';
+ }
+ document.getElementById('album').innerHTML=albumPictures;
+ albumItems = items;
+ }
+
+
+ function init() {
+ album.getPictures(album_getResponse);
+ }
+
+</script>
+
+</head>
+
+<body onload="init()">
+<h1>Photo Gallery</h1>
+ <div id="gallery">
+ <div id="album" ></div>
+ <br>
+ </div>
+</body>
+</html>
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00368.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00368.jpg
new file mode 100644
index 0000000000..9437b321e2
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00368.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00369.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00369.jpg
new file mode 100644
index 0000000000..07f37ec505
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00369.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00370.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00370.jpg
new file mode 100644
index 0000000000..2193784271
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00370.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00371.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00371.jpg
new file mode 100644
index 0000000000..1532ee2c1b
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00371.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00373.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00373.jpg
new file mode 100644
index 0000000000..17ffd73aec
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00373.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00375.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00375.jpg
new file mode 100644
index 0000000000..19e9ec37df
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00375.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00376.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00376.jpg
new file mode 100644
index 0000000000..022416dbce
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00376.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00377.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00377.jpg
new file mode 100644
index 0000000000..c78a974714
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00377.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00378.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00378.jpg
new file mode 100644
index 0000000000..a98070925a
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00378.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00379.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00379.jpg
new file mode 100644
index 0000000000..dc83889116
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00379.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00380.jpg b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00380.jpg
new file mode 100644
index 0000000000..0e33548135
--- /dev/null
+++ b/java/sca/samples/photo-gallery/src/main/resources/gallery/boston/dsc00380.jpg
Binary files differ
diff --git a/java/sca/samples/photo-gallery/src/main/resources/photo-gallery.composite b/java/sca/samples/photo-gallery/src/main/resources/photo-gallery.composite
index 4f4a9d2e3d..0bb3c4b4db 100644
--- a/java/sca/samples/photo-gallery/src/main/resources/photo-gallery.composite
+++ b/java/sca/samples/photo-gallery/src/main/resources/photo-gallery.composite
@@ -22,43 +22,26 @@
targetNamespace="http://photo-gallery"
name="photo-gallery">
- <component name="Store">
- <t:implementation.widget location="uiservices/store.html"/>
+ <component name="Gallery">
+ <t:implementation.widget location="gallery.html"/>
<service name="Widget">
- <t:binding.http uri="/store"/>
+ <t:binding.http uri="/gallery"/>
</service>
- <reference name="catalog" target="Catalog">
- <t:binding.jsonrpc/>
- </reference>
- <reference name="shoppingCart" target="ShoppingCart/Cart">
- <t:binding.atom/>
- </reference>
- <reference name="shoppingTotal" target="ShoppingCart/Total">
+ <reference name="album" target="Album">
<t:binding.jsonrpc/>
</reference>
</component>
- <component name="Catalog">
- <implementation.java class="services.FruitsCatalogImpl"/>
- <property name="currencyCode">USD</property>
- <service name="Catalog">
+ <component name="Album">
+ <implementation.java class="services.AlbumImpl"/>
+ <property name="gallery">gallery</property>
+ <property name="album">boston</property>
+ <service name="Album">
<t:binding.jsonrpc/>
</service>
- <reference name="currencyConverter" target="CurrencyConverter"/>
</component>
-
- <component name="ShoppingCart">
- <implementation.java class="services.ShoppingCartImpl"/>
- <service name="Cart">
- <t:binding.atom uri="/ShoppingCart/Cart"/>
- </service>
- <service name="Total">
- <t:binding.jsonrpc/>
- </service>
+
+ <component name="GalleryPictures">
+ <t:implementation.resource location="gallery"></t:implementation.resource>
</component>
-
- <component name="CurrencyConverter">
- <implementation.java class="services.CurrencyConverterImpl"/>
- </component>
-
</composite>
diff --git a/java/sca/samples/photo-gallery/src/main/resources/uiservices/gallery.html b/java/sca/samples/photo-gallery/src/main/resources/uiservices/gallery.html
deleted file mode 100644
index 095570f949..0000000000
--- a/java/sca/samples/photo-gallery/src/main/resources/uiservices/gallery.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!--
- * 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>Store</title>
-
-<script type="text/javascript" src="store.js"></script>
-
-<script language="JavaScript">
-
- //@Reference
- var catalog = new Reference("catalog");
-
- //@Reference
- var shoppingCart = new Reference("shoppingCart");
-
- //@Reference
- var shoppingTotal = new Reference("shoppingTotal");
-
- var catalogItems;
-
- function catalog_getResponse(items) {
- var catalog = "";
- for (var i=0; i<items.length; i++) {
- var item = items[i].name + ' - ' + items[i].price;
- catalog += '<input name="items" type="checkbox" value="' +
- item + '">' + item + ' <br>';
- }
- document.getElementById('catalog').innerHTML=catalog;
- catalogItems = items;
- }
-
- function shoppingCart_getResponse(feed) {
- if (feed != null) {
- var entries = feed.getElementsByTagName("entry");
- var list = "";
- for (var i=0; i<entries.length; i++) {
- var content = entries[i].getElementsByTagName("content")[0];
- var name = content.getElementsByTagName("name")[0].firstChild.nodeValue;
- var price = content.getElementsByTagName("price")[0].firstChild.nodeValue;
- list += name + ' - ' + price + ' <br>';
- }
- document.getElementById("shoppingCart").innerHTML = list;
-
- if (entries.length != 0) {
- shoppingTotal.getTotal(shoppingTotal_getTotalResponse);
- }
- }
- }
-
- function shoppingTotal_getTotalResponse(total) {
- document.getElementById('total').innerHTML = total;
- }
-
- function shoppingCart_postResponse(entry) {
- shoppingCart.get("", shoppingCart_getResponse);
- }
-
- function addToCart() {
- var items = document.catalogForm.items;
- var j = 0;
- for (var i=0; i<items.length; i++)
- if (items[i].checked) {
- var entry = '<entry xmlns="http://www.w3.org/2005/Atom"><title>item</title><content type="text/xml">' +
- '<Item xmlns="http://services/">' +
- '<name xmlns="">' + catalogItems[i].name + '</name>' + '<price xmlns="">' + catalogItems[i].price + '</price>' +
- '</Item>' + '</content></entry>';
- shoppingCart.post(entry, shoppingCart_postResponse);
- items[i].checked = false;
- }
- }
- function checkoutCart() {
- document.getElementById('store').innerHTML='<h2>' +
- 'Thanks for Shopping With Us!</h2>'+
- '<h2>Your Order</h2>'+
- '<form name="orderForm">'+
- document.getElementById('shoppingCart').innerHTML+
- '<br>'+
- document.getElementById('total').innerHTML+
- '<br>'+
- '<br>'+
- '<input type="submit" value="Continue Shopping">'+
- '</form>';
- shoppingCart.del("", null);
- }
- function deleteCart() {
- shoppingCart.del("", null);
- document.getElementById('shoppingCart').innerHTML = "";
- document.getElementById('total').innerHTML = "";
- }
-
- function init() {
- catalog.get(catalog_getResponse);
- shoppingCart.get("", shoppingCart_getResponse);
- }
-
-</script>
-
-</head>
-
-<body onload="init()">
-<h1>Store</h1>
- <div id="store">
- <h2>Catalog</h2>
- <form name="catalogForm">
- <div id="catalog" ></div>
- <br>
- <input type="button" onClick="addToCart()" value="Add to Cart">
- </form>
-
- <br>
-
- <h2>Your Shopping Cart</h2>
- <form name="shoppingCartForm">
- <div id="shoppingCart"></div>
- <br>
- <div id="total"></div>
- <br>
- <input type="button" onClick="checkoutCart()" value="Checkout">
- <input type="button" onClick="deleteCart()" value="Empty">
- <a href="../ShoppingCart/Cart/">(feed)</a>
- </form>
- </div>
-</body>
-</html>