OSDN Git Service

Version 0.6.58, X.UI.HBox is working.
[pettanr/clientJs.git] / 0.5.x / javascripts / peta-apps.js
index 0b1a931..16cabfe 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * pettanR peta.apps.js
- *   version 0.5.44
+ *   version 0.5.49
  *   
  * author:
  *   itozyun
                                                data = createFileData( json, LICENSE_GROUP_ARRAY, 'name,caption,url,classname' );
                                                addChildData( FILE_DATA_LISENCE_GROUP, data );
                                                break;
-                                               
+                                       
+                                       // Speech Balloon Templete
+                                       case FILE_DATA_BALLOON_ROOT :
+                                       case BALLOON_TEMPLETE_ARRAY :
+                                               json.type = FILE_TYPE.BALLOON_TEMPLETE;
+                                               // register pettanr.balloon
+                                               pettanr.newBalloon.register( json.settings );
+                                               data = createFileData( json, BALLOON_TEMPLETE_ARRAY, 'name,caption,classname,settings' );
+                                               addChildData( FILE_DATA_BALLOON_ROOT, data );
+                                               break;
+                                       
                                        // Author
                                        case FILE_DATA_AUTHOR_ROOT :
                                        case AUTHOR_ARRAY          :
                                                return [ data.name, '先生' ].join( '' );
                                        case FILE_TYPE.ARTIST :
                                                return [ data.name, '画伯' ].join( '' );
+                                       case FILE_TYPE.BALLOON_TEMPLETE :
+                                               return [ data.id, data.caption ].join( ':' );
                                        case FILE_TYPE.FOLDER :
                                };
                                return data.name;
                                                return { className: 'file-type-author' };
                                        case FILE_TYPE.ARTIST :
                                                return { className: 'file-type-artist' };
+                                       case FILE_TYPE.BALLOON_TEMPLETE :
+                                               return { className: 'file-type-balloon' };
                                        case FILE_TYPE.FOLDER :
                                                return { className: 'file-type-folder' };
                                };
                                                return 'author id:' + data.id;
                                        case FILE_TYPE.ARTIST :
                                                return [ 'artist id:', data.id, ' Email:', data.email || 'empty' , ', HP:', data.homepage_url || 'empty' ].join( '' );
+                                       case FILE_TYPE.BALLOON_TEMPLETE :
+                                               return data.name + ', ' + data.settings;
                                        case FILE_TYPE.FOLDER :
                                                return 'pettanR folder';
                                };
                        this.viewerApplicationList = function( file ){
                                var data = FileAPI.getFileData( file ),
                                        type = data !== null ? data.type : null;
+                               if( data === FILE_DATA_MY_ORIGINAL_PICTURES_ROOT ) return [ PremiumSatge ];
                                switch( type ){
                                        case FILE_TYPE.COMIC :
                                        case FILE_TYPE.PANEL :
                                                break;
                                        case FILE_TYPE.ARTIST :
                                                return [ PremiumSatge ];
-                                       default :
-                                               if( data === FILE_DATA_MY_ORIGINAL_PICTURES_ROOT ){
-                                                       return [ PremiumSatge ];
-                                               };                                              
+                                       default :                                               
                                };
                                return [];
                        };
                                STORY            : FileAPI.createFileTypeID(),
                                PANEL            : FileAPI.createFileTypeID(),
                                PANEL_ELEMENT    : FileAPI.createFileTypeID(),
-                               BALLOON          : FileAPI.createFileTypeID(),                          
+                               BALLOON          : FileAPI.createFileTypeID(),
+                               BALLOON_TEMPLETE : FileAPI.createFileTypeID(),  
                                ORIGINAL_PICTURE : FileAPI.createFileTypeID(),
                                RESOURCE_PICTURE : FileAPI.createFileTypeID(),
                                PICTURE          : FileAPI.createFileTypeID(),
                                AUTHOR           : FileAPI.createFileTypeID(),
                                ARTIST           : FileAPI.createFileTypeID(),
                                LICENSE          : FileAPI.createFileTypeID(),
-                               LICENSE_GROUP    : FileAPI.createFileTypeID()
+                               LICENSE_GROUP    : FileAPI.createFileTypeID(),
                        }
                ),
                AUTHOR_ARRAY  = [],
                        children:       []
                },
                FILE_DATA_BALLOON_ROOT = {
-                       name:           'Balloon templetes',
+                       name:           'Balloon Templetes',
                        type:           FILE_TYPE.FOLDER,
-                       children:       []
+                       children:       [],
+                       driver:         Driver,
+                       json:           pettanr.CONST.SPEECH_BALOON_TEMPLETE
                };
        FILE_DATA_SERVICE_ROOT.children.push( FILE_DATA_COMICS_ROOT, FILE_DATA_RESOURCE_PICTURES_ROOT, FILE_DATA_ORIGINAL_PICTURES_ROOT, FILE_DATA_LISENCE_ROOT, FILE_DATA_BALLOON_ROOT );
        FILE_DATA_COMICS_ROOT.children.push( FILE_DATA_MY_COMICS_ROOT, FILE_DATA_LATEST_COMICS, FILE_DATA_AUTHOR_ROOT, FILE_DATA_STORY_ROOT, FILE_DATA_PANELS_ROOT );
@@ -853,9 +870,9 @@ var PremiumSatge = gOS.registerApplication( function(){
        var ImageGroupIconClass = function( index, data ){
                var elmIconWrap     = elmIconOrigin.cloneNode( true ),
                        elmIconTitle    = Util.getElementsByClassName( elmIconWrap, 'image-group-item-title' )[ 0 ],
-                       originalPicture = data.original_picture,
+                       originalPicture = data.original_picture || data,
                        SRC             = [ BASE_PATH, data.id, '.', data.ext ].join( ''),
-                       LOW_SRC         = originalPicture.filesize && originalPicture.filesize > LIMIT_FILESIZE ? [ THUMB_PATH, data.id, '.', originalPicture.ext ].join( '') : null,
+                       LOW_SRC         = originalPicture.filesize && originalPicture.filesize > LIMIT_FILESIZE ? [ THUMB_PATH, data.id, '.', data.ext ].join( '' ) : null,
                        reversibleImage = null,
                        timer           = null,
                        onEnterFlag     = false,
@@ -1390,7 +1407,7 @@ var Editor = gOS.registerApplication( function(){
                var ELM_ITEM_CLASSNAME = 'menubar-item',
                        currentMenu        = null,
                        elmBar, elmBox,
-                       nodeBar, nodeBox,
+                       nodeBar, nodeBox, layerBox,
                        barH, menuW;
        /** -----------------------------------------
         *  PrivateOptionDataClass
@@ -1583,7 +1600,7 @@ var Editor = gOS.registerApplication( function(){
                };
                MenuClass.prototype = {
                        show: function(){
-                               data = MenuPrivateDataClass.get( this );
+                               var data = MenuPrivateDataClass.get( this );
                                if( data.visible === true ) return;
                                
                                data.elm.className = ELM_ITEM_CLASSNAME + '-focus';
@@ -1988,7 +2005,7 @@ var Editor = gOS.registerApplication( function(){
                        },
                        firstOpen : function(){
                                var win       = this.window,
-                                       elmHead   = this.elmHead = Util.getElementsByClassName( this.elm, 'window-header' )[ 0 ];
+                                       elmHead   = this.elmHead = Util.getElementsByClassName( this.elm, 'window-header' )[ 0 ],
                                        elmBody   = this.elmBody = Util.getElementsByClassName( this.elm, 'window-body' )[ 0 ],
                                        elmClose  = Util.getElementsByClassName( this.elm, 'window-close-button' )[ 0 ],
                                        elmFoot   = Util.getElementsByClassName( this.elm, 'window-footer' )[ 0 ],
@@ -2949,7 +2966,8 @@ var Editor = gOS.registerApplication( function(){
                                { x:    1, w:   -1, y:  0, h:    1}, //bottom-left
                                { x:    0, w:    1, y:  0, h:    1}  //bottom-right
                        ],
-                       startX, startY, startW, startH, startFilpV, startFilpH, startAspect,
+                       startX, startY, startW, startH,
+            flipV, flipH, startFilpV, startFilpH, startAspect,
                        baseX, baseY, baseW, baseH,
                        currentX, currentY, currentW, currentH,
                        offsetX, offsetY,
@@ -3453,9 +3471,10 @@ var Editor = gOS.registerApplication( function(){
                        pushoutH        = 0,
                        pushout         = false,
                        currentType     = -1,
+            currentElement  = null,
                        visible         = false,
                        node            = null,
-                       ui, inputX, inputY, inputZ, inputA, inputW, inputH, inputAspectRatio,
+                       ui, inputX, inputY, inputZ, inputA, inputW, inputH, inputPercentW, inputPercentH, inputAspectRatio,
                        buttonBack, buttonForward, buttonDel, buttonEdit, butonChange;
                        
                function layerBack(){
@@ -3488,7 +3507,7 @@ var Editor = gOS.registerApplication( function(){
                };
                function change(){
                        if( currentElement === null ) return;
-                       PremiumSatge.boot( currentElement.artistID, currentElement.resourcePicture, currentElement );
+                       PremiumSatge.boot( currentElement.artistID, currentElement.realPicture, currentElement );
                };
 
                return {
@@ -3680,13 +3699,11 @@ var Editor = gOS.registerApplication( function(){
                this.$        = jqImageElementOrigin.clone( true );
                this.data     = data;
                this.z        = data.z;
-               this.timing   = data.t || PANEL_ELEMENT_ARRAY.length + 1;
+               this.timing   = data.t || PANEL_ELEMENT_ARRAY.length;
                this.keepSize = false;
                this.flipV    = data.height < 0 ? -1 : 1;
                this.flipH    = data.width  < 0 ? -1 : 1;
                this.rPicture = data.picture;
-               //this.oPicture = this.rPicture.original_picture;
-               //this.artistID = this.oPicture.artist.id || -1;
                
                var self = this;
                function animeComplete(){
@@ -3712,7 +3729,7 @@ var Editor = gOS.registerApplication( function(){
                                this.flipV = updateV === true ? -this.flipV : this.flipV;
                                this.reversibleImage.resize( this.flipH * this.w, this.flipV * this.h );
                        },
-                       resourcePicture : function( _rPicture ){
+                       realPicture : function( _rPicture ){
                                if( _rPicture && _rPicture !== this.rPicture ){
                                        HISTORY_CONTROL.saveState( this._updateResourcePicture, this.rPicture, _rPicture, this );
                                        this._updateResourcePicture( _rPicture );
@@ -3757,7 +3774,7 @@ var Editor = gOS.registerApplication( function(){
                                this.actualH = this.oPicture.height;
                                
                                var _reversibleImage = pettanr.image.createReversibleImage( 
-                                               [ pettanr.CONST.RESOURCE_PICTURE_PATH, this.rPicture.id, '.', this.rPicture.ext ].join( '' ),
+                                               [ pettanr.CONST.PICTURE_PATH, this.rPicture.id, '.', this.rPicture.ext ].join( '' ),
                                                this.flipH * this.w, this.flipV * this.h
                                        );
                                if( this.reversibleImage !== null ){
@@ -3814,7 +3831,7 @@ var Editor = gOS.registerApplication( function(){
                })();
                this.balloon = pettanr.balloon.createBalloon( data.width, data.height, data.tail, this.type );
                this.z       = data.z;
-               this.timing  = data.t || PANEL_ELEMENT_ARRAY.length + 1;
+               this.timing  = data.t || PANEL_ELEMENT_ARRAY.length;
                
                this.$.find( 'img' ).eq( 0 ).replaceWith( this.balloon.elm );
                
@@ -4071,11 +4088,11 @@ var Editor = gOS.registerApplication( function(){
                                var _panelElement;
                                if( isPanelPictureData !== true ){
                                        _panelElement = new ImageElementClass( {
-                                               picture : data,
+                                               picture : data.picture,
                                                x       : Math.floor( panelW / 2 - data.width / 2 ),
                                                y       : Math.floor( panelH / 2 - data.height / 2 ),
                                                z       : -1,
-                                               t       : PANEL_ELEMENT_ARRAY.length + 1,
+                                               t       : 0,
                                                width   : 1,
                                                height  : 1
                                        });
@@ -4099,7 +4116,7 @@ var Editor = gOS.registerApplication( function(){
                                                x:                                      Math.floor( panelW / 2 - 100 + Math.random() * 10 ),
                                                y:                  Math.floor( panelH / 2 - 100 + Math.random() * 10 ),
                                                z:                  -1,
-                                               t:                  PANEL_ELEMENT_ARRAY.length + 1,
+                                               t:                  0,
                                                width:              200,
                                                height:             200,
                                                speeches_attributes: {
@@ -5041,7 +5058,7 @@ var Model = ( function(){
                function getPanelElementByTiming(){
                        var i, l = panelElementArray.length;
                        while( timing < l * 2 ){
-                               for( i=0; i<l; ++i ){
+                               for( i = 0; i < l; ++i ){
                                        if( timing === panelElementArray[ i ].timing ){
                                                // console.log( timing + ' , ' + panelElementArray[ i ].timing );
                                                ++timing;
@@ -5053,9 +5070,10 @@ var Model = ( function(){
                        return null;
                };
                function panelElementToHtml( _panelElement, isAbsoluteUrl, isXHTML ){
-                       var url;
+                       var rPic, url;
                        if( _panelElement.type === 0 ){
-                               url = [ pettanr.CONST.RESOURCE_PICTURE_PATH, _panelElement.resourcePicture().id, '.', _panelElement.resourcePicture().ext ].join( '' );
+                               rPic = _panelElement.realPicture();
+                               url  = [ pettanr.CONST.RESOURCE_PICTURE_PATH, rPic.id, '.', rPic.ext ].join( '' );
                                return [
                                        '<img ',
                                                'src="',        isAbsoluteUrl !== true ? url : Util.getAbsolutePath( url ), '" ',
@@ -5094,12 +5112,13 @@ var Model = ( function(){
                        };
                };
                function getImageJsonGET( _imageElement ){
-                       var cr = pettanr.LINE_FEED_CODE_TEXTAREA;
+                       var cr = pettanr.LINE_FEED_CODE_TEXTAREA,
+                               rPic = _imageElement.realPicture();
                        return [
                                '{', cr,
                                        '"resource_picture": {', cr,
-                                               '"id": ',              _imageElement.resourcePicture().id, ',', cr,
-                                               '"ext": ',             '"',_imageElement.resourcePicture().ext, '"', cr,
+                                               '"id": ',              rPic.id, ',', cr,
+                                               '"ext": ',             '"', rPic.ext, '"', cr,
                                        '},', cr,
                                        '"x": ',                   _imageElement.x, ',', cr,
                                        '"y": ',                   _imageElement.y, ',', cr,
@@ -5110,44 +5129,48 @@ var Model = ( function(){
                                '}'
                        ].join( '');
                };
-               function imageToJson( _imageElement, _timing ){
+               function imageToJson( _imageElement, t ){
                        var cr = pettanr.LINE_FEED_CODE_TEXTAREA;
                        return [
                                '{', cr,
-                                       '"picture_id": ', _imageElement.resourcePicture().id, ',', cr,
+                                       '"picture_id": ', _imageElement.realPicture().id, ',', cr,
                                        '"x": ',          _imageElement.x, ',', cr,
                                        '"y": ',          _imageElement.y, ',', cr,
                                        '"z": ',          _imageElement.z + 1, ',', cr,
-                                       '"t": ',          _timing, ',', cr,
+                                       '"t": ',          t, ',', cr,
                                        '"width": ',      _imageElement.flipH * _imageElement.w, ',', cr,
                                        '"height": ',     _imageElement.flipV * _imageElement.h, cr,
                                '}'
                        ].join( '');
                };
 
-               function balloonToJson( _textElement, _timing ){
+               function balloonToJson( _textElement, t ){
                        var cr = pettanr.LINE_FEED_CODE_TEXTAREA;
                        return [
                                '{', cr,
-                                       '"balloon_template_id": ', 1, ',', cr,
-                                       '"system_picture_id": ',   1, ',', cr,
-                                       '"size": ',                1, ',', cr,
-                                       '"tail": ',                _textElement.a, ',', cr,
-                                       '"x": ',                   _textElement.x, ',', cr,
-                                       '"y": ',                   _textElement.y, ',', cr,
-                                       '"z": ',                   _textElement.z + 1, ',', cr,
-                                       '"t": ',                   timing, ',', cr,
-                                       '"width": ',               _textElement.w, ',', cr,
-                                       '"height": ',              _textElement.h, ',', cr,
-                                       '"speeches_attributes": {', cr,
-                                               '"newf', timing, '": {', cr,
-                                               '"content": "', _textElement.content, '",', cr,
+                                       '"speech_balloon_template_id": ', 1, ',', cr,
+                                       '"classname": "Square",',
+                                       '"z": ',                _textElement.z + 1, ',', cr,
+                                       '"t": ',                t, ',', cr,
+                                       '"settings": "{\'tail\':' + _textElement.a + '}",',
+                           '"balloons_attributes": {', cr,
+                               '"newb', t, '": {', cr,
+                                                       '"system_picture_id": ',  2, ',', cr,
+                                               '"caption": "alt text",', cr,
                                                        '"x": ',        _textElement.x, ',', cr,
                                                        '"y": ',        _textElement.y, ',', cr,
-                                                       '"t": ',        timing, ',', cr,
                                                        '"width": ',    _textElement.w, ',', cr,
                                                        '"height": ',   _textElement.h, cr,
                                                '}', cr,
+                                       '},', cr,
+                                       '"speeches_attributes": {', cr,
+                                               '"news', t, '": {', cr,
+                                               '"content": "', _textElement.content, '",', cr,
+                                                       '"x": ',        Math.floor( _textElement.w * 0.16 ), ',', cr,
+                                                       '"y": ',        Math.floor( _textElement.w * 0.16 ), ',', cr,
+                                                       '"width": ',    Math.floor( _textElement.w * 0.66 ), ',', cr,
+                                                       '"height": ',   Math.floor( _textElement.h * 0.66 ), cr,
+                                               '}', cr,
                                        '}', cr,
                                '}'
                        ].join( '');
@@ -5279,7 +5302,6 @@ var OutputConsole = gOS.registerApplication( function(){
                comboboxFormat, inputOption,
                buttonSubmit, buttonClose,
                windowW, windowH,
-               timing   = 0,
                comicID, panelID, panelTimming, panelW, panelH, borderSize, panelElementArray,
                app      = this,
                model    = null;
@@ -5386,7 +5408,7 @@ var OutputConsole = gOS.registerApplication( function(){
        this.onClose = function(){
                elmOutputArea.value = '';
                model.destroy();
-               elmOutputArea = comboboxFormat = inputOption = buttonSubmit = buttonClose = panelElementArray = instance = model = null;
+               elmOutputArea = comboboxFormat = inputOption = buttonSubmit = buttonClose = panelElementArray = model = null;
        };
 }, true, false, 'Output Console', 'outputConsole', null, '#2D89F0' );