diff war/scripts/sti/properties.js @ 3:cf06b77a8bbd

Committed branch of the e4D repos sti-gwt branch 16384. git-svn-id: http://dev.dariah.eu/svn/repos/eu.dariah.de/ap1/sti-gwt-dariah-geobrowser@36 f2b5be40-def6-11e0-8a09-b3c1cc336c6b
author StefanFunk <StefanFunk@f2b5be40-def6-11e0-8a09-b3c1cc336c6b>
date Tue, 17 Jul 2012 13:34:40 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/war/scripts/sti/properties.js	Tue Jul 17 13:34:40 2012 +0000
@@ -0,0 +1,179 @@
+/**
+ * color array that stores predefined colors for color coding of the different searches.
+ * the colors are given in array with 3 different values for rgb.
+ * (r0,g0,b0) represents the color for an item, if it is unselected.
+ * (r1,g1,b1) represents the color for an item, if it is selected.
+ * (rt,gt,bt) represents the color for a selected item in the table (not so deep).
+ * initial values are orange, green, blue and yellow
+ */
+var colors = [{
+	id: 1,
+    r1: 245,
+    g1: 70,
+    b1: 0,
+    r0: 250,
+    g0: 212,
+    b0: 169,
+    rt: 255,
+    gt: 101,
+    bt: 41,
+	hex: '#f54600'
+},{
+	id: 3,
+    r1: 46,
+    g1: 0,
+    b1: 248,
+    r0: 209,
+    g0: 199,
+    b0: 255,
+    rt: 105,
+    gt: 71,
+    bt: 255,
+    hex: '#2e00f8'
+}, {
+	id: 2,
+    r1: 0,
+    g1: 214,
+    b1: 0,
+    r0: 194,
+    g0: 255,
+    b0: 194,
+    rt: 70,
+    gt: 221,
+    bt: 70,
+	hex: '#00D600'
+},{
+	id: 4,
+    r1: 245,
+    g1: 214,
+    b1: 0,
+    r0: 237,
+    g0: 233,
+    b0: 169,
+    rt: 255,
+    gt: 241,
+    bt: 87,
+	hex: '#FAE500'
+}];
+
+/**
+ * array that stores predefined colors for the table cells: 
+ * stored is rgb for background and border if an object is not selected
+ */
+var cellColor = {
+    r: 255,
+    g: 255,
+    b: 255,
+    rb: 187,
+    gb: 187,
+    bb: 187
+};
+
+/**
+ * initial boundaries of the map.
+ * stored in an array with minLon, maxLon, minLat and maxLat values.
+ * initial values representing the boundaries of Europe.
+ */
+var boundaries = {
+    minLon: -29,
+    minLat: 35,
+    maxLon: 44,
+    maxLat: 67
+};
+
+/**
+ * integer value for the maximum number of parellel data sets a user can handle, including individual objects
+ * initial value is 4 (to handle a lower value is possible, a higher would cause complications yet).
+ */
+var parallelSearches = 4;
+
+/**
+ * a value that determines the number of elements in a point class.
+ * the smaller this value is, the faster the radii of point classes grow
+ */
+var classBase = 1.5;
+
+/**
+ * a value, which defines the minimum radius of a point class that contains only one element
+ */
+var minimumRadius = 4;
+var maximumRadius, maximumPoints;
+var circleGap = 0;
+
+/**
+ * maximum tag cloud labels
+ */
+var tagCloudLabels = 6;
+
+/**
+ * returns the calculated cell color of an objects cell
+ * @param {int} i the index of the dataset
+ * @param {double} p the selection percentage value of the data object
+ * @return the calculated cell color
+*/
+var getCellColor = function(i,p){
+	var r = cellColor.r + Math.round(p * (colors[i].rt - cellColor.r));
+	var g = cellColor.g + Math.round(p * (colors[i].gt - cellColor.g));
+	var b = cellColor.b + Math.round(p * (colors[i].bt - cellColor.b));				
+	return "rgb("+r+","+g+","+b+")";
+} 
+
+/**
+ * returns the border color of an objects cell
+ * @param {int} i the index of the dataset
+ * @param {boolean} selected if the object is selected or not
+ * @return the border color of the cell
+*/
+var getBorderColor = function(i,selected){
+	if( selected ){
+		return "rgb("+colors[i].rt+","+colors[i].gt+","+colors[i].bt+")";
+	}
+	else {
+		return "rgb("+cellColor.rb+","+cellColor.gb+","+cellColor.bb+")";
+	}
+}
+
+/**
+ * returns the actual mouse position
+ * @param {Event} e the mouseevent
+ * @return the top and left position on the screen
+*/
+var getMousePosition = function(e){
+	if (!e) 
+    	e = window.event;
+    var body = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? window.document.documentElement : window.document.body;
+    return {
+    	top: e.pageY ? e.pageY : e.clientY,
+        left: e.pageX ? e.pageX : e.clientX
+    };
+}
+
+/**
+ * returns the id of the color
+ * @param {int} index the index of a dataset
+ * @return the id of the corresponding color
+*/
+var getColorId = function(index){
+	return colors[index].id;
+}
+
+var getRadius = function(size){
+	if( size == 0 ){
+		return 0;
+	}
+	var aMax = Math.PI * maximumRadius * maximumRadius; 
+  	var aMin = Math.PI * minimumRadius * minimumRadius;
+	if( this.maxPoints == 1 ){
+		return aMin;
+	}
+    return Math.sqrt( ( aMin + (aMax-aMin)/(maximumPoints-1)*(size-1) * Math.sqrt(Math.log(size)) )/Math.PI );
+}
+
+var getDocHeight = function() {
+    var D = document;
+    return Math.max(
+        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
+        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
+        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
+    );
+}
\ No newline at end of file