functions
functions
ready(function() {
$('#code').keyup(function()
{
parse();
});
});
function init()
{
data = new google.visualization.DataTable();
data.addColumn('datetime', 'start');
data.addColumn('datetime', 'end');
data.addColumn('string', 'content');
data.addColumn('string', 'className');
data.addColumn('string', 'group');
// specify options
var options = {
width: "100%",
height: "100%",
top: "0px",
editable: true,
layout: "box",
style: "box",
animateZoom: false,
'zoomMax': 2000 * 60 * 60 * 24 * 365 * 10000, // milliseconds
animate: false,
max: new Date(650),
min: new Date(0),
snapEvents: false,
showCustomTime: true,
customStackOrder: orderEvents
};
vis.draw(data, options);
createColorClasses(100);
parse();
$('#modality').click(function()
{
toggleModality();
});
$('#player .next').click(function()
{
nextCollision();
});
$('#player .prev').click(function()
{
prevCollision();
});
}
function get_random_color()
{
var letters = 'ABCDEF'.split('');
var color = '#';
return color;
}
function createColorClasses(num)
{
var style = document.createElement('style');
style.type = 'text/css';
function parse()
{
var codeArr = $("#code").val().split("\n");
if(lineArr.length > 2)
{
action = lineArr[1];
time = lineArr[2];
mainAction = action.substring(action.indexOf("_")+1);
if(action != undefined && time != undefined)
{
if(action.toUpperCase().indexOf("START") > -1)
{
myActions[mainAction] = {name:
mainAction,start: parseInt(time), duration: "", subActions: new Object()};
}
else if(action.toUpperCase().indexOf("DURATION") > -
1)
{
myActions[mainAction].duration =
parseInt(time);
}
}
}
}
else
{
if(currLine.indexOf("{") > -1)
{
detectSubActions = true;
numSubAction = 0;
}
else if(currLine.indexOf("}") > -1)
{
detectSubActions = false;
}
else //inside actions
{
if(detectSubActions && currLine.indexOf("//|") > -1)
{
currLine = currLine.replace("//| ", "").replace("//|", "");
startSubAction = timingArr[0];
durationSubAction = timingArr[1];
if(!isBlackList(mainAction))
{
numSubAction++;
}
}
}
}
}
drawVisualization();
drawCollisionPlayer();
}
myDevices[device].collisions.push(action);
}
return true;
}
function isBlackList(actionName)
{
return myBlackList.indexOf(actionName) > -1;
}
var numAction = 0;
if($("#modality").html() == "Expanded")
{
if(data.getNumberOfColumns() == 5)
data.removeColumn(4);
numAction++;
}
}
else
{
if(data.getNumberOfColumns() == 4)
data.addColumn("string", "group");
vis.redraw();
}
function drawCollisionPlayer()
{
if(myCollisions.length > 0)
{
$("#player").show();
$("div.timeline-customtime").addClass("collisionTimeline");
nextCollision();
}
}
function nextCollision()
{
if(currentCollision < myCollisions.length - 1)
{
currentCollision++;
updateCollision();
}
}
function prevCollision()
{
if(currentCollision > 0)
{
currentCollision--;
updateCollision();
}
}
function updateCollision()
{
vis.setCustomTime(myCollisions[currentCollision].tick);
$("#player .error").html(myCollisions[currentCollision].text);
$(".collision").removeClass("current");
$(".collision").each(function()
{
if($(this).children().text() == myCollisions[currentCollision].action1
|| $(this).children().text() == myCollisions[currentCollision].action2)
{
$(this).addClass("current");
}
});
if(currentCollision <= 0)
{
$("#player .prev").hide();
}
else
{
$("#player .prev").show();
}
function onSelect()
{
var sel = vis.getSelection();
if (sel.length)
{
if (sel[0].row != undefined)
{
showSubActions(sel[0].row);
//$("#code").val().indexOf(data.getValue(sel[0].row, 2))
// $("#code").setCursorPosition($
("#code").val().indexOf(data.getValue(sel[0].row, 2)));
//console.log("Go to pos "+ $
("#code").val().indexOf(data.getValue(sel[0].row, 2)))
}
}
}
function closeTimeline2()
{
delete data2;
delete vis2;
$("#mytimeline2").hide();
$("#closeTimeline").hide();
vis.setSelection([]);
}
function showSubActions(numRow)
{
var element = $("."+data.getValue(numRow, 3));
if(data2 != undefined)
{
delete data2;
delete vis2;
}
$("#mytimeline2").show();
$("#closeTimeline").show();
$("#closeTimeline").click(function(){
closeTimeline2();
});
var maxEnd = 0;
// specify options
var options = {
width: $("#code").width()/*element.width()*/,
height: $("#code").height(),
top: "0px",
editable: true,
layout: "box",
style: "box",
min: new Date(0),
max: new Date(maxEnd+50)
};
vis2.draw(data2, options);
$("#closeTimeline").offset(offset2);
$("#mytimeline2").offset(offset);
$("#mytimeline2").width($("#code").width());
$("#mytimeline2").height($("#code").height());
}
$.fn.setCursorPosition = function(pos) {
this.each(function(index, elem) {
if (elem.setSelectionRange) {
elem.setSelectionRange(pos, pos);
} else if (elem.createTextRange) {
var range = elem.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
});
return this;
};
function toggleModality()
{
if($("#modality").html() == "Expanded")
{
$("#modality").html("Grouped");
closeTimeline2();
}
else
{
$("#modality").html("Expanded");
}
drawVisualization();
}