function initWidget() { updateWidget(); } function updateWidget() { dataArr = parseDataList(); textSize = 18; textVOffsetMultiplier = textSize + 10; longest = 0; for (i = 0; i < dataArr.length; i++) if (dataArr[i][0].length > longest) longest = dataArr[i][0].length; // labels | seperator | episodes | seperator | totals | fadeoff window.width = longest * 10 + 10 + 25 + 10 + 35 + 20; windowWidth = window.width; window.height = dataArr.length * (textSize + 10) + 15; windowHeight = window.height; // Labels hOff = window.width-5; rowLabel = Array(); rowLineL = Array(); for (i = 0; i < dataArr.length; i++) { rowLabel[i] = new Text(); with (rowLabel[i]) { size = textSize; hOffset = longest * 10; vOffset = (i+1) * textVOffsetMultiplier; data = dataArr[i][0]; alignment = "right"; } if (i + 1 < dataArr.length) { rowLineL[i] = new Image(); with (rowLineL[i]) { src = "images/hLineL.png"; hOffset = longest * 10 - rowLabel[i].data.length * 10; vOffset = (i + 1) * textVOffsetMultiplier + 5; } } } // Episodes rowCount = Array(); rowLineC = Array(); for (i = 0; i < dataArr.length; i++) { rowCount[i] = new Text(); with (rowCount[i]) { size = textSize; hOffset = longest * 10 + 10 + 13; vOffset = ((i+1) * textVOffsetMultiplier); data = dataArr[i][1]; alignment = "center"; onMouseUp = "increaseCount("+ i +");"; } if (i + 1 < dataArr.length) { rowLineC[i] = new Image(); with (rowLineC[i]) { src = "images/hLineC.png"; hOffset = longest * 10 - rowLabel[i].data.length * 10 + 33; vOffset = (i + 1) * textVOffsetMultiplier + 5; width = (windowWidth - 25) - (longest * 10 - rowLabel[i].data.length * 10 + 33); } } } // Totals rowTotal = Array(); rowLineR = Array(); for (i = 0; i < dataArr.length; i++) { rowTotal[i] = new Text(); with (rowTotal[i]) { size = textSize; hOffset = longest * 10 + 10 + 25 + 10 + 35; vOffset = (i+1) * textVOffsetMultiplier; data = Math.round(dataArr[i][1] * dataArr[i][2] * 10) / 10; // accuracy of 1 decimal alignment = "right"; } if (i + 1 < dataArr.length) { rowLineR[i] = new Image(); with (rowLineR[i]) { src = "images/hLineR.png"; hOffset = windowWidth - 25; vOffset = (i + 1) * textVOffsetMultiplier + 5; } } } // Vertical lines colLine = Array(); colLine[0] = new Image(); with (colLine[0]) { src = "images/vLine.png"; hOffset = longest * 10 + 2; vOffset = 0; height = windowHeight; } colLine[1] = new Image(); with (colLine[1]) { src = "images/vLine.png"; hOffset = longest * 10 + 10 + 25; vOffset = 0; height = windowHeight; } } function increaseCount(i) { dataArr[i][1] = parseInt(dataArr[i][1]) + 1; preferences.dataList.value = packDataList(); updateWidget(); } function parseDataList() { dataArr = new Array(); desc = preferences.dataList.value; j = -1; k = 0; for (i = 0; i < desc.length; i++) { if (desc.charAt(i) == "|") { j++; k = 0; dataArr[j] = new Array(3); dataArr[j][0] = ""; dataArr[j][1] = ""; dataArr[j][2] = ""; } else if (desc.charAt(i) == "#") k++; else dataArr[j][k] = dataArr[j][k] + desc.charAt(i); } /* print("Aloitetaan tulostus:"); for (i = 0; i < dataArr.length; i++) for (j = 0; j < dataArr[i].length; j++) print(dataArr[i][j]); */ return dataArr; } function packDataList() { tbr = "" for (i = 0; i < dataArr.length; i++) { tbr = tbr + "|"; tbr = tbr + dataArr[i][0] + "#"; tbr = tbr + dataArr[i][1] + "#"; tbr = tbr + dataArr[i][2]; } return tbr; }