亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? overview-painter.js

?? javascript實現的關于時間線的簡單例子。
?? JS
字號:
/*==================================================
 *  Overview Event Painter
 *==================================================
 */

Timeline.OverviewEventPainter = function(params) {
    this._params = params;
    this._onSelectListeners = [];
    
    this._filterMatcher = null;
    this._highlightMatcher = null;
};

Timeline.OverviewEventPainter.prototype.initialize = function(band, timeline) {
    this._band = band;
    this._timeline = timeline;
    
    this._eventLayer = null;
    this._highlightLayer = null;
};

Timeline.OverviewEventPainter.prototype.getType = function() {
    return 'overview';
};

Timeline.OverviewEventPainter.prototype.addOnSelectListener = function(listener) {
    this._onSelectListeners.push(listener);
};

Timeline.OverviewEventPainter.prototype.removeOnSelectListener = function(listener) {
    for (var i = 0; i < this._onSelectListeners.length; i++) {
        if (this._onSelectListeners[i] == listener) {
            this._onSelectListeners.splice(i, 1);
            break;
        }
    }
};

Timeline.OverviewEventPainter.prototype.getFilterMatcher = function() {
    return this._filterMatcher;
};

Timeline.OverviewEventPainter.prototype.setFilterMatcher = function(filterMatcher) {
    this._filterMatcher = filterMatcher;
};

Timeline.OverviewEventPainter.prototype.getHighlightMatcher = function() {
    return this._highlightMatcher;
};

Timeline.OverviewEventPainter.prototype.setHighlightMatcher = function(highlightMatcher) {
    this._highlightMatcher = highlightMatcher;
};

Timeline.OverviewEventPainter.prototype.paint = function() {
    var eventSource = this._band.getEventSource();
    if (eventSource == null) {
        return;
    }
    
    this._prepareForPainting();
    
    var eventTheme = this._params.theme.event;
    var metrics = {
        trackOffset:    eventTheme.overviewTrack.offset,
        trackHeight:    eventTheme.overviewTrack.height,
        trackGap:       eventTheme.overviewTrack.gap,
        trackIncrement: eventTheme.overviewTrack.height + eventTheme.overviewTrack.gap
    }
    
    var minDate = this._band.getMinDate();
    var maxDate = this._band.getMaxDate();
    
    var filterMatcher = (this._filterMatcher != null) ? 
        this._filterMatcher :
        function(evt) { return true; };
    var highlightMatcher = (this._highlightMatcher != null) ? 
        this._highlightMatcher :
        function(evt) { return -1; };
    
    var iterator = eventSource.getEventReverseIterator(minDate, maxDate);
    while (iterator.hasNext()) {
        var evt = iterator.next();
        if (filterMatcher(evt)) {
            this.paintEvent(evt, metrics, this._params.theme, highlightMatcher(evt));
        }
    }
    
    this._highlightLayer.style.display = "block";
    this._eventLayer.style.display = "block";
    // update the band object for max number of tracks in this section of the ether
    this._band.updateEventTrackInfo(this._tracks.length, metrics.trackIncrement); 
};

Timeline.OverviewEventPainter.prototype.softPaint = function() {
};

Timeline.OverviewEventPainter.prototype._prepareForPainting = function() {
    var band = this._band;
        
    this._tracks = [];
    
    if (this._highlightLayer != null) {
        band.removeLayerDiv(this._highlightLayer);
    }
    this._highlightLayer = band.createLayerDiv(105, "timeline-band-highlights");
    this._highlightLayer.style.display = "none";
    
    if (this._eventLayer != null) {
        band.removeLayerDiv(this._eventLayer);
    }
    this._eventLayer = band.createLayerDiv(110, "timeline-band-events");
    this._eventLayer.style.display = "none";
};

Timeline.OverviewEventPainter.prototype.paintEvent = function(evt, metrics, theme, highlightIndex) {
    if (evt.isInstant()) {
        this.paintInstantEvent(evt, metrics, theme, highlightIndex);
    } else {
        this.paintDurationEvent(evt, metrics, theme, highlightIndex);
    }
};

Timeline.OverviewEventPainter.prototype.paintInstantEvent = function(evt, metrics, theme, highlightIndex) {
    var startDate = evt.getStart();
    var startPixel = Math.round(this._band.dateToPixelOffset(startDate));
    
    var color = evt.getColor(),
        klassName = evt.getClassName();
    if (klassName) {
      color = null;
    } else {
      color = color != null ? color : theme.event.duration.color;
    }
    
    var tickElmtData = this._paintEventTick(evt, startPixel, color, 100, metrics, theme);
    
    this._createHighlightDiv(highlightIndex, tickElmtData, theme);
};

Timeline.OverviewEventPainter.prototype.paintDurationEvent = function(evt, metrics, theme, highlightIndex) {
    var latestStartDate = evt.getLatestStart();
    var earliestEndDate = evt.getEarliestEnd();
    
    var latestStartPixel = Math.round(this._band.dateToPixelOffset(latestStartDate));
    var earliestEndPixel = Math.round(this._band.dateToPixelOffset(earliestEndDate));
    
    var tapeTrack = 0;
    for (; tapeTrack < this._tracks.length; tapeTrack++) {
        if (earliestEndPixel < this._tracks[tapeTrack]) {
            break;
        }
    }
    this._tracks[tapeTrack] = earliestEndPixel;
    
    var color = evt.getColor(),
        klassName = evt.getClassName();
    if (klassName) {
      color = null;
    } else {
      color = color != null ? color : theme.event.duration.color;
    }
    
    var tapeElmtData = this._paintEventTape(evt, tapeTrack, latestStartPixel, earliestEndPixel,
      color, 100, metrics, theme, klassName);
    
    this._createHighlightDiv(highlightIndex, tapeElmtData, theme);
};

Timeline.OverviewEventPainter.prototype._paintEventTape = function(
    evt, track, left, right, color, opacity, metrics, theme, klassName) {
    
    var top = metrics.trackOffset + track * metrics.trackIncrement;
    var width = right - left;
    var height = metrics.trackHeight;
    
    var tapeDiv = this._timeline.getDocument().createElement("div");
    tapeDiv.className = 'timeline-small-event-tape'
    if (klassName) {tapeDiv.className += ' small-' + klassName;}
    tapeDiv.style.left = left + "px";
    tapeDiv.style.width = width + "px";
    tapeDiv.style.top = top + "px";
    tapeDiv.style.height = height + "px";
    
    if (color) {
      tapeDiv.style.backgroundColor = color; // set color here if defined by event. Else use css
    }
 //   tapeDiv.style.overflow = "hidden";   // now set in css
 //   tapeDiv.style.position = "absolute";
    if(opacity<100) SimileAjax.Graphics.setOpacity(tapeDiv, opacity);
    
    this._eventLayer.appendChild(tapeDiv);
    
    return {
        left:   left,
        top:    top,
        width:  width,
        height: height,
        elmt:   tapeDiv
    };
}

Timeline.OverviewEventPainter.prototype._paintEventTick = function(
    evt, left, color, opacity, metrics, theme) {
    
    var height = theme.event.overviewTrack.tickHeight;
    var top = metrics.trackOffset - height;
    var width = 1;
    
    var tickDiv = this._timeline.getDocument().createElement("div");
	  tickDiv.className = 'timeline-small-event-icon'
    tickDiv.style.left = left + "px";
    tickDiv.style.top = top + "px";
  //  tickDiv.style.width = width + "px";
  //  tickDiv.style.position = "absolute";
  //  tickDiv.style.height = height + "px";
  //  tickDiv.style.backgroundColor = color;
  //  tickDiv.style.overflow = "hidden";

    var klassName = evt.getClassName()
    if (klassName) {tickDiv.className +=' small-' + klassName};
	
    if(opacity<100) {SimileAjax.Graphics.setOpacity(tickDiv, opacity)};
    
    this._eventLayer.appendChild(tickDiv);
    
    return {
        left:   left,
        top:    top,
        width:  width,
        height: height,
        elmt:   tickDiv
    };
}

Timeline.OverviewEventPainter.prototype._createHighlightDiv = function(highlightIndex, dimensions, theme) {
    if (highlightIndex >= 0) {
        var doc = this._timeline.getDocument();
        var eventTheme = theme.event;
        
        var color = eventTheme.highlightColors[Math.min(highlightIndex, eventTheme.highlightColors.length - 1)];
        
        var div = doc.createElement("div");
        div.style.position = "absolute";
        div.style.overflow = "hidden";
        div.style.left =    (dimensions.left - 1) + "px";
        div.style.width =   (dimensions.width + 2) + "px";
        div.style.top =     (dimensions.top - 1) + "px";
        div.style.height =  (dimensions.height + 2) + "px";
        div.style.background = color;
        
        this._highlightLayer.appendChild(div);
    }
};

Timeline.OverviewEventPainter.prototype.showBubble = function(evt) {
    // not implemented
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色产综合产在线视频| 欧美精品一级二级| 日本va欧美va精品| 一卡二卡欧美日韩| 亚洲欧美国产77777| 亚洲免费视频中文字幕| 成人欧美一区二区三区1314| 国产欧美日韩不卡| 亚洲色图欧洲色图婷婷| 欧美国产成人精品| **欧美大码日韩| 免费观看91视频大全| 日韩av在线播放中文字幕| 麻豆成人免费电影| 国产美女精品一区二区三区| 国产成人精品影院| 成人性生交大片免费看视频在线| 国产精品一二三区| 91偷拍与自偷拍精品| 欧美性大战久久久| 欧美电影免费观看高清完整版在线| 欧美xxxx在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲美女视频在线观看| 日韩二区三区四区| 豆国产96在线|亚洲| 91欧美激情一区二区三区成人| 精品视频一区二区三区免费| 日韩一区二区中文字幕| 中文字幕高清不卡| 亚洲夂夂婷婷色拍ww47| 美女视频黄 久久| 不卡av免费在线观看| 欧美浪妇xxxx高跟鞋交| 久久久精品黄色| 成人激情动漫在线观看| 欧美视频完全免费看| 久久午夜色播影院免费高清| 亚洲色图.com| 国产一区二区在线视频| 欧美午夜电影一区| 国产丝袜美腿一区二区三区| 午夜精品免费在线观看| 福利电影一区二区| 欧美人妇做爰xxxⅹ性高电影| 国产人伦精品一区二区| 图片区小说区区亚洲影院| 成人免费的视频| 日韩午夜电影在线观看| 亚洲综合一区在线| 成人激情图片网| 久久午夜色播影院免费高清| 日本不卡不码高清免费观看| 91视频在线看| 国产精品久久久久久久久免费丝袜 | 欧美日韩一区二区欧美激情| 久久久久久电影| 不卡视频一二三| 久久婷婷国产综合国色天香| 亚洲成人中文在线| 色综合久久久久综合体桃花网| 久久久久亚洲蜜桃| 久久99久久99| 日韩小视频在线观看专区| 亚洲444eee在线观看| 色综合欧美在线视频区| 国产精品免费看片| 国产成人精品亚洲日本在线桃色| 精品久久久久久久久久久久包黑料| 亚洲第一福利视频在线| 欧美视频一区二| 首页国产欧美日韩丝袜| 欧美三级在线看| 亚洲va欧美va人人爽午夜| 在线观看区一区二| 午夜av一区二区| 777奇米四色成人影色区| 午夜欧美电影在线观看| 欧美蜜桃一区二区三区| 日韩极品在线观看| 精品黑人一区二区三区久久| 久久精品久久99精品久久| 欧美一级午夜免费电影| 麻豆久久一区二区| 久久蜜桃香蕉精品一区二区三区| 国内久久精品视频| 国产精品理论在线观看| 一本久久a久久免费精品不卡| 一区二区三区在线观看欧美| 欧美性色综合网| 日本免费新一区视频| 日韩欧美激情一区| 粉嫩13p一区二区三区| 一区二区三区中文字幕精品精品 | 亚洲成人7777| 日韩精品中文字幕一区| 国产精品香蕉一区二区三区| 国产精品污www在线观看| 91亚洲国产成人精品一区二区三| 亚洲一区在线观看免费 | 欧美日产在线观看| 免费在线视频一区| 国产亚洲精久久久久久| 色国产综合视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久久久久电影| 欧美色精品在线视频| 国产综合久久久久久鬼色| 亚洲三级电影网站| 欧美成人aa大片| 色综合网色综合| 六月丁香综合在线视频| 亚洲欧洲韩国日本视频| 日韩一级成人av| 色域天天综合网| 韩国精品在线观看| 亚洲6080在线| 亚洲日本va午夜在线影院| 日韩美女主播在线视频一区二区三区| 国产激情视频一区二区三区欧美| 亚洲一区二区免费视频| 国产日产精品一区| 日韩免费电影一区| 精品视频一区二区三区免费| 国产成人免费视频精品含羞草妖精| 亚洲自拍偷拍综合| 中文字幕欧美三区| 精品少妇一区二区三区免费观看| 99国产精品视频免费观看| 国内不卡的二区三区中文字幕| 亚洲午夜久久久| 亚洲色欲色欲www| 国产精品久久久久久亚洲伦 | 久久综合色8888| 欧美二区三区的天堂| 9i看片成人免费高清| 国产成人夜色高潮福利影视| 日韩黄色片在线观看| 亚洲自拍偷拍九九九| 樱桃视频在线观看一区| 久久精品人人做| 久久久久久久久久久久久女国产乱| 欧美高清激情brazzers| 欧美日韩性生活| xvideos.蜜桃一区二区| 337p亚洲精品色噜噜狠狠| 欧美亚洲另类激情小说| 一本一本大道香蕉久在线精品 | 亚洲一区二区三区四区的| 亚洲欧洲另类国产综合| 国产精品三级在线观看| 中文字幕精品三区| 国产精品嫩草影院com| 国产精品视频免费看| 国产精品久久久99| 亚洲精品中文在线影院| 一区二区不卡在线播放 | 秋霞国产午夜精品免费视频| 亚洲福利国产精品| 日韩专区一卡二卡| 麻豆传媒一区二区三区| 国产精品一卡二卡| 成人av网站在线| 欧美亚洲日本国产| 日韩一区二区精品| 久久久亚洲综合| 亚洲伦理在线精品| 三级欧美在线一区| 久久国产精品免费| 成人高清在线视频| 欧美性生活大片视频| 日韩欧美国产电影| 国产精品色婷婷| 性感美女极品91精品| 美女视频黄 久久| 99精品视频在线播放观看| 欧美日韩精品欧美日韩精品一综合| 欧美日韩一区中文字幕| 欧美精品一区二区三区久久久| 国产免费观看久久| 亚洲最大成人综合| 久久99深爱久久99精品| 波多野结衣亚洲一区| 欧美日韩国产中文| 国产精品乱码久久久久久| 亚洲成人av一区二区| 高清国产一区二区| 欧美另类videos死尸| 国产精品护士白丝一区av| 婷婷国产v国产偷v亚洲高清| 国产91丝袜在线播放| 欧美日韩一二区| 亚洲国产精品成人综合色在线婷婷| 亚洲午夜久久久久久久久电影院| 国产一区二区三区日韩| 777色狠狠一区二区三区| 成人免费在线视频| 国产精品一区二区你懂的| 欧美日韩免费电影| 亚洲视频1区2区|