mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +00:00 
			
		
		
		
	added ribbon shifting to data4.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									f889ae9326
								
							
						
					
					
						commit
						0515cf6fca
					
				
							
								
								
									
										85
									
								
								ui/data4.js
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								ui/data4.js
									
									
									
									
									
								
							| @ -71,9 +71,13 @@ | |||||||
| // 		results eventually formed Gen3...
 | // 		results eventually formed Gen3...
 | ||||||
| //
 | //
 | ||||||
| //
 | //
 | ||||||
| 
 | /*********************************************************************/ | ||||||
| 
 | //
 | ||||||
| 
 | // TODO save current crop/state as JSON (named)...
 | ||||||
|  | // TODO save current order (named)...
 | ||||||
|  | // TODO auto-save manual sort -- on re-sort...
 | ||||||
|  | //
 | ||||||
|  | //
 | ||||||
| /*********************************************************************/ | /*********************************************************************/ | ||||||
| 
 | 
 | ||||||
| // Data class methods and API...
 | // Data class methods and API...
 | ||||||
| @ -797,7 +801,7 @@ var DataPrototype = { | |||||||
| 
 | 
 | ||||||
| 	// Shift image...
 | 	// Shift image...
 | ||||||
| 	//
 | 	//
 | ||||||
| 	//	Shift umage to target position:
 | 	//	Shift image to target position:
 | ||||||
| 	//	.shiftImage(from, gid|order|ribbon)
 | 	//	.shiftImage(from, gid|order|ribbon)
 | ||||||
| 	//	.shiftImage(from, gid|order|ribbon, 'before')
 | 	//	.shiftImage(from, gid|order|ribbon, 'before')
 | ||||||
| 	//	.shiftImage(from, gid|order|ribbon, 'after')
 | 	//	.shiftImage(from, gid|order|ribbon, 'after')
 | ||||||
| @ -810,8 +814,14 @@ var DataPrototype = { | |||||||
| 	//
 | 	//
 | ||||||
| 	// order is expected to be ribbon order.
 | 	// order is expected to be ribbon order.
 | ||||||
| 	//
 | 	//
 | ||||||
| 	// from must be a .getImage(..) compatible object. usually an image
 | 	// from must be:
 | ||||||
| 	// gid, order, or null, see .getImage(..) for more info.
 | 	// 	- a .getImage(..) compatible object. usually an image gid, order,
 | ||||||
|  | 	// 	  or null, see .getImage(..) for more info.
 | ||||||
|  | 	// 	- a list of .getImage(..) compatible objects.
 | ||||||
|  | 	//
 | ||||||
|  | 	// When shifting a set of gids horizontally this will pack them 
 | ||||||
|  | 	// together in order.
 | ||||||
|  | 	//
 | ||||||
| 	//
 | 	//
 | ||||||
| 	// NOTE: this will not create new ribbons.
 | 	// NOTE: this will not create new ribbons.
 | ||||||
| 	// NOTE: .getImage(..) defaults to 'before' thus this to defaults
 | 	// NOTE: .getImage(..) defaults to 'before' thus this to defaults
 | ||||||
| @ -824,6 +834,7 @@ var DataPrototype = { | |||||||
| 	// 			do we create new ribbons and round???
 | 	// 			do we create new ribbons and round???
 | ||||||
| 	// XXX when shifting groups of images we are using the first as a 
 | 	// XXX when shifting groups of images we are using the first as a 
 | ||||||
| 	// 		base, should we use last as a base for right shifting???
 | 	// 		base, should we use last as a base for right shifting???
 | ||||||
|  | 	// 		...another way to go could be using current as a reference
 | ||||||
| 	// XXX process from as a list of gids...
 | 	// XXX process from as a list of gids...
 | ||||||
| 	// XXX test vertical..
 | 	// XXX test vertical..
 | ||||||
| 	shiftImage: function(from, target, mode){ | 	shiftImage: function(from, target, mode){ | ||||||
| @ -874,7 +885,7 @@ var DataPrototype = { | |||||||
| 		var from_ribbon = this.getRibbon(first) | 		var from_ribbon = this.getRibbon(first) | ||||||
| 
 | 
 | ||||||
| 		// do vertical shift...
 | 		// do vertical shift...
 | ||||||
| 		// XXX do we create new ribbons here???
 | 		// NOTE: image order here is not changed...
 | ||||||
| 		if(ribbon != from_ribbon || from.length > 1){ | 		if(ribbon != from_ribbon || from.length > 1){ | ||||||
| 			var that = this | 			var that = this | ||||||
| 			from.forEach(function(e){ | 			from.forEach(function(e){ | ||||||
| @ -887,6 +898,7 @@ var DataPrototype = { | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// do horizontal shift...
 | 		// do horizontal shift...
 | ||||||
|  | 		// NOTE: images are packed horizontally together...
 | ||||||
| 		if(f != t){ | 		if(f != t){ | ||||||
| 			for(var i=0; i<from.length; i++){ | 			for(var i=0; i<from.length; i++){ | ||||||
| 				f = order.indexOf(from[i]) | 				f = order.indexOf(from[i]) | ||||||
| @ -913,21 +925,68 @@ var DataPrototype = { | |||||||
| 	// XXX should this be here??
 | 	// XXX should this be here??
 | ||||||
| 	shiftImageLeft: function(gid){ return this.shiftImage(gid, -1, 'offset') }, | 	shiftImageLeft: function(gid){ return this.shiftImage(gid, -1, 'offset') }, | ||||||
| 	shiftImageRight: function(gid){ return this.shiftImage(gid, 1, 'offset') }, | 	shiftImageRight: function(gid){ return this.shiftImage(gid, 1, 'offset') }, | ||||||
|  | 	// XXX test...
 | ||||||
| 	shiftImageUp: function(gid){  | 	shiftImageUp: function(gid){  | ||||||
|  | 		var g = gid.constructor.name == 'Array' ? gid[0] : gid | ||||||
| 		// check if we need to create a ribbon here...
 | 		// check if we need to create a ribbon here...
 | ||||||
| 		if(this.getRibbonOrder(gid) == 0){ | 		if(this.getRibbonOrder(g) == 0){ | ||||||
| 			this.newRibbon(gid) | 			this.newRibbon(g) | ||||||
| 		} | 		} | ||||||
| 		return this.shiftImage(gid, this.getRibbonOrder(gid)-1)  | 		return this.shiftImage(gid, this.getRibbonOrder(g)-1)  | ||||||
| 	}, | 	}, | ||||||
|  | 	// XXX test...
 | ||||||
| 	shiftImageDown: function(gid){  | 	shiftImageDown: function(gid){  | ||||||
|  | 		var g = gid.constructor.name == 'Array' ? gid[0] : gid | ||||||
| 		// check if we need to create a ribbon here...
 | 		// check if we need to create a ribbon here...
 | ||||||
| 		if(this.getRibbonOrder(gid) == this.ribbon_order.length-1){ | 		if(this.getRibbonOrder(g) == this.ribbon_order.length-1){ | ||||||
| 			this.newRibbon(gid, 'below') | 			this.newRibbon(g, 'below') | ||||||
| 		} | 		} | ||||||
| 		return this.shiftImage(gid, this.getRibbonOrder(gid)+1)  | 		return this.shiftImage(gid, this.getRibbonOrder(g)+1)  | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
|  | 	// Shift ribbon vertically...
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Shift ribbon to position...
 | ||||||
|  | 	// 	.shiftRibbon(gid, gid)
 | ||||||
|  | 	// 	.shiftRibbon(gid, gid, 'before')
 | ||||||
|  | 	// 	.shiftRibbon(gid, gid, 'after')
 | ||||||
|  | 	// 		-> data
 | ||||||
|  | 	// 		NOTE: 'before' is default.
 | ||||||
|  | 	//
 | ||||||
|  | 	// 	Shift ribbon by offset...
 | ||||||
|  | 	// 	.shiftRibbon(gid, offset, 'offset')
 | ||||||
|  | 	// 		-> data
 | ||||||
|  | 	//
 | ||||||
|  | 	//
 | ||||||
|  | 	// XXX test...
 | ||||||
|  | 	shiftRibbon: function(gid, to, mode){ | ||||||
|  | 		var i = this.getRibbonOrder(gid) | ||||||
|  | 
 | ||||||
|  | 		// to is an offset...
 | ||||||
|  | 		if(mode == 'offset'){ | ||||||
|  | 			to = i + to | ||||||
|  | 
 | ||||||
|  | 		// to is a gid...
 | ||||||
|  | 		} else { | ||||||
|  | 			to = this.getRibbonOrder(to) | ||||||
|  | 			if(mode == 'after'){ | ||||||
|  | 				to += 1 | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// normalize to...
 | ||||||
|  | 		to = Math.max(0, Math.min(this.ribbon_order.length-1, to)) | ||||||
|  | 
 | ||||||
|  | 		this.ribbon_order.splice(to, 0, this.ribbon_order.splice(i, 1)[0]) | ||||||
|  | 
 | ||||||
|  | 		return this | ||||||
|  | 	}, | ||||||
|  | 
 | ||||||
|  | 	// Shorthand actions...
 | ||||||
|  | 	//
 | ||||||
|  | 	shiftRibbonUp: function(gid){ return this.shiftRibbon(gid, -1, 'offset') }, | ||||||
|  | 	shiftRibbonDown: function(gid){ return this.shiftRibbon(gid, 1, 'offset') }, | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	/********************************************* Data-level edit ***/ | 	/********************************************* Data-level edit ***/ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user