Editing XML for SPRY Demos
Hello All,
Apologies in advance if this is a topic that has been covered
in the past. I searched through the previous posts, but didn't see
what I was looking for.
I am pretty new to SPRY, but have been able to put together a
few different apps that I think are interesting. These are mostly
based off of the demos I have seen on here such as the products
& photo gallery demos. After completing these though, the first
thing that pops in to my mind is how to build a backend edit tool
that would allow a potential client to edit the underlaying XML
that drives these apps without having to have me perform updates
for them. While looking around online I have seen several possible
solutions, but they all seem to have one problem or another.
What I am wondering is if there is an easy way to set up a
form that will edit/add/delete different entries in the XML files.
I would prefer to use PHP if at all possible. Of all the solutions
I have seen thus far, it seems that they all require me to use
either ASP, .NET, MYSQL or some other database system to extract
data from and create the XML dynamically. This is all well and
good, but I seem to have clients that have lots of different
hosting environments, so all of the above mentioned options seem to
be a bit to specialized for my needs. I'm really thinking that a
PHP solution that edits the XML file directly would be able to
cover more ground.
Is this even possible? Any direction that you could point me
in would be greatly appreciated!
Thanks!!!
Hello,
As Kin said in the above post, if you are using HTML data
sets InContexEditing would be great service to use.
But what if you don't.. I doesn't mean it cannot be done with
XML and databases. While i was Adobe MAX 2008 milano I spend my
spare time building an example that allows users easy CRUD with
Spry. You can also purchase a system but why do so if you already
have all tools you need :)
http://www.spry-it.com/examples/crud/
Its very early stage of this example but I got all basic
actions covered.
Inline edit that posts the changed data to a server file. And
places the returned server value inside your data set and updates
the data set. (updating the data set is not necessary but i just
added it to show that the data is actually updated inside the data
set to)
You can also delete rows and duplicate rows. I did not tie a
server side action to those yet. But it would be easy to do as I
did with inline Editing function. I fully commented the
SpryFullCRUD.js so it might help you out..
If you don't understand it feel free to ask questions, and I
hope it helps you out a bit. I will be writing a large article
about this and hope this example give you some inspiration.
Similar Messages
-
Generate Photo Gallery XML for Spry with Adobe Bridge
Wanted to post a note to what I've discovered/worked out -- a
way to
generate a very useful photos.xml from Adobe Bridge. If you
use Bridge,
it's very easy to add titles, keywords, ratings -- all kinds
of metadata
that one might use in a photo gallery. Here it is in case
anyone wants
to use.
The script is based on one I found at the Adobe User to User
Bridge
Scripting Forum for exporting a CSV file.
Note 1: this particular script doesn't take into account
CDATA that
might exist in your metadata, like ampersands in your title.
I've just
avoided using those, but you could also have the script write
out a
CDATA node for that info instead.
Note 2: this script does not write out a thumbpath,
thumbwidth or
thumbheight attribute. But usually the thumbpath is the exact
same as
the regular "path" attribute, and the thumbwidth and
thumbheight are
just a ratio of the regular "width" and "height" attributes.
I added a
bit of JS to the gallery.js file to calculate those before
growing the
thumbnail on rollover.
Personally I'm using keywords as categories and titles as
captions and
sorting by rating (stars in Bridge), so here's the .jsx file
I created.
The script should be saved to the folder "StartupScripts" in
Program
Files/Common Files/Adobe.
Hope this is useful for others too!
#target bridge
if (BridgeTalk.appName == "bridge" ) {
// create menu
var menu = MenuElement.create( "command", "Export XML File",
"at the end
of Tools");
menu.onSelect = function(m) {
try {
// ask for the name of the output file
var f = File.saveDialog("Export XML file to:", "XML
File:*.XML");
if ( !f ) { return; }
// open filestream and write first line
f.open("w");
f.writeln("\<photos\>\r\r");
// get a list of all the visible thumbnails in Bridge
var items = app.document.visibleThumbnails;
for (var i = 0; i < items.length; ++i) { var item = items
f.writeln("\<photo path = \"" + item.name + "\"" + "\r" +
"width = " +
"\""+ getWidth(item) + "\"" + "\r" + "height = " + "\""+
getHeight(item)
+ "\"" + "\r" + "rating = " + "\""+ getRating(item) + "\"" +
"\r" +
"categories = " + "\""+ listKeywords(item) + "\"" + "\r" +
"caption = "
+ "\""+ getTitle(item) + "\"" + " \>" + "\r" +
"\<\/photo\>\r\r" ); }
f.writeln("\<\/photos\>");
f.close();
} catch(e) {
function getTitle(tn) {
md = tn.metadata;
md.namespace = "
http://purl.org/dc/elements/1.1/";
var varTitle = md.title;
return varTitle;
function getWidth(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/tiff/1.0/"
var varWidth = md.ImageWidth;
return varWidth;
function getHeight(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/tiff/1.0/"
var varHeight = md.ImageLength;
return varHeight;
function getRating(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/xap/1.0/"
var varRating = md.Rating;
return varRating;
function listKeywords(tn) {
md = tn.metadata;
md.namespace = "
http://ns.adobe.com/photoshop/1.0/";
var Keywords = md.Keywords;
var varKeywords = "" ;
for ( var i = 0; i < Keywords.length; ++i ) { varKeywords
= varKeywords
+ Keywords + ","; }
return varKeywords;I updated the script so it exports an XML file from Bridge
with full
compatibility with the Spry Demo Photo Gallery, to use as
photos.xml.
It's at the same address:
http://www.imagicdigital.com/spry/bridge_export_xml.zip
To Use:
The script goes in the folder "StartupScripts" in Program
Files/Common
Files/Adobe.
Launch Bridge and browse to a folder that contains the files
you want in
your gallery -- the "source" folder, as it were.
Choose the menu command "Tools > Export XML for Spry
Gallery".
Type a name for your XML file in the Save dialog box, choose
a location,
and hit "Save".
In the dialog box that pops up, enter a max length/width for
your
thumbnails, in pixels. Some common sizes are "75" , "100" or
"125".
Hit "OK". You should see an alert pop up telling you "XML
file
successfully created!" -
O.k. i am a designer and i can see the benefit of spry big
time in my work flow. BIG TIME. But i have a client site i am
working on that has a bunch of data but its all in excel files.
Right now to make useful web pages out of it i am using web merge.
i can see using spry to remove my need or dependence on web merge
to create the web galleries forms from the data i have. What I
wanted to know is there any tools you guys have or can recommend to
get my data from excel (I currently export to csv format) to the
xml format that spry uses.
my excel data looks something like this.
picture | fragrance name | small bottle| medium bottle |
Large bottle| item number
also i use webmerge to populate data for a paypal form. is
there any way to do that on the fly also???
so the paypal code would be : <item name>fragrance name
<price> bottle size<item> Item: number right now i have
that data populating with field names from my csv. it replaces on
running the script. so i have one page which is a template and it
makes the 300 or so other pages from that. Now i know your thinking
um.. no we don't create pages automatically like that. Thats not
what i am trying to do i am trying to eliminate doing all those
pages. ..
I hope my rambling made sense.
-adamo.k, i dont understand xml very well...but i think i am
figuring it out. what i have done is turned my excel file into an
xml file with oxygen xml editor and i am trying to figure out how
to format it correctly so that spry can read it. once i get this
figured out i should be good. i am working with a much smaller file
only 16 records instead of the files i have for my client that
average 300 or so records -
Using external xml for spry menu help
Just started playing with DW CS3, I would like to know how to
insert a spry menu and get the xml data from an external file. Can
anyone point me at a suitable example or tutorial please?The video workshop has some great tutorials with spry.
http://www.adobe.com/designcenter/video_workshop/
Aram -
Spry Demos not working for IE7
When using IE 7 to view the Spry demos, like the
products/index.html which is supposed to display an interactive
data grid from xml based data, the page display the error "
Exception caught while loading products.xml: Access is
denied."Workaround - change IE 7 options NOT to use native
xmlhttprequest.when using local disk xml files.
Funny that IE7 gets kicked for following international
standards.
From my OReilly Javascript: the Definitive Guide...
xhr does not support URLs that use file://protocol - part of
the same-origin security
policy.
/sjhs -
Troubleshoot Main Image for spry photo gallery
Hello, I am modifying some spry files to see if I can get the
hang of it using my images. I have taken the photo gallery files
gallery.js
SpryData.js
SpryEffects.js
xpath.js
The folder structure contains images and thumbnails on the
root folder as well as the ap.css sheet and photos.xml
The page is
http://www.proximita.com/learning/index.html.
Since I only have 1 photo gallery (and I did the getting
started tutorial and worked fine I wanted to add the slideshow
effect in the spry demo functionality) I only have one xml doc and,
as mentioned, the both image folders and the css sheet are on the
root, and the all the js files are in an includes folder.
The thumbnails show up fine, but, the main image does not
show up at all. I am almost sure this is a bad reference somewhere
or a begginners mistake but I cant find it.
I did modify the gallery.js because it referenced 2 or three
variables (like dsPhotos and dsGalleries that are used for the demo
I only have dsGallery) and I cahnged all of the other refrences to
dsGallery.
I think I am having problems here:
function ShowCurrentImage()
var curRow = dsPhotos.getCurrentRow();
SetMainImage("galleries/" +
dsGalleries.getCurrentRow()["@base"] + "images/" + curRow["@path"],
curRow["@width"], curRow["@height"], "tn" + curRow["ds_RowID"]);
you can check out the whole code here:
http://proximita.com/learning/includes/gallery.js
Im unconcerned with appearance for the moment, and would just
like to see the main image and the slideshow functionality.
If you can help, please do. Thanks, Mario.yes, I suspect that is because the tutorial talks about
building this from scratch and uses that name for the "thumbnails"
div rather than what they actually use in the demo files...
confusing, to say the least.
It would be nice if there were a simple document with demo
files that didn't include other stuff unrelated to JUST the slide
show (gallery)... and if the whole layout were more simple,
css-layout-wise...
or, if the demo files were commented with what each bit is
for and how to modify it.
quote:
Originally posted by:
Dragos GEORGITA
Hi Mario,
I took a look at your sample and I've noticed you change the
ID of the container that holds the thumbnails (it was called:
"thumbnails". now it's "thumbContainer").
You need to open gallery.js and change the observer to point
to the new container:
Change
Spry.Data.Region.addObserver("thumbnails", function(nType,
notifier, data) {
To
Spry.Data.Region.addObserver("
thumbContainer", function(nType, notifier, data) {
Regards,
Dragos -
MX 6 - prob generating xml for gallery example
See
http://coolabah.com/spry/demos/gallery/xml.cfm
I have MX 6 and think this is a problem.
I can generate what looks like xml in the browser, but when I
try to save it to a file I get this sort of output for the above,
<style>
table.cfdump_wddx,
table.cfdump_xml,
table.cfdump_struct,
table.cfdump_array,
table.cfdump_query,
table.cfdump_cfc,
table.cfdump_object,
table.cfdump_binary,
table.cfdump_udf,
table.cfdump_udfbody,
table.cfdump_udfarguments {
font-size: xx-small;
font-family: verdana, arial, helvetica, sans-serif;
cell-spacing: 2;
etc.
Can anyone help?
Thanks,
KateYou shouldn't search for line 145 into the CFM file but into
the answer that is sent to the browser. The resulting XML sent by
the CFM is invalid so you have to identify first the line 145 into
the response and than to look where the line is generated.
As Don did I opened the URL into Firefox and when the XML
error displayed I look into the source (View Source). The server
instead of serving a valid XML answer a HTML content which is not
correct. (Maybe a CF server error ?!)
Cristian -
Failed to retrieve data set (dsLibrary) for spry:repeat
I've tried to make this work with an external xml file,
external html table, and finally this version with an internal html
table for the data set source. The source table shows up in the
browser along with the error message in a box with red header
"Failed to retrieve data set (dsLibrary) for spry:repeat".
I used one of the Adobe Samples as a base for my page. I've
checked and recheck, and I can't find the source of my problem.
Please help!!!
My code is below and the url to the page is
http://www.healthy-horse.info/articles.html
Thanks!
<!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:spry="
http://ns.adobe.com/spry/">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>hh1</title>
<link href="matt_layout.css" rel="stylesheet"
type="text/css" />
<link href="matt_style.css" rel="stylesheet"
type="text/css" />
<link rel="stylesheet" type="text/css"
href="chromestyle.css" />
<script type="text/javascript"
src="SpryAssets/SpryHTMLDataSet.js"></script>
<script type="text/javascript"
src="SpryAssets/SpryData.js"></script>
<script type="text/javascript">
var dsLibrary = new Spry.Data.HTMLDataSet(null,
"ArticleLibrary");
</script>
<style type="text/css">
.style1 {color:black}
.product {
cursor: pointer;
.hover {
background-color: #A6C4E1;
.selected {
background-color: #D5C897;
</style>
</head>
<body>
<div id="masthead"><img class="title"
src="images/articles_title.gif"/>
<div class="headerinfo">Great informational articles
that cover a wide variety of topics relating to
<strong><em>Horse Health</em></strong> and
<strong><em>Natural Horse
Keeping</em></strong>. </div>
</div>
<!-- end masthead -->
<div class="chromestyle" id="chromemenu">
<ul>
<li ><a href="default.html"
>HOME</a></li>
<li><a
href="articles.html">ARTICLES</a></li>
<li><a
href="faqs.html">FAQ'S</a></li>
<li><a
href="links.html">LINKS</a></li>
<li><a target="_blank" href="
http://www.healthy-horse.info/forum">FORUM</a></li>
<li><a href="mailto:[email protected]"
>EMAIL</a></li>
</ul>
</div>
<div id="wrapper">
<table width="100%" border="0">
<tr>
<td width="30%" valign="top">
<ul spry:region="dsLibrary"
spry:repeatchildren="dsLibrary">
<li class="product" spry:setrow="dsLibrary"
spry:select="selected" spry:hover="hover">{category}</li>
</ul>
</td>
<td width="70%" valign="top">
<div spry:detailregion="dsLibrary">
<div><strong>Articles:</strong>
{articles}</div>
</div>
</td>
</tr>
</table>
<br/>
<!--SOURCE TABLE-->
<table id="ArticleLibrary" border="1" cellspacing="0"
cellpadding="10">
<tr>
<th>category</th>
<th>articles</th>
</tr>
<tr>
<td>Adobe Photoshop CS2</td>
<td>
<ul>
<li>Revolutionary Vanishing Point</li>
<li>Multiple layer control</li>
<li>Smart Objects</li>
<li>Multi-image digital camera raw file
processing</li>
<li>Image Warp</li>
</ul></td>
</tr>
<tr>
<td>Adobe Illustrator CS2</td>
<td>
<ul>
<li>Live Trace</li>
<li>Live Paint</li>
<li>Control palette</li>
<li>Custom workspaces</li>
<li>Photoshop layer comp support</li>
</ul></td>
</tr>
<tr>
<td>Adobe InDesign CS2</td>
<td>
<ul>
<li>Object styles</li>
<li>Adobe Photoshop and Adobe PDF layer
support</li>
<li>InDesign snippets</li>
<li>Adobe InCopy CS2 assignments</li>
<li>Save backwards to InDesign CS</li>
</ul></td>
</tr>
<tr>
<td>Adobe GoLive CS2</td>
<td>
<ul>
<li>Enhanced live rendering</li>
<li>Simple visual tools to build and edit CSS-based
pages</li>
<li>Visual CSS authoring for mobile devices</li>
<li>Visual SVG-t inspection and authoring for
mobile</li>
<li>Total site management</li>
</ul></td>
</tr>
<tr>
<td>Adobe Fireworks 8</td>
<td>
<ul>
<li>Get top-quality design results.</li>
<li>Produce highly optimized files that still look
great.</li>
<li>Slice and export page comps.</li>
<li>Create sophisticated web navigation.</li>
</ul></td>
</tr>
<tr>
<td>Adobe Acrobat Professional</td>
<td>
<ul>
<li>Enjoy improved performance</li>
<li>Extend commenting capabilities</li>
<li>Easily design Adobe PDF forms</li>
<li>Enjoy improved attachment capabilities</li>
</ul></td>
</tr>
<tr>
<td>Adobe Acrobat Standard</td>
<td>
<ul>
<li>Create Adobe PDF documents from Microsoft
Outlook</li>
<li>Enjoy improved performance</li>
<li>Use enhanced headers, footers, and
watermarks</li>
<li>Enjoy improved attachment capabilities</li>
<li>Organize Adobe PDF documents</li>
</ul></td>
</tr>
</table>
<!--END SOURCE TABLE-->
</div>
<!--end wrapper-->
<div id="footer"><p class="footer">Mathew Baker
<a
href="mailto:[email protected]">[email protected]</a>
* Waynesville, OH</p>
</div>
<!--end footer-->
<br/>
<p class="center" style="font-size:9px"><img
src="/cgi-sys/Count.cgi?df=matt.dat|display=Counter|ft=6|md=5|frgb=228;224;224|dd=E"/>
<span class="style1">Web Design by: Maria Lee
- <a
href="mailto:[email protected]">[email protected]</a>
- (937)554-4116</span></p>
</body>
</html>Try moving the SpryHTMLDataSet.js script tag below the
SpryData.js script tag. -
I know I can upgrade, download, purchase or any combination of these to get and use a new dropdown menu format that would work, but that is not what I want to work on learning today. Our top coder/developer is out of town right now, and I am just trying to fix a menu bar that was done in CS4 with Spry 1.6.1, and I have to believe that someone out there knows the fix to get it to work on an ipad. I can make the parent li not a link and it still does not work. Here is my .JS code:
// SpryMenuBar.js - version 0.12 - Spry Pre-Release 1.6.1
// Copyright (c) 2006. Adobe Systems Incorporated.
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// * Neither the name of Adobe Systems Incorporated nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
SpryMenuBar.js
This file handles the JavaScript for Spry Menu Bar. You should have no need
to edit this file. Some highlights of the MenuBar object is that timers are
used to keep submenus from showing up until the user has hovered over the parent
menu item for some time, as well as a timer for when they leave a submenu to keep
showing that submenu until the timer fires.
var Spry; if (!Spry) Spry = {}; if (!Spry.Widget) Spry.Widget = {};
Spry.BrowserSniff = function()
var b = navigator.appName.toString();
var up = navigator.platform.toString();
var ua = navigator.userAgent.toString();
this.mozilla = this.ie = this.opera = this.safari = false;
var re_opera = /Opera.([0-9\.]*)/i;
var re_msie = /MSIE.([0-9\.]*)/i;
var re_gecko = /gecko/i;
var re_safari = /(applewebkit|safari)\/([\d\.]*)/i;
var r = false;
if ( (r = ua.match(re_opera))) {
this.opera = true;
this.version = parseFloat(r[1]);
} else if ( (r = ua.match(re_msie))) {
this.ie = true;
this.version = parseFloat(r[1]);
} else if ( (r = ua.match(re_safari))) {
this.safari = true;
this.version = parseFloat(r[2]);
} else if (ua.match(re_gecko)) {
var re_gecko_version = /rv:\s*([0-9\.]+)/i;
r = ua.match(re_gecko_version);
this.mozilla = true;
this.version = parseFloat(r[1]);
this.windows = this.mac = this.linux = false;
this.Platform = ua.match(/windows/i) ? "windows" :
(ua.match(/linux/i) ? "linux" :
(ua.match(/mac/i) ? "mac" :
ua.match(/unix/i)? "unix" : "unknown"));
this[this.Platform] = true;
this.v = this.version;
if (this.safari && this.mac && this.mozilla) {
this.mozilla = false;
Spry.is = new Spry.BrowserSniff();
// Constructor for Menu Bar
// element should be an ID of an unordered list (<ul> tag)
// preloadImage1 and preloadImage2 are images for the rollover state of a menu
Spry.Widget.MenuBar = function(element, opts)
this.init(element, opts);
Spry.Widget.MenuBar.prototype.init = function(element, opts)
this.element = this.getElement(element);
// represents the current (sub)menu we are operating on
this.currMenu = null;
this.showDelay = 250;
this.hideDelay = 600;
if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (Spry.is.ie && typeof document.uniqueID == 'undefined'))
// bail on older unsupported browsers
return;
// Fix IE6 CSS images flicker
if (Spry.is.ie && Spry.is.version < 7){
try {
document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
this.upKeyCode = Spry.Widget.MenuBar.KEY_UP;
this.downKeyCode = Spry.Widget.MenuBar.KEY_DOWN;
this.leftKeyCode = Spry.Widget.MenuBar.KEY_LEFT;
this.rightKeyCode = Spry.Widget.MenuBar.KEY_RIGHT;
this.escKeyCode = Spry.Widget.MenuBar.KEY_ESC;
this.hoverClass = 'MenuBarItemHover';
this.subHoverClass = 'MenuBarItemSubmenuHover';
this.subVisibleClass ='MenuBarSubmenuVisible';
this.hasSubClass = 'MenuBarItemSubmenu';
this.activeClass = 'MenuBarActive';
this.isieClass = 'MenuBarItemIE';
this.verticalClass = 'MenuBarVertical';
this.horizontalClass = 'MenuBarHorizontal';
this.enableKeyboardNavigation = true;
this.hasFocus = false;
// load hover images now
if(opts)
for(var k in opts)
if (typeof this[k] == 'undefined')
var rollover = new Image;
rollover.src = opts[k];
Spry.Widget.MenuBar.setOptions(this, opts);
// safari doesn't support tabindex
if (Spry.is.safari)
this.enableKeyboardNavigation = false;
if(this.element)
this.currMenu = this.element;
var items = this.element.getElementsByTagName('li');
for(var i=0; i<items.length; i++)
if (i > 0 && this.enableKeyboardNavigation)
items[i].getElementsByTagName('a')[0].tabIndex='-1';
this.initialize(items[i], element);
if(Spry.is.ie)
this.addClassName(items[i], this.isieClass);
items[i].style.position = "static";
if (this.enableKeyboardNavigation)
var self = this;
this.addEventListener(document, 'keydown', function(e){self.keyDown(e); }, false);
if(Spry.is.ie)
if(this.hasClassName(this.element, this.verticalClass))
this.element.style.position = "relative";
var linkitems = this.element.getElementsByTagName('a');
for(var i=0; i<linkitems.length; i++)
linkitems[i].style.position = "relative";
Spry.Widget.MenuBar.KEY_ESC = 27;
Spry.Widget.MenuBar.KEY_UP = 38;
Spry.Widget.MenuBar.KEY_DOWN = 40;
Spry.Widget.MenuBar.KEY_LEFT = 37;
Spry.Widget.MenuBar.KEY_RIGHT = 39;
Spry.Widget.MenuBar.prototype.getElement = function(ele)
if (ele && typeof ele == "string")
return document.getElementById(ele);
return ele;
Spry.Widget.MenuBar.prototype.hasClassName = function(ele, className)
if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
return false;
return true;
Spry.Widget.MenuBar.prototype.addClassName = function(ele, className)
if (!ele || !className || this.hasClassName(ele, className))
return;
ele.className += (ele.className ? " " : "") + className;
Spry.Widget.MenuBar.prototype.removeClassName = function(ele, className)
if (!ele || !className || !this.hasClassName(ele, className))
return;
ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
// addEventListener for Menu Bar
// attach an event to a tag without creating obtrusive HTML code
Spry.Widget.MenuBar.prototype.addEventListener = function(element, eventType, handler, capture)
try
if (element.addEventListener)
element.addEventListener(eventType, handler, capture);
else if (element.attachEvent)
element.attachEvent('on' + eventType, handler);
catch (e) {}
// createIframeLayer for Menu Bar
// creates an IFRAME underneath a menu so that it will show above form controls and ActiveX
Spry.Widget.MenuBar.prototype.createIframeLayer = function(menu)
var layer = document.createElement('iframe');
layer.tabIndex = '-1';
layer.src = 'javascript:""';
layer.frameBorder = '0';
layer.scrolling = 'no';
menu.parentNode.appendChild(layer);
layer.style.left = menu.offsetLeft + 'px';
layer.style.top = menu.offsetTop + 'px';
layer.style.width = menu.offsetWidth + 'px';
layer.style.height = menu.offsetHeight + 'px';
// removeIframeLayer for Menu Bar
// removes an IFRAME underneath a menu to reveal any form controls and ActiveX
Spry.Widget.MenuBar.prototype.removeIframeLayer = function(menu)
var layers = ((menu == this.element) ? menu : menu.parentNode).getElementsByTagName('iframe');
while(layers.length > 0)
layers[0].parentNode.removeChild(layers[0]);
// clearMenus for Menu Bar
// root is the top level unordered list (<ul> tag)
Spry.Widget.MenuBar.prototype.clearMenus = function(root)
var menus = root.getElementsByTagName('ul');
for(var i=0; i<menus.length; i++)
this.hideSubmenu(menus[i]);
this.removeClassName(this.element, this.activeClass);
// bubbledTextEvent for Menu Bar
// identify bubbled up text events in Safari so we can ignore them
Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
return Spry.is.safari && (event.target == event.relatedTarget.parentNode || (event.eventPhase == 3 && event.target.parentNode == event.relatedTarget));
// showSubmenu for Menu Bar
// set the proper CSS class on this menu to show it
Spry.Widget.MenuBar.prototype.showSubmenu = function(menu)
if(this.currMenu)
this.clearMenus(this.currMenu);
this.currMenu = null;
if(menu)
this.addClassName(menu, this.subVisibleClass);
if(typeof document.all != 'undefined' && !Spry.is.opera && navigator.vendor != 'KDE')
if(!this.hasClassName(this.element, this.horizontalClass) || menu.parentNode.parentNode != this.element)
menu.style.top = menu.parentNode.offsetTop + 'px';
if(Spry.is.ie && Spry.is.version < 7)
this.createIframeLayer(menu);
this.addClassName(this.element, this.activeClass);
// hideSubmenu for Menu Bar
// remove the proper CSS class on this menu to hide it
Spry.Widget.MenuBar.prototype.hideSubmenu = function(menu)
if(menu)
this.removeClassName(menu, this.subVisibleClass);
if(typeof document.all != 'undefined' && !Spry.is.opera && navigator.vendor != 'KDE')
menu.style.top = '';
menu.style.left = '';
if(Spry.is.ie && Spry.is.version < 7)
this.removeIframeLayer(menu);
// initialize for Menu Bar
// create event listeners for the Menu Bar widget so we can properly
// show and hide submenus
Spry.Widget.MenuBar.prototype.initialize = function(listitem, element)
var opentime, closetime;
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
if(menu)
this.addClassName(link, this.hasSubClass);
if(!Spry.is.ie)
// define a simple function that comes standard in IE to determine
// if a node is within another node
listitem.contains = function(testNode)
// this refers to the list item
if(testNode == null)
return false;
if(testNode == this)
return true;
else
return this.contains(testNode.parentNode);
// need to save this for scope further down
var self = this;
this.addEventListener(listitem, 'mouseover', function(e){self.mouseOver(listitem, e);}, false);
this.addEventListener(listitem, 'mouseout', function(e){if (self.enableKeyboardNavigation) self.clearSelection(); self.mouseOut(listitem, e);}, false);
if (this.enableKeyboardNavigation)
this.addEventListener(link, 'blur', function(e){self.onBlur(listitem);}, false);
this.addEventListener(link, 'focus', function(e){self.keyFocus(listitem, e);}, false);
Spry.Widget.MenuBar.prototype.keyFocus = function (listitem, e)
this.lastOpen = listitem.getElementsByTagName('a')[0];
this.addClassName(this.lastOpen, listitem.getElementsByTagName('ul').length > 0 ? this.subHoverClass : this.hoverClass);
this.hasFocus = true;
Spry.Widget.MenuBar.prototype.onBlur = function (listitem)
this.clearSelection(listitem);
Spry.Widget.MenuBar.prototype.clearSelection = function(el){
//search any intersection with the current open element
if (!this.lastOpen)
return;
if (el)
el = el.getElementsByTagName('a')[0];
// check children
var item = this.lastOpen;
while (item != this.element)
var tmp = el;
while (tmp != this.element)
if (tmp == item)
return;
try{
tmp = tmp.parentNode;
}catch(err){break;}
item = item.parentNode;
var item = this.lastOpen;
while (item != this.element)
this.hideSubmenu(item.parentNode);
var link = item.getElementsByTagName('a')[0];
this.removeClassName(link, this.hoverClass);
this.removeClassName(link, this.subHoverClass);
item = item.parentNode;
this.lastOpen = false;
Spry.Widget.MenuBar.prototype.keyDown = function (e)
if (!this.hasFocus)
return;
if (!this.lastOpen)
this.hasFocus = false;
return;
var e = e|| event;
var listitem = this.lastOpen.parentNode;
var link = this.lastOpen;
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = (menu) ? true : false;
var opts = [listitem, menu, null, this.getSibling(listitem, 'previousSibling'), this.getSibling(listitem, 'nextSibling')];
if (!opts[3])
opts[2] = (listitem.parentNode.parentNode.nodeName.toLowerCase() == 'li')?listitem.parentNode.parentNode:null;
var found = 0;
switch (e.keyCode){
case this.upKeyCode:
found = this.getElementForKey(opts, 'y', 1);
break;
case this.downKeyCode:
found = this.getElementForKey(opts, 'y', -1);
break;
case this.leftKeyCode:
found = this.getElementForKey(opts, 'x', 1);
break;
case this.rightKeyCode:
found = this.getElementForKey(opts, 'x', -1);
break;
case this.escKeyCode:
case 9:
this.clearSelection();
this.hasFocus = false;
default: return;
switch (found)
case 0: return;
case 1:
//subopts
this.mouseOver(listitem, e);
break;
case 2:
//parent
this.mouseOut(opts[2], e);
break;
case 3:
case 4:
// left - right
this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
break;
var link = opts[found].getElementsByTagName('a')[0];
if (opts[found].nodeName.toLowerCase() == 'ul')
opts[found] = opts[found].getElementsByTagName('li')[0];
this.addClassName(link, opts[found].getElementsByTagName('ul').length > 0 ? this.subHoverClass : this.hoverClass);
this.lastOpen = link;
opts[found].getElementsByTagName('a')[0].focus();
//stop further event handling by the browser
return Spry.Widget.MenuBar.stopPropagation(e);
Spry.Widget.MenuBar.prototype.mouseOver = function (listitem, e)
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = (menu) ? true : false;
if (this.enableKeyboardNavigation)
this.clearSelection(listitem);
if(this.bubbledTextEvent())
// ignore bubbled text events
return;
if (listitem.closetime)
clearTimeout(listitem.closetime);
if(this.currMenu == listitem)
this.currMenu = null;
// move the focus too
if (this.hasFocus)
link.focus();
// show menu highlighting
this.addClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
this.lastOpen = link;
if(menu && !this.hasClassName(menu, this.subHoverClass))
var self = this;
listitem.opentime = window.setTimeout(function(){self.showSubmenu(menu);}, this.showDelay);
Spry.Widget.MenuBar.prototype.mouseOut = function (listitem, e)
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = (menu) ? true : false;
if(this.bubbledTextEvent())
// ignore bubbled text events
return;
var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
if(!listitem.contains(related))
if (listitem.opentime)
clearTimeout(listitem.opentime);
this.currMenu = listitem;
// remove menu highlighting
this.removeClassName(link, hasSubMenu ? this.subHoverClass : this.hoverClass);
if(menu)
var self = this;
listitem.closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, this.hideDelay);
if (this.hasFocus)
link.blur();
Spry.Widget.MenuBar.prototype.getSibling = function(element, sibling)
var child = element[sibling];
while (child && child.nodeName.toLowerCase() !='li')
child = child[sibling];
return child;
Spry.Widget.MenuBar.prototype.getElementForKey = function(els, prop, dir)
var found = 0;
var rect = Spry.Widget.MenuBar.getPosition;
var ref = rect(els[found]);
var hideSubmenu = false;
//make the subelement visible to compute the position
if (els[1] && !this.hasClassName(els[1], this.MenuBarSubmenuVisible))
els[1].style.visibility = 'hidden';
this.showSubmenu(els[1]);
hideSubmenu = true;
var isVert = this.hasClassName(this.element, this.verticalClass);
var hasParent = els[0].parentNode.parentNode.nodeName.toLowerCase() == 'li' ? true : false;
for (var i = 1; i < els.length; i++){
//when navigating on the y axis in vertical menus, ignore children and parents
if(prop=='y' && isVert && (i==1 || i==2))
continue;
//when navigationg on the x axis in the FIRST LEVEL of horizontal menus, ignore children and parents
if(prop=='x' && !isVert && !hasParent && (i==1 || i==2))
continue;
if (els[i])
var tmp = rect(els[i]);
if ( (dir * tmp[prop]) < (dir * ref[prop]))
ref = tmp;
found = i;
// hide back the submenu
if (els[1] && hideSubmenu){
this.hideSubmenu(els[1]);
els[1].style.visibility = '';
return found;
Spry.Widget.MenuBar.camelize = function(str)
if (str.indexOf('-') == -1){
return str;
var oStringList = str.split('-');
var isFirstEntry = true;
var camelizedString = '';
for(var i=0; i < oStringList.length; i++)
if(oStringList[i].length>0)
if(isFirstEntry)
camelizedString = oStringList[i];
isFirstEntry = false;
else
var s = oStringList[i];
camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
return camelizedString;
Spry.Widget.MenuBar.getStyleProp = function(element, prop)
var value;
try
if (element.style)
value = element.style[Spry.Widget.MenuBar.camelize(prop)];
if (!value)
if (document.defaultView && document.defaultView.getComputedStyle)
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css.getPropertyValue(prop) : null;
else if (element.currentStyle)
value = element.currentStyle[Spry.Widget.MenuBar.camelize(prop)];
catch (e) {}
return value == 'auto' ? null : value;
Spry.Widget.MenuBar.getIntProp = function(element, prop)
var a = parseInt(Spry.Widget.MenuBar.getStyleProp(element, prop),10);
if (isNaN(a))
return 0;
return a;
Spry.Widget.MenuBar.getPosition = function(el, doc)
doc = doc || document;
if (typeof(el) == 'string') {
el = doc.getElementById(el);
if (!el) {
return false;
if (el.parentNode === null || Spry.Widget.MenuBar.getStyleProp(el, 'display') == 'none') {
//element must be visible to have a box
return false;
var ret = {x:0, y:0};
var parent = null;
var box;
if (el.getBoundingClientRect) { // IE
box = el.getBoundingClientRect();
var scrollTop = doc.documentElement.scrollTop || doc.body.scrollTop;
var scrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft;
ret.x = box.left + scrollLeft;
ret.y = box.top + scrollTop;
} else if (doc.getBoxObjectFor) { // gecko
box = doc.getBoxObjectFor(el);
ret.x = box.x;
ret.y = box.y;
} else { // safari/opera
ret.x = el.offsetLeft;
ret.y = el.offsetTop;
parent = el.offsetParent;
if (parent != el) {
while (parent) {
ret.x += parent.offsetLeft;
ret.y += parent.offsetTop;
parent = parent.offsetParent;
// opera & (safari absolute) incorrectly account for body offsetTop
if (Spry.is.opera || Spry.is.safari && Spry.Widget.MenuBar.getStyleProp(el, 'position') == 'absolute')
ret.y -= doc.body.offsetTop;
if (el.parentNode)
parent = el.parentNode;
else
parent = null;
if (parent.nodeName){
var cas = parent.nodeName.toUpperCase();
while (parent && cas != 'BODY' && cas != 'HTML') {
cas = parent.nodeName.toUpperCase();
ret.x -= parent.scrollLeft;
ret.y -= parent.scrollTop;
if (parent.parentNode)
parent = parent.parentNode;
else
parent = null;
return ret;
Spry.Widget.MenuBar.stopPropagation = function(ev)
if (ev.stopPropagation)
ev.stopPropagation();
else
ev.cancelBubble = true;
if (ev.preventDefault)
ev.preventDefault();
else
ev.returnValue = false;
Spry.Widget.MenuBar.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
if (!optionsObj)
return;
for (var optionName in optionsObj)
if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
continue;
obj[optionName] = optionsObj[optionName];Try the following changes to the JS file
Lines 103 and 104 change the values
this.showDelay = 100; // was 250
this.hideDelay = 200; // was 600
Comment out line 286
Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
// return Spry.is.safari && (event.target == event.relatedTarget.parentNode || (event.eventPhase == 3 && event.target.parentNode == event.relatedTarget));
Comment out line 366 and add new lines 366 and 367
var self = this;
this.addEventListener(listitem, 'click', function(e){self.Click(listitem, e);}, false);
this.addEventListener(listitem, 'click', function(e){self.mouseOver(listitem, e);}, false);
// this.addEventListener(listitem, 'mouseover', function(e){self.mouseOver(listitem, e);}, false);
this.addEventListener(listitem, 'mouseout', function(e){if (self.enableKeyboardNavigation) self.clearSelection(); self.mouseOut(listitem, e);}, false);
I have not tested the above changes ontouch screens; they do seem to work Ok on desktops.
NOTE: Line numbers could be different because of the difference in our versions. -
how to edit xml file particular value. and how to send xml file over ip address 192.168.2.10 device using ftp through Ethernet
Hello
For using FTP function in LabVIEW, I recommend you to check this document: FTP Basics
Also, take a look at FTP Browser.vi, which is available at the Example Finder.
To edit a XML file, try to use VIs in XML palette. Maybe Write to XML.vi helps you.
Post your current VI if possible.
Regards
Mondoni -
hello everybody,
i'm trying to write a java application for editing xml documents.
I know It is possible to use xsl stylesheets to transform xml documents but it is possible to display the result of the transformation process in java?
I mean,
I make the transformation XML --->XSL ---->but i don't want to view the output in a browser!! I want to view that in my java application !!
Can i display this output in swing objects?? Can i modify this output??
Thanks to all.I make the transformation XML --->XSL ---->but i don'tYou mean XML+XSLT=>XML
want to view the output in a browser!! I want to view
that in my java application !!
Can i display this output in swing objects?? Can i
modify this output??Here is an example for saxon:
// I didn't compile or run this code, please refer to API documentation for more detail instructions.
// Transformer factory.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
// XML source file
File source_file = new File("xml_file.xml");
// output file
File outputFile = new File( "output.out");
// Transformation source
Source source = new StreamSource(source_file);
// Transformation result
out = new java.io.FileOutputStream(outputFile);
StreamResult result = new StreamResult(out);
result.setSystemId(outputFile.toURI().toString());
// Must be synchronized by factory, since factory isn't thread safe
synchronized (transformerFactory) {
// obtain a transformer
transformer = transformerFactory.newTransformer(new StreamSource(new File("xslt_template.xsl")));
// perform transformation
transformer.transform(source, result);
As you can see, you easely can redirect result to your Swing editor.
If you don't want to bother about streams and so on, you can use this example to write the result into the file, and open the file in your editor. -
How to edit template for report generator in stimulus profile editor in Veristand 2011?
How to edit template for report generator in stimulus profile editor in veristand 2011?
We are using Veristand 2011.When we run any sequence in stimulus profle editor,we get test results in form of ATML file.
We want to customise the template for this test result generation as per our requirement.
For example:
Test case No.: Description of test case.
Objectives: Explanation of objectives.
Result: Passed/ Failed.
Graph: If any.
Please suggest how to do this.You cant really change too much in the report, you can customize TRML.xsl which is created every time in the Test Results\UUT 1 folder and that would give you some flexibility on what is shown. I dont know what a xsl is actually able to do in terms of composing data from multiple files (if at all possible) but it definitely allows you to change the visual format of the existing xml data.
Otherwise I modified the xsl to customize the look of the xml report when opened in a browser to have less clutter and some coloring on the Pass/Fail but, the reports are XML files anyway so it's easy to extract data out of them and you can probably write your own report creation tool to compose the report in whatever format you like. -
SQL to XML to Spry Table not working
I have created a table that uses PHP to pull mySQL data... it
works fine.
But if I copy the SQL statement into another php file, then
use the "Export to XML" function in order to use that XML file as a
Spry dataset, so that I can sort my columns, I receive an error
while creating the dataset.
The problem is in the WHERE statement in the SQL. The code is
attached... But here it is as well
WHERE subtbltripparticipants.tripid = '$_GET[trip_id]'
It's the $_GET that is freaking it out. This code is supposed
to pull the variable from the URL. It works in a regular recordset
in DW, but not in a recordset that is exported to XML. Is there a
different syntax to use? How can I get the variable that is sent
via URL to be used in the Spry dataset as a filter?
When I created the dataset, and choose the php file with the
SQL in it as the "XML Source", I get "Expected comment or
processing instruction(2,1) in the "Row Element" section, where the
nodes should show up. I don't understand this error and don't
understand why the SQL works in a standard table, but not in an XML
export for Spry.
Please advise. Thanks,
BubbaOk,
I tried that and it basically bring you to OLI7BW as suggested above.
1. At this point, how do you know which of these it is actually filling:
2LIS_11_VAHDR Sales Document Header Data
2LIS_11_VAITM Sales Document Item Data
2LIS_11_VAKON Sales Document Condition
2LIS_11_VASCL Sales Document Schedule Line
2LIS_11_VASTH Sales Document Header Status
2LIS_11_VASTI Sales Document Item Status
2LIS_11_V_ITM Sales-Shipping Allocation Item Data
2LIS_11_V_SCL Sales-Shipping Allocation Schedule Line
2LIS_11_V_SSL Sales Document Order Delivery
2. Also, what does it mean when after running OLI7BW wide, with no restriction on my system, still rsa3 shows no records for 2LIS_11_V_SCL?
Any other way to confirm that there may not be any data in 2LIS_11_V_SCL?
Or any way, to make an entry which reflect in 2LIS_11_V_SCL so that I can verify if OLI7BW actually fills the setup table?
Thanks -
How to pass apex item value into custom xml for chart or guage?
Re-opening the old thread : Re: How to pass apex item value into custom xml for chart or guage?
Which was not answered.
Roel - Thanks. Its working - but in a semi quotes in the custom XML
<pointers>
<pointer value= '&P5_RUNNING_TOTAL.'
<label enabled="true">
<position placement_mode="ByPoint" x="50" y="15" />
<format>{%Value}{numDecimals:1}</format>
<background enabled="false" />
</label>
</pointer>
</pointers>This question was helpful for us to resolving one recent thread : AnyChart - set Dial axis intervals dynamically?
(Re: AnyChart - set Dial axis intervals dynamically?
Edited by: P.Ranish on Dec 13, 2012 6:23 AMP.Ranish wrote:
Is there any update for this question ???
Edited by: P.Ranish on Dec 13, 2012 3:36 AMNo, And there won't be in the future.
Please stop posting followup's to old threads, if you have a real problem please search the forum first and post a new question with all information
Roel wrote:
Try using &P5_RUNNING_TOTAL. or #P5_RUNNING_TOTAL#Just to make it clear - this will only work if page is reloaded after setting the item values dynamically via AJAX -
Hi
I'm looking to customize the look and feel of the edit page for a portlet programmatically. I have extended my own class from the DefaultContainerRenderer class and have overridden the renderDesignFormBodyBegin() method.
And have also made an entry into the provider.xml for this as follows
<portlet class="oracle.portal.provider.v2.DefaultPortletDefinition">
<id>3</id>
<name>SynergyLatestIDDBDrugs</name>
<title>SynergyLatestIDDBDrugs</title>
<description>SynergyLatestIDDBDrugs</description>
<timeout>40</timeout>
<showEdit>true</showEdit>
<showEditDefault>true</showEditDefault>
<showDetails>true</showDetails>
<containerRenderer>com.tysynergy.container.SynergyLatestIDDBDrugsContainer</containerRenderer> <renderer class="oracle.portal.provider.v2.render.RenderManager">
<autoRedirect>true</autoRedirect>
<contentType>text/html</contentType>
<showPage class="com.tsynergy.renderer.SynergyLatestIDDBDrugs"/>
<editPage class="com.tsynergy.renderer.SynergyLatestIDDBDrugsEdit"/>
<editDefaultsPage class="com.tsynergy.renderer.SynergyLatestIDDBDrugsEdit"/>
</renderer>
<personalizationManager class="oracle.portal.provider.v2.personalize.PrefStorePersonalizationManager">
<dataClass>com.tsynergy.personalize.SynergyLatestIDDBDrugsPersonalize</dataClass>
</personalizationManager>
</portlet>
But I get the following error -
oracle.portal.utils.xml.v2.NodeHandlerException: Class oracle.portal.provider.v2.DefaultProviderDefinition has no set or add method for tag "containerRenderer"
Has anyone come across this before?
DeepakHi
Thanks.
I got rid of my earlier error as I was using the conatinerRenderer tag in the wrong way. It should have been
<containerRenderer class="com.tsynergy.container.SynergyLatestIDDBDrugsContainer"/>
Now I get to display the my edit content; But I still haven't been able to get rid of the top default portal banner that appears on my edit page. It has the default logo gif and the link to the home page.
I can now put my own form and <input> types, Just need to get rid of the default banner now.
Deepak
Maybe you are looking for
-
I had my mom on my icloud through a different phone for the longest time and just took it off her phone today. Now all of my contacts have been erased from my phone. I went on the icloud online and it is showing that my contacts are still there, but
-
Why did all my messages delete when i restarted my phone
I was on facetime and I wasn't receiving any of my messages so I went to my message app and i seen all the unread messages but they were blank and all i could see was the name of who sent it. So i restarted my phone and all my messages were gone !
-
HTTPService and requestTimeout connection issue.
I could really use some help with using the requestTimeout with HTTPService. I have successfully coded the timeout to 10 seconds and tested it with a long running http request. After 10 seconds the fault listener does execute properly. The trouble I
-
How do I get back from "Back?"
I created an object, colored it and sent it all the way to the back as a header for my page. I then created a text box with the title and put it over the object. Now, however, I want to copy the object I created to post on another page...but I can't
-
When in sleep mode iPhone 4 loses signal but as soon as its on again it searches and finds signal easily but because of this not getting calls or text msges and because it's searching for signal all the time battery not lasting