Добавить наложения в Simile Timeline - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть проблема, я хотел бы добавить два наложения по обе стороны шкалы времени.Идея состоит в том, чтобы сделать его похожим на этот макет: https://lh4.googleusercontent.com/-EUgq5L-gFgc/TsEgpPpyJ1I/AAAAAAAACEA/vbByi9CTIhk/s592/Capture%252520du%2525202011-11-14%25252014%25253A55%25253A14-m.png

Но более важно то, что у него будет несколько треков на временной шкале (по одному на человека, представленного в приложении), и мне нужно добавитьданные на обеих сторонах каждой дорожки.Я могу получить данные в любой удобной для меня форме, но я просто не могу найти, как это реализовать.Если кто-то может помочь, это мне очень поможет.Спасибо!

1 Ответ

1 голос
/ 16 ноября 2011

Я отвечаю на свой вопрос, и вот код, если у кого-то еще есть такая же проблема:

var timeline;
function onLoad() {
if (typeof(timelineJsonObject)=='undefined' || timelineJsonObject===null) 
{
    return;
}

var overviewEvents = new Timeline.DefaultEventSource();
var events = new Array(timelineJsonObject.length);

var theme = Timeline.ClassicTheme.create();
    theme.event.tape.height = 24;

var overviewTheme = Timeline.ClassicTheme.create();
    overviewTheme.event.tape.height = 8;

var bandInfos = new Array(timelineJsonObject.length+1);
bandInfos[0] = Timeline.createBandInfo
    ({
        theme:          overviewTheme,
        layout:         'overview',
        eventSource:    overviewEvents,
        width:          "96px",
        intervalUnit:   Timeline.DateTime.MONTH, 
        intervalPixels: 32
    });

$($("td",  $($("#timelineTable tbody tr")[0]))[1]).attr("rowspan", timelineJsonObject.length+1);

$("#timeline").height((timelineJsonObject.length+1) * 96);

var cssClassMod = new Array(2);
cssClassMod[0] = "even";
cssClassMod[1] = "odd";

tableBody = $("#timelineTable tbody");

for (i = 0; i < timelineJsonObject.length; i++)
{
    events[i] = new Timeline.DefaultEventSource();

    bandInfos[i+1] = Timeline.createBandInfo
        ({
            theme:          theme,
            layout:         'original',
            eventSource:    events[i],
            width:          "96px",
            intervalUnit:   Timeline.DateTime.MONTH, 
            intervalPixels: 128
        });
    bandInfos[i+1].syncWith = i;
    bandInfos[i+1].highlight = true;

    events[i].loadJSON(timelineJsonObject[i][2], document.location.href);
    overviewEvents.loadJSON(timelineJsonObject[i][2], document.location.href);

    tableBody.append('<tr><td>' + timelineJsonObject[i][0] + '</td><td>' + timelineJsonObject[i][1] + '</td></tr>');
    $("tr", tablebody).last().addClass(cssClassMod[i%2]);
}

timeline = Timeline.create(document.getElementById("timeline"), bandInfos);

timeline.finishedEventLoading();
}
...