|
@@ -3,8 +3,6 @@
|
|
|
Caller must:
|
|
Caller must:
|
|
|
- call initSegChronoComponent
|
|
- call initSegChronoComponent
|
|
|
- implement componentFootprintToSegs
|
|
- implement componentFootprintToSegs
|
|
|
-- implement renderFgSegs
|
|
|
|
|
-- implement unrenderFgSegs
|
|
|
|
|
|
|
|
|
|
This mixin can depend on ChronoComponent:
|
|
This mixin can depend on ChronoComponent:
|
|
|
- opt
|
|
- opt
|
|
@@ -17,11 +15,13 @@ var SegChronoComponentMixin = {
|
|
|
eventRendererClass: EventRenderer,
|
|
eventRendererClass: EventRenderer,
|
|
|
businessHourRendererClass: null,
|
|
businessHourRendererClass: null,
|
|
|
|
|
|
|
|
- segs: null, // the *event* segments currently rendered in the grid. TODO: rename to `eventSegs`
|
|
|
|
|
eventRenderer: null,
|
|
eventRenderer: null,
|
|
|
businessHourRenderer: null,
|
|
businessHourRenderer: null,
|
|
|
fillSystem: null,
|
|
fillSystem: null,
|
|
|
|
|
|
|
|
|
|
+ bgSegs: null,
|
|
|
|
|
+ fgSegs: null,
|
|
|
|
|
+
|
|
|
|
|
|
|
|
initSegChronoComponent: function() {
|
|
initSegChronoComponent: function() {
|
|
|
this.eventRenderer = new this.eventRendererClass(this);
|
|
this.eventRenderer = new this.eventRendererClass(this);
|
|
@@ -34,94 +34,66 @@ var SegChronoComponentMixin = {
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
- renderEventsPayload: function(eventsPayload) {
|
|
|
|
|
- var view = this._getView();
|
|
|
|
|
- var id, eventInstanceGroup;
|
|
|
|
|
- var eventRenderRanges;
|
|
|
|
|
- var eventFootprints;
|
|
|
|
|
- var eventSegs;
|
|
|
|
|
- var bgSegs = [];
|
|
|
|
|
- var fgSegs = [];
|
|
|
|
|
|
|
+ // Event Rendering
|
|
|
|
|
+ // ---------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
- for (id in eventsPayload) {
|
|
|
|
|
- eventInstanceGroup = eventsPayload[id];
|
|
|
|
|
|
|
|
|
|
- eventRenderRanges = eventInstanceGroup.sliceRenderRanges(view.activeUnzonedRange);
|
|
|
|
|
- eventFootprints = this.eventRangesToEventFootprints(eventRenderRanges);
|
|
|
|
|
- eventSegs = this.eventFootprintsToSegs(eventFootprints);
|
|
|
|
|
|
|
+ renderFgEventFootprints: function(eventFootprints) {
|
|
|
|
|
+ var segs = this.eventFootprintsToSegs(eventFootprints);
|
|
|
|
|
|
|
|
- if (eventInstanceGroup.getEventDef().hasBgRendering()) {
|
|
|
|
|
- bgSegs.push.apply(bgSegs, // append
|
|
|
|
|
- eventSegs
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- fgSegs.push.apply(fgSegs, // append
|
|
|
|
|
- eventSegs
|
|
|
|
|
- );
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- this.segs = [].concat( // record all segs
|
|
|
|
|
- this.renderBgSegs(bgSegs) || bgSegs,
|
|
|
|
|
- this.renderFgSegs(fgSegs) || fgSegs
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ this.fgSegs = this.renderFgEventSegs(segs) || segs;
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
- // Unrenders all events currently rendered on the grid
|
|
|
|
|
- unrenderEvents: function() {
|
|
|
|
|
-
|
|
|
|
|
- // ensure a mouseout on the manipulated event has been reported
|
|
|
|
|
- // TODO: okay to call this?
|
|
|
|
|
- this.eventPointing.handleMouseout();
|
|
|
|
|
|
|
+ renderBgEventFootprints: function(eventFootprints) {
|
|
|
|
|
+ var segs = this.eventFootprintsToSegs(eventFootprints);
|
|
|
|
|
|
|
|
- this.unrenderFgSegs();
|
|
|
|
|
- this.unrenderBgSegs();
|
|
|
|
|
-
|
|
|
|
|
- this.segs = null;
|
|
|
|
|
|
|
+ this.bgSegs = this.renderBgEventSegs(segs) || segs;
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
- // Retrieves all rendered segment objects currently rendered on the grid
|
|
|
|
|
- getEventSegs: function() {
|
|
|
|
|
- return this.segs || [];
|
|
|
|
|
|
|
+ unrenderFgEventFootprints: function() {
|
|
|
|
|
+ this.unrenderFgEventSegs();
|
|
|
|
|
+ this.fgSegs = null;
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
- // Foreground Segment Rendering
|
|
|
|
|
- // ---------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
+ unrenderBgEventFootprints: function() {
|
|
|
|
|
+ this.unrenderBgEventSegs();
|
|
|
|
|
+ this.bgSegs = null;
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
|
|
|
|
|
// Renders foreground event segments onto the grid. May return a subset of segs that were rendered.
|
|
// Renders foreground event segments onto the grid. May return a subset of segs that were rendered.
|
|
|
- renderFgSegs: function(segs) {
|
|
|
|
|
|
|
+ renderFgEventSegs: function(segs) {
|
|
|
return this.eventRenderer.renderFgSegs(segs);
|
|
return this.eventRenderer.renderFgSegs(segs);
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
// Unrenders all currently rendered foreground segments
|
|
// Unrenders all currently rendered foreground segments
|
|
|
- unrenderFgSegs: function() {
|
|
|
|
|
|
|
+ unrenderFgEventSegs: function() {
|
|
|
this.eventRenderer.unrenderFgSegs();
|
|
this.eventRenderer.unrenderFgSegs();
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
- /* Background Segment Rendering
|
|
|
|
|
- ------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
// Renders the given background event segments onto the grid.
|
|
// Renders the given background event segments onto the grid.
|
|
|
// Returns a subset of the segs that were actually rendered.
|
|
// Returns a subset of the segs that were actually rendered.
|
|
|
- renderBgSegs: function(segs) {
|
|
|
|
|
|
|
+ renderBgEventSegs: function(segs) {
|
|
|
return this.fillSystem.render('bgEvent', segs);
|
|
return this.fillSystem.render('bgEvent', segs);
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
// Unrenders all the currently rendered background event segments
|
|
// Unrenders all the currently rendered background event segments
|
|
|
- unrenderBgSegs: function() {
|
|
|
|
|
|
|
+ unrenderBgEventSegs: function() {
|
|
|
this.fillSystem.unrender('bgEvent');
|
|
this.fillSystem.unrender('bgEvent');
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ getEventSegs: function() {
|
|
|
|
|
+ return (this.bgSegs || []).concat(this.fgSegs || []);
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/* Business Hours
|
|
/* Business Hours
|
|
|
------------------------------------------------------------------------------------------------------------------*/
|
|
------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
|
|