mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +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