/*
* pettanR system.js
- * version 0.4.10
+ * version 0.4.17
*
* 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 = [];
} else
if( UIDorFILEorFILEDATA instanceof FileClass){
_uid = UIDorFILEorFILEDATA.getUID();
- _data = FILEDATA_RESITER[ _uid] || null;
+ _data = FILEDATA_RESITER[ _uid ] || null;
} else {
_data = UIDorFILEorFILEDATA || null;
}
},
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();
}
}
},
- fileEventRellay: function( _targetFile, _targetTree, _event){
- var _uid = _targetTree.getUID(),
- _access = TREE_ACCESS_ARRAY[ _uid ],
- _data = FILE_CONTROLER.getFileData( _targetFile ),
+ getTreeAccess: function(){
+
+ },
+ fileEventRellay: function( _uid, _event ){
+ var _fileAccess = FILE_CONTROLER.getFileDataAccess( _uid );
+ if( _fileAccess === null ) return;
+ var _treeUID = _fileAccess.TREE.getUID(),
+ _treeAccess = TREE_ACCESS_ARRAY[ _treeUID ],
+ _data = _fileAccess.DATA,
_tree;
- _access && _access.dispatchFileEvent( _event );
+ if( !_treeAccess ) return;
+ _treeAccess.dispatchFileEvent( _event );
for( var i=0, l = TREE_ARRAY.length; i<l; ++i){
- if( i !== _uid){
+ if( i !== _treeUID ){
_tree = TREE_ARRAY[ i ];
if( FILE_CONTROLER.getFileData( _tree.getCurrentFile() ) === _data ){
- _access = TREE_ACCESS_ARRAY[ _tree.getUID() ];
- _access && _access.dispatchFileEvent( _event);
+ _treeAccess = TREE_ACCESS_ARRAY[ _tree.getUID() ];
+ _treeAccess && _treeAccess.dispatchFileEvent( _event );
}
}
}
}
}
- var TreeClass = function( ROOTFILE_DATA){
- var UID = TREE_ACCESS_ARRAY.length,
- PARENT_FILE_RESITER = [],
+ var TreeClass = function( rootFileData ){
+ var PARENT_FILE_RESITER = [],
ACCESS = {
- dispatchFileEvent: dispatchFileEvent,
- destroy: onDestroy
+ dispatchFileEvent: dispatchFileEvent
},
EVENT_LISTENER_ARRAY = [],
rootFile,
- rootFileData,
currentFile,
- currentFileData,
instance;
- TREE_ACCESS_ARRAY.push( ACCESS);
+ TREE_ACCESS_ARRAY.push( ACCESS );
- function onDestroy(){
-
- }
-
- function dispatchFileEvent( e){
+ function dispatchFileEvent( e ){
var _eventType = e.eventType,
_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);
+ if( _eventType === _type && _uid === _ticket.fileUID ){
+ _callback( _eventType, _targetFile, e.key, e.value );
} else
- if( _type === pettanr.file.TREE_EVENT.UPDATE && _eventType === pettanr.file.FILE_EVENT.GET_SEQENTIAL_FILES){
- _callback( _eventType, _targetFile);
+ if( _type === pettanr.file.TREE_EVENT.UPDATE && _eventType === pettanr.file.FILE_EVENT.GET_SEQENTIAL_FILES ){
+ _callback( _eventType, _targetFile );
}
}
}
return {
init: function(){
instance = this;
- currentFile = rootFile = new FileClass( this, null, ROOTFILE_DATA);
+ currentFile = rootFile = new FileClass( instance, null, rootFileData );
// rootFile.init();
currentFile.getSeqentialFiles();
delete this.init;
},
- getUID: function(){ return UID},
+ getUID: function(){
+ return pettanr.util.getIndex( TREE_ACCESS_ARRAY, ACCESS );
+ },
getRootFile : function(){
return rootFile;
},
},
down: function( _index){
if( typeof _index !== 'number' || _index < 0 || _index >= currentFile.getChildFileLength()) return;
- PARENT_FILE_RESITER.unshift( currentFile);
- currentFile = currentFile.getChildFileByIndex( _index);
+ PARENT_FILE_RESITER.unshift( currentFile );
+ currentFile = currentFile.getChildFileByIndex( _index );
currentFile.getSeqentialFiles();
return currentFile;
},
up: function( _index){
var l = PARENT_FILE_RESITER.length;
if( l === 0) return null;
+
+ if( currentFile ){
+ var _currentFile = currentFile;
+ currentFile = null;
+ _currentFile.destroy();
+ }
if( typeof _index === 'number'){
if( _index >= l) return null;
- currentFile = this.getParentFileAt( _index);
+ currentFile = this.getParentFileAt( _index );
PARENT_FILE_RESITER.splice( 0, l -_index);
} else {
currentFile = PARENT_FILE_RESITER.shift();
FILE_CONTROLER.removeEventListener( null, _eventType, _callback);
},
destroy: function(){
- FILE_CONTROLER.destroyTree( UID);
+ FILE_CONTROLER.destroyTree( instance.getUID() );
+ // removeEvent
+ var _currentFile = currentFile;
+ currentFile = rootFile = rootFileData = null;
+ _currentFile.destroy();
+ while( PARENT_FILE_RESITER.length > 0 ){
+ _currentFile = PARENT_FILE_RESITER.shift();
+ _currentFile.destroy();
+ }
+ instance = null;
}
}
};
* 他の tree も data の共通する currentFile に対してのみは、file の変更イベントを受け取って流す.
*/
- var FileClass = function( TREE, parentFile, data){
+ var FileClass = function( tree, parentFile, data ){
var uid = pettanr.util.getIndex( FILEDATA_RESITER, data ),
instance = this;
FILEDATA_ACCESS.push(
{
+ TREE: tree,
+ parentFile: parentFile,
DATA: data,
- updateParent: updateParent,
dispatchFileEvent: dispatchEvent
}
);
-
- function updateParent( _parent){
- parentFile = _parent;
- }
- function dispatchEvent( e){
- FILE_CONTROLER.fileEventRellay( instance, TREE, e);
- }
- /* grobal Methods */
-
+ tree = parentFile = data = null;
+
+ function dispatchEvent( e ){
+ FILE_CONTROLER.fileEventRellay( uid, e );
+ }
this.getUID = function(){
return uid;
}
- /*
- * ファイル構造は TRON のような ハイパーリンク方式 だが、文脈上の 親ファイルが存在する.その親ファイルを使う操作は.prototype に置く事ができない.
- * 同様に TREE を使う操作も .prototype に置く事ができない.
- */
- this.getChildFileByIndex = function( _index){
- 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.move( parentFile, UID, _newFolder, _newIndex, opt_callback);
- }
- this.replace = function( _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, _access.updateParent, _access.dispatchFileEvent;
- }
};
FileClass.prototype = {
var _data = FILE_CONTROLER.getFileData( this);
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);
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.WRITE );
},
isSortable: function(){
- return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.SORT);
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.SORT );
},
isCreatable: function(){
- return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.CREATE);
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.CREATE );
},
isRenamable: function(){
- return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.RENAME);
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.RENAME );
+ },
+ isDeletable: function(){
+ return FILE_CONTROLER.getUpdateFlag( this, pettanr.file.FILE_UPDATE_POLICY.DELETE );
},
read: function(){
// simpleDeepCopy
- return false;
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.read === 'function'){
+ return driver.read( this );
+ }
+ return FileDriverBase.read( this );
},
- write: function( _newName, _newData){
- return false;
+ write: function( _newName, _newData ){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.write === 'function'){
+ return driver.write( this, _newName, _newData );
+ }
+ return FileDriverBase.write( this, _newName, _newData );
},
- viwerApps: function(){
-
+ viewerApplicationList: function(){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.viewerApplicationList === 'function'){
+ return driver.viewerApplicationList( this );
+ }
+ return FileDriverBase.viewerApplicationList( this );
},
- editorApps: function(){
-
+ editorApplicationList: function(){
+ var driver = FILE_CONTROLER.getDriver( this );
+ if( typeof driver.editorApplicationList === 'function'){
+ return driver.editorApplicationList( this );
+ }
+ return FileDriverBase.viwerApps( this );
},
create: function(){
},
onDelete: function(){
+ },
+ getChildFileByIndex: function( _index ){
+ var _access = FILE_CONTROLER.getFileDataAccess( this ),
+ _children = FILE_CONTROLER.getChildren( this );
+ if( typeof _index !== 'number' || _index < 0 || Type.isArray( _children ) === false || _index >= _children.length) return null;
+ var _file = new FileClass( _access.TREE, this, _children[ _index ]);
+ // _file.init();
+ return _file;
+ },
+ move: function( _newFolder, _newIndex, opt_callback ){
+ var _access = FILE_CONTROLER.getFileDataAccess( this );
+ _access.TREE.move( _access.parentFile, this.getUID(), _newFolder, _newIndex, opt_callback );
+ },
+ replace: function( _newIndex, opt_callback){
+ var _access = FILE_CONTROLER.getFileDataAccess( this );
+ _access.TREE.replace( _access.parentFile, this.getUID(), _newIndex, opt_callback);
+ },
+ destroy: function(){
+ var _access = FILE_CONTROLER.getFileDataAccess( this );
+ var TREE = _access.TREE;
+ if( TREE.getCurrentFile() === this ) return;
+ if( TREE.getRootFile() === this ) return;
+ for( var i=0, l = TREE.hierarchy(); i<l; ++i ){
+ if( TREE.getParentFileAt( i ) === this ){
+ return;
+ }
+ }
+ var _index = pettanr.util.getIndex( FILEDATA_ACCESS, _access );
+ if( _index === -1 || _access === null ) return;
+ // event の 削除
+ FILEDATA_ACCESS.splice( _index, 1 );
+ delete _access.DATA;
+ delete _access.TREE;
+ delete _access.parentFile;
+ delete _access.dispatchFileEvent;
}
}
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
}
},
- getUpdatePolicy: function( _file){
+ 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 '';
+ },
+ getUpdatePolicy: function( _file ){
// debug用 全てのメニューを許可
- return pettanr.file.FILE_UPDATE_POLICY.SRWC;
+ return pettanr.file.FILE_UPDATE_POLICY.DSRWC;
},
- read: function(){
- return false;
+ read: function( _file ){
+ var data = FILE_CONTROLER.getFileData( _file ),
+ protect = pettanr.file.FILE_DATA_PROPERTY_RESERVED.join( '\n' );
+
+ function clone( src ) {
+ var ret;
+ if( Type.isArray(src) === true ){
+ ret = [];
+ } else
+ if( Type.isObject(src) === true ){
+ ret = {};
+ } else
+ if( Type.isNumber(src) === true || Type.isString(src) === true || Type.isBoolean( src ) === true ){
+ return src;
+ } else {
+ return null;
+ }
+ for( var key in src ){
+ if( protect.indexOf( key ) === -1 ){
+ //alert( key )
+ ret[ key ] = clone( src[ key ]);
+ }
+ }
+ return ret;
+ };
+
+ return clone( data );
},
- write: function( _newName, _newData){
+ write: function( _file, _newName, _newData){
+ var _data = FILE_CONTROLER.getFileData( _file ),
+ _type = _data.type;
return false;
},
+ viewerApplicationList: function(){
+ return [];
+ },
+ editorApplicationList: function(){
+ return [];
+ },
onCreate: function(){
},
.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
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),
+ _____: parseInt( '00000', 2),
+ ____C: parseInt( '00001', 2), // hasCreateMenu
+ ___W_: parseInt( '00010', 2), // isWritable
+ ___WC: parseInt( '00011', 2), // isWritable
+ __R__: parseInt( '00100', 2), // isRenamable
+ __R_C: parseInt( '00101', 2), // hasCreateMenu
+ __RW_: parseInt( '00110', 2), // isWritable
+ __RWC: parseInt( '00111', 2), // isWritable
+ _S___: parseInt( '01000', 2), // childrenIsSortable
+ _S__C: parseInt( '01001', 2),
+ _S_W_: parseInt( '01010', 2),
+ _S_WC: parseInt( '01011', 2),
+ _SR__: parseInt( '01100', 2),
+ _SR_C: parseInt( '01101', 2),
+ _SRW_: parseInt( '01110', 2),
+ _SRWC: parseInt( '01111', 2),
+ D____: parseInt( '10000', 2),
+ D___C: parseInt( '10001', 2), // hasCreateMenu
+ D__W_: parseInt( '10010', 2), // isWritable
+ D__WC: parseInt( '10011', 2), // isWritable
+ D_R__: parseInt( '10100', 2), // isRenamable
+ D_R_C: parseInt( '10101', 2), // hasCreateMenu
+ D_RW_: parseInt( '10110', 2), // isWritable
+ D_RWC: parseInt( '10111', 2), // isWritable
+ DS___: parseInt( '11000', 2), // childrenIsSortable
+ DS__C: parseInt( '11001', 2),
+ DS_W_: parseInt( '11010', 2),
+ DS_WC: parseInt( '11011', 2),
+ DSR__: parseInt( '11100', 2),
+ DSR_C: parseInt( '11101', 2),
+ DSRW_: parseInt( '11110', 2),
+ DSRWC: parseInt( '11111', 2),
CREATE: 1,
WRAITE: 2,
RENAME: 4,
- SORT: 8
+ SORT: 8,
+ DELETE: 16
},
TREE_EVENT: {
UPDATE: 'onTreeUpdate'
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],
- file, w, index, style, instansce, callback;
+ 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],
+ ELM_EDITOR_BUTTON = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-console-editor-apps' )[0],
+ ELM_VIEWER_BUTTON = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-console-viewer-apps' )[0],
+ ELM_ACTION_BUTTON = pettanr.util.getElementsByClassName( ELM_WRAPPER, 'finder-icon-console-action' )[0],
+ file, w, index, style, instansce,
+ onDownCallback, onEditorCallback, onViewerCallback, onActionCallback,
+ viewerList, editorList;
+ ELM_WRAPPER.onmouseover = onOver;
+ function onOver(){
+ ELM_WRAPPER.style.backgroundColor = '#eee';
+ }
+ ELM_WRAPPER.onmouseout = onOut;
+ function onOut(){
+ ELM_WRAPPER.style.backgroundColor = '';
+ }
- ELM_WRAPPER.onclick = onClick;
- function onClick(){
- callback( index);
+ ELM_WRAPPER.onclick = onDownClick;
+ function onDownClick(){
+ onDownCallback( index);
+ }
+ ELM_EDITOR_BUTTON.onclick = onEditorClick;
+ function onEditorClick(){
+ onEditorCallback( file, editorList[ 0 ] );
+ }
+ ELM_VIEWER_BUTTON.onclick = onViwerClick;
+ function onViwerClick(){
+ onViewerCallback( file, viewerList[ 0 ] );
+ }
+ ELM_ACTION_BUTTON.onclick = onActionClick;
+ function onActionClick(){
+ onActionCallback( file );
}
-
function draw(){
var _thumb = file.getThumbnail();
- if( _thumb.image){
+ if( _thumb.image ){
ELM_THUMBNAIL.className = ICON_CLASSNAME + ' has-thumbnail';
ELM_THUMBNAIL.style.backgroundImage = [ 'url(', _thumb.image, ')'].join( '');
} else {
- ELM_THUMBNAIL.className = ICON_CLASSNAME + ' ' +_thumb.className;
+ ELM_THUMBNAIL.className = ICON_CLASSNAME + ' ' + _thumb.className;
ELM_THUMBNAIL.style.backgroundImage = '';
}
- ELM_FILENAME.innerHTML = file.getName();
+ ELM_FILENAME.firstChild.data = file.getName();
+ ELM_DESCRIPTION.firstChild.data = file.getSummary();
+
+ if( Type.isArray( viewerList ) === true && viewerList.length > 0 ){
+ ELM_VIEWER_BUTTON.style.display = '';
+ } else {
+ ELM_VIEWER_BUTTON.style.display = 'none';
+ };
+ if( Type.isArray( editorList ) === true && editorList.length > 0 ){
+ ELM_EDITOR_BUTTON.style.display = '';
+ } else {
+ ELM_EDITOR_BUTTON.style.display = 'none';
+ };
}
function resize(){
ELM_WRAPPER.style.top = (index * ICON_HEIGHT) +'px';
}
return {
- init: function( _file, _elmContainer, _w, _index, _style, _callback){
+ init: function( _file, _elmContainer, _w, _index, _style, _onDownCallback, _onEditorCallback, _onViewerCallback, _onActionCallback ){
instansce = this;
if( elmContainer !== _elmContainer){
_elmContainer.appendChild( ELM_WRAPPER);
elmContainer = _elmContainer;
}
if( file !== _file){
+ file && file.destroy();
file = _file;
+ viewerList = file.viewerApplicationList();
+ editorList = file.editorApplicationList();
draw();
}
if( index !== _index){
index = _index;
resize();
}
- callback = _callback;
+ onDownCallback = _onDownCallback;
+ onEditorCallback = _onEditorCallback;
+ onViewerCallback = _onViewerCallback;
+ onActionCallback = _onActionCallback;
},
elm: ELM_WRAPPER,
index: function( _index){
return style;
},
- onResize: function( w){
+ onResize: function( w ){
},
destroy: function(){
elmContainer.removeChild( ELM_WRAPPER);
- file = elmContainer = null;
+ file && file.destroy();
+ file = elmContainer = onDownCallback = onEditorCallback = onViewerCallback = onActionCallback = viewerList = editorList = null;
FINDER_ICON_POOL.push( instansce);
}
}
}
return {
- init: function( _file, _elmContainer, _index, _callback){
+ init: function( _file, _elmContainer, _index, _callback ){
instansce = this;
if( elmContainer !== _elmContainer){
_elmContainer.appendChild( ELM_WRAPPER);
destroy: function(){
elmContainer.removeChild( ELM_WRAPPER);
file = elmContainer = null;
- BREAD_OBJECT_POOL.push( this);
+ BREAD_OBJECT_POOL.push( this );
}
}
}
- 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),
- elmLocation = elmContainer.getElementsByTagName( 'ul')[0],
- nodesDiv = elmContainer.getElementsByTagName( 'div'),
+ elmContainer = ELM_ORIGIN_CONTAINER.cloneNode( true ),
+ elmLocation = elmContainer.getElementsByTagName( 'ul' )[0],
+ nodesDiv = elmContainer.getElementsByTagName( 'div' ),
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){
BREAD_ARRAY[ i].init( _file, elmLocation, i, onHeadClick);
} else {
- BREAD_ARRAY.push( getBreadcrumb( _file, elmLocation, i, onHeadClick));
+ BREAD_ARRAY.push( getBreadcrumb( _file, elmLocation, i, onHeadClick ));
}
}
while( l < BREAD_ARRAY.length){
for( i=0; i<l; ++i){
if( i < m){
- ICON_ARRAY[ i].init( _file.getChildFileByIndex( i), elmBody, w, i, style, onBodyClick);
+ ICON_ARRAY[ i ].init( _file.getChildFileByIndex( i), elmBody, w, i, style, onDown, onEditor, onViwer, onAction );
} else {
- ICON_ARRAY.push( getFinderIcon( _file.getChildFileByIndex( i), elmBody, w, i, style, onBodyClick));
+ ICON_ARRAY.push( getFinderIcon( _file.getChildFileByIndex( i), elmBody, _w, i, style, onDown, onEditor, onViwer, onAction ));
}
}
+ 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 );
}
}
}
- function onBodyClick( i){
- var l = ICON_ARRAY.length;
- if( i < l){
- var _file = tree.getCurrentFile().getChildFileByIndex( i);
+ function onDown( i ){
+ if( i < ICON_ARRAY.length ){
+ var _file = tree.getCurrentFile().getChildFileByIndex( i );
if( _file !== null && ( _file.getChildFileLength() !== -1 || _file.getType() === pettanr.file.FILE_TYPE.FOLDER)){
- tree.down( i);
- draw();
+ tree.down( i );
+ draw( w, h );
}
}
}
+ function onEditor( _file, _app ){
+ pettanr.view.show( _app, _file );
+ }
+ function onViwer( _file, _app ){
+ pettanr.view.show( _app, _file );
+ }
+ function onAction( _file ){
+
+ }
this.init = function(){
ELM_CONTAINER.appendChild( elmContainer);
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;
}
- function getFinderIcon( _file, _elmContainer, w, index, style, callback){
+
+ pettanr.view.registerAsBasicPane( FinderClass );
+
+ function getFinderIcon( _file, _elmContainer, w, index, style, onDown, onEditor, onViwer, onAction){
var _icon;
if( FINDER_ICON_POOL.length > 0){
_icon = FINDER_ICON_POOL.shift();
} else {
_icon = new FinderIconClass();
}
- _icon.init( _file, _elmContainer, w, index, style, callback);
+ _icon.init( _file, _elmContainer, w, index, style, onDown, onEditor, onViwer, onAction );
return _icon;
}
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),
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){
+ if( _type === pettanr.driver.FILE_TYPE.COMIC ){
+ return _data.title;
+ } else
+ if( _type === pettanr.driver.FILE_TYPE.ARTIST ){
return [ _data.id , ':', _data.name, '画伯' ].join( '');
} else
- if( _type === pettanr.driver.FILE_TYPE.AUTHOR){
+ 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( _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';
+ },
+ viewerApplicationList: 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;
+ if( _type === pettanr.driver.FILE_TYPE.PANEL ){
+ return [ pettanr.editor ];
+ }
+ if( _type === pettanr.driver.FILE_TYPE.COMIC ){
+ return [ pettanr.editor, pettanr.comicConsole ];
+ }
+ 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_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.ARTIST,
+ type: pettanr.file.FILE_TYPE.FOLDER,
children: [],
driver: Driver,
json: pettanr.CONST.URL_ORIGINAL_PICTURES_JSON
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_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_AUTHOR_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 buildFileData( _data, _parent ){
- var _type, _array,
- i, l;
+ var _array, i, l;
// Panel
- if( _parent.type === pettanr.driver.FILE_TYPE.COMIC || _parent === FILE_DATA_PANELS_ROOT ){
+ if( _parent === FILE_DATA_PANELS_ROOT ){
_data.type = pettanr.driver.FILE_TYPE.PANEL;
_array = PANEL_ARRAY;
} else
_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;
// original_license を含まなければ、license object を削除して ビットデータ で保持
// 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 {
+ alert( 'error' );
}
_data.driver = Driver;
} else {
_array[ _id ] = _data;
}
+ } else {
+ alert( 'error' );
}
// Author
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 );
/*
_data.children = [];
}
}
- var _author = _data.author;
+ 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
// Panel
if( _parent === FILE_DATA_PANELS_ROOT ){
- var _comic = _data.comic,
- _author = _data.author;
- if( _comic && _author ){
- _data.comic = _comic = buildFileData( _comic, FILE_DATA_COMICS_ROOT ),
- _data.author = _author = buildFileData( _author, FILE_DATA_AUTHOR_ROOT );
- addChildData( _comic, _data );
- addChildData( _author, _comic );
- _author.id === MyAuthorID && addChildData( FILE_DATA_MY_COMICS_ROOT, _comic );
- }
+ _data.comic = getResource( COMIC_ARRAY, _data.comic_id );
+ _data.author = getResource( AUTHOR_ARRAY, _data.author_id );
+
// picture data をファイルに取り出し
- var _elements = _data.panel_elements || [],
- _elm, _rpicID;
- 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); // 上記参照切れに備えてここで上書き
- }
- _rpicID = _elm.resource_picture_id - 1;
- if( _rpicID && RESOURCE_PICTURE_ARRAY[ _rpicID ]){
- _elm.resource_picture = RESOURCE_PICTURE_ARRAY[ _rpicID ];
- }
+ 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;
+ 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;
}
function addChildData( _parent, _child ){
}
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 ] = {};
+ }
+ return _data;
+ }
return {
createComicTree: function(){
createServiceTree: function(){
return pettanr.file.createTree( FILE_DATA_SERVICE_ROOT);
},
- isPettanrFileInstance: function( _file){
- if( pettanr.file.isPettanFileInstance( _file) === true){
+ isPettanrFileInstance: function( _file ){
+ if( pettanr.file.isFileInstance( _file ) === true){
var _data = FileAPI.getFileData( _file);
return _data !== null && _data.driver === Driver;
}
}
})();
+pettanr.entrance = pettanr.view.createApplication( function(){
+ this.displayName = 'Home';
+ this.rootElement = document.getElementById('entrance');
+ this.onOpen = function( _w, _h, _option ){
+ var pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
+ document.getElementById('inner-wrapper').style.height = ( _h - pageHeaderH ) + 'px';
+ }
+ this.onClose = function(){
+ document.getElementById('inner-wrapper').style.height = '0px';
+ }
+ this.onWindowResize = function( _w, _h){
+ pettanr.entrance.onOpen( _w, _h );
+ }
+});
+pettanr.view.registerApplication( pettanr.entrance, true );
-pettanr.gallery = ( function(){
+pettanr.cabinet = pettanr.view.createApplication( function(){
var finder,
- elmContainer = document.getElementById( 'gallery'),
- option;
+ elmContainer = document.getElementById( 'cabinet'),
+ option,
+ pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
- return {
- init: function( _option){
- option = _option;
- delete pettanr.gallery.init;
- },
- firstOpen: function(){
- finder = pettanr.finder.createFinder( elmContainer, pettanr.driver.createPictureTree());
- delete pettanr.gallery.firstOpen;
- },
- onOpen: function(){
- pettanr.gallery.firstOpen !== undefined && pettanr.gallery.firstOpen();
- finder.onOpen();
-
- },
- onClose: function(){
- finder.onClose();
- },
- onWindowResize: function( _w, _h){
- finder.onWindowResize( _w, _h);
- }
+ this.displayName = 'Comic list',
+ this.rootElement = elmContainer,
+ this.init = function( _option){
+ option = _option;
+ delete pettanr.cabinet.init;
}
-})();
+ this.onOpen = function( _w, _h, _option ){
+ finder = finder || pettanr.finder.createFinder( elmContainer, pettanr.driver.createComicTree());
+ finder.onOpen( _w, _h - pageHeaderH, _option );
+
+ }
+ this.onClose = function(){
+ finder.onClose();
+ }
+ this.onWindowResize = function( _w, _h){
+ finder.resize( _w, _h - pageHeaderH);
+ }
+});
+pettanr.view.registerApplication( pettanr.cabinet, true );
-pettanr.cabinet = ( function(){
+pettanr.gallery = pettanr.view.createApplication( function(){
var finder,
- elmContainer = document.getElementById( 'cabinet'),
- option;
+ elmContainer = document.getElementById( 'gallery' ),
+ option,
+ pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
+ this.displayName = 'Pictures';
+ this.rootElement = elmContainer;
+ this.init = function( _option){
+ option = _option;
+ delete pettanr.gallery.init;
+ }
+ this.onOpen = function( _w, _h, _option ){
+ finder = finder || pettanr.finder.createFinder( elmContainer, pettanr.driver.createPictureTree());
+ finder.onOpen( _w, _h - pageHeaderH, _option );
+ }
+ this.onClose = function(){
+ finder.onClose();
+ }
+ this.onWindowResize = function( _w, _h){
+ finder.resize( _w, _h - pageHeaderH );
+ }
+});
+pettanr.view.registerApplication( pettanr.gallery, true );
+
+pettanr.backyard = pettanr.view.createApplication( function(){
+ this.displayName = 'Settings';
+ this.rootElement = document.getElementById( 'backyard' );
+ this.onOpen = function( _w, _h, _option ){
+ }
+ this.onClose = function(){
+ }
+ this.onWindowResize = function( _w, _h){
+ }
+});
+pettanr.view.registerApplication( pettanr.backyard, true );
+
+if( pettanr.DEBUG === true){
+ pettanr.debug = pettanr.view.createApplication( function(){
+ var elmDl = document.getElementById( 'useragent'),
+ elmDt, elmDd,
+ data = {
+ pettanR: pettanr.version,
+ ua: navigator.userAgent,
+ platform: navigator.platform,
+ appVersion: navigator.appVersion,
+ appCodeName:navigator.appCodeName,
+ appName: navigator.appName,
+ language: navigator.browserLanguage || navigator.language,
+ ActiveX: pettanr.ua.ACTIVEX
+ },
+ ua = pettanr.ua;
+ if( ua.IE){
+ //data.ua = 'Internet Explorer';
+ data.version = ua.IE;
+ if( ua.ieVersion >= 8) data.RenderingVersion = ua.ieRenderingVersion;
+ data.browserType = ua.STANDALONE === true ? 'Standalone' : 'bundle';
+ if( ua.ieVersion < 9) {
+ data.vml = ua.VML;
+ } else {
+ data.svg = ua.SVG;
+ }
+ }
+ data.RenderingMode = ua.isStanderdMode === true ? 'Standerd' : 'Quirks';
- return {
- init: function( _option){
- option = _option;
- delete pettanr.cabinet.init;
- },
- firstOpen: function(){
- finder = pettanr.finder.createFinder( elmContainer, pettanr.driver.createComicTree());
- delete pettanr.cabinet.firstOpen;
- },
- onOpen: function(){
- pettanr.cabinet.firstOpen !== undefined && pettanr.cabinet.firstOpen();
- finder.onOpen();
-
- },
- onClose: function(){
- finder.onClose();
- },
- onWindowResize: function( _w, _h){
- finder.onWindowResize( _w, _h);
+ for( var key in data){
+ elmDt = document.createElement( 'dt');
+ elmDt.innerHTML = key;
+ elmDd = document.createElement( 'dd');
+ elmDd.innerHTML = '' + data[ key];
+ if( !data[ key]) elmDd.style.color = 'red';
+ elmDl.appendChild( elmDt);
+ elmDl.appendChild( elmDd);
+ }
+ this.displayName = 'Debug';
+ this.rootElement = document.getElementById( 'debug' );
+ this.onOpen = function( _w, _h, _option ){
+ var pageHeaderH = pettanr.util.getElementSize( document.getElementById('header') ).height;
+ document.getElementById('inner-wrapper').style.height = ( _h - pageHeaderH ) + 'px';
}
+ this.onClose = function(){
+ document.getElementById('inner-wrapper').style.height = '0px';
+ }
+ this.onWindowResize = function( _w, _h){
+ pettanr.debug.onOpen( _w, _h );
+ }
+ });
+ pettanr.view.registerApplication( pettanr.debug, true );
+
+} else {
+ var _debug = document.getElementById( 'debug');
+ if( _debug){
+ pettanr.util.removeAllChildren( _debug);
+ _debug.parentNode.removeChild( _debug);
+ _debug = null;
}
-})();
+}
// i18n
// login
pettanr.fn( pettanr.comicConsole);
pettanr.fn( pettanr.uploadConsole);
pettanr.fn( pettanr.panelConsole);
+pettanr.fn( pettanr.artistConsole);
pettanr.fn( pettanr.file);
pettanr.fn( pettanr.finder);