You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(10) |
Jul
(24) |
Aug
(93) |
Sep
(261) |
Oct
(257) |
Nov
(218) |
Dec
(95) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(184) |
Feb
(87) |
Mar
(155) |
Apr
(398) |
May
(201) |
Jun
(35) |
Jul
(68) |
Aug
(92) |
Sep
(52) |
Oct
(111) |
Nov
(135) |
Dec
(116) |
2009 |
Jan
(225) |
Feb
(204) |
Mar
(113) |
Apr
(137) |
May
(220) |
Jun
(199) |
Jul
(196) |
Aug
(98) |
Sep
(100) |
Oct
(179) |
Nov
(164) |
Dec
(72) |
2010 |
Jan
(59) |
Feb
(61) |
Mar
(64) |
Apr
(159) |
May
(107) |
Jun
(252) |
Jul
(180) |
Aug
(96) |
Sep
(82) |
Oct
(58) |
Nov
(43) |
Dec
(53) |
2011 |
Jan
(39) |
Feb
(18) |
Mar
(33) |
Apr
(66) |
May
(48) |
Jun
(124) |
Jul
(112) |
Aug
(62) |
Sep
(45) |
Oct
(102) |
Nov
(47) |
Dec
(37) |
2012 |
Jan
(22) |
Feb
(18) |
Mar
(1) |
Apr
(5) |
May
(18) |
Jun
(13) |
Jul
(9) |
Aug
(38) |
Sep
(3) |
Oct
(7) |
Nov
(24) |
Dec
(6) |
2013 |
Jan
(1) |
Feb
(14) |
Mar
(1) |
Apr
(2) |
May
(3) |
Jun
(4) |
Jul
(9) |
Aug
(4) |
Sep
(7) |
Oct
|
Nov
(1) |
Dec
(4) |
2014 |
Jan
(9) |
Feb
(2) |
Mar
|
Apr
|
May
(4) |
Jun
(2) |
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <lev...@us...> - 2013-07-12 13:41:46
|
Revision: 21854 http://sourceforge.net/p/qooxdoo-contrib/code/21854 Author: level420 Date: 2013-07-12 13:41:44 +0000 (Fri, 12 Jul 2013) Log Message: ----------- Set css height and width for all IE versions. This avoids the effect that the button flickers or the icon and the label disappears on blur. Modified Paths: -------------- trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js Modified: trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js =================================================================== --- trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js 2013-07-12 12:18:11 UTC (rev 21853) +++ trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js 2013-07-12 13:41:44 UTC (rev 21854) @@ -235,10 +235,12 @@ // the area of the upload button fontSize: '400px' }; - if ( qx.core.Environment.get('browser.name') == 'ie' && qx.core.Environment.get('browser.version') < 9 ) { - css.filter = 'alpha(opacity=0)'; + if ( qx.core.Environment.get('browser.name') == 'ie' ) { + if(qx.core.Environment.get('browser.version') < 9 ) { + css.filter = 'alpha(opacity=0)'; + } + css.height = '100%'; css.width = '200%'; - css.height = '100%'; } control = new qx.html.Element('input',css,{ @@ -266,6 +268,8 @@ destruct : function() { + this.__inputEl = null; + if (this.__mouseUpListenerId) { this.getApplicationRoot().removeListenerById(this.__mouseUpListenerId); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lev...@us...> - 2013-07-12 12:18:15
|
Revision: 21853 http://sourceforge.net/p/qooxdoo-contrib/code/21853 Author: level420 Date: 2013-07-12 12:18:11 +0000 (Fri, 12 Jul 2013) Log Message: ----------- As stated in http://qooxdoo.678.n2.nabble.com/cleanup-of-qx-lang-and-qx-type-td7580690.html qx.lang.Function.empty was first deprecated and is removed in upcoming qooxdoo 3. Replaced with empty function. Modified Paths: -------------- trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js Modified: trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js =================================================================== --- trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js 2013-07-11 08:14:12 UTC (rev 21852) +++ trunk/qooxdoo-contrib/UploadWidget/trunk/source/class/uploadwidget/UploadButton.js 2013-07-12 12:18:11 UTC (rev 21853) @@ -137,7 +137,7 @@ // overridden releaseCapture : qx.core.Environment.select("engine.name", { - "mshtml" : qx.lang.Function.empty, + "mshtml" : function() {}, "default" : function() { this.base(arguments); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2013-07-11 08:14:19
|
Revision: 21852 http://sourceforge.net/p/qooxdoo-contrib/code/21852 Author: d_wagner Date: 2013-07-11 08:14:12 +0000 (Thu, 11 Jul 2013) Log Message: ----------- updated CSS class names Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js 2013-07-07 12:53:49 UTC (rev 21851) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/tutorial/test_mobiletweets.js 2013-07-11 08:14:12 UTC (rev 21852) @@ -24,7 +24,7 @@ simulation.Simulation.prototype.runTest = function() { var backButtonLocator = "css=.navigationbar-backbutton"; - this.__sel.type("css=.textField", "linuxfoundation"); + this.__sel.type("css=.text-field", "linuxfoundation"); this.qxClick("css=.button"); try { this.waitForElementPresent(backButtonLocator, 3000); @@ -35,7 +35,7 @@ } try { - this.waitForElementPresent("css=.listItem", 1000); + this.waitForElementPresent("css=.list-item", 1000); } catch(ex) { this.log("No list items displayed!", "error"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oe...@us...> - 2013-07-07 12:53:53
|
Revision: 21851 http://sourceforge.net/p/qooxdoo-contrib/code/21851 Author: oetiker Date: 2013-07-07 12:53:49 +0000 (Sun, 07 Jul 2013) Log Message: ----------- upgraded jqPlot and added 3.0 to supported releases Modified Paths: -------------- trunk/qooxdoo-contrib/QxJqPlot/trunk/Manifest.json trunk/qooxdoo-contrib/QxJqPlot/trunk/config.json trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/Manifest.json trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/config.json trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/generate.py trunk/qooxdoo-contrib/QxJqPlot/trunk/generate.py trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/MIT-LICENSE.txt trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/README.txt trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/changes.txt trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/copyright.txt trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jqPlotOptions.txt trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jquery.jqplot.css trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jquery.jqplot.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jquery.jqplot.min.css trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jquery.jqplot.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jquery.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/jquery.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/optionsTutorial.txt trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.BezierCurveRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.BezierCurveRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.barRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.barRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.blockRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.blockRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.bubbleRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.bubbleRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasAxisLabelRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasAxisLabelRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasAxisTickRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasAxisTickRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasOverlay.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasOverlay.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasTextRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.canvasTextRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.categoryAxisRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.categoryAxisRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.ciParser.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.ciParser.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.cursor.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.cursor.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.dateAxisRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.dateAxisRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.donutRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.donutRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.dragable.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.dragable.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.enhancedLegendRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.enhancedLegendRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.funnelRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.funnelRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.highlighter.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.highlighter.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.json2.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.logAxisRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.logAxisRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.mekkoAxisRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.mekkoAxisRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.mekkoRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.mekkoRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.meterGaugeRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.meterGaugeRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.ohlcRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.ohlcRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pieRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pieRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pointLabels.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pointLabels.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.trendline.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.trendline.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/usage.txt Added Paths: ----------- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.mobile.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.mobile.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pyramidAxisRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pyramidAxisRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pyramidGridRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pyramidGridRenderer.min.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pyramidRenderer.js trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/plugins/jqplot.pyramidRenderer.min.js Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/Manifest.json 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/Manifest.json 2013-07-07 12:53:49 UTC (rev 21851) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4","1.5","1.6","2.0"] + "qooxdoo-versions": ["1.4","1.5","1.6","2.0","3.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/config.json =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/config.json 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/config.json 2013-07-07 12:53:49 UTC (rev 21851) @@ -28,7 +28,7 @@ { "APPLICATION" : "qxjqplot", "APPLICATION_MAIN_CLASS" : "${APPLICATION}.demo.Demo", - "QOOXDOO_PATH" : "../../qooxdoo/2.0", + "QOOXDOO_PATH" : "../../qooxdoo/3.0", "QXTHEME" : "qx.theme.Modern", "API_EXCLUDE" : ["qx.test.*", "qxjqplot.demo.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/Manifest.json 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/Manifest.json 2013-07-07 12:53:49 UTC (rev 21851) @@ -18,7 +18,7 @@ ], "version" : "trunk", - "qooxdoo-versions": ["1.4","1.5","1.6","2.0"] + "qooxdoo-versions": ["1.4","1.5","1.6","2.0","3.0"] }, "provides" : Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/config.json =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/config.json 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/config.json 2013-07-07 12:53:49 UTC (rev 21851) @@ -31,7 +31,7 @@ "let" : { "APPLICATION" : "qxjqplot.demo", - "QOOXDOO_PATH" : "../../../../qooxdoo/2.0", + "QOOXDOO_PATH" : "../../../../qooxdoo/3.0", "API_EXCLUDE" : ["qx.test.*", "${APPLICATION}.theme.*", "${APPLICATION}.test.*"], "LOCALES" : [ "en" ], "CACHE" : "${TMPDIR}/qooxoo-cache", Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/generate.py =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/generate.py 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/demo/default/generate.py 2013-07-07 12:53:49 UTC (rev 21851) @@ -25,7 +25,7 @@ import sys, os, re, subprocess CMD_PYTHON = 'python' -QOOXDOO_PATH = '../../qooxdoo/2.0' +QOOXDOO_PATH = '../../qooxdoo/3.0' def getQxPath(): path = QOOXDOO_PATH Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/generate.py =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/generate.py 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/generate.py 2013-07-07 12:53:49 UTC (rev 21851) @@ -25,7 +25,7 @@ import sys, os, re, subprocess CMD_PYTHON = 'python' -QOOXDOO_PATH = '../../qooxdoo/2.0' +QOOXDOO_PATH = '../../qooxdoo/3.0' def getQxPath(): path = QOOXDOO_PATH Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/MIT-LICENSE.txt =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/MIT-LICENSE.txt 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/MIT-LICENSE.txt 2013-07-07 12:53:49 UTC (rev 21851) @@ -1,6 +1,6 @@ Title: MIT License -Copyright (c) 2009-2011 Chris Leonello +Copyright (c) 2009-2013 Chris Leonello Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/README.txt =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/README.txt 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/README.txt 2013-07-07 12:53:49 UTC (rev 21851) @@ -2,7 +2,7 @@ Pure JavaScript plotting plugin for jQuery. -To learn how to use jqPlot, start with the Basic Unsage Instructions below. Then read the +To learn how to use jqPlot, start with the Basic Usage Instructions below. Then read the usage.txt and jqPlotOptions.txt files included with the distribution. The jqPlot home page is at <http://www.jqplot.com/>. @@ -21,7 +21,7 @@ Basic Usage Instructions: -jqPlot requires jQuery (1.4+ required for certain features). jQuery 1.4.4 is included in +jqPlot requires jQuery (1.4+ required for certain features). jQuery 1.9.1 is included in the distribution. To use jqPlot include jQuery, the jqPlot jQuery plugin, the jqPlot css file and optionally the excanvas script to support IE version prior to IE 9 in your web page: @@ -46,7 +46,7 @@ Legal Notices: -Copyright (c) 2009-2010 Chris Leonello +Copyright (c) 2009-2013 Chris Leonello jqPlot is currently available for use in all personal or commercial projects under both the MIT and GPL version 2.0 licenses. This means that you can choose the license that best suits your project and use it accordingly. Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/changes.txt =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/changes.txt 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/changes.txt 2013-07-07 12:53:49 UTC (rev 21851) @@ -1,5 +1,68 @@ Title: Change Log +1.0.8: +* Issue #375: sortMergedLabels does not sort string labels +* Issue #279: Groups > 3 Causes Alignment Issues +* Issue #439: IE can't display a customized legend in Quirks mode +* Issue #482: "Undefined" error message when plotting a chart with no data +* Issue #116: Don't mix spaces and tabs for indentation +* Issue #564: Metergauge renderer not resizable when replotting +* Issue #409: MeterGaugeRenderer replot/redraw offsets center +* Issue #523: Adding rectangles to Canvas Overlay plugin +* Issue #756: jqplot.min files contain non-UTF-8 characters +* Issue #223: fillToZero does not color negative values when crossover point is 0 +* Pull Request #23: Adding rectangles to Canvas Overlay plugin +* Pull Request #28: Cross-over points of 0 will actually change colors +* Pull Request #35: Don't highlight hidden bars or show tooltips for them +* Pull Request #41: Add dutch(nl) and svenska(sv) translations for dates +* Add tooltip support for Pie Charts +* Update to latest YUI compressor + +1.0.7: +* Issue #726: Bug in sprintf %p, sometimes it outputs exponential form rather than decimal +* Issue #717: Plot's preDrawHooks not called +* Issue #707: Browser hangs with LogAxisRenderer when value is 0 +* Issue #695: Horizontal Bar Chart Negative Series Colors Not Working +* Issue #670: Examples IE7, IE8 and IE9 multipleBarColors.html failure and fix +* Issue #636: X Axis Date Renderer Single Day Not plotting +* Issue #607: Integration issue +* Issue #571: Decimal numbers not properly formatted +* Issue #552: jqPlot crashes when interval too small +* Issue #536: DateAxisRenderer invalid scaling +* Issue #534: "decimalMark" in the "jqplot.sprintf.js" +* Issue #529: Scientific notation on label values ending in 0 +* Issue #521: invalid JS in meterGaugeRenderer.js +* Issue #516: Including BezierCurveRenderer plugin and initializing jqplot with no options give error +* Issue #500: DateAxisRenderer has timezone related issues +* Issue #452: Including ALL jqPlot plugins causes an Error +* Issue #494: No point when use LogAxisRenderer and a point has a zero value +* Issue #430: getIsoWeek: invalid method call +* Issue #280: jqplot Options +* Issue #179: Spelling/grammar +* Pull Request #18: Implement getTop in CanvasAxisTickRenderer +* Pull Request #21: Performance issue when drawing pointlabels with zeros/null values +* Pull Request #24: Added suggested fix in comment #8 for issue #536 +* Pull Request #29: Removed unbalanced addition of UTC offset +* Pull Request #33: Documentation fixes (issue #179, other changes) +* Pull Request #34: Start of updating jqPlotOptions.txt +* Pull Request #37: Example and suggested fix for issues #552 and issue #536 +* Pull Request #39: Fixed trailing comma which caused issues with IE7 + +1.0.6: +* Add left sidebar navigation to examples +* Update examples for jquery 1.9.1 and jquery ui 1.10.0 +* Add colorpicker.js to distribution +* Fix some problems with examples when viewing with local file system +* Add "minified" copyright notice for minified files, similar to jquery's notice. +* Pull Request #25: jqplot.sprintf.js is no longer the last file in the concatenated jquery.jqplot.js +* Pull Request #17: Fixed bug causing custom pointLabels passed with plot data to be ignored for horizontal bar graphs. +* Pull Request #10: Build error by invalid encoding. +* Issue #714: handle tickColor in meterGaugeRenderer +* Issue #519: jsDate Polish Localization + +1.0.5: +* Updated to jQuery 1.9 + 1.0.0b2: * Major improvements in memory usage: ** Merged in changes from Timo Besenruether to reuse canvas elements and improve @@ -143,7 +206,7 @@ * Enhanced bar plots so you can now color each bar of a series independently with the "varyBarColor" option. * Re-factored series drawing so that each series and series shadow drawn - on it's own canvas. Allows series to be redrawn independently of each other. + on its own canvas. Allows series to be redrawn independently of each other. * Added additional default series colors. * Added useNegativeColors option to turn off negative color array and use only seriesColors array to define all bar/filled line colors. @@ -392,4 +455,4 @@ * Re-factored axis tick renderer instantiation into the axes renderers themselves. -For changes prior to 0.6.0 release, please see change log at http://bitbucket.org/cleonello/jqplot/changesets/ \ No newline at end of file +For changes prior to 0.6.0 release, please see change log at http://bitbucket.org/cleonello/jqplot/changesets/ Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/copyright.txt =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/copyright.txt 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/copyright.txt 2013-07-07 12:53:49 UTC (rev 21851) @@ -4,7 +4,7 @@ * * Version: @VERSION * - * Copyright (c) 2009-2011 Chris Leonello + * Copyright (c) 2009-2013 Chris Leonello * jqPlot is currently available for use in all personal or commercial projects * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can @@ -25,5 +25,32 @@ * http://hexmen.com/js/sprintf.js * The author (Ash Searle) has placed this code in the public domain: * "This code is unrestricted: you are free to use it however you like." + * + * included jsDate library by Chris Leonello: + * + * Copyright (c) 2010-2013 Chris Leonello + * + * jsDate is currently available for use in all personal or commercial projects + * under both the MIT and GPL version 2.0 licenses. This means that you can + * choose the license that best suits your project and use it accordingly. + * + * jsDate borrows many concepts and ideas from the Date Instance + * Methods by Ken Snyder along with some parts of Ken's actual code. * + * Ken's origianl Date Instance Methods and copyright notice: + * + * Ken Snyder (ken d snyder at gmail dot com) + * 2008-09-10 + * version 2.0.2 (http://kendsnyder.com/sandbox/date/) + * Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/) + * + * jqplotToImage function based on Larry Siden's export-jqplot-to-png.js. + * Larry has generously given permission to adapt his code for inclusion + * into jqPlot. + * + * Larry's original code can be found here: + * + * https://github.com/lsiden/export-jqplot-to-png + * + * */ Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.js =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.js 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.js 2013-07-07 12:53:49 UTC (rev 21851) @@ -561,6 +561,9 @@ // trial and error to get the same size as non VML text. computedStyle.size *= 0.981; + // Fix for VML handling of bare font family names. Add a '' around font family names. + computedStyle.family = "'" + computedStyle.family.replace(/(\'|\")/g,'').replace(/\s*,\s*/g, "', '") + "'"; + return computedStyle; } @@ -1228,8 +1231,7 @@ offset = {x: 0, y: 0}, lineStr = []; - var fontStyle = getComputedStyle(processFontStyle(this.font), - this.element_); + var fontStyle = getComputedStyle(processFontStyle(this.font), this.element_); var fontStyleString = buildStyle(fontStyle); @@ -1295,8 +1297,9 @@ var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; - var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); + var skewOffset = mr(d.x / Z + 1 - m[0][0]) + ',' + mr(d.y / Z - 2 * m[1][0]); + lineStr.push('<g_vml_:skew on="t" matrix="', skewM ,'" ', ' offset="', skewOffset, '" origin="', left ,' 0" />', '<g_vml_:path textpathok="true" />', @@ -1372,7 +1375,7 @@ case null: case '': this.repetition_ = 'repeat'; - break + break; case 'repeat-x': case 'repeat-y': case 'no-repeat': @@ -1429,6 +1432,7 @@ CanvasGradient = CanvasGradient_; CanvasPattern = CanvasPattern_; DOMException = DOMException_; + G_vmlCanvasManager._version = 888; })(); } // if Modified: trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.min.js =================================================================== --- trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.min.js 2013-06-26 07:55:01 UTC (rev 21850) +++ trunk/qooxdoo-contrib/QxJqPlot/trunk/source/resource/jqPlot/excanvas.min.js 2013-07-07 12:53:49 UTC (rev 21851) @@ -1,30 +1,3 @@ -/** - * jqPlot - * Pure JavaScript plotting plugin using jQuery - * - * Version: @VERSION - * - * Copyright (c) 2009-2011 Chris Leonello - * jqPlot is currently available for use in all personal or commercial projects - * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL - * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can - * choose the license that best suits your project and use it accordingly. - * - * Although not required, the author would appreciate an email letting him - * know of any substantial use of jqPlot. You can reach the author at: - * chris at jqplot dot com or see http://www.jqplot.com/info.php . - * - * If you are feeling kind and generous, consider supporting the project by - * making a donation at: http://www.jqplot.com/donate.php . - * - * sprintf functions contained in jqplot.sprintf.js by Ash Searle: - * - * version 2007.04.27 - * author Ash Searle - * http://hexmen.com/blog/2007/03/printf-sprintf/ - * http://hexmen.com/js/sprintf.js - * The author (Ash Searle) has placed this code in the public domain: - * "This code is unrestricted: you are free to use it however you like." - * - */ -if(!document.createElement("canvas").getContext){(function(){var ab=Math;var n=ab.round;var l=ab.sin;var A=ab.cos;var H=ab.abs;var N=ab.sqrt;var d=10;var f=d/2;var z=+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function y(){return this.context_||(this.context_=new D(this))}var t=Array.prototype.slice;function g(j,m,p){var i=t.call(arguments,2);return function(){return j.apply(m,i.concat(t.call(arguments)))}}function af(i){return String(i).replace(/&/g,"&").replace(/"/g,""")}function Y(m,j,i){if(!m.namespaces[j]){m.namespaces.add(j,i,"#default#VML")}}function R(j){Y(j,"g_vml_","urn:schemas-microsoft-com:vml");Y(j,"g_o_","urn:schemas-microsoft-com:office:office");if(!j.styleSheets.ex_canvas_){var i=j.createStyleSheet();i.owningElement.id="ex_canvas_";i.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}R(document);var e={init:function(i){var j=i||document;j.createElement("canvas");j.attachEvent("onreadystatechange",g(this.init_,this,j))},init_:function(p){var m=p.getElementsByTagName("canvas");for(var j=0;j<m.length;j++){this.initElement(m[j])}},initElement:function(j){if(!j.getContext){j.getContext=y;R(j.ownerDocument);j.innerHTML="";j.attachEvent("onpropertychange",x);j.attachEvent("onresize",W);var i=j.attributes;if(i.width&&i.width.specified){j.style.width=i.width.nodeValue+"px"}else{j.width=j.clientWidth}if(i.height&&i.height.specified){j.style.height=i.height.nodeValue+"px"}else{j.height=j.clientHeight}}return j},uninitElement:function(j){if(j.getContext){var i=j.getContext();delete i.element_;delete i.canvas;j.innerHTML="";j.context_=null;j.getContext=null;j.detachEvent("onpropertychange",x);j.detachEvent("onresize",W)}}};function x(j){var i=j.srcElement;switch(j.propertyName){case"width":i.getContext().clearRect();i.style.width=i.attributes.width.nodeValue+"px";i.firstChild.style.width=i.clientWidth+"px";break;case"height":i.getContext().clearRect();i.style.height=i.attributes.height.nodeValue+"px";i.firstChild.style.height=i.clientHeight+"px";break}}function W(j){var i=j.srcElement;if(i.firstChild){i.firstChild.style.width=i.clientWidth+"px";i.firstChild.style.height=i.clientHeight+"px"}}e.init();var k=[];for(var ae=0;ae<16;ae++){for(var ad=0;ad<16;ad++){k[ae*16+ad]=ae.toString(16)+ad.toString(16)}}function B(){return[[1,0,0],[0,1,0],[0,0,1]]}function J(p,m){var j=B();for(var i=0;i<3;i++){for(var ah=0;ah<3;ah++){var Z=0;for(var ag=0;ag<3;ag++){Z+=p[i][ag]*m[ag][ah]}j[i][ah]=Z}}return j}function v(j,i){i.fillStyle=j.fillStyle;i.lineCap=j.lineCap;i.lineJoin=j.lineJoin;i.lineWidth=j.lineWidth;i.miterLimit=j.miterLimit;i.shadowBlur=j.shadowBlur;i.shadowColor=j.shadowColor;i.shadowOffsetX=j.shadowOffsetX;i.shadowOffsetY=j.shadowOffsetY;i.strokeStyle=j.strokeStyle;i.globalAlpha=j.globalAlpha;i.font=j.font;i.textAlign=j.textAlign;i.textBaseline=j.textBaseline;i.arcScaleX_=j.arcScaleX_;i.arcScaleY_=j.arcScaleY_;i.lineScale_=j.lineScale_}var b={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"};function M(j){var p=j.indexOf("(",3);var i=j.indexOf(")",p+1);var m=j.substring(p+1,i).split(",");if(m.length!=4||j.charAt(3)!="a"){m[3]=1}return m}function c(i){return parseFloat(i)/100}function r(j,m,i){return Math.min(i,Math.max(m,j))}function I(ag){var i,ai,aj,ah,ak,Z;ah=parseFloat(ag[0])/360%360;if(ah<0){ah++}ak=r(c(ag[1]),0,1);Z=r(c(ag[2]),0,1);if(ak==0){i=ai=aj=Z}else{var j=Z<0.5?Z*(1+ak):Z+ak-Z*ak;var m=2*Z-j;i=a(m,j,ah+1/3);ai=a(m,j,ah);aj=a(m,j,ah-1/3)}return"#"+k[Math.floor(i*255)]+k[Math.floor(ai*255)]+k[Math.floor(aj*255)]}function a(j,i,m){if(m<0){m++}if(m>1){m--}if(6*m<1){return j+(i-j)*6*m}else{if(2*m<1){return i}else{if(3*m<2){return j+(i-j)*(2/3-m)*6}else{return j}}}}var C={};function F(j){if(j in C){return C[j]}var ag,Z=1;j=String(j);if(j.charAt(0)=="#"){ag=j}else{if(/^rgb/.test(j)){var p=M(j);var ag="#",ah;for(var m=0;m<3;m++){if(p[m].indexOf("%")!=-1){ah=Math.floor(c(p[m])*255)}else{ah=+p[m]}ag+=k[r(ah,0,255)]}Z=+p[3]}else{if(/^hsl/.test(j)){var p=M(j);ag=I(p);Z=p[3]}else{ag=b[j]||j}}}return C[j]={color:ag,alpha:Z}}var o={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var L={};function E(i){if(L[i]){return L[i]}var p=document.createElement("div");var m=p.style;try{m.font=i}catch(j){}return L[i]={style:m.fontStyle||o.style,variant:m.fontVariant||o.variant,weight:m.fontWeight||o.weight,size:m.fontSize||o.size,family:m.fontFamily||o.family}}function u(m,j){var i={};for(var ah in m){i[ah]=m[ah]}var ag=parseFloat(j.currentStyle.fontSize),Z=parseFloat(m.size);if(typeof m.size=="number"){i.size=m.size}else{if(m.size.indexOf("px")!=-1){i.size=Z}else{if(m.size.indexOf("em")!=-1){i.size=ag*Z}else{if(m.size.indexOf("%")!=-1){i.size=(ag/100)*Z}else{if(m.size.indexOf("pt")!=-1){i.size=Z/0.75}else{i.size=ag}}}}}i.size*=0.981;return i}function ac(i){return i.style+" "+i.variant+" "+i.weight+" "+i.size+"px "+i.family}var s={butt:"flat",round:"round"};function S(i){return s[i]||"square"}function D(i){this.m_=B();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=d*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var m="width:"+i.clientWidth+"px;height:"+i.clientHeight+"px;overflow:hidden;position:absolute";var j=i.ownerDocument.createElement("div");j.style.cssText=m;i.appendChild(j);var p=j.cloneNode(false);p.style.backgroundColor="red";p.style.filter="alpha(opacity=0)";i.appendChild(p);this.element_=j;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var q=D.prototype;q.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};q.beginPath=function(){this.currentPath_=[]};q.moveTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"moveTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.lineTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"lineTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.bezierCurveTo=function(m,j,ak,aj,ai,ag){var i=V(this,ai,ag);var ah=V(this,m,j);var Z=V(this,ak,aj);K(this,ah,Z,i)};function K(i,Z,m,j){i.currentPath_.push({type:"bezierCurveTo",cp1x:Z.x,cp1y:Z.y,cp2x:m.x,cp2y:m.y,x:j.x,y:j.y});i.currentX_=j.x;i.currentY_=j.y}q.quadraticCurveTo=function(ai,m,j,i){var ah=V(this,ai,m);var ag=V(this,j,i);var aj={x:this.currentX_+2/3*(ah.x-this.currentX_),y:this.currentY_+2/3*(ah.y-this.currentY_)};var Z={x:aj.x+(ag.x-this.currentX_)/3,y:aj.y+(ag.y-this.currentY_)/3};K(this,aj,Z,ag)};q.arc=function(al,aj,ak,ag,j,m){ak*=d;var ap=m?"at":"wa";var am=al+A(ag)*ak-f;var ao=aj+l(ag)*ak-f;var i=al+A(j)*ak-f;var an=aj+l(j)*ak-f;if(am==i&&!m){am+=0.125}var Z=V(this,al,aj);var ai=V(this,am,ao);var ah=V(this,i,an);this.currentPath_.push({type:ap,x:Z.x,y:Z.y,radius:ak,xStart:ai.x,yStart:ai.y,xEnd:ah.x,yEnd:ah.y})};q.rect=function(m,j,i,p){this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath()};q.strokeRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.stroke();this.currentPath_=Z};q.fillRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.fill();this.currentPath_=Z};q.createLinearGradient=function(j,p,i,m){var Z=new U("gradient");Z.x0_=j;Z.y0_=p;Z.x1_=i;Z.y1_=m;return Z};q.createRadialGradient=function(p,ag,m,j,Z,i){var ah=new U("gradientradial");ah.x0_=p;ah.y0_=ag;ah.r0_=m;ah.x1_=j;ah.y1_=Z;ah.r1_=i;return ah};q.drawImage=function(aq,m){var aj,ah,al,ay,ao,am,at,aA;var ak=aq.runtimeStyle.width;var ap=aq.runtimeStyle.height;aq.runtimeStyle.width="auto";aq.runtimeStyle.height="auto";var ai=aq.width;var aw=aq.height;aq.runtimeStyle.width=ak;aq.runtimeStyle.height=ap;if(arguments.length==3){aj=arguments[1];ah=arguments[2];ao=am=0;at=al=ai;aA=ay=aw}else{if(arguments.length==5){aj=arguments[1];ah=arguments[2];al=arguments[3];ay=arguments[4];ao=am=0;at=ai;aA=aw}else{if(arguments.length==9){ao=arguments[1];am=arguments[2];at=arguments[3];aA=arguments[4];aj=arguments[5];ah=arguments[6];al=arguments[7];ay=arguments[8]}else{throw Error("Invalid number of arguments")}}}var az=V(this,aj,ah);var p=at/2;var j=aA/2;var ax=[];var i=10;var ag=10;ax.push(" <g_vml_:group",' coordsize="',d*i,",",d*ag,'"',' coordorigin="0,0"',' style="width:',i,"px;height:",ag,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]||this.m_[1][1]!=1||this.m_[1][0]){var Z=[];Z.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",n(az.x/d),",","Dy=",n(az.y/d),"");var av=az;var au=V(this,aj+al,ah);var ar=V(this,aj,ah+ay);var an=V(this,aj+al,ah+ay);av.x=ab.max(av.x,au.x,ar.x,an.x);av.y=ab.max(av.y,au.y,ar.y,an.y);ax.push("padding:0 ",n(av.x/d),"px ",n(av.y/d),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",Z.join(""),", sizingmethod='clip');")}else{ax.push("top:",n(az.y/d),"px;left:",n(az.x/d),"px;")}ax.push(' ">','<g_vml_:image src="',aq.src,'"',' style="width:',d*al,"px;"," height:",d*ay,'px"',' cropleft="',ao/ai,'"',' croptop="',am/aw,'"',' cropright="',(ai-ao-at)/ai,'"',' cropbottom="',(aw-am-aA)/aw,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",ax.join(""))};q.stroke=function(al){var aj=[];var Z=false;var m=10;var am=10;aj.push("<g_vml_:shape",' filled="',!!al,'"',' style="position:absolute;width:',m,"px;height:",am,'px;"',' coordorigin="0,0"',' coordsize="',d*m,",",d*am,'"',' stroked="',!al,'"',' path="');var an=false;var ag={x:null,y:null};var ak={x:null,y:null};for(var ah=0;ah<this.currentPath_.length;ah++){var j=this.currentPath_[ah];var ai;switch(j.type){case"moveTo":ai=j;aj.push(" m ",n(j.x),",",n(j.y));break;case"lineTo":aj.push(" l ",n(j.x),",",n(j.y));break;case"close":aj.push(" x ");j=null;break;case"bezierCurveTo":aj.push(" c ",n(j.cp1x),",",n(j.cp1y),",",n(j.cp2x),",",n(j.cp2y),",",n(j.x),",",n(j.y));break;case"at":case"wa":aj.push(" ",j.type," ",n(j.x-this.arcScaleX_*j.radius),",",n(j.y-this.arcScaleY_*j.radius)," ",n(j.x+this.arcScaleX_*j.radius),",",n(j.y+this.arcScaleY_*j.radius)," ",n(j.xStart),",",n(j.yStart)," ",n(j.xEnd),",",n(j.yEnd));break}if(j){if(ag.x==null||j.x<ag.x){ag.x=j.x}if(ak.x==null||j.x>ak.x){ak.x=j.x}if(ag.y==null||j.y<ag.y){ag.y=j.y}if(ak.y==null||j.y>ak.y){ak.y=j.y}}}aj.push(' ">');if(!al){w(this,aj)}else{G(this,aj,ag,ak)}aj.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",aj.join(""))};function w(m,ag){var j=F(m.strokeStyle);var p=j.color;var Z=j.alpha*m.globalAlpha;var i=m.lineScale_*m.lineWidth;if(i<1){Z*=i}ag.push("<g_vml_:stroke",' opacity="',Z,'"',' joinstyle="',m.lineJoin,'"',' miterlimit="',m.miterLimit,'"',' endcap="',S(m.lineCap),'"',' weight="',i,'px"',' color="',p,'" />')}function G(aq,ai,aK,ar){var aj=aq.fillStyle;var aB=aq.arcScaleX_;var aA=aq.arcScaleY_;var j=ar.x-aK.x;var p=ar.y-aK.y;if(aj instanceof U){var an=0;var aF={x:0,y:0};var ax=0;var am=1;if(aj.type_=="gradient"){var al=aj.x0_/aB;var m=aj.y0_/aA;var ak=aj.x1_/aB;var aM=aj.y1_/aA;var aJ=V(aq,al,m);var aI=V(aq,ak,aM);var ag=aI.x-aJ.x;var Z=aI.y-aJ.y;an=Math.atan2(ag,Z)*180/Math.PI;if(an<0){an+=360}if(an<0.000001){an=0}}else{var aJ=V(aq,aj.x0_,aj.y0_);aF={x:(aJ.x-aK.x)/j,y:(aJ.y-aK.y)/p};j/=aB*d;p/=aA*d;var aD=ab.max(j,p);ax=2*aj.r0_/aD;am=2*aj.r1_/aD-ax}var av=aj.colors_;av.sort(function(aN,i){return aN.offset-i.offset});var ap=av.length;var au=av[0].color;var at=av[ap-1].color;var az=av[0].alpha*aq.globalAlpha;var ay=av[ap-1].alpha*aq.globalAlpha;var aE=[];for(var aH=0;aH<ap;aH++){var ao=av[aH];aE.push(ao.offset*am+ax+" "+ao.color)}ai.push('<g_vml_:fill type="',aj.type_,'"',' method="none" focus="100%"',' color="',au,'"',' color2="',at,'"',' colors="',aE.join(","),'"',' opacity="',ay,'"',' g_o_:opacity2="',az,'"',' angle="',an,'"',' focusposition="',aF.x,",",aF.y,'" />')}else{if(aj instanceof T){if(j&&p){var ah=-aK.x;var aC=-aK.y;ai.push("<g_vml_:fill",' position="',ah/j*aB*aB,",",aC/p*aA*aA,'"',' type="tile"',' src="',aj.src_,'" />')}}else{var aL=F(aq.fillStyle);var aw=aL.color;var aG=aL.alpha*aq.globalAlpha;ai.push('<g_vml_:fill color="',aw,'" opacity="',aG,'" />')}}}q.fill=function(){this.stroke(true)};q.closePath=function(){this.currentPath_.push({type:"close"})};function V(j,Z,p){var i=j.m_;return{x:d*(Z*i[0][0]+p*i[1][0]+i[2][0])-f,y:d*(Z*i[0][1]+p*i[1][1]+i[2][1])-f}}q.save=function(){var i={};v(this,i);this.aStack_.push(i);this.mStack_.push(this.m_);this.m_=J(B(),this.m_)};q.restore=function(){if(this.aStack_.length){v(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function h(i){return isFinite(i[0][0])&&isFinite(i[0][1])&&isFinite(i[1][0])&&isFinite(i[1][1])&&isFinite(i[2][0])&&isFinite(i[2][1])}function aa(j,i,p){if(!h(i)){return}j.m_=i;if(p){var Z=i[0][0]*i[1][1]-i[0][1]*i[1][0];j.lineScale_=N(H(Z))}}q.translate=function(m,j){var i=[[1,0,0],[0,1,0],[m,j,1]];aa(this,J(i,this.m_),false)};q.rotate=function(j){var p=A(j);var m=l(j);var i=[[p,m,0],[-m,p,0],[0,0,1]];aa(this,J(i,this.m_),false)};q.scale=function(m,j){this.arcScaleX_*=m;this.arcScaleY_*=j;var i=[[m,0,0],[0,j,0],[0,0,1]];aa(this,J(i,this.m_),true)};q.transform=function(Z,p,ah,ag,j,i){var m=[[Z,p,0],[ah,ag,0],[j,i,1]];aa(this,J(m,this.m_),true)};q.setTransform=function(ag,Z,ai,ah,p,j){var i=[[ag,Z,0],[ai,ah,0],[p,j,1]];aa(this,i,true)};q.drawText_=function(am,ak,aj,ap,ai){var ao=this.m_,at=1000,j=0,ar=at,ah={x:0,y:0},ag=[];var i=u(E(this.font),this.element_);var p=ac(i);var au=this.element_.currentStyle;var Z=this.textAlign.toLowerCase();switch(Z){case"left":case"center":case"right":break;case"end":Z=au.direction=="ltr"?"right":"left";break;case"start":Z=au.direction=="rtl"?"right":"left";break;default:Z="left"}switch(this.textBaseline){case"hanging":case"top":ah.y=i.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":ah.y=-i.size/2.25;break}switch(Z){case"right":j=at;ar=0.05;break;case"center":j=ar=at/2;break}var aq=V(this,ak+ah.x,aj+ah.y);ag.push('<g_vml_:line from="',-j,' 0" to="',ar,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!ai,'" stroked="',!!ai,'" style="position:absolute;width:1px;height:1px;">');if(ai){w(this,ag)}else{G(this,ag,{x:-j,y:0},{x:ar,y:i.size})}var an=ao[0][0].toFixed(3)+","+ao[1][0].toFixed(3)+","+ao[0][1].toFixed(3)+","+ao[1][1].toFixed(3)+",0,0";var al=n(aq.x/d)+","+n(aq.y/d);ag.push('<g_vml_:skew on="t" matrix="',an,'" ',' offset="',al,'" origin="',j,' 0" />','<g_vml_:path textpathok="true" />','<g_vml_:textpath on="true" string="',af(am),'" style="v-text-align:',Z,";font:",af(p),'" /></g_vml_:line>');this.element_.insertAdjacentHTML("beforeEnd",ag.join(""))};q.fillText=function(m,i,p,j){this.drawText_(m,i,p,j,false)};q.strokeText=function(m,i,p,j){this.drawText_(m,i,p,j,true)};q.measureText=function(m){if(!this.textMeasureEl_){var i='<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>';this.element_.insertAdjacentHTML("beforeEnd",i);this.textMeasureEl_=this.element_.lastChild}var j=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(j.createTextNode(m));return{width:this.textMeasureEl_.offsetWidth}};q.clip=function(){};q.arcTo=function(){};q.createPattern=function(j,i){return new T(j,i)};function U(i){this.type_=i;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}U.prototype.addColorStop=function(j,i){i=F(i);this.colors_.push({offset:j,color:i.color,alpha:i.alpha})};function T(j,i){Q(j);switch(i){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=i;break;default:O("SYNTAX_ERR")}this.src_=j.src;this.width_=j.width;this.height_=j.height}function O(i){throw new P(i)}function Q(i){if(!i||i.nodeType!=1||i.tagName!="IMG"){O("TYPE_MISMATCH_ERR")}if(i.readyState!="complete"){O("INVALID_STATE_ERR")}}function P(i){this.code=this[i];this.message=i+": DOM Exception "+this.code}var X=P.prototype=new Error;X.INDEX_SIZE_ERR=1;X.DOMSTRING_SIZE_ERR=2;X.HIERARCHY_REQUEST_ERR=3;X.WRONG_DOCUMENT_ERR=4;X.INVALID_CHARACTER_ERR=5;X.NO_DATA_ALLOWED_ERR=6;X.NO_MODIFICATION_ALLOWED_ERR=7;X.NOT_FOUND_ERR=8;X.NOT_SUPPORTED_ERR=9;X.INUSE_ATTRIBUTE_ERR=10;X.INVALID_STATE_ERR=11;X.SYNTAX_ERR=12;X.INVALID_MODIFICATION_ERR=13;X.NAMESPACE_ERR=14;X.INVALID_ACCESS_ERR=15;X.VALIDATION_ERR=16;X.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=e;CanvasRenderingContext2D=D;CanvasGradient=U;CanvasPattern=T;DOMException=P})()}; \ No newline at end of file +/* jqPlot @VERSION | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello + */if(!document.createElement("canvas").getContext){(function(){var ab=Math;var n=ab.round;var l=ab.sin;var A=ab.cos;var H=ab.abs;var N=ab.sqrt;var d=10;var f=d/2;var z=+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function y(){return this.context_||(this.context_=new D(this))}var t=Array.prototype.slice;function g(j,m,p){var i=t.call(arguments,2);return function(){return j.apply(m,i.concat(t.call(arguments)))}}function af(i){return String(i).replace(/&/g,"&").replace(/"/g,""")}function Y(m,j,i){if(!m.namespaces[j]){m.namespaces.add(j,i,"#default#VML")}}function R(j){Y(j,"g_vml_","urn:schemas-microsoft-com:vml");Y(j,"g_o_","urn:schemas-microsoft-com:office:office");if(!j.styleSheets.ex_canvas_){var i=j.createStyleSheet();i.owningElement.id="ex_canvas_";i.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}R(document);var e={init:function(i){var j=i||document;j.createElement("canvas");j.attachEvent("onreadystatechange",g(this.init_,this,j))},init_:function(p){var m=p.getElementsByTagName("canvas");for(var j=0;j<m.length;j++){this.initElement(m[j])}},initElement:function(j){if(!j.getContext){j.getContext=y;R(j.ownerDocument);j.innerHTML="";j.attachEvent("onpropertychange",x);j.attachEvent("onresize",W);var i=j.attributes;if(i.width&&i.width.specified){j.style.width=i.width.nodeValue+"px"}else{j.width=j.clientWidth}if(i.height&&i.height.specified){j.style.height=i.height.nodeValue+"px"}else{j.height=j.clientHeight}}return j},uninitElement:function(j){if(j.getContext){var i=j.getContext();delete i.element_;delete i.canvas;j.innerHTML="";j.context_=null;j.getContext=null;j.detachEvent("onpropertychange",x);j.detachEvent("onresize",W)}}};function x(j){var i=j.srcElement;switch(j.propertyName){case"width":i.getContext().clearRect();i.style.width=i.attributes.width.nodeValue+"px";i.firstChild.style.width=i.clientWidth+"px";break;case"height":i.getContext().clearRect();i.style.height=i.attributes.height.nodeValue+"px";i.firstChild.style.height=i.clientHeight+"px";break}}function W(j){var i=j.srcElement;if(i.firstChild){i.firstChild.style.width=i.clientWidth+"px";i.firstChild.style.height=i.clientHeight+"px"}}e.init();var k=[];for(var ae=0;ae<16;ae++){for(var ad=0;ad<16;ad++){k[ae*16+ad]=ae.toString(16)+ad.toString(16)}}function B(){return[[1,0,0],[0,1,0],[0,0,1]]}function J(p,m){var j=B();for(var i=0;i<3;i++){for(var ah=0;ah<3;ah++){var Z=0;for(var ag=0;ag<3;ag++){Z+=p[i][ag]*m[ag][ah]}j[i][ah]=Z}}return j}function v(j,i){i.fillStyle=j.fillStyle;i.lineCap=j.lineCap;i.lineJoin=j.lineJoin;i.lineWidth=j.lineWidth;i.miterLimit=j.miterLimit;i.shadowBlur=j.shadowBlur;i.shadowColor=j.shadowColor;i.shadowOffsetX=j.shadowOffsetX;i.shadowOffsetY=j.shadowOffsetY;i.strokeStyle=j.strokeStyle;i.globalAlpha=j.globalAlpha;i.font=j.font;i.textAlign=j.textAlign;i.textBaseline=j.textBaseline;i.arcScaleX_=j.arcScaleX_;i.arcScaleY_=j.arcScaleY_;i.lineScale_=j.lineScale_}var b={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"};function M(j){var p=j.indexOf("(",3);var i=j.indexOf(")",p+1);var m=j.substring(p+1,i).split(",");if(m.length!=4||j.charAt(3)!="a"){m[3]=1}return m}function c(i){return parseFloat(i)/100}function r(j,m,i){return Math.min(i,Math.max(m,j))}function I(ag){var i,ai,aj,ah,ak,Z;ah=parseFloat(ag[0])/360%360;if(ah<0){ah++}ak=r(c(ag[1]),0,1);Z=r(c(ag[2]),0,1);if(ak==0){i=ai=aj=Z}else{var j=Z<0.5?Z*(1+ak):Z+ak-Z*ak;var m=2*Z-j;i=a(m,j,ah+1/3);ai=a(m,j,ah);aj=a(m,j,ah-1/3)}return"#"+k[Math.floor(i*255)]+k[Math.floor(ai*255)]+k[Math.floor(aj*255)]}function a(j,i,m){if(m<0){m++}if(m>1){m--}if(6*m<1){return j+(i-j)*6*m}else{if(2*m<1){return i}else{if(3*m<2){return j+(i-j)*(2/3-m)*6}else{return j}}}}var C={};function F(j){if(j in C){return C[j]}var ag,Z=1;j=String(j);if(j.charAt(0)=="#"){ag=j}else{if(/^rgb/.test(j)){var p=M(j);var ag="#",ah;for(var m=0;m<3;m++){if(p[m].indexOf("%")!=-1){ah=Math.floor(c(p[m])*255)}else{ah=+p[m]}ag+=k[r(ah,0,255)]}Z=+p[3]}else{if(/^hsl/.test(j)){var p=M(j);ag=I(p);Z=p[3]}else{ag=b[j]||j}}}return C[j]={color:ag,alpha:Z}}var o={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var L={};function E(i){if(L[i]){return L[i]}var p=document.createElement("div");var m=p.style;try{m.font=i}catch(j){}return L[i]={style:m.fontStyle||o.style,variant:m.fontVariant||o.variant,weight:m.fontWeight||o.weight,size:m.fontSize||o.size,family:m.fontFamily||o.family}}function u(m,j){var i={};for(var ah in m){i[ah]=m[ah]}var ag=parseFloat(j.currentStyle.fontSize),Z=parseFloat(m.size);if(typeof m.size=="number"){i.size=m.size}else{if(m.size.indexOf("px")!=-1){i.size=Z}else{if(m.size.indexOf("em")!=-1){i.size=ag*Z}else{if(m.size.indexOf("%")!=-1){i.size=(ag/100)*Z}else{if(m.size.indexOf("pt")!=-1){i.size=Z/0.75}else{i.size=ag}}}}}i.size*=0.981;i.family="'"+i.family.replace(/(\'|\")/g,"").replace(/\s*,\s*/g,"', '")+"'";return i}function ac(i){return i.style+" "+i.variant+" "+i.weight+" "+i.size+"px "+i.family}var s={butt:"flat",round:"round"};function S(i){return s[i]||"square"}function D(i){this.m_=B();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=d*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var m="width:"+i.clientWidth+"px;height:"+i.clientHeight+"px;overflow:hidden;position:absolute";var j=i.ownerDocument.createElement("div");j.style.cssText=m;i.appendChild(j);var p=j.cloneNode(false);p.style.backgroundColor="red";p.style.filter="alpha(opacity=0)";i.appendChild(p);this.element_=j;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var q=D.prototype;q.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};q.beginPath=function(){this.currentPath_=[]};q.moveTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"moveTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.lineTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"lineTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.bezierCurveTo=function(m,j,ak,aj,ai,ag){var i=V(this,ai,ag);var ah=V(this,m,j);var Z=V(this,ak,aj);K(this,ah,Z,i)};function K(i,Z,m,j){i.currentPath_.push({type:"bezierCurveTo",cp1x:Z.x,cp1y:Z.y,cp2x:m.x,cp2y:m.y,x:j.x,y:j.y});i.currentX_=j.x;i.currentY_=j.y}q.quadraticCurveTo=function(ai,m,j,i){var ah=V(this,ai,m);var ag=V(this,j,i);var aj={x:this.currentX_+2/3*(ah.x-this.currentX_),y:this.currentY_+2/3*(ah.y-this.currentY_)};var Z={x:aj.x+(ag.x-this.currentX_)/3,y:aj.y+(ag.y-this.currentY_)/3};K(this,aj,Z,ag)};q.arc=function(al,aj,ak,ag,j,m){ak*=d;var ap=m?"at":"wa";var am=al+A(ag)*ak-f;var ao=aj+l(ag)*ak-f;var i=al+A(j)*ak-f;var an=aj+l(j)*ak-f;if(am==i&&!m){am+=0.125}var Z=V(this,al,aj);var ai=V(this,am,ao);var ah=V(this,i,an);this.currentPath_.push({type:ap,x:Z.x,y:Z.y,radius:ak,xStart:ai.x,yStart:ai.y,xEnd:ah.x,yEnd:ah.y})};q.rect=function(m,j,i,p){this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath()};q.strokeRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.stroke();this.currentPath_=Z};q.fillRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.fill();this.currentPath_=Z};q.createLinearGradient=function(j,p,i,m){var Z=new U("gradient");Z.x0_=j;Z.y0_=p;Z.x1_=i;Z.y1_=m;return Z};q.createRadialGradient=function(p,ag,m,j,Z,i){var ah=new U("gradientradial");ah.x0_=p;ah.y0_=ag;ah.r0_=m;ah.x1_=j;ah.y1_=Z;ah.r1_=i;return ah};q.drawImage=function(aq,m){var aj,ah,al,ay,ao,am,at,aA;var ak=aq.runtimeStyle.width;var ap=aq.runtimeStyle.height;aq.runtimeStyle.width="auto";aq.runtimeStyle.height="auto";var ai=aq.width;var aw=aq.height;aq.runtimeStyle.width=ak;aq.runtimeStyle.height=ap;if(arguments.length==3){aj=arguments[1];ah=arguments[2];ao=am=0;at=al=ai;aA=ay=aw}else{if(arguments.length==5){aj=arguments[1];ah=arguments[2];al=arguments[3];ay=arguments[4];ao=am=0;at=ai;aA=aw}else{if(arguments.length==9){ao=arguments[1];am=arguments[2];at=arguments[3];aA=arguments[4];aj=arguments[5];ah=arguments[6];al=arguments[7];ay=arguments[8]}else{throw Error("Invalid number of arguments")}}}var az=V(this,aj,ah);var p=at/2;var j=aA/2;var ax=[];var i=10;var ag=10;ax.push(" <g_vml_:group",' coordsize="',d*i,",",d*ag,'"',' coordorigin="0,0"',' style="width:',i,"px;height:",ag,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]||this.m_[1][1]!=1||this.m_[1][0]){var Z=[];Z.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",n(az.x/d),",","Dy=",n(az.y/d),"");var av=az;var au=V(this,aj+al,ah);var ar=V(this,aj,ah+ay);var an=V(this,aj+al,ah+ay);av.x=ab.max(av.x,au.x,ar.x,an.x);av.y=ab.max(av.y,au.y,ar.y,an.y);ax.push("padding:0 ",n(av.x/d),"px ",n(av.y/d),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",Z.join(""),", sizingmethod='clip');")}else{ax.push("top:",n(az.y/d),"px;left:",n(az.x/d),"px;")}ax.push(' ">','<g_vml_:image src="',aq.src,'"',' style="width:',d*al,"px;"," height:",d*ay,'px"',' cropleft="',ao/ai,'"',' croptop="',am/aw,'"',' cropright="',(ai-ao-at)/ai,'"',' cropbottom="',(aw-am-aA)/aw,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",ax.join(""))};q.stroke=function(al){var aj=[];var Z=false;var m=10;var am=10;aj.push("<g_vml_:shape",' filled="',!!al,'"',' style="position:absolute;width:',m,"px;height:",am,'px;"',' coordorigin="0,0"',' coordsize="',d*m,",",d*am,'"',' stroked="',!al,'"',' path="');var an=false;var ag={x:null,y:null};var ak={x:null,y:null};for(var ah=0;ah<this.currentPath_.length;ah++){var j=this.currentPath_[ah];var ai;switch(j.type){case"moveTo":ai=j;aj.push(" m ",n(j.x),",",n(j.y));break;case"lineTo":aj.push(" l ",n(j.x),",",n(j.y));break;case"close":aj.push(" x ");j=null;break;case"bezierCurveTo":aj.push(" c ",n(j.cp1x),",",n(j.cp1y),",",n(j.cp2x),",",n(j.cp2y),",",n(j.x),",",n(j.y));break;case"at":case"wa":aj.push(" ",j.type," ",n(j.x-this.arcScaleX_*j.radius),",",n(j.y-this.arcScaleY_*j.radius)," ",n(j.x+this.arcScaleX_*j.radius),",",n(j.y+this.arcScaleY_*j.radius)," ",n(j.xStart),",",n(j.yStart)," ",n(j.xEnd),",",n(j.yEnd));break}if(j){if(ag.x==null||j.x<ag.x){ag.x=j.x}if(ak.x==null||j.x>ak.x){ak.x=j.x}if(ag.y==null||j.y<ag.y){ag.y=j.y}if(ak.y==null||j.y>ak.y){ak.y=j.y}}}aj.push(' ">');if(!al){w(this,aj)}else{G(this,aj,ag,ak)}aj.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",aj.join(""))};function w(m,ag){var j=F(m.strokeStyle);var p=j.color;var Z=j.alpha*m.globalAlpha;var i=m.lineScale_*m.lineWidth;if(i<1){Z*=i}ag.push("<g_vml_:stroke",' opacity="',Z,'"',' joinstyle="',m.lineJoin,'"',' miterlimit="',m.miterLimit,'"',' endcap="',S(m.lineCap),'"',' weight="',i,'px"',' color="',p,'" />')}function G(aq,ai,aK,ar){var aj=aq.fillStyle;var aB=aq.arcScaleX_;var aA=aq.arcScaleY_;var j=ar.x-aK.x;var p=ar.y-aK.y;if(aj instanceof U){var an=0;var aF={x:0,y:0};var ax=0;var am=1;if(aj.type_=="gradient"){var al=aj.x0_/aB;var m=aj.y0_/aA;var ak=aj.x1_/aB;var aM=aj.y1_/aA;var aJ=V(aq,al,m);var aI=V(aq,ak,aM);var ag=aI.x-aJ.x;var Z=aI.y-aJ.y;an=Math.atan2(ag,Z)*180/Math.PI;if(an<0){an+=360}if(an<0.000001){an=0}}else{var aJ=V(aq,aj.x0_,aj.y0_);aF={x:(aJ.x-aK.x)/j,y:(aJ.y-aK.y)/p};j/=aB*d;p/=aA*d;var aD=ab.max(j,p);ax=2*aj.r0_/aD;am=2*aj.r1_/aD-ax}var av=aj.colors_;av.sort(function(aN,i){return aN.offset-i.offset});var ap=av.length;var au=av[0].color;var at=av[ap-1].color;var az=av[0].alpha*aq.globalAlpha;var ay=av[ap-1].alpha*aq.globalAlpha;var aE=[];for(var aH=0;aH<ap;aH++){var ao=av[aH];aE.push(ao.offset*am+ax+" "+ao.color)}ai.push('<g_vml_:fill type="',aj.type_,'"',' method="none" focus="100%"',' color="',au,'"',' color2="',at,'"',' colors="',aE.join(","),'"',' opacity="',ay,'"',' g_o_:opacity2="',az,'"',' angle="',an,'"',' focusposition="',aF.x,",",aF.y,'" />')}else{if(aj instanceof T){if(j&&p){var ah=-aK.x;var aC=-aK.y;ai.push("<g_vml_:fill",' position="',ah/j*aB*aB,",",aC/p*aA*aA,'"',' type="tile"',' src="',aj.src_,'" />')}}else{var aL=F(aq.fillStyle);var aw=aL.color;var aG=aL.alpha*aq.globalAlpha;ai.push('<g_vml_:fill color="',aw,'" opacity="',aG,'" />')}}}q.fill=function(){this.stroke(true)};q.closePath=function(){this.currentPath_.push({type:"close"})};function V(j,Z,p){var i=j.m_;return{x:d*(Z*i[0][0]+p*i[1][0]+i[2][0])-f,y:d*(Z*i[0][1]+p*i[1][1]+i[2][1])-f}}q.save=function(){var i={};v(this,i);this.aStack_.push(i);this.mStack_.push(this.m_);this.m_=J(B(),this.m_)};q.restore=function(){if(this.aStack_.length){v(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function h(i){return isFinite(i[0][0])&&isFinite(i[0][1])&&isFinite(i[1][0])&&isFinite(i[1][1])&&isFinite(i[2][0])&&isFinite(i[2][1])}function aa(j,i,p){if(!h(i)){return}j.m_=i;if(p){var Z=i[0][0]*i[1][1]-i[0][1]*i[1][0];j.lineScale_=N(H(Z))}}q.translate=function(m,j){var i=[[1,0,0],[0,1,0],[m,j,1]];aa(this,J(i,this.m_),false)};q.rotate=function(j){var p=A(j);var m=l(j);var i=[[p,m,0],[-m,p,0],[0,0,1]];aa(this,J(i,this.m_),false)};q.scale=function(m,j){this.arcScaleX_*=m;this.arcScaleY_*=j;var i=[[m,0,0],[0,j,0],[0,0,1]];aa(this,J(i,this.m_),true)};q.transform=function(Z,p,ah,ag,j,i){var m=[[Z,p,0],[ah,ag,0],[j,i,1]];aa(this,J(m,this.m_),true)};q.setTransform=function(ag,Z,ai,ah,p,j){var i=[[ag,Z,0],[ai,ah,0],[p,j,1]];aa(this,i,true)};q.drawText_=function(am,ak,aj,ap,ai){var ao=this.m_,at=1000,j=0,ar=at,ah={x:0,y:0},ag=[];var i=u(E(this.font),this.element_);var p=ac(i);var au=this.element_.currentStyle;var Z=this.textAlign.toLowerCase();switch(Z){case"left":case"center":case"right":break;case"end":Z=au.direction=="ltr"?"right":"left";break;case"start":Z=au.direction=="rtl"?"right":"left";break;default:Z="left"}switch(this.textBaseline){case"hanging":case"top":ah.y=i.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":ah.y=-i.size/2.25;break}switch(Z){case"right":j=at;ar=0.05;break;case"center":j=ar=at/2;break}var aq=V(this,ak+ah.x,aj+ah.y);ag.push('<g_vml_:line from="',-j,' 0" to="',ar,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!ai,'" stroked="',!!ai,'" style="position:absolute;width:1px;height:1px;">');if(ai){w(this,ag)}else{G(this,ag,{x:-j,y:0},{x:ar,y:i.size})}var an=ao[0][0].toFixed(3)+","+ao[1][0].toFixed(3)+","+ao[0][1].toFixed(3)+","+ao[1][1].toFixed(3)+",0,0";var al=n(aq.x/d+1-ao[0][0])+","+n(aq.y/d-2*ao[1][0]);ag.push('<g_vml_:skew on="t" matrix="',an,'" ',' offset="',al,'" origin="',j,' 0" />','<g... [truncated message content] |
From: <d_w...@us...> - 2013-06-26 07:55:06
|
Revision: 21850 http://sourceforge.net/p/qooxdoo-contrib/code/21850 Author: d_wagner Date: 2013-06-26 07:55:01 +0000 (Wed, 26 Jun 2013) Log Message: ----------- updated test Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/featureconfigeditor/test_featureconfigeditor.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/featureconfigeditor/test_featureconfigeditor.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/featureconfigeditor/test_featureconfigeditor.js 2013-06-18 17:19:11 UTC (rev 21849) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/featureconfigeditor/test_featureconfigeditor.js 2013-06-26 07:55:01 UTC (rev 21850) @@ -21,19 +21,19 @@ var qxAppInst = simulation.Simulation.QXAPPINSTANCE; // - Main -------------------------------------------------------------------- -(function() { +(function() { mySim.testFailed = false; var sessionStarted = mySim.startSession(); - + if (!sessionStarted) { return; } - - mySim.__sel.click("//a[contains(text(), 'Launch Configuration Editor')]"); + + mySim.__sel.click("//a[contains(text(), 'Launch full configuration editor')]"); mySim.setupEnvironment(); - var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, + var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, "Waiting for qooxdoo application"); @@ -51,4 +51,4 @@ mySim.stop(); -})(); \ No newline at end of file +})(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2013-06-18 17:19:14
|
Revision: 21849 http://sourceforge.net/p/qooxdoo-contrib/code/21849 Author: thron7 Date: 2013-06-18 17:19:11 +0000 (Tue, 18 Jun 2013) Log Message: ----------- added 3.1 folder Added Paths: ----------- trunk/qooxdoo-contrib/Translation/3.1/ trunk/qooxdoo-contrib/Translation/3.1/feedreader/ trunk/qooxdoo-contrib/Translation/3.1/feedreader/cs.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/de.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/en.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/es.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/fr.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/it.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/nl.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/ro.po trunk/qooxdoo-contrib/Translation/3.1/feedreader/sv.po trunk/qooxdoo-contrib/Translation/3.1/framework/ trunk/qooxdoo-contrib/Translation/3.1/framework/cs.po trunk/qooxdoo-contrib/Translation/3.1/framework/de.po trunk/qooxdoo-contrib/Translation/3.1/framework/en.po trunk/qooxdoo-contrib/Translation/3.1/framework/es.po trunk/qooxdoo-contrib/Translation/3.1/framework/fr.po trunk/qooxdoo-contrib/Translation/3.1/framework/it.po trunk/qooxdoo-contrib/Translation/3.1/framework/nb.po trunk/qooxdoo-contrib/Translation/3.1/framework/nl.po trunk/qooxdoo-contrib/Translation/3.1/framework/pl.po trunk/qooxdoo-contrib/Translation/3.1/framework/pt.po trunk/qooxdoo-contrib/Translation/3.1/framework/ro.po trunk/qooxdoo-contrib/Translation/3.1/framework/sl.po trunk/qooxdoo-contrib/Translation/3.1/framework/sv.po trunk/qooxdoo-contrib/Translation/3.1/playground/ trunk/qooxdoo-contrib/Translation/3.1/showcase/ trunk/qooxdoo-contrib/Translation/3.1/showcase/cs.po trunk/qooxdoo-contrib/Translation/3.1/showcase/de.po trunk/qooxdoo-contrib/Translation/3.1/showcase/de_AT.po trunk/qooxdoo-contrib/Translation/3.1/showcase/de_DE.po trunk/qooxdoo-contrib/Translation/3.1/showcase/en.po trunk/qooxdoo-contrib/Translation/3.1/showcase/en_GB.po trunk/qooxdoo-contrib/Translation/3.1/showcase/en_US.po trunk/qooxdoo-contrib/Translation/3.1/showcase/es.po trunk/qooxdoo-contrib/Translation/3.1/showcase/es_ES.po trunk/qooxdoo-contrib/Translation/3.1/showcase/es_MX.po trunk/qooxdoo-contrib/Translation/3.1/showcase/pt.po trunk/qooxdoo-contrib/Translation/3.1/showcase/ro.po trunk/qooxdoo-contrib/Translation/3.1/showcase/ro_RO.po trunk/qooxdoo-contrib/Translation/3.1/showcase/sv.po trunk/qooxdoo-contrib/Translation/3.1/showcase/sv_SE.po Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/cs.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,78 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2012-08-27 08:22+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: Czech\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +msgid "Add" +msgstr "Přidat" + +msgid "Add a feed" +msgstr "Přidat zdroj" + +msgid "Add feed" +msgstr "Přidat zdroj" + +msgid "Back" +msgstr "Zpět" + +msgid "Cancel" +msgstr "Storno" + +msgid "Feed Information" +msgstr "Informace o zdroji" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (běží na qooxdoo)" + +msgid "Help" +msgstr "Nápověda" + +msgid "Language" +msgstr "Jazyk" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Otevřít okno nastavení." + +msgid "Posts" +msgstr "Příspěvky" + +msgid "Preferences" +msgstr "Nastavení" + +msgid "Reload" +msgstr "Obnovit" + +msgid "Reload the feeds. (%1)" +msgstr "Obnovit zdroje. (%1)" + +msgid "Remove feed" +msgstr "Odstranit zdroj" + +msgid "Static Feeds" +msgstr "Statické zdroje" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Název" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Uživatelské zdroje" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/de.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/de.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/de.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,76 @@ +# German +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"PO-Revision-Date: 2008-06-23 16:26+0200\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "Add" +msgstr "Hinzufügen" + +msgid "Add a feed" +msgstr "Feed hinzufügen" + +msgid "Add feed" +msgstr "Feed hinzufügen" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Abbrechen" + +msgid "Feed Information" +msgstr "Feed Information" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Hilfe" + +msgid "Language" +msgstr "Sprache" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Einstellungsfenster öffnen" + +msgid "Posts" +msgstr "Nachrichten" + +msgid "Preferences" +msgstr "Einstellungen" + +msgid "Reload" +msgstr "Neu laden" + +msgid "Reload the feeds. (%1)" +msgstr "Feeds neu laden. (%1)" + +msgid "Remove feed" +msgstr "Feed löschen" + +msgid "Static Feeds" +msgstr "Vordefinierte Quellen" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Eigene Quellen" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/en.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/en.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/en.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,77 @@ +# English +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2006-12-21 10:17+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "" + +msgid "Add a feed" +msgstr "" + +msgid "Add feed" +msgstr "" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Feed Information" +msgstr "" + +msgid "FeedReader (qooxdoo powered)" +msgstr "" + +msgid "Help" +msgstr "" + +msgid "Language" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Open preferences window." +msgstr "" + +msgid "Posts" +msgstr "" + +msgid "Preferences" +msgstr "" + +msgid "Reload" +msgstr "" + +msgid "Reload the feeds. (%1)" +msgstr "" + +msgid "Remove feed" +msgstr "" + +msgid "Static Feeds" +msgstr "" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "" + +msgid "URL" +msgstr "" + +msgid "User Feeds" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/es.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/es.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/es.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,78 @@ +# Spanish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2008-08-25 19:54-0500\n" +"Last-Translator: Camilo Aguilar <camilo DOT aguila AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: COLOMBIA\n" +"X-Poedit-Language: Spanish\n" + +msgid "Add" +msgstr "Agregar" + +msgid "Add a feed" +msgstr "Agregar Feed" + +msgid "Add feed" +msgstr "Agregar feed" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Feed Information" +msgstr "Información del Feed" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Ayuda" + +msgid "Language" +msgstr "Lenguaje" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Abre la ventana de preferencias" + +msgid "Posts" +msgstr "Posts" + +msgid "Preferences" +msgstr "Preferencias" + +msgid "Reload" +msgstr "Actualizar" + +msgid "Reload the feeds. (%1)" +msgstr "Recargar los feeds (%1)" + +msgid "Remove feed" +msgstr "Eliminar feed" + +msgid "Static Feeds" +msgstr "Feeds Estáticos" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Título" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Feeds del Usuario" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/fr.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/fr.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/fr.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,77 @@ +# French +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2007-04-07 11:30+0200\n" +"Last-Translator: Daniel Gagnon <redalastor AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "Add" +msgstr "Ajouter" + +msgid "Add a feed" +msgstr "Ajouter un fil" + +msgid "Add feed" +msgstr "Ajouter un fil" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Feed Information" +msgstr "Information sur le fil" + +msgid "FeedReader (qooxdoo powered)" +msgstr "Agrégateur de fils de syndication (fait à l'aide de qooxdoo)" + +msgid "Help" +msgstr "Aide" + +msgid "Language" +msgstr "Langue" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Ouvrir la fenêtre de préférences" + +msgid "Posts" +msgstr "Messages" + +msgid "Preferences" +msgstr "Préférences" + +msgid "Reload" +msgstr "Rafraichir" + +msgid "Reload the feeds. (%1)" +msgstr "Rafraichir les fils. (%1)" + +msgid "Remove feed" +msgstr "Enlever un fil" + +msgid "Static Feeds" +msgstr "Fils statiques" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titre" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Fils de l'utilisateur" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/it.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/it.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/it.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,78 @@ +# Italian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2008-08-26 18:49+0100\n" +"Last-Translator: Alessandro Sala <alessandro DOT sala AT mclink DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "Add" +msgstr "Aggiungi" + +msgid "Add a feed" +msgstr "Aggiungi un feed" + +msgid "Add feed" +msgstr "Aggiungi un feed" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Feed Information" +msgstr "Informazioni sul Feed" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (realizzato con qooxdoo)" + +msgid "Help" +msgstr "Aiuto" + +msgid "Language" +msgstr "Lingua" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Apri la finestra delle preferenze." + +msgid "Posts" +msgstr "Messaggi" + +msgid "Preferences" +msgstr "Preferenze" + +msgid "Reload" +msgstr "Ricarica" + +msgid "Reload the feeds. (%1)" +msgstr "Ricarica i feed. (%1)" + +msgid "Remove feed" +msgstr "Rimuovi il feed" + +msgid "Static Feeds" +msgstr "Feed statici" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titolo" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Feed utente" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/nl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/nl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/nl.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,76 @@ +# Dutch +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2009-12-11 23:51+0100\n" +"Last-Translator: Isaak Malik <isooik AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "Toevoegen" + +msgid "Add a feed" +msgstr "Een feed toevoegen" + +msgid "Add feed" +msgstr "Feed toevoegen" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Annuleren" + +msgid "Feed Information" +msgstr "Feed Informatie" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo powered)" + +msgid "Help" +msgstr "Help" + +msgid "Language" +msgstr "Taal" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Open voorkeuren venster." + +msgid "Posts" +msgstr "Berichten" + +msgid "Preferences" +msgstr "Voorkeuren" + +msgid "Reload" +msgstr "Herladen" + +msgid "Reload the feeds. (%1)" +msgstr "Feeds herladen. (%1)" + +msgid "Remove feed" +msgstr "Feed verwijderen" + +msgid "Static Feeds" +msgstr "Statische Feeds" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Gebruiker Feeds" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/ro.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/ro.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/ro.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,77 @@ +# Romanian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-07 07:59+0200\n" +"PO-Revision-Date: 2010-11-08 15:35+0200\n" +"Last-Translator: Gabriel Munteanu <gabriel DOT munteanu AT 1and1 DOT ro>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Add" +msgstr "Adaugă" + +msgid "Add a feed" +msgstr "Adaugă un flux" + +msgid "Add feed" +msgstr "Adaugă flux" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Anulează" + +msgid "Feed Information" +msgstr "Informații despre flux" + +msgid "FeedReader (qooxdoo powered)" +msgstr "Cititor de Fluxuri (bazat pe qooxdoo)" + +msgid "Help" +msgstr "Ajutor" + +msgid "Language" +msgstr "Limbă" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Deschide fereastra de preferințe" + +msgid "Posts" +msgstr "Articole" + +msgid "Preferences" +msgstr "Preferințe" + +msgid "Reload" +msgstr "Reîncarcă" + +msgid "Reload the feeds. (%1)" +msgstr "Reîncarcă fluxurile. (%1)" + +msgid "Remove feed" +msgstr "Şterge flux" + +msgid "Static Feeds" +msgstr "Fluxuri statice" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titlu" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Fluxuri utilizator" Added: trunk/qooxdoo-contrib/Translation/3.1/feedreader/sv.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/feedreader/sv.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/feedreader/sv.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,77 @@ +# Swedish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo feedreader\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-11-09 22:22+0100\n" +"PO-Revision-Date: 2008-08-27 11:10+0100\n" +"Last-Translator: Henric Johansson <henric DOT johansson AT mindset DOT se>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +msgid "Add" +msgstr "Lägg till" + +msgid "Add a feed" +msgstr "Lägg till ett flöde" + +msgid "Add feed" +msgstr "Lägg till flöde" + +msgid "Back" +msgstr "" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Feed Information" +msgstr "Flödesinformation" + +msgid "FeedReader (qooxdoo powered)" +msgstr "FeedReader (qooxdoo driven)" + +msgid "Help" +msgstr "Hjälp" + +msgid "Language" +msgstr "Språk" + +msgid "OK" +msgstr "OK" + +msgid "Open preferences window." +msgstr "Öppna inställningsfönstret" + +msgid "Posts" +msgstr "Poster" + +msgid "Preferences" +msgstr "Inställningar" + +msgid "Reload" +msgstr "Uppdatera" + +msgid "Reload the feeds. (%1)" +msgstr "Ladda om flödena. (%1)" + +msgid "Remove feed" +msgstr "Ta bort flöde" + +msgid "Static Feeds" +msgstr "Statiska flöden" + +msgid "Theme" +msgstr "" + +msgid "Title" +msgstr "Titel" + +msgid "URL" +msgstr "URL" + +msgid "User Feeds" +msgstr "Användarflöden" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/cs.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/cs.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/cs.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,293 @@ +# Czech +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2012-08-27 09:23+0100\n" +"Last-Translator: Lukáš Slánský <lu...@sl...>\n" +"Language-Team: Lukáš Slánský <lu...@sl...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: Czech\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +msgid "%1 does not fit %2." +msgstr "%1 neodpovídá %2." + +msgid "%1 is not a color! %2" +msgstr "%1 není barva! %2" + +msgid "%1 is not a number." +msgstr "%1 není číslo." + +msgid "%1 is not a string." +msgstr "%1 není řetězec." + +msgid "%1 is not an url." +msgstr "%1 není URL." + +msgid "%1 is not in %2" +msgstr "%1 není v %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 není v intervalu [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' není e-mailová adresa." + +msgid "Automatic" +msgstr "Automaticky" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Storno" + +msgid "Color Selector" +msgstr "Výběr barvy" + +msgid "Details" +msgstr "Podrobnosti" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Předchozí měsíc" + +msgid "Last year" +msgstr "Předchozí rok" + +msgid "Next month" +msgstr "Další měsíc" + +msgid "Next year" +msgstr "Další rok" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Otevřít Výběr barvy" + +msgid "Presets" +msgstr "Předvolby" + +msgid "Preview (Old/New)" +msgstr "Náhled (starý/nový)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Obnovit šířky sloupců" + +msgid "This field is required" +msgstr "Toto pole je povinné" + +msgid "Visual" +msgstr "Vizuální" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Kontextové menu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Ctrl" + +msgid "key_full_Control_Mac" +msgstr "Ctrl" + +msgid "key_full_Delete" +msgstr "Del" + +msgid "key_full_Down" +msgstr "Dolů" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Esc" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Ins" + +msgid "key_full_Left" +msgstr "Doleva" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Num" + +msgid "key_full_PageDown" +msgstr "Page Down" + +msgid "key_full_PageUp" +msgstr "Page Up" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Print Screen" + +msgid "key_full_Right" +msgstr "Doprava" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Mezerník" + +msgid "key_full_Tab" +msgstr "Tab" + +msgid "key_full_Up" +msgstr "Nahoru" + +msgid "key_full_Win" +msgstr "Win" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Kontext" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "Ctrl" + +msgid "key_short_Delete" +msgstr "Delete" + +msgid "key_short_Down" +msgstr "Dolů" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Doleva" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrSc" + +msgid "key_short_Right" +msgstr "Doprava" + +msgid "key_short_Scroll" +msgstr "ScLck" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Mezera" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Nahoru" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "jeden řádek z jednoho" +msgstr[1] "%1 ze %2 řádků" +msgstr[2] "%1 z %2 řádků" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "jeden řádek" +msgstr[1] "%1 řádky" +msgstr[2] "%1 řádků" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/de.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/de.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/de.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,291 @@ +# German +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-22 17:53+0100\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 passt nicht zu %2." + +msgid "%1 is not a color! %2" +msgstr "%1 ist keine Farbe! %2" + +msgid "%1 is not a number." +msgstr "%1 ist keine Nummer." + +msgid "%1 is not a string." +msgstr "%1 ist keine Zeichenkette." + +msgid "%1 is not an url." +msgstr "%1 ist keine URL." + +msgid "%1 is not in %2" +msgstr "%1 ist nicht in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 liegt nicht im Intervall [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' ist keine Emailadresse." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Basic Colors" +msgstr "Grundfarben" + +msgid "Cancel" +msgstr "Abbruch" + +msgid "Color Selector" +msgstr "Farbauswahl" + +msgid "Details" +msgstr "Details" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Vorheriger Monat" + +msgid "Last year" +msgstr "Vorheriges Jahr" + +msgid "Next month" +msgstr "Nächster Monat" + +msgid "Next year" +msgstr "Nächstes Jahr" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Öffne Farbauswahl" + +msgid "Presets" +msgstr "Voreinstellungen" + +msgid "Preview (Old/New)" +msgstr "Vorschau (alt/neu)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "Zuletzt benutzte Farben" + +msgid "Reset column widths" +msgstr "Spaltenbreite zurücksetzen" + +msgid "This field is required" +msgstr "Dieses Feld ist erforderlich" + +msgid "Visual" +msgstr "Visuell" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Kontextmenü" + +msgid "key_full_Backspace" +msgstr "Rücktaste" + +msgid "key_full_CapsLock" +msgstr "Feststelltaste" + +msgid "key_full_Control" +msgstr "Steuerung" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Entfernen" + +msgid "key_full_Down" +msgstr "Pfeil runter" + +msgid "key_full_End" +msgstr "Ende" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Position 1" + +msgid "key_full_Insert" +msgstr "Einfügen" + +msgid "key_full_Left" +msgstr "Pfeil links" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "NumLock" + +msgid "key_full_PageDown" +msgstr "Bild runter" + +msgid "key_full_PageUp" +msgstr "Bild hoch" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Drucken" + +msgid "key_full_Right" +msgstr "Pfeil rechts" + +msgid "key_full_Scroll" +msgstr "Rollen" + +msgid "key_full_Shift" +msgstr "Umschalttaste" + +msgid "key_full_Space" +msgstr "Leertaste" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Pfeil hoch" + +msgid "key_full_Win" +msgstr "Windowstaste" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Kontext" + +msgid "key_short_Backspace" +msgstr "Rück" + +msgid "key_short_CapsLock" +msgstr "Feststell" + +msgid "key_short_Control" +msgstr "Strg" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Entf" + +msgid "key_short_Down" +msgstr "Runter" + +msgid "key_short_End" +msgstr "Ende" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Pos1" + +msgid "key_short_Insert" +msgstr "Einfg" + +msgid "key_short_Left" +msgstr "Links" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "Bild runter" + +msgid "key_short_PageUp" +msgstr "Bild hoch" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "Druck" + +msgid "key_short_Right" +msgstr "Rechts" + +msgid "key_short_Scroll" +msgstr "Rollen" + +msgid "key_short_Shift" +msgstr "Umschalt" + +msgid "key_short_Space" +msgstr "Leer" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Hoch" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "Eine von einer Zeile" +msgstr[1] "%1 von %2 Zeilen" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "Eine Zeile" +msgstr[1] "%1 Zeilen" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/en.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/en.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/en.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,290 @@ +# English +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2007-01-23 17:53+0100\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ASCII\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "%1 does not fit %2." +msgstr "" + +msgid "%1 is not a color! %2" +msgstr "" + +msgid "%1 is not a number." +msgstr "" + +msgid "%1 is not a string." +msgstr "" + +msgid "%1 is not an url." +msgstr "" + +msgid "%1 is not in %2" +msgstr "" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "" + +msgid "'%1' is not an email address." +msgstr "" + +msgid "Automatic" +msgstr "" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "" + +msgid "Color Selector" +msgstr "" + +msgid "Details" +msgstr "" + +msgid "HSB" +msgstr "" + +msgid "Hex" +msgstr "" + +msgid "Last month" +msgstr "" + +msgid "Last year" +msgstr "" + +msgid "Next month" +msgstr "" + +msgid "Next year" +msgstr "" + +msgid "OK" +msgstr "" + +msgid "Open ColorSelector" +msgstr "" + +msgid "Presets" +msgstr "" + +msgid "Preview (Old/New)" +msgstr "" + +msgid "RGB" +msgstr "" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "" + +msgid "This field is required" +msgstr "" + +msgid "Visual" +msgstr "" + +msgid "key_full_Alt" +msgstr "" + +msgid "key_full_Apps" +msgstr "" + +msgid "key_full_Backspace" +msgstr "" + +msgid "key_full_CapsLock" +msgstr "" + +msgid "key_full_Control" +msgstr "" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "" + +msgid "key_full_Down" +msgstr "" + +msgid "key_full_End" +msgstr "" + +msgid "key_full_Enter" +msgstr "" + +msgid "key_full_Escape" +msgstr "" + +msgid "key_full_Home" +msgstr "" + +msgid "key_full_Insert" +msgstr "" + +msgid "key_full_Left" +msgstr "" + +msgid "key_full_Meta" +msgstr "" + +msgid "key_full_NumLock" +msgstr "" + +msgid "key_full_PageDown" +msgstr "" + +msgid "key_full_PageUp" +msgstr "" + +msgid "key_full_Pause" +msgstr "" + +msgid "key_full_PrintScreen" +msgstr "" + +msgid "key_full_Right" +msgstr "" + +msgid "key_full_Scroll" +msgstr "" + +msgid "key_full_Shift" +msgstr "" + +msgid "key_full_Space" +msgstr "" + +msgid "key_full_Tab" +msgstr "" + +msgid "key_full_Up" +msgstr "" + +msgid "key_full_Win" +msgstr "" + +msgid "key_short_Alt" +msgstr "" + +msgid "key_short_Apps" +msgstr "" + +msgid "key_short_Backspace" +msgstr "" + +msgid "key_short_CapsLock" +msgstr "" + +msgid "key_short_Control" +msgstr "" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "" + +msgid "key_short_Down" +msgstr "" + +msgid "key_short_End" +msgstr "" + +msgid "key_short_Enter" +msgstr "" + +msgid "key_short_Escape" +msgstr "" + +msgid "key_short_Home" +msgstr "" + +msgid "key_short_Insert" +msgstr "" + +msgid "key_short_Left" +msgstr "" + +msgid "key_short_Meta" +msgstr "" + +msgid "key_short_NumLock" +msgstr "" + +msgid "key_short_PageDown" +msgstr "" + +msgid "key_short_PageUp" +msgstr "" + +msgid "key_short_Pause" +msgstr "" + +msgid "key_short_PrintScreen" +msgstr "" + +msgid "key_short_Right" +msgstr "" + +msgid "key_short_Scroll" +msgstr "" + +msgid "key_short_Shift" +msgstr "" + +msgid "key_short_Space" +msgstr "" + +msgid "key_short_Tab" +msgstr "" + +msgid "key_short_Up" +msgstr "" + +msgid "key_short_Win" +msgstr "" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "" +msgstr[1] "" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "" +msgstr[1] "" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/es.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/es.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/es.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,291 @@ +# Spanish +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-20 17:10+0200\n" +"PO-Revision-Date: 2010-04-26 19:59-0500\n" +"Last-Translator: Carsten Rammoser <carsten AT rammoser DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-Language: Spanish\n" + +msgid "%1 does not fit %2." +msgstr "%1 no corresponde con %2." + +msgid "%1 is not a color! %2" +msgstr "%1 no es un color! %2" + +msgid "%1 is not a number." +msgstr "%1 no es un número." + +msgid "%1 is not a string." +msgstr "%1 no es una cadena de caracteres." + +msgid "%1 is not an url." +msgstr "%1 no es un url." + +msgid "%1 is not in %2" +msgstr "%1 no se encuentra en %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 no se encuentra en el rango [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' no es un correo electrónico." + +msgid "Automatic" +msgstr "Automático" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Cancelar" + +msgid "Color Selector" +msgstr "Selector de color" + +msgid "Details" +msgstr "Detalles" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Último mes" + +msgid "Last year" +msgstr "Último año" + +msgid "Next month" +msgstr "Mes siguiente" + +msgid "Next year" +msgstr "Año siguiente" + +msgid "OK" +msgstr "Aceptar" + +msgid "Open ColorSelector" +msgstr "Abrir Selector de Color" + +msgid "Presets" +msgstr "Preselecciones" + +msgid "Preview (Old/New)" +msgstr "Vista previa (Viejo/Nuevo)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Reestablecer anchos de columnas" + +msgid "This field is required" +msgstr "Este cuadro es obligatorio" + +msgid "Visual" +msgstr "Visual" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Aplicaciones" + +msgid "key_full_Backspace" +msgstr "Retroceso" + +msgid "key_full_CapsLock" +msgstr "Bloqueo Mayúsculas" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Suprimir" + +msgid "key_full_Down" +msgstr "Flecha abajo" + +msgid "key_full_End" +msgstr "Fin" + +msgid "key_full_Enter" +msgstr "Intro" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Inicio" + +msgid "key_full_Insert" +msgstr "Insertar" + +msgid "key_full_Left" +msgstr "Flecha izquierda" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Bloqueo Numérico" + +msgid "key_full_PageDown" +msgstr "Avanzar Página" + +msgid "key_full_PageUp" +msgstr "Retroceder Página" + +msgid "key_full_Pause" +msgstr "Pausa" + +msgid "key_full_PrintScreen" +msgstr "Imprimir Pantalla" + +msgid "key_full_Right" +msgstr "Flecha derecha" + +msgid "key_full_Scroll" +msgstr "Bloq. Despl." + +msgid "key_full_Shift" +msgstr "Mayúscula" + +msgid "key_full_Space" +msgstr "Espacio" + +msgid "key_full_Tab" +msgstr "Tabulador" + +msgid "key_full_Up" +msgstr "Flecha arriba" + +msgid "key_full_Win" +msgstr "Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Aplic" + +msgid "key_short_Backspace" +msgstr "Retroceso" + +msgid "key_short_CapsLock" +msgstr "BloqMayús" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Supr" + +msgid "key_short_Down" +msgstr "Abajo" + +msgid "key_short_End" +msgstr "Fin" + +msgid "key_short_Enter" +msgstr "Intro" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Inicio" + +msgid "key_short_Insert" +msgstr "Insert" + +msgid "key_short_Left" +msgstr "Izquierda" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "BloqNum" + +msgid "key_short_PageDown" +msgstr "AvPág" + +msgid "key_short_PageUp" +msgstr "RePág" + +msgid "key_short_Pause" +msgstr "Pausa" + +msgid "key_short_PrintScreen" +msgstr "ImprPant" + +msgid "key_short_Right" +msgstr "Derecha" + +msgid "key_short_Scroll" +msgstr "BloqDespl" + +msgid "key_short_Shift" +msgstr "Mayús" + +msgid "key_short_Space" +msgstr "Espacio" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Arriba" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "una de una fila" +msgstr[1] "%1 de %2 filas" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "una fila" +msgstr[1] "%1 filas" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/fr.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/fr.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/fr.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,289 @@ +# French +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-27 15:58-0500\n" +"Last-Translator: Julien Raclot <julien DOT raclot AT 1and1 DOT fr>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "%1 does not fit %2." +msgstr "%1 ne correspond pas à %2." + +msgid "%1 is not a color! %2" +msgstr "%1 n'est pas une couleur ! %2" + +msgid "%1 is not a number." +msgstr "%1 n'est pas un chiffre." + +msgid "%1 is not a string." +msgstr "%1 n'est pas une chaîne de caractères." + +msgid "%1 is not an url." +msgstr "%1 n'est pas un URL." + +msgid "%1 is not in %2" +msgstr "%1 n'est pas dans %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 n'est pas dans l'intervalle [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1'n'est pas une adresse email." + +msgid "Automatic" +msgstr "Automatique" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Annuler" + +msgid "Color Selector" +msgstr "Sélecteur de couleurs" + +msgid "Details" +msgstr "Détails" + +msgid "HSB" +msgstr "TSV" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Mois dernier" + +msgid "Last year" +msgstr "Année dernière" + +msgid "Next month" +msgstr "Mois prochain" + +msgid "Next year" +msgstr "Année prochaine" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Ouvrir le sélecteur de couleurs" + +msgid "Presets" +msgstr "Pré-réglages" + +msgid "Preview (Old/New)" +msgstr "Aperçu (Ancien/Nouveau)" + +msgid "RGB" +msgstr "RVB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Réinitialiser la largeur des colonnes" + +msgid "This field is required" +msgstr "ce champ est requis" + +msgid "Visual" +msgstr "" + +msgid "key_full_Alt" +msgstr "Alternative" + +msgid "key_full_Apps" +msgstr "Application" + +msgid "key_full_Backspace" +msgstr "Effacement arrière" + +msgid "key_full_CapsLock" +msgstr "Verrouillage des Majuscule" + +msgid "key_full_Control" +msgstr "Contrôle" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Suppression" + +msgid "key_full_Down" +msgstr "Bas" + +msgid "key_full_End" +msgstr "Fin" + +msgid "key_full_Enter" +msgstr "Entrée" + +msgid "key_full_Escape" +msgstr "Échappement" + +msgid "key_full_Home" +msgstr "Origine" + +msgid "key_full_Insert" +msgstr "Insertion" + +msgid "key_full_Left" +msgstr "Gauche" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Verouillage Numérique" + +msgid "key_full_PageDown" +msgstr "Page Suivante" + +msgid "key_full_PageUp" +msgstr "Page Précédente" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "Impression de l'écran" + +msgid "key_full_Right" +msgstr "Droite" + +msgid "key_full_Scroll" +msgstr "Arrêt défilement" + +msgid "key_full_Shift" +msgstr "Majuscules" + +msgid "key_full_Space" +msgstr "Espace" + +msgid "key_full_Tab" +msgstr "Tabulation" + +msgid "key_full_Up" +msgstr "Haut" + +msgid "key_full_Win" +msgstr "Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "App." + +msgid "key_short_Backspace" +msgstr "Effacement Arrière" + +msgid "key_short_CapsLock" +msgstr "Verr. Maj." + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Supp." + +msgid "key_short_Down" +msgstr "Bas" + +msgid "key_short_End" +msgstr "Fin" + +msgid "key_short_Enter" +msgstr "Entrée" + +msgid "key_short_Escape" +msgstr "Echap." + +msgid "key_short_Home" +msgstr "Orig." + +msgid "key_short_Insert" +msgstr "Ins." + +msgid "key_short_Left" +msgstr "Gauche" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Verr. Num." + +msgid "key_short_PageDown" +msgstr "Pg Suiv." + +msgid "key_short_PageUp" +msgstr "Pg Préc." + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "Imp. Écran" + +msgid "key_short_Right" +msgstr "Droite" + +msgid "key_short_Scroll" +msgstr "Arrêt Défil" + +msgid "key_short_Shift" +msgstr "Maj" + +msgid "key_short_Space" +msgstr "Espace" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Haut" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "une ligne sur une" +msgstr[1] "%1 lignes sur %2" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "une ligne" +msgstr[1] "%1 lignes" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/it.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/it.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/it.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,291 @@ +# Italian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-01-15 10:00+0100\n" +"PO-Revision-Date: 2010-04-23 22:22+0200\n" +"Last-Translator: Alessandro Sala <alessandro DOT sala AT mclink DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 non corrisponde a %2." + +msgid "%1 is not a color! %2" +msgstr "%1 non è un colore! %2" + +msgid "%1 is not a number." +msgstr "%1 non è un numero." + +msgid "%1 is not a string." +msgstr "%1 non è una stringa." + +msgid "%1 is not an url." +msgstr "%1 non è un url." + +msgid "%1 is not in %2" +msgstr "%1 non è contenuto in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 non è compreso nell'intervallo [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' non è un indirizzo email." + +msgid "Automatic" +msgstr "Automatico" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Annulla" + +msgid "Color Selector" +msgstr "Selettore dei Colori" + +msgid "Details" +msgstr "Dettagli" + +msgid "HSB" +msgstr "TSL" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Mese precedente" + +msgid "Last year" +msgstr "Anno precedente" + +msgid "Next month" +msgstr "Mese successivo" + +msgid "Next year" +msgstr "Anno successivo" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Apri il Selettore dei Colori" + +msgid "Presets" +msgstr "Predefiniti" + +msgid "Preview (Old/New)" +msgstr "Anteprima (Vecchio/Nuovo)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Ripristina le larghezze delle colonne" + +msgid "This field is required" +msgstr "Questo campo è obbligatorio" + +msgid "Visual" +msgstr "Selezione visuale" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Tasto Menu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Blocca Maiuscole" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Cancella" + +msgid "key_full_Down" +msgstr "Freccia Giù" + +msgid "key_full_End" +msgstr "Fine" + +msgid "key_full_Enter" +msgstr "Invio" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Inizio" + +msgid "key_full_Insert" +msgstr "Inserisci" + +msgid "key_full_Left" +msgstr "Freccia Sinistra" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Blocca Numeri" + +msgid "key_full_PageDown" +msgstr "Pagina Giù" + +msgid "key_full_PageUp" +msgstr "Pagina Su" + +msgid "key_full_Pause" +msgstr "Pausa" + +msgid "key_full_PrintScreen" +msgstr "Stampa Schermo" + +msgid "key_full_Right" +msgstr "Freccia Destra" + +msgid "key_full_Scroll" +msgstr "Blocca Scorrimento" + +msgid "key_full_Shift" +msgstr "Maiuscole" + +msgid "key_full_Space" +msgstr "Spazio" + +msgid "key_full_Tab" +msgstr "Tabulazione" + +msgid "key_full_Up" +msgstr "Freccia Su" + +msgid "key_full_Win" +msgstr "Tasto Windows" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Menu" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Bloc Maiusc" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Canc" + +msgid "key_short_Down" +msgstr "Giù" + +msgid "key_short_End" +msgstr "Fine" + +msgid "key_short_Enter" +msgstr "Invio" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Inizio" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Sinistra" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Bloc Num" + +msgid "key_short_PageDown" +msgstr "Pag Giù" + +msgid "key_short_PageUp" +msgstr "Pag Su" + +msgid "key_short_Pause" +msgstr "Pausa" + +msgid "key_short_PrintScreen" +msgstr "Stamp" + +msgid "key_short_Right" +msgstr "Destra" + +msgid "key_short_Scroll" +msgstr "Bloc Scorr" + +msgid "key_short_Shift" +msgstr "Maiusc" + +msgid "key_short_Space" +msgstr "Spazio" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Su" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "una di una riga" +msgstr[1] "%1 di %2 righe" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "una riga" +msgstr[1] "%1 righe" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/nb.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/nb.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/nb.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,290 @@ +# Norwegian +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2011-03-16 17:16+0100\n" +"Last-Translator: Stefan Andersson <stefan DOT andersson AT live DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "%1 does not fit %2." +msgstr "%1 passer ikke inn %2." + +msgid "%1 is not a color! %2" +msgstr "%1 er ikke en farge! %2" + +msgid "%1 is not a number." +msgstr "%1 er ikke et tall." + +msgid "%1 is not a string." +msgstr "%1 er ikke en streng." + +msgid "%1 is not an url." +msgstr "%1 er ikke en internettadresse (URL)." + +msgid "%1 is not in %2" +msgstr "%1 er ikke i %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 er ikke i området fra [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' er ikke en e-postadresse." + +msgid "Automatic" +msgstr "Automatisk" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Avbryt" + +msgid "Color Selector" +msgstr "fargevelger" + +msgid "Details" +msgstr "Detaljer" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Siste måned" + +msgid "Last year" +msgstr "Siste år" + +msgid "Next month" +msgstr "Neste måned" + +msgid "Next year" +msgstr "Neste år" + +msgid "OK" +msgstr "Ok" + +msgid "Open ColorSelector" +msgstr "Åpne fargevelger" + +msgid "Presets" +msgstr "Forhåndssatte" + +msgid "Preview (Old/New)" +msgstr "Forhåndsvisning (gammel/ny)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Nullstill kolonnebreddene" + +msgid "This field is required" +msgstr "Dette feltet er påkrevd" + +msgid "Visual" +msgstr "Visuell" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Apps" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "CapsLock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Delete" + +msgid "key_full_Down" +msgstr "Ned" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Insert" + +msgid "key_full_Left" +msgstr "Venstre" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "NumLock" + +msgid "key_full_PageDown" +msgstr "PageDown" + +msgid "key_full_PageUp" +msgstr "PageUp" + +msgid "key_full_Pause" +msgstr "Pause" + +msgid "key_full_PrintScreen" +msgstr "PrintScreen" + +msgid "key_full_Right" +msgstr "Høyre" + +msgid "key_full_Scroll" +msgstr "Scroll" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Space" + +msgid "key_full_Tab" +msgstr "Tab" + +msgid "key_full_Up" +msgstr "Opp" + +msgid "key_full_Win" +msgstr "Win" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Apps" + +msgid "key_short_Backspace" +msgstr "BS" + +msgid "key_short_CapsLock" +msgstr "CapsLock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Del" + +msgid "key_short_Down" +msgstr "Ned" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Venstre" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrnScn" + +msgid "key_short_Right" +msgstr "Høyre" + +msgid "key_short_Scroll" +msgstr "Scroll" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Space" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Opp" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "En av en rad" +msgstr[1] "%1 av %2 rader" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "en rad" +msgstr[1] "%1 rader" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/nl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/nl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/nl.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,289 @@ +# Dutch +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-26 23:34+0100\n" +"Last-Translator: Isaak Malik <isooik AT gmail DOT com>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "%1 does not fit %2." +msgstr "%1 past niet %2." + +msgid "%1 is not a color! %2" +msgstr "%1 is geen kleur! %2" + +msgid "%1 is not a number." +msgstr "%1 is geen nummer." + +msgid "%1 is not a string." +msgstr "%1 is geen string." + +msgid "%1 is not an url." +msgstr "%1 is geen url." + +msgid "%1 is not in %2" +msgstr "%1 is niet in %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 is niet in het bereik van [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' is geen email adres." + +msgid "Automatic" +msgstr "Automatisch" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Annuleer" + +msgid "Color Selector" +msgstr "Kleur-instelling" + +msgid "Details" +msgstr "Details" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "Hex" + +msgid "Last month" +msgstr "Laatste maand" + +msgid "Last year" +msgstr "Laatste jaar" + +msgid "Next month" +msgstr "Volgende maand" + +msgid "Next year" +msgstr "Volgend jaar" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Open Kleurkiezer" + +msgid "Presets" +msgstr "Voorkeuren" + +msgid "Preview (Old/New)" +msgstr "Voorbeeld (Oud/Nieuw)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Kolombreedte herstellen" + +msgid "This field is required" +msgstr "Dit veld is verplicht" + +msgid "Visual" +msgstr "Visueel" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Contextmenu" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "" + +msgid "key_full_Delete" +msgstr "Verwijderen" + +msgid "key_full_Down" +msgstr "Pijl omlaag" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Positie 1" + +msgid "key_full_Insert" +msgstr "Invoegen" + +msgid "key_full_Left" +msgstr "Pijl links" + +msgid "key_full_Meta" +msgstr "Meta" + +msgid "key_full_NumLock" +msgstr "Num Lock" + +msgid "key_full_PageDown" +msgstr "Volgende pagina" + +msgid "key_full_PageUp" +msgstr "Vorige pagina" + +msgid "key_full_Pause" +msgstr "Pauze" + +msgid "key_full_PrintScreen" +msgstr "Schermafbeelding" + +msgid "key_full_Right" +msgstr "Pijl rechts" + +msgid "key_full_Scroll" +msgstr "Scroll Lock" + +msgid "key_full_Shift" +msgstr "Shift" + +msgid "key_full_Space" +msgstr "Spatiebalk" + +msgid "key_full_Tab" +msgstr "Tabulator" + +msgid "key_full_Up" +msgstr "Pijl omhoog" + +msgid "key_full_Win" +msgstr "Windowstoets" + +msgid "key_short_Alt" +msgstr "Alt" + +msgid "key_short_Apps" +msgstr "Apps" + +msgid "key_short_Backspace" +msgstr "Backspace" + +msgid "key_short_CapsLock" +msgstr "Caps Lock" + +msgid "key_short_Control" +msgstr "Ctrl" + +msgid "key_short_Control_Mac" +msgstr "" + +msgid "key_short_Delete" +msgstr "Del" + +msgid "key_short_Down" +msgstr "Omlaag" + +msgid "key_short_End" +msgstr "End" + +msgid "key_short_Enter" +msgstr "Enter" + +msgid "key_short_Escape" +msgstr "Esc" + +msgid "key_short_Home" +msgstr "Home" + +msgid "key_short_Insert" +msgstr "Ins" + +msgid "key_short_Left" +msgstr "Links" + +msgid "key_short_Meta" +msgstr "Meta" + +msgid "key_short_NumLock" +msgstr "Num Lock" + +msgid "key_short_PageDown" +msgstr "PgDn" + +msgid "key_short_PageUp" +msgstr "PgUp" + +msgid "key_short_Pause" +msgstr "Pause" + +msgid "key_short_PrintScreen" +msgstr "PrtSc" + +msgid "key_short_Right" +msgstr "Rechts" + +msgid "key_short_Scroll" +msgstr "Scroll Lock" + +msgid "key_short_Shift" +msgstr "Shift" + +msgid "key_short_Space" +msgstr "Spatie" + +msgid "key_short_Tab" +msgstr "Tab" + +msgid "key_short_Up" +msgstr "Omhoog" + +msgid "key_short_Win" +msgstr "Win" + +msgid "one of one row" +msgid_plural "%1 of %2 rows" +msgstr[0] "Een van een rij" +msgstr[1] "%1 van %2 rijen" + +msgid "one row" +msgid_plural "%1 rows" +msgstr[0] "een rij" +msgstr[1] "%1 rijen" + +msgid "test Hello %1!" +msgstr "" + +msgid "test Jonny" +msgstr "" + +msgid "test One car" +msgid_plural "test %1 cars" +msgstr[0] "" +msgstr[1] "" + +msgid "test affe" +msgstr "" + +msgid "test one" +msgstr "" + +msgid "test two" +msgstr "" Added: trunk/qooxdoo-contrib/Translation/3.1/framework/pl.po =================================================================== --- trunk/qooxdoo-contrib/Translation/3.1/framework/pl.po (rev 0) +++ trunk/qooxdoo-contrib/Translation/3.1/framework/pl.po 2013-06-18 17:19:11 UTC (rev 21849) @@ -0,0 +1,290 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: qooxdoo framework\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-05-19 10:11+0200\n" +"PO-Revision-Date: 2010-04-22 17:53+0100\n" +"Last-Translator: Thomas Herchenroeder <thron7 AT users DOT sourceforge DOT net>\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgid "%1 does not fit %2." +msgstr "%1 nie pasuje do %2." + +msgid "%1 is not a color! %2" +msgstr "%1 nie jest kolorem! %2" + +msgid "%1 is not a number." +msgstr "%1 nie jest liczbą." + +msgid "%1 is not a string." +msgstr "%1 nie jest ciągiem znaków." + +msgid "%1 is not an url." +msgstr "%1 nie jest URL." + +msgid "%1 is not in %2" +msgstr "%1 nie jest w %2" + +msgid "%1 is not in the range from [%2, %3]." +msgstr "%1 nie leży w przedziale [%2, %3]." + +msgid "'%1' is not an email address." +msgstr "'%1' nie jest adresem e-mail." + +msgid "Automatic" +msgstr "Automatycznie" + +msgid "Basic Colors" +msgstr "" + +msgid "Cancel" +msgstr "Anuluj" + +msgid "Color Selector" +msgstr "Wybór kolorów" + +msgid "Details" +msgstr "Szczegóły" + +msgid "HSB" +msgstr "HSB" + +msgid "Hex" +msgstr "hex" + +msgid "Last month" +msgstr "Poprzedni miesiąc" + +msgid "Last year" +msgstr "Poprzedni rok" + +msgid "Next month" +msgstr "Następny miesiąc" + +msgid "Next year" +msgstr "Następny rok" + +msgid "OK" +msgstr "OK" + +msgid "Open ColorSelector" +msgstr "Otwórz wybór kolorów" + +msgid "Presets" +msgstr "Ustawienia wstępne" + +msgid "Preview (Old/New)" +msgstr "Podgląd (stary/nowy)" + +msgid "RGB" +msgstr "RGB" + +msgid "Recent Colors" +msgstr "" + +msgid "Reset column widths" +msgstr "Zresetuj szerokość kolumny" + +msgid "This field is required" +msgstr "To pole jest obowiązkowe" + +msgid "Visual" +msgstr "Wizualny" + +msgid "key_full_Alt" +msgstr "Alt" + +msgid "key_full_Apps" +msgstr "Menu kontekstowe" + +msgid "key_full_Backspace" +msgstr "Backspace" + +msgid "key_full_CapsLock" +msgstr "Caps Lock" + +msgid "key_full_Control" +msgstr "Control" + +msgid "key_full_Control_Mac" +msgstr "key_full_Control_Mac" + +msgid "key_full_Delete" +msgstr "Delete" + +msgid "key_full_Down" +msgstr "Strzałka w dół" + +msgid "key_full_End" +msgstr "End" + +msgid "key_full_Enter" +msgstr "Enter" + +msgid "key_full_Escape" +msgstr "Escape" + +msgid "key_full_Home" +msgstr "Home" + +msgid "key_full_Insert" +msgstr "Insert" + +msgid "key_full_Left" +msgstr "Strzałka w lewo" + +msgid "key_full_Meta" +msgstr "Klawisz meta" + +msgid "key_full_NumLock" +msgstr "Num Lock" + +m... [truncated message content] |
From: <th...@us...> - 2013-06-18 16:42:17
|
Revision: 21848 http://sourceforge.net/p/qooxdoo-contrib/code/21848 Author: thron7 Date: 2013-06-18 16:42:14 +0000 (Tue, 18 Jun 2013) Log Message: ----------- renamed 2.2 to 3.0 Added Paths: ----------- trunk/qooxdoo-contrib/Translation/3.0/ Removed Paths: ------------- trunk/qooxdoo-contrib/Translation/2.2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2013-06-05 16:41:35
|
Revision: 21847 http://sourceforge.net/p/qooxdoo-contrib/code/21847 Author: spackers Date: 2013-06-05 16:41:33 +0000 (Wed, 05 Jun 2013) Log Message: ----------- Fixes to support Qx 3.0 Modified Paths: -------------- trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/MUploadButton.js trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMgr.js Modified: trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/MUploadButton.js =================================================================== --- trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/MUploadButton.js 2013-05-31 10:42:48 UTC (rev 21846) +++ trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/MUploadButton.js 2013-06-05 16:41:33 UTC (rev 21847) @@ -32,9 +32,13 @@ members: { // overridden - capture : qx.lang.Function.empty, + capture : function() { + // Nothing + }, // overridden - releaseCapture : qx.lang.Function.empty + releaseCapture : function() { + // Nothing + } } }); \ No newline at end of file Modified: trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMgr.js =================================================================== --- trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMgr.js 2013-05-31 10:42:48 UTC (rev 21846) +++ trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMgr.js 2013-06-05 16:41:33 UTC (rev 21847) @@ -140,7 +140,7 @@ var data = this.__widgetsData[widget.toHashCode()]; if (data) { data.appearId = null; - var container = widget.getContainerElement(); + var container = widget.getContentElement(); container.setStyle("overflow", "hidden"); container.addAt(this._createInputElement(widget), 0); this.__fixupSize(widget); @@ -262,7 +262,7 @@ _resetInputElement: function(widget) { var data = this.__widgetsData[widget.toHashCode()], elem = data.inputElement, - container = widget.getContainerElement(); + container = widget.getContentElement(); data.inputElement = null; container.remove(elem); container.addAt(this._createInputElement(widget), 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2013-05-31 10:42:51
|
Revision: 21846 http://sourceforge.net/p/qooxdoo-contrib/code/21846 Author: thron7 Date: 2013-05-31 10:42:48 +0000 (Fri, 31 May 2013) Log Message: ----------- add 0.9 as copy of trunk (just to have two current versions) Added Paths: ----------- trunk/qooxdoo-contrib/SkeletonWidget/0.9/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/LICENSE.txt trunk/qooxdoo-contrib/SkeletonWidget/0.9/Manifest.json trunk/qooxdoo-contrib/SkeletonWidget/0.9/README trunk/qooxdoo-contrib/SkeletonWidget/0.9/config.json trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/SimpleButton.js trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/classic/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/classic/Appearance.js trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/ext/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/test.png trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/translation/ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/translation/readme.txt Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/LICENSE.txt =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/LICENSE.txt (rev 0) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/LICENSE.txt 2013-05-31 10:42:48 UTC (rev 21846) @@ -0,0 +1,758 @@ +qooxdoo Licensing Information +============================= + +qooxdoo may be used under the terms of either the + + * GNU Lesser General Public License (LGPL) + http://www.gnu.org/licenses/lgpl.html + +or the + + * Eclipse Public License (EPL) + http://www.eclipse.org/org/documents/epl-v10.php + +As a recipient of qooxdoo, you may choose which license to receive the code +under. Certain files or entire directories may not be covered by this +dual license, but are subject to licenses compatible to both LGPL and EPL. +License exceptions are explicitly declared in all relevant files or in a +LICENSE file in the relevant directories. + + +The full text of the LGPL and EPL licenses is attached below. + +******************************************************************************** + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +******************************************************************************** +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF +THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from and +are distributed by that particular Contributor. A Contribution +'originates' from a Contributor if it was added to the Program by such +Contributor itself or anyone acting on such Contributor's +behalf. Contributions do not include additions to the Program which: +(i) are separate modules of software distributed in conjunction with +the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor +which are necessarily infringed by the use or sale of its Contribution +alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this +Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby +grants Recipient a non-exclusive, worldwide, royalty-free copyright +license to reproduce, prepare derivative works of, publicly display, +publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and +object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby +grants Recipient a non-exclusive, worldwide, royalty-free patent +license under Licensed Patents to make, use, sell, offer to sell, +import and otherwise transfer the Contribution of such Contributor, if +any, in source code and object code form. This patent license shall +apply to the combination of the Contribution and the Program if, at +the time the Contribution is added by the Contributor, such addition +of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other +combinations which include the Contribution. No hardware per se is +licensed hereunder. + +c) Recipient understands that although each Contributor grants the +licenses to its Contributions set forth herein, no assurances are +provided by any Contributor that the Program does not infringe the +patent or other intellectual property rights of any other entity. Each +Contributor disclaims any liability to Recipient for claims brought by +any other entity based on infringement of intellectual property rights +or otherwise. As a condition to exercising the rights and licenses +granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For +example, if a third party patent license is required to allow +Recipient to distribute the Program, it is Recipient's responsibility +to acquire that license before distributing the Program. + +d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright +license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form +under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties +and conditions, express and implied, including warranties or +conditions of title and non-infringement, and implied warranties or +conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability +for damages, including direct, indirect, special, incidental and +consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement are +offered by that Contributor alone and not by any other party; and + +iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable +manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the +Program. + +Contributors may not remove or alter any copyright notices contained +within the Program. + +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain +responsibilities with respect to end users, business partners and the +like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a +commercial product offering should do so in a manner which does not +create potential liability for other Contributors. Therefore, if a +Contributor includes the Program in a commercial product offering, +such Contributor ("Commercial Contributor") hereby agrees to defend +and indemnify every other Contributor ("Indemnified Contributor") +against any losses, damages and costs (collectively "Losses") arising +from claims, lawsuits and other legal actions brought by a third party +against the Indemnified Contributor to the extent caused by the acts +or omissions of such Commercial Contributor in connection with its +distribution of the Program in a commercial product offering. The +obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: a) +promptly notify the Commercial Contributor in writing of such claim, +and b) allow the Commercial Contributor to control, and cooperate with +the Commercial Contributor in, the defense and any related settlement +negotiations. The Indemnified Contributor may participate in any such +claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS +PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY +WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its +exercise of rights under this Agreement , including but not limited to +the risks and costs of program errors, compliance with applicable +laws, damage to or loss of data, programs or equipment, and +unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR +ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), 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 OR +DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED +HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further +action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that +the Program itself (excluding combinations of the Program with other +software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of +the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it +fails to comply with any of the material terms or conditions of this +Agreement and does not cure such failure in a reasonable period of +time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use +and distribution of the Program as soon as reasonably +practicable. However, Recipient's obligations under this Agreement and +any licenses granted by Recipient relating to the Program shall +continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and +may only be modified in the following manner. The Agreement Steward +reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement +Steward has the right to modify this Agreement. The Eclipse Foundation +is the initial Agreement Steward. The Eclipse Foundation may assign +the responsibility to serve as the Agreement Steward to a suitable +separate entity. Each new version of the Agreement will be given a +distinguishing version number. The Program (including Contributions) +may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the +Agreement is published, Contributor may elect to distribute the +Program (including its Contributions) under the new version. Except as +expressly stated in Sections 2(a) and 2(b) above, Recipient receives +no rights or licenses to the intellectual property of any Contributor +under this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under this +Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and +the intellectual property laws of the United States of America. No +party to this Agreement will bring a legal action under this Agreement +more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation. + +******************************************************************************** +END OF FILE Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/Manifest.json (rev 0) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/Manifest.json 2013-05-31 10:42:48 UTC (rev 21846) @@ -0,0 +1,32 @@ +{ + "info" : + { + "name" : "SkeletonWidget", + + "summary" : "A Sample widget.", + "description": "This widget can be used as basis for other contributions", + "keywords" : ["widget", "skeleton"], + "homepage" : "http://contrib.qooxdoo.org", + + "license" : "LGPL/EPL", + "authors" : [ + { + "name" : "", + "email" : "" + } + ], + + "version" : "trunk", + "qooxdoo-versions": ["0.8"] + }, + + "provides" : + { + "namespace" : "skeletonwidget", + "encoding" : "utf-8", + "class" : "source/class", + "resource" : "source/resource", + "translation" : "source/translation", + "type" : "contribution" + } +} Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/README =================================================================== Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/config.json =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/config.json (rev 0) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/config.json 2013-05-31 10:42:48 UTC (rev 21846) @@ -0,0 +1,78 @@ +{ + "name" : "SkeletonWidget Configuration", + + "include" : + [ + { + "path" : "${QOOXDOO_PATH}/tool/data/config/application.json" + } + ], + + "export" : + [ + "api", + "build", + "clean", + "distclean", + "fix", + "inspector", + "lint", + "migration", + "pretty", + "profiling", + "source", + "source-all", + "test", + "test-source", + "translation" + ], + + "let" : + { + "APPLICATION" : "skeletonwidget", + "APPLICATION_MAIN_CLASS" : "${APPLICATION}.SimpleButton", + "QOOXDOO_PATH" : "../../qooxdoo/trunk", + "QXTHEME" : "qx.theme.Modern", + "API_EXCLUDE" : ["qx.legacy.*","qx.test.*"], + "LOCALES" : [ "en" ], + "CACHE" : "${TMPDIR}/cache", + "ROOT" : "." + } + + // You only need to edit the remainder of this file, if you want to customize + // specific jobs, or add own job definitions. + + /* + "jobs" : + { + // Uncomment the following entry to add a contrib or library to your + // project; make sure to adapt the path to the Manifest.json; if you are + // using a contrib: library, it will be downloaded into the path specified + // by the 'cache/downloads' config key + "libraries" : + { + "library" : + [ + { + "manifest" : "contrib://SkeletonApplication/trunk/Manifest.json" + } + ] + }, + + // If you want to tweak a job setting, see the following sample where + // the "format" feature of the "build-script" job is overridden. + // To see a list of available jobs, invoke 'generate.py x'. + "build-script" : + { + "compile-dist" : + { + "code" : + { + "format" : false + } + } + } + } + */ +} + Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/SimpleButton.js =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/SimpleButton.js (rev 0) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/SimpleButton.js 2013-05-31 10:42:48 UTC (rev 21846) @@ -0,0 +1,63 @@ +/* ************************************************************************ + + Copyright: + + License: + + Authors: + +************************************************************************ */ + +/* ************************************************************************ + +#asset(skeletonwidget/*) + +************************************************************************ */ + +/** + * A simple button + */ +qx.Class.define("skeletonwidget.SimpleButton", +{ + extend : qx.ui.form.Button, + + + /* + ***************************************************************************** + CONSTRUCTOR + ***************************************************************************** + */ + + construct : function(text) + { + this.base(arguments, text, "skeletonwidget/image/test.png"); + }, + + + /* + ***************************************************************************** + PROPERTIES + ***************************************************************************** + */ + + properties : + { + appearance : + { + refine : true, + init : "simple-button" + } + }, + + + /* + ***************************************************************************** + SETTINGS + ***************************************************************************** + */ + + settings : { + "skeletonwidget.resourceUri" : "./resource" + } + +}); Property changes on: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/SimpleButton.js ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/classic/Appearance.js =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/classic/Appearance.js (rev 0) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/classic/Appearance.js 2013-05-31 10:42:48 UTC (rev 21846) @@ -0,0 +1,38 @@ +/* ************************************************************************ + + Copyright: + + License: + + Authors: + +************************************************************************ */ + +/* ************************************************************************ + +#ignore(auto-use) + +************************************************************************* */ + +/** + * Button appearacne theme. + */ +qx.Theme.define("skeletonwidget.theme.classic.Appearance", +{ + title: "Classic mixin for skeletonwidget.SimpleButton", + + appearances : + { + "simple-button" : + { + include : "button", + + style : function(states) { + return { + backgroundColor : "#DFEBFD" + } + } + } + + } +}); Property changes on: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/class/skeletonwidget/theme/classic/Appearance.js ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/test.png =================================================================== (Binary files differ) Index: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/test.png =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/test.png 2013-05-27 08:47:05 UTC (rev 21845) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/test.png 2013-05-31 10:42:48 UTC (rev 21846) Property changes on: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/resource/skeletonwidget/image/test.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/translation/readme.txt =================================================================== --- trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/translation/readme.txt (rev 0) +++ trunk/qooxdoo-contrib/SkeletonWidget/0.9/source/translation/readme.txt 2013-05-31 10:42:48 UTC (rev 21846) @@ -0,0 +1,3 @@ +This directory will contain translation (.po) files once you run the +'translation' job in your project. + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2013-05-27 08:47:07
|
Revision: 21845 http://sourceforge.net/p/qooxdoo-contrib/code/21845 Author: d_wagner Date: 2013-05-27 08:47:05 +0000 (Mon, 27 May 2013) Log Message: ----------- updated test cases Modified Paths: -------------- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/demobrowser/test_demobrowser.js trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/feedreader/test_feedreader.js trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/demobrowser/test_demobrowser.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/demobrowser/test_demobrowser.js 2013-05-02 16:01:36 UTC (rev 21844) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/demobrowser/test_demobrowser.js 2013-05-27 08:47:05 UTC (rev 21845) @@ -59,7 +59,7 @@ overflowButton : "//div[contains(@style, 'media-seek-forward')]", overflowMenuLogFileButton : "//div[text() = 'Log File']/parent::div", //logEmbed : 'qxhv=[@classname="demobrowser.DemoBrowser"]/qx.ui.splitpane.Pane/qx.ui.splitpane.Pane/qx.ui.container.Stack/[@classname="qxc.ui.logpane.LogView"]/qx.ui.embed.Html' - logEmbed: '//div[@qxclass="qxc.ui.logpane.LogView"]/*/div[@qxclass="qx.ui.embed.Html"]/div' + logEmbed: '//div[@qxclass="qxc.ui.logpane.LogView"]/div[@qxclass="qx.ui.embed.Html"]/div' }; mySim.qxLog = "selenium.page().findElement('" + mySim.locators.logEmbed + "').innerHTML"; /* @@ -579,4 +579,4 @@ mySim.stop(); -})(); \ No newline at end of file +})(); Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/feedreader/test_feedreader.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/feedreader/test_feedreader.js 2013-05-02 16:01:36 UTC (rev 21844) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/feedreader/test_feedreader.js 2013-05-27 08:47:05 UTC (rev 21845) @@ -79,15 +79,15 @@ this.log("Article found.", "info"); } else { - this.log("ERROR: No Article found.", "error"); - } + this.log("ERROR: No Article found.", "error"); + } }; simulation.Simulation.prototype.checkFeeds = function() { var feedChecker = function() { - var qxApp = selenium.browserbot.getCurrentWindow().qx.core.Init.getApplication(); + var qxApp = selenium.browserbot.getCurrentWindow().qx.core.Init.getApplication(); var items = qxApp.getRoot().getChildren()[0].getChildren()[2].getChildren()[0].getItems(); var invalidFeeds = []; for (var i=0,l=items.length; i<l; i++) { @@ -97,7 +97,7 @@ } return invalidFeeds.join("|"); }; - + this.addOwnFunction("checkFeeds", feedChecker); var invalidFeeds = this.getEval("selenium.qxStoredVars['autWindow'].qx.Simulation.checkFeeds()"); invalidFeeds = String(invalidFeeds); @@ -107,22 +107,22 @@ this.log("Feed not loaded: " + invalidFeedArray[i], "warn"); } } - + }; simulation.Simulation.prototype.testLocaleSwitch = function() { - var staticFeedsLabel = this.tree + ".getItems()[0].getContentElement().getChildren()[2].getChildren()[0].getValue().toString()"; - + var staticFeedsLabel = this.tree + ".getItems()[0].getChildControl(\"label\").getValue().toString()"; + var oldLabel = this.getEval(staticFeedsLabel, "Getting label of Static Feeds"); - // Use the preferences window to change the application language - // Click the preferences button, then check if the prefs window opened. + // Use the preferences window to change the application language + // Click the preferences button, then check if the prefs window opened. this.qxClick(locators.preferencesButton, "", "Clicking Preferences button."); Packages.java.lang.Thread.sleep(2000); var prefWindowScript = 'selenium.getQxWidgetByLocator(\'' + locators.preferencesWindow + '\')'; - var isPrefWindowVisible = prefWindowScript + ".getVisibility() == 'visible'"; + var isPrefWindowVisible = prefWindowScript + ".getVisibility() == 'visible'"; this.waitForCondition(isPrefWindowVisible, 10000, "Waiting for Preferences window to open."); Packages.java.lang.Thread.sleep(2000); @@ -132,11 +132,11 @@ Packages.java.lang.Thread.sleep(2000); // Click again just to be sure (bug #2193). this.qxClick(radioItalian, "", "Selecting language"); - - // Click the "OK" button - this.qxClick(locators.buttonOk, "", "Clicking OK."); + + // Click the "OK" button + this.qxClick(locators.buttonOk, "", "Clicking OK."); Packages.java.lang.Thread.sleep(2000); - + // Check if the preferences window closed. Click "OK" again if it isn't. var prefWinVis = this.getEval(isPrefWindowVisible, "Checking if preferences window is visible"); // getEval returns an object, not a boolean @@ -144,7 +144,7 @@ this.qxClick(locators.buttonOk, "", "Clicking OK again."); Packages.java.lang.Thread.sleep(2000); } - + var isPrefWindowHidden = prefWindowScript + ".getVisibility() == 'hidden'"; this.waitForCondition(isPrefWindowHidden, 10000, "Waiting for preferences window to close"); @@ -165,7 +165,7 @@ var browser = String(this.getEval(getBrowser)); var version = String(this.getEval(getVersion)); version = parseInt(version, 10); - + return (browser == "ie" && version >= 9); }; @@ -176,7 +176,7 @@ this.log("Skipping testAddFeed", "debug"); return; } - + var lastFeedNum = this.getEval(this.tree + '.getItems().length - 1', "Getting last feed's number"); var getLastFeedLabel = this.tree + ".getItems()[" + lastFeedNum + "].getLabel()"; var lastFeedLabel = this.getEval(getLastFeedLabel, "Getting last feed's label"); @@ -184,12 +184,12 @@ // Click "Add Feed" this.qxClick(locators.addFeedButton, "", "Clicking Add Feed button"); Packages.java.lang.Thread.sleep(2000); - - var feedWindowScript = 'selenium.getQxWidgetByLocator(\'' + locators.feedWindow + '\')'; + + var feedWindowScript = 'selenium.getQxWidgetByLocator(\'' + locators.feedWindow + '\')'; var isFeedWindowVisible = feedWindowScript + ".getVisibility() == 'visible'"; this.waitForCondition(isFeedWindowVisible, 10000, "Waiting for Add Feed window to open."); Packages.java.lang.Thread.sleep(2000); - + // Check if the Add Feed window's caption was translated. var addFeedWindowLabel = feedWindowScript + ".getCaption().toString()"; var addLabel = this.getEval(addFeedWindowLabel, "Getting Add Feed window's caption"); @@ -200,14 +200,14 @@ else { this.log("Feed window has translated title", "info"); } - + // Enter new feed details this.qxType(locators.feedWindow + "/qx.ui.form.renderer.SinglePlaceholder/child[1]", "Heise"); this.qxType(locators.feedWindow + "/qx.ui.form.renderer.SinglePlaceholder/child[2]", "http://www.heise.de/newsticker/heise-atom.xml"); - + this.qxClick(locators.feedWindowButton, "", "Clicking 'Add'."); Packages.java.lang.Thread.sleep(2000); - + // Check if the Add Feed Window closed. var feedWinVis = this.getEval(isFeedWindowVisible, "Waiting for Add Feed window to close."); if (String(feedWinVis) == "true") { @@ -215,34 +215,34 @@ this.qxClick(locators.feedWindowButton, "", "Clicking 'Add'."); } - var isFeedWindowHidden = feedWindowScript + ".getVisibility() == 'hidden'"; + var isFeedWindowHidden = feedWindowScript + ".getVisibility() == 'hidden'"; this.waitForCondition(isFeedWindowHidden, 10000, "Checking if Add Feed window is closed"); - + // Check if the new feed loaded. - var newLastFeedNum = this.getEval(this.tree + ".getItems().length - 1", "Getting last feed's number"); + var newLastFeedNum = this.getEval(this.tree + ".getItems().length - 1", "Getting last feed's number"); var isNewLastFeedLoaded = this.tree + ".getItems()[" + newLastFeedNum + "].getIcon().indexOf('internet-feed-reader.png') >= 0"; - + try { - this.__sel.waitForCondition(isNewLastFeedLoaded, this.feedLoadTimeout.toString()); + this.__sel.waitForCondition(isNewLastFeedLoaded, this.feedLoadTimeout.toString()); } catch(ex) { this.log("New feed not loaded after 30 seconds, waiting another 30 sec.", "info"); this.waitForCondition(isNewLastFeedLoaded, this.feedLoadTimeout, "Waiting for new feed to load."); } - + var getNewLastFeedLabel = this.tree + ".getItems()[" + newLastFeedNum + "].getLabel()"; var newLastFeedLabel = this.getEval(getNewLastFeedLabel, "Getting new feed's label"); - + if (newLastFeedLabel != lastFeedLabel) { this.log("New feed loaded correctly.", "info"); } else { this.log("ERROR: New feed has unexpected label: " + newLastFeedLabel, "error"); } - + // Select the new feed var treeLastSelect = this.tree + ".addToSelection(" + this.tree + ".getItems()[" + newLastFeedNum + "])"; - this.getEval(treeLastSelect, "Selecting new feed."); - + this.getEval(treeLastSelect, "Selecting new feed."); + this.qxClick(locators.firstFeedItem, "", "Selecting first item from new feed."); this.checkArticle(); }; @@ -258,11 +258,11 @@ return qxImg.getContentElement().getDomElement().style.backgroundImage; } this.addOwnFunction("getImageBackground", getImageBackground); - + var imgLoc = locators.addFeedButton + "/child[0]"; var imageBackground = this.getEval('selenium.qxStoredVars["autWindow"].qx.Simulation.getImageBackground("' + imgLoc +'")'); imageBackground = String(imageBackground); - + if (imageBackground.indexOf("combined") >= 0 || imageBackground.indexOf("base64") >= 0) { this.log("Add Feed button icon uses combined image.", "info"); } else { @@ -273,37 +273,37 @@ mySim.runTest = function() { this.feedLoadTimeout = 30000; - this.tree = 'selenium.getQxWidgetByLocator("' + locators.feedTree + '")'; - + this.tree = 'selenium.getQxWidgetByLocator("' + locators.feedTree + '")'; + this.waitForFeeds(); this.checkFeeds(); - + this.__sel.setSpeed("1000"); - + this.getEval(this.tree + ".resetSelection()", "Resetting tree selection"); - this.qxClick(locators.firstFeed, "", "Selecting first feed from list"); + this.qxClick(locators.firstFeed, "", "Selecting first feed from list"); this.qxClick(locators.firstFeedItem, "", "Selecting first feed item."); this.checkArticle(); - + this.testLocaleSwitch(); - + this.testAddFeed(); - + this.checkCombinedImage(); }; // - Main -------------------------------------------------------------------- -(function() { +(function() { mySim.testFailed = false; var sessionStarted = mySim.startSession(); - + if (!sessionStarted) { return; } - var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, + var isAppReady = mySim.waitForCondition(simulation.Simulation.ISQXAPPREADY, 60000, "Waiting for qooxdoo application"); if (!isAppReady) { @@ -315,7 +315,7 @@ try { mySim.setupApplicationLogging(); mySim.addGlobalErrorHandler(); - mySim.runTest(); + mySim.runTest(); } catch(ex) { mySim.testFailed = true; Modified: trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js 2013-05-02 16:01:36 UTC (rev 21844) +++ trunk/qooxdoo-contrib/Simulator/trunk/tool/selenium/simulation/mobileshowcase/test_mobileshowcase.js 2013-05-27 08:47:05 UTC (rev 21845) @@ -117,7 +117,7 @@ } //click load button - this.qxClick("//div[contains(@class, 'toolbar-button')]/descendant::div[text() = 'Take a new picture']"); + this.qxClick("//img[contains(@src, 'camera')]"); var loadingDialogLocator = "//div[text() = 'Loading...']"; this.waitForElementPresent(loadingDialogLocator); //the loading dialog disappears after 5sec This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2013-05-02 16:01:42
|
Revision: 21844 http://sourceforge.net/p/qooxdoo-contrib/code/21844 Author: spackers Date: 2013-05-02 16:01:36 +0000 (Thu, 02 May 2013) Log Message: ----------- Add com.zenesis.qx.upload.UploadMenuButton wrapper for qx.ui.menu.Button Modified Paths: -------------- trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/class/uploadmgr/demo/Application.js trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.js Added Paths: ----------- trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMenuButton.js Modified: trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/class/uploadmgr/demo/Application.js =================================================================== --- trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/class/uploadmgr/demo/Application.js 2013-04-19 06:04:36 UTC (rev 21843) +++ trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/class/uploadmgr/demo/Application.js 2013-05-02 16:01:36 UTC (rev 21844) @@ -205,6 +205,22 @@ }); part.add(btn); + // Menu button + var menuTop = new qx.ui.toolbar.MenuButton("Menu"); + var menu = new qx.ui.menu.Menu; + var mni = new com.zenesis.qx.upload.UploadMenuButton("Add File(s)", "com/zenesis/qx/upload/test.png"); + /* + btn.set({ + label: "Upload Menu Button", + icon: "com/zenesis/qx/upload/test.png", + cursor: "pointer" + }); + */ + menu.add(mni); + menuTop.setMenu(menu); + part.add(menuTop); + uploader.addWidget(mni); + btn = new com.zenesis.qx.upload.UploadToolbarButton("Add File(s)", "com/zenesis/qx/upload/test.png"); uploader.addWidget(btn); part.add(btn); Modified: trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.js =================================================================== --- trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.js 2013-04-19 06:04:36 UTC (rev 21843) +++ trunk/qooxdoo-contrib/UploadMgr/trunk/demo/default/source/script/uploadmgr.demo.js 2013-05-02 16:01:36 UTC (rev 21844) @@ -19,7 +19,7 @@ qx.$$loader = { parts : {"boot":[0]}, - packages : {"0":{"uris":["__out__:uploadmgr.demo.d88b4fb45db4.js","qx:qx/Bootstrap.js","qx:qx/core/Environment.js","qx:qx/bom/client/EcmaScript.js","qx:qx/lang/normalize/Function.js","qx:qx/util/OOUtil.js","qx:qx/lang/normalize/Array.js","qx:qx/Mixin.js","qx:qx/core/Aspect.js","qx:qx/lang/normalize/String.js","qx:qx/lang/normalize/Object.js","qx:qx/Interface.js","qx:qx/lang/normalize/Error.js","qx:qx/lang/normalize/Date.js","qx:qx/core/Property.js","qx:qx/Class.js","qx:qx/lang/Generics.js","qx:qx/data/MBinding.js","qx:qx/data/SingleValueBinding.js","qx:qx/lang/String.js","qx:qx/lang/Array.js","qx:qx/bom/client/Engine.js","qx:qx/lang/Type.js","qx:qx/core/Assert.js","qx:qx/type/BaseError.js","qx:qx/core/AssertionError.js","qx:qx/dev/StackTrace.js","qx:qx/lang/Function.js","qx:qx/core/ObjectRegistry.js","qx:qx/bom/client/Json.js","qx:qx/lang/JsonImpl.js","qx:qx/lang/Json.js","qx:qx/data/IListData.js","qx:qx/core/ValidationError.js","qx:qx/util/RingBuffer.js","qx:qx/log/appender/RingBuffer.js","qx:qx/log/Logger.js","qx:qx/core/MLogging.js","qx:qx/dom/Node.js","qx:qx/bom/Event.js","qx:qx/event/Manager.js","qx:qx/event/GlobalError.js","qx:qx/core/WindowError.js","qx:qx/core/GlobalError.js","qx:qx/event/IEventHandler.js","qx:qx/event/Registration.js","qx:qx/core/MEvent.js","qx:qx/event/IEventDispatcher.js","qx:qx/core/MProperty.js","qx:qx/core/MAssert.js","qx:qx/core/Object.js","qx:qx/util/DisposeUtil.js","qx:qx/event/type/Event.js","qx:qx/util/ObjectPool.js","qx:qx/event/Pool.js","qx:qx/event/dispatch/Direct.js","qx:qx/event/handler/Object.js","qx:qx/event/type/Data.js","qx:qx/locale/MTranslation.js","qx:qx/application/IApplication.js","qx:qx/core/BaseInit.js","qx:qx/bom/client/OperatingSystem.js","qx:qx/event/type/Native.js","qx:qx/event/handler/Window.js","qx:qx/event/handler/Application.js","qx:qx/core/Init.js","qx:qx/application/AbstractGui.js","qx:qx/theme/manager/Meta.js","qx:qx/util/ValueManager.js","qx:qx/theme/manager/Color.js","qx:qx/util/ColorUtil.js","qx:qx/theme/manager/Decoration.js","qx:qx/lang/Object.js","qx:qx/util/Uri.js","qx:qx/ui/decoration/IDecorator.js","qx:qx/ui/decoration/Abstract.js","qx:qx/ui/decoration/DynamicDecorator.js","qx:qx/bom/client/Css.js","qx:qx/bom/client/Browser.js","qx:qx/bom/Style.js","qx:qx/bom/element/Opacity.js","qx:qx/bom/element/Clip.js","qx:qx/bom/element/Cursor.js","qx:qx/bom/element/BoxSizing.js","qx:qx/bom/element/Style.js","qx:qx/bom/Document.js","qx:qx/bom/Viewport.js","qx:qx/util/AliasManager.js","qx:qx/theme/manager/Font.js","qx:qx/bom/Font.js","qx:qx/bom/webfonts/WebFont.js","qx:qx/bom/webfonts/Manager.js","qx:qx/util/LibraryManager.js","qx:qx/bom/client/Transport.js","qx:qx/util/ResourceManager.js","qx:qx/event/Timer.js","qx:qx/bom/Stylesheet.js","qx:qx/bom/client/Stylesheet.js","qx:qx/dom/Element.js","qx:qx/bom/client/Html.js","qx:qx/bom/element/Attribute.js","qx:qx/bom/webfonts/Validator.js","qx:qx/bom/element/Dimension.js","qx:qx/theme/manager/Icon.js","qx:qx/theme/manager/Appearance.js","qx:qx/Theme.js","qx:qx/ui/tooltip/Manager.js","qx:qx/ui/core/MLayoutHandling.js","qx:qx/ui/core/LayoutItem.js","qx:qx/util/PropertyUtil.js","qx:qx/ui/core/queue/Layout.js","qx:qx/util/DeferredCallManager.js","qx:qx/type/BaseArray.js","qx:qxWeb.js","qx:qx/bom/Selector.js","qx:qx/module/Polyfill.js","qx:qx/module/Event.js","qx:qx/event/Emitter.js","qx:qx/module/Css.js","qx:qx/bom/element/Class.js","qx:qx/bom/element/Location.js","qx:qx/module/Animation.js","qx:qx/bom/element/Animation.js","qx:qx/bom/client/CssAnimation.js","qx:qx/bom/element/AnimationCss.js","qx:qx/bom/element/AnimationHandle.js","qx:qx/bom/client/CssTransform.js","qx:qx/bom/element/Transform.js","qx:qx/bom/element/AnimationJs.js","qx:qx/bom/AnimationFrame.js","qx:qx/util/DeferredCall.js","qx:qx/html/Element.js","qx:qx/event/handler/Appear.js","qx:qx/event/dispatch/AbstractBubbling.js","qx:qx/event/dispatch/DomBubbling.js","qx:qx/event/handler/Element.js","qx:qx/event/handler/UserAction.js","qx:qx/event/handler/Mouse.js","qx:qx/event/type/Dom.js","qx:qx/event/type/Mouse.js","qx:qx/event/type/MouseWheel.js","qx:qx/dom/Hierarchy.js","qx:qx/event/util/Keyboard.js","qx:qx/event/handler/Keyboard.js","qx:qx/event/type/KeyInput.js","qx:qx/event/type/KeySequence.js","qx:qx/event/handler/Focus.js","qx:qx/bom/Selection.js","qx:qx/bom/Range.js","qx:qx/util/StringSplit.js","qx:qx/event/type/Touch.js","qx:qx/event/type/Tap.js","qx:qx/event/type/Swipe.js","qx:qx/bom/client/Event.js","qx:qx/event/handler/Orientation.js","qx:qx/event/type/Orientation.js","qx:qx/event/handler/TouchCore.js","qx:qx/event/handler/Touch.js","qx:qx/event/handler/Input.js","qx:qx/event/handler/Capture.js","qx:qx/event/handler/DragDrop.js","qx:qx/event/type/Drag.js","qx:qx/event/handler/Offline.js","qx:qx/bom/Element.js","qx:qx/event/dispatch/MouseCapture.js","qx:qx/bom/client/Plugin.js","qx:qx/xml/Document.js","qx:qx/bom/client/Xml.js","qx:qx/event/type/Focus.js","qx:qx/bom/element/Scroll.js","qx:qx/ui/core/queue/Manager.js","qx:qx/ui/core/queue/Widget.js","qx:qx/ui/core/queue/Visibility.js","qx:qx/ui/core/queue/Appearance.js","qx:qx/ui/core/queue/Dispose.js","qx:qx/ui/core/DecoratorFactory.js","qx:qx/html/Decorator.js","qx:qx/ui/core/Widget.js","qx:qx/ui/core/EventHandler.js","qx:qx/ui/layout/Abstract.js","qx:qx/type/BaseString.js","qx:qx/locale/LocalizedString.js","qx:qx/locale/Manager.js","qx:qx/bom/client/Locale.js","qx:qx/bom/element/Decoration.js","qx:qx/io/ImageLoader.js","qx:qx/bom/element/Background.js","qx:qx/html/Image.js","qx:qx/ui/core/MPlacement.js","qx:qx/event/Idle.js","qx:qx/util/placement/Placement.js","qx:qx/util/placement/AbstractAxis.js","qx:qx/util/placement/DirectAxis.js","qx:qx/util/placement/KeepAlignAxis.js","qx:qx/util/placement/BestFitAxis.js","qx:qx/ui/basic/Image.js","qx:qx/ui/core/DragDropCursor.js","qx:qx/ui/core/MChildrenHandling.js","qx:qx/ui/container/Composite.js","qx:qx/ui/popup/Popup.js","qx:qx/ui/popup/Manager.js","qx:qx/ui/tooltip/ToolTip.js","qx:qx/ui/layout/Grow.js","qx:qx/ui/basic/Atom.js","qx:qx/ui/layout/Atom.js","qx:qx/ui/layout/Util.js","qx:qx/ui/form/IStringForm.js","qx:qx/ui/basic/Label.js","qx:qx/html/Label.js","qx:qx/bom/Label.js","qx:qx/ui/form/IForm.js","qx:qx/application/Standalone.js","qx:qx/ui/window/MDesktop.js","qx:qx/ui/core/MBlocker.js","qx:qx/ui/core/Blocker.js","qx:qx/ui/root/Abstract.js","qx:qx/ui/core/FocusHandler.js","qx:qx/ui/root/Application.js","qx:qx/ui/layout/Canvas.js","qx:qx/html/Root.js","qx:qx/html/Blocker.js","uploadmgr.demo:uploadmgr/demo/Application.js","qx:qx/log/appender/Util.js","qx:qx/log/appender/Native.js","qx:qx/log/appender/Console.js","qx:qx/ui/core/MExecutable.js","qx:qx/ui/form/IExecutable.js","qx:qx/ui/form/Button.js","com.zenesis.qx.upload:com/zenesis/qx/upload/MParameters.js","com.zenesis.qx.upload:com/zenesis/qx/upload/MUploadButton.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadButton.js","qx:qx/ui/core/MRemoteChildrenHandling.js","qx:qx/ui/core/selection/Abstract.js","qx:qx/ui/core/selection/Widget.js","qx:qx/ui/core/selection/ScrollArea.js","qx:qx/ui/core/MMultiSelectionHandling.js","qx:qx/ui/form/MForm.js","qx:qx/ui/form/MModelSelection.js","qx:qx/data/marshal/MEventBubbling.js","qx:qx/data/Array.js","qx:qx/ui/core/ISingleSelection.js","qx:qx/ui/core/IMultiSelection.js","qx:qx/ui/core/scroll/MWheelHandling.js","qx:qx/ui/core/scroll/MScrollBarFactory.js","qx:qx/ui/core/scroll/IScrollBar.js","qx:qx/ui/core/scroll/NativeScrollBar.js","qx:qx/ui/core/scroll/ScrollBar.js","qx:qx/ui/form/IRange.js","qx:qx/ui/form/INumberForm.js","qx:qx/ui/form/Slider.js","qx:qx/ui/core/scroll/ScrollSlider.js","qx:qx/ui/form/RepeatButton.js","qx:qx/event/AcceleratingTimer.js","qx:qx/ui/layout/HBox.js","qx:qx/ui/layout/VBox.js","qx:qx/ui/core/scroll/AbstractScrollArea.js","qx:qx/bom/client/Scroll.js","qx:qx/ui/layout/Grid.js","qx:qx/ui/core/scroll/ScrollPane.js","qx:qx/ui/form/IModelSelection.js","qx:qx/ui/form/List.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadMgr.js","com.zenesis.qx.upload:com/zenesis/qx/upload/InputElement.js","com.zenesis.qx.upload:com/zenesis/qx/upload/AbstractHandler.js","com.zenesis.qx.upload:com/zenesis/qx/upload/XhrHandler.js","com.zenesis.qx.upload:com/zenesis/qx/upload/File.js","com.zenesis.qx.upload:com/zenesis/qx/upload/FormHandler.js","qx:qx/ui/form/MModelProperty.js","qx:qx/ui/form/IModel.js","qx:qx/ui/form/ListItem.js","qx:qx/ui/form/IRadioItem.js","qx:qx/ui/core/MSingleSelectionHandling.js","qx:qx/ui/core/SingleSelectionManager.js","qx:qx/ui/core/ISingleSelectionProvider.js","qx:qx/ui/form/RadioGroup.js","qx:qx/ui/form/IBooleanForm.js","qx:qx/ui/form/ToggleButton.js","qx:qx/ui/form/CheckBox.js","qx:qx/ui/decoration/MBackgroundColor.js","qx:qx/ui/decoration/MBackgroundImage.js","qx:qx/ui/decoration/Background.js","qx:qx/ui/toolbar/ToolBar.js","qx:qx/ui/core/Spacer.js","qx:qx/ui/toolbar/Separator.js","qx:qx/ui/form/MenuButton.js","qx:qx/ui/menu/Manager.js","qx:qx/ui/menu/Menu.js","qx:qx/ui/menu/Layout.js","qx:qx/ui/menu/Separator.js","qx:qx/ui/menu/AbstractButton.js","qx:qx/ui/menu/ButtonLayout.js","qx:qx/ui/core/MRemoteLayoutHandling.js","qx:qx/ui/container/SlideBar.js","qx:qx/ui/menu/MenuSlideBar.js","qx:qx/ui/form/HoverButton.js","qx:qx/ui/menubar/Button.js","qx:qx/ui/menu/Button.js","qx:qx/ui/toolbar/Part.js","qx:qx/ui/toolbar/PartContainer.js","qx:qx/ui/toolbar/Button.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadToolbarButton.js","qx:qx/ui/decoration/MSingleBorder.js","qx:qx/ui/decoration/Single.js","qx:qx/ui/decoration/MBorderRadius.js","qx:qx/ui/decoration/Beveled.js","qx:qx/ui/decoration/MLinearBackgroundGradient.js","qx:qx/ui/decoration/Grid.js","qx:qx/ui/decoration/css3/BorderImage.js","qx:qx/ui/decoration/GridDiv.js","qx:qx/ui/decoration/Uniform.js","qx:qx/ui/decoration/MDoubleBorder.js","qx:qx/ui/decoration/MBoxShadow.js","qx:qx/theme/modern/Decoration.js","uploadmgr.demo:uploadmgr/demo/theme/Decoration.js","qx:qx/theme/icon/Tango.js","qx:qx/theme/modern/Font.js","uploadmgr.demo:uploadmgr/demo/theme/Font.js","qx:qx/theme/modern/Appearance.js","uploadmgr.demo:uploadmgr/demo/theme/Appearance.js","qx:qx/theme/modern/Color.js","uploadmgr.demo:uploadmgr/demo/theme/Color.js","uploadmgr.demo:uploadmgr/demo/theme/Theme.js"]}}, + packages : {"0":{"uris":["__out__:uploadmgr.demo.d88b4fb45db4.js","qx:qx/Bootstrap.js","qx:qx/core/Environment.js","qx:qx/bom/client/EcmaScript.js","qx:qx/lang/normalize/Function.js","qx:qx/util/OOUtil.js","qx:qx/lang/normalize/Array.js","qx:qx/Mixin.js","qx:qx/core/Aspect.js","qx:qx/lang/normalize/String.js","qx:qx/lang/normalize/Object.js","qx:qx/Interface.js","qx:qx/lang/normalize/Error.js","qx:qx/lang/normalize/Date.js","qx:qx/core/Property.js","qx:qx/Class.js","qx:qx/lang/Generics.js","qx:qx/data/MBinding.js","qx:qx/data/SingleValueBinding.js","qx:qx/lang/String.js","qx:qx/lang/Array.js","qx:qx/bom/client/Engine.js","qx:qx/lang/Type.js","qx:qx/core/Assert.js","qx:qx/type/BaseError.js","qx:qx/core/AssertionError.js","qx:qx/dev/StackTrace.js","qx:qx/lang/Function.js","qx:qx/core/ObjectRegistry.js","qx:qx/bom/client/Json.js","qx:qx/lang/JsonImpl.js","qx:qx/lang/Json.js","qx:qx/data/IListData.js","qx:qx/core/ValidationError.js","qx:qx/util/RingBuffer.js","qx:qx/log/appender/RingBuffer.js","qx:qx/log/Logger.js","qx:qx/core/MLogging.js","qx:qx/dom/Node.js","qx:qx/bom/Event.js","qx:qx/event/Manager.js","qx:qx/event/GlobalError.js","qx:qx/core/WindowError.js","qx:qx/core/GlobalError.js","qx:qx/event/IEventHandler.js","qx:qx/event/Registration.js","qx:qx/core/MEvent.js","qx:qx/event/IEventDispatcher.js","qx:qx/core/MProperty.js","qx:qx/core/MAssert.js","qx:qx/core/Object.js","qx:qx/util/DisposeUtil.js","qx:qx/event/type/Event.js","qx:qx/util/ObjectPool.js","qx:qx/event/Pool.js","qx:qx/event/dispatch/Direct.js","qx:qx/event/handler/Object.js","qx:qx/event/type/Data.js","qx:qx/locale/MTranslation.js","qx:qx/application/IApplication.js","qx:qx/core/BaseInit.js","qx:qx/bom/client/OperatingSystem.js","qx:qx/event/type/Native.js","qx:qx/event/handler/Window.js","qx:qx/event/handler/Application.js","qx:qx/core/Init.js","qx:qx/application/AbstractGui.js","qx:qx/theme/manager/Meta.js","qx:qx/util/ValueManager.js","qx:qx/theme/manager/Color.js","qx:qx/util/ColorUtil.js","qx:qx/theme/manager/Decoration.js","qx:qx/lang/Object.js","qx:qx/util/Uri.js","qx:qx/ui/decoration/IDecorator.js","qx:qx/ui/decoration/Abstract.js","qx:qx/ui/decoration/DynamicDecorator.js","qx:qx/bom/client/Css.js","qx:qx/bom/client/Browser.js","qx:qx/bom/Style.js","qx:qx/bom/element/Opacity.js","qx:qx/bom/element/Clip.js","qx:qx/bom/element/Cursor.js","qx:qx/bom/element/BoxSizing.js","qx:qx/bom/element/Style.js","qx:qx/bom/Document.js","qx:qx/bom/Viewport.js","qx:qx/util/AliasManager.js","qx:qx/theme/manager/Font.js","qx:qx/bom/Font.js","qx:qx/bom/webfonts/WebFont.js","qx:qx/bom/webfonts/Manager.js","qx:qx/util/LibraryManager.js","qx:qx/bom/client/Transport.js","qx:qx/util/ResourceManager.js","qx:qx/event/Timer.js","qx:qx/bom/Stylesheet.js","qx:qx/bom/client/Stylesheet.js","qx:qx/dom/Element.js","qx:qx/bom/client/Html.js","qx:qx/bom/element/Attribute.js","qx:qx/bom/webfonts/Validator.js","qx:qx/bom/element/Dimension.js","qx:qx/theme/manager/Icon.js","qx:qx/theme/manager/Appearance.js","qx:qx/Theme.js","qx:qx/ui/tooltip/Manager.js","qx:qx/ui/core/MLayoutHandling.js","qx:qx/ui/core/LayoutItem.js","qx:qx/util/PropertyUtil.js","qx:qx/ui/core/queue/Layout.js","qx:qx/util/DeferredCallManager.js","qx:qx/type/BaseArray.js","qx:qxWeb.js","qx:qx/bom/Selector.js","qx:qx/module/Polyfill.js","qx:qx/module/Event.js","qx:qx/event/Emitter.js","qx:qx/module/Css.js","qx:qx/bom/element/Class.js","qx:qx/bom/element/Location.js","qx:qx/module/Animation.js","qx:qx/bom/element/Animation.js","qx:qx/bom/client/CssAnimation.js","qx:qx/bom/element/AnimationCss.js","qx:qx/bom/element/AnimationHandle.js","qx:qx/bom/client/CssTransform.js","qx:qx/bom/element/Transform.js","qx:qx/bom/element/AnimationJs.js","qx:qx/bom/AnimationFrame.js","qx:qx/util/DeferredCall.js","qx:qx/html/Element.js","qx:qx/event/handler/Appear.js","qx:qx/event/dispatch/AbstractBubbling.js","qx:qx/event/dispatch/DomBubbling.js","qx:qx/event/handler/Element.js","qx:qx/event/handler/UserAction.js","qx:qx/event/handler/Mouse.js","qx:qx/event/type/Dom.js","qx:qx/event/type/Mouse.js","qx:qx/event/type/MouseWheel.js","qx:qx/dom/Hierarchy.js","qx:qx/event/util/Keyboard.js","qx:qx/event/handler/Keyboard.js","qx:qx/event/type/KeyInput.js","qx:qx/event/type/KeySequence.js","qx:qx/event/handler/Focus.js","qx:qx/bom/Selection.js","qx:qx/bom/Range.js","qx:qx/util/StringSplit.js","qx:qx/event/type/Touch.js","qx:qx/event/type/Tap.js","qx:qx/event/type/Swipe.js","qx:qx/bom/client/Event.js","qx:qx/event/handler/Orientation.js","qx:qx/event/type/Orientation.js","qx:qx/event/handler/TouchCore.js","qx:qx/event/handler/Touch.js","qx:qx/event/handler/Input.js","qx:qx/event/handler/Capture.js","qx:qx/event/handler/DragDrop.js","qx:qx/event/type/Drag.js","qx:qx/event/handler/Offline.js","qx:qx/bom/Element.js","qx:qx/event/dispatch/MouseCapture.js","qx:qx/bom/client/Plugin.js","qx:qx/xml/Document.js","qx:qx/bom/client/Xml.js","qx:qx/event/type/Focus.js","qx:qx/bom/element/Scroll.js","qx:qx/ui/core/queue/Manager.js","qx:qx/ui/core/queue/Widget.js","qx:qx/ui/core/queue/Visibility.js","qx:qx/ui/core/queue/Appearance.js","qx:qx/ui/core/queue/Dispose.js","qx:qx/ui/core/DecoratorFactory.js","qx:qx/html/Decorator.js","qx:qx/ui/core/Widget.js","qx:qx/ui/core/EventHandler.js","qx:qx/ui/layout/Abstract.js","qx:qx/type/BaseString.js","qx:qx/locale/LocalizedString.js","qx:qx/locale/Manager.js","qx:qx/bom/client/Locale.js","qx:qx/bom/element/Decoration.js","qx:qx/io/ImageLoader.js","qx:qx/bom/element/Background.js","qx:qx/html/Image.js","qx:qx/ui/core/MPlacement.js","qx:qx/event/Idle.js","qx:qx/util/placement/Placement.js","qx:qx/util/placement/AbstractAxis.js","qx:qx/util/placement/DirectAxis.js","qx:qx/util/placement/KeepAlignAxis.js","qx:qx/util/placement/BestFitAxis.js","qx:qx/ui/basic/Image.js","qx:qx/ui/core/DragDropCursor.js","qx:qx/ui/core/MChildrenHandling.js","qx:qx/ui/container/Composite.js","qx:qx/ui/popup/Popup.js","qx:qx/ui/popup/Manager.js","qx:qx/ui/tooltip/ToolTip.js","qx:qx/ui/layout/Grow.js","qx:qx/ui/basic/Atom.js","qx:qx/ui/layout/Atom.js","qx:qx/ui/layout/Util.js","qx:qx/ui/form/IStringForm.js","qx:qx/ui/basic/Label.js","qx:qx/html/Label.js","qx:qx/bom/Label.js","qx:qx/ui/form/IForm.js","qx:qx/application/Standalone.js","qx:qx/ui/window/MDesktop.js","qx:qx/ui/core/MBlocker.js","qx:qx/ui/core/Blocker.js","qx:qx/ui/root/Abstract.js","qx:qx/ui/core/FocusHandler.js","qx:qx/ui/root/Application.js","qx:qx/ui/layout/Canvas.js","qx:qx/html/Root.js","qx:qx/html/Blocker.js","uploadmgr.demo:uploadmgr/demo/Application.js","qx:qx/log/appender/Util.js","qx:qx/log/appender/Native.js","qx:qx/log/appender/Console.js","qx:qx/ui/core/MExecutable.js","qx:qx/ui/form/IExecutable.js","qx:qx/ui/form/Button.js","com.zenesis.qx.upload:com/zenesis/qx/upload/MParameters.js","com.zenesis.qx.upload:com/zenesis/qx/upload/MUploadButton.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadButton.js","qx:qx/ui/core/MRemoteChildrenHandling.js","qx:qx/ui/core/selection/Abstract.js","qx:qx/ui/core/selection/Widget.js","qx:qx/ui/core/selection/ScrollArea.js","qx:qx/ui/core/MMultiSelectionHandling.js","qx:qx/ui/form/MForm.js","qx:qx/ui/form/MModelSelection.js","qx:qx/data/marshal/MEventBubbling.js","qx:qx/data/Array.js","qx:qx/ui/core/ISingleSelection.js","qx:qx/ui/core/IMultiSelection.js","qx:qx/ui/core/scroll/MWheelHandling.js","qx:qx/ui/core/scroll/MScrollBarFactory.js","qx:qx/ui/core/scroll/IScrollBar.js","qx:qx/ui/core/scroll/NativeScrollBar.js","qx:qx/ui/core/scroll/ScrollBar.js","qx:qx/ui/form/IRange.js","qx:qx/ui/form/INumberForm.js","qx:qx/ui/form/Slider.js","qx:qx/ui/core/scroll/ScrollSlider.js","qx:qx/ui/form/RepeatButton.js","qx:qx/event/AcceleratingTimer.js","qx:qx/ui/layout/HBox.js","qx:qx/ui/layout/VBox.js","qx:qx/ui/core/scroll/AbstractScrollArea.js","qx:qx/bom/client/Scroll.js","qx:qx/ui/layout/Grid.js","qx:qx/ui/core/scroll/ScrollPane.js","qx:qx/ui/form/IModelSelection.js","qx:qx/ui/form/List.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadMgr.js","com.zenesis.qx.upload:com/zenesis/qx/upload/InputElement.js","com.zenesis.qx.upload:com/zenesis/qx/upload/AbstractHandler.js","com.zenesis.qx.upload:com/zenesis/qx/upload/XhrHandler.js","com.zenesis.qx.upload:com/zenesis/qx/upload/File.js","com.zenesis.qx.upload:com/zenesis/qx/upload/FormHandler.js","qx:qx/ui/form/MModelProperty.js","qx:qx/ui/form/IModel.js","qx:qx/ui/form/ListItem.js","qx:qx/ui/form/IRadioItem.js","qx:qx/ui/core/MSingleSelectionHandling.js","qx:qx/ui/core/SingleSelectionManager.js","qx:qx/ui/core/ISingleSelectionProvider.js","qx:qx/ui/form/RadioGroup.js","qx:qx/ui/form/IBooleanForm.js","qx:qx/ui/form/ToggleButton.js","qx:qx/ui/form/CheckBox.js","qx:qx/ui/decoration/MBackgroundColor.js","qx:qx/ui/decoration/MBackgroundImage.js","qx:qx/ui/decoration/Background.js","qx:qx/ui/toolbar/ToolBar.js","qx:qx/ui/core/Spacer.js","qx:qx/ui/toolbar/Separator.js","qx:qx/ui/form/MenuButton.js","qx:qx/ui/menu/Manager.js","qx:qx/ui/menu/Menu.js","qx:qx/ui/menu/Layout.js","qx:qx/ui/menu/Separator.js","qx:qx/ui/menu/AbstractButton.js","qx:qx/ui/menu/ButtonLayout.js","qx:qx/ui/core/MRemoteLayoutHandling.js","qx:qx/ui/container/SlideBar.js","qx:qx/ui/menu/MenuSlideBar.js","qx:qx/ui/form/HoverButton.js","qx:qx/ui/menubar/Button.js","qx:qx/ui/menu/Button.js","qx:qx/ui/toolbar/Part.js","qx:qx/ui/toolbar/PartContainer.js","qx:qx/ui/toolbar/Button.js","qx:qx/ui/toolbar/MenuButton.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadMenuButton.js","com.zenesis.qx.upload:com/zenesis/qx/upload/UploadToolbarButton.js","qx:qx/ui/decoration/MSingleBorder.js","qx:qx/ui/decoration/Single.js","qx:qx/ui/decoration/MBorderRadius.js","qx:qx/ui/decoration/Beveled.js","qx:qx/ui/decoration/MLinearBackgroundGradient.js","qx:qx/ui/decoration/Grid.js","qx:qx/ui/decoration/css3/BorderImage.js","qx:qx/ui/decoration/GridDiv.js","qx:qx/ui/decoration/Uniform.js","qx:qx/ui/decoration/MDoubleBorder.js","qx:qx/ui/decoration/MBoxShadow.js","qx:qx/theme/modern/Decoration.js","uploadmgr.demo:uploadmgr/demo/theme/Decoration.js","qx:qx/theme/icon/Tango.js","qx:qx/theme/modern/Font.js","uploadmgr.demo:uploadmgr/demo/theme/Font.js","qx:qx/theme/modern/Appearance.js","uploadmgr.demo:uploadmgr/demo/theme/Appearance.js","qx:qx/theme/modern/Color.js","uploadmgr.demo:uploadmgr/demo/theme/Color.js","uploadmgr.demo:uploadmgr/demo/theme/Theme.js"]}}, urisBefore : [], cssBefore : [], boot : "boot", Added: trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMenuButton.js =================================================================== --- trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMenuButton.js (rev 0) +++ trunk/qooxdoo-contrib/UploadMgr/trunk/source/class/com/zenesis/qx/upload/UploadMenuButton.js 2013-05-02 16:01:36 UTC (rev 21844) @@ -0,0 +1,40 @@ +/* *********************************************************************** + + UploadMgr - provides an API for uploading one or multiple files + with progress feedback (on modern browsers), does not block the user + interface during uploads, supports cancelling uploads. + + http://qooxdoo.org + + Copyright: + 2011 Zenesis Limited, http://www.zenesis.com + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + + This software is provided under the same licensing terms as Qooxdoo, + please see the LICENSE file in the Qooxdoo project's top-level directory + for details. + + Authors: + * John Spackman (joh...@ze...) + +************************************************************************/ + +/** + * Implementation of an UploadButton + */ +qx.Class.define("com.zenesis.qx.upload.UploadMenuButton", { + extend: qx.ui.menu.Button, + include: [ com.zenesis.qx.upload.MUploadButton ], + + members: { + _onClick:function(evt){ + var self = this; + setTimeout(function() { + self._onClick(evt); + }, 100); + } + } +}); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2013-04-19 06:04:42
|
Revision: 21843 http://sourceforge.net/p/qooxdoo-contrib/code/21843 Author: martinwittemann Date: 2013-04-19 06:04:36 +0000 (Fri, 19 Apr 2013) Log Message: ----------- Updated the class header. Modified Paths: -------------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet 2013-04-15 14:24:57 UTC (rev 21842) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/class comment.tmSnippet 2013-04-19 06:04:36 UTC (rev 21843) @@ -10,7 +10,7 @@ http://qooxdoo.org Copyright: - 2004-2012 1&1 Internet AG, Germany, http://www.1und1.de + 2013 1&1 Internet AG, Germany, http://www.1und1.de License: LGPL: http://www.gnu.org/licenses/lgpl.html This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <spa...@us...> - 2013-04-15 14:25:00
|
Revision: 21842 http://sourceforge.net/p/qooxdoo-contrib/code/21842 Author: spackers Date: 2013-04-15 14:24:57 +0000 (Mon, 15 Apr 2013) Log Message: ----------- Modified Paths: -------------- trunk/qooxdoo-contrib/ServerObjects/trunk/client/qso-lib/source/class/com/zenesis/qx/remote/ProxyManager.js Modified: trunk/qooxdoo-contrib/ServerObjects/trunk/client/qso-lib/source/class/com/zenesis/qx/remote/ProxyManager.js =================================================================== --- trunk/qooxdoo-contrib/ServerObjects/trunk/client/qso-lib/source/class/com/zenesis/qx/remote/ProxyManager.js 2013-03-01 14:06:22 UTC (rev 21841) +++ trunk/qooxdoo-contrib/ServerObjects/trunk/client/qso-lib/source/class/com/zenesis/qx/remote/ProxyManager.js 2013-04-15 14:24:57 UTC (rev 21842) @@ -54,6 +54,7 @@ }, construct: function(proxyUrl) { + this.warn("This version of the QxServerObjects contrib is out of date - please consider upgrading to the version at GitHub: https://github.com/johnspackman/qx-serverobjects"); if (this.constructor.__instance) this.warn("Not setting ProxyManager instance because one is already defined"); else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2013-03-01 14:06:28
|
Revision: 21841 http://sourceforge.net/p/qooxdoo-contrib/code/21841 Author: martinwittemann Date: 2013-03-01 14:06:22 +0000 (Fri, 01 Mar 2013) Log Message: ----------- updated lint.py Modified Paths: -------------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py 2013-02-25 13:46:23 UTC (rev 21840) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py 2013-03-01 14:06:22 UTC (rev 21841) @@ -16,6 +16,7 @@ from ecmascript.frontend import treegenerator from ecmascript.transform.check import scopes, lint from generator import Context as context +from generator.runtime.Log import Log from misc.ExtMap import ExtMap @@ -33,6 +34,8 @@ tree_ = treegenerator.createFileTree_from_string( codecs.open(file_, "r", "utf-8").read()) tree_ = scopes.create_scopes(tree_) + if not getattr(context, 'console', None): + context.console = Log() if not getattr(context,'jobconf', None): context.jobconf = ExtMap() context.jobconf.set("lint-check/warn-unknown-jsdoc-keys", True) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2013-02-25 13:46:26
|
Revision: 21840 http://sourceforge.net/p/qooxdoo-contrib/code/21840 Author: martinwittemann Date: 2013-02-25 13:46:23 +0000 (Mon, 25 Feb 2013) Log Message: ----------- Added multi line comment snippet for TextMate. Added Paths: ----------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/Return in multi line comment.tmSnippet Added: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/Return in multi line comment.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/Return in multi line comment.tmSnippet (rev 0) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/Return in multi line comment.tmSnippet 2013-02-25 13:46:23 UTC (rev 21840) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>content</key> + <string> +* </string> + <key>keyEquivalent</key> + <string> +</string> + <key>name</key> + <string>Return in multi line comment</string> + <key>scope</key> + <string>comment.block</string> + <key>uuid</key> + <string>FE1A4439-036F-4ED6-8F5B-0DC3FCCA7164</string> +</dict> +</plist> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2013-02-25 13:41:28
|
Revision: 21839 http://sourceforge.net/p/qooxdoo-contrib/code/21839 Author: martinwittemann Date: 2013-02-25 13:41:25 +0000 (Mon, 25 Feb 2013) Log Message: ----------- Updated the textmate bundle (fix lint) Modified Paths: -------------- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet 2013-02-15 11:32:35 UTC (rev 21838) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Snippets/ignoreNoLoopBlock.tmSnippet 2013-02-25 13:41:25 UTC (rev 21839) @@ -9,7 +9,7 @@ <key>scope</key> <string>comment.block</string> <key>tabTrigger</key> - <string>lint</string> + <string>ignore</string> <key>uuid</key> <string>1E1028CC-F9A6-4052-AC49-740B8A72E7AF</string> </dict> Modified: trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py =================================================================== --- trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py 2013-02-15 11:32:35 UTC (rev 21838) +++ trunk/qooxdoo-contrib/TextMate/trunk/qooxdoo.tmbundle/Support/lint.py 2013-02-25 13:41:25 UTC (rev 21839) @@ -16,6 +16,7 @@ from ecmascript.frontend import treegenerator from ecmascript.transform.check import scopes, lint from generator import Context as context +from misc.ExtMap import ExtMap def do_lint(file_, popup): @@ -32,8 +33,9 @@ tree_ = treegenerator.createFileTree_from_string( codecs.open(file_, "r", "utf-8").read()) tree_ = scopes.create_scopes(tree_) - if not hasattr(context,'jobconf'): - context.jobconf = {} + if not getattr(context,'jobconf', None): + context.jobconf = ExtMap() + context.jobconf.set("lint-check/warn-unknown-jsdoc-keys", True) lint.lint_check(tree_, "", opts) except treegenerator.SyntaxException, e: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2013-02-15 11:32:43
|
Revision: 21838 http://sourceforge.net/p/qooxdoo-contrib/code/21838 Author: thron7 Date: 2013-02-15 11:32:35 +0000 (Fri, 15 Feb 2013) Log Message: ----------- made externals for older user-extensions.js local Added Paths: ----------- trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium/user_extension/ trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium/user_extension/user-extensions.js trunk/qooxdoo-contrib/Simulator/1.5/tool/selenium/user_extension/ trunk/qooxdoo-contrib/Simulator/1.5/tool/selenium/user_extension/user-extensions.js trunk/qooxdoo-contrib/Simulator/1.6/tool/selenium/user_extension/ trunk/qooxdoo-contrib/Simulator/1.6/tool/selenium/user_extension/user-extensions.js Property Changed: ---------------- trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium/ trunk/qooxdoo-contrib/Simulator/1.5/tool/selenium/ trunk/qooxdoo-contrib/Simulator/1.6/tool/selenium/ Index: trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium =================================================================== --- trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium 2013-02-14 17:18:02 UTC (rev 21837) +++ trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium 2013-02-15 11:32:35 UTC (rev 21838) Property changes on: trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium ___________________________________________________________________ Deleted: svn:externals ## -1 +0,0 ## -user_extension https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/trunk/qooxdoo/component/simulator/tool/user-extensions \ No newline at end of property Added: trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium/user_extension/user-extensions.js =================================================================== --- trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium/user_extension/user-extensions.js (rev 0) +++ trunk/qooxdoo-contrib/Simulator/1.4/tool/selenium/user_extension/user-extensions.js 2013-02-15 11:32:35 UTC (rev 21838) @@ -0,0 +1,3537 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2006-2011 1&1 Internet AG, Germany, http://www.1and1.org + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Robert Zimmermann (rz) + * Thomas Herchenroeder (thron7) + * Daniel Wagner (d_wagner) + +************************************************************************ */ + +/** + * Selenium Extension for testing applications built with qooxdoo + * see http://qooxdoo.org + * + * This extension covers the following commands to test applications built with qooxdoo: + * 1.) special click commands: "qxClick" and "qxClickAt" + * 2.) special qooxdoo element locators "qx=" and "qxp=" + * + * Supported Browsers: + * - Mozilla-Family + * - Internet Explorer + * + * qxClick and qxClickAt: + * Both commands fire "mousedown" followed by "mouseup", as qooxdoo mostly does + * not listen for "click". Additionally these commands provide the possibility + * to customize mouse-events, to do eg. a right-click or + * click-with-shift-key-pressed, see below for details. + * Example: + * +----------+-----------------+------------------------------+ + * |qxClick | <any locator> | button=right, shiftKey=true | + * +----------+-----------------+------------------------------+ + * + * qxClickAt also computes the X- and Y- coordinates of the target element. + * + * mouse-event-details (qxClick values): + * double: fire a "dblclick" event + * - posible values: true, false + * - default value : false + * button: the mouse-button to be pressed + * - possible values: left, right, middle + * - default value : left + * clientX and clientY: coordinates where the click is donne + * - possible values: any positive integer + * - default value : 0 + * shiftKey, altKey, metaKey: additional modifier keys beeing pressed during click + * - possible values: true, false + * - default value : false + * + * qxTableClick: + * This commands simulates clicking on a specific cell of a qooxdoo table. + * Supported options: + * row: the row number of the cell to be clicked + * col: the column number of the cell to be clicked + * button: the mouse-button to be pressed + * - possible values: left, right + * - default value : left + * double: single or double click + * - possible values: true, false + * - default value : left + * Example: + * +----------+-----------------------------+--------------------------+ + * |qxClick | <locator finding a table> | row=42,col=4,double=true | + * +----------+-----------------------------+--------------------------+ + * + * Special qooxdoo Locator: + * As qooxdoo HTML consists mainly of div-elements, it is mostly difficult to + * locate an distinct element with xpath (sometimes impossible). If You have + * access to the source of the AUT build with qooxdoo You can supply UserData + * for the elements to interact with. + * "qxp=": Additional, combined Locator like qxp=myDialog/buttonOK//XPATH-descendant + * + * Example: + * customButton = new qx.ui.menu.MenuButton("Click Me", ...); + * customButton.setUserData("customButton", "place here anything You want, e.g. selenium"); + * Now this qooxdoo-button can be located (and clicked) like this: + * +----------+-----------------+--+ + * |qxClick | qx=customButton | | + * +----------+-----------------+--+ + * Note: The qooxdoo locator can be used with any selenium command, like + * +----------+-----------------+--+ + * |mouseOver | qx=customButton | | + * +----------+-----------------+--+ + * + * The locator can also be used hierarchically. + * This is comfortable, if qooxdoo elements are reused in different locations. + * Example: + * A OK-button is placed in a dialog box (and other dialog-boxes). And You + * don't want to give the same button different UserData as it is still an + * OK-button. So apply an UserData for the dialog-box, e.g. "myDialog" and + * name the button "buttonOK" Now this button can be located with: + * qx=myDialog/buttonOK or e.g. qx=scndDialog/buttonOK + * + * dom-events reference: http://www.howtocreate.co.uk/tutorials/javascript/domevents + * + * EXTERNAL INTERFACES + * Each user extension for Selenium uses interfaces from the Selenium runtime + * environment, like the 'Selenium', 'PageBot', 'SeleniumError' and 'LOG' + * objects, or the 'triggerEvent' and 'getClientXY' functions. For more + * information, see the file 'user-extensions.js.sample' in the Selenium Core + * distribution. + * + * Changed to work with selenium 1.0.3 + * + * Based on the orginal Selenium user extension for qooxdoo (version: 0.3) + * by Robert Zimmermann + * + * getQxObjectFunction, qxTableClick and related methods contributed by Mr. + * Hericus + * + * Original (qx 0.7) drag and drop code by Phaneesh Nagaraja + */ + +// -- Config section ------------------------------------------------ +var initGetViewportByHand = true; +// -- Config end ---------------------------------------------------- + +Selenium.prototype.qx = {}; + +// *************************************************** +// Handling of MouseEventParameters +// *************************************************** +/** +* Helper to parse a param-String and provide access to the parameters with default-value handling +* +* @param customParameters string with name1=value1, name2=value2 whitespace will be ignored/stripped +*/ +Selenium.prototype.qx.MouseEventParameters = function (customParameters) +{ + this.customParameters = {}; + + if (customParameters && customParameters !== "") + { + var paramPairs = customParameters.split(","); + + for (var i=0; i<paramPairs.length; i++) + { + var onePair = paramPairs[i]; + var nameAndValue = onePair.split("="); + + // rz: using String.trim from htmlutils.js of selenium to get rid of whitespace + var name = new String(nameAndValue[0]).trim(); + var value = new String(nameAndValue[1]).trim(); + this.customParameters[name] = value; + } + } +}; + +Selenium.prototype.qx.MouseEventParameters.MOUSE_BUTTON_MAPPING_IE = +{ + "left" : 1, + "right" : 2, + "middle" : 4 +}; + +Selenium.prototype.qx.MouseEventParameters.MOUSE_BUTTON_MAPPING_OTHER = +{ + "left" : 0, + "right" : 2, + "middle" : 1 +}; + + +/** + * Returns the correct numeric mouse button identifier needed to create a mouse + * event in different browsers (IE vs. non-IE). + * + * @type member + * @param buttonName {String} The mouse button. One of "left", "right", "middle" + * @return {Integer} The numeric mouse button value + */ +Selenium.prototype.qx.MouseEventParameters.prototype.getButtonValue = function(buttonName) +{ + if (document.createEventObject && (!document.documentMode || document.documentMode < 9)) + { + LOG.debug("MouseEventParameters.prototype.getButtonValue - using IE Button-Mapping"); + return Selenium.prototype.qx.MouseEventParameters.MOUSE_BUTTON_MAPPING_IE[buttonName]; + } + else + { + LOG.debug("MouseEventParameters.prototype.getButtonValue - using OTHER Button-Mapping"); + return Selenium.prototype.qx.MouseEventParameters.MOUSE_BUTTON_MAPPING_OTHER[buttonName]; + } +}; + + +/** + * Returns the value of a given parameter name if it's set. + * If it's not set, the given default value is returned + * + * Type conversion is done automatically for string, boolean and number + * based on the type of the given default value. + * + * @type member + * @param paramName {String} string name of the parameter to search for + * @param defaultValue {var} <different types> default value to be returned, if no value is found + * the type is important, see documentation above for details + * @return {var} The parameter value + */ +Selenium.prototype.qx.MouseEventParameters.prototype.getParamValue = function(paramName, defaultValue) +{ + if (this.customParameters[paramName]) + { + if (paramName == "button") + { + // special handling for mousebutton values (IE and not IE) + return this.getButtonValue(this.customParameters["button"]); + } + else + { + // return converted type according to type of default value + if (typeof defaultValue == "string") + { + // string + return this.customParameters[paramName]; + } + + var strValue = this.customParameters[paramName]; + + if (typeof defaultValue == "boolean") + { + // boolean + return strValue === "true" ? true : false; + } + + if (typeof defaultValue == "number") + { + // number + return parseInt(strValue); + } + } + } + else + { + // TODO: refactoring: resolve duplication + if (paramName == "button") + { + // special handling for mousebutton values (IE and not IE) + return this.getButtonValue(defaultValue); + } + else + { + return defaultValue; + } + } +}; + +// *************************************************** +// END: Handling of MouseEventParameters +// *************************************************** +/** + * Creates a native mouse event, configures it and dispatches it on the given + * element. + * + * @type member + * @param eventType {String} The name of the event to be created, e.g. "click", + * "mouseover", etc. + * @param element {Element} The DOM element the event should be dispatched on + * @param eventParamObject {MouseEventParameters} Parameter object + * @return void + */ +Selenium.prototype.qx.triggerMouseEventQx = function (eventType, element, eventParamObject) +{ + if (!eventParamObject) + { + // this can only be if the internal call-chain is wrong + LOG.error("triggerMouseEventQx: eventParamObject is essential"); + return; + } + + // use custom event details or default value + var button = eventParamObject.getParamValue("button", "left"); + var bubbles = eventParamObject.getParamValue("bubbles", true); + var cancelable = eventParamObject.getParamValue("cancelable", true); + var detail = eventParamObject.getParamValue("detail", 1); + var screenX = eventParamObject.getParamValue("screenX", 0); + var screenY = eventParamObject.getParamValue("screenY", 0); + var clientX = eventParamObject.getParamValue("clientX", 0); + var clientY = eventParamObject.getParamValue("clientY", 0); + var ctrlKey = eventParamObject.getParamValue("ctrlKey", false); + var shiftKey = eventParamObject.getParamValue("shiftKey", false); + var altKey = eventParamObject.getParamValue("altKey", false); + var metaKey = eventParamObject.getParamValue("metaKey", false); + + // window = null; //TODO: use correctly + // for event dbugging + LOG.debug(" * called triggerMouseEventQx, params:"); + LOG.debug("eventType=" + eventType); + LOG.debug("element=" + element); + LOG.debug("bubbles=" + bubbles); + LOG.debug("cancelable=" + cancelable); + LOG.debug("detail=" + detail); + LOG.debug("screenX=" + screenX); + LOG.debug("screenY=" + screenY); + LOG.debug("clientX=" + clientX); + LOG.debug("clientY=" + clientY); + LOG.debug("ctrlKey=" + ctrlKey); + LOG.debug("shiftKey=" + shiftKey); + LOG.debug("altKey=" + altKey); + LOG.debug("metaKey=" + metaKey); + LOG.debug("button=" + button); + LOG.debug(" * END triggerMouseEventQx, params:"); + // + + var evt = null; + + if (document.createEvent) + { + LOG.debug("triggerMouseEventQx: default-user-agent-path"); + evt = document.createEvent("MouseEvents"); + + // rz: has to be "initMouseEvent" otherwise parameters like clientX won't be set + evt.initMouseEvent(eventType, bubbles, cancelable, document.defaultView, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, null); + element.dispatchEvent(evt); + } + else if (document.createEventObject) + { + LOG.debug("triggerMouseEventQx: IE-path"); + evt = element.ownerDocument.createEventObject(); + + evt.detail = detail; + evt.screenX = screenX; + evt.screenY = screenY; + evt.clientX = clientX; + evt.clientY = clientY; + evt.ctrlKey = ctrlKey; + evt.altKey = altKey; + evt.shiftKey = shiftKey; + evt.metaKey = metaKey; + evt.button = button; + evt.relatedTarget = null; + + element.fireEvent('on' + eventType, evt); + } +}; + + +/** + * Clicks on a qooxdoo-element. + * mousedown, mouseup will be fired instead of only click (which is named execute in qooxdoo) + * + * eventParams example: button=left|right|middle, clientX=300, shiftKey=true + * for a full list of properties see "function Selenium.prototype.qx.triggerMouseEventQx" + * + * @type member + * @param locator {var} an element locator + * @param eventParams {var} additional parameter for the mouse-event to set. e.g. clientX. + * if no eventParams are set, defaults will be: left-mousebutton, all keys false and all coordinates 0 + * @return {void} + */ +Selenium.prototype.doQxClick = function(locator, eventParams) +{ + var element = this.page().findElement(locator); + this.clickElementQx(element, eventParams); +}; + + +Selenium.prototype.doQxExecute = function(locator, eventParams) +{ + var element = this.page().findElement(locator); + if (element.qx_Widget && element.qx_Widget.execute) + { + element.qx_Widget.execute(); + } else + { + LOG.debug("qxExecute: Cannot invoke execute() on element: "+element); + } +}; + + +Selenium.prototype.doGetViewport = function(locator, eventParams) +{ + var docelem = this.page().findElement("dom=document"); // evtl. document.body + //var win = docelem.parentWindow? docelem.parentWindow : docelem.defaultView; + var win = selenium.browserbot.getCurrentWindow(); + + // clear old geom string + if (storedVars && storedVars['ViewportStr']) { + delete storedVars['ViewportStr']; + } + + // event handler to capture coordinates + function eh(e) + { + // get coordinates + var mouseX; + var mouseY; // relat. mouse coords + // this is from quirksmode.org + if (e.pageX || e.pageY) + { + mouseX = e.pageX; + mouseY = e.pageY; + LOG.debug("pageX, pageY: "+mouseX+"'"+mouseY); + } else if (e.clientX || e.clientY) + { + mouseX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; + mouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; + LOG.debug("e.clientX,e.clientY,document.body.scrollLeft,document.documentElement.scrollLeft,document.body.scrollTop,document.documentElement.scrollTop:\n"+ + e.clientX+','+e.clientY+','+document.body.scrollLeft+','+document.documentElement.scrollLeft+','+document.body.scrollTop+','+document.documentElement.scrollTop); + } else + { + mouseX = 0; + mouseY = 0; + LOG.debug("no X,Y coords from event object"); + } + LOG.debug("e.screenX,e.screenY: "+e.screenX+','+e.screenY); + var originX = e.screenX - mouseX; + var originY = e.screenY - mouseY; + var width = PageBot.prototype._getWinWidth(win); + var height = PageBot.prototype._getWinHeight(win); + var geom = width+'x'+height+'+'+originX+'+'+originY; + LOG.info("Page geometry (WxH+X+Y): "+ geom); + // write to var + if (! storedVars) + { + storedVars = {}; + } + storedVars['ViewportStr'] = geom; + // de-register myself + PageBot.prototype._removeEventListener(docelem, "click", eh); + } + + // register handler + PageBot.prototype._addEventListener(docelem, "click", eh); + + // fire a mouse event at 0,0 + if (initGetViewportByHand) { + //alert("Please click anywhere in the document"); // destroys event handling!!! + } else { + // this is essentially useless since the resulting mouse event lacks screenX + // and screenY coords + this.doQxClickAt("dom=document", "clientX=0,clientY=0"); // 0,0 + } + /* + var eventParamObject = new Selenium.prototype.qx.MouseEventParameters(); + this.browserbot.triggerMouseEventQx("click", docelem,eventParamObject); + */ + +}; + + +/** + * Clicks on a qooxdoo-element. + * mousedown, mouseup will be fired instead of only click + * additionaly to doQxClick the x-/y-coordinates of located element will be determined. + * + * eventParams example: button=left|right|middle, clientX=300, shiftKey=true + * for a full list of properties see "function Selenium.prototype.qx.triggerMouseEventQx" + * + * @type member + * @param locator {var} an element locator + * @param eventParams {var} additional parameter for the mouse-event to set. e.g. clientX. + * if no eventParams are set, defaults will be: left mousebutton, all keys false and all coordinates 0 + * @return {void} + */ +Selenium.prototype.doQxClickAt = function(locator, eventParams) +{ + var element = this.page().findElement(locator); + var qx = this.getQxGlobalObject(); + if (!qx.bom || !qx.bom.element || !qx.bom.element.Dimension) { + throw new SeleniumError("qx.bom.Element is needed for qxClickAt but not present in the AUT!"); + } + var pos = qx.bom.element.Location.get(element); + var coordsXY = [pos["left"], pos["top"]]; + LOG.debug("qxClickAt element coords: X=" + coordsXY[0] + " Y=" + coordsXY[1]); + var elemWidth = qx.bom.element.Dimension.getWidth(element); + var elemHeight = qx.bom.element.Dimension.getHeight(element); + coordsXY[0] = coordsXY[0] + Math.floor(elemWidth / 2); + coordsXY[1] = coordsXY[1] + Math.floor(elemHeight / 2); + LOG.debug("qxClickAt final coords: X=" + coordsXY[0] + " Y=" + coordsXY[1]); + + // TODO: very dirty no checking, maybe refactoring needed to get doQxClick and doQxClickAt to work smoothly together. + var newEventParamString = eventParams + ",clientX=" + coordsXY[0] + ",clientY=" + coordsXY[1]; + LOG.debug("newEventParamString=" + newEventParamString); + this.clickElementQx(element, newEventParamString); +}; + + +/** + * Internal helper method used by qxClick and qxClickAt + * + * @type member + * @param element {Element} DOM Element the click event should be dispatched to. + * @param eventParamString {String} Comma-separated list of additional event + * parameters + * @return {void} + */ +Selenium.prototype.clickElementQx = function(element, eventParamString) +{ + var additionalParamsForClick = new Selenium.prototype.qx.MouseEventParameters(eventParamString); + triggerEvent(element, 'focus', false); + Selenium.prototype.qx.triggerMouseEventQx('mouseover', element, additionalParamsForClick); + Selenium.prototype.qx.triggerMouseEventQx('mousedown', element, additionalParamsForClick); + Selenium.prototype.qx.triggerMouseEventQx('mouseup', element, additionalParamsForClick); + if (additionalParamsForClick.getParamValue("button", "left") == 2) { + Selenium.prototype.qx.triggerMouseEventQx('contextmenu', element, additionalParamsForClick); + } + else { + if (additionalParamsForClick.getParamValue("double", false)) { + Selenium.prototype.qx.triggerMouseEventQx('dblclick', element, additionalParamsForClick); + } + else { + Selenium.prototype.qx.triggerMouseEventQx('click', element, additionalParamsForClick); + } + } + + // do not blur or mouseout as additional events won't be fired correctly +// FIXME: include original "click" functionality +}; + + +/** + * Check whether a qooxdoo Element is enabled or not + * + * @type member + * @param locator {String} an element locator string + * @return {Boolean} Whether the element is enabled + * @throws TODOC + */ +Selenium.prototype.isQxEnabled = function(locator) +{ + LOG.debug("isQxEnabled: locator.substr(0,3)=" + locator.substr(0, 3)); + + if (locator.substr(0, 2) === "qx") + { + var qxxLocator; + + if (locator.substr(0, 3) === "qx=") { + qxxLocator = "qxx=" + locator.substr(3, locator.length - 1); + } else if (locator.substr(0, 4) === "qxp=") { + throw new SeleniumError("NotImplemented: isQxEnabled for qxp Locator not yet implemented."); + } else { + throw new SeleniumError("Error: Bad qooxdoo-Locator-Syntax for locator: " + locator); + } + + LOG.debug("isQxEnabled: qxxLocator=" + qxxLocator); + var qxObject = this.page().findElement(qxxLocator); + if (qxObject) { + return qxObject.getEnabled(); + } else { + throw new SeleniumError("No such object: " + locator); + } + } + else + { + throw new SeleniumError("Error: No qooxdoo-Locator given. This command only runs with qooxdoo-Locators"); + } +}; + + +/** + * Returns the qx global object so that we can use qx functionality + */ +Selenium.prototype.getQxGlobalObject = function () +{ + return this.page().getQxGlobalObject(); +}; + + +/** + * Utility function to do {object instanceof qxclass} comparisons. + * Since the qx. namespace is not directly available, we have to go through + * some extra steps. + * <p> + * Use quotes around qxclass when you pass it in. + * + * @param object {Object} The object to check + * @parame qxclass {String} The string name of the qx class type to compare against + * @return returns true of object instanceof qxclass, false if not. + */ +PageBot.prototype.isQxInstanceOf = function (object, qxclass) { + var qx = this.getQxGlobalObject(); + var myClass = qx.Class.getByName(qxclass); + + LOG.debug("isQxInstanceOf checking (" + object.classname + ") against class (" + qxclass + ")"); + // instanceof will not work in Selenium IDE + try { + if (object instanceof myClass) { + return true; + } + } + catch (e) { + if (object.classname === qxclass) { + return true; + } + + // check parent chain + var superclass = qx.Class.getByName(object.classname).superclass; + while (superclass) { + var match = superclass.toString().match(/\[Class\ (.*?)\]/); + if (!match) { + superclass = false; + continue; + } + var superclassName = match[1]; + LOG.debug("isQxInstanceOf checking super class (" + superclassName + ") against class (" + qxclass + ")"); + if (superclassName == qxclass) { + return true; + } + superclass = superclass.superclass; + } + } + return false; +}; + +/** + * Utility function to do {object instanceof qxclass} comparisons. + * Since the qx. namespace is not directly available, we have to go through + * some extra steps. + * <p> + * Use quotes around qxclass when you pass it in. + * + * @param object {Object} The object to check + * @parame qxclass {String} The string name of the qx class type to compare against + * @return returns true of object instanceof qxclass, false if not. + */ +Selenium.prototype.isQxInstanceOf = function(object, qxclass) { + return this.page().isQxInstanceOf(object, qxclass); +}; + +/** + * Uses the standard qx locators to find a table, and then returns a semicolon- + * separated list of column IDs from the table model. Note that this can differ + * from the columns that are actually visible in the table. + * + * @param locator {String} an element locator + * @return {String} A list of column IDs + */ +Selenium.prototype.getQxTableModelColumnIds = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (!qxObject) { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + + var columnIds = []; + var model = qxObject.getTableModel(); + var colCount = model.getColumnCount(); + for (var i=0; i<colCount; i++) { + columnIds.push(model.getColumnId(i)); + } + + return columnIds.join(";"); +}; + + +/** + * Uses the standard qx locators to find a table, and then returns a semicolon- + * separated list of column IDs. This corresponds to the columns currently + * visible in the table. + * + * @type member + * @param locator {String} an element locator + * @return {String} A list of column IDs + */ +Selenium.prototype.getQxTableVisibleColumnIds = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (!qxObject) { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + + var columnIds = []; + var tableModel = qxObject.getTableModel(); + var columnModel = qxObject.getTableColumnModel(); + var visibleColumns = columnModel.getVisibleColumns(); + for (var i=0; i<visibleColumns.length; i++) { + var colId = visibleColumns[i] + columnIds.push(tableModel.getColumnId(colId)); + } + + return columnIds.join(";"); +}; + + +/** + * Uses the standard qx locators to find a table, and then returns the number of + * rows from the table model. + * + * @type member + * @param locator {var} an element locator + * @return {var} The number of rows in the table. + */ +Selenium.prototype.getQxTableRowCount = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (qxObject) { + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + } + else { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + + return String(qxObject.getTableModel().getRowCount()); +}; + +/** + * Uses the standard qx locators to find a table, and then returns the number of + * columns from the table model. + * + * @param locator {var} an element locator + * @return {var} The number of columns in the table. + */ +Selenium.prototype.getQxTableModelColCount = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (qxObject) { + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + } + else { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + + return String(qxObject.getTableModel().getColumnCount()); +}; + +/** + * Uses the standard qx locators to find a table, and then returns the number of + * columns from the table model. + * + * @param locator {var} an element locator + * @return {var} The number of columns in the table. + */ +Selenium.prototype.getQxTableVisibleColCount = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (qxObject) { + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + } + else { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + + var columnModel = qxObject.getTableColumnModel(); + var visibleColumns = columnModel.getVisibleColumns(); + + return String(visibleColumns.length); +}; + +/** + * + * Returns a qooxdoo table's selected row data (an array of rows which are + * arrays of cell values). Data will be returned as a JSON string if a JSON + * implementation is available (either the browser's or qooxdoo's). + * Otherwise, the return value is a comma-separated string that must be parsed + * by the test code. + * + * @param locator {String} Table locator + * @return {String} Selected row data + */ +Selenium.prototype.getQxTableSelectedRowData = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (qxObject) { + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + } + else { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + var tableModel = qxObject.getTableModel(); + var rowData = []; + var selectionModel = qxObject.getSelectionModel(); + + /* + * In Firefox 6, we can't use a function created in the Selenium window with + * the iterateSelection method of a table in the AUT window since qx's + * Bootstrap.isFunction won't recognize it as a valid function object. So we + * need to use the AUT window's Function object instead. + */ + var autWindow = this.browserbot.getCurrentWindow(); + var tempMapName = "_qxSelenium" + new Date().getTime(); + // Need to store these references since the function won't have access to + // variables from the current scope. + autWindow[tempMapName] = { + tableModel : tableModel, + rowData : [] + }; + + var iterator = new autWindow.Function("index", tempMapName + ".rowData.push(" + tempMapName + ".tableModel.getRowData(index));"); + selectionModel.iterateSelection(iterator, this); + var result = this.toJson(autWindow[tempMapName].rowData) || "undefined"; + delete autWindow[tempMapName]; + + return result; +}; + +/** + * + * Uses any available JSON implementation from the browser or qooxdoo to + * serialize the given data. Returns the unchanged data if no JSON + * implementation is available. + * + * @param data {Object} Data to be stringified + * @return {String} Data as JSON string + */ +Selenium.prototype.toJson = function(data) +{ + var qx = this.getQxGlobalObject(); + if (window.JSON && typeof window.JSON.stringify == "function") { + // browser's native JSON implementation + return window.JSON.stringify(data); + } else if (qx.lang && qx.lang.Json && qx.lang.Json.stringify) { + // qooxdoo's JSON implementation + return qx.lang.Json.stringify(data); + } else { + return data; + } +}; + +/** + * Executes the given function of a qooxdoo object identified by a locator. If + * the object does not contain the referenced function, then an exception will + * be thrown. + * + * @type member + * @param locator {var} an element locator + * @param functionName {var} A text string that should identify the function to + * be executed. + * @return {var} The return value from the function. + */ +Selenium.prototype.getQxObjectFunction = function(locator, functionName) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (qxObject[functionName]) { + var result = qxObject[functionName](); + if (typeof result === "undefined") { + result = "undefined"; + } + return result; + } + else { + throw new SeleniumError("Object does not have function (" + functionName + "), " + locator); + } +}; + +/** + * + * Creates a new function with the value of the script parameter as body. This + * function is bound to the context of the qooxdoo widget returned by the given + * locator, i.e. "this" within the script will refer to the widget. The function + * is then called and the return value is serialized in JSON format (unless it + * is a string or number) and returned. + * + * @param locator {String} locator identifying a qooxdoo widget + * @param script {String} JavaScript snippet + * @return {String} Return value of the generated function + */ +Selenium.prototype.getRunInContext = function(locator, script) +{ + var qxObject = this.getQxWidgetByLocator(locator); + var qx = this.getQxGlobalObject(); + + var autWindow = this.browserbot.getCurrentWindow(); + var func = new autWindow.Function(script); + var boundFunc = qx.lang.Function.bind(func, qxObject); + var result = boundFunc(); + + if (typeof result === "undefined") { + return "undefined"; + } + + if (! (typeof(result) == "string" || typeof(result) == "number" ) ) { + result = this.toJson(result); + } + return result; +}; + + +/** + * Returns a qooxdoo object's unique ID as generated by qx.core.ObjectRegistry. + * If only the locator parameter is given, the hash code of the widget it + * identifies will be returned. If the optional script parameter is given, its + * value will be executed as a function in the widget's context and the hash of + * the object it returns will be returned instead. Example: + * + * getQxObjectHash("myTable", "return this.getTableModel();"); + * + * will find a qooxdoo table with the HTML ID "myTable" and return the hash of + * its table model. + * + * @param locator {String} Locator to find the widget + * @param script {String?} Optional JavaScript snippet to be executed in the + * widget's context + * @return {String} the object's hash code + */ +Selenium.prototype.getQxObjectHash = function(locator, script) +{ + var qxObject = this.getQxWidgetByLocator(locator); + if (!qxObject) { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + var qx = this.getQxGlobalObject(); + + if (script) { + var autWindow = this.browserbot.getCurrentWindow(); + var func = new autWindow.Function(script); + var boundFunc = qx.lang.Function.bind(func, qxObject); + var qxObject = boundFunc(); + } + + return qx.core.ObjectRegistry.toHashCode(qxObject); +}; + + +/** + * Returns the Widget that the given DOM element is a part of. + * + * @param element {DOMElement} DOM Element + * @return {qx.ui.core.Widget|qx.ui.mobile.core.Widget} The corresponding widget + */ +PageBot.prototype.getQxWidgetByElement = function(element) +{ + if (element.wrappedJSObject) { + element = element.wrappedJSObject; + } + + var qx = this.getQxGlobalObject(); + var widget = null; + var exception = null; + + if (qx && qx.ui && qx.ui.core && qx.ui.core.Widget) { + try { + widget = qx.ui.core.Widget.getWidgetByElement(element); + } + catch(ex) { + exception = ex; + } + } + + if (!widget && element.id && qx.ui && qx.ui.mobile && qx.ui.mobile.core.Widget) { + try { + widget = qx.ui.mobile.core.Widget.getWidgetById(element.id); + } + catch(ex) { + exception = ex; + } + } + + if (widget) { + LOG.debug("getQxWidgetByElement found widget " + widget.classname); + } + else { + if (exception && exception.message) { + LOG.error("getQxWidgetByElement failed: " + exception.message); + } + } + + return widget; +}; + +Selenium.prototype.getQxWidgetByElement = function(element) +{ + return this.page().getQxWidgetByElement(element); +}; + +/** + * Uses the standard locators to find a qooxdoo widget and returns it. + * + * @param locator {String} an element locator + * @return {Object} The qooxdoo widget + */ +Selenium.prototype.getQxWidgetByLocator = function(locator) +{ + // Remove iframe qx object reference stored by previous locator + this.page()._iframeQxObject = null; + var element = this.page().findElement(locator); + if (!element) { + throw new SeleniumError("No such object: " + locator); + } + var qx = this.getQxGlobalObject(); + // If the locator crosses frame boundaries, use the target frame's qx + if (this.page()._iframeQxObject) { + qx = this.page()._iframeQxObject; + } + + if (element.wrappedJSObject) { + element = element.wrappedJSObject; + } + + // this.page().findElement() returns the html element. + var qxObject = this.getQxWidgetByElement(element); + if (qxObject) { + return qxObject; + } + else { + throw new SeleniumError("Object is not a qooxdoo object: " + locator); + } +}; + +/** + * Uses the standard qx locators to find a table, then returns the value + * of the specified cell from the table model. + * + * @param locator {String} an element locator that finds a qooxdoo table's + * DOM element + * @param params {String} A string that should contain row and column + * identifers (see {@link #qxTableClick} + * @return {Object} The value of the cell. Primitive types will be returned + * as strings, Objects will be serialized using JSON + */ +Selenium.prototype.getQxTableValue = function(locator, eventParams) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (qxObject) { + if (!this.isQxInstanceOf(qxObject, "qx.ui.table.Table")) { + throw new SeleniumError("Object is not an instance of qx.ui.table.Table: " + locator); + } + } + else { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + + var additionalParamsForClick = {}; + if (eventParams && eventParams !== "") { + var paramPairs = eventParams.split(","); + + for ( var i = 0; i < paramPairs.length; i++) { + var onePair = paramPairs[i]; + var nameAndValue = onePair.split("="); + + // rz: using String.trim from htmlutils.js of selenium to get rid of + // whitespace + var name = new String(nameAndValue[0]).trim(); + var value = new String(nameAndValue[1]).trim(); + additionalParamsForClick[name] = value; + } + } + var row = Number(additionalParamsForClick["row"]); + var col = this.__getColumnIdFromParameters(additionalParamsForClick, qxObject); + LOG.debug("Targeting Row(" + row + ") Column(" + col + ")"); + + var columnModel = qxObject.getTableColumnModel(); + var visibleColumns = columnModel.getVisibleColumns(); + + var value = qxObject.getTableModel().getValue(visibleColumns[col], row); + if (typeof value === "object") { + value = this.toJson(value); + } + + return value; +}; + +/** + * Searches the given table for a column with the given name and returns the + * visible column index. Note that this can differ from the column's index in + * the table model if there are invisible columns and/or the column order has + * been changed. + * + * @param {qx.ui.table.Table} table The table to be searched + * @param {String} name The column name to be searched for + * @return {Integer|null} The found column index + */ +Selenium.prototype.getQxTableColumnIndexByName = function(table, name) +{ + if (typeof table == "string") { + table = this.getQxWidgetByLocator(table); + } + var regEx = RegExp(name); + var columnModel = table.getTableColumnModel(); + var columnArray = columnModel.getVisibleColumns(); + var tableModel = table.getTableModel(); + for (var i=0,l=columnArray.length; i<l; i++) { + var columnName = tableModel.getColumnName(columnArray[i]); + if (regEx.exec(columnName)) { + return i; + } + } + return null; +}; + + +/** + * Searches the given table for a column with the given ID and returns the + * visible column index. Note that this can differ from the column's index in + * the table model if there are invisible columns and/or the column order has + * been changed. + * + * @param {qx.ui.table.Table|String} table The table object or a locator that finds it + * @param {String} id The column ID to be searched for + * @return {Integer|null} The found column index + */ +Selenium.prototype.getQxTableColumnIndexById = function(table, id) +{ + if (typeof table == "string") { + table = this.getQxWidgetByLocator(table); + } + var regEx = RegExp(id); + var columnModel = table.getTableColumnModel(); + var columnArray = columnModel.getVisibleColumns(); + var tableModel = table.getTableModel(); + for (var i=0,l=columnArray.length; i<l; i++) { + var columnId = tableModel.getColumnId(columnArray[i]); + if (regEx.exec(columnId)) { + return i; + } + } + return null; +}; + + +/** + * Searches the given table's data for a value (interpreted as a Regular + * Expression) and returns the first matching cell's row and column indices. + * + * @param {qx.ui.table.Table|String} table The table object or a locator that finds it + * @param {String} value The value to search for + * @return {Array|null} A [row, column] array or null if no matching cell was found + */ +Selenium.prototype.getQxTableRowColByCellValue = function(table, value) +{ + if (typeof table == "string") { + table = this.getQxWidgetByLocator(table); + } + + var tableModel = table.getTableModel(); + + if (this.isQxInstanceOf(tableModel, "qx.ui.treevirtual.SimpleTreeDataModel")) { + LOG.debug("getQxTableRowColByCellValue: Searching treevirtual.SimpleTreeDataModel for label " + value); + return this._getTreeVirtualRowColByLabel(tableModel, value); + } + + var regEx = RegExp(value); + var tableColumnModel = table.getTableColumnModel(); + var dataMapArray = tableModel.getDataAsMapArray(); + for (var i=0, l=dataMapArray.length; i<l; i++) { + var row = dataMapArray[i]; + for (field in row) { + if (regEx.exec(row[field])) { + var modelCol = Number(tableModel.getColumnIndexById(field)); + var col = tableColumnModel.getVisibleX(modelCol); + if (isNaN(col)) { + LOG.warn("getQxTableRowColByCellValue: Couldn't determine visible column, returning model column!"); + LOG.debug("getQxTableRowColByCellValue found row " + i + " col " + col); + return [i, modelCol]; + } + LOG.debug("getQxTableRowColByCellValue found row " + i + " col " + col); + return [i,col]; + } + } + } + return null; +}; + +/** + * Searches a TreeVirtual widget's SimpleTreeDataModel for a label matching the + * given string (using regEx matching) and returns the corresponding row and + * column indexes to be used e.g. by qxTableClick. + * + * @param model {qx.ui.treevirtual.SimpleTreeDataModel} The virtual tree's model + * @param label {String} The cell value to look for + * @return {Integer[]|null} Array containg the row and column indexes if the + * value was found or null + */ +Selenium.prototype._getTreeVirtualRowColByLabel = function(model, label) +{ + var regEx = RegExp(label); + for (var i=0;i<model.getRowCount(); i++) { + var node = model.getNode(i); + if (node.label && regEx.exec(node.label)) { + LOG.debug("_getTreeVirtualRowColByLabel found row " + i + " col 0"); + return [i,0]; + } else if (node.columnData) { + for (var j=0,k=node.columnData.length; j<k; j++) { + var columnText = node.columnData[j]; + if (columnText && regEx.exec(columnText)) { + LOG.debug("_getTreeVirtualRowColByLabel found row " + i + " col " + j); + return [i,j]; + } + } + } + } + return null; +}; + +/** + * Searches the table identified by the given locator for a column with the + * given name and returns the column index. + * + * @deprecated + * @param {String} A locator that returns the table to be searched + * @param {String} name The column name to be searched for + * @return {Integer|null} The found column index + */ +Selenium.prototype.getQxTableColumnIndexByNameLocator = function(locator, name) +{ + LOG.warn("getQxTableColumnIndexByNameLocator is deprecated, please use getQxTableColumnIndexByName directly."); + return this.getQxTableColumnIndexByName(locator, name); +}; + + +Selenium.prototype.__getParameterMap = function(eventParams) +{ + var additionalParamsForClick = {}; + if (eventParams && eventParams !== "") { + var paramPairs = eventParams.split(","); + + for (var i = 0; i < paramPairs.length; i++) { + var onePair = paramPairs[i]; + // some parameter values can be key=value pairs, so we can't use split("=") + var nameAndValue = [ + onePair.substr(0, onePair.indexOf("=")), + onePair.substr(onePair.indexOf("=") + 1) + ]; + + // rz: using String.trim from htmlutils.js of selenium to get rid of + // whitespace + var name = new String(nameAndValue[0]).trim(); + var value = new String(nameAndValue[1]).trim(); + additionalParamsForClick[name] = value; + } + } + return additionalParamsForClick; +}; + +Selenium.prototype.__getColumnIdFromParameters = function(additionalParamsForClick, qxObject) +{ + if (additionalParamsForClick["col"]) { + return Number(additionalParamsForClick["col"]); + } + if (additionalParamsForClick["colId"]) { + // get column index by columnID + var col = Number(this.getQxTableColumnIndexById(qxObject, additionalParamsForClick["colId"])); + LOG.debug("Got column index " + col + " from colId"); + return col; + } + if (additionalParamsForClick["colName"]) { + // get column index by columnName + col = Number(this.getQxTableColumnIndexByName(qxObject, additionalParamsForClick["colName"])); + LOG.debug("Got column index " + col + " from colName"); + return col; + } + else { + LOG.warn("No column specified, using column index 0."); + return 0; + } +}; + +/* + * Returns the DOM element of a qx table's Clipper child widget. + */ +Selenium.prototype.__getTableClipperElement = function(locator, qxTable) +{ + // Now add the extra components to the locator to find the clipper itself. + // This is the real object that we want to click on. + var element = null; + var subLocator = "qx.ui.container.Composite/qx.ui.table.pane.Scroller/qx.ui.table.pane.Clipper"; + if (locator.indexOf("qxh=") == 0 || locator.indexOf("qxhv=") == 0) { + var innerLocator = locator + "/" + subLocator; + // Now add the extra components to the locator to find the clipper itself. + // This is the real object that we want to click on. + element = this.page().findElement(innerLocator); + } + else { + var qxhParts = subLocator.split('/'); + try { + var qxResultObject = this.page()._searchQxObjectByQxHierarchy(qxTable, qxhParts); + } catch(ex) { + throw new SeleniumError("Couldn't find table clipper widget: " + ex); + } + element = this._getDomElementFromWidget(qxResultObject); + } + return element; +}; + +/* + * Returns the DOM element of a qx table header cell. + */ +Selenium.prototype.__getTableHeaderCellElement = function(column, locator, qxTable) { + var element = null; + var subLocator = "qx.ui.container.Composite/qx.ui.table.pane.Scroller/qx.ui.container.Composite/qx.ui.table.pane.Clipper/qx.ui.table.pane.Header/child[" + column + "]"; + if (locator.indexOf("qxh=") == 0) { + var headerCellLocator = locator + "/" + subLocator; + // Now add the extra components to the locator to find the header cell itself. + // This is the real object that we want to click on. + element = this.page().findElement(headerCellLocator); + } + else { + var qxhParts = subLocator.split('/'); + try { + var qxResultObject = this.page()._searchQxObjectByQxHierarchy(qxTable, qxhParts); + } catch(ex) { + LOG.error("Couldn't find header cell widget: " + ex); + return null; + } + element = this._getDomElementFromWidget(qxResultObject); + } + return element; +}; + +/* + * Returns the DOM element of a qx table's FocusIndicator. + */ +Selenium.prototype.__getTableFocusIndicatorElement = function(locator, qxTable) +{ + // Now add the extra components to the locator to find the clipper itself. + // This is the real object that we want to click on. + var element = null; + var subLocator = "qx.ui.container.Composite/qx.ui.table.pane.Scroller/qx.ui.table.pane.Clipper/qx.ui.table.pane.FocusIndicator"; + if (locator.indexOf("qxh=") == 0) { + var innerLocator = locator + "/" + subLocator; + // Now add the extra components to the locator to find the focus indicator. + element = this.page().findElement(innerLocator); + } + else { + var qxhParts = subLocator.split('/'); + try { + var qxResultObject = this.page()._searchQxObjectByQxHierarchy(qxTable, qxhParts); + } catch(ex) { + throw new SeleniumError("Couldn't find table focus indicator: " + ex); + } + element = this._getDomElementFromWidget(qxResultObject); + } + return element; +}; + +/* + * Scrolls a qx table so that the target row is visible and returns the index + * of the new first visible row. + */ +Selenium.prototype.__getUpdatedFirstVisibleRow = function(column, row, qxTable) +{ + var firstRow = qxTable.getPaneScroller(0).getTablePane().getFirstVisibleRow(); + var rowCount = qxTable.getPaneScroller(0).getTablePane().getVisibleRowCount(); + // If our target row is below or beyond the set of rows visible, then scroll + // it into view: + if( row < firstRow || row >= (firstRow + rowCount)) { + qxTable.setFocusedCell(column, row, true); + // now it should be in the viewport + firstRow = qxTable.getPaneScroller(0).getTablePane().getFirstVisibleRow(); + rowCount = qxTable.getPaneScroller(0).getTablePane().getVisibleRowCount(); + LOG.debug("qxTable firstVisibleRow(" + firstRow + "), visibleRowCount(" + + rowCount + ")"); + } + return firstRow; +}; + +/** + * Calculates a table cell's pixel coordinates. + * + * @param {Integer} column Index of the cell's column + * @param {Integer} row Index of the cell's row + * @param {qx.ui.table.Table} qxTable The table object + * @param {element} clipperElement The DOM Element of the table's clipper + * @return {Array} Array containing the cell's X and Y coordinates + * @throws SeleniumError if the target column is invisible + */ +Selenium.prototype.__getCellCoordinates = function(column, row, qxTable, clipperElement) { + // Get the coordinates of the table's Clipper: + var qx = this.getQxGlobalObject(); + var pos = qx.bom.element.Location.get(clipperElement); + LOG.debug("computed coords: X=" + pos["left"] + " Y=" + pos["top"]); + var coordsXY = [pos["left"], pos["top"]]; + // Add in table height plus row height to get to the right row: + //LOG.debug("Table Header Height = " + qxTable.getHeaderCellHeight() ); + //LOG.debug("Table Row Height = " + qxTable.getRowHeight() ); + coordsXY[1] = coordsXY[1] + ( row * qxTable.getRowHeight() ); + + // Add in the column widths for each visible column to the left of the selected one: + var columnModel = qxTable.getTableColumnModel(); + var visibleColumns = columnModel.getVisibleColumns(); + for (var i=0,l=visibleColumns.length; i<l; i++) { + if (column == i) { + break; + } + var colWidth = columnModel.getColumnWidth(visibleColumns[i]); + LOG.debug("Column " + visibleColumns[i] + " width: " + colWidth); + coordsXY[0] = coordsXY[0] + colWidth; + } + + LOG.debug("updated coords: X=" + coordsXY[0] + " Y=" + coordsXY[1]); + coordsXY[0] = coordsXY[0] + 3; + coordsXY[1] = coordsXY[1] + 3; + LOG.debug("final coords: X=" + coordsXY[0] + " Y=" + coordsXY[1]); + + return coordsXY; +}; + +Selenium.prototype.__getQxTableByLocator = function(locator) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (!qxObject) { + throw new SeleniumError("qxTableClick: No qooxdoo object found for locator: " + locator); + } + + if (!qxObject.getTableColumnModel) { + throw new SeleniumError("qxTableClick: The widget identified by the locator " + locator + " is not a table!"); + } + + return qxObject; +}; + +Selenium.prototype.__getQxTableRowColFromParameters = function(additionalParamsForClick, qxObject) +{ + var rowCol = []; + if (additionalParamsForClick["cellValue"]) { + LOG.debug("Getting target row and column from cell value"); + rowCol = this.getQxTableRowColByCellValue(qxObject, additionalParamsForClick["cellValue"]); + if (!rowCol) { + throw new SeleniumError("Could not find a visible cell with the given value"); + } + } + else { + var row = Number(additionalParamsForClick["row"]); + var col = this.__getColumnIdFromParameters(additionalParamsForClick, qxObject); + rowCol = [row, col]; + } + + return rowCol; +}; + +/** + * Uses the given locator to find a table, and then processes a click on the + * table at the given row/column position. Note, your locator should only find + * the table itself, and not the clipper child of the table. We'll add the extra + * Composite/Scroller/Clipper to the locator as required. + * + * <p> + * The column to click can be located using the index, ID or name by specifying + * one of the col, colId or colName parameters. Alternatively, a specific cell + * can be located by RegExp matching its content using the cellValue parameter. + * NOTE: This currently only works with tables using a Simple table model + * (qx.ui.table.model.Simple)! + * + * <p> + * mousedown, mouseup will be fired instead of only click + * in addition to to doQxClick the x-/y-coordinates of the located element will + * be determined. + * TODO: implement it like doFooAt, where additional coordinates will be added + * to the element-coords + * + * <p> + * Supported eventParams keys: + * - All mouse event parameters as accepted by + * Selenium.prototype.qx.triggerMouseEventQx + * - row Index of the table row to click + * - col Index of the table column to click + * - colId ID of the column to click + * - colName Name of the column to click + * - cellValue Content of a (text) cell to click + * + * @param locator {String} an element locator + * @param eventParams {String} List of comma-separated key=value pairs + * @return {void} + */ +Selenium.prototype.doQxTableClick = function(locator, eventParams) +{ + var qxObject = this.__getQxTableByLocator(locator); + + var element = this.__getTableClipperElement(locator, qxObject); + + if (!element) { + throw new SeleniumError("Could not find clipper child of the table"); + } + + var additionalParamsForClick = this.__getParameterMap(eventParams); + + var rowCol = this.__getQxTableRowColFromParameters(additionalParamsForClick, qxObject); + var row = rowCol[0]; + var col = rowCol[1]; + + LOG.debug("Targeting Row(" + row + ") Column(" + col + ")"); + + // Adjust our row number to match the rows that are currently visible: + var firstRow = this.__getUpdatedFirstVisibleRow(col, row, qxObject); + + // Adjust our "row" coordinate to be relative to the viewport: + row = row - firstRow; + + var coordsXY = this.__getCellCoordinates(col, row, qxObject, element); + + var doContextMenu = false; + var doDoubleClick = false; + if (additionalParamsForClick["button"] && + additionalParamsForClick["button"] === "right") { + doContextMenu = true; + } + if (additionalParamsForClick["double"] && + additionalParamsForClick["double"] === "true" ) { + doDoubleClick = true; + } + + // TODO: very dirty no checking, maybe refactoring needed to get doQxClick + // and doQxClickAt to work smoothly together. + var newEventParamString = eventParams + ",clientX=" + coordsXY[0] + + ",clientY=" + coordsXY[1]; + LOG.debug("newEventParamString=" + newEventParamString); + + // If requested, execute a right click/context menu event : + if (doContextMenu) { + LOG.debug("Right clicking table cell with params: " + newEventParamString); + this.clickElementQx(element, newEventParamString + ",button=right"); + } + + // If requested, execute a double-click: + else if (doDoubleClick) { + LOG.debug("Double clicking table cell with params: " + newEventParamString); + this.clickElementQx(element, newEventParamString + ",double=true"); + } + + // Otherwise execute a single click + else { + this.clickElementQx(element, newEventParamString); + } + +}; + +/** + * Uses the standard qx locators to find a table, and then processes a click on + * one of the column header cells. Note, your locator should only find the table + * itself, and not the clipper child of the table. We'll add the extra + * Composite/Scroller/Clipper to the locator as required. + * + * <p> + * The column to click can be located using the index, ID or name by specifying + * one of the col, colId or colName parameters. + * + * <p> + * mousedown, mouseup will be fired instead of only click + * in addition to to doQxClick the x-/y-coordinates of the located element will + * be determined. + * TODO: implement it like doFooAt, where additional coordinates will be added + * to the element-coords + * <p> + * eventParams example: button=left|right|middle, clientX=300, shiftKey=true + * for a full list of properties see "function + * Selenium.prototype.qx.triggerMouseEventQx" + * + * @type member + * @param locator {var} an element locator + * @param col {var} index of the table header column to click + * @param colId {var} ID of the column to click + * @param colName {var} Name of the column to click + * @param eventParams {var} additional parameter for the mouse-event to set. + * e.g. clientX. + * If no eventParams are set, defaults will be: left mousebutton, all keys false + * and all coordinates 0 + * @return {void} + */ +Selenium.prototype.doQxTableHeaderClick = function(locator, eventParams) +{ + var qxObject = this.getQxWidgetByLocator(locator); + + if (!qxObject) { + throw new SeleniumError("No qooxdoo object found for locator: " + locator); + } + + var additionalParamsForClick = this.__getParameterMap(eventParams); + + var col = this.__getColumnIdFromParameters(additionalParamsForClick, qxObject); + LOG.debug("Clicking table header column " + col); + + var element = this.__getTableHeaderCellElement(col, locator, qxObject); + + if (!element) { + throw new SeleniumError("Could not find the header cell with the index " + col); + } + + var qx = this.getQxGlobalObject(); + var pos = qx.bom.element.Location.get(element); + var headerCellX = pos["left"]; + var headerCellY = pos["top"]; + + var headerCellHeight = qxObject.getHeaderCellHeight(); + + var clientX = headerCellX + 5; + var clientY = headerCellY + Math.ceil(headerCellHeight / 2); + + LOG.debug("Header cell adjusted X position: " + clientX); + + var newEventParamString = eventParams + ",clientX=" + clientX + + ",clientY=" + clientY; + LOG.debug("newEventParamString=" + newEventParamString); + + // Click the cell header + this.clickElementQx(element, newEventParamString); + +}; + +/** + * Simulates user interaction with editable table cells. IMPORTANT: The target + * cell's editing mode must be activated immediately before this function is + * used, e.g. by executing a double click on it using the qxTableClick command + * with the double=true parameter. + * + * The following cell editor types are supported: + + * Text fields (qx.ui.table.celleditor.PasswordField, + * qx.ui.table.celleditor.TextField, qx.ui.table.celleditor.ComboBox): Use + * either the "type" or "typeKeys" parameters (typeKeys triggers + * keydown/keyup/keypress events). Examples: + * selenium.qxEditTableCell("qxh=qx.ui.table.Table", "type=Some text"); + * selenium.qxEditTableCell("myTable", "typeKeys=Lots of events"); + * + * Select boxes (qx.ui.table.celleditor.SelectBox, + * qx.ui.table.celleditor.ComboBox): Use the "selectFromBox" parameter. The + * value must be a qxh locator step that identifies the list item to be clicked. + * Examples: + * selenium.qxEditTableCell("qxh=qx.ui.table.Table", "selectFromBox=[@label=Germany]"); + * selenium.qxEditTableCell("qxh=qx.ui.table.Table", "selectFromBox=child[2]"); + * + * Checkboxes (qx.ui.table.celleditor.CheckBox): Use the "toggleCheckBox" + * parameter.... [truncated message content] |
From: <th...@us...> - 2013-02-14 17:18:03
|
Revision: 21837 http://sourceforge.net/p/qooxdoo-contrib/code/21837 Author: thron7 Date: 2013-02-14 17:18:02 +0000 (Thu, 14 Feb 2013) Log Message: ----------- removing unused branch 'data' Removed Paths: ------------- data/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2013-02-14 16:44:34
|
Revision: 21836 http://sourceforge.net/p/qooxdoo-contrib/code/21836 Author: thron7 Date: 2013-02-14 16:44:22 +0000 (Thu, 14 Feb 2013) Log Message: ----------- removing unused branch 'import' Removed Paths: ------------- import/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <th...@us...> - 2013-02-14 16:29:15
|
Revision: 21835 http://sourceforge.net/p/qooxdoo-contrib/code/21835 Author: thron7 Date: 2013-02-14 16:29:12 +0000 (Thu, 14 Feb 2013) Log Message: ----------- removing unused branch 'workspace' Removed Paths: ------------- workspace/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rst...@us...> - 2013-02-14 14:04:34
|
Revision: 21834 http://sourceforge.net/p/qooxdoo-contrib/code/21834 Author: rsternagel Date: 2013-02-14 14:04:28 +0000 (Thu, 14 Feb 2013) Log Message: ----------- test commit: add app in docs Modified Paths: -------------- trunk/qooxdoo-contrib/Translation/README.txt Modified: trunk/qooxdoo-contrib/Translation/README.txt =================================================================== --- trunk/qooxdoo-contrib/Translation/README.txt 2013-02-14 12:52:39 UTC (rev 21833) +++ trunk/qooxdoo-contrib/Translation/README.txt 2013-02-14 14:04:28 UTC (rev 21834) @@ -2,7 +2,7 @@ This project provides an infrastructure for volunteers to translate the language-specific parts of qooxdoo. This includes texts in the framework as -well as in some applications (e.g. feedreader, etc.). +well as in some applications (e.g. feedreader, showcase, etc.). For more info please see: http://qooxdoo.org/contrib/project/translation This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rst...@us...> - 2013-02-14 12:52:42
|
Revision: 21833 http://sourceforge.net/p/qooxdoo-contrib/code/21833 Author: rsternagel Date: 2013-02-14 12:52:39 +0000 (Thu, 14 Feb 2013) Log Message: ----------- removed whitespace Modified Paths: -------------- trunk/qooxdoo-contrib/Translation/README.txt Modified: trunk/qooxdoo-contrib/Translation/README.txt =================================================================== --- trunk/qooxdoo-contrib/Translation/README.txt 2013-02-14 08:52:45 UTC (rev 21832) +++ trunk/qooxdoo-contrib/Translation/README.txt 2013-02-14 12:52:39 UTC (rev 21833) @@ -1,7 +1,7 @@ ===== Translation ===== -This project provides an infrastructure for volunteers to translate the -language-specific parts of qooxdoo. This includes texts in the framework as +This project provides an infrastructure for volunteers to translate the +language-specific parts of qooxdoo. This includes texts in the framework as well as in some applications (e.g. feedreader, etc.). For more info please see: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2013-02-14 08:52:49
|
Revision: 21832 http://sourceforge.net/p/qooxdoo-contrib/code/21832 Author: d_wagner Date: 2013-02-14 08:52:45 +0000 (Thu, 14 Feb 2013) Log Message: ----------- test commit: relocated to https url Modified Paths: -------------- trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/Manifest.json Modified: trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/Manifest.json =================================================================== --- trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/Manifest.json 2013-02-14 08:34:21 UTC (rev 21831) +++ trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/Manifest.json 2013-02-14 08:52:45 UTC (rev 21832) @@ -1,15 +1,15 @@ { - "info" : + "info" : { "name" : "contribDemobrowser", "summary" : "A GUI for contrib library demos", "description" : "The contribDemobrowser inherits from qooxdoo's framework Demobrowser, displaying demo applications for contrib libraries.", - + "homepage" : "http://some.homepage.url/", "license" : "SomeLicense", - "authors" : + "authors" : [ { "name" : "Thomas Herchenroeder (thron7)", @@ -32,8 +32,8 @@ "version" : "trunk", "qooxdoo-versions": ["1.1-pre"] }, - - "provides" : + + "provides" : { "namespace" : "contribdemobrowser", "encoding" : "utf-8", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2013-02-14 08:34:25
|
Revision: 21831 http://sourceforge.net/p/qooxdoo-contrib/code/21831 Author: d_wagner Date: 2013-02-14 08:34:21 +0000 (Thu, 14 Feb 2013) Log Message: ----------- test commit: relocated checkout Modified Paths: -------------- trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.demo.json Modified: trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.demo.json =================================================================== --- trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.demo.json 2013-02-14 08:07:36 UTC (rev 21830) +++ trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.demo.json 2013-02-14 08:34:21 UTC (rev 21831) @@ -28,7 +28,7 @@ "UploadMgr" : {}, // "VirtualData" : {}, // "progressbar" : {}, - "collapsablePanel" : {} + "collapsablePanel" : {} /* // Use all supported contributions "*" : { @@ -38,7 +38,7 @@ } */ } - + /* //Use wildcards for all attributes to exclude a library: "exclude" : { @@ -48,6 +48,6 @@ "qooxdoo-versions" : ["*"] } } - */ + */ } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_w...@us...> - 2013-02-14 08:07:39
|
Revision: 21830 http://sourceforge.net/p/qooxdoo-contrib/code/21830 Author: d_wagner Date: 2013-02-14 08:07:36 +0000 (Thu, 14 Feb 2013) Log Message: ----------- test commit: fresh checkout Modified Paths: -------------- trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.json Modified: trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.json =================================================================== --- trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.json 2013-02-13 17:12:42 UTC (rev 21829) +++ trunk/qooxdoo-contrib/qooxdoo/contribDemobrowser/config.json 2013-02-14 08:07:36 UTC (rev 21830) @@ -46,29 +46,29 @@ "jobs" : { - "libraries" : + "libraries" : { "library" : [ { "manifest" : "${QOOXDOO_PATH}/application/demobrowser/Manifest.json" }, - + { "manifest" : "${QOOXDOO_PATH}/component/library/logpane/Manifest.json" } ] }, - - + + "common" : { "environment" : { "qx.contrib" : true - } + } }, - + // -- Source jobs ---------------------------------------------------------- "source-data" : @@ -86,13 +86,13 @@ "source" : { "desc" : "create source version of Demobrowser", - + "extend" : ["common"], - + "copy-files" : { "source" : "source/resource/${APPLICATION}", - + "files" : [ "welcome.html" ], "target" : "source/demo" @@ -104,20 +104,20 @@ "source-data" ] }, - + "source-with-build-demos" : { "desc" : "create source version of demobrowser with build versions of demos", - + "extend" : ["common"], - + "run" : [ "source-data-copydemos", "source-copy" ] }, - + "source-data-copydemos" : { "desc" : "generates the build version of all valid demos and the index file (demodata.json) for the demobrowser. Copies the built demos to the demobrowser's demo directory.", @@ -129,24 +129,24 @@ "command" : "${PYTHON} ${QOOXDOO_PATH}/tool/admin/bin/repository.py -r ../../ -C /var/tmp -c config.demo.json -j demos-build,api,store-data -d ./source --copy-demos" } }, - + "source-copy" : { - + "copy-files" : { "source" : "source/resource/${APPLICATION}", - + "files" : [ "welcome.html" ], "target" : "source/demo" } - + }, // -- Build jobs ----------------------------------------------------------- - + "build-data-copydemos" : { "desc" : "generates the build version of all valid demos and the index file (demodata.json) for the demobrowser. Copies the built demos to the demobrowser's demo directory.", @@ -158,19 +158,19 @@ "command" : "${PYTHON} ${QOOXDOO_PATH}/tool/admin/bin/repository.py -r ../../ -C /var/tmp -c config.demo.json -j demos-build,api,store-data -d $BUILD_PATH --copy-demos" } }, - + "build-copy" : { - + "copy-files" : { "source" : "source/resource/${APPLICATION}", - + "files" : [ "welcome.html" ], "target" : "build/demo" } - + }, "build" : @@ -184,14 +184,14 @@ "build-copy" ] }, - - + + // -- Clean jobs ----------------------------------------------------------- - + "clean-demos" : { "desc" : "deletes demo artifacts", - + "clean-files" : { "Cleaning up demos in build path" : @@ -199,7 +199,7 @@ "build/demo/*", "build/script/demodata.json" ], - + "Cleaning up demos in source path" : [ "source/demo/*", @@ -207,21 +207,21 @@ ] } }, - - "clean" : + + "clean" : { - + "run" : ["clean-demos"] - + }, - + "distclean" : { - + "run" : ["clean-demos"] - + }, - + "clean-cache" : { "desc" : "deletes the cache but leaves artifacts untouched", @@ -229,27 +229,27 @@ "clean-files" : { "Deleting nothing" : [] }, - + "cache" : { "compile" : "${CACHE}", "downloads" : "${CACHE}/downloads", "invalidate-on-tool-change" : true } }, - + // -- Misc jobs ------------------------------------------------------------ - + "lint-libraries" : { "desc" : "runs a Lint check on each library", - + "shell" : { "command" : "${PYTHON} ${QOOXDOO_PATH}/tool/admin/bin/repository.py -r ../../ -c config.demo.json -j lint-check" } - - } - + + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |