From e6eb7ea34d3a999c119747934d4330535cebe4bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Tue, 15 May 2018 17:55:56 +0800 Subject: [PATCH] Dropped Swd & ExtAPI --- botanjs/src/Components/Mouse/Clipboard.js | 98 +++++------ botanjs/src/Components/Mouse/ContextMenu.js | 2 - botanjs/src/Dandelion/Swf/ExtAPI.css | 7 - botanjs/src/Dandelion/Swf/ExtAPI.js | 44 ----- botanjs/src/Dandelion/Swf/_this.css | 56 ------- botanjs/src/Dandelion/Swf/_this.js | 173 -------------------- botanjs/src/externs/Dandelion.Swf.ExtAPI.js | 5 - botanjs/src/externs/Dandelion.Swf.js | 7 - 8 files changed, 38 insertions(+), 354 deletions(-) delete mode 100644 botanjs/src/Dandelion/Swf/ExtAPI.css delete mode 100644 botanjs/src/Dandelion/Swf/ExtAPI.js delete mode 100644 botanjs/src/Dandelion/Swf/_this.css delete mode 100644 botanjs/src/Dandelion/Swf/_this.js delete mode 100644 botanjs/src/externs/Dandelion.Swf.ExtAPI.js delete mode 100644 botanjs/src/externs/Dandelion.Swf.js diff --git a/botanjs/src/Components/Mouse/Clipboard.js b/botanjs/src/Components/Mouse/Clipboard.js index 73229d6..4a5d6c3 100644 --- a/botanjs/src/Components/Mouse/Clipboard.js +++ b/botanjs/src/Components/Mouse/Clipboard.js @@ -9,52 +9,49 @@ var Perf = __import( "System.utils.Perf" ); /** @type {System.Cycle} */ var Cycle = __import( "System.Cycle" ); + /** @type {Dandelion.IDOMElement} */ + var IDOMElement = __import( "Dandelion.IDOMElement" ); /** @type {Dandelion} */ var Dand = __import( "Dandelion" ); - /** @type {Dandelion.Swf} */ - var Swf = __import( "Dandelion.Swf" ); - /** @type {Dandelion.Swf.ExtAPI} */ - var ExtAPI = __import( "Dandelion.Swf.ExtAPI" ); - var stage - , helperAddress = "/assets/swf/iClipboard.swf" - , helperId - , cCallback - ; - - /** @type {Components.Mouse.Clipboard.SwfHelperObj */ - var clipboardHelper = null; + var stage, cCallback; var init = function () { - if( stage ) return; - stage = Dand.wrapc('ch_obj no_transition no_transition_recursive'); - - if( Global.IE ) + if( !stage ) { - document.body.appendChild(stage); - Cycle.next( - function (){ - stage.innerHTML = Swf.create( - helperAddress, 20, 20, helperId = Perf.uuid, 'always', 'transparent' - ); + stage = Dand.wrapc('ch_obj no_transition no_transition_recursive'); + stage.style.width = "20px"; + stage.style.height= "20px"; + stage.style.overflow = "hidden"; + stage.style.cursor = "default"; + stage.style.opacity = "0"; + stage.style.background = "rgba( 0, 204, 255, 0.5 )"; + document.body.appendChild( stage ); + + IDOMElement( stage ).addEventListener( "Click", function( e ) + { + if( document.body.createTextRange ) + { + var range = document.body.createTextRange(); + range.moveToElementText( stage ); + range.select(); } - ); + else if( window.getSelection ) + { + var sel = window.getSelection(); + var range = document.createRange(); + range.selectNodeContents( stage ); + sel.removeAllRanges(); + sel.addRange( range ); + } + + document.execCommand( "copy" ); + stage.style.display = "none"; + if( cCallback ) + cCallback(); + }); } - else - { - stage.appendChild( - Swf.create( - helperAddress, 20, 20, helperId = Perf.uuid, 'always', 'transparent' - ) - ); - - document.body.appendChild(stage); - } - - stage.style.visibility = "hidden"; - - ExtAPI.init(); }; // Using onmouse properties since event needs to be unique. e.g. single handler @@ -69,47 +66,30 @@ if( trigger() ) { Global.IE && (event || (event = e)); - stage.style.visibility = ""; stage.style.left = ( e.pageX - 10 ) + "px"; stage.style.top = ( e.pageY - 10 ) + "px"; } } }; - var setTextToCopy = function (textToCopy) + var setTextToCopy = function( _text ) { - if( clipboardHelper && clipboardHelper.copy ) - { - clipboardHelper.copy( textToCopy ); - if( Global.debug && clipboardHelper.debug ) clipboardHelper.debug(); - } - else - { - // This will loop though cycle by cycle until the movie is ready - Cycle.next(function () { - clipboardHelper = Swf( helperId ); - setTextToCopy( textToCopy ); - }); - } + stage.innerHTML = _text; }; - // Called by swf var textCopied = function () { if( cCallback ) cCallback(); debug.Info( "[Clipboard] Text copied" ); - stage.style.visibility = "hidden"; - - // Release the focus on swf - clipboardHelper.blur(); - document.onmousemove = null; }; var onMouseOver = function ( callback ) { if( callback == undefined ) return stage.onmouseover; + + stage.style.display = "block"; stage.onmouseover = callback; }; @@ -117,7 +97,6 @@ { if( callback == undefined ) return stage.onmouseout; stage.onmouseout = function () { - stage.style.visibility = "hidden"; this._callback(); }.bind({_callback: callback}); }; @@ -127,5 +106,4 @@ ns[ NS_EXPORT ]( EX_FUNC, "capture", capture ); ns[ NS_EXPORT ]( EX_VAR, "onMouseOver", onMouseOver ); ns[ NS_EXPORT ]( EX_VAR, "onMouseOut", onMouseOut ); - ns[ NS_EXPORT ]( EX_FUNC, "_textCopied", textCopied ); })(); diff --git a/botanjs/src/Components/Mouse/ContextMenu.js b/botanjs/src/Components/Mouse/ContextMenu.js index 8a2a55a..f22e152 100644 --- a/botanjs/src/Components/Mouse/ContextMenu.js +++ b/botanjs/src/Components/Mouse/ContextMenu.js @@ -19,7 +19,6 @@ /** @type {Components.Mouse.Clipboard} */ var Clipboard = __import( "Components.Mouse.Clipboard" ); - var ContextMenu = function ( target, items, whichButton, menuInsideTarget, overrides ) { if ( !target.id ) @@ -490,6 +489,5 @@ return false; }; - ns[ NS_EXPORT ]( EX_CLASS, "ContextMenu", ContextMenu ); })(); diff --git a/botanjs/src/Dandelion/Swf/ExtAPI.css b/botanjs/src/Dandelion/Swf/ExtAPI.css deleted file mode 100644 index d7913d9..0000000 --- a/botanjs/src/Dandelion/Swf/ExtAPI.css +++ /dev/null @@ -1,7 +0,0 @@ -#extAPIConsole { - -webkit-transition: all 0s; - -moz-transition: all 0s; - -ms-transition: all 0s; - -o-transition: all 0s; - transition: all 0s; -} \ No newline at end of file diff --git a/botanjs/src/Dandelion/Swf/ExtAPI.js b/botanjs/src/Dandelion/Swf/ExtAPI.js deleted file mode 100644 index e29c3a5..0000000 --- a/botanjs/src/Dandelion/Swf/ExtAPI.js +++ /dev/null @@ -1,44 +0,0 @@ -(function(){ - var ns = __namespace( "Dandelion.Swf.ExtAPI" ); - /** @type {System.Debug} */ - var debug = __import( "System.Debug" ); - - var jsReady = false - , as = 0 - , cutConnection = false - - , watchDogTime = new Date().getTime() - , watchDogCounter = 0 - , lastCount = 0 - ; - - var ExtAPI = function () - { - // TODO - }; - - var isReady = function () { return jsReady; }; - - var init = function () - { - jsReady = true; - debug.Info( "[ExtAPI] " + new Date().toString() ); - }; - - var watch = function () - { - if( watchDogCounter - lastCount < 300 ) - { - lastCount = watchDogCounter; - } - else - { - cutConnection = true; - debug.Warning( "[ExtAPI] Console Disabled: possible hanging dectected." ) - } - watchDogTime = new Date().getTime(); - }; - - ns[ NS_EXPORT ]( EX_FUNC, "init", init ); - ns[ NS_EXPORT ]( EX_FUNC, "ready", isReady ); -})(); diff --git a/botanjs/src/Dandelion/Swf/_this.css b/botanjs/src/Dandelion/Swf/_this.css deleted file mode 100644 index 75a7f7c..0000000 --- a/botanjs/src/Dandelion/Swf/_this.css +++ /dev/null @@ -1,56 +0,0 @@ -.swf_wrapper { - position: relative; - overflow: hidden; -} - -.swf_wrapper > div { - position: relative; - width: 100%; - height: 100%; -} - -.swf_inactive { - background: rgba(0, 0, 0, 0.2); - opacity: 1; -} - -.swf_inactive:hover { - opacity: 0.6; -} - -.swf_inactive > div { - width: 0; - height: 0; - border-top: 3.5em solid transparent; - border-bottom: 3.5em solid transparent; - border-left: 5em solid #FFF; - position: absolute; - - left: 50%; - top: 50%; - margin-top: -3.5em; - margin-left: -1.8em; -} - - /* title */ -.swf_caption { - bottom: 0; - - position: absolute; - - display: block; - width: 100%; - - color: white; - background: rgba(0, 0, 0, 0.8); - - padding: 0.2em; - - font-size: 2em; - - cursor: default; -} - -.swf_desc { - font-size: 60%; -} \ No newline at end of file diff --git a/botanjs/src/Dandelion/Swf/_this.js b/botanjs/src/Dandelion/Swf/_this.js deleted file mode 100644 index 0ea91f0..0000000 --- a/botanjs/src/Dandelion/Swf/_this.js +++ /dev/null @@ -1,173 +0,0 @@ -(function(){ - var ns = __namespace( "Dandelion" ); - - /** @type {System.utils} */ - var utils = __import( "System.utils" ); - /** @type {System.utils.IKey} */ - var IKey = __import( "System.utils.IKey" ); - /** @type {System.Policy} */ - var Policy = __import( "System.Policy" ); - /** @type {System.Debug} */ - var Dand = __import( "Dandelion" ); - - var IE = __import( "System.Global.IE" ); - - var s_current = {player: false, mask: false, stage: false, listener: false, sid: null}; - - var Swf = function (movieName) - { - if ( navigator.appName.indexOf("Microsoft") != -1 ) - { - return window[movieName]; - } - else - { - return document[movieName]; - } - }; - - var realize = function (id) - { - var movieElement = Dand.id('swfWrapper_' + id) - , swf_origin = Dand.wrap('a') - , _src = movieElement.getAttribute("value") - - swf_origin.href = _src; - - if( Policy.isAllowedOrigin( stf_origin.host ) ) { - swf_origin = "always"; - } else { - swf_origin = "never"; - } - - movieElement.onclick = ( IE ? createMovieIE : createMovie ).bind({ - sid: id - , src: _src - , width: movieElement.style.width - , height: movieElement.style.height - , s_stage:movieElement - , origin: swf_origin - }); - }; - - /* - var getCurrentMovie = function (args) - { - if ( window.ExtAPI ) - { - return thisMovie( s_current.sid ); - } - return null; - }; - */ - - var createMovieIE = function () - { - // Remove previous movie if exists - if(s_current.stage) - { - s_current.stage.firstChild.className = "swf_inactive"; - s_current.stage.firstChild.innerHTML = s_current.player; - s_current.stage.childNodes[1].style.bottom = ""; - s_current.stage.onclick = s_current.listener; - } - - this.s_stage.childNodes[1].style.bottom = "-2em"; - s_current.sid = "swf_" + this.sid; - - s_current.stage = this.s_stage; - s_current.player = this.s_stage.firstChild.innerHTML; - - this.s_stage.firstChild.className = "swf_active"; - this.s_stage.firstChild.innerHTML = makeStageIE(this.src, this.width, this.height, s_current.sid, this.origin); - - // Save event listener - s_current.listener = this.s_stage.onclick; - - // disable click event - this.s_stage.onclick = null; - }; - - var createMovie = function () - { - - // Remove previous movie if exists - if(s_current.stage) - { - s_current.stage.removeChild(s_current.player); - s_current.stage.firstChild.style.bottom = ""; - s_current.stage.insertBefore(mask, stage.firstChild); - s_current.stage.onclick = s_current.listener; - } - - - this.s_stage.childNodes[1].style.bottom = "-2em"; - s_current.sid = "swf_" + this.sid; - - // Remove mask - (s_current.stage = this.s_stage).removeChild(s_current.mask = this.s_stage.childNodes[0]); - - s_current.player = makeStage(this.src, this.width, this.height, s_current.sid, this.origin); - this.s_stage.appendChild(s_current.player); - - // Save event listener - s_current.listener = this.s_stage.onclick; - - // disable click event - this.s_stage.onclick = null; - - }; - - var makeStage = function (src, width, height, sid, origin, wmode) - { - return Dand.wrapna("embed", - [ - new IKey("src", src) - , new IKey("quality", "high") - , new IKey("bgcolor", "#869ca7") - , new IKey("width", width) - , new IKey("height", height) - , new IKey("name", sid) - , new IKey("align", "middle") - , new IKey("wmode", wmode || "direct") - , new IKey("play", "true") - , new IKey("loop", "false") - , new IKey("quality", "high") - , new IKey("allowScriptAccess", origin) - , new IKey("type", "application/x-shockwave-flash") - , new IKey("pluginspage", "http://www.macromedia.com/go/getflashplayer") - ] - ); - }; - - var makeStageIE = function (src, width, height, sid, origin, wmode) - { - return Dand.wrape( - Dand.wrapne('object', - [ - Dand.wrapna("param", [new IKey("name", "wmode"), new IKey("value", wmode || "direct")]) - , Dand.wrapna("param", [new IKey("name", "quality"), new IKey("value", "high")]) - , Dand.wrapna("param", [new IKey("name", "movie"), new IKey("value", src)]) - , Dand.wrapna("param", [new IKey("name", "bgcolor"), new IKey("value", "#869ca7")]) - , Dand.wrapna("param", [new IKey("name", "allowScriptAccess"), new IKey("value", origin)]) - ] - , - [ - new IKey("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000") - , new IKey("id", sid) - , new IKey("name", sid) - , new IKey("width", width) - , new IKey("height", height) - , new IKey("data", src) - , new IKey("type", "application/x-shockwave-flash") - , new IKey("codebase", "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab") - ] - ) - ).innerHTML; - }; - - __static_method( Swf, "create", IE ? makeStageIE : makeStage ); - __static_method( Swf, "realize", realize ); - - ns[ NS_EXPORT ]( EX_CLASS, "Swf", Swf ); -})(); diff --git a/botanjs/src/externs/Dandelion.Swf.ExtAPI.js b/botanjs/src/externs/Dandelion.Swf.ExtAPI.js deleted file mode 100644 index 2cceb3e..0000000 --- a/botanjs/src/externs/Dandelion.Swf.ExtAPI.js +++ /dev/null @@ -1,5 +0,0 @@ -/** @constructor */ -Dandelion.Swf.ExtAPI = function (){} - -/** @type {Function} */ -Dandelion.Swf.ExtAPI.ready; diff --git a/botanjs/src/externs/Dandelion.Swf.js b/botanjs/src/externs/Dandelion.Swf.js deleted file mode 100644 index 27381f8..0000000 --- a/botanjs/src/externs/Dandelion.Swf.js +++ /dev/null @@ -1,7 +0,0 @@ -/** @constructor */ -Dandelion.Swf = function (){} - -/** @type {Function} */ -Dandelion.Swf.create; -/** @type {Function} */ -Dandelion.Swf.realize;