/*\r
* pettanR common.js\r
- * version 0.4.13\r
+ * version 0.4.14\r
* \r
* author: itozyun\r
*/\r
CREATE_COMIC_JS: isLocal === true ? 'js\/create_new_comic.js' : PETTANR_ROOT_PATH + 'comics\/new.js',\r
CREATE_PANEL_JS: isLocal === true ? 'js\/create_new_panel.js' : PETTANR_ROOT_PATH + 'panels\/new.js',\r
UPLOAD_PICTURE_JS: isLocal === true ? 'js\/upload_picture.js' : PETTANR_ROOT_PATH + 'original_pictures\/new.js',\r
- RESISTER_ARTIST_JS: isLocal === true ? 'js\/register_artist.js' : PETTANR_ROOT_PATH + 'artists\/new.js',\r
+ REGISTER_ARTIST_JS: isLocal === true ? 'js\/register_artist.js' : PETTANR_ROOT_PATH + 'artists\/new.js',\r
JQUERY_URL: isLocal === true ? 'javascripts\/jquery-1.6.2.min.js' : PETTANR_ROOT_PATH + 'assets\/jquery-162_min.js'\r
}\r
})();\r
\r
pettanr.DEBUG === true && VIEW_ID_ARRAY.push( 'debug');\r
\r
- show();\r
+ open();\r
\r
function onWindowResize(){\r
var _fn,\r
currentView && currentView.onWindowResize && currentView.onWindowResize( w, h);\r
pettanr.overlay.currentID !== null && pettanr.overlay.onWindowResize( w, h);\r
}\r
- function show(){\r
+ function open( _option ){\r
if( isWorkPage === false) return;\r
\r
var _elm = document.getElementById( currentID);\r
if( !pettanr.view || pettanr.view.init !== undefined) return;\r
currentView = pettanr[ currentID];\r
if( !currentView) return;\r
- typeof currentView.onOpen === 'function' && currentView.onOpen();\r
- setTimeout( onWindowResize, 0);\r
+ typeof currentView.onOpen === 'function' && currentView.onOpen( jqWindow.width(), jqWindow.height(), _option );\r
+ // setTimeout( onWindowResize, 0);\r
}\r
\r
var AbstractBasicPane = function(){\r
this.UID = '', // element の ID と一致\r
- this.onOpen = function(){};\r
- this.onClose = function(){};\r
- this.onPaneResize = function( _w, _h){};\r
- this.MIN_WIDTH = 0;\r
- this.MIN_HEIGHT = 0;\r
+ this.elm = null,\r
+ this.onOpen = function( _w, _h, _option ){}\r
+ this.onClose = function(){ return true; } // false の場合、close の拒否 \r
+ this.onPaneResize = function( _w, _h ){}\r
+ this.resize = function( _w, _h ){\r
+ if( this.MIN_WIDTH > _w || this.MIN_HEIGHT > _h ){\r
+ if( Type.isHTMLElement( this.elm ) === true ){\r
+ // 小さすぎる!、と表示\r
+ }\r
+ return;\r
+ }\r
+ this.onPaneResize( _w, _h );\r
+ }\r
+ this.MIN_WIDTH = 240;\r
+ this.MIN_HEIGHT = 240;\r
}\r
\r
return {\r
jqWindow = pettanr.jqWindow();\r
jqWindow.resize( onWindowResize);\r
\r
- currentView = currentView || pettanr[ currentID];\r
- currentView && typeof currentView.onOpen === 'function' && currentView.onOpen();\r
+ currentView = currentView || pettanr[ currentID ];\r
+ var _option = {}; // urlパラメータ\r
+ currentView && typeof currentView.onOpen === 'function' && currentView.onOpen( jqWindow.width(), jqWindow.height(), _option );\r
\r
- setTimeout( onWindowResize, 100);\r
+ // setTimeout( onWindowResize, 100);\r
\r
delete pettanr.view.init;\r
},\r
if( pettanr.view[ key] === _viewID){\r
if( currentID !== _viewID && document.getElementById( _viewID)){\r
this.currentID = currentID = _viewID;\r
- show();\r
+ open();\r
}\r
return;\r
}\r
}\r
alert( _viewID);\r
},\r
- resisterAsBasicPane: function( _basicPane){\r
+ registerAsBasicPane: function( _basicPane ){\r
if( pettanr.view.isBasicPaneInstance( _basicPane ) === true ) return;\r
_basicPane.prototype = new AbstractBasicPane();\r
},\r
- isBasicPaneInstance: function( _basicPane){\r
+ isBasicPaneInstance: function( _basicPane ){\r
return _basicPane instanceof AbstractBasicPane;\r
},\r
currentID: currentID,\r
// 先にeditorのcanvasを確定する。\r
currentOverlay && currentOverlay.onWindowResize && setTimeout( asyncResize, 0);\r
},\r
- resisterOverlay: function( _basicPane){\r
- var _api = pettanr.view.resisterAsBasicPane( _basicPane);\r
+ registerOverlay: function( _basicPane){\r
+ var _api = pettanr.view.registerAsBasicPane( _basicPane);\r
// OverlayAPI\r
return {\r
show: function( _basicPane ){\r
var VisualEffectClass = function( ELM){\r
var isHtmlElement;\r
\r
- function resisterAnime( _cssObject, _onComplete, _onEnterFrame, _time){\r
+ function registerAnime( _cssObject, _onComplete, _onEnterFrame, _time){\r
var _numFrames = Math.floor( _time / fpms);\r
startAnimation( ELM, _cssObject, _onComplete, _onEnterFrame, _numFrames);\r
}\r
\r
}\r
\r
- this.anime = resisterAnime;\r
+ this.anime = registerAnime;\r
this.fadeIn = startFadeIn;\r
this.fadeOut = startFadeOut;\r
this.update = update;\r
/*
* pettanR system.js
- * version 0.4.13
+ * version 0.4.14
*
* author:
* itozyun
FILEDATA_RESITER = [], // store all of fileData( json object )
FILEDATA_ACCESS = [], // file operations for Kernel only ! hide from Out of pettanr.file
FILE_OBJECT_POOL = [],
- EVENT_LISTENER_RESISTER = [],
+ EVENT_LISTENER_REGISTER = [],
TREE_ARRAY = [],
TREE_ACCESS_ARRAY = [];
},
addEventListener: function( FILEorNULL, _eventType, _callback){
var _uid = FILEorNULL instanceof FileClass ? FILEorNULL.getUID() : FILEorNULL;
- EVENT_LISTENER_RESISTER.push( new FileEventTicketClass( _uid, _eventType, _callback));
+ EVENT_LISTENER_REGISTER.push( new FileEventTicketClass( _uid, _eventType, _callback));
},
removeEventListener: function( FILEorNULL, _eventType, _callback){
var _uid = FILEorNULL instanceof FileClass ? FILEorNULL.getUID() : FILEorNULL,
_ticket;
- for(var i=0, l = EVENT_LISTENER_RESISTER.length; i<l; ++i){
- _ticket = EVENT_LISTENER_RESISTER[i];
+ for(var i=0, l = EVENT_LISTENER_REGISTER.length; i<l; ++i){
+ _ticket = EVENT_LISTENER_REGISTER[i];
if( _ticket.fileUID === _uid && _ticket.eventType === _eventType && _ticket.callBack === _callback){
- EVENT_LISTENER_RESISTER.splice( i, 1);
+ EVENT_LISTENER_REGISTER.splice( i, 1);
_ticket.destroy();
}
}
_targetFile = e.targetFile,
_uid = _targetFile.getUID(),
_ticket, _type, _callback;
- for(var i=0, l = EVENT_LISTENER_RESISTER.length; i<l; ++i){
- _ticket = EVENT_LISTENER_RESISTER[i],
+ for(var i=0, l = EVENT_LISTENER_REGISTER.length; i<l; ++i){
+ _ticket = EVENT_LISTENER_REGISTER[i],
_type = _ticket.eventType,
_callback = _ticket.callBack;
if( _eventType === _type && _uid === _ticket.fileUID){
write: function( _newName, _newData){
return false;
},
- viwerApps: function(){
-
+ viwerApplicationList: function(){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.viwerApplicationList === 'function'){
+ return driver.viwerApplicationList( this );
+ }
+ return FileDriverBase.viwerApplicationList( this );
},
- editorApps: function(){
-
+ editorApplicationList: function(){
+ var driver = FILE_CONTROLER.editorApplicationList( this );
+ if( typeof driver.editorApplicationList === 'function'){
+ return driver.editorApplicationList( this );
+ }
+ return FileDriverBase.viwerApps( this );
},
create: function(){
write: function( _newName, _newData){
return false;
},
+ viwerApplicationList: function(){
+ return [];
+ },
+ editorApplicationList: function(){
+ return [];
+ },
onCreate: function(){
},
//FILE_CONTROLER.init();
delete pettanr.file.init;
},
- resisterDriver: function( _driver){
+ registerDriver: function( _driver){
_driver.prototype = FileDriverBase;
/*
* File API
}
}
- var FinderClass = function( ELM_CONTAINER, tree, detailSwitchEnabled, styleSwitchEnabled, actionSwitchEnabled){
+ var FinderClass = function( ELM_CONTAINER, tree, header, footer ){
var ICON_ARRAY = [],
BREAD_ARRAY = [],
elmContainer = ELM_ORIGIN_CONTAINER.cloneNode( true),
elmSidebarButton = nodesDiv[1],
elmStyleButton = nodesDiv[2],
elmActionButton = nodesDiv[3],
- elmBody = nodesDiv[ nodesDiv.length -1],
+ elmBody = nodesDiv[ nodesDiv.length -1 ],
//tree = pettanr.file.createTree( TREE_TYPE),
headX,
headY,
- headH = pettanr.util.getElementSize( ELM_ORIGIN_FINDER_ICON).height,
+ headH = pettanr.util.getElementSize( nodesDiv[0] ).height,
bodyY,
currentFile = null,
breadW = 90,
- size = pettanr.util.getElementSize( ELM_ORIGIN_FINDER_ICON),
+ size = pettanr.util.getElementSize( ELM_ORIGIN_FINDER_ICON ),
iconW = size.width,
iconH = size.height,
- style = 0;
- w = 800;
-
+ style = 0,
+ w, h, bodyH;
+
tree.addTreeEventListener( pettanr.file.TREE_EVENT.UPDATE, draw);
- function draw(){
+ function draw( _w, _h ){
+ w = _w;
+ h = _h;
+ bodyH = _h - headH;
var l = tree.hierarchy() +1,
m = BREAD_ARRAY.length,
_file, _bread;
if( i < m){
ICON_ARRAY[ i].init( _file.getChildFileByIndex( i), elmBody, w, i, style, onBodyClick);
} else {
- ICON_ARRAY.push( getFinderIcon( _file.getChildFileByIndex( i), elmBody, w, i, style, onBodyClick));
+ ICON_ARRAY.push( getFinderIcon( _file.getChildFileByIndex( i), elmBody, _w, i, style, onBodyClick));
}
}
+ if( _file.getState() === pettanr.file.FILE_STATE.LOADING ){
+ elmBody.className = 'finder-body loading';
+ } else {
+ elmBody.className = 'finder-body';
+ }
+ elmBody.style.height = bodyH + 'px';
+
while( l < ICON_ARRAY.length){
ICON_ARRAY.pop().destroy();
}
}
+
function onHeadClick( i){
var l = BREAD_ARRAY.length -1;
if( i < l){
bodyY = pettanr.util.getAbsolutePosition( elmBody).y;
delete this.init;
}
- this.onOpen = function(){
+ this.onOpen = function( _w, _h, _option ){
this.init !== undefined && this.init();
- draw();
+ draw( _w, _h );
}
this.onClose = function(){
-
+ return true;
}
- this.onWindowResize = function( _w, _h){
-
+ this.onPaneResize = function( _w, _h){
+ w = _w;
+ h = _h;
+ elmBody.style.height = ( _h - headH ) + 'px';
+
+ for(var i=0, l=ICON_ARRAY.length; i<l; ++i){
+ ICON_ARRAY[ i].onResize( _w );
+ }
}
+ this.MIN_WIDTH = 240;
+ this.MIN_HEIGHT = 240;
}
+
+ pettanr.view.registerAsBasicPane( FinderClass );
+
function getFinderIcon( _file, _elmContainer, w, index, style, callback){
var _icon;
if( FINDER_ICON_POOL.length > 0){
init: function(){
},
- createFinder: function( _elmTarget, _tree, detailSwitchEnabled, styleSwitchEnabled, actionSwitchEnabled){
- var _finder = new FinderClass( _elmTarget, _tree, detailSwitchEnabled, styleSwitchEnabled, actionSwitchEnabled);
+ createFinder: function( _elmTarget, _tree, _header, _footer ){
+ var _finder = new FinderClass( _elmTarget, _tree, _header, _footer );
FINDER_ARRAY.push( _finder);
return _finder;
},
- createFinderHead: function(){
+ registerFinderHead: function(){
},
- resisterFinderPane: function( _finderPane){
+ registerFinderPane: function( _finderPane){
},
isFinderInstance: function( _finder){
return _finder instanceof FinderClass;
+ },
+ isFinderPaneInstance: function(){
+
+ },
+ isFinderHeadInstance: function(){
}
}
})();
if( _type === pettanr.driver.FILE_TYPE.AUTHOR ){
return [ _data.id , ':', _data.name, '先生' ].join( '');
}
- return _data.name;
+ return _data.name + _data.type;
},
getThumbnail: function( _file){
- var _data = FileAPI.getFileData( _file);
+ var _data = FileAPI.getFileData( _file),
_type = _data !== null ? _data.type : null;
if( _type === pettanr.driver.FILE_TYPE.PICTURE){
return { image: [ pettanr.CONST.RESOURCE_PICTURE_PATH, 'thumbnail/', _data.id, '.', _data.ext ].join( '')};
if( _type === pettanr.driver.FILE_TYPE.ARTIST){
return { className: 'file-type-artist'};
}
- if( _type === pettanr.driver.FILE_TYPE.FOLDEER){
+ if( _type === pettanr.file.FILE_TYPE.FOLDER){
return { className: 'file-type-folder'};
}
- return { className: 'file-type-folder'};
+ return { className: 'file-type-broken'};
+ },
+ viwerApplicationList: function( _file ){
+ var _data = FileAPI.getFileData( _file ),
+ _type = _data !== null ? _data.type : null;
+ return [];
+ },
+ editorApplicationList: function( _file ){
+ var _data = FileAPI.getFileData( _file ),
+ _type = _data !== null ? _data.type : null;
+ return [];
}
},
- FileAPI = pettanr.file.resisterDriver( Driver),
+ FileAPI = pettanr.file.registerDriver( Driver),
FILE_DATA_SERVICE_ROOT = {
name: 'PettanR root',
type: pettanr.file.FILE_TYPE.FOLDER,
},
FILE_DATA_MY_COMICS_ROOT = {
name: 'My Comics',
- type: pettanr.file.FILE_TYPE.AUTHOR,
+ type: pettanr.file.FILE_TYPE.FOLDER,
children: [],
driver: Driver
},
},
FILE_DATA_MY_PICTURES_ROOT = {
name: 'My Pictures',
- type: pettanr.file.FILE_TYPE.ARTIST,
+ type: pettanr.file.FILE_TYPE.FOLDER,
children: [],
driver: Driver,
json: pettanr.CONST.URL_ORIGINAL_PICTURES_JSON
pettanr.gallery = ( function(){
var finder,
elmContainer = document.getElementById( 'gallery'),
- option;
-
+ option,
+ pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
return {
init: function( _option){
option = _option;
finder = pettanr.finder.createFinder( elmContainer, pettanr.driver.createPictureTree());
delete pettanr.gallery.firstOpen;
},
- onOpen: function(){
+ onOpen: function( _w, _h, _option ){
pettanr.gallery.firstOpen !== undefined && pettanr.gallery.firstOpen();
- finder.onOpen();
+ finder.onOpen( _w, _h - pageHeaderH, _option );
},
onClose: function(){
finder.onClose();
},
onWindowResize: function( _w, _h){
- finder.onWindowResize( _w, _h);
+ finder.resize( _w, _h - pageHeaderH );
}
}
})();
pettanr.cabinet = ( function(){
var finder,
elmContainer = document.getElementById( 'cabinet'),
- option;
+ option,
+ pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
return {
init: function( _option){
finder = pettanr.finder.createFinder( elmContainer, pettanr.driver.createComicTree());
delete pettanr.cabinet.firstOpen;
},
- onOpen: function(){
+ onOpen: function( _w, _h, _option ){
pettanr.cabinet.firstOpen !== undefined && pettanr.cabinet.firstOpen();
- finder.onOpen();
+ finder.onOpen( _w, _h - pageHeaderH, _option );
},
onClose: function(){
finder.onClose();
},
onWindowResize: function( _w, _h){
- finder.onWindowResize( _w, _h);
+ finder.resize( _w, _h - pageHeaderH);
}
}
})();
/*\r
* pettanR work.js\r
- * version 0.4.13\r
+ * version 0.4.14\r
* \r
* author:\r
* itozyun\r
finder.onOpen( _w, _h);\r
},\r
onResize: function( _w, _h){\r
- finder.onWindowResize( _w, _h);\r
+ finder.resize( _w, _h);\r
}\r
},\r
'image-exproler', 'Album', 0, 215, 400, 350, false, true, true, 300, 300\r
\r
delete pettanr.editor.firstOpen;\r
},\r
- onOpen: function( _file){\r
+ onOpen: function( _w, _h, _file){\r
if( pettanr.file.isFileInstance( _file) === true){\r
// pettanr.file.isPettanFileInstance( _file) === true\r
// \r
MENU_BAR_CONTROL.open();\r
\r
pettanr.editor.firstOpen !== undefined && pettanr.editor.firstOpen();\r
+ \r
+ windowW = _w;\r
+ windowH = _h;\r
+ pettanr.editor.onWindowResize( _w, _h );\r
},\r
onClose: function(){\r
HISTORY_CONTROL.close();\r
MENU_BAR_CONTROL.open();\r
},\r
onWindowResize: function( _windowW, _windowH){\r
- windowW = _windowW;\r
- windowH = _windowH;\r
+ windowW = _windowW || windowW;\r
+ windowH = _windowH || windowH;\r
if( pettanr.editor.firstOpen) return;\r
/*\r
* ieは +'px'が不要みたい\r
COMIC_CONSOLE.init();\r
delete pettanr.comicConsole.init;\r
},\r
- onOpen: function( _file){\r
+ onOpen: function( _w, _h, _file){\r
if( pettanr.driver.isPettanrFileInstance( _file ) === true && _file.getType() === pettanr.driver.FILE_TYPE.COMIC){\r
// _data = _file.read();\r
}\r
UPLOAD_CONSOLE.init();\r
delete pettanr.comicConsole.init;\r
},\r
- onOpen: function( _file){\r
+ onOpen: function( _w, _h, _file){\r
if( pettanr.driver.isPettanrFileInstance( _file ) === true && _file.getType() === pettanr.driver.FILE_TYPE.COMIC){\r
// _data = _file.read();\r
}\r
PANEL_CONSOLE.init();\r
delete pettanr.comicConsole.init;\r
},\r
- onOpen: function(){\r
+ onOpen: function( _w, _h, _file ){\r
\r
},\r
onClose: function(){\r
var ARTIST_CONSOLE = ( function(){\r
var jqWrap, windowW, windowH,\r
ID = 'artistConsole',\r
- TARGET_FRAME_NAME = 'targetFrameResisterArtist',\r
+ TARGET_FRAME_NAME = 'targetFrameRegisterArtist',\r
elmContainer = document.getElementById( 'register'),\r
elmProgress = document.getElementById( 'artist-console-progress'),\r
timer = null,\r
*/ \r
elmScript = document.createElement( 'script');\r
elmScript.type = 'text\/javascript';\r
- elmScript.src = pettanr.CONST.RESISTER_ARTIST_JS;\r
+ elmScript.src = pettanr.CONST.REGISTER_ARTIST_JS;\r
document.body.appendChild( elmScript);\r
\r
jqWrap.show();\r
\r
ARTIST_CONSOLE.onWindowResize( w, h );\r
},\r
- onWindowResize: function( _windowW, _windowH){\r
+ onWindowResize: function( _windowW, _windowH ){\r
windowW = _windowW;\r
windowH = _windowH;\r
jqWrap.css(\r
ARTIST_CONSOLE.init();\r
delete pettanr.comicConsole.init;\r
},\r
- onOpen: function(){\r
+ onOpen: function( _w, _h, _option ){\r
\r
},\r
onClose: function(){\r