mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 18:30:09 +00:00
finished up the .join(..) method, still needs testing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
e6d4afe1cd
commit
b12703cfba
96
ui/data4.js
96
ui/data4.js
@ -175,6 +175,7 @@ var DataPrototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************** Introspection ***/
|
/*********************************************** Introspection ***/
|
||||||
|
|
||||||
// Get image
|
// Get image
|
||||||
@ -218,8 +219,6 @@ var DataPrototype = {
|
|||||||
// .getImage(gid|order, offset[, list|ribbon])
|
// .getImage(gid|order, offset[, list|ribbon])
|
||||||
// -> gid if the image at offset from current
|
// -> gid if the image at offset from current
|
||||||
// -> null if there is no image at that offset
|
// -> null if there is no image at that offset
|
||||||
// NOTE: the 'relative' string is required as there is no way to
|
|
||||||
// destinguish between order and offset...
|
|
||||||
//
|
//
|
||||||
// NOTE: If gid|order is not given, current image is assumed.
|
// NOTE: If gid|order is not given, current image is assumed.
|
||||||
// Similarly, if list|ribbon is not given then the current
|
// Similarly, if list|ribbon is not given then the current
|
||||||
@ -484,8 +483,12 @@ var DataPrototype = {
|
|||||||
// Get ribbon...
|
// Get ribbon...
|
||||||
//
|
//
|
||||||
// .getRibbon()
|
// .getRibbon()
|
||||||
|
// .getRibbon('current')
|
||||||
// -> current ribbon gid
|
// -> current ribbon gid
|
||||||
//
|
//
|
||||||
|
// .getRibbon('base')
|
||||||
|
// -> base ribbon gid
|
||||||
|
//
|
||||||
// .getRibbon(ribbon|order|gid)
|
// .getRibbon(ribbon|order|gid)
|
||||||
// -> ribbon gid
|
// -> ribbon gid
|
||||||
// -> null -- invalid target
|
// -> null -- invalid target
|
||||||
@ -507,6 +510,13 @@ var DataPrototype = {
|
|||||||
offset = offset == 'before' ? -1 : offset
|
offset = offset == 'before' ? -1 : offset
|
||||||
offset = offset == 'after' ? 1 : offset
|
offset = offset == 'after' ? 1 : offset
|
||||||
|
|
||||||
|
// special keywords...
|
||||||
|
if(target == 'base'){
|
||||||
|
return this.base
|
||||||
|
} else if(target == 'current'){
|
||||||
|
target = this.current
|
||||||
|
}
|
||||||
|
|
||||||
var ribbons = this.ribbons
|
var ribbons = this.ribbons
|
||||||
var o
|
var o
|
||||||
|
|
||||||
@ -551,6 +561,8 @@ var DataPrototype = {
|
|||||||
|
|
||||||
/******************************************************** Edit ***/
|
/******************************************************** Edit ***/
|
||||||
|
|
||||||
|
// Focus an image -- make it current...
|
||||||
|
//
|
||||||
// This is signature compatible with .getImage(..), see it for more
|
// This is signature compatible with .getImage(..), see it for more
|
||||||
// info...
|
// info...
|
||||||
//
|
//
|
||||||
@ -571,6 +583,8 @@ var DataPrototype = {
|
|||||||
return this
|
return this
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Set base ribbon...
|
||||||
|
//
|
||||||
// This is signature compatible with .getRibbon(..), see it for more
|
// This is signature compatible with .getRibbon(..), see it for more
|
||||||
// info...
|
// info...
|
||||||
setBase: function(target, offset){
|
setBase: function(target, offset){
|
||||||
@ -776,24 +790,84 @@ var DataPrototype = {
|
|||||||
return res
|
return res
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Join data objects...
|
||||||
|
//
|
||||||
|
// .join(data, ..)
|
||||||
|
// .join([ data, .. ])
|
||||||
|
// -> this
|
||||||
|
//
|
||||||
|
// .join(align, data, ..)
|
||||||
|
// .join(align, [ data, .. ])
|
||||||
|
// -> this
|
||||||
|
//
|
||||||
|
//
|
||||||
// align can be:
|
// align can be:
|
||||||
// 'gid'
|
// 'base' (default)
|
||||||
// 'base'
|
|
||||||
// 'top'
|
// 'top'
|
||||||
// 'bottom'
|
// 'bottom'
|
||||||
//
|
//
|
||||||
// NOTE: this will merge the items into the first list element...
|
// NOTE: data can be both a list of arguments or an array.
|
||||||
|
// NOTE: this will merge the items in-place, if it is needed to
|
||||||
|
// keep the original intact, just .clone() it...
|
||||||
//
|
//
|
||||||
// XXX should this join to this or create a new data???
|
|
||||||
// XXX test
|
// XXX test
|
||||||
join: function(data, align){
|
join: function(){
|
||||||
var res = data.pop()
|
var args = Array.apply(null, arguments)
|
||||||
|
var align = typeof(args[0]) == typeof('str') ? args.splice(0, 1)[0] : 'base'
|
||||||
|
args = args[0].constructor.name == 'Array' ? args[0] : args
|
||||||
|
|
||||||
data.forEach(function(d){
|
var base = this
|
||||||
|
|
||||||
|
args.forEach(function(data){
|
||||||
|
// calculate align offset...
|
||||||
|
if(align == 'base'){
|
||||||
|
var d = base.getRibbonOrder('base') - data.getRibbonOrder('base')
|
||||||
|
|
||||||
|
} else if(align == 'top'){
|
||||||
|
var d = 0
|
||||||
|
|
||||||
|
} else if(align == 'bottom'){
|
||||||
|
var d = base.ribbon_order.length - data.ribbon_order.length
|
||||||
|
}
|
||||||
|
|
||||||
|
var t = 0
|
||||||
|
|
||||||
|
// merge ribbons...
|
||||||
|
for(var i=0; i < data.ribbon_order.length; i++){
|
||||||
|
var g = data.ribbon_order[i]
|
||||||
|
var r = data.ribbons[g]
|
||||||
|
|
||||||
|
// push the new ribbon just before the base...
|
||||||
|
if(d < 0){
|
||||||
|
// see if g is unique...
|
||||||
|
if(g in base.ribbons || base.order.indexOf(g) >= 0){
|
||||||
|
g = base.newGid('R')
|
||||||
|
}
|
||||||
|
base.ribbon_order.splice(t, 0, g)
|
||||||
|
base.ribbons[g] = r
|
||||||
|
t += 1
|
||||||
|
d -= 1
|
||||||
|
|
||||||
|
// append ribbons...
|
||||||
|
} else if(d < base.ribbon_order.length){
|
||||||
|
var tg = base.ribbon_order[d]
|
||||||
|
base.ribbons[tg].concat(r)
|
||||||
|
|
||||||
|
// push the new ribbon to the end...
|
||||||
|
} else {
|
||||||
|
// see if g is unique...
|
||||||
|
if(g in base.ribbons || base.order.indexOf(g) >= 0){
|
||||||
|
g = base.newGid('R')
|
||||||
|
}
|
||||||
|
base.ribbon_order.push(g)
|
||||||
|
base.ribbons[g] = r
|
||||||
|
}
|
||||||
|
|
||||||
|
d += 1
|
||||||
|
}
|
||||||
})
|
})
|
||||||
// XXX
|
|
||||||
|
|
||||||
return res
|
return base
|
||||||
},
|
},
|
||||||
|
|
||||||
// NOTE: this may result in empty ribbons...
|
// NOTE: this may result in empty ribbons...
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user