mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 10:20: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
|
||||
|
||||
actions = require('lib/actions')
|
||||
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
//
|
||||
@ -145,19 +148,75 @@ module.FeatureProto = {
|
||||
|
||||
|
||||
// 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 =
|
||||
module.Feature =
|
||||
function Feature(feature_set, obj){
|
||||
if(obj == null){
|
||||
obj = feature_set
|
||||
// XXX is this a good default???
|
||||
feature_set = Features
|
||||
function Feature(feature_set, tag, obj){
|
||||
if(arguments.length == 2){
|
||||
// Feature(<tag>, <obj>)
|
||||
if(typeof(feature_set) == typeof('str')){
|
||||
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
|
||||
}
|
||||
|
||||
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){
|
||||
feature_set[obj.tag] = obj
|
||||
@ -169,20 +228,6 @@ Feature.prototype = FeatureProto
|
||||
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 =
|
||||
module.FeatureSet = {
|
||||
// Build feature list...
|
||||
|
||||
@ -2389,7 +2389,7 @@ module.FileSystemLoader = features.Feature(ImageGridFeatures, {
|
||||
// - editor - editing capability
|
||||
//
|
||||
|
||||
features.MetaFeature(ImageGridFeatures, 'viewer-testing', [
|
||||
features.Feature(ImageGridFeatures, 'viewer-testing', [
|
||||
// features...
|
||||
'ui-ribbon-align-to-order',
|
||||
'ui-single-image-view',
|
||||
@ -2415,12 +2415,12 @@ features.MetaFeature(ImageGridFeatures, 'viewer-testing', [
|
||||
//'auto-single-image',
|
||||
])
|
||||
|
||||
features.MetaFeature(ImageGridFeatures, 'commandline', [
|
||||
features.Feature(ImageGridFeatures, 'commandline', [
|
||||
'image-marks',
|
||||
'image-bookmarks',
|
||||
])
|
||||
|
||||
features.MetaFeature(ImageGridFeatures, 'viewer-minimal', [
|
||||
features.Feature(ImageGridFeatures, 'viewer-minimal', [
|
||||
'ui-ribbon-align-to-order',
|
||||
'ui-animation',
|
||||
'ui-bounds-indicators',
|
||||
@ -2429,11 +2429,11 @@ features.MetaFeature(ImageGridFeatures, 'viewer-minimal', [
|
||||
//'ui-current-image-indicator-hide-on-screen-nav',
|
||||
])
|
||||
|
||||
features.MetaFeature(ImageGridFeatures, 'viewer', [
|
||||
features.Feature(ImageGridFeatures, 'viewer', [
|
||||
'viewer-minimal',
|
||||
])
|
||||
|
||||
features.MetaFeature(ImageGridFeatures, 'viewer-partial', [
|
||||
features.Feature(ImageGridFeatures, 'viewer-partial', [
|
||||
'viewer',
|
||||
'ui-partial-ribbons',
|
||||
])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user