mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-30 02:40:08 +00:00
refactored meta-features...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
61791ebb1d
commit
ee07308ed5
@ -9,6 +9,9 @@ console.log('>>> features')
|
|||||||
|
|
||||||
//var DEBUG = DEBUG != null ? DEBUG : true
|
//var DEBUG = DEBUG != null ? DEBUG : true
|
||||||
|
|
||||||
|
actions = require('lib/actions')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
//
|
//
|
||||||
@ -145,19 +148,75 @@ module.FeatureProto = {
|
|||||||
|
|
||||||
|
|
||||||
// XXX is hard-coded default feature-set a good way to go???
|
// XXX is hard-coded default feature-set a good way to go???
|
||||||
|
//
|
||||||
|
// Feature(obj)
|
||||||
|
// -> feature
|
||||||
|
//
|
||||||
|
// Feature(feature-set, obj)
|
||||||
|
// -> feature
|
||||||
|
//
|
||||||
|
// Feature(tag, obj)
|
||||||
|
// -> feature
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Feature(tag, actions)
|
||||||
|
// -> feature
|
||||||
|
//
|
||||||
|
// Feature(feature-set, tag, actions)
|
||||||
|
// -> feature
|
||||||
|
//
|
||||||
var Feature =
|
var Feature =
|
||||||
module.Feature =
|
module.Feature =
|
||||||
function Feature(feature_set, obj){
|
function Feature(feature_set, tag, obj){
|
||||||
if(obj == null){
|
if(arguments.length == 2){
|
||||||
obj = feature_set
|
// Feature(<tag>, <obj>)
|
||||||
// XXX is this a good default???
|
if(typeof(feature_set) == typeof('str')){
|
||||||
feature_set = Features
|
obj = tag
|
||||||
|
tag = feature_set
|
||||||
|
feature_set = Features
|
||||||
|
|
||||||
} else if(feature_set == null){
|
// Feature(<feature-set>, <obj>)
|
||||||
|
} else {
|
||||||
|
obj = tag
|
||||||
|
tag = null
|
||||||
|
}
|
||||||
|
|
||||||
|
// Feature(<obj>)
|
||||||
|
} else if(arguments.length == 1){
|
||||||
|
obj = feature_set
|
||||||
feature_set = Features
|
feature_set = Features
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.__proto__ = FeatureProto
|
if(tag != null && obj.tag != null && obj.tag != tag){
|
||||||
|
throw 'Error: tag and obj.tag mismatch, either use one or both must match.'
|
||||||
|
}
|
||||||
|
|
||||||
|
// action...
|
||||||
|
if(obj instanceof actions.Action){
|
||||||
|
if(tag == null){
|
||||||
|
throw 'Error: need a tag to make a feature out of an action'
|
||||||
|
}
|
||||||
|
var f = {
|
||||||
|
tag: tag,
|
||||||
|
actions: obj,
|
||||||
|
}
|
||||||
|
obj = f
|
||||||
|
|
||||||
|
// meta-feature...
|
||||||
|
} else if(obj.constructor === Array){
|
||||||
|
if(tag == null){
|
||||||
|
throw 'Error: need a tag to make a meta-feature'
|
||||||
|
}
|
||||||
|
var f = {
|
||||||
|
tag: tag,
|
||||||
|
suggested: obj,
|
||||||
|
}
|
||||||
|
obj = f
|
||||||
|
|
||||||
|
// feature...
|
||||||
|
} else {
|
||||||
|
obj.__proto__ = FeatureProto
|
||||||
|
}
|
||||||
|
|
||||||
if(feature_set){
|
if(feature_set){
|
||||||
feature_set[obj.tag] = obj
|
feature_set[obj.tag] = obj
|
||||||
@ -169,20 +228,6 @@ Feature.prototype = FeatureProto
|
|||||||
Feature.prototype.constructor = Feature
|
Feature.prototype.constructor = Feature
|
||||||
|
|
||||||
|
|
||||||
var MetaFeature
|
|
||||||
module.MetaFeature = function(feature_set, tag, list){
|
|
||||||
if(list == null){
|
|
||||||
list = tag
|
|
||||||
tag = feature_set
|
|
||||||
feature_set = null
|
|
||||||
}
|
|
||||||
return Feature(feature_set, {
|
|
||||||
tag: tag,
|
|
||||||
suggested: list,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var FeatureSet =
|
var FeatureSet =
|
||||||
module.FeatureSet = {
|
module.FeatureSet = {
|
||||||
// Build feature list...
|
// Build feature list...
|
||||||
|
|||||||
@ -2389,7 +2389,7 @@ module.FileSystemLoader = features.Feature(ImageGridFeatures, {
|
|||||||
// - editor - editing capability
|
// - editor - editing capability
|
||||||
//
|
//
|
||||||
|
|
||||||
features.MetaFeature(ImageGridFeatures, 'viewer-testing', [
|
features.Feature(ImageGridFeatures, 'viewer-testing', [
|
||||||
// features...
|
// features...
|
||||||
'ui-ribbon-align-to-order',
|
'ui-ribbon-align-to-order',
|
||||||
'ui-single-image-view',
|
'ui-single-image-view',
|
||||||
@ -2415,12 +2415,12 @@ features.MetaFeature(ImageGridFeatures, 'viewer-testing', [
|
|||||||
//'auto-single-image',
|
//'auto-single-image',
|
||||||
])
|
])
|
||||||
|
|
||||||
features.MetaFeature(ImageGridFeatures, 'commandline', [
|
features.Feature(ImageGridFeatures, 'commandline', [
|
||||||
'image-marks',
|
'image-marks',
|
||||||
'image-bookmarks',
|
'image-bookmarks',
|
||||||
])
|
])
|
||||||
|
|
||||||
features.MetaFeature(ImageGridFeatures, 'viewer-minimal', [
|
features.Feature(ImageGridFeatures, 'viewer-minimal', [
|
||||||
'ui-ribbon-align-to-order',
|
'ui-ribbon-align-to-order',
|
||||||
'ui-animation',
|
'ui-animation',
|
||||||
'ui-bounds-indicators',
|
'ui-bounds-indicators',
|
||||||
@ -2429,11 +2429,11 @@ features.MetaFeature(ImageGridFeatures, 'viewer-minimal', [
|
|||||||
//'ui-current-image-indicator-hide-on-screen-nav',
|
//'ui-current-image-indicator-hide-on-screen-nav',
|
||||||
])
|
])
|
||||||
|
|
||||||
features.MetaFeature(ImageGridFeatures, 'viewer', [
|
features.Feature(ImageGridFeatures, 'viewer', [
|
||||||
'viewer-minimal',
|
'viewer-minimal',
|
||||||
])
|
])
|
||||||
|
|
||||||
features.MetaFeature(ImageGridFeatures, 'viewer-partial', [
|
features.Feature(ImageGridFeatures, 'viewer-partial', [
|
||||||
'viewer',
|
'viewer',
|
||||||
'ui-partial-ribbons',
|
'ui-partial-ribbons',
|
||||||
])
|
])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user