All pastes #154961 Raw Edit

Anonymous

public text v1 · immutable
#154961 ·published 2006-08-30 19:00 UTC
rendered paste body

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;
}