From a720658bd6302a1bd5efae47333b6df793370f3d Mon Sep 17 00:00:00 2001 From: itozyun Date: Wed, 2 Dec 2015 11:01:16 +0900 Subject: [PATCH] Verison 0.6.198, add jsdoc commnets. --- 0.6.x/js/01_core/13_XClass.js | 1 + 0.6.x/js/02_dom/01_XDTD.js | 2 +- 0.6.x/js/02_dom/20_XNode.js | 2 +- 0.6.x/js/05_util/04_XXML.js | 46 +++++++++++++++++++++++++++++++++++++++++-- 0.6.x/js/06_net/10_XOAuth2.js | 27 +++++++++++++++++++------ 5 files changed, 68 insertions(+), 10 deletions(-) diff --git a/0.6.x/js/01_core/13_XClass.js b/0.6.x/js/01_core/13_XClass.js index 9f6b05a..f0dc784 100644 --- a/0.6.x/js/01_core/13_XClass.js +++ b/0.6.x/js/01_core/13_XClass.js @@ -351,6 +351,7 @@ X[ 'Class' ] = /** @lends X.Class */ { */ 'NONE' : X_Class.NONE, + // TODO この指定、フレームワーク内だけ! /** * インスタンスは破棄時(this.kill())に回収され、次回の new MyClass() 時に再利用されます。 * @const diff --git a/0.6.x/js/02_dom/01_XDTD.js b/0.6.x/js/02_dom/01_XDTD.js index 21e5021..248045f 100644 --- a/0.6.x/js/02_dom/01_XDTD.js +++ b/0.6.x/js/02_dom/01_XDTD.js @@ -36,7 +36,7 @@ 'href' : true, 'longdesc' : true, 'profile' : true, - 'src' : true, + 'src' : true, // lowsrc, dynsrc 'usemap' : true }, diff --git a/0.6.x/js/02_dom/20_XNode.js b/0.6.x/js/02_dom/20_XNode.js index 7f125ff..b0c3723 100644 --- a/0.6.x/js/02_dom/20_XNode.js +++ b/0.6.x/js/02_dom/20_XNode.js @@ -8,7 +8,7 @@ */ var Node = X[ 'Node' ] = X_EventDispatcher[ 'inherits' ]( 'X.Node', - X_Class.POOL_OBJECT, + X_Class.NONE, { /** * 要素に振られるユニークID diff --git a/0.6.x/js/05_util/04_XXML.js b/0.6.x/js/05_util/04_XXML.js index df77214..5cc2c64 100644 --- a/0.6.x/js/05_util/04_XXML.js +++ b/0.6.x/js/05_util/04_XXML.js @@ -9,7 +9,6 @@ * * TODO X.Class で作り、kill を強要する */ - X[ 'XML' ] = XMLWrapper; /** @@ -17,12 +16,17 @@ X[ 'XML' ] = XMLWrapper; * @alias X.XML * @class XML 探索用のラッパークラスです * @constructor - * @param {xml} + * @param {XMLElement} */ function XMLWrapper( xml ){ this._rawXML = xml; }; +/** + * ラップした xml の数 常に1または0, XMLList の場合2以上 + * @alias X.XML.prototype.length + * @type {Number} + */ XMLWrapper.prototype.length = 1; XMLWrapper.prototype[ 'parent' ] = XMLWrapper_parent; XMLWrapper.prototype[ 'has' ] = XMLWrapper_has; @@ -30,6 +34,11 @@ XMLWrapper.prototype[ 'get' ] = XMLWrapper_get; XMLWrapper.prototype[ 'val' ] = XMLWrapper_val; XMLWrapper.prototype[ 'find' ] = XMLWrapper_find; +/** + * 親要素を返す、ルート要素の場合 null を返す + * @alias X.XML.prototype.parent + * @return {X.XML} 親要素 + */ function XMLWrapper_parent(){ if( this.length === 1 ) return this._rawXML && this._rawXML.parentNode ? new XMLWrapper( this._rawXML.parentNode ) : null; if( this.length === 0 ) return null; @@ -37,10 +46,23 @@ function XMLWrapper_parent(){ return this[ 0 ].parentNode ? ( new XMLWrapper( this[ 0 ].parentNode ) ) : null; }; +/** + * セレクターにヒットした要素数を返す + * @alias X.XML.prototype.has + * @param {string} queryString XML セレクター文字列 + * @return {number} + */ function XMLWrapper_has( queryString ){ return !!this.find( queryString ).length; }; +/** + *

X.XML では常に自信を返す + *

X.XMLList ではラップした xml 群から index のものを返す + * @alias X.XML.prototype.get + * @param {number} index + * @return {X.XML} X.XML では自身、X.XMLList では index の X.XML + */ function XMLWrapper_get( index ){ if( this.length === 1 ) return this; if( this.length === 0 ) return null; @@ -52,6 +74,13 @@ function XMLWrapper_get( index ){ null; }; +/** + * セレクターにヒットした要素の内容を指定されたデータ型で返す。複数要素にヒットした場合、0番目の要素の内容を使用する。 + * @alias X.XML.prototype.val + * @param {string} queryString XML セレクター文字列 + * @param {string} type 'number','int','boolean','string' + * @return {boolean|number|string} 内容を型変換した値 + */ function XMLWrapper_val( queryString, type ){ var //attr_textContent = X_UA[ 'IE' ] < 9 || X_UA[ 'Opera' ] ? 'innerText' : X_UA[ 'IE9' ] ? 'text' : 'textContent', wrapper, xml, v; @@ -98,6 +127,12 @@ function XMLWrapper_val( queryString, type ){ return v || ''; }; +/** + * セレクターにヒットした要素を返す。0~1個の要素がヒットした場合は X.XML を、それ以上の場合は X.XMLList を返す。 + * @alias X.XML.prototype.find + * @param {string} queryString セレクター文字列 + * @return {X.XML|X.XMLList} + */ function XMLWrapper_find( queryString ){ var scope = this.constructor === XMLListWrapper ? this : [ this._rawXML ], @@ -576,6 +611,13 @@ var XMLWrapper_filter = { } }; +/** + * XML配列を扱う XML 探索用のラッパークラスです + * @alias X.XMLList + * @class XMLList XML配列を扱う XML 探索用のラッパークラスです + * @constructor + * @extends {X.XML} + */ function XMLListWrapper( xmlList ){ var i = 0, l = xmlList ? xmlList.length : 0; for( ; i < l; ++i ){ diff --git a/0.6.x/js/06_net/10_XOAuth2.js b/0.6.x/js/06_net/10_XOAuth2.js index 961d0a2..063cb4a 100644 --- a/0.6.x/js/06_net/10_XOAuth2.js +++ b/0.6.x/js/06_net/10_XOAuth2.js @@ -93,23 +93,38 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ]( /** * 認可用 window をポップアップする。ポップアップブロックが働かないように必ず pointer event 内で呼ぶこと。 + *

+ *
1 :
認可用 window がポップアップ中(自身) + *
2 :
コードを認可中 + *
3 :
トークンのリフレッシュ中 + *
4 :
接続 + *
5 :
他のOAuth2サービスの認可用 window がポップアップ中 + *
+ * @return {number} */ 'requestAuth' : function(){ - var url, w, h; + var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ], + w, h; + // TODO pointer event 内か?チェック + if( !e || !e[ 'pointerType' ] ){ + alert( 'タッチイベント以外での popup! ' + ( e ? e.type : '' ) ); + return; + }; + // 二つ以上の popup を作らない if( X_NET_OAUTH2_authorizationWindow ) return; pair = X_Pair_get( this ); if( pair.net || pair.oauth2State ) return; - - url = pair[ 'authorizeEndpoint' ]; + w = pair[ 'authorizeWindowWidth' ] || 500; h = pair[ 'authorizeWindowHeight' ] || 500; + // TODO X.Util.Window X_NET_OAUTH2_authorizationWindow = window.open( - X_URL_create( url, + X_URL_create( pair[ 'authorizeEndpoint' ], { 'response_type' : 'code', 'client_id' : pair[ 'clientID' ], @@ -356,11 +371,11 @@ function X_NET_OAUTH2_onXHR401Error( oauth2, e ){ }; // http://d.hatena.ne.jp/ritou/20110402/1301679908 - if ( bearerParams && bearerParams.indexOf( ' error=' ) === -1 ) { // bearerParams.error == undefined + if( bearerParams && bearerParams.indexOf( ' error=' ) === -1 ){ // bearerParams.error == undefined pair.oauth2State = 0; oauth2[ 'asyncDispatch' ]( X_EVENT_NEED_AUTH ); } else - if ((( bearerParams && bearerParams.indexOf( 'invalid_token' ) !== -1 ) || !headersExposed) && X_OAuth2_getRefreshToken( oauth2 ) ) { + if( ( ( bearerParams && bearerParams.indexOf( 'invalid_token' ) !== -1 ) || !headersExposed ) && X_OAuth2_getRefreshToken( oauth2 ) ){ X_OAuth2_removeAccessToken( oauth2 ); // It doesn't work any more. pair.oauth2State = 3; oauth2[ 'refreshToken' ](); -- 2.11.0