/*
* pettanR system.js
- * version 0.4.4
+ * version 0.4.15
*
* 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 = [];
- var FILE_CONTROLER = ( function(){
-
- return {
- createTree: function( _rootFileData){
- var _tree = new TreeClass( _rootFileData);
- _tree.init();
- TREE_ARRAY.push( _tree);
- return _tree;
- },
- getFileData: function( UIDorFILEorFILEDATA){
- var _access = FILE_CONTROLER.getFileDataAccess( UIDorFILEorFILEDATA);
- return _access !== null ? _access.DATA : null;
- },
- getChildren: function( UIDorFILEorFILEDATA){
- var _data = FILE_CONTROLER.getFileData( UIDorFILEorFILEDATA);
- return _data !== null ? _data.children || null : null;
- },
- getFileDataAccess: function( UIDorFILEorFILEDATA){
- var _uid, _data, _access;
-
- if( typeof UIDorFILEorFILEDATA === 'number'){
- _data = FILEDATA_RESITER[ UIDorFILEorFILEDATA] || null;
- } else
- if( UIDorFILEorFILEDATA instanceof FileClass){
- _uid = UIDorFILEorFILEDATA.getUID();
- _data = FILEDATA_RESITER[ _uid] || null;
- } else {
- _data = UIDorFILEorFILEDATA || null;
- }
-
- if( _data === null || !_data) return null;
- for( var i=0, l = FILEDATA_ACCESS.length; i<l; ++i){
- _access = FILEDATA_ACCESS[ i];
- if( _access.DATA === _data) return _access;
- }
- return null;
- },
- getDriver: function( _file){
- var _data = FILE_CONTROLER.getFileData( _file);
- return _data !== null && _data.driver ? ( _data.driver || FileDriverBase) : null;
- },
- getUID: function ( _filedata){
- var l = FILEDATA_RESITER.length;
- for( var i=0; i<l; ++i){
- if( FILEDATA_RESITER[ i] === _filedata) return i;
- }
- return -1;
- },
- getSeqentialFiles: function( _file){
- var _driver = FILE_CONTROLER.getDriver( _file);
- if( _driver !== null && typeof _driver.getSeqentialFiles === 'function'){
- _driver.getSeqentialFiles( _file);
- }
- },
- updateFileAttribute: function( _uid, key, _value, _opt_callback){
- var _data = FILE_CONTROLER.getFileDataAccess( _uid),
- _type = _data.TYPE;
-
- },
- getFileAttribute: function( _uid, KEYorKEYARRAY){
- var _fileData = FILE_CONTROLER.getFileDataAccess( _uid),
- _type = _fileData.TYPE;
- },
- move: function( _prentUID, _targetfile, _newFolder, _newIndex, _opt_callback){
- var _parentData = FILE_CONTROLER.getFileDataAccess( _prentUID),
- _parentType = _parentData.TYPE,
- _targetData = FILE_CONTROLER.getFileDataAccess( _targetfile),
- _targetType = _targetData.TYPE;
- },
- replace: function( _uid, _file, _newIndex){
+ var FILE_CONTROLER = {
+ createTree: function( _rootFileData){
+ var _tree = new TreeClass( _rootFileData);
+ _tree.init();
+ TREE_ARRAY.push( _tree);
+ return _tree;
+ },
+ getFileDataAccess: function( UIDorFILEorFILEDATA){
+ var _uid, _data, _access;
+
+ if( typeof UIDorFILEorFILEDATA === 'number'){
+ _data = FILEDATA_RESITER[ UIDorFILEorFILEDATA] || null;
+ } else
+ if( UIDorFILEorFILEDATA instanceof FileClass){
+ _uid = UIDorFILEorFILEDATA.getUID();
+ _data = FILEDATA_RESITER[ _uid] || null;
+ } else {
+ _data = UIDorFILEorFILEDATA || null;
+ }
+
+ if( _data === null || typeof _data !== 'object') return null;
+ for( var i=0, l = FILEDATA_ACCESS.length; i<l; ++i){
+ _access = FILEDATA_ACCESS[ i];
+ if( _access.DATA === _data) return _access;
+ }
+ return null;
+ },
+ getFileData: function( UIDorFILEorFILEDATA){
+ var _access = FILE_CONTROLER.getFileDataAccess( UIDorFILEorFILEDATA);
+ return _access !== null ? _access.DATA : null;
+ },
+ getChildren: function( UIDorFILEorFILEDATA){
+ var _data = FILE_CONTROLER.getFileData( UIDorFILEorFILEDATA);
+ return _data !== null ? _data.children || null : null;
+ },
+ getDriver: function( _file){
+ var _data = FILE_CONTROLER.getFileData( _file);
+ return _data !== null && _data.driver ? _data.driver : FileDriverBase;
+ },
+ getUpdateFlag: function( _file, _bit){
+ var _driver = FILE_CONTROLER.getDriver( _file ),
+ _policy;
+ if( typeof _driver.getUpdatePolicy === 'function'){
+ _policy = _driver.getUpdatePolicy( _file );
- },
- addEventListener: function( FILEorNULL, _eventType, _callback){
- var _uid = FILEorNULL instanceof FileClass ? FILEorNULL.getUID() : FILEorNULL;
- EVENT_LISTENER_RESISTER.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];
- if( _ticket.fileUID === _uid && _ticket.eventType === _eventType && _ticket.callBack === _callback){
- EVENT_LISTENER_RESISTER.splice( i, 1);
- _ticket.destroy();
- }
+ }
+ if( typeof _policy !== 'number') {
+ _policy = FileDriverBase.getUpdatePolicy( _file )
+ }
+ return _policy % ( _bit * 2) >= _bit;
+ },
+ move: function( _prentUID, _targetfile, _newFolder, _newIndex, _opt_callback){
+ var _parentData = FILE_CONTROLER.getFileDataAccess( _prentUID),
+ _parentType = _parentData.TYPE,
+ _targetData = FILE_CONTROLER.getFileDataAccess( _targetfile),
+ _targetType = _targetData.TYPE;
+ },
+ replace: function( _uid, _file, _newIndex){
+
+ },
+ addEventListener: function( FILEorNULL, _eventType, _callback){
+ var _uid = FILEorNULL instanceof FileClass ? FILEorNULL.getUID() : FILEorNULL;
+ 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_REGISTER.length; i<l; ++i){
+ _ticket = EVENT_LISTENER_REGISTER[i];
+ if( _ticket.fileUID === _uid && _ticket.eventType === _eventType && _ticket.callBack === _callback){
+ EVENT_LISTENER_REGISTER.splice( i, 1);
+ _ticket.destroy();
}
- },
- fileEventRellay: function( _targetFile, _targetTree, _event){
- var _uid = _targetTree.getUID(),
- _access = TREE_ACCESS_ARRAY[ _uid],
- l = TREE_ARRAY.length,
- _tree, _currentFile;
- _access !== undefined && _access.dispatchFileEvent( _event);
- for(var i=0; i<l; ++i){
- if( i !== _uid){
- _tree = TREE_ARRAY[i];
- _currentFile = _tree.getCurrentFile();
- if( FILE_CONTROLER.getFileData( _currentFile) === _access.DATA){
- TREE_ACCESS_ARRAY[ _tree.getUID()].dispatchFileEvent( _event);
- }
+ }
+ },
+ fileEventRellay: function( _targetFile, _targetTree, _event){
+ var _uid = _targetTree.getUID(),
+ _access = TREE_ACCESS_ARRAY[ _uid ],
+ _data = FILE_CONTROLER.getFileData( _targetFile ),
+ _tree;
+ _access && _access.dispatchFileEvent( _event );
+ for( var i=0, l = TREE_ARRAY.length; i<l; ++i){
+ if( i !== _uid){
+ _tree = TREE_ARRAY[ i ];
+ if( FILE_CONTROLER.getFileData( _tree.getCurrentFile() ) === _data ){
+ _access = TREE_ACCESS_ARRAY[ _tree.getUID() ];
+ _access && _access.dispatchFileEvent( _event);
}
}
}
}
- })();
+ }
var TreeClass = function( ROOTFILE_DATA){
var UID = TREE_ACCESS_ARRAY.length,
_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],
- _type = _ticket.eventType,
+ 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){
_callback( _eventType, _targetFile, e.key, e.value);
init: function(){
instance = this;
currentFile = rootFile = new FileClass( this, null, ROOTFILE_DATA);
- rootFile.init();
- FILE_CONTROLER.getSeqentialFiles( currentFile);
+ // rootFile.init();
+ currentFile.getSeqentialFiles();
delete this.init;
},
getUID: function(){ return UID},
if( typeof _index !== 'number' || _index < 0 || _index >= currentFile.getChildFileLength()) return;
PARENT_FILE_RESITER.unshift( currentFile);
currentFile = currentFile.getChildFileByIndex( _index);
- FILE_CONTROLER.getSeqentialFiles( currentFile);
+ currentFile.getSeqentialFiles();
return currentFile;
},
up: function( _index){
} else {
currentFile = PARENT_FILE_RESITER.shift();
}
- FILE_CONTROLER.getSeqentialFiles( currentFile);
+ currentFile.getSeqentialFiles();
return currentFile;
},
addTreeEventListener: function( _eventType, _callback){
*/
var FileClass = function( TREE, parentFile, data){
- if( !data.children){
- data.children = [];
- }
- var TYPE = data.type,
- name = null,
- driver = data.driver || FileDriverBase,
- thumbnail = null,
- uid = FILE_CONTROLER.getUID( data),
- CHILDREN = data.children,
+ var uid = pettanr.util.getIndex( FILEDATA_RESITER, data ),
instance = this;
if( uid === -1){
uid = FILEDATA_RESITER.length;
- FILEDATA_RESITER.push( data);
+ FILEDATA_RESITER.push( data );
}
FILEDATA_ACCESS.push(
{
- TYPE: TYPE,
DATA: data,
- destroy: destroy,
updateParent: updateParent,
dispatchFileEvent: dispatchEvent
}
);
- function destroy(){
- name = thumbnail = parentFile = data = CHILDREN = driver = null;
-
- }
+
function updateParent( _parent){
parentFile = _parent;
}
}
/* grobal Methods */
- this.init = function(){
- //instance = this;
- delete this.init;
- }
- this.getType = function(){
- return TYPE;
- }
- this.getName = function(){
- if( name !== null) return name;
- if( typeof driver.getName === 'function'){
- name = driver.getName( instance);
- }
- return name;
- }
- this.getThumbnail = function(){
- if( thumbnail !== null) return thumbnail;
- if( typeof driver.getThumbnail === 'function'){
- thumbnail = driver.getThumbnail( instance);
- }
- return thumbnail || null;
- }
+
this.getUID = function(){
return uid;
}
+ /*
+ * ファイル構造は TRON のような ハイパーリンク方式 だが、文脈上の 親ファイルが存在する.その親ファイルを使う操作は.prototype に置く事ができない.
+ * 同様に TREE を使う操作も .prototype に置く事ができない.
+ */
this.getChildFileByIndex = function( _index){
- if( typeof _index !== 'number' || _index < 0 || typeof CHILDREN.length !== 'number' || _index >= CHILDREN.length) return null;
- _file = new FileClass( TREE, this, CHILDREN[ _index]);
- _file.init();
+ var _children = FILE_CONTROLER.getChildren( instance );
+ if( typeof _index !== 'number' || _index < 0 || typeof _children.length !== 'number' || _index >= _children.length) return null;
+ var _file = new FileClass( TREE, this, _children[ _index]);
+ // _file.init();
return _file;
}
this.move = function( _newFolder, _newIndex, opt_callback){
TREE.replace( parentFile, UID, _newIndex, opt_callback);
}
this.destroy = function(){
-
+ var _access = FILE_CONTROLER.getFileDataAccess( instance );
+ _index = getChildIndex( FILEDATA_ACCESS, _access );
+ if( _index === -1 || _access === null) return;
+ FILEDATA_ACCESS.splice( _index, 1);
+ TREE = parentFile = data = null;
+ delete _access.DATA;
+ delete _access.updateParent;
+ delete _access.dispatchFileEvent;
}
};
+
FileClass.prototype = {
isChildFile: function( _FILEorFILEDATA){
return this.getChildFileIndex( _FILEorFILEDATA) !== -1;
},
getSeqentialFiles: function(){
- FILE_CONTROLER.getSeqentialFiles( this);
+ var _driver = FILE_CONTROLER.getDriver( this );
+ if( _driver !== null && typeof _driver.getSeqentialFiles === 'function'){
+ _driver.getSeqentialFiles( this );
+ }
},
addEventListener: function( _eventType, _callback){
FILE_CONTROLER.addEventListener( this, _eventType, _callback);
FILE_CONTROLER.removeEventListener( this, _eventType, _callback);
},
getChildFileLength: function(){
- var CHILDREN = FILE_CONTROLER.getChildren( this);
- return CHILDREN && typeof CHILDREN.length === 'number' ? CHILDREN.length : 0;
+ var children = FILE_CONTROLER.getChildren( this);
+ return Type.isArray( children ) === true ? children.length : -1;
},
getChildFileIndex: function( _FILEorFILEDATA){
- var CHILDREN = FILE_CONTROLER.getChildren( this);
-
- if( !CHILDREN || typeof CHILDREN.length !== 'number') return -1;
- var l = CHILDREN.length,
+ var children = FILE_CONTROLER.getChildren( this);
+ if( Type.isArray( children.length ) === false ) return -1;
+ var l = children.length,
_fileData = FILE_CONTROLER.getFileData( _FILEorFILEDATA);
if( _fileData === null) return -1;
for(var i=0; i<l; ++i){
- if( CHILDREN[ i] === _fileData) return i;
+ if( children[ i] === _fileData) return i;
}
return -1;
},
+ getName: function(){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.getName === 'function'){
+ return driver.getName( this );
+ }
+ return FileDriverBase.getName( this);
+ },
+ getThumbnail: function(){
+ var driver = FILE_CONTROLER.getDriver( this);
+ if( typeof driver.getThumbnail === 'function'){
+ return driver.getThumbnail( this);
+ }
+ return FileDriverBase.getThumbnail( this);
+ },
+ getType: function(){
+ var _data = FILE_CONTROLER.getFileData( this);
+ return typeof _data.type === 'number' ? _data.type : pettanr.file.FILE_TYPE.UNKNOWN;
+ },
getState: function(){
var _data = FILE_CONTROLER.getFileData( this);
- return _data.state !== undefined ? _data.state : pettanr.file.FILE_STATE.OK;
+ return typeof _data.state === 'number' ? _data.state : pettanr.file.FILE_STATE.OK;
+ },
+ getSummary: function(){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.getSummary === 'function'){
+ return driver.getSummary( this );
+ }
+ return FileDriverBase.getSummary( this);
+ },
+ isWritable: function(){
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.WRITE);
+ },
+ isSortable: function(){
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.SORT);
+ },
+ isCreatable: function(){
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.CREATE);
+ },
+ isRenamable: function(){
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.RENAME);
+ },
+ read: function(){
+ // simpleDeepCopy
+ return false;
+ },
+ write: function( _newName, _newData){
+ return false;
+ },
+ viwerApplicationList: function(){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.viwerApplicationList === 'function'){
+ return driver.viwerApplicationList( this );
+ }
+ return FileDriverBase.viwerApplicationList( this );
+ },
+ editorApplicationList: function(){
+ var driver = FILE_CONTROLER.editorApplicationList( this );
+ if( typeof driver.editorApplicationList === 'function'){
+ return driver.editorApplicationList( this );
+ }
+ return FileDriverBase.viwerApps( this );
+ },
+ create: function(){
+
+ },
+ sort: function(){
+
+ },
+ onCopy: function(){
+
+ },
+ onDelete: function(){
+
}
}
return _data.name || 'No Name';
},
getThumbnail: function( _file){
- var _data = FILE_CONTROLER.getFileData( _file);
+ var _data = FILE_CONTROLER.getFileData( _file),
_type = _data.type,
_className = '';
if( _type === pettanr.file.FILE_TYPE.FOLDER){
className: ' file-type-' + _className
}
},
- isWritable: function( _file){
- return false;
+ getSummary: function( _file ){
+ var _data = FILE_CONTROLER.getFileData( _file ),
+ _type = _data.type;
+ if( _type === pettanr.file.FILE_TYPE.FOLDER){
+ return 'folder';
+ } else
+ if( _type === pettanr.file.FILE_TYPE.IMAGE){
+ return 'image file';
+ } else
+ if( _type === pettanr.file.FILE_TYPE.TEXT){
+ return 'text file';
+ } else
+ if( _type === pettanr.file.FILE_TYPE.HTML){
+ return 'html document file';
+ } else
+ if( _type === pettanr.file.FILE_TYPE.CSV){
+ return 'csv daat file';
+ } else
+ if( _type === pettanr.file.FILE_TYPE.JSON){
+ return 'json data file';
+ } else
+ if( _type === pettanr.file.FILE_TYPE.XML){
+ return 'xml data file';
+ }
+ return '';
},
- isSortable: function( _file){
- return false;
- },
- isCreatable: function( _file){
- return false;
+ getUpdatePolicy: function( _file){
+ // debug用 全てのメニューを許可
+ return pettanr.file.FILE_UPDATE_POLICY.SRWC;
},
read: function(){
return false;
write: function( _newName, _newData){
return false;
},
+ viwerApplicationList: function(){
+ return [];
+ },
+ editorApplicationList: function(){
+ return [];
+ },
onCreate: function(){
},
}
}
- function getFileObject( TREE, parentFile, data){
- var _file = FILE_OBJECT_POOL.length > 0 ? FILE_OBJECT_POOL.shift() : new FileClass();
- _file.init( TREE, parentFile, data);
- return _file;
- }
-
var ROOT_FILEDATA = {
name: 'system root',
type: FILE_TYPE_IS_FOLDER,
.dispatchFileEvent( new FileEventClass( pettanr.file.FILE_EVENT.GET_SEQENTIAL_FILES, ROOT_FILE, 'children', null));
}
function createFileEvent( _eventType, _file, _key, _value){
- return new FileEventClass( _eventType, _file, _key, _value)
+ return new FileEventClass( _eventType, _file, _key, _value);
}
function createFileTypeID(){
return ++numFileType;
//FILE_CONTROLER.init();
delete pettanr.file.init;
},
- resisterDriver: function( _driver){
+ registerDriver: function( _driver){
_driver.prototype = FileDriverBase;
/*
* File API
return _file instanceof FileClass;
},
FILE_TYPE: {
+ UNKNOWN: 0,
FOLDER: FILE_TYPE_IS_FOLDER,
IMAGE: createFileTypeID(),
TEXT: createFileTypeID(),
ERROR: 3,
BROKEN: 4
},
+ FILE_UPDATE_POLICY: {
+ ____: parseInt( '0000', 2),
+ ___C: parseInt( '0001', 2), // hasCreateMenu
+ __W_: parseInt( '0010', 2), // isWritable
+ __WC: parseInt( '0011', 2), // isWritable
+ _R__: parseInt( '0000', 2), // isRenamable
+ _R_C: parseInt( '0101', 2), // hasCreateMenu
+ _RW_: parseInt( '0110', 2), // isWritable
+ _RWC: parseInt( '0111', 2), // isWritable
+ S___: parseInt( '1000', 2), // childrenIsSortable
+ S__C: parseInt( '1001', 2),
+ S_W_: parseInt( '1010', 2),
+ S_WC: parseInt( '1011', 2),
+ SR__: parseInt( '1000', 2),
+ SR_C: parseInt( '1101', 2),
+ SRW_: parseInt( '1110', 2),
+ SRWC: parseInt( '1111', 2),
+ CREATE: 1,
+ WRAITE: 2,
+ RENAME: 4,
+ SORT: 8
+ },
TREE_EVENT: {
UPDATE: 'onTreeUpdate'
},
GET_SEQENTIAL_FILES:'gotSeqentilFiles'
},
FILE_DATA_PROPERTY_RESERVED: [
- 'children', 'driver', 'state', 'type', 'name'
+ 'children', 'driver', 'state', 'type'
]
}
})();
ELM_ORIGIN_FINDER_ICON = pettanr.util.pullHtmlAsTemplete( 'templete-finder-icon'),
ELM_ORIGIN_CONTAINER = pettanr.util.pullHtmlAsTemplete( 'templete-finder-container'),
ICON_HEIGHT = pettanr.util.getElementSize( ELM_ORIGIN_FINDER_ICON).height,
- ICON_CLASSNAME = ELM_ORIGIN_FINDER_ICON.getElementsByTagName( 'div')[0].className,
+ ICON_CLASSNAME = 'finder-icon-thumbnail',
FINDER_ICON_POOL = [],
BREAD_OBJECT_POOL = [];
var FinderIconClass = function(){
var elmContainer,
ELM_WRAPPER = ELM_ORIGIN_FINDER_ICON.cloneNode( true),
- ELM_THUMBNAIL = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-thumbnail', 'div')[0],
- ELM_FILENAME = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-filename', 'div')[0],
+ ELM_THUMBNAIL = pettanr.util.getElementsByClassName( ELM_WRAPPER, ICON_CLASSNAME )[0],
+ ELM_FILENAME = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-filename' )[0],
+ ELM_DESCRIPTION = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-summary' )[0],
file, w, index, style, instansce, callback;
ELM_WRAPPER.onclick = onClick;
ELM_THUMBNAIL.style.backgroundImage = '';
}
ELM_FILENAME.innerHTML = file.getName();
+ ELM_DESCRIPTION.innerHTML = file.getSummary();
}
function resize(){
ELM_WRAPPER.style.top = (index * ICON_HEIGHT) +'px';
}
}
- 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 = Type.isFinite( _w ) === true ? _w : w;
+ h = Type.isFinite( _h ) === true ? _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){
var _file = tree.getParentFileAt( i);
if( _file !== null){
tree.up( i);
- draw();
+ draw( w, h );
}
}
}
var l = ICON_ARRAY.length;
if( i < l){
var _file = tree.getCurrentFile().getChildFileByIndex( i);
- if( _file !== null && ( _file.getChildFileLength() > 0 || _file.getType() === pettanr.file.FILE_TYPE.FOLDER)){
+ if( _file !== null && ( _file.getChildFileLength() !== -1 || _file.getType() === pettanr.file.FILE_TYPE.FOLDER)){
tree.down( i);
- draw();
+ draw( w, h );
}
}
}
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(){
}
}
})();
pettanr.driver = ( function(){
- var MyAuthorID = 'current_author' in window ? current_author.id : 1,
- MyArtistID = 'current_artist' in window ? current_artist.id : 1,
+ var MyAuthorID = 'current_author' in window ? current_author.id : ( pettanr.DEBUG ? 1 : -1 ),
+ MyArtistID = 'current_artist' in window ? current_artist.id : ( pettanr.DEBUG ? 1 : -1 ),
Driver = {
getSeqentialFiles: function( _file){
var _data = FileAPI.getFileData( _file),
_json = _data !== null ? _data.json : null;
+ if( _json === true && _data.type === pettanr.driver.FILE_TYPE.COMIC ){
+ _json = [ pettanr.CONST.PETTANR_ROOT_PATH, 'comics\/', _data.id, '.json\/play\/' ].join( '' );
+ }
if( typeof _json === 'string'){
FileAPI.getJson( _file, _json, onLoadJson, onErrorJson);
_data.state = pettanr.file.FILE_STATE.LOADING;
- delete _data.json;
+ _data.json = null;
+ return;
}
},
getName: function( _file){
var _data = FileAPI.getFileData( _file),
_type = _data !== null ? _data.type : null;
- if( _type === pettanr.driver.FILE_TYPE.PICTURE){
+ if( _type === pettanr.driver.FILE_TYPE.PICTURE ){
return [ _data.id, _data.ext ].join( '.');
} else
- if( _type === pettanr.driver.FILE_TYPE.PANEL){
- return [ _data.t, ':', _data.comic.name || _data.comic.title ].join( '');
+ if( _type === pettanr.driver.FILE_TYPE.PANEL ){
+ return [ _data.t, ':', _data.comic.title ].join( '');
} else
- if( _type === pettanr.driver.FILE_TYPE.ARTIST){
- return _data.name + '先生';
+ if( _type === pettanr.driver.FILE_TYPE.COMIC ){
+ return _data.title;
} else
- if( _type === pettanr.driver.FILE_TYPE.AUTHOR){
- return _data.name + '先生';
+ if( _type === pettanr.driver.FILE_TYPE.ARTIST ){
+ return [ _data.id , ':', _data.name, '画伯' ].join( '');
+ } else
+ if( _type === pettanr.driver.FILE_TYPE.AUTHOR ){
+ return [ _data.id , ':', _data.name, '先生' ].join( '');
}
- return _data.name || _data.title;
+ return _data.name;
},
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( _data === FILE_DATA_COMIC_ROOT){
+ if( _data === FILE_DATA_COMICS_ROOT){
return { className: 'file-type-cabinet'};
}
if( _type === pettanr.driver.FILE_TYPE.COMIC){
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'};
+ },
+ getSummary: function( _file ){
+ var _data = FileAPI.getFileData( _file),
+ _type = _data !== null ? _data.type : null;
+ if( _type === pettanr.driver.FILE_TYPE.PICTURE){
+ return [ _data.width, 'x', _data.height, ', filesize:', _data.filesize, ', lisence:', _data.license ].join( '' );
+ }
+ if( _data === FILE_DATA_COMICS_ROOT){
+ return 'cabinet file';
+ }
+ if( _type === pettanr.driver.FILE_TYPE.COMIC){
+ return 'comic file';
+ }
+ if( _type === pettanr.driver.FILE_TYPE.PANEL){
+ return [ _data.width, 'x', _data.height ].join( '' );
+ }
+ if( _type === pettanr.driver.FILE_TYPE.AUTHOR){
+ return 'author file';
+ }
+ if( _type === pettanr.driver.FILE_TYPE.ARTIST){
+ return [ 'Email:', _data.email || 'empty' , ', HP:', _data.homepage_url || 'empty' ].join( '' );
+ }
+ if( _type === pettanr.file.FILE_TYPE.FOLDER){
+ return 'pettanR folder';
+ }
+ return 'pettanR unknown file';
+ },
+ 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,
children: []
},
- FILE_DATA_COMIC_ROOT = {
+ FILE_DATA_COMICS_ROOT = {
name: 'Comics',
type: pettanr.file.FILE_TYPE.FOLDER,
children: [],
driver: Driver,
+ json: pettanr.CONST.URL_COMICS_JSON
+ },
+ FILE_DATA_PANELS_ROOT = {
+ name: 'Panels',
+ type: pettanr.file.FILE_TYPE.FOLDER,
+ children: [],
+ driver: Driver,
json: pettanr.CONST.URL_PANELS_JSON
},
FILE_DATA_PICTURE_ROOT = {
type: pettanr.file.FILE_TYPE.FOLDER,
children: [],
driver: Driver,
- json: pettanr.CONST.URL_ORIGINAL_PICTURES_JSON
+ json: pettanr.CONST.URL_RESOURCE_PICTURES_JSON
},
FILE_DATA_MY_COMICS_ROOT = {
name: 'My Comics',
type: pettanr.file.FILE_TYPE.FOLDER,
+ children: [],
+ driver: Driver
+ },
+ FILE_DATA_LATEST_COMICS = {
+ name: 'Latest Comics',
+ type: pettanr.file.FILE_TYPE.FOLDER,
children: []
},
FILE_DATA_MY_PICTURES_ROOT = {
name: 'My Pictures',
type: pettanr.file.FILE_TYPE.FOLDER,
- children: []
+ children: [],
+ driver: Driver,
+ json: pettanr.CONST.URL_ORIGINAL_PICTURES_JSON
},
FILE_DATA_AUTHOR_ROOT = {
name: 'Authors',
type: pettanr.file.FILE_TYPE.FOLDER,
children: []
},
- FILE_DATA_LICENSE_ROOT = {
- name: 'Original Licenses',
+ FILE_DATA_LISENCE_ROOT = {
+ name: 'Original Lisences',
type: pettanr.file.FILE_TYPE.FOLDER,
children: []
},
BALLOON_TEMPLETE_ARRAY = [],
ORIGINAL_LICENSE_ARRAY = [],
BASIC_LICENSES = 'cc_by,cc_nc,cc_nd,cc_sa,keep_aspect_ratio,no_convert,no_flip,no_resize'.split( ',');
- FILE_DATA_SERVICE_ROOT.children.push( FILE_DATA_COMIC_ROOT, FILE_DATA_PICTURE_ROOT, FILE_DATA_LICENSE_ROOT, FILE_DATA_BALLOON_ROOT);
- FILE_DATA_COMIC_ROOT.children.push( FILE_DATA_MY_COMICS_ROOT, FILE_DATA_AUTHOR_ROOT);
+ FILE_DATA_SERVICE_ROOT.children.push( FILE_DATA_COMICS_ROOT, FILE_DATA_PICTURE_ROOT, FILE_DATA_PANELS_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_PICTURE_ROOT.children.push( FILE_DATA_MY_PICTURES_ROOT, FILE_DATA_ARTIST_ROOT);
FileAPI.createFolderUnderRoot( FILE_DATA_SERVICE_ROOT);
-
- function onLoadJson( _file, _json){
+
+ function onLoadJson( _file, _json ){
var _access = FileAPI.getFileDataAccess( _file),
_data = _access !== null ? _access.DATA : null,
- l = _json.length;
+ l;
if( _data === null){
onErrorJson( _file);
return;
}
_data.state = pettanr.file.FILE_STATE.OK;
- if( l === 0) return;
- for(var i=0; i<l; ++i){
- buildFileData( _json[ i], _data);
+
+ if( Type.isArray( _json ) === true ){
+ l = _json.length;
+ if( l === 0) return;
+ for( var i=0; i<l; ++i ){
+ buildFileData( _json[ i], _data);
+ }
+ } else
+ if( _json.id ){
+ buildFileData( _json, _data );
}
_access.dispatchFileEvent( FileAPI.createFileEvent( pettanr.file.FILE_EVENT.GET_SEQENTIAL_FILES, _file, 'children', null));
}
- function onErrorJson( _file){
+ function onErrorJson( _file ){
var _data = FileAPI.getFileData( _file);
if( _data !== null){
_data.state = pettanr.file.FILE_STATE.ERROR;
}
}
- function buildFileData( _data, _parent){
- var _type, _array,
- _id = _data.id,
- i, l;
- if( _parent === FILE_DATA_COMIC_ROOT){
+ function buildFileData( _data, _parent ){
+ var _array, i, l;
+ // Panel
+ if( _parent === FILE_DATA_PANELS_ROOT ){
_data.type = pettanr.driver.FILE_TYPE.PANEL;
_array = PANEL_ARRAY;
} else
- if( _parent === FILE_DATA_PICTURE_ROOT){
+ // Comic
+ if( _parent === FILE_DATA_COMICS_ROOT ){
+ _data.type = pettanr.driver.FILE_TYPE.COMIC;
+ _array = COMIC_ARRAY;
+ } else
+ if( _parent.type === pettanr.driver.FILE_TYPE.COMIC ){
+ _array = COMIC_ARRAY;
+ } else
+ // Lisence
+ if( _parent === FILE_DATA_LISENCE_ROOT ){
+ _data.type = pettanr.driver.FILE_TYPE.LICENSE;
+ _array = ORIGINAL_LICENSE_ARRAY;
+ } else
+ // Author
+ if( _parent === FILE_DATA_AUTHOR_ROOT ){
+ _data.type = pettanr.driver.FILE_TYPE.AUTHOR;
+ _array = AUTHOR_ARRAY;
+ } else
+ // Artist
+ if( _parent === FILE_DATA_ARTIST_ROOT ){
+ _data.type = pettanr.driver.FILE_TYPE.ARTIST;
+ _array = ARTIST_ARRAY;
+ } else
+ // Picture
+ if( _parent === FILE_DATA_PICTURE_ROOT || _parent === FILE_DATA_MY_PICTURES_ROOT ){
_data.type = pettanr.driver.FILE_TYPE.PICTURE;
_array = RESOURCE_PICTURE_ARRAY;
-
// original_license を含まなければ、license object を削除して ビットデータ で保持
- // original_license なら ファイルを作る buildFileData( _license, FILE_DATA_LICENSE_ROOT)
+ // original_license なら ファイルを作る buildFileData( _license, FILE_DATA_LISENCE_ROOT)
var _license = _data.license,
+ _rule,
_Math_pow = Math.pow,
_bits = 0;
if( typeof _license === 'object'){
for( i=0, l=BASIC_LICENSES.length; i<l; ++i){
- if( typeof _license[ BASIC_LICENSES[ i]] === 'number'){
+ _rule = _license[ BASIC_LICENSES[ i]]
+ if( typeof _rule === 'number' && _rule === 1 ){
_bits += _Math_pow( 2, i);
}
}
_data.license = _bits;
}
- } else
- if( _parent === FILE_DATA_LICENSE_ROOT){
- _data.type = pettanr.driver.FILE_TYPE.LICENSE;
- _array = ORIGINAL_LICENSE_ARRAY;
+ } else {
+ alert( 'error' );
}
_data.driver = Driver;
// _array に _data を格納 または 上書き
- if( typeof _id === 'number'){
- var __data = _array[ _id];
- if( __data){
+ if( typeof _data.id === 'number' && _data.id > 0 ){
+ var _id = _data.id - 1,
+ __data = _array[ _id ],
+ _reserved = pettanr.file.FILE_DATA_PROPERTY_RESERVED.join( ', ' );
+ if( __data ){
for( var key in _data){
- __data[ key ] = _data[ key ];
+ if( _reserved.indexOf( key ) === -1 ){
+ __data[ key ] = _data[ key ];
+ }
}
_data = __data; // このタイミングで参照が切れるので注意!!
} else {
- _array[ _id] = _data;
+ _array[ _id ] = _data;
}
+ } else {
+ alert( 'error' );
}
-
- if( _parent === FILE_DATA_COMIC_ROOT){
- if( _data.comic && _data.author){
- var _comic = getFolderData( _data, 'comic', FILE_DATA_COMIC_ROOT),
- _comics = getFolderData( _data, 'author', FILE_DATA_AUTHOR_ROOT).children;
- _comic.children.push( _data);
- pettanr.util.getIndex( _comics, _comic) === -1 && _comics.push( _comic);
- }
- // picture data をファイルに取り出し
- var _elements = _data.panel_elements || [],
- _elm;
- for(var i=0, l=_elements.length; i<l; ++i){
- _elm = _elements[ i];
- if( _elm.resource_picture){
- _elm.resource_picture = buildFileData( _elm.resource_picture, FILE_DATA_PICTURE_ROOT); // 上記参照切れに備えてここで上書き
+
+ // Author
+ // Artist
+ if( _parent === FILE_DATA_AUTHOR_ROOT || _parent === FILE_DATA_ARTIST_ROOT ){
+ addChildData( _parent, _data );
+ } else
+ // Comic + Panels
+ if( _parent.type === pettanr.driver.FILE_TYPE.COMIC || _parent === FILE_DATA_COMICS_ROOT ){
+ var _panels = _data.panels,
+ _panel;
+ if( _panels && Type.isArray( _panels ) === true ){
+
+ for( i=0, l=_panels.length; i<l; ++i){
+ _panel = buildFileData( _panels[ i ], FILE_DATA_PANELS_ROOT );
+ /*
+ * 間違い! t 順に格納
+ */
+ addChildData( _data, _panel );
}
- if( _elm.resource_picture_id && RESOURCE_PICTURE_ARRAY[ _elm.resource_picture_id]){
- _elm.resource_picture = RESOURCE_PICTURE_ARRAY[ _elm.resource_picture_id];
+ delete _data.panels;
+ } else {
+ if( _data.json !== null ){
+ _data.json = true;
}
+ if( Type.isArray( _data.children ) === false ){
+ _data.children = [];
+ }
+ }
+ var _author = _data.author || getResource( AUTHOR_ARRAY, _data.author_id );
+ if( _author ){
+ _data.author = _author = buildFileData( _author, FILE_DATA_AUTHOR_ROOT );
+ addChildData( _author, _data );
+ _author.id === MyAuthorID && addChildData( FILE_DATA_MY_COMICS_ROOT, _data );
+ }
+ if( _parent === FILE_DATA_COMICS_ROOT ){
+ addChildData( FILE_DATA_LATEST_COMICS, _data);
}
} else
- if( _parent === FILE_DATA_PICTURE_ROOT){
- _data.artist && getFolderData( _data, 'artist', FILE_DATA_ARTIST_ROOT).children.push( _data);
- }
-
- return _data;
- }
- /**
- * folder には Artist, Author, Comic,
- */
- function getFolderData( _data, _key, _parentData){
- if( typeof _data[ _key ] !== 'object') return {children:[]};
- var _ret,
- _id = _data[ _key ].id,
- _array;
- if( typeof _id !== 'number') return {children:[]};
-
- _array = _parentData === FILE_DATA_ARTIST_ROOT ? ARTIST_ARRAY :
- _parentData === FILE_DATA_AUTHOR_ROOT ? AUTHOR_ARRAY :
- _parentData === FILE_DATA_COMIC_ROOT ? COMIC_ARRAY : []
+ // Panel
+ if( _parent === FILE_DATA_PANELS_ROOT ){
+ _data.comic = getResource( COMIC_ARRAY, _data.comic_id );
+ _data.author = getResource( AUTHOR_ARRAY, _data.author_id );
- if( typeof _array[ _id] === 'object'){
- var __data = _array[ _id];
- for( var i in _data[ _key ]){
- __data[ i ] = _data[ _key ][ i ];
+ // picture data をファイルに取り出し
+ if( Type.isArray( _data.panel_elements ) === true ){
+ var _elements,
+ _elm, _rpic;
+ for( i=0, l=_elements.length; i<l; ++i){
+ _elm = _elements[ i];
+ if( _elm.resource_picture ){
+ _elm.resource_picture = buildFileData( _elm.resource_picture, FILE_DATA_PICTURE_ROOT); // 上記参照切れに備えてここで上書き
+ } else {
+ _elm.resource_picture = getResource( RESOURCE_PICTURE_ARRAY, _elm.resource_picture_id );
+ }
+ }
+ }
+ } else
+ // Picture
+ if( _data.type == pettanr.driver.FILE_TYPE.PICTURE ){
+ var _artist = _data.artist || getResource( ARTIST_ARRAY, _data.artist_id );
+ if( _artist){
+ _data.artist = _artist = buildFileData( _artist, FILE_DATA_ARTIST_ROOT );
+ addChildData( _artist, _data );
+ _artist.id === MyArtistID && addChildData( FILE_DATA_MY_PICTURES_ROOT, _data );
}
- return _data[ _key ] = __data;// このタイミングで参照が切れるので注意!!
}
-
- _ret = _array[ _id ] = _data[ _key ];
- if( _ret.title){
- _ret.name = _ret.title;
- delete _ret.title;
+ return _data;
+ }
+ function addChildData( _parent, _child ){
+ if( Type.isArray( _parent.children ) === false){
+ _parent.children = [];
}
- _ret.children = [];
- _ret.driver = Driver;
-
- if( _parentData === FILE_DATA_AUTHOR_ROOT){
- _ret.type = pettanr.driver.FILE_TYPE.AUTHOR;
- _id === MyAuthorID && FILE_DATA_MY_COMICS_ROOT.children.push( _ret);
- } else
- if( _parentData === FILE_DATA_ARTIST_ROOT){
- _ret.type = pettanr.driver.FILE_TYPE.ARTIST;
- _id === MyArtistID && FILE_DATA_MY_PICTURES_ROOT.children.push( _ret);
- } else
- if( _parentData === FILE_DATA_COMIC_ROOT){
- _ret.type = pettanr.driver.FILE_TYPE.COMIC;
- return _ret;
- } else {
- _ret.type = pettanr.file.FILE_TYPE.FOLDER;
+ pettanr.util.getIndex( _parent.children, _child ) === -1 && _parent.children.push( _child );
+ }
+ function getResource( _array, _id ){
+ if( Type.isArray( _array ) === false || Type.isNumber( _id ) === false || _id < 1 ) return null;
+ var _data = _array[ _id - 1 ];
+ if( !_data ){
+ _data = _array[ _id - 1 ] = {};
}
-
- _parentData.children.push( _ret);
-
- return _ret;
+ return _data;
}
return {
createComicTree: function(){
- return pettanr.file.createTree( FILE_DATA_SERVICE_ROOT); //FILE_DATA_COMIC_ROOT);
+ return pettanr.file.createTree( FILE_DATA_SERVICE_ROOT); //FILE_DATA_COMICS_ROOT);
},
createPictureTree: function(){
return pettanr.file.createTree( FILE_DATA_PICTURE_ROOT);
createServiceTree: function(){
return pettanr.file.createTree( FILE_DATA_SERVICE_ROOT);
},
- isPettanrFile: function( _file){
-
+ isPettanrFileInstance: function( _file){
+ if( pettanr.file.isPettanFileInstance( _file) === true){
+ var _data = FileAPI.getFileData( _file);
+ return _data !== null && _data.driver === Driver;
+ }
+ return false;
},
FILE_TYPE: {
COMIC: FileAPI.createFileTypeID(),
}
})();
+pettanr.entrance = {
+ onOpen: function( _w, _h, _option ){
+ var pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
+ document.getElementById('inner-wrapper').style.height = ( _h - pageHeaderH ) + 'px';
+ },
+ onClose: function(){
+ document.getElementById('inner-wrapper').style.height = '0px';
+ },
+ onWindowResize: function( _w, _h){
+ pettanr.entrance.onOpen( _w, _h );
+ }
+ }
+pettanr.backyard = {
+ onOpen: function( _w, _h, _option ){
+ },
+ onClose: function(){
+ },
+ onWindowResize: function( _w, _h){
+ }
+ }
+pettanr.debug = {
+ onOpen: function( _w, _h, _option ){
+ var pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
+ document.getElementById('inner-wrapper').style.height = ( _h - pageHeaderH ) + 'px';
+ },
+ onClose: function(){
+ document.getElementById('inner-wrapper').style.height = '0px';
+ },
+ onWindowResize: function( _w, _h){
+ pettanr.debug.onOpen( _w, _h );
+ }
+ }
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);
}
}
})();
pettanr.fn( pettanr.overlay);
pettanr.fn( pettanr.key);
pettanr.fn( pettanr.balloon);
+
pettanr.fn( pettanr.editor);
+pettanr.fn( pettanr.comicConsole);
+pettanr.fn( pettanr.uploadConsole);
+pettanr.fn( pettanr.panelConsole);
+pettanr.fn( pettanr.artistConsole);
+
pettanr.fn( pettanr.file);
pettanr.fn( pettanr.finder);
pettanr.fn( pettanr.gallery);