OSDN Git Service

client is version0.4.30, bugfix around path.
[pettanr/pettanr.git] / public / assets / work.js
index d3e3397..3109892 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
  * pettanR work.js\r
- *   version 0.4.27\r
+ *   version 0.4.30\r
  *   \r
  * author:\r
  *   itozyun\r
@@ -417,8 +417,7 @@ pettanr.editor = pettanr.view.registerApplication( function(){
        var SAVE_CONTROL = ( function(){\r
                var SAVE = MENU_BAR_CONTROL.QUIT.createSelection( 'save', 'ctrl + S', quit, false),\r
                        SAVE_AND_QUIT = MENU_BAR_CONTROL.QUIT.createSelection( 'save & quit', null, quit, false, false, true),\r
-                       SAVE_AS_HTML = MENU_BAR_CONTROL.QUIT.createSelection( 'get as html', null, outputAsHtml, true, false, true),\r
-                       SAVE_AS_JSON_STRING = MENU_BAR_CONTROL.QUIT.createSelection( 'get JsonStr', null, outputAsJsonString, true, false, true),\r
+                       EXPORT = MENU_BAR_CONTROL.QUIT.createSelection( 'export', null, onExport, true, false, true),\r
                        QUIT = MENU_BAR_CONTROL.QUIT.createSelection( 'quit', null, quit, true, true),\r
                        updated = false;\r
                \r
@@ -426,21 +425,11 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                        pettanr.editor.shutdown();\r
                }\r
                \r
-               function outputAsHtml(){\r
+               function onExport(){\r
                        pettanr.outputConsole.bootInOverlay(\r
-                               pettanr.outputConsole.HTML,\r
                                comicID, panelID, panelTimming,\r
                                PANEL_CONTROL.w(), PANEL_CONTROL.h(),\r
-                               1, // border, BackgroundImage\r
-                               PANEL_ELEMENT_ARRAY\r
-                       );\r
-               }\r
-               function outputAsJsonString(){\r
-                       pettanr.outputConsole.bootInOverlay(\r
-                               pettanr.outputConsole.JSON,\r
-                               comicID, panelID, panelTimming,\r
-                               PANEL_CONTROL.w(), PANEL_CONTROL.h(),\r
-                               1, // border, BackgroundImage\r
+                               2, // border, BackgroundImage\r
                                PANEL_ELEMENT_ARRAY\r
                        );\r
                }\r
@@ -1610,7 +1599,7 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                                balloonW = _w !== undefined ? _w : balloonW;\r
                                balloonH = _h !== undefined ? _h : balloonH;\r
                                balloonA = _a !== undefined ? _a : balloonA;\r
-                               radA = balloonA *DEG_TO_RAD;\r
+                               radA = balloonA * DEG_TO_RAD;\r
                                tailX = FLOOR( ( ( COS( radA) /2 +0.5) *( balloonW +SIZE)) -SIZE /2);\r
                                tailY = FLOOR( ( ( SIN( radA) /2 +0.5) *( balloonH +SIZE)) -SIZE /2);\r
                                ELM_MOVER.style.left = tailX +'px';\r
@@ -1658,7 +1647,7 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                                                ATAN( _mouseY /_mouseX) *RAD_TO_DEG +( _mouseX < 0 ? 180 : 0) :\r
                                                _mouseY > 0 ? 90 : -90\r
                                );\r
-                               currentText && currentText.angle( balloonA);\r
+                               currentText && currentText.angle( Math.floor( balloonA + 0.5 ));\r
                                INFOMATION_WINDOW.update( currentText);\r
                        },\r
                        onFinish: function(){\r
@@ -2391,7 +2380,7 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                }\r
                this.angle = function( _a ){\r
                        _a !== undefined && instance.resize( x, y, w, h, _a );\r
-                       return a;\r
+                       return a >= 0 ? a : a + 360;\r
                }\r
                this.text = function( _text ){\r
                        if( _text && text !== _text) {\r
@@ -2556,7 +2545,30 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                function restoreReplaceElement( arg){\r
                        replaceComicElement( arg[ 0], arg[ 1]);\r
                }\r
-               \r
+\r
+               function onImageSelect( data, isPanelPictureData ){\r
+                       if( isPanelPictureData !== true ){\r
+                               data = {\r
+                                       resource_picture:data,\r
+                                       x:               Math.floor( panelW /2 - data.width /2 ),\r
+                                       y:               Math.floor( panelH /2 - data.height /2 ),\r
+                                       z:               -1,\r
+                                       t:               PANEL_ELEMENT_ARRAY.length,\r
+                                       width:           data.width,\r
+                                       height:          data.height\r
+                               }\r
+                       }\r
+                       var _panelElement = new ImageElementClass( data );\r
+                       _panelElement.init && _panelElement.init();\r
+                       appendComicElement( _panelElement );\r
+                       _panelElement.animate( undefined, undefined, data.width, data.height );\r
+                       SAVE( restoreComicElement, [ false, _panelElement], [ true, _panelElement], true );\r
+               }\r
+               function onTextInput( _panelElement ){\r
+                       appendComicElement( _panelElement );\r
+                       SAVE( restoreComicElement, [ false, _panelElement ], [ true, _panelElement ], true );\r
+               }\r
+       \r
                return {\r
                        init: function(){\r
                                log = $( '#operation-catcher-log');\r
@@ -2661,24 +2673,6 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                                } else {\r
                                        onImageSelect( data, true );\r
                                }\r
-                               function onImageSelect( data, isPanelPictureData ){\r
-                                       if( isPanelPictureData !== true ){\r
-                                               data = {\r
-                                                       resource_picture:data,\r
-                                                       x:               Math.floor( panelW /2 - data.width /2 ),\r
-                                                       y:               Math.floor( panelH /2 - data.height /2 ),\r
-                                                       z:               -1,\r
-                                                       t:               PANEL_ELEMENT_ARRAY.length,\r
-                                                       width:           data.width,\r
-                                                       height:          data.height\r
-                                               }\r
-                                       }\r
-                                       var _panelElement = new ImageElementClass( data );\r
-                                       _panelElement.init && _panelElement.init();\r
-                                       appendComicElement( _panelElement );\r
-                                       _panelElement.animate( undefined, undefined, data.width, data.height );\r
-                                       SAVE( restoreComicElement, [ false, _panelElement], [ true, _panelElement], true );\r
-                               }\r
                        },\r
                        createTextElement: function( data ){\r
                                var _panelElement;\r
@@ -2686,7 +2680,7 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                                        data = {\r
                                                balloon_template_id:1,\r
                                                size:               1,\r
-                                               tail:               0,\r
+                                               tail:               90,\r
                                                x:                                      Math.floor( panelW /2 - 100 +Math.random() *10 ),\r
                                                y:                  Math.floor( panelH /2 - 100 +Math.random() *10 ),\r
                                                z:                  -1,\r
@@ -2707,14 +2701,10 @@ pettanr.editor = pettanr.view.registerApplication( function(){
                                        _panelElement.init();\r
                                        onTextInput( _panelElement );\r
                                }\r
-                               function onTextInput( _panelElement ){\r
-                                       appendComicElement( _panelElement );\r
-                                       SAVE( restoreComicElement, [ false, _panelElement ], [ true, _panelElement ], true );\r
-                               }\r
                        }\r
                }\r
        })();\r
-       \r
+\r
        /*\r
         * end of COMIC_ELEMENT_CONTROL\r
         */\r
@@ -3024,13 +3014,13 @@ pettanr.comicConsole = pettanr.view.registerApplication( function(){
        this.init = function(){\r
                jqWrap = $( '#comic-console-wrapper').hide();\r
                \r
-               inputTitle    = pettanr.form.createInputText( document.getElementById( 'comic-console-title'), null, ID);\r
-               inputW        = pettanr.form.createInputText( document.getElementById( 'comic-console-width'), null, ID);\r
-               inputH        = pettanr.form.createInputText( document.getElementById( 'comic-console-height'), null, ID);\r
+               inputTitle       = pettanr.form.createInputText( document.getElementById( 'comic-console-title'), null, ID);\r
+               inputW           = pettanr.form.createInputText( document.getElementById( 'comic-console-width'), null, ID);\r
+               inputH           = pettanr.form.createInputText( document.getElementById( 'comic-console-height'), null, ID);\r
                comboboxVisible  = pettanr.form.createCombobox( document.getElementById( 'comic-console-visible'), null, ID);\r
                comboboxEditable = pettanr.form.createCombobox( document.getElementById( 'comic-console-editable'), null, ID);\r
-               buttonSubmit  = pettanr.form.createButton( document.getElementById( 'comic-console-post-button'), clickOK, ID);\r
-               buttonCancel  = pettanr.form.createButton( document.getElementById( 'comic-console-cancel-button'), clickCancel, ID);\r
+               buttonSubmit     = pettanr.form.createButton( document.getElementById( 'comic-console-post-button'), clickOK, ID);\r
+               buttonCancel     = pettanr.form.createButton( document.getElementById( 'comic-console-cancel-button'), clickCancel, ID);\r
                \r
                delete instance.init;\r
        }\r
@@ -3550,9 +3540,13 @@ pettanr.artistConsole = pettanr.view.registerApplication( function(){
 });\r
 \r
 pettanr.outputConsole = pettanr.view.registerApplication( function(){\r
+       var FORMAT_LIST = [ 'json[POST]', 'json[GET]', 'XML', 'HTML', 'XHTML', 'MT export', 'Blogger ATOM' ];\r
        var jqWrap, jqOutputArea,\r
+               comboboxFormat, inputOption,\r
+               buttonGenerate, buttonClose,\r
                ID = 'outputConsole',\r
                timing = 0,\r
+               comicID, panelID, panelTimming, panelW, panelH, borderSize, panelElementArray,\r
                instance = this;\r
        //pettanr.key.addKeyDownEvent( ID, 69, false, false, clickOK);\r
        \r
@@ -3560,12 +3554,13 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                pettanr.outputConsole.shutdown();\r
        }\r
 \r
-       function getPanelElementByTiming( PANEL_ELEMENT_ARRAY, l ){\r
+       function getPanelElementByTiming(){\r
+               var l = panelElementArray.length;\r
                while( timing < l * 2){\r
                        for(var i=0; i<l; ++i){\r
-                               if( timing === PANEL_ELEMENT_ARRAY[ i ].timing ){\r
+                               if( timing === panelElementArray[ i ].timing ){\r
                                        ++timing;\r
-                                       return PANEL_ELEMENT_ARRAY[ i ];\r
+                                       return panelElementArray[ i ];\r
                                }\r
                        }\r
                        ++timing;\r
@@ -3573,15 +3568,15 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                return null;\r
        }\r
 \r
-       function getAsHtmlString( isAbsoluteUrl, isXHTML, panelW, panelH, border, PANEL_ELEMENT_ARRAY ){\r
+       function getAsHtmlString( isAbsoluteUrl, isXHTML ){\r
                timing = 0;\r
                \r
                var HTML_ARRAY = [],\r
-                       l = PANEL_ELEMENT_ARRAY.length,\r
+                       l = panelElementArray.length,\r
                        _panelElement;\r
 \r
                while( HTML_ARRAY.length < l ){\r
-                       _panelElement = getPanelElementByTiming( PANEL_ELEMENT_ARRAY, l );\r
+                       _panelElement = getPanelElementByTiming();\r
                        if( _panelElement === null) break;\r
                        HTML_ARRAY.push( panelElementToHtml( _panelElement, isAbsoluteUrl, isXHTML ));\r
                }\r
@@ -3642,29 +3637,82 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                                ].join( '');                            \r
                        }\r
                }\r
+       \r
+       function getJsonGetString(){\r
+               timing = 0;\r
+               \r
+               var JSON_STRING_ARRAY = [],\r
+                       ELEMENT_ARRAY     = [],\r
+                       l                 = panelElementArray.length,\r
+                       cr                = pettanr.LINE_FEED_CODE_TEXTAREA,\r
+                       _panelElement;\r
 \r
-       function getAsJsonString( comicID, panelID, panelTimming, panelW, panelH, border, PANEL_ELEMENT_ARRAY ){\r
+               while( ELEMENT_ARRAY.length <= l){\r
+                       _panelElement = getPanelElementByTiming();\r
+                       if( _panelElement === null ) break;\r
+                        \r
+                       ELEMENT_ARRAY.push( _panelElement.type === 0 ? getImageJsonGET( _panelElement ) : balloonToJson( _panelElement ));\r
+               }\r
+               return [\r
+                       '{', cr,\r
+                               '"panel": {', cr,\r
+                                       '"id": ',               panelID, ',', cr,\r
+                                   '"border": ',           borderSize, ',', cr,\r
+                                   '"comic_id": ',         comicID, ',', cr,\r
+                                   '"resource_picture_id": 1,', cr,\r
+                                       '"x": ',                0, ',', cr,\r
+                                       '"y": ',                0, ',', cr,\r
+                                       '"z": ',                0, ',', cr,\r
+                                       panelTimming !== -1 ? ( '"t": ' + panelTimming + ',' + cr ) : '',\r
+                                   '"width": ',            panelW, ',', cr,\r
+                                   '"height": ',           panelH, ',', cr,\r
+                                   '"panel_elements": [', cr,\r
+                                       ELEMENT_ARRAY.join( ',' + cr ), cr,\r
+                                   ']', cr,\r
+                               '}', cr,\r
+                       '}'\r
+               ].join( '' );\r
+       }\r
+               function getImageJsonGET( _imageElement ){\r
+                       var cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
+                       return [\r
+                               '{', cr,\r
+                                       '"resource_picture": {', cr,\r
+                                               '"id": ',              _imageElement.resourcePicture().id, ',', cr,\r
+                                               '"ext": ',             '"',_imageElement.resourcePicture().ext, '"', cr,\r
+                                       '},', cr,\r
+                                       '"x": ',                   _imageElement.x, ',', cr,\r
+                                       '"y": ',                   _imageElement.y, ',', cr,\r
+                                       '"z": ',                   _imageElement.z, ',', cr,\r
+                                       '"width": ',               _imageElement.flipH() * _imageElement.w, ',', cr,\r
+                                       '"height": ',              _imageElement.flipV() * _imageElement.h, ',', cr,\r
+                                       '"t": ',                   timing, cr,\r
+                               '}'\r
+                       ].join( '');\r
+               }\r
+       \r
+       function getJsonPostString(){\r
                timing = 0;\r
                \r
                var JSON_STRING_ARRAY = [],\r
                        IMAGE_ARRAY = [],\r
                        BALLOON_ARRAY = [],\r
-                       l = PANEL_ELEMENT_ARRAY.length,\r
+                       l = panelElementArray.length,\r
                        _panelElement,\r
                        cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
 \r
                while( IMAGE_ARRAY.length + BALLOON_ARRAY.length <= l){\r
-                       _panelElement = getPanelElementByTiming( PANEL_ELEMENT_ARRAY, l );\r
+                       _panelElement = getPanelElementByTiming();\r
                        if( _panelElement === null) break;\r
                        _panelElement.type === 0 ? \r
-                               IMAGE_ARRAY.push( imageToJson( _panelElement )) :\r
-                               BALLOON_ARRAY.push( balloonToJson( _panelElement ) );\r
+                               IMAGE_ARRAY.push( [ '"new', timing, '": ', imageToJson( _panelElement ) ].join( '' )) :\r
+                               BALLOON_ARRAY.push( [ '"new', timing, '": ', balloonToJson( _panelElement ) ].join( '' ) );\r
                }\r
                return [\r
                        '{', cr,\r
                                '"panel": {', cr,\r
                                        '"id": ',               panelID, ',', cr,\r
-                                   '"border": ',           border, ',', cr,\r
+                                   '"border": ',           borderSize, ',', cr,\r
                                    '"comic_id": ',         comicID, ',', cr,\r
                                    '"resource_picture_id": 1,', cr,\r
                                        '"x": ',                0, ',', cr,\r
@@ -3686,7 +3734,7 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                function imageToJson( _imageElement ){\r
                        var cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
                        return [\r
-                               '"new', timing, '": {', cr,\r
+                               '{', cr,\r
                                        '"resource_picture_id": ', _imageElement.resourcePicture().id, ',', cr,\r
                                        '"x": ',                   _imageElement.x, ',', cr,\r
                                        '"y": ',                   _imageElement.y, ',', cr,\r
@@ -3701,7 +3749,7 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                function balloonToJson( _textElement ){\r
                        var cr = pettanr.LINE_FEED_CODE_TEXTAREA;\r
                        return [\r
-                               '"new', timing, '": {', cr,\r
+                               '{', cr,\r
                                        '"balloon_template_id": ', 1, ',', cr,\r
                                        '"system_picture_id": ',   1, ',', cr,\r
                                        '"size": ',                1, ',', cr,\r
@@ -3725,8 +3773,28 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                                '}'\r
                        ].join( '');\r
                }\r
-\r
-\r
+       \r
+       function clickGenerate(){\r
+               var i = comboboxFormat.selectIndex(),\r
+                       text = 'sorry...';\r
+               if( i === 0 ){\r
+                       text = getJsonPostString();\r
+               } else\r
+               if( i === 1 ){\r
+                       text = getJsonGetString();\r
+               } else\r
+               if( i === 3 ){\r
+                       text = getAsHtmlString( false, false );\r
+               } else {\r
+                       \r
+               }\r
+               jqOutputArea.val( text );\r
+       }\r
+       function clickClose(){\r
+               pettanr.outputConsole.shutdown();\r
+               return false;\r
+       }\r
+       \r
        /* grobal method */\r
        this.rootElement = document.getElementById( 'output-console-wrapper' );\r
        this.displayName = ID;\r
@@ -3737,20 +3805,32 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
        this.init = function(){\r
                jqWrap = $( '#output-console-wrapper').hide();\r
                jqOutputArea = $( '#output-area');\r
+               \r
+               comboboxFormat = pettanr.form.createCombobox( document.getElementById( 'output-console-format' ), null, ID );\r
+               for( var i=0, l = FORMAT_LIST.length; i<l; ++i ){\r
+                       comboboxFormat.createOption( FORMAT_LIST[ i ], null, i === 0 );\r
+               }\r
+               inputOption    = pettanr.form.createInputText( document.getElementById( 'output-console-option' ), null, ID );\r
+               buttonGenerate = pettanr.form.createButton( document.getElementById( 'output-console-generate-button' ), clickGenerate, ID );\r
+               buttonClose    = pettanr.form.createButton( document.getElementById( 'output-console-close-button' ), clickClose, ID );\r
                delete instance.init;\r
        }\r
-       this.onOpen = function( _w, _h, _dataType, _comicID, _panelID, _panelTimming, _panelW, _panelH, _borderSize, _panelElements ){\r
+       this.onOpen = function( _w, _h, _comicID, _panelID, _panelTimming, _panelW, _panelH, _borderSize, _panelElementArray ){\r
                instance.init && instance.init();\r
                \r
                jqWrap.show();\r
                instance.onPaneResize( _w, _h );\r
                var text;\r
-               if( _dataType === pettanr.outputConsole.JSON ){\r
-                       text = getAsJsonString( _comicID, _panelID, _panelTimming, _panelW, _panelH, _borderSize, _panelElements );\r
-               } else {\r
-                       text = getAsHtmlString( false, false, _panelW, _panelH, _borderSize, _panelElements );\r
-               }\r
-               jqOutputArea.val( text ).focus();\r
+               \r
+               comicID           = _comicID;\r
+               panelID           = _panelID;\r
+               panelTimming      = _panelTimming;\r
+               panelW            = _panelW;\r
+               panelH            = _panelH;\r
+               borderSize        = _borderSize;\r
+               panelElementArray = _panelElementArray;\r
+               \r
+               clickGenerate();\r
        }\r
        this.onPaneResize = function( _w, _h){\r
                jqWrap.css(\r
@@ -3765,9 +3845,3 @@ pettanr.outputConsole = pettanr.view.registerApplication( function(){
                jqOutputArea.val('');\r
        }\r
 });\r
-pettanr.outputConsole.JSON          = 0;\r
-pettanr.outputConsole.HTML          = 1;\r
-pettanr.outputConsole.XML           = 2;\r
-pettanr.outputConsole.SHORT_URL     = 3;\r
-pettanr.outputConsole.MOVERBLE_TYPE = 4;\r
-pettanr.outputConsole.BLOGGER       = 5;\r