diff --git a/zk-Timeplot-1.0_2/LICENSE.txt b/zk-Timeplot-1.0_2/LICENSE.txt new file mode 100755 index 000000000..7b934fcee --- /dev/null +++ b/zk-Timeplot-1.0_2/LICENSE.txt @@ -0,0 +1,4 @@ +ZK.forge is distributed under Lesser GPL Version 2.1 in the hope that +it will be useful, but WITHOUT ANY WARRANTY. + +See also http://www.gnu.org/licenses/lgpl.html diff --git a/zk-Timeplot-1.0_2/bin/deploy b/zk-Timeplot-1.0_2/bin/deploy new file mode 100755 index 000000000..58933b7fb --- /dev/null +++ b/zk-Timeplot-1.0_2/bin/deploy @@ -0,0 +1,82 @@ +#!/bin/bash +# deploy +# +#{{IS_NOTE +# Purpose: +# Deploy +# Description: +# It supports tomcat only. +# History: +# Thu Jan 26 09:47:39 2006, Created by tomyeh +#}}IS_NOTE +# +#Copyright (C) 2006 Potix Corporation. All Rights Reserved. +# +#{{IS_RIGHT +# This program is distributed under Lesser GPL Version 2.1 in the hope that +# it will be useful, but WITHOUT ANY WARRANTY. +#}}IS_RIGHT +# +if [ ! -d /usr/tomcat ] ; then + echo "/usr/tomcat not found" + echo "Currently only tomcat is supported" + exit 1 +fi +if [ $# == 0 ] ; then + echo "Usage:" + echo " deploy prj1 prj2..." + exit 0 +fi + +jar_found=false +for f in $*; do + f=${f%/} + if [ -f dist/lib/$f.war ] || [ "$(head -1 $f/format)" = "war" ] ; then + dst=$(grep '^root' $f/deploy) + if [ "$dst" = "root" ] ; then + dst=ROOT + else + dst=$f + fi + echo "cp dist/lib/$f /usr/tomcat/webapps/$dst" + +function cpweb +{ + ( + cd $1 + for sub in * ; do + if [ -f "$sub" ] ; then + #echo cp -u -p "$sub" $2 + cp -u -p -v "$sub" $2 + elif [ "$sub" != CVS ] && [ -d "$sub" ] ; then + local dstsub=$2/$sub + if [ ! -d "$dstsub" ] ; then + mkdir -p "$dstsub" + fi + #echo cpweb $(pwd)/$sub $dstsub + cpweb $sub $dstsub + fi + done + ) +} + cpweb $f/src/archive /usr/tomcat/webapps/$dst + fi + + if [ -f dist/lib/$f.jar ] ; then + jar_found=true + fi +done + +if [ "$jar_found" = "true" ] ; then + net stop "Apache Tomcat" + + for f in $*; do + f=${f%/} + if [ -f dist/lib/$f.jar ] ; then + #echo "cp dist/lib/$f.jar /usr/tomcat/shared/lib" + cp -p -u -v -f dist/lib/$f.jar /usr/tomcat/shared/lib + fi + done + + net start "Apache Tomcat" +fi diff --git a/zk-Timeplot-1.0_2/bin/deploy.unzip.war b/zk-Timeplot-1.0_2/bin/deploy.unzip.war new file mode 100755 index 000000000..65d6b872c --- /dev/null +++ b/zk-Timeplot-1.0_2/bin/deploy.unzip.war @@ -0,0 +1,94 @@ +#!/bin/bash +# deploy.unzip +# +#{{IS_NOTE +# Purpose: +# Unzip and deploy a war into Tomcat or Jetty server +# For deploy ear, use deploy.unzip +# Description: +# Unzip and deploy a war +# History: +# Wed Jan 3 12:33:46 2006, Created by tomyeh +#}}IS_NOTE +# +#Copyright (C) 2006 Potix Corporation. All Rights Reserved. +# +#{{IS_RIGHT +# This program is distributed under Lesser GPL Version 2.1 in the hope that +# it will be useful, but WITHOUT ANY WARRANTY. +#}}IS_RIGHT +# + +function helpit +{ + echo "deploy.unzip - Unzip and deploy a war into Tomcat or jetty server" + echo "Copyright (C) 2006 Potix Corporation. All Rights Reserved." + echo + echo "Usage:" + echo " deploy.unzip srcdir dstdir [list] [old_name/new_name]" + echo + echo "srcdir - the directory containing source files" + echo "dstdir - the destination directory" + echo "list - a list of comma separated source files" + echo "old_name/new_name - rename the war's name from old_name to new_name" + exit 0 +} + +if [ $# -lt 2 ] ; then + echo "You have to specify at least the source file and destination directory" + exit 1 +fi +if [ $1 = --help ] ; then + helpit +fi +srcdir=$1 +dstdir=$2 +fls=$3 +renwar=$4 +if [ ! -d "$srcdir" ] ; then + echo "$srcdir is not a directory" + exit 1 +fi +if [ ! -d "$dstdir" ] ; then + echo "$dstdir doesn't exist. Make sure /usr/tomcat is linked to the Tomcat directory" + exit 1 +fi +if [ "$fls" == "" ] ; then + exit 0 +fi +oldnm="${renwar%/*}" +newnm="${renwar#*/}" + +if [ "$srcdir" == "${srcdir#/}" ] ; then #relative + srcdir=$(pwd)/$srcdir +fi + +oldIFS=$IFS +IFS=, +for f in $fls; do + if [ -f "$srcdir/$f" ] ; then + dstfn=${f%%.*} + if [ "$dstfn" = "$oldnm" ] ; then + dstfn="$newnm" + fi + srcfl=$srcdir/$f + if [ ! -f "$dstdir/$dstfn/WEB-INF/web.xml" ] || [ "$srcfl" -nt "$dstdir/$dstfn/WEB-INF/web.xml" ] ; then + echo "Unzip $srcfl to $dstfn" + ( + mkdir -p "$dstdir/$dstfn" + cd "$dstdir/$dstfn" + + #convert srcfl to window format + if [ "$TERM" = "cygwin" ] ; then + srcfl=$(cygpath -wa $srcfl) + fi + jar xf "$srcfl" + ) + else + echo "Skip $srcdir/$f because it is not newer" + fi + else + echo "Ignore: $srcdir/$f not found" + fi +done +IFS=$oldIFS diff --git a/zk-Timeplot-1.0_2/bin/genprop b/zk-Timeplot-1.0_2/bin/genprop new file mode 100755 index 000000000..6021f1e55 --- /dev/null +++ b/zk-Timeplot-1.0_2/bin/genprop @@ -0,0 +1,146 @@ +#!/bin/bash +# +#{{IS_NOTE +# +# Authors: Tom M. Yeh +# Contributors: +# Create Date: 2001/3/30 05:46PM +# Purpose: Generate Java classes from properties files +# Description: +# Execute 'genprop -h' to know how to use. +# History: +# 5/19/2001 Tom M. Yeh, allow to processing non-utf files and specify +# different paths +# +#}}IS_NOTE +# +# Copyright (C) 2001 Potix Corporation. All Rights Reserved. +# +#{{IS_RIGHT +# This program is distributed under Lesser GPL Version 2.1 in the hope that +# it will be useful, but WITHOUT ANY WARRANTY. +#}}IS_RIGHT +# + +function showhelp +{ + echo "genprop - generate Java classes from properties files" + echo "Copyright (C) 2001 Potix Corporation. All Rights Reserved." + echo + echo "Usage:" + echo " genprop [-f] [-h] [-u] prop_dir dst_dir" + echo + echo "prop_dir" + echo " The directory holds the properties files, *.properties." + echo " If -u is specified, *.properties.utf are expected." + echo "dst_dir" + echo " The destination directory, where the generated java codes" + echo " are stored." + echo + echo "Example:" + echo " genpro src/conf codegen" + echo + echo "Options:" + echo " -f" + echo " Force the generation without checking whether it is newer." + echo " -u" + echo " UTF files (with .utf extension) expected." + echo " -x" + echo " Exclude filename that contains '_'." + echo " -h or --help" + echo " Show this message." + echo + echo "Format of the properties.utf file:" + echo "#@=TypeName" + echo " and all constants are added with the type name, e.g, MT_SYS." + echo " It must be at the first line." + echo + echo "#-=M_FILE_NOT_FOUND" + echo "1002=File Not Found" + echo " Other part is composed as pair of lines. The first line of" + echo " each pair specifies the constant name (at second column)" + echo " The second line of each pair specifies the value (1002 in" + echo " the above example). Notice: hexadecimal is assumed, only" + echo " lower-case with four digits is allowed, and starts at 1000." + echo + echo " * + echo " * You have to maintain org.zkoss.mesg.MessageConst.java" + echo " consistently, if you add a new properties file." + echo " * Lines starting with # or being empty are ignored." +} + +#-- check options +if [ "$1" = "--help" ] ; then + showhelp + exit 0 +fi + +awkpath=$0 +force=0 +flext=.properties +exclude=N.O.E.X.I.S.T + +while getopts "fhux" opt; do + case $opt in + h ) showhelp + exit 0;; + f ) force=1;; + u ) flext=.properties.utf;; + x ) exclude=_;; + \? ) echo "Try 'genprop --help' for more information" + exit 1;; + esac +done +shift $(($OPTIND - 1)) + +if [ $# != 2 ] ; then + echo "genprop: wrong number of arguments" + echo "Try 'genprop --help' for more information" + exit 1 +fi + +cnfpath=$1 +codegendir=$2 + +#-- check directory structure +if [ ! -d $cnfpath ] ; then + echo "Error: $cnfpath is not a directory" 1>&2 + exit 1 +fi + +#-- start process +for fn in $cnfpath/*$flext ; do + if [ \( -f "$fn" \) -a \( "${fn#*$exclude}" = "$fn" \) ] ; then + msgnm=${fn##$cnfpath/} + msgnm=${msgnm%$flext} + + clsnm=$(head -1 $fn) + clsnm=${clsnm###class=} + pkgnm=${clsnm%.*} + clsnm=${clsnm##*.} + + if [ "$clsnm" = "" ] || [ "$pkgnm" == "" ] ; then + echo The first line of $fn must be "#class=package.class" + exit 1 + fi + + pkgpath=${codegendir}/${pkgnm//.//} + dstfn=${pkgpath}/${clsnm}.java + + #update if newer + if [ \( force = 1 \) -o \( ! -f "$dstfn" \) -o \( "$fn" -nt "$dstfn" \) ] ; then + echo "Generating $dstfn..." + + if [ "$awkfn" = "" ] ; then + if [ "$TERM" = "cygwin" ] ; then + awkpath=$(cygpath -u $awkpath) + fi + awkfn=${awkpath%/*}/genprop.awk + fi + + mkdir -p $pkgpath + args="-f $awkfn -v pkgnm=$pkgnm -v clsnm=$clsnm -vmsgnm=$msgnm -vusernm=$USER" + awk $args -v "when=$(date)" "$fn" > "$dstfn" + fi + fi +done diff --git a/zk-Timeplot-1.0_2/bin/genprop.awk b/zk-Timeplot-1.0_2/bin/genprop.awk new file mode 100755 index 000000000..e21516ab2 --- /dev/null +++ b/zk-Timeplot-1.0_2/bin/genprop.awk @@ -0,0 +1,31 @@ +BEGIN { + FS = " *= *" + printf "// %s.%s.java\n", pkgnm, clsnm + printf "//\n" + printf "// Generated by genprop\n" + printf "// DO NOT MODIFY IT MANUALLY. All modifications will be lost.\n" + printf "//\n" + printf "// %s, %s\n", usernm, when + printf "// Copyright(C) 2001 Potix Corporation. All Rights Reserved.\n\n" + printf "package %s;\n", pkgnm + printf "\npublic interface %s extends org.zkoss.mesg.MessageConst {\n", clsnm + printf "\tstatic final int MESSAGE_ID = Aide.register(%s.class, \"%s\");\n", clsnm, msgnm + key = "" +} + +END { + printf "}\n" +} + +$1=="#-" { + key = $2 +} + +key!="" && NF>=2 && /^[1-9a-f]/ { + printf "\tstatic final int %s = 0x%s + MESSAGE_ID;\n", key, $1 + key = "" +} + +/^0/ { + printf "error: the hexadecimal (%s) must starts at 1000 and in lower case", $1 +} diff --git a/zk-Timeplot-1.0_2/bin/zipjs b/zk-Timeplot-1.0_2/bin/zipjs new file mode 100755 index 000000000..7350a9458 --- /dev/null +++ b/zk-Timeplot-1.0_2/bin/zipjs @@ -0,0 +1,108 @@ +#!/bin/bash +# zipjs +# +#{{IS_NOTE +# Purpose: +# Copy and compress Javascript +# Description: +# +# History: +# Thu Jan 26 14:17:26 2006, Created by tomyeh +#}}IS_NOTE +# +#Copyright (C) 2006 Potix Corporation. All Rights Reserved. +# +#{{IS_RIGHT +# This program is distributed under GPL Version 2.0 in the hope that +# it will be useful, but WITHOUT ANY WARRANTY. +#}}IS_RIGHT +# +if [ $# != 3 ] ; then + echo "Usage:" + echo " zipjs jarfl srcdir dstdir" + echo + echo "All files are copied from one directory to another." + echo "The JavaScript files are compressed during copying." + exit 1 +fi + +if [ ! -d "$2" ] ; then #nothing to copy + exit 0 +fi + +jarfl="$1" +if [ "${jarfl#/}" = "$jarfl" ] ; then + jarfl="$(pwd)/$jarfl" +fi +dstdir="$3" +if [ "${dstdir#/}" = "$dstdir" ] ; then + dstdir="$(pwd)/$dstdir" +fi + +if [ ! -f "$jarfl" ] ; then + echo "$jarfl not found" + exit 1 +fi + +#convert jarfl to window format +if [ "$TERM" = "cygwin" ] ; then + jarfl=$(cygpath -wa $jarfl) +fi + +failed=false + +function zips +{ + local dst="$1" + local parent=$2 + for f in *; do + if [ "$f" != "CVS" ] ; then + dstfl=$dst/$f + if [ -d "$f" ] ; then + ( + cd "$f" + zips "$dstfl" "$f" + ) + elif [ -f "$f" ] ; then + mkdir -p "$dst" + + if [ ! -f "$dstfl" ] || [ "$f" -nt "$dstfl" ] ; then + local cvt=false + if [ "${f%.js}" != "$f" ] ; then + cvt=true + fi + if [ $cvt = true ] ; then + echo Compress $f + if [ "$TERM" = "cygwin" ] ; then + dstfl=$(cygpath -wa $dstfl) + fi + java -jar $jarfl --charset UTF-8 "$f" -o "$dstfl" 2>&1 + if [ $? != 0 ] ; then + echo "Warning failed to compress, use copy instead: $f" + cvt=false + else + cp -p ./"$f" $dst/${f%.js}.org.js + #always make a copy so we can use them if we want to debug them + fi + fi + if [ $cvt = false ] ; then + echo copy $f + cp -p ./"$f" $dst + #$f might starts with - + if [ $? != 0 ] ; then + echo "Failed:" + echo " cp -p $f $dst" + failed=true + fi + fi + fi + fi + fi + done + cd .. +} +cd $2 +zips "$dstdir" +if [ $failed = true ] ; then + exit 1 +fi diff --git a/zk-Timeplot-1.0_2/build b/zk-Timeplot-1.0_2/build new file mode 100755 index 000000000..e29528ddc --- /dev/null +++ b/zk-Timeplot-1.0_2/build @@ -0,0 +1,471 @@ +#!/bin/bash +# +#{{IS_NOTE +# Purpose: +# To build java projects +# Description: +# 'build help' for more descriptions +# History: +# March 29 15:11 2001, Created by tomyeh +# August 21 13:59 2002, Rewritten by tomyeh +#}}IS_NOTE +# +#Copyright (C) 2002 Potix Corporation. All Rights Reserved. +# +#{{IS_RIGHT +# This program is distributed under GPL Version 2.0 in the hope that +# it will be useful, but WITHOUT ANY WARRANTY. +#}}IS_RIGHT +# + +#-- precondition check +setting=build.setting.local +if [ ! -f $setting ] ; then + setting=build.setting + if [ ! -f $setting ] ; then + echo $setting must be specified. Refer to $setting.sample. + exit 1 + fi +fi + +#-- help, verbose or continue +if [ "$1" = "help" ] ; then + more build.txt + exit 0 +fi +#nojc is obsolete +#if [ "$1" = "nojc" ] ; then +# shift +# nojc="-Dnojc=true" +#else +# nojc="-Dnojc=false" +#fi +if [ "$1" = "verbose" ] ; then + shift + verbose="-verbose -Dverbose.required=true" +fi +if [ "$1" = "continue" ] ; then + shift + haltonerror=off +else + haltonerror=on +fi +if [ "$1" = "unzip" ] ; then + shift + unzip=true +else + unzip=$(grep '^unzip=' $setting) + unzip=${unzip#unzip=} + if [ "$unzip" = "false" ] ; then + unzip= + fi +fi + +jboss_profile=$(grep '^jboss.deploy' $setting) +jboss_profile=${jboss_profile#jboss.deploy=} +if [ "$jboss_profile" != "" ] ; then + jboss_ear=${jboss_profile#*/} + if [ "$jboss_ear" = "" ] ; then + echo "Illegal jboss.deploy: $jboss_profile. It must be xxx/yyy." + fi + jboss_profile=${jboss_profile%/*} +fi +jboss_home=/usr/jboss +tomcat_home="$CATALINA_HOME" +if [ ! -d "$tomcat_home" ]; then + tomcat_home=/usr/tomcat +fi +if [ "$TERM" = "cygwin" ] ; then + jboss_home=$(cygpath -w $jboss_home) + jboss_home=${jboss_home%\\} + tomcat_home=$(cygpath -w $tomcat_home) + tomcat_home=${tomcat_home%\\} +fi + +start_service=$(grep '^start.service' $setting) +start_service=${start_service#start.service=} + +#-- parsing dbglfag +dbgflag=$(grep '^D.ON' $setting) +dbgflag=${dbgflag#D.ON=} +if [ "$dbgflag" = "true" ] ; then + cmd=build.debug + jstrim=false +elif [ "$dbgflag" = "false" ] ; then + cmd=build.release + jstrim=true +else + echo D.ON in $setting must be either true or false -- not $dbgflag + exit 1 +fi + +#-- parsing cmd +cmdList=" bd br cd cr ud ur doc jsrc build.debug build.release clean clean.debug clean.release utest.debug utest.release javadoc help" +if [ \( $# != 0 \) -a \( "${cmdList#* $1 }" != "$cmdList" \) ] ; then + cmd=$1 + shift +fi + +case $cmd in +bd) cmd=build.debug ;; +br) cmd=build.release ;; +cd) cmd=clean.debug ;; +cr) cmd=clean.release ;; +ud) cmd=utest.debug ;; +ur) cmd=utest.release ;; +doc) cmd=javadoc ;; +esac + +outdir=${cmd#*\.} +cmd=${cmd%\.*} +if [ "$outdir" = "$cmd" ] ; then + if [ "$dbgflag" = "true" ] ; then + outdir=debug + else + outdir=release + fi +fi + +#-- adjust javac debug and optimize flags +dflag=$(grep '^debug=' $setting) +dflag=${dflag#debug=} +if [ "$dflag" = "true" ] ; then + dflag=on +elif [ "$dflag" = "false" ] ; then + dflag=off +elif [ "$dflag" != "" ] ; then + echo Illegal setting: debug=$dflag + exit 1 +fi + +oflag=$(grep '^optimize=' $setting) +oflag=${oflag#optimize=} +if [ "$oflag" = "true" ] ; then + oflag=on +elif [ "$oflag" = "false" ] ; then + oflag=off +elif [ "$oflag" != "" ] ; then + echo Illegal setting: optimize=$oflag + exit 1 +fi + +if [ "$outdir" = "release" ] ; then + if [ "$dflag" = "" ] ; then + dflag="off" + fi + if [ "$oflag" = "" ] ; then + oflag="on" + fi +else + if [ "$dflag" = "" ] ; then + dflag="on" + fi + if [ "$oflag" = "" ] ; then + oflag="off" + fi +fi +echo "dflag=$dflag, oflag=$oflag" + +#-- Prepare define list +dfnList= +if [ $# != 0 ] ; then + while [ "$1" != "${1#*=}" ] ; do + dfnList="$dfnList -D$1" + shift + done +fi + +#-- Prepare $targetList +#Add a project to the target list (the redudant ones won't be added) +if [ $# != 0 ] ; then + for target in $* ; do + target=${target%/} + targetListOld="$targetListOld $target" + if [ \( ! -d $target \) -a \( ! -d ${target}Test \) ] ; then + echo "Error: $target doesn't exist" + exit 1 + fi + done +else + if [ ! -f build.projects ] ; then + echo build.projects not found + exit 1 + fi + targetListOld="$(cat build.projects | tr '\n' ' ')" + targetListOld="${targetListOld% }" + doall="-Ddo.all=true" + #denote all projects are built; passed to build.xml +fi + +function addToTargetList +{ + if [ \( "${targetList#* $1 }" = "${targetList}" \) -a \ + \( "${targetList% $1}" = "${targetList}" \) -a \ + \( "${targetList#$1 }" = "${targetList}" \) ] ; then + targetList="$targetList $1" + + #check wether the project is defined correctly + mustList="format" + if [ -d $target ] ; then + for v in $mustList ; do + if [ ! -f $target/$v ] ; then + echo "Error: $target/$v doesn't exist" + exit 1 + fi + done + fi + fi +} + + +targetList= +if [ "${cmd#utest}" != "$cmd" ] ; then #utest + for target in $targetListOld ; do + if [ "${target%Test}" = "$target" ] ; then + target=${target}Test + fi + addToTargetList $target + done +else + for target in $targetListOld ; do + addToTargetList $target + done +fi + +#-- prepare javadocdir ... +if [ "$cmd" = "javadoc" ] ; then + javadocdir=$(grep '^javadoc' $setting) + javadocdir=${javadocdir#javadoc=} + if [ "$javadocdir" = "" ] ; then + echo javadoc must be specified in $setting + exit 1 + fi + javadocdir=${javadocdir/\~/$HOME} +else + javadocdir=nonexist +fi + +#-- subroutine safe_cygpath +#$1: cygpath option +#$2: path +#split path to chunks of $size size and do cygpath +#this is a work around for the cygpath bug which cannot handle too long a path +function safe_cygpath +{ + local path=$2 + local size=400 + local newpath= + while [ ${#path} -gt $size ] ; do + path1=${path:0:$size} + path1=${path1%:*} + offset=$((${#path1}+1)) + newpath="$newpath;$(cygpath $1 $path1)" + path=${path:$offset} + done + if [ ${#path} -gt 0 ] ; then + newpath="$newpath;$(cygpath $1 $path)" + fi + newpath=${newpath#;} + echo ${newpath%;} +} + +#-- subroutine invoke_ant +#$1: cmd +#$2: target +function invoke_ant +{ + echo "$1.$outdir $2..." + cd $2 + + #handle class.test.local + local class_test= + if [ "${cmd#utest}" != "$cmd" ] ; then #utest + if [ -f class.test.local ] ; then + ctOrg=$(cat class.test.local | tr '\n' ' ') + class_test= + for cls in $ctOrg ; do + if [ "${cls#\#}" = "$cls" ] ; then + fl=$(echo $cls | tr '.' '/').java + if [ "$class_test" = "" ] ; then + class_test="-Dclass.test=$fl" + else + class_test="$class_test,$fl" + #Don't use whitespace + fi + fi + done + fi + fi + + local CP= + if [ -f classpath ] ; then + #retrieve path + CP=$(cat classpath | tr '\n' ':') + CP=${CP%:} + + #javadoc.class.path shall not contain '.', because xdoclet will + #ignore files that are found in classpath + DCP=$(echo $CP | sed -e 's/:\.:/:/g' -e 's/^\.://' -e 's/:\.$//') + if [ "$TERM" = "cygwin" ] ; then + DCP=$(safe_cygpath "-mp" "$DCP") + #Don't convert CP because it is used by bash directly + fi + fi + if [ "$verbose" != "" ] ; then + echo "CP: $CP" + echo "DCP: $DCP" + fi + + local war_libs= + if [ -f war.libs ] ; then + war_libs=$(cat war.libs | tr '\n' ',') + war_libs=${war_libs%,} + fi + if [ "$war_libs" = "" ] ; then + war_libs=nonexist + fi + + local server_libs= + if [ -f server.libs ] ; then + server_libs=$(cat server.libs | tr '\n' ',') + server_libs=${server_libs%,} + fi + if [ "$server_libs" = "" ] ; then + server_libs="nonexist" + fi + + local ear_libs= + if [ -f ear.libs ] ; then + ear_libs=$(cat ear.libs | tr '\n' ',') + ear_libs=${ear_libs%,} + fi + if [ "$ear_libs" = "" ] ; then + ear_libs=nonexist + fi + + local import_libs= + if [ -f import.libs ] ; then + import_libs=$(cat import.libs | tr '\n' ',') + import_libs=${import_libs%,} + fi + if [ "$import_libs" = "" ] ; then + import_libs=nonexist + fi + + local deploy= + local unziplist= + if [ -f deploy ] ; then + deploy=$(head -1 deploy) + if [ "$deploy" = "server" ] || [ "${cmd#utest}" != "$cmd" ] ; then + app=$(grep '^app=' deploy) + app=${app#app=} + if [ "$app" = "" ] ; then + echo "You must specify app=xxx in deploy, because deploy target is server or utest is required" + exit 1 + fi + echo Application: $app + fi + if [ "$deploy" = "server" ] ; then + rootContext=$(grep '^root-context=' deploy) + rootContext=${rootContext#root-context=} + + if [ "$unzip" != "" ]; then + unziplist=$(grep '^unzip' deploy|tr -d ' ') + unziplist=${unziplist#unzip=} + if [ "$unziplist" != "" ] ; then + unziplist=-Ddeploy.unzip.list="$unziplist" + fi + fi + fi + + zipjslist=$(grep '^zipjs=' deploy) + zipjslist=${zipjslist#zipjs=} + else + deploy=unknown + fi + if [ "${zipjslist}" = "" ] ; then + zipjslist=_na_dir_ + fi + + prjver="$(head -1 version)" + srcver=$(grep '^source=' version) + srcver=${srcver#source=} + if [ "$srcver" = "" ] ; then + srcver=1.4 + fi + tgtver=$(grep '^target=' version) + tgtver=${tgtver#target=} + if [ "$tgtver" = "" ] ; then + tgtver=1.4 + fi + + this_dflag=$dflag + dflagtmp=$(grep '^debug=' version) + dflagtmp=${dflagtmp#debug=} + if [ "$dflagtmp" = "true" ] ; then + this_dflag=on + elif [ "$dflagtmp" = "false" ] ; then + this_dflag=off + fi + this_oflag=$oflag + oflagtmp=$(grep '^optimize=' version) + oflagtmp=${oflagtmp#optimize=} + if [ "$oflagtmp" = "true" ] ; then + this_oflag=on + elif [ "$oflagtmp" = "false" ] ; then + this_oflag=off + fi + + format="$(head -1 format)" + if [ "$format" = "cpp" ] ; then + if [ ! -d $outdir ] ; then + mkdir $outdir + fi + if [ \( "${cmd#build}" != "$cmd" \) -o \( "${cmd#clean}" != "$cmd" \) ] ; then + ( + cd $outdir + DEPLOY_DIR=../../dist/lib make -f ../src/Makefile $1 + ) + fi + else + CLASSPATH="$CP" ANT_OPTS=-Xmx160M ant $verbose $class_test \ + $doall -Dformat="$format" -Ddeploy="$deploy" \ + -Dserver.libs="$server_libs" -Dstart.service="$start_service" \ + -Djboss.profile="$jboss_profile" -Djboss.ear="$jboss_ear" \ + -Djboss.home="$jboss_home" -Dtomcat.home="$tomcat_home" \ + -Djs.trim=$jstrim -Dzipjs=$zipjslist\ + -Dwar.libs="$war_libs" -Dbasedir=. \ + -Dear.libs="$ear_libs" -Dimport.libs="$import_libs" \ + -Dproject.name="$2" -Dproject.version="$prjver" \ + -Dsource.version="$srcver" -Dtarget.version="$tgtver" \ + -Dhaltonerror=$haltonerror -Dout.dir=$outdir \ + -Ddebug=$this_dflag -Doptimize=$this_oflag ${nojc} \ + -Dshare.javadoc.dir="$javadocdir" \ + -Djavadoc.class.path="$DCP" -Dapp.name=$app $unziplist \ + -Droot.context=$rootContext \ + $dfnList -buildfile ../build.xml $1 + fi + + if [ $? != 0 ] ; then + exit $? + fi + + rm -rf velocity.log junit*.properties + cd .. +} + +start=`date +%s` +echo "targets: ${targetList}" +for target in $targetList ; do + if [ -d $target ] ; then + invoke_ant $cmd $target + else + echo "Ignore: $target doesn't exist" + fi +done +end=`date +%s` +buildTime=$(( $end - $start )) +buildTimeMM=$(( $buildTime / 60 )) +buildTimeSS=$(( $buildTime % 60 )) +echo "" +echo "Total build process time: ${buildTimeMM} min ${buildTimeSS} sec." diff --git a/zk-Timeplot-1.0_2/build.projects b/zk-Timeplot-1.0_2/build.projects new file mode 100755 index 000000000..162e330a9 --- /dev/null +++ b/zk-Timeplot-1.0_2/build.projects @@ -0,0 +1,10 @@ +fckez +dojoz +gmapsz +timelinez +zkflash +zkLayout +timeplotz +keylistener +#zkutest +#deploy \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/build.prop.xml b/zk-Timeplot-1.0_2/build.prop.xml new file mode 100755 index 000000000..ccc6b4ebc --- /dev/null +++ b/zk-Timeplot-1.0_2/build.prop.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zk-Timeplot-1.0_2/build.setting b/zk-Timeplot-1.0_2/build.setting new file mode 100755 index 000000000..1cd75d3c5 --- /dev/null +++ b/zk-Timeplot-1.0_2/build.setting @@ -0,0 +1,8 @@ +D.ON=true +javadoc=~/prj/javadoc +unzip=true +debug=true +optimize=true +zips=false +jboss.deploy=default/deploy +start.service=Apache Tomcat \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/build.target.xml b/zk-Timeplot-1.0_2/build.target.xml new file mode 100755 index 000000000..1f2ad7b72 --- /dev/null +++ b/zk-Timeplot-1.0_2/build.target.xml @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zk-Timeplot-1.0_2/build.txt b/zk-Timeplot-1.0_2/build.txt new file mode 100755 index 000000000..e67f6a2e6 --- /dev/null +++ b/zk-Timeplot-1.0_2/build.txt @@ -0,0 +1,125 @@ +build - a tool to build or clean up Java projects +Copyright (C) 2001-2004 Potix Corporation. All Rights Reserved. + +Usage: + build [command] [a=b] [project...] + +Commands: + help show this message + build.debug build the debug version (default) + build.release build the release version (br: shortcut) + clean clean up both debug and release + clean.debug clean up the debug versin (cd: shortcut) + clean.release clean up the debug versin (cr: shortcut) + utest.debug unit-test the debug version (ud: shortcut) + utest.release unit-test the release version (ur: shortcut) + javadoc generates javadoc (doc: shortcut) + verbose make ant in verbose mode + continue allow unit test to continue even encountering failures + unzip unzip ear/war into the deploy directory (as if unzip=true is specified) + a=b any pair of definitions. It is useful to control unit test. + +Notes: + * If no project specified, all projects in targetList are processed. + * If no command specified, build.debug is assumed. + * All arguments are case-sensitive + * Projects cannot be named with any space + * noear, verbose and continue, if specified, must be the first + arguments, and the sequence is important. + +---------- +Files located under .: +---------- +build.setting or build.setting.local + Controls how to build. build.setting is ignored if build.setting.local + exists. build.setting is part of SVN, while buil.setting.local is not. + D.ON=true or D.ON=false + Controls whether to turn on D.ON + javadoc=~/prj/javadoc + Specifies where to store Java apidocs. + zipjs=true + Optional. Default false. + Controls whether to compress the JavaScript files. + Note: a JavaScript file is compress only if zipjs=true AND + it matches zipjs specified in the deploy file + unzip=true + Optional. Default: false. + Controls whether to unzip files when deploying ear/war. + The files to unzip are specified in the deploy file (see below) + This flag cannot be overriden by specify the unzip command (see above) + debug=false + Optinal. Default: true if and only if D.ON is true + Controls whether to generate debug info. + optimize=true + Optinal. Default: true if and only if D.ON is false + Controls whether to optimize code generation. + +MANIFEST.MF (Must) + Used if the project doesn't contain MANIFEST.MF + +---------- +Files located under the project directory: +---------- +classpath + Secifies the classpath to run ant. + NOTE: it must be Unix format, i.e., separated by ':' + +version + Specifies the version (only first line is used) + +format + Specifies the resulted archive's format. It must be specified. + ear + The result archive is an ear. + jar + The result archive is a jar. + NOTE: Only src/archive/META-INF and src/archive/metainfo is included! + war + The result archive is a war. + NOTE: src/archive/META-INF and src/arhive/metainfo is excluded! + +deploy (Optional) + Specifies how to deploy the result. If omitted, no deployment occurs. + lib + Deploy the result to dist/lib as a shared library. + They are copied to server's lib if specified in server.libs. + They are merged to ear if specified in earlib.libs. + server + Deploy the result to a server as a bean or web container. + You must also specify a line: + app=YourAppName + + When deploying to server, you could place an extra line in this file + if you want to unzip ear into the deploy directory: + unzip=true + or + unzip=we.jar,we.war + Notice: this unzip option is enabled only if build.release is targeted + or unzip=true is found in build.setting.local. + +war.libs (Optional) + Specifies a list of libraries (one per line) under dist/lib/ext that + shall be packed to the result war (format must be war). + +server.libs (Optional) + Specifies a list of libraries (one per line) under dist/lib and + dist/lib/ext that shall be copied to the server's lib directory. + Used only deploy: server. + +ear.libs (Optional) + Specifies A list of libraries (one per line) under dist/lib + or dist/lib/ext that shall be packed to the result ear (format must be ear). + Used only if format: ear. + +import.libs (Optional) + Specifies a list of files (one per line) under dist/export that + shall be packed to the result war (format must be war). + Note: dist/export is generated if a project contains src/export. + +cactus.properties (Must if Web-based Unit Test) + Specifies the information required by web-based unit test codes. + +class.test.local (Optional) + Specifies a list of classes (one per line) that the unit test must + test. If no classes specified at all, all classes registered in all + AllTests.java files are tested. diff --git a/zk-Timeplot-1.0_2/build.xml b/zk-Timeplot-1.0_2/build.xml new file mode 100755 index 000000000..e6d76114e --- /dev/null +++ b/zk-Timeplot-1.0_2/build.xml @@ -0,0 +1,182 @@ + + + +]> + + + + + The internal potix build file for ant. + + + + &properties; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &targets; + + diff --git a/zk-Timeplot-1.0_2/dist/lib/timelinez.jar b/zk-Timeplot-1.0_2/dist/lib/timelinez.jar new file mode 100755 index 000000000..2f47a1135 Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/lib/timelinez.jar differ diff --git a/zk-Timeplot-1.0_2/dist/lib/timeplotz.jar b/zk-Timeplot-1.0_2/dist/lib/timeplotz.jar new file mode 100755 index 000000000..f68cfb1de Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/lib/timeplotz.jar differ diff --git a/zk-Timeplot-1.0_2/dist/lib/zcommon.jar b/zk-Timeplot-1.0_2/dist/lib/zcommon.jar new file mode 100755 index 000000000..c26243256 Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/lib/zcommon.jar differ diff --git a/zk-Timeplot-1.0_2/dist/lib/zk.jar b/zk-Timeplot-1.0_2/dist/lib/zk.jar new file mode 100755 index 000000000..c93998b04 Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/lib/zk.jar differ diff --git a/zk-Timeplot-1.0_2/dist/lib/zul.jar b/zk-Timeplot-1.0_2/dist/lib/zul.jar new file mode 100755 index 000000000..cc3ab72dc Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/lib/zul.jar differ diff --git a/zk-Timeplot-1.0_2/dist/lib/zweb.jar b/zk-Timeplot-1.0_2/dist/lib/zweb.jar new file mode 100755 index 000000000..aa30ae1bf Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/lib/zweb.jar differ diff --git a/zk-Timeplot-1.0_2/dist/src/timeplotz-sources.jar b/zk-Timeplot-1.0_2/dist/src/timeplotz-sources.jar new file mode 100755 index 000000000..0595af878 Binary files /dev/null and b/zk-Timeplot-1.0_2/dist/src/timeplotz-sources.jar differ diff --git a/zk-Timeplot-1.0_2/javadoc/allclasses-frame.html b/zk-Timeplot-1.0_2/javadoc/allclasses-frame.html new file mode 100755 index 000000000..5b6846b4b --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/allclasses-frame.html @@ -0,0 +1,57 @@ + + + + + + +All Classes (timeplotz 1.0_2 API) + + + + + + + + + + + +All Classes +
+ + + + + +
AverageOperator +
+DefaultTimeGeometry +
+DefaultValueGeometry +
+LogarithmicValueGeometry +
+Operator +
+PlotData +
+PlotDataSource +
+Plotinfo +
+SumOperator +
+TimeGeometry +
+Timeplot +
+TimeplotComponent +
+ValueGeometry +
+Version +
+
+ + + diff --git a/zk-Timeplot-1.0_2/javadoc/allclasses-noframe.html b/zk-Timeplot-1.0_2/javadoc/allclasses-noframe.html new file mode 100755 index 000000000..cf9b5b2ff --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/allclasses-noframe.html @@ -0,0 +1,57 @@ + + + + + + +All Classes (timeplotz 1.0_2 API) + + + + + + + + + + + +All Classes +
+ + + + + +
AverageOperator +
+DefaultTimeGeometry +
+DefaultValueGeometry +
+LogarithmicValueGeometry +
+Operator +
+PlotData +
+PlotDataSource +
+Plotinfo +
+SumOperator +
+TimeGeometry +
+Timeplot +
+TimeplotComponent +
+ValueGeometry +
+Version +
+
+ + + diff --git a/zk-Timeplot-1.0_2/javadoc/constant-values.html b/zk-Timeplot-1.0_2/javadoc/constant-values.html new file mode 100755 index 000000000..9ab4e7366 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/constant-values.html @@ -0,0 +1,216 @@ + + + + + + +Constant Field Values (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Constant Field Values

+
+
+Contents + + + + + + +
+org.zkforge.*
+ +

+ + + + + + + + + + + + +
org.zkforge.timeplot.Version
+public static final java.lang.StringUID"1.0_2"
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
org.zkforge.timeplot.geometry.ValueGeometry
+public static final java.lang.StringBOTTOM"bottom"
+public static final java.lang.StringLEFT"left"
+public static final java.lang.StringRIGHT"right"
+public static final java.lang.StringSHORT"short"
+public static final java.lang.StringTOP"top"
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/deprecated-list.html b/zk-Timeplot-1.0_2/javadoc/deprecated-list.html new file mode 100755 index 000000000..8be93b179 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/deprecated-list.html @@ -0,0 +1,146 @@ + + + + + + +Deprecated List (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Deprecated API

+
+
+Contents
    +
+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/help-doc.html b/zk-Timeplot-1.0_2/javadoc/help-doc.html new file mode 100755 index 000000000..279160d8f --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/help-doc.html @@ -0,0 +1,223 @@ + + + + + + +API Help (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Overview

+
+ +

+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    +
  • Interfaces (italic)
  • Classes
  • Enums
  • Exceptions
  • Errors
  • Annotation Types
+
+

+Class/Interface

+
+ +

+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description +

    +

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary +

    +

  • Field Detail
  • Constructor Detail
  • Method Detail
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+ +

+Annotation Type

+
+ +

+Each annotation type has its own separate page with the following sections:

    +
  • Annotation Type declaration
  • Annotation Type description
  • Required Element Summary
  • Optional Element Summary
  • Element Detail
+
+ +

+Enum

+
+ +

+Each enum has its own separate page with the following sections:

    +
  • Enum declaration
  • Enum description
  • Enum Constant Summary
  • Enum Constant Detail
+
+

+Use

+
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+

+Constant Field Values

+The Constant Field Values page lists the static final fields and their values. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/index-all.html b/zk-Timeplot-1.0_2/javadoc/index-all.html new file mode 100755 index 000000000..54ebb5f98 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/index-all.html @@ -0,0 +1,771 @@ + + + + + + +Index (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +A B D G I L M O P R S T U V
+

+A

+
+
addPlotData(PlotData) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
addPlotEvent(OccurEvent) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
AverageOperator - Class in org.zkforge.timeplot.operator
 
AverageOperator() - +Constructor for class org.zkforge.timeplot.operator.AverageOperator +
  +
+
+

+B

+
+
BOTTOM - +Static variable in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
+
+

+D

+
+
DefaultTimeGeometry - Class in org.zkforge.timeplot.geometry
 
DefaultTimeGeometry() - +Constructor for class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
DefaultValueGeometry - Class in org.zkforge.timeplot.geometry
 
DefaultValueGeometry() - +Constructor for class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
+
+

+G

+
+
getAxisColor() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getAxisColor() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getAxisColor() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getAxisColor() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getAxisColor() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getAxisLabelsPlacement() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getAxisLabelsPlacement() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getAxisLabelsPlacement() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getAxisLabelsPlacement() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getAxisLabelsPlacement() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getBubbleHeight() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getBubbleWidth() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getDataModel() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getDataSourceColumn() - +Method in class org.zkforge.timeplot.data.PlotDataSource +
  +
getDataSourceUri() - +Method in class org.zkforge.timeplot.data.PlotDataSource +
  +
getDotColor() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getDotRadius() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getEventLineWidth() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getEventModel() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getEventSourceUri() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getFillColor() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getGridColor() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getGridColor() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getGridColor() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getGridColor() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getGridColor() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getGridLineWidth() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getGridLineWidth() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getGridLineWidth() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getGridLineWidth() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getGridLineWidth() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getGridShortSize() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getGridShortSize() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getGridShortSize() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getGridSpacing() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getGridSpacing() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getGridSpacing() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getGridStep() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getGridStep() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getGridStepRange() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getGridStepRange() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getGridType() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getGridType() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getGridType() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getHeight() - +Method in class org.zkforge.timeplot.Timeplot +
  +
getId() - +Method in class org.zkforge.timeplot.data.PlotData +
  +
getInnerAttrs() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getInnerAttrs() - +Method in class org.zkforge.timeplot.Timeplot +
  +
getLineColor() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getLineWidth() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getMax() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getMax() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getMax() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getMax() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getMax() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getMin() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getMin() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getMin() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getMin() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getMin() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getOperator() - +Method in class org.zkforge.timeplot.operator.AverageOperator +
  +
getOperator() - +Method in interface org.zkforge.timeplot.operator.Operator +
  +
getOperator() - +Method in class org.zkforge.timeplot.operator.SumOperator +
  +
getOperator() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getParams() - +Method in class org.zkforge.timeplot.operator.AverageOperator +
  +
getParams() - +Method in interface org.zkforge.timeplot.operator.Operator +
  +
getParams() - +Method in class org.zkforge.timeplot.operator.SumOperator +
  +
getPlotDataSource() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getSeparator() - +Method in class org.zkforge.timeplot.data.PlotDataSource +
  +
getSize() - +Method in class org.zkforge.timeplot.operator.AverageOperator +
  +
getTime() - +Method in class org.zkforge.timeplot.data.PlotData +
  +
getTimeGeometry() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getTimeGeometryId() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getTimeGeometryId() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getTimeValuePosition() - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
getTimeValuePosition() - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
getValue() - +Method in class org.zkforge.timeplot.data.PlotData +
  +
getValueGeometry() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getValueGeometryId() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
getValueGeometryId() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
getValueGeometryId() - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
getValuesOpacity() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
getWidth() - +Method in class org.zkforge.timeplot.Timeplot +
  +
+
+

+I

+
+
invalidate() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
isRoundValues() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
isShowValues() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
+
+

+L

+
+
LEFT - +Static variable in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
LogarithmicValueGeometry - Class in org.zkforge.timeplot.geometry
 
LogarithmicValueGeometry() - +Constructor for class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
+
+

+M

+
+
modifyPlotData(PlotData) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
modifyPlotEvent(OccurEvent) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
+
+

+O

+
+
onListDataChange(ListDataEvent) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
onListEventChange(ListDataEvent) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
Operator - Interface in org.zkforge.timeplot.operator
 
org.zkforge.timeplot - package org.zkforge.timeplot
 
org.zkforge.timeplot.data - package org.zkforge.timeplot.data
 
org.zkforge.timeplot.geometry - package org.zkforge.timeplot.geometry
 
org.zkforge.timeplot.impl - package org.zkforge.timeplot.impl
 
org.zkforge.timeplot.operator - package org.zkforge.timeplot.operator
 
+
+

+P

+
+
PlotData - Class in org.zkforge.timeplot.data
 
PlotData() - +Constructor for class org.zkforge.timeplot.data.PlotData +
  +
PlotDataSource - Class in org.zkforge.timeplot.data
 
PlotDataSource() - +Constructor for class org.zkforge.timeplot.data.PlotDataSource +
  +
Plotinfo - Class in org.zkforge.timeplot
 
Plotinfo() - +Constructor for class org.zkforge.timeplot.Plotinfo +
  +
+
+

+R

+
+
removePlotData(PlotData) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
removePlotEvent(OccurEvent) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
repaint() - +Method in class org.zkforge.timeplot.Plotinfo +
  +
RIGHT - +Static variable in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
+
+

+S

+
+
setAxisColor(String) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setAxisColor(String) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setAxisColor(String) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setAxisColor(String) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setAxisColor(String) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setAxisLabelsPlacement(String) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setAxisLabelsPlacement(String) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setAxisLabelsPlacement(String) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setAxisLabelsPlacement(String) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setAxisLabelsPlacement(String) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setBubbleHeight(int) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setBubbleWidth(int) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setDataModel(ListModel) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setDataSourceColumn(int) - +Method in class org.zkforge.timeplot.data.PlotDataSource +
  +
setDataSourceUri(String) - +Method in class org.zkforge.timeplot.data.PlotDataSource +
  +
setDotColor(String) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setDotRadius(float) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setEventLineWidth(float) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setEventModel(ListModel) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setEventSourceUri(String) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setFillColor(String) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setGridColor(String) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setGridColor(String) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setGridColor(String) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setGridColor(String) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setGridColor(String) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setGridLineWidth(float) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setGridLineWidth(float) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setGridLineWidth(float) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setGridLineWidth(float) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setGridLineWidth(float) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setGridShortSize(int) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setGridShortSize(int) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setGridShortSize(int) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setGridSpacing(int) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setGridSpacing(int) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setGridSpacing(int) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setGridStep(int) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setGridStep(int) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setGridStepRange(int) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setGridStepRange(int) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setGridType(String) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setGridType(String) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setGridType(String) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setHeight(String) - +Method in class org.zkforge.timeplot.Timeplot +
  +
setId(int) - +Method in class org.zkforge.timeplot.data.PlotData +
  +
setLineColor(String) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setLineWidth(float) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setMax(int) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setMax(int) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setMax(int) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setMax(int) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setMax(int) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setMin(int) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setMin(int) - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
setMin(int) - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
setMin(int) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setMin(int) - +Method in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
setOperator(Operator) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setParent(Component) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setPlotDataSource(PlotDataSource) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setRoundValues(boolean) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setSeparator(String) - +Method in class org.zkforge.timeplot.data.PlotDataSource +
  +
setShowValues(boolean) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setSize(int) - +Method in class org.zkforge.timeplot.operator.AverageOperator +
  +
setTime(Date) - +Method in class org.zkforge.timeplot.data.PlotData +
  +
setTimeGeometry(TimeGeometry) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setTimeValuePosition(String) - +Method in class org.zkforge.timeplot.geometry.DefaultTimeGeometry +
  +
setTimeValuePosition(String) - +Method in interface org.zkforge.timeplot.geometry.TimeGeometry +
  +
setValue(float) - +Method in class org.zkforge.timeplot.data.PlotData +
  +
setValueGeometry(ValueGeometry) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setValuesOpacity(int) - +Method in class org.zkforge.timeplot.Plotinfo +
  +
setWidth(String) - +Method in class org.zkforge.timeplot.Timeplot +
  +
SHORT - +Static variable in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
SumOperator - Class in org.zkforge.timeplot.operator
 
SumOperator() - +Constructor for class org.zkforge.timeplot.operator.SumOperator +
  +
+
+

+T

+
+
TimeGeometry - Interface in org.zkforge.timeplot.geometry
 
Timeplot - Class in org.zkforge.timeplot
 
Timeplot() - +Constructor for class org.zkforge.timeplot.Timeplot +
  +
TimeplotComponent - Class in org.zkforge.timeplot.impl
 
TimeplotComponent() - +Constructor for class org.zkforge.timeplot.impl.TimeplotComponent +
  +
TOP - +Static variable in interface org.zkforge.timeplot.geometry.ValueGeometry +
  +
toString() - +Method in class org.zkforge.timeplot.data.PlotData +
  +
toString() - +Method in class org.zkforge.timeplot.geometry.DefaultValueGeometry +
  +
toString() - +Method in class org.zkforge.timeplot.geometry.LogarithmicValueGeometry +
  +
+
+

+U

+
+
UID - +Static variable in class org.zkforge.timeplot.Version +
  +
+
+

+V

+
+
ValueGeometry - Interface in org.zkforge.timeplot.geometry
 
Version - Class in org.zkforge.timeplot
 
Version() - +Constructor for class org.zkforge.timeplot.Version +
  +
+
+A B D G I L M O P R S T U V + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/index.html b/zk-Timeplot-1.0_2/javadoc/index.html new file mode 100755 index 000000000..2b2727531 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/index.html @@ -0,0 +1,39 @@ + + + + + + +timeplotz 1.0_2 API + + + + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="overview-summary.html">Non-frame version.</A> + + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Plotinfo.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Plotinfo.html new file mode 100755 index 000000000..75be0d746 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Plotinfo.html @@ -0,0 +1,1227 @@ + + + + + + +Plotinfo (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot +
+Class Plotinfo

+
+java.lang.Object
+  extended by org.zkoss.zk.ui.AbstractComponent
+      extended by org.zkoss.zk.ui.HtmlBasedComponent
+          extended by org.zkforge.timeplot.impl.TimeplotComponent
+              extended by org.zkforge.timeplot.Plotinfo
+
+
+
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.sys.ComponentCtrl
+
+
+
+
public class Plotinfo
extends TimeplotComponent
+ + +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
RS_NO_DISPLAY, RS_NO_HEIGHT, RS_NO_WIDTH
+ + + + + + + +
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
+  + + + + + + + + + + +
+Constructor Summary
Plotinfo() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddPlotData(PlotData pd) + +
+           
+ voidaddPlotEvent(org.zkforge.timeline.data.OccurEvent oe) + +
+           
+ intgetBubbleHeight() + +
+           
+ intgetBubbleWidth() + +
+           
+ org.zkoss.zul.ListModelgetDataModel() + +
+           
+ java.lang.StringgetDotColor() + +
+           
+ floatgetDotRadius() + +
+           
+ floatgetEventLineWidth() + +
+           
+ org.zkoss.zul.ListModelgetEventModel() + +
+           
+ java.lang.StringgetEventSourceUri() + +
+           
+ java.lang.StringgetFillColor() + +
+           
+ java.lang.StringgetInnerAttrs() + +
+           
+ java.lang.StringgetLineColor() + +
+           
+ floatgetLineWidth() + +
+           
+ OperatorgetOperator() + +
+           
+ PlotDataSourcegetPlotDataSource() + +
+           
+ TimeGeometrygetTimeGeometry() + +
+           
+ ValueGeometrygetValueGeometry() + +
+           
+ intgetValuesOpacity() + +
+           
+ voidinvalidate() + +
+           
+ booleanisRoundValues() + +
+           
+ booleanisShowValues() + +
+           
+ voidmodifyPlotData(PlotData pd) + +
+           
+ voidmodifyPlotEvent(org.zkforge.timeline.data.OccurEvent oe) + +
+           
+protected  voidonListDataChange(org.zkoss.zul.event.ListDataEvent event) + +
+           
+protected  voidonListEventChange(org.zkoss.zul.event.ListDataEvent event) + +
+           
+ voidremovePlotData(PlotData pd) + +
+           
+ voidremovePlotEvent(org.zkforge.timeline.data.OccurEvent oe) + +
+           
+ voidrepaint() + +
+           
+ voidsetBubbleHeight(int bubbleHeight) + +
+           
+ voidsetBubbleWidth(int bubbleWidth) + +
+           
+ voidsetDataModel(org.zkoss.zul.ListModel dataModel) + +
+           
+ voidsetDotColor(java.lang.String dotColor) + +
+           
+ voidsetDotRadius(float dotRadius) + +
+           
+ voidsetEventLineWidth(float eventLineWidth) + +
+           
+ voidsetEventModel(org.zkoss.zul.ListModel eventModel) + +
+           
+ voidsetEventSourceUri(java.lang.String eventSourceUri) + +
+           
+ voidsetFillColor(java.lang.String fillColor) + +
+           
+ voidsetLineColor(java.lang.String lineColor) + +
+           
+ voidsetLineWidth(float lineWidth) + +
+           
+ voidsetOperator(Operator operator) + +
+           
+ voidsetParent(org.zkoss.zk.ui.Component parent) + +
+           
+ voidsetPlotDataSource(PlotDataSource pds) + +
+           
+ voidsetRoundValues(boolean roundValues) + +
+           
+ voidsetShowValues(boolean showValues) + +
+           
+ voidsetTimeGeometry(TimeGeometry timeGeometry) + +
+           
+ voidsetValueGeometry(ValueGeometry valueGeometry) + +
+           
+ voidsetValuesOpacity(int valuesOpacity) + +
+           
+ + + + + + + +
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getDraggable, getDroppable, getHeight, getLeft, getOuterAttrs, getRealSclass, getRealStyle, getRealStyleFlags, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZIndex, newExtraCtrl, setClass, setDraggable, setDroppable, setHeight, setLeft, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZIndex
+ + + + + + + +
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addEventHandler, addEventListener, addForward, addForward, addMoved, addSharedAnnotationMap, addSharedEventHandlerMap, appendAsapAttr, appendChild, applyProperties, clone, containsVariable, detach, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttributes, getAttributes, getChildren, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getExtraCtrl, getFellow, getFellowIfAny, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getMoldURI, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getPropagatee, getRoot, getSpaceOwner, getUuid, getVariable, insertBefore, isAsapRequired, isChildable, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onDrawNewChild, onPageAttached, onPageDetached, onWrongValue, redraw, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, response, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setComponentDefinition, setId, setMold, setPage, setPageBefore, setVariable, setVisible, smartUpdate, smartUpdate, smartUpdate, smartUpdateDeferred, toString, unsetVariable
+ + + + + + + +
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+Plotinfo

+
+public Plotinfo()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getInnerAttrs

+
+public java.lang.String getInnerAttrs()
+
+
+
Overrides:
getInnerAttrs in class org.zkoss.zk.ui.HtmlBasedComponent
+
+
+
+
+
+
+ +

+getBubbleHeight

+
+public int getBubbleHeight()
+
+
+
+
+
+
+ +

+setBubbleHeight

+
+public void setBubbleHeight(int bubbleHeight)
+
+
+
+
+
+
+ +

+getBubbleWidth

+
+public int getBubbleWidth()
+
+
+
+
+
+
+ +

+setBubbleWidth

+
+public void setBubbleWidth(int bubbleWidth)
+
+
+
+
+
+
+ +

+getPlotDataSource

+
+public PlotDataSource getPlotDataSource()
+
+
+
+
+
+
+ +

+setPlotDataSource

+
+public void setPlotDataSource(PlotDataSource pds)
+
+
+
+
+
+
+ +

+getDotColor

+
+public java.lang.String getDotColor()
+
+
+
+
+
+
+ +

+setDotColor

+
+public void setDotColor(java.lang.String dotColor)
+
+
+
+
+
+
+ +

+getDotRadius

+
+public float getDotRadius()
+
+
+
+
+
+
+ +

+setDotRadius

+
+public void setDotRadius(float dotRadius)
+
+
+
+
+
+
+ +

+getEventLineWidth

+
+public float getEventLineWidth()
+
+
+
+
+
+
+ +

+setEventLineWidth

+
+public void setEventLineWidth(float eventLineWidth)
+
+
+
+
+
+
+ +

+getEventSourceUri

+
+public java.lang.String getEventSourceUri()
+
+
+
+
+
+
+ +

+setEventSourceUri

+
+public void setEventSourceUri(java.lang.String eventSourceUri)
+
+
+
+
+
+
+ +

+repaint

+
+public void repaint()
+
+
+
+
+
+
+ +

+getFillColor

+
+public java.lang.String getFillColor()
+
+
+
+
+
+
+ +

+setFillColor

+
+public void setFillColor(java.lang.String fillColor)
+
+
+
+
+
+
+ +

+getLineColor

+
+public java.lang.String getLineColor()
+
+
+
+
+
+
+ +

+setLineColor

+
+public void setLineColor(java.lang.String lineColor)
+
+
+
+
+
+
+ +

+getLineWidth

+
+public float getLineWidth()
+
+
+
+
+
+
+ +

+setLineWidth

+
+public void setLineWidth(float lineWidth)
+
+
+
+
+
+
+ +

+isRoundValues

+
+public boolean isRoundValues()
+
+
+
+
+
+
+ +

+setRoundValues

+
+public void setRoundValues(boolean roundValues)
+
+
+
+
+
+
+ +

+isShowValues

+
+public boolean isShowValues()
+
+
+
+
+
+
+ +

+setShowValues

+
+public void setShowValues(boolean showValues)
+
+
+
+
+
+
+ +

+getValuesOpacity

+
+public int getValuesOpacity()
+
+
+
+
+
+
+ +

+setValuesOpacity

+
+public void setValuesOpacity(int valuesOpacity)
+
+
+
+
+
+
+ +

+addPlotEvent

+
+public void addPlotEvent(org.zkforge.timeline.data.OccurEvent oe)
+
+
+
+
+
+
+ +

+modifyPlotEvent

+
+public void modifyPlotEvent(org.zkforge.timeline.data.OccurEvent oe)
+
+
+
+
+
+
+ +

+removePlotEvent

+
+public void removePlotEvent(org.zkforge.timeline.data.OccurEvent oe)
+
+
+
+
+
+
+ +

+addPlotData

+
+public void addPlotData(PlotData pd)
+
+
+
+
+
+
+ +

+modifyPlotData

+
+public void modifyPlotData(PlotData pd)
+
+
+
+
+
+
+ +

+removePlotData

+
+public void removePlotData(PlotData pd)
+
+
+
+
+
+
+ +

+getDataModel

+
+public org.zkoss.zul.ListModel getDataModel()
+
+
+
+
+
+
+ +

+setDataModel

+
+public void setDataModel(org.zkoss.zul.ListModel dataModel)
+
+
+
+
+
+
+ +

+onListDataChange

+
+protected void onListDataChange(org.zkoss.zul.event.ListDataEvent event)
+
+
+
+
+
+
+ +

+getEventModel

+
+public org.zkoss.zul.ListModel getEventModel()
+
+
+
+
+
+
+ +

+setEventModel

+
+public void setEventModel(org.zkoss.zul.ListModel eventModel)
+
+
+
+
+
+
+ +

+onListEventChange

+
+protected void onListEventChange(org.zkoss.zul.event.ListDataEvent event)
+
+
+
+
+
+
+ +

+getTimeGeometry

+
+public TimeGeometry getTimeGeometry()
+
+
+
+
+
+
+ +

+setTimeGeometry

+
+public void setTimeGeometry(TimeGeometry timeGeometry)
+
+
+
+
+
+
+ +

+getValueGeometry

+
+public ValueGeometry getValueGeometry()
+
+
+
+
+
+
+ +

+setValueGeometry

+
+public void setValueGeometry(ValueGeometry valueGeometry)
+
+
+
+
+
+
+ +

+getOperator

+
+public Operator getOperator()
+
+
+ +
Returns:
the operator
+
+
+
+ +

+setOperator

+
+public void setOperator(Operator operator)
+
+
+
Parameters:
operator - the operator to set
+
+
+
+ +

+invalidate

+
+public void invalidate()
+
+
+
Specified by:
invalidate in interface org.zkoss.zk.ui.Component
Overrides:
invalidate in class org.zkoss.zk.ui.AbstractComponent
+
+
+
+
+
+
+ +

+setParent

+
+public void setParent(org.zkoss.zk.ui.Component parent)
+
+
+
Specified by:
setParent in interface org.zkoss.zk.ui.Component
Overrides:
setParent in class org.zkoss.zk.ui.AbstractComponent
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Timeplot.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Timeplot.html new file mode 100755 index 000000000..52ee3b91d --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Timeplot.html @@ -0,0 +1,415 @@ + + + + + + +Timeplot (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot +
+Class Timeplot

+
+java.lang.Object
+  extended by org.zkoss.zk.ui.AbstractComponent
+      extended by org.zkoss.zk.ui.HtmlBasedComponent
+          extended by org.zkforge.timeplot.impl.TimeplotComponent
+              extended by org.zkforge.timeplot.Timeplot
+
+
+
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.sys.ComponentCtrl
+
+
+
+
public class Timeplot
extends TimeplotComponent
+ + +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
RS_NO_DISPLAY, RS_NO_HEIGHT, RS_NO_WIDTH
+ + + + + + + +
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
+  + + + + + + + + + + +
+Constructor Summary
Timeplot() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetHeight() + +
+           
+ java.lang.StringgetInnerAttrs() + +
+           
+ java.lang.StringgetWidth() + +
+           
+ voidsetHeight(java.lang.String height) + +
+           
+ voidsetWidth(java.lang.String width) + +
+           
+ + + + + + + +
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getDraggable, getDroppable, getLeft, getOuterAttrs, getRealSclass, getRealStyle, getRealStyleFlags, getSclass, getStyle, getTooltiptext, getTop, getZIndex, newExtraCtrl, setClass, setDraggable, setDroppable, setLeft, setSclass, setStyle, setTooltiptext, setTop, setZIndex
+ + + + + + + +
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addEventHandler, addEventListener, addForward, addForward, addMoved, addSharedAnnotationMap, addSharedEventHandlerMap, appendAsapAttr, appendChild, applyProperties, clone, containsVariable, detach, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttributes, getAttributes, getChildren, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getExtraCtrl, getFellow, getFellowIfAny, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getMoldURI, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getPropagatee, getRoot, getSpaceOwner, getUuid, getVariable, insertBefore, invalidate, isAsapRequired, isChildable, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onDrawNewChild, onPageAttached, onPageDetached, onWrongValue, redraw, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, response, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setComponentDefinition, setId, setMold, setPage, setPageBefore, setParent, setVariable, setVisible, smartUpdate, smartUpdate, smartUpdate, smartUpdateDeferred, toString, unsetVariable
+ + + + + + + +
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+Timeplot

+
+public Timeplot()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getInnerAttrs

+
+public java.lang.String getInnerAttrs()
+
+
+
Overrides:
getInnerAttrs in class org.zkoss.zk.ui.HtmlBasedComponent
+
+
+
+
+
+
+ +

+getHeight

+
+public java.lang.String getHeight()
+
+
+
Overrides:
getHeight in class org.zkoss.zk.ui.HtmlBasedComponent
+
+
+
+
+
+
+ +

+setHeight

+
+public void setHeight(java.lang.String height)
+
+
+
Overrides:
setHeight in class org.zkoss.zk.ui.HtmlBasedComponent
+
+
+
+
+
+
+ +

+getWidth

+
+public java.lang.String getWidth()
+
+
+
Overrides:
getWidth in class org.zkoss.zk.ui.HtmlBasedComponent
+
+
+
+
+
+
+ +

+setWidth

+
+public void setWidth(java.lang.String width)
+
+
+
Overrides:
setWidth in class org.zkoss.zk.ui.HtmlBasedComponent
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Version.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Version.html new file mode 100755 index 000000000..3c4b635a3 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/Version.html @@ -0,0 +1,260 @@ + + + + + + +Version (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot +
+Class Version

+
+java.lang.Object
+  extended by org.zkforge.timeplot.Version
+
+
+
+
public class Version
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + +
+Field Summary
+static java.lang.StringUID + +
+           
+  + + + + + + + + + + +
+Constructor Summary
Version() + +
+           
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+UID

+
+public static final java.lang.String UID
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Constructor Detail
+ +

+Version

+
+public Version()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Plotinfo.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Plotinfo.html new file mode 100755 index 000000000..971188892 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Plotinfo.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.Plotinfo (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.Plotinfo

+
+No usage of org.zkforge.timeplot.Plotinfo +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Timeplot.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Timeplot.html new file mode 100755 index 000000000..efa7139d5 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Timeplot.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.Timeplot (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.Timeplot

+
+No usage of org.zkforge.timeplot.Timeplot +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Version.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Version.html new file mode 100755 index 000000000..ee5aad2cf --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/class-use/Version.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.Version (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.Version

+
+No usage of org.zkforge.timeplot.Version +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/PlotData.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/PlotData.html new file mode 100755 index 000000000..569d20159 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/PlotData.html @@ -0,0 +1,369 @@ + + + + + + +PlotData (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.data +
+Class PlotData

+
+java.lang.Object
+  extended by org.zkforge.timeplot.data.PlotData
+
+
+
+
public class PlotData
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
PlotData() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetId() + +
+           
+ java.util.DategetTime() + +
+           
+ floatgetValue() + +
+           
+ voidsetId(int id) + +
+           
+ voidsetTime(java.util.Date time) + +
+           
+ voidsetValue(float value) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+PlotData

+
+public PlotData()
+
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+getId

+
+public int getId()
+
+
+
+
+
+
+ +

+setId

+
+public void setId(int id)
+
+
+
+
+
+
+ +

+getTime

+
+public java.util.Date getTime()
+
+
+
+
+
+
+ +

+setTime

+
+public void setTime(java.util.Date time)
+
+
+
+
+
+
+ +

+getValue

+
+public float getValue()
+
+
+
+
+
+
+ +

+setValue

+
+public void setValue(float value)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/PlotDataSource.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/PlotDataSource.html new file mode 100755 index 000000000..28d94adcd --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/PlotDataSource.html @@ -0,0 +1,347 @@ + + + + + + +PlotDataSource (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.data +
+Class PlotDataSource

+
+java.lang.Object
+  extended by org.zkforge.timeplot.data.PlotDataSource
+
+
+
+
public class PlotDataSource
extends java.lang.Object
+ + +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
PlotDataSource() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ intgetDataSourceColumn() + +
+           
+ java.lang.StringgetDataSourceUri() + +
+           
+ java.lang.StringgetSeparator() + +
+           
+ voidsetDataSourceColumn(int dataSourceColumn) + +
+           
+ voidsetDataSourceUri(java.lang.String dataSourceUri) + +
+           
+ voidsetSeparator(java.lang.String separator) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+PlotDataSource

+
+public PlotDataSource()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getDataSourceColumn

+
+public int getDataSourceColumn()
+
+
+
+
+
+
+ +

+setDataSourceColumn

+
+public void setDataSourceColumn(int dataSourceColumn)
+
+
+
+
+
+
+ +

+getDataSourceUri

+
+public java.lang.String getDataSourceUri()
+
+
+
+
+
+
+ +

+setDataSourceUri

+
+public void setDataSourceUri(java.lang.String dataSourceUri)
+
+
+
+
+
+
+ +

+getSeparator

+
+public java.lang.String getSeparator()
+
+
+
+
+
+
+ +

+setSeparator

+
+public void setSeparator(java.lang.String separator)
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/class-use/PlotData.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/class-use/PlotData.html new file mode 100755 index 000000000..9206e7e14 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/class-use/PlotData.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class org.zkforge.timeplot.data.PlotData (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.data.PlotData

+
+ + + + + + + + + +
+Packages that use PlotData
org.zkforge.timeplot  
+  +

+ + + + + +
+Uses of PlotData in org.zkforge.timeplot
+  +

+ + + + + + + + + + + + + + + + + +
Methods in org.zkforge.timeplot with parameters of type PlotData
+ voidPlotinfo.addPlotData(PlotData pd) + +
+           
+ voidPlotinfo.modifyPlotData(PlotData pd) + +
+           
+ voidPlotinfo.removePlotData(PlotData pd) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/class-use/PlotDataSource.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/class-use/PlotDataSource.html new file mode 100755 index 000000000..eb4744443 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/class-use/PlotDataSource.html @@ -0,0 +1,196 @@ + + + + + + +Uses of Class org.zkforge.timeplot.data.PlotDataSource (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.data.PlotDataSource

+
+ + + + + + + + + +
+Packages that use PlotDataSource
org.zkforge.timeplot  
+  +

+ + + + + +
+Uses of PlotDataSource in org.zkforge.timeplot
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot that return PlotDataSource
+ PlotDataSourcePlotinfo.getPlotDataSource() + +
+           
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot with parameters of type PlotDataSource
+ voidPlotinfo.setPlotDataSource(PlotDataSource pds) + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-frame.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-frame.html new file mode 100755 index 000000000..addc4a11f --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-frame.html @@ -0,0 +1,34 @@ + + + + + + +org.zkforge.timeplot.data (timeplotz 1.0_2 API) + + + + + + + + + + + +org.zkforge.timeplot.data + + + + +
+Classes  + +
+PlotData +
+PlotDataSource
+ + + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-summary.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-summary.html new file mode 100755 index 000000000..a9b4d6244 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-summary.html @@ -0,0 +1,161 @@ + + + + + + +org.zkforge.timeplot.data (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.zkforge.timeplot.data +

+ + + + + + + + + + + + + +
+Class Summary
PlotData 
PlotDataSource 
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-tree.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-tree.html new file mode 100755 index 000000000..eeb2d9cb2 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-tree.html @@ -0,0 +1,153 @@ + + + + + + +org.zkforge.timeplot.data Class Hierarchy (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.zkforge.timeplot.data +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-use.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-use.html new file mode 100755 index 000000000..01b6a0061 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/data/package-use.html @@ -0,0 +1,176 @@ + + + + + + +Uses of Package org.zkforge.timeplot.data (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.zkforge.timeplot.data

+
+ + + + + + + + + +
+Packages that use org.zkforge.timeplot.data
org.zkforge.timeplot  
+  +

+ + + + + + + + + + + +
+Classes in org.zkforge.timeplot.data used by org.zkforge.timeplot
PlotData + +
+           
PlotDataSource + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/DefaultTimeGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/DefaultTimeGeometry.html new file mode 100755 index 000000000..e9111e53d --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/DefaultTimeGeometry.html @@ -0,0 +1,654 @@ + + + + + + +DefaultTimeGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.geometry +
+Class DefaultTimeGeometry

+
+java.lang.Object
+  extended by org.zkforge.timeplot.geometry.DefaultTimeGeometry
+
+
+
All Implemented Interfaces:
TimeGeometry
+
+
+
+
public class DefaultTimeGeometry
extends java.lang.Object
implements TimeGeometry
+ + +

+


+ +

+ + + + + + + + + + + +
+Constructor Summary
DefaultTimeGeometry() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAxisColor() + +
+           
+ java.lang.StringgetAxisLabelsPlacement() + +
+           
+ java.lang.StringgetGridColor() + +
+           
+ floatgetGridLineWidth() + +
+           
+ intgetGridStep() + +
+           
+ intgetGridStepRange() + +
+           
+ intgetMax() + +
+           
+ intgetMin() + +
+           
+ intgetTimeGeometryId() + +
+           
+ java.lang.StringgetTimeValuePosition() + +
+           
+ voidsetAxisColor(java.lang.String axisColor) + +
+           
+ voidsetAxisLabelsPlacement(java.lang.String axisLabelsPlacement) + +
+           
+ voidsetGridColor(java.lang.String gridColor) + +
+           
+ voidsetGridLineWidth(float gridLineWidth) + +
+           
+ voidsetGridStep(int gridStep) + +
+           
+ voidsetGridStepRange(int gridStepRange) + +
+           
+ voidsetMax(int max) + +
+           
+ voidsetMin(int min) + +
+           
+ voidsetTimeValuePosition(java.lang.String timeValuePosition) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+DefaultTimeGeometry

+
+public DefaultTimeGeometry()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getAxisColor

+
+public java.lang.String getAxisColor()
+
+
+
Specified by:
getAxisColor in interface TimeGeometry
+
+
+
+
+
+
+ +

+setAxisColor

+
+public void setAxisColor(java.lang.String axisColor)
+
+
+
Specified by:
setAxisColor in interface TimeGeometry
+
+
+
+
+
+
+ +

+getAxisLabelsPlacement

+
+public java.lang.String getAxisLabelsPlacement()
+
+
+
Specified by:
getAxisLabelsPlacement in interface TimeGeometry
+
+
+
+
+
+
+ +

+setAxisLabelsPlacement

+
+public void setAxisLabelsPlacement(java.lang.String axisLabelsPlacement)
+
+
+
Specified by:
setAxisLabelsPlacement in interface TimeGeometry
+
+
+
+
+
+
+ +

+getGridColor

+
+public java.lang.String getGridColor()
+
+
+
Specified by:
getGridColor in interface TimeGeometry
+
+
+
+
+
+
+ +

+setGridColor

+
+public void setGridColor(java.lang.String gridColor)
+
+
+
Specified by:
setGridColor in interface TimeGeometry
+
+
+
+
+
+
+ +

+getGridLineWidth

+
+public float getGridLineWidth()
+
+
+
Specified by:
getGridLineWidth in interface TimeGeometry
+
+
+
+
+
+
+ +

+setGridLineWidth

+
+public void setGridLineWidth(float gridLineWidth)
+
+
+
Specified by:
setGridLineWidth in interface TimeGeometry
+
+
+
+
+
+
+ +

+getGridStep

+
+public int getGridStep()
+
+
+
Specified by:
getGridStep in interface TimeGeometry
+
+
+
+
+
+
+ +

+setGridStep

+
+public void setGridStep(int gridStep)
+
+
+
Specified by:
setGridStep in interface TimeGeometry
+
+
+
+
+
+
+ +

+getGridStepRange

+
+public int getGridStepRange()
+
+
+
Specified by:
getGridStepRange in interface TimeGeometry
+
+
+
+
+
+
+ +

+setGridStepRange

+
+public void setGridStepRange(int gridStepRange)
+
+
+
Specified by:
setGridStepRange in interface TimeGeometry
+
+
+
+
+
+
+ +

+getMax

+
+public int getMax()
+
+
+
Specified by:
getMax in interface TimeGeometry
+
+
+
+
+
+
+ +

+setMax

+
+public void setMax(int max)
+
+
+
Specified by:
setMax in interface TimeGeometry
+
+
+
+
+
+
+ +

+getMin

+
+public int getMin()
+
+
+
Specified by:
getMin in interface TimeGeometry
+
+
+
+
+
+
+ +

+setMin

+
+public void setMin(int min)
+
+
+
Specified by:
setMin in interface TimeGeometry
+
+
+
+
+
+
+ +

+getTimeValuePosition

+
+public java.lang.String getTimeValuePosition()
+
+
+
Specified by:
getTimeValuePosition in interface TimeGeometry
+
+
+
+
+
+
+ +

+setTimeValuePosition

+
+public void setTimeValuePosition(java.lang.String timeValuePosition)
+
+
+
Specified by:
setTimeValuePosition in interface TimeGeometry
+
+
+
+
+
+
+ +

+getTimeGeometryId

+
+public int getTimeGeometryId()
+
+
+
Specified by:
getTimeGeometryId in interface TimeGeometry
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/DefaultValueGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/DefaultValueGeometry.html new file mode 100755 index 000000000..37d639cfe --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/DefaultValueGeometry.html @@ -0,0 +1,694 @@ + + + + + + +DefaultValueGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.geometry +
+Class DefaultValueGeometry

+
+java.lang.Object
+  extended by org.zkforge.timeplot.geometry.DefaultValueGeometry
+
+
+
All Implemented Interfaces:
ValueGeometry
+
+
+
+
public class DefaultValueGeometry
extends java.lang.Object
implements ValueGeometry
+ + +

+


+ +

+ + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.zkforge.timeplot.geometry.ValueGeometry
BOTTOM, LEFT, RIGHT, SHORT, TOP
+  + + + + + + + + + + +
+Constructor Summary
DefaultValueGeometry() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAxisColor() + +
+           
+ java.lang.StringgetAxisLabelsPlacement() + +
+           
+ java.lang.StringgetGridColor() + +
+           
+ floatgetGridLineWidth() + +
+           
+ intgetGridShortSize() + +
+           
+ intgetGridSpacing() + +
+           
+ java.lang.StringgetGridType() + +
+           
+ intgetMax() + +
+           
+ intgetMin() + +
+           
+ intgetValueGeometryId() + +
+           
+ voidsetAxisColor(java.lang.String axisColor) + +
+           
+ voidsetAxisLabelsPlacement(java.lang.String axisLabelsPlacement) + +
+           
+ voidsetGridColor(java.lang.String gridColor) + +
+           
+ voidsetGridLineWidth(float gridLineWidth) + +
+           
+ voidsetGridShortSize(int gridShortSize) + +
+           
+ voidsetGridSpacing(int gridSpacing) + +
+           
+ voidsetGridType(java.lang.String gridType) + +
+           
+ voidsetMax(int max) + +
+           
+ voidsetMin(int min) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+DefaultValueGeometry

+
+public DefaultValueGeometry()
+
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+getAxisColor

+
+public java.lang.String getAxisColor()
+
+
+
Specified by:
getAxisColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+setAxisColor

+
+public void setAxisColor(java.lang.String axisColor)
+
+
+
Specified by:
setAxisColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+getAxisLabelsPlacement

+
+public java.lang.String getAxisLabelsPlacement()
+
+
+
Specified by:
getAxisLabelsPlacement in interface ValueGeometry
+
+
+
+
+
+
+ +

+setAxisLabelsPlacement

+
+public void setAxisLabelsPlacement(java.lang.String axisLabelsPlacement)
+
+
+
Specified by:
setAxisLabelsPlacement in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridColor

+
+public java.lang.String getGridColor()
+
+
+
Specified by:
getGridColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridColor

+
+public void setGridColor(java.lang.String gridColor)
+
+
+
Specified by:
setGridColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridLineWidth

+
+public float getGridLineWidth()
+
+
+
Specified by:
getGridLineWidth in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridLineWidth

+
+public void setGridLineWidth(float gridLineWidth)
+
+
+
Specified by:
setGridLineWidth in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridShortSize

+
+public int getGridShortSize()
+
+
+
Specified by:
getGridShortSize in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridShortSize

+
+public void setGridShortSize(int gridShortSize)
+
+
+
Specified by:
setGridShortSize in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridSpacing

+
+public int getGridSpacing()
+
+
+
Specified by:
getGridSpacing in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridSpacing

+
+public void setGridSpacing(int gridSpacing)
+
+
+
Specified by:
setGridSpacing in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridType

+
+public java.lang.String getGridType()
+
+
+
Specified by:
getGridType in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridType

+
+public void setGridType(java.lang.String gridType)
+
+
+
Specified by:
setGridType in interface ValueGeometry
+
+
+
+
+
+
+ +

+getMax

+
+public int getMax()
+
+
+
Specified by:
getMax in interface ValueGeometry
+
+
+
+
+
+
+ +

+setMax

+
+public void setMax(int max)
+
+
+
Specified by:
setMax in interface ValueGeometry
+
+
+
+
+
+
+ +

+getMin

+
+public int getMin()
+
+
+
Specified by:
getMin in interface ValueGeometry
+
+
+
+
+
+
+ +

+setMin

+
+public void setMin(int min)
+
+
+
Specified by:
setMin in interface ValueGeometry
+
+
+
+
+
+
+ +

+getValueGeometryId

+
+public int getValueGeometryId()
+
+
+
Specified by:
getValueGeometryId in interface ValueGeometry
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/LogarithmicValueGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/LogarithmicValueGeometry.html new file mode 100755 index 000000000..3b8e33c7f --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/LogarithmicValueGeometry.html @@ -0,0 +1,694 @@ + + + + + + +LogarithmicValueGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.geometry +
+Class LogarithmicValueGeometry

+
+java.lang.Object
+  extended by org.zkforge.timeplot.geometry.LogarithmicValueGeometry
+
+
+
All Implemented Interfaces:
ValueGeometry
+
+
+
+
public class LogarithmicValueGeometry
extends java.lang.Object
implements ValueGeometry
+ + +

+


+ +

+ + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from interface org.zkforge.timeplot.geometry.ValueGeometry
BOTTOM, LEFT, RIGHT, SHORT, TOP
+  + + + + + + + + + + +
+Constructor Summary
LogarithmicValueGeometry() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAxisColor() + +
+           
+ java.lang.StringgetAxisLabelsPlacement() + +
+           
+ java.lang.StringgetGridColor() + +
+           
+ floatgetGridLineWidth() + +
+           
+ intgetGridShortSize() + +
+           
+ intgetGridSpacing() + +
+           
+ java.lang.StringgetGridType() + +
+           
+ intgetMax() + +
+           
+ intgetMin() + +
+           
+ intgetValueGeometryId() + +
+           
+ voidsetAxisColor(java.lang.String axisColor) + +
+           
+ voidsetAxisLabelsPlacement(java.lang.String axisLabelsPlacement) + +
+           
+ voidsetGridColor(java.lang.String gridColor) + +
+           
+ voidsetGridLineWidth(float gridLineWidth) + +
+           
+ voidsetGridShortSize(int gridShortSize) + +
+           
+ voidsetGridSpacing(int gridSpacing) + +
+           
+ voidsetGridType(java.lang.String gridType) + +
+           
+ voidsetMax(int max) + +
+           
+ voidsetMin(int min) + +
+           
+ java.lang.StringtoString() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+LogarithmicValueGeometry

+
+public LogarithmicValueGeometry()
+
+
+ + + + + + + + +
+Method Detail
+ +

+toString

+
+public java.lang.String toString()
+
+
+
Overrides:
toString in class java.lang.Object
+
+
+
+
+
+
+ +

+getAxisColor

+
+public java.lang.String getAxisColor()
+
+
+
Specified by:
getAxisColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+setAxisColor

+
+public void setAxisColor(java.lang.String axisColor)
+
+
+
Specified by:
setAxisColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+getAxisLabelsPlacement

+
+public java.lang.String getAxisLabelsPlacement()
+
+
+
Specified by:
getAxisLabelsPlacement in interface ValueGeometry
+
+
+
+
+
+
+ +

+setAxisLabelsPlacement

+
+public void setAxisLabelsPlacement(java.lang.String axisLabelsPlacement)
+
+
+
Specified by:
setAxisLabelsPlacement in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridColor

+
+public java.lang.String getGridColor()
+
+
+
Specified by:
getGridColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridColor

+
+public void setGridColor(java.lang.String gridColor)
+
+
+
Specified by:
setGridColor in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridLineWidth

+
+public float getGridLineWidth()
+
+
+
Specified by:
getGridLineWidth in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridLineWidth

+
+public void setGridLineWidth(float gridLineWidth)
+
+
+
Specified by:
setGridLineWidth in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridShortSize

+
+public int getGridShortSize()
+
+
+
Specified by:
getGridShortSize in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridShortSize

+
+public void setGridShortSize(int gridShortSize)
+
+
+
Specified by:
setGridShortSize in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridSpacing

+
+public int getGridSpacing()
+
+
+
Specified by:
getGridSpacing in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridSpacing

+
+public void setGridSpacing(int gridSpacing)
+
+
+
Specified by:
setGridSpacing in interface ValueGeometry
+
+
+
+
+
+
+ +

+getGridType

+
+public java.lang.String getGridType()
+
+
+
Specified by:
getGridType in interface ValueGeometry
+
+
+
+
+
+
+ +

+setGridType

+
+public void setGridType(java.lang.String gridType)
+
+
+
Specified by:
setGridType in interface ValueGeometry
+
+
+
+
+
+
+ +

+getMax

+
+public int getMax()
+
+
+
Specified by:
getMax in interface ValueGeometry
+
+
+
+
+
+
+ +

+setMax

+
+public void setMax(int max)
+
+
+
Specified by:
setMax in interface ValueGeometry
+
+
+
+
+
+
+ +

+getMin

+
+public int getMin()
+
+
+
Specified by:
getMin in interface ValueGeometry
+
+
+
+
+
+
+ +

+setMin

+
+public void setMin(int min)
+
+
+
Specified by:
setMin in interface ValueGeometry
+
+
+
+
+
+
+ +

+getValueGeometryId

+
+public int getValueGeometryId()
+
+
+
Specified by:
getValueGeometryId in interface ValueGeometry
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/TimeGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/TimeGeometry.html new file mode 100755 index 000000000..38f3469a2 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/TimeGeometry.html @@ -0,0 +1,551 @@ + + + + + + +TimeGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.geometry +
+Interface TimeGeometry

+
+
All Known Implementing Classes:
DefaultTimeGeometry
+
+
+
+
public interface TimeGeometry
+ + +

+


+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAxisColor() + +
+           
+ java.lang.StringgetAxisLabelsPlacement() + +
+           
+ java.lang.StringgetGridColor() + +
+           
+ floatgetGridLineWidth() + +
+           
+ intgetGridStep() + +
+           
+ intgetGridStepRange() + +
+           
+ intgetMax() + +
+           
+ intgetMin() + +
+           
+ intgetTimeGeometryId() + +
+           
+ java.lang.StringgetTimeValuePosition() + +
+           
+ voidsetAxisColor(java.lang.String axisColor) + +
+           
+ voidsetAxisLabelsPlacement(java.lang.String axisLabelsPlacement) + +
+           
+ voidsetGridColor(java.lang.String gridColor) + +
+           
+ voidsetGridLineWidth(float gridLineWidth) + +
+           
+ voidsetGridStep(int gridStep) + +
+           
+ voidsetGridStepRange(int gridStepRange) + +
+           
+ voidsetMax(int max) + +
+           
+ voidsetMin(int min) + +
+           
+ voidsetTimeValuePosition(java.lang.String timeValuePosition) + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+getAxisColor

+
+java.lang.String getAxisColor()
+
+
+
+
+
+
+ +

+setAxisColor

+
+void setAxisColor(java.lang.String axisColor)
+
+
+
+
+
+
+ +

+getAxisLabelsPlacement

+
+java.lang.String getAxisLabelsPlacement()
+
+
+
+
+
+
+ +

+setAxisLabelsPlacement

+
+void setAxisLabelsPlacement(java.lang.String axisLabelsPlacement)
+
+
+
+
+
+
+ +

+getGridColor

+
+java.lang.String getGridColor()
+
+
+
+
+
+
+ +

+setGridColor

+
+void setGridColor(java.lang.String gridColor)
+
+
+
+
+
+
+ +

+getGridLineWidth

+
+float getGridLineWidth()
+
+
+
+
+
+
+ +

+setGridLineWidth

+
+void setGridLineWidth(float gridLineWidth)
+
+
+
+
+
+
+ +

+getGridStep

+
+int getGridStep()
+
+
+
+
+
+
+ +

+setGridStep

+
+void setGridStep(int gridStep)
+
+
+
+
+
+
+ +

+getGridStepRange

+
+int getGridStepRange()
+
+
+
+
+
+
+ +

+setGridStepRange

+
+void setGridStepRange(int gridStepRange)
+
+
+
+
+
+
+ +

+getMax

+
+int getMax()
+
+
+
+
+
+
+ +

+setMax

+
+void setMax(int max)
+
+
+
+
+
+
+ +

+getMin

+
+int getMin()
+
+
+
+
+
+
+ +

+setMin

+
+void setMin(int min)
+
+
+
+
+
+
+ +

+getTimeValuePosition

+
+java.lang.String getTimeValuePosition()
+
+
+
+
+
+
+ +

+setTimeValuePosition

+
+void setTimeValuePosition(java.lang.String timeValuePosition)
+
+
+
+
+
+
+ +

+getTimeGeometryId

+
+int getTimeGeometryId()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/ValueGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/ValueGeometry.html new file mode 100755 index 000000000..7c0a0fd57 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/ValueGeometry.html @@ -0,0 +1,663 @@ + + + + + + +ValueGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.geometry +
+Interface ValueGeometry

+
+
All Known Implementing Classes:
DefaultValueGeometry, LogarithmicValueGeometry
+
+
+
+
public interface ValueGeometry
+ + +

+

+
Author:
+
gwx
+
+
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Field Summary
+static java.lang.StringBOTTOM + +
+           
+static java.lang.StringLEFT + +
+           
+static java.lang.StringRIGHT + +
+           
+static java.lang.StringSHORT + +
+           
+static java.lang.StringTOP + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetAxisColor() + +
+           
+ java.lang.StringgetAxisLabelsPlacement() + +
+           
+ java.lang.StringgetGridColor() + +
+           
+ floatgetGridLineWidth() + +
+           
+ intgetGridShortSize() + +
+           
+ intgetGridSpacing() + +
+           
+ java.lang.StringgetGridType() + +
+           
+ intgetMax() + +
+           
+ intgetMin() + +
+           
+ intgetValueGeometryId() + +
+           
+ voidsetAxisColor(java.lang.String axisColor) + +
+           
+ voidsetAxisLabelsPlacement(java.lang.String axisLabelsPlacement) + +
+           
+ voidsetGridColor(java.lang.String gridColor) + +
+           
+ voidsetGridLineWidth(float gridLineWidth) + +
+           
+ voidsetGridShortSize(int gridShortSize) + +
+           
+ voidsetGridSpacing(int gridSpacing) + +
+           
+ voidsetGridType(java.lang.String gridType) + +
+           
+ voidsetMax(int max) + +
+           
+ voidsetMin(int min) + +
+           
+  +

+ + + + + + + + +
+Field Detail
+ +

+LEFT

+
+static final java.lang.String LEFT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+RIGHT

+
+static final java.lang.String RIGHT
+
+
+
See Also:
Constant Field Values
+
+
+ +

+TOP

+
+static final java.lang.String TOP
+
+
+
See Also:
Constant Field Values
+
+
+ +

+BOTTOM

+
+static final java.lang.String BOTTOM
+
+
+
See Also:
Constant Field Values
+
+
+ +

+SHORT

+
+static final java.lang.String SHORT
+
+
+
See Also:
Constant Field Values
+
+ + + + + + + + +
+Method Detail
+ +

+getAxisColor

+
+java.lang.String getAxisColor()
+
+
+
+
+
+
+ +

+setAxisColor

+
+void setAxisColor(java.lang.String axisColor)
+
+
+
+
+
+
+ +

+getAxisLabelsPlacement

+
+java.lang.String getAxisLabelsPlacement()
+
+
+
+
+
+
+ +

+setAxisLabelsPlacement

+
+void setAxisLabelsPlacement(java.lang.String axisLabelsPlacement)
+
+
+
+
+
+
+ +

+getGridColor

+
+java.lang.String getGridColor()
+
+
+
+
+
+
+ +

+setGridColor

+
+void setGridColor(java.lang.String gridColor)
+
+
+
+
+
+
+ +

+getGridLineWidth

+
+float getGridLineWidth()
+
+
+
+
+
+
+ +

+setGridLineWidth

+
+void setGridLineWidth(float gridLineWidth)
+
+
+
+
+
+
+ +

+getGridShortSize

+
+int getGridShortSize()
+
+
+
+
+
+
+ +

+setGridShortSize

+
+void setGridShortSize(int gridShortSize)
+
+
+
+
+
+
+ +

+getGridSpacing

+
+int getGridSpacing()
+
+
+
+
+
+
+ +

+setGridSpacing

+
+void setGridSpacing(int gridSpacing)
+
+
+
+
+
+
+ +

+getGridType

+
+java.lang.String getGridType()
+
+
+
+
+
+
+ +

+setGridType

+
+void setGridType(java.lang.String gridType)
+
+
+
+
+
+
+ +

+getMax

+
+int getMax()
+
+
+
+
+
+
+ +

+setMax

+
+void setMax(int max)
+
+
+
+
+
+
+ +

+getMin

+
+int getMin()
+
+
+
+
+
+
+ +

+setMin

+
+void setMin(int min)
+
+
+
+
+
+
+ +

+getValueGeometryId

+
+int getValueGeometryId()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/DefaultTimeGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/DefaultTimeGeometry.html new file mode 100755 index 000000000..ea6ab1fb9 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/DefaultTimeGeometry.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.geometry.DefaultTimeGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.geometry.DefaultTimeGeometry

+
+No usage of org.zkforge.timeplot.geometry.DefaultTimeGeometry +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/DefaultValueGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/DefaultValueGeometry.html new file mode 100755 index 000000000..8b25f97ea --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/DefaultValueGeometry.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.geometry.DefaultValueGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.geometry.DefaultValueGeometry

+
+No usage of org.zkforge.timeplot.geometry.DefaultValueGeometry +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/LogarithmicValueGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/LogarithmicValueGeometry.html new file mode 100755 index 000000000..8e5773fee --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/LogarithmicValueGeometry.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.geometry.LogarithmicValueGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.geometry.LogarithmicValueGeometry

+
+No usage of org.zkforge.timeplot.geometry.LogarithmicValueGeometry +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/TimeGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/TimeGeometry.html new file mode 100755 index 000000000..6d51b74ab --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/TimeGeometry.html @@ -0,0 +1,225 @@ + + + + + + +Uses of Interface org.zkforge.timeplot.geometry.TimeGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.zkforge.timeplot.geometry.TimeGeometry

+
+ + + + + + + + + + + + + +
+Packages that use TimeGeometry
org.zkforge.timeplot  
org.zkforge.timeplot.geometry  
+  +

+ + + + + +
+Uses of TimeGeometry in org.zkforge.timeplot
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot that return TimeGeometry
+ TimeGeometryPlotinfo.getTimeGeometry() + +
+           
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot with parameters of type TimeGeometry
+ voidPlotinfo.setTimeGeometry(TimeGeometry timeGeometry) + +
+           
+  +

+ + + + + +
+Uses of TimeGeometry in org.zkforge.timeplot.geometry
+  +

+ + + + + + + + + +
Classes in org.zkforge.timeplot.geometry that implement TimeGeometry
+ classDefaultTimeGeometry + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/ValueGeometry.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/ValueGeometry.html new file mode 100755 index 000000000..16a1f74d6 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/class-use/ValueGeometry.html @@ -0,0 +1,233 @@ + + + + + + +Uses of Interface org.zkforge.timeplot.geometry.ValueGeometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.zkforge.timeplot.geometry.ValueGeometry

+
+ + + + + + + + + + + + + +
+Packages that use ValueGeometry
org.zkforge.timeplot  
org.zkforge.timeplot.geometry  
+  +

+ + + + + +
+Uses of ValueGeometry in org.zkforge.timeplot
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot that return ValueGeometry
+ ValueGeometryPlotinfo.getValueGeometry() + +
+           
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot with parameters of type ValueGeometry
+ voidPlotinfo.setValueGeometry(ValueGeometry valueGeometry) + +
+           
+  +

+ + + + + +
+Uses of ValueGeometry in org.zkforge.timeplot.geometry
+  +

+ + + + + + + + + + + + + +
Classes in org.zkforge.timeplot.geometry that implement ValueGeometry
+ classDefaultValueGeometry + +
+           
+ classLogarithmicValueGeometry + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-frame.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-frame.html new file mode 100755 index 000000000..792a20f6d --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-frame.html @@ -0,0 +1,49 @@ + + + + + + +org.zkforge.timeplot.geometry (timeplotz 1.0_2 API) + + + + + + + + + + + +org.zkforge.timeplot.geometry + + + + +
+Interfaces  + +
+TimeGeometry +
+ValueGeometry
+ + + + + + +
+Classes  + +
+DefaultTimeGeometry +
+DefaultValueGeometry +
+LogarithmicValueGeometry
+ + + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-summary.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-summary.html new file mode 100755 index 000000000..e52243653 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-summary.html @@ -0,0 +1,183 @@ + + + + + + +org.zkforge.timeplot.geometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.zkforge.timeplot.geometry +

+ + + + + + + + + + + + + +
+Interface Summary
TimeGeometry 
ValueGeometry 
+  + +

+ + + + + + + + + + + + + + + + + +
+Class Summary
DefaultTimeGeometry 
DefaultValueGeometry 
LogarithmicValueGeometry 
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-tree.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-tree.html new file mode 100755 index 000000000..d48267b7b --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-tree.html @@ -0,0 +1,161 @@ + + + + + + +org.zkforge.timeplot.geometry Class Hierarchy (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.zkforge.timeplot.geometry +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-use.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-use.html new file mode 100755 index 000000000..464d7dba0 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/geometry/package-use.html @@ -0,0 +1,201 @@ + + + + + + +Uses of Package org.zkforge.timeplot.geometry (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.zkforge.timeplot.geometry

+
+ + + + + + + + + + + + + +
+Packages that use org.zkforge.timeplot.geometry
org.zkforge.timeplot  
org.zkforge.timeplot.geometry  
+  +

+ + + + + + + + + + + +
+Classes in org.zkforge.timeplot.geometry used by org.zkforge.timeplot
TimeGeometry + +
+           
ValueGeometry + +
+           
+  +

+ + + + + + + + + + + +
+Classes in org.zkforge.timeplot.geometry used by org.zkforge.timeplot.geometry
TimeGeometry + +
+           
ValueGeometry + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/TimeplotComponent.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/TimeplotComponent.html new file mode 100755 index 000000000..8beea2e6c --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/TimeplotComponent.html @@ -0,0 +1,298 @@ + + + + + + +TimeplotComponent (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.impl +
+Class TimeplotComponent

+
+java.lang.Object
+  extended by org.zkoss.zk.ui.AbstractComponent
+      extended by org.zkoss.zk.ui.HtmlBasedComponent
+          extended by org.zkforge.timeplot.impl.TimeplotComponent
+
+
+
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.sys.ComponentCtrl
+
+
+
Direct Known Subclasses:
Plotinfo, Timeplot
+
+
+
+
public class TimeplotComponent
extends org.zkoss.zk.ui.HtmlBasedComponent
+ + +

+

+
See Also:
Serialized Form
+
+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
RS_NO_DISPLAY, RS_NO_HEIGHT, RS_NO_WIDTH
+ + + + + + + +
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
+  + + + + + + + + + + +
+Constructor Summary
TimeplotComponent() + +
+           
+  + + + + + + + +
+Method Summary
+ + + + + + + +
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getDraggable, getDroppable, getHeight, getInnerAttrs, getLeft, getOuterAttrs, getRealSclass, getRealStyle, getRealStyleFlags, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZIndex, newExtraCtrl, setClass, setDraggable, setDroppable, setHeight, setLeft, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZIndex
+ + + + + + + +
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addEventHandler, addEventListener, addForward, addForward, addMoved, addSharedAnnotationMap, addSharedEventHandlerMap, appendAsapAttr, appendChild, applyProperties, clone, containsVariable, detach, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttributes, getAttributes, getChildren, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getExtraCtrl, getFellow, getFellowIfAny, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getMoldURI, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getPropagatee, getRoot, getSpaceOwner, getUuid, getVariable, insertBefore, invalidate, isAsapRequired, isChildable, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onDrawNewChild, onPageAttached, onPageDetached, onWrongValue, redraw, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, response, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setComponentDefinition, setId, setMold, setPage, setPageBefore, setParent, setVariable, setVisible, smartUpdate, smartUpdate, smartUpdate, smartUpdateDeferred, toString, unsetVariable
+ + + + + + + +
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+TimeplotComponent

+
+public TimeplotComponent()
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/class-use/TimeplotComponent.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/class-use/TimeplotComponent.html new file mode 100755 index 000000000..1996d00f2 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/class-use/TimeplotComponent.html @@ -0,0 +1,188 @@ + + + + + + +Uses of Class org.zkforge.timeplot.impl.TimeplotComponent (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.impl.TimeplotComponent

+
+ + + + + + + + + +
+Packages that use TimeplotComponent
org.zkforge.timeplot  
+  +

+ + + + + +
+Uses of TimeplotComponent in org.zkforge.timeplot
+  +

+ + + + + + + + + + + + + +
Subclasses of TimeplotComponent in org.zkforge.timeplot
+ classPlotinfo + +
+           
+ classTimeplot + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-frame.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-frame.html new file mode 100755 index 000000000..e5d217a19 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +org.zkforge.timeplot.impl (timeplotz 1.0_2 API) + + + + + + + + + + + +org.zkforge.timeplot.impl + + + + +
+Classes  + +
+TimeplotComponent
+ + + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-summary.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-summary.html new file mode 100755 index 000000000..fed4ea7a5 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-summary.html @@ -0,0 +1,157 @@ + + + + + + +org.zkforge.timeplot.impl (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.zkforge.timeplot.impl +

+ + + + + + + + + +
+Class Summary
TimeplotComponent 
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-tree.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-tree.html new file mode 100755 index 000000000..352db005a --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-tree.html @@ -0,0 +1,158 @@ + + + + + + +org.zkforge.timeplot.impl Class Hierarchy (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.zkforge.timeplot.impl +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • java.lang.Object
      +
    • org.zkoss.zk.ui.AbstractComponent (implements org.zkoss.zk.ui.Component, org.zkoss.zk.ui.sys.ComponentCtrl, java.io.Serializable) + +
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-use.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-use.html new file mode 100755 index 000000000..2cb0d0a8a --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/impl/package-use.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Package org.zkforge.timeplot.impl (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.zkforge.timeplot.impl

+
+ + + + + + + + + +
+Packages that use org.zkforge.timeplot.impl
org.zkforge.timeplot  
+  +

+ + + + + + + + +
+Classes in org.zkforge.timeplot.impl used by org.zkforge.timeplot
TimeplotComponent + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/AverageOperator.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/AverageOperator.html new file mode 100755 index 000000000..a72b251b0 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/AverageOperator.html @@ -0,0 +1,328 @@ + + + + + + +AverageOperator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.operator +
+Class AverageOperator

+
+java.lang.Object
+  extended by org.zkforge.timeplot.operator.AverageOperator
+
+
+
All Implemented Interfaces:
Operator
+
+
+
+
public class AverageOperator
extends java.lang.Object
implements Operator
+ + +

+

+
Author:
+
gwx
+
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
AverageOperator() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetOperator() + +
+           
+ java.lang.StringgetParams() + +
+           
+ intgetSize() + +
+           
+ voidsetSize(int size) + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+AverageOperator

+
+public AverageOperator()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getOperator

+
+public java.lang.String getOperator()
+
+
+
Specified by:
getOperator in interface Operator
+
+
+
+
+
+
+ +

+getParams

+
+public java.lang.String getParams()
+
+
+
Specified by:
getParams in interface Operator
+
+
+
+
+
+
+ +

+setSize

+
+public void setSize(int size)
+
+
+
+
+
+
+
+
+
+ +

+getSize

+
+public int getSize()
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/Operator.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/Operator.html new file mode 100755 index 000000000..23a8a22c8 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/Operator.html @@ -0,0 +1,232 @@ + + + + + + +Operator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.operator +
+Interface Operator

+
+
All Known Implementing Classes:
AverageOperator, SumOperator
+
+
+
+
public interface Operator
+ + +

+

+
Author:
+
gwx
+
+
+ +

+ + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetOperator() + +
+           
+ java.lang.StringgetParams() + +
+           
+  +

+ + + + + + + + +
+Method Detail
+ +

+getOperator

+
+java.lang.String getOperator()
+
+
+
+
+
+
+ +

+getParams

+
+java.lang.String getParams()
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/SumOperator.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/SumOperator.html new file mode 100755 index 000000000..38f448e3f --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/SumOperator.html @@ -0,0 +1,284 @@ + + + + + + +SumOperator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.zkforge.timeplot.operator +
+Class SumOperator

+
+java.lang.Object
+  extended by org.zkforge.timeplot.operator.SumOperator
+
+
+
All Implemented Interfaces:
Operator
+
+
+
+
public class SumOperator
extends java.lang.Object
implements Operator
+ + +

+

+
Author:
+
gwx
+
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
SumOperator() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.StringgetOperator() + +
+           
+ java.lang.StringgetParams() + +
+           
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+SumOperator

+
+public SumOperator()
+
+
+ + + + + + + + +
+Method Detail
+ +

+getOperator

+
+public java.lang.String getOperator()
+
+
+
Specified by:
getOperator in interface Operator
+
+
+
+
+
+
+ +

+getParams

+
+public java.lang.String getParams()
+
+
+
Specified by:
getParams in interface Operator
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/AverageOperator.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/AverageOperator.html new file mode 100755 index 000000000..3a3eb2db3 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/AverageOperator.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.operator.AverageOperator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.operator.AverageOperator

+
+No usage of org.zkforge.timeplot.operator.AverageOperator +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/Operator.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/Operator.html new file mode 100755 index 000000000..f964c3de6 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/Operator.html @@ -0,0 +1,233 @@ + + + + + + +Uses of Interface org.zkforge.timeplot.operator.Operator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Interface
org.zkforge.timeplot.operator.Operator

+
+ + + + + + + + + + + + + +
+Packages that use Operator
org.zkforge.timeplot  
org.zkforge.timeplot.operator  
+  +

+ + + + + +
+Uses of Operator in org.zkforge.timeplot
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot that return Operator
+ OperatorPlotinfo.getOperator() + +
+           
+  +

+ + + + + + + + + +
Methods in org.zkforge.timeplot with parameters of type Operator
+ voidPlotinfo.setOperator(Operator operator) + +
+           
+  +

+ + + + + +
+Uses of Operator in org.zkforge.timeplot.operator
+  +

+ + + + + + + + + + + + + +
Classes in org.zkforge.timeplot.operator that implement Operator
+ classAverageOperator + +
+           
+ classSumOperator + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/SumOperator.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/SumOperator.html new file mode 100755 index 000000000..d015f1783 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/class-use/SumOperator.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Class org.zkforge.timeplot.operator.SumOperator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.zkforge.timeplot.operator.SumOperator

+
+No usage of org.zkforge.timeplot.operator.SumOperator +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-frame.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-frame.html new file mode 100755 index 000000000..5c88e4bf8 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-frame.html @@ -0,0 +1,45 @@ + + + + + + +org.zkforge.timeplot.operator (timeplotz 1.0_2 API) + + + + + + + + + + + +org.zkforge.timeplot.operator + + + + +
+Interfaces  + +
+Operator
+ + + + + + +
+Classes  + +
+AverageOperator +
+SumOperator
+ + + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-summary.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-summary.html new file mode 100755 index 000000000..1c04dcab6 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-summary.html @@ -0,0 +1,175 @@ + + + + + + +org.zkforge.timeplot.operator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.zkforge.timeplot.operator +

+ + + + + + + + + +
+Interface Summary
Operator 
+  + +

+ + + + + + + + + + + + + +
+Class Summary
AverageOperator 
SumOperator 
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-tree.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-tree.html new file mode 100755 index 000000000..c7c88b055 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-tree.html @@ -0,0 +1,160 @@ + + + + + + +org.zkforge.timeplot.operator Class Hierarchy (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.zkforge.timeplot.operator +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • java.lang.Object +
+

+Interface Hierarchy +

+
    +
  • org.zkforge.timeplot.operator.Operator
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-use.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-use.html new file mode 100755 index 000000000..a8a46ead3 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/operator/package-use.html @@ -0,0 +1,189 @@ + + + + + + +Uses of Package org.zkforge.timeplot.operator (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.zkforge.timeplot.operator

+
+ + + + + + + + + + + + + +
+Packages that use org.zkforge.timeplot.operator
org.zkforge.timeplot  
org.zkforge.timeplot.operator  
+  +

+ + + + + + + + +
+Classes in org.zkforge.timeplot.operator used by org.zkforge.timeplot
Operator + +
+           
+  +

+ + + + + + + + +
+Classes in org.zkforge.timeplot.operator used by org.zkforge.timeplot.operator
Operator + +
+           
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-frame.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-frame.html new file mode 100755 index 000000000..fc505514a --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-frame.html @@ -0,0 +1,36 @@ + + + + + + +org.zkforge.timeplot (timeplotz 1.0_2 API) + + + + + + + + + + + +org.zkforge.timeplot + + + + +
+Classes  + +
+Plotinfo +
+Timeplot +
+Version
+ + + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-summary.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-summary.html new file mode 100755 index 000000000..280e08493 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-summary.html @@ -0,0 +1,165 @@ + + + + + + +org.zkforge.timeplot (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.zkforge.timeplot +

+ + + + + + + + + + + + + + + + + +
+Class Summary
Plotinfo 
Timeplot 
Version 
+  + +

+

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-tree.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-tree.html new file mode 100755 index 000000000..df3fa8a03 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-tree.html @@ -0,0 +1,160 @@ + + + + + + +org.zkforge.timeplot Class Hierarchy (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.zkforge.timeplot +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+
    +
  • java.lang.Object
      +
    • org.zkoss.zk.ui.AbstractComponent (implements org.zkoss.zk.ui.Component, org.zkoss.zk.ui.sys.ComponentCtrl, java.io.Serializable) + +
    • org.zkforge.timeplot.Version
    +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-use.html b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-use.html new file mode 100755 index 000000000..48811936d --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/org/zkforge/timeplot/package-use.html @@ -0,0 +1,144 @@ + + + + + + +Uses of Package org.zkforge.timeplot (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.zkforge.timeplot

+
+No usage of org.zkforge.timeplot +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/overview-frame.html b/zk-Timeplot-1.0_2/javadoc/overview-frame.html new file mode 100755 index 000000000..075ac4b69 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/overview-frame.html @@ -0,0 +1,50 @@ + + + + + + +Overview List (timeplotz 1.0_2 API) + + + + + + + + + + + + + + + +
+
+ + + + + +
All Classes +

+ +Packages +
+org.zkforge.timeplot +
+org.zkforge.timeplot.data +
+org.zkforge.timeplot.geometry +
+org.zkforge.timeplot.impl +
+org.zkforge.timeplot.operator +
+

+ +

+  + + diff --git a/zk-Timeplot-1.0_2/javadoc/overview-summary.html b/zk-Timeplot-1.0_2/javadoc/overview-summary.html new file mode 100755 index 000000000..f5b3b5ca9 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/overview-summary.html @@ -0,0 +1,172 @@ + + + + + + +Overview (timeplotz 1.0_2 API) + + + + + + + + + + + + +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+timeplotz 1.0_2 API +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+Packages
org.zkforge.timeplot 
org.zkforge.timeplot.data 
org.zkforge.timeplot.geometry 
org.zkforge.timeplot.impl 
org.zkforge.timeplot.operator 
+ +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/overview-tree.html b/zk-Timeplot-1.0_2/javadoc/overview-tree.html new file mode 100755 index 000000000..de23c558f --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/overview-tree.html @@ -0,0 +1,169 @@ + + + + + + +Class Hierarchy (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For All Packages

+
+
+
Package Hierarchies:
org.zkforge.timeplot, org.zkforge.timeplot.data, org.zkforge.timeplot.geometry, org.zkforge.timeplot.impl, org.zkforge.timeplot.operator
+
+

+Class Hierarchy +

+ +

+Interface Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/package-list b/zk-Timeplot-1.0_2/javadoc/package-list new file mode 100755 index 000000000..e274a1d4b --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/package-list @@ -0,0 +1,5 @@ +org.zkforge.timeplot +org.zkforge.timeplot.data +org.zkforge.timeplot.geometry +org.zkforge.timeplot.impl +org.zkforge.timeplot.operator diff --git a/zk-Timeplot-1.0_2/javadoc/resources/inherit.gif b/zk-Timeplot-1.0_2/javadoc/resources/inherit.gif new file mode 100755 index 000000000..c814867a1 Binary files /dev/null and b/zk-Timeplot-1.0_2/javadoc/resources/inherit.gif differ diff --git a/zk-Timeplot-1.0_2/javadoc/serialized-form.html b/zk-Timeplot-1.0_2/javadoc/serialized-form.html new file mode 100755 index 000000000..b70d2ecf9 --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/serialized-form.html @@ -0,0 +1,405 @@ + + + + + + +Serialized Form (timeplotz 1.0_2 API) + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Serialized Form

+
+
+ + + + + +
+Package org.zkforge.timeplot
+ +

+ + + + + +
+Class org.zkforge.timeplot.Plotinfo extends TimeplotComponent implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+_dataModel

+
+org.zkoss.zul.ListModel _dataModel
+
+
+
+
+
+

+_dataList

+
+java.util.ArrayList _dataList
+
+
+
+
+
+

+_eventModel

+
+org.zkoss.zul.ListModel _eventModel
+
+
+
+
+
+

+_eventList

+
+java.util.ArrayList _eventList
+
+
+
+
+
+

+fillColor

+
+java.lang.String fillColor
+
+
+
+
+
+

+dotColor

+
+java.lang.String dotColor
+
+
+
+
+
+

+lineColor

+
+java.lang.String lineColor
+
+
+
+
+
+

+lineWidth

+
+float lineWidth
+
+
+
+
+
+

+eventLineWidth

+
+float eventLineWidth
+
+
+
+
+
+

+dotRadius

+
+float dotRadius
+
+
+
+
+
+

+showValues

+
+boolean showValues
+
+
+
+
+
+

+roundValues

+
+boolean roundValues
+
+
+
+
+
+

+valuesOpacity

+
+int valuesOpacity
+
+
+
+
+
+

+bubbleWidth

+
+int bubbleWidth
+
+
+
+
+
+

+bubbleHeight

+
+int bubbleHeight
+
+
+
+
+
+

+pds

+
+PlotDataSource pds
+
+
+
+
+
+

+operator

+
+Operator operator
+
+
+
+
+
+

+eventSourceUri

+
+java.lang.String eventSourceUri
+
+
+
+
+
+

+_valueGeometry

+
+ValueGeometry _valueGeometry
+
+
+
+
+
+

+_timeGeometry

+
+TimeGeometry _timeGeometry
+
+
+
+
+ +

+ + + + + +
+Class org.zkforge.timeplot.Timeplot extends TimeplotComponent implements Serializable
+ +

+ + + + + +
+Serialized Fields
+ +

+_height

+
+java.lang.String _height
+
+
+
+
+
+

+_width

+
+java.lang.String _width
+
+
+
+
+
+ + + + + +
+Package org.zkforge.timeplot.impl
+ +

+ + + + + +
+Class org.zkforge.timeplot.impl.TimeplotComponent extends org.zkoss.zk.ui.HtmlBasedComponent implements Serializable
+ +

+ +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+Copyright © 2005-2007 Potix Corporation. All Rights Reserved. + + diff --git a/zk-Timeplot-1.0_2/javadoc/stylesheet.css b/zk-Timeplot-1.0_2/javadoc/stylesheet.css new file mode 100755 index 000000000..cbd34286b --- /dev/null +++ b/zk-Timeplot-1.0_2/javadoc/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF; color:#000000 } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ +.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} + diff --git a/zk-Timeplot-1.0_2/timeplotz/classpath b/zk-Timeplot-1.0_2/timeplotz/classpath new file mode 100755 index 000000000..5f93505b3 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/classpath @@ -0,0 +1,6 @@ +../dist/lib/zcommon.jar +../dist/lib/zweb.jar +../dist/lib/zk.jar +../dist/lib/zul.jar +../dist/lib/timelinez.jar +../dist/lib/ext/json_simple.jar \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/deploy b/zk-Timeplot-1.0_2/timeplotz/deploy new file mode 100755 index 000000000..a8500e673 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/deploy @@ -0,0 +1,2 @@ +lib +zipjs=web/js \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/format b/zk-Timeplot-1.0_2/timeplotz/format new file mode 100755 index 000000000..19ecfe54a --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/format @@ -0,0 +1 @@ +jar \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/pom.xml b/zk-Timeplot-1.0_2/timeplotz/pom.xml new file mode 100755 index 000000000..cb89e17cb --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + org.zkoss.zkforge + timeplotz + {version} + jar + The Timeplot Component for ZK + http://www.zkoss.org + The Timeplot Component for ZK 2.2.0 or later + + + GNU General Public License, Version 2.0 + http://www.gnu.org/licenses/gpl.html + repo + + + + http://zkforge.svn.sourceforge.net/viewvc/zkforge/trunk/timeplotz + + + + org.zkoss.common + zcommon + 2.2.0 + + + org.zkoss.common + zweb + 2.2.0 + + + org.zkoss.zk + zk + 2.2.0 + + + org.zkoss.zk + zul + 2.2.0 + + + org.zkoss.zkforge.timeline + timelinez + 1.2_1 + + + diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/metainfo/zk/lang-addon.xml b/zk-Timeplot-1.0_2/timeplotz/src/archive/metainfo/zk/lang-addon.xml new file mode 100755 index 000000000..184b13a79 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/metainfo/zk/lang-addon.xml @@ -0,0 +1,69 @@ + + + + + + + timeplot + + + + xul/html + + + org.zkforge.timeplot.Version + 1.0_2 + 3.0.8 + + + + + + + + + + import org.zkforge.timeplot.*; + + + timeplot + org.zkforge.timeplot.Timeplot + + default + ~./timeplot/timeplot.dsp + + + + + + plotinfo + org.zkforge.timeplot.Plotinfo + + default + ~./timeplot/plotinfo.dsp + + + + diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/blue-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/blue-circle.png new file mode 100755 index 000000000..c66026743 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/blue-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-arrow.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-arrow.png new file mode 100755 index 000000000..38c391714 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-arrow.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-left.png new file mode 100755 index 000000000..6d320266f Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-right.png new file mode 100755 index 000000000..e5dc1367c Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom-right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom.png new file mode 100755 index 000000000..166b05735 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-bottom.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-left-arrow.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-left-arrow.png new file mode 100755 index 000000000..5b173cd4e Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-left-arrow.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-left.png new file mode 100755 index 000000000..38267220a Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-right-arrow.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-right-arrow.png new file mode 100755 index 000000000..11e287364 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-right-arrow.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-right.png new file mode 100755 index 000000000..f66f87919 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-arrow.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-arrow.png new file mode 100755 index 000000000..524c46e78 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-arrow.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-left.png new file mode 100755 index 000000000..d69841f82 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-right.png new file mode 100755 index 000000000..9ab219aea Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top-right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top.png new file mode 100755 index 000000000..917defaf5 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/bubble-top.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/close-button.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/close-button.png new file mode 100755 index 000000000..15f31b3cc Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/close-button.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/copyright-vertical.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/copyright-vertical.png new file mode 100755 index 000000000..b15197b4f Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/copyright-vertical.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/copyright.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/copyright.png new file mode 100755 index 000000000..4217f4cee Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/copyright.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-blue-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-blue-circle.png new file mode 100755 index 000000000..f4ba4cbc6 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-blue-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-green-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-green-circle.png new file mode 100755 index 000000000..85edd8586 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-green-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-red-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-red-circle.png new file mode 100755 index 000000000..9c1b5ab9d Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dark-red-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-blue-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-blue-circle.png new file mode 100755 index 000000000..da1ffc386 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-blue-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-green-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-green-circle.png new file mode 100755 index 000000000..389e49aaa Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-green-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-red-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-red-circle.png new file mode 100755 index 000000000..260d57ee2 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/dull-red-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/gray-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/gray-circle.png new file mode 100755 index 000000000..c029acb20 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/gray-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/green-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/green-circle.png new file mode 100755 index 000000000..c26bc3cfa Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/green-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line.png new file mode 100755 index 000000000..b5d1e105d Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line_left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line_left.png new file mode 100755 index 000000000..fb031fc5d Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line_left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line_right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line_right.png new file mode 100755 index 000000000..4d37456a8 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/line_right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-bottom-left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-bottom-left.png new file mode 100755 index 000000000..43a9d6167 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-bottom-left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-bottom-right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-bottom-right.png new file mode 100755 index 000000000..bfa4954e1 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-bottom-right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-left.png new file mode 100755 index 000000000..f354376bd Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-right.png new file mode 100755 index 000000000..4702c2850 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-top-left.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-top-left.png new file mode 100755 index 000000000..b19b0eaeb Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-top-left.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-top-right.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-top-right.png new file mode 100755 index 000000000..c092555fd Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/message-top-right.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/progress-running.gif b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/progress-running.gif new file mode 100755 index 000000000..f7429ebc3 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/progress-running.gif differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/red-circle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/red-circle.png new file mode 100755 index 000000000..e1760f6fc Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/red-circle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/top-bubble.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/top-bubble.png new file mode 100755 index 000000000..db6c93d0d Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/top-bubble.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/triangle.png b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/triangle.png new file mode 100755 index 000000000..64f845417 Binary files /dev/null and b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/images/triangle.png differ diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/locales/en/locale.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/locales/en/locale.js new file mode 100755 index 000000000..e69de29bb diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/color.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/color.js new file mode 100755 index 000000000..336e30d75 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/color.js @@ -0,0 +1,151 @@ +/** + * Color + * + * @fileOverview Color + * @name Color + */ + +/* + * Inspired by Plotr + * Copyright 2007 (c) Bas Wenneker + * For use under the BSD license. + */ + +/** + * Create a Color object that can be used to manipulate colors programmatically. + */ +Timeplot.Color = function(color) { + this._fromHex(color); +}; + +Timeplot.Color.prototype = { + + /** + * Sets the RGB values of this coor + * + * @param {Number} r,g,b Red green and blue values (between 0 and 255) + */ + set: function (r,g,b,a) { + this.r = r; + this.g = g; + this.b = b; + this.a = (a) ? a : 1.0; + return this.check(); + }, + + /** + * Set the color transparency + * + * @param {float} a Transparency value, between 0.0 (fully transparent) and 1.0 (fully opaque). + */ + transparency: function(a) { + this.a = a; + return this.check(); + }, + + /** + * Lightens the color. + * + * @param {integer} level Level to lighten the color with. + */ + lighten: function(level) { + var color = new Timeplot.Color(); + return color.set( + this.r += parseInt(level, 10), + this.g += parseInt(level, 10), + this.b += parseInt(level, 10) + ); + }, + + /** + * Darkens the color. + * + * @param {integer} level Level to darken the color with. + */ + darken: function(level){ + var color = new Timeplot.Color(); + return color.set( + this.r -= parseInt(level, 10), + this.g -= parseInt(level, 10), + this.b -= parseInt(level, 10) + ); + }, + + /** + * Checks and validates if the hex values r, g and b are + * between 0 and 255. + */ + check: function() { + if (this.r > 255) { + this.r = 255; + } else if (this.r < 0){ + this.r = 0; + } + if (this.g > 255) { + this.g = 255; + } else if (this.g < 0) { + this.g = 0; + } + if (this.b > 255){ + this.b = 255; + } else if (this.b < 0){ + this.b = 0; + } + if (this.a > 1.0){ + this.a = 255; + } else if (this.a < 0.0){ + this.a = 0.0; + } + return this; + }, + + /** + * Returns a string representation of this color. + * + * @param {float} alpha (optional) Transparency value, between 0.0 (fully transparent) and 1.0 (fully opaque). + */ + toString: function(alpha) { + return 'rgba(' + this.r + ',' + this.g + ',' + this.b + ',' + ((alpha) ? alpha : '1.0') + ')'; + }, + + /** + * Returns the hexadecimal representation of this color (without the alpha channel as hex colors don't support it) + */ + toHexString: function() { + return "#" + this._toHex(this.r) + this._toHex(this.g) + this._toHex(this.b); + }, + + /* + * Parses and stores the hex values of the input color string. + * + * @param {String} color Hex or rgb() css string. + */ + _fromHex: function(color) { + if(/^#?([\da-f]{3}|[\da-f]{6})$/i.test(color)){ + color = color.replace(/^#/, '').replace(/^([\da-f])([\da-f])([\da-f])$/i, "$1$1$2$2$3$3"); + this.r = parseInt(color.substr(0,2), 16); + this.g = parseInt(color.substr(2,2), 16); + this.b = parseInt(color.substr(4,2), 16); + } else if(/^rgb *\( *\d{0,3} *, *\d{0,3} *, *\d{0,3} *\)$/i.test(color)){ + color = color.match(/^rgb *\( *(\d{0,3}) *, *(\d{0,3}) *, *(\d{0,3}) *\)$/i); + this.r = parseInt(color[1], 10); + this.g = parseInt(color[2], 10); + this.b = parseInt(color[3], 10); + } + this.a = 1.0; + return this.check(); + }, + + /* + * Returns an hexadecimal representation of a 8 bit integer + */ + _toHex: function(dec) { + var hex = "0123456789ABCDEF"; + if (dec < 0) return "00"; + if (dec > 255) return "FF"; + var i = Math.floor(dec / 16); + var j = dec % 16; + return hex.charAt(i) + hex.charAt(j); + } + +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/excanvas.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/excanvas.js new file mode 100755 index 000000000..43568bf56 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/excanvas.js @@ -0,0 +1,785 @@ +// Copyright 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +// Known Issues: +// +// * Patterns are not implemented. +// * Radial gradient are not implemented. The VML version of these look very +// different from the canvas one. +// * Clipping paths are not implemented. +// * Coordsize. The width and height attribute have higher priority than the +// width and height style values which isn't correct. +// * Painting mode isn't implemented. +// * Canvas width/height should is using content-box by default. IE in +// Quirks mode will draw the canvas using border-box. Either change your +// doctype to HTML5 +// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype) +// or use Box Sizing Behavior from WebFX +// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html) +// * Optimize. There is always room for speed improvements. + +// only add this code if we do not already have a canvas implementation +if (!window.CanvasRenderingContext2D) { + +(function () { + + // alias some functions to make (compiled) code shorter + var m = Math; + var mr = m.round; + var ms = m.sin; + var mc = m.cos; + + // this is used for sub pixel precision + var Z = 10; + var Z2 = Z / 2; + + var G_vmlCanvasManager_ = { + init: function (opt_doc) { + var doc = opt_doc || document; + if (/MSIE/.test(navigator.userAgent) && !window.opera) { + var self = this; + //doc.attachEvent("onreadystatechange", function () { + self.init_(doc); + // }); + } + }, + + init_: function (doc) { + // if (doc.readyState == "complete") { + // create xmlns + if (!doc.namespaces["g_vml_"]) { + doc.namespaces.add("g_vml_", "urn:schemas-microsoft-com:vml"); + } + + // setup default css + var ss = doc.createStyleSheet(); + ss.cssText = "canvas{display:inline-block;overflow:hidden;" + + // default size is 300x150 in Gecko and Opera + "text-align:left;width:300px;height:150px}" + + "g_vml_\\:*{behavior:url(#default#VML)}"; + + // find all canvas elements + var els = doc.getElementsByTagName("canvas"); + for (var i = 0; i < els.length; i++) { + if (!els[i].getContext) { + this.initElement(els[i]); + } + } + // } + }, + + fixElement_: function (el) { + // in IE before version 5.5 we would need to add HTML: to the tag name + // but we do not care about IE before version 6 + var outerHTML = el.outerHTML; + + var newEl = el.ownerDocument.createElement(outerHTML); + // if the tag is still open IE has created the children as siblings and + // it has also created a tag with the name "/FOO" + if (outerHTML.slice(-2) != "/>") { + var tagName = "/" + el.tagName; + var ns; + // remove content + while ((ns = el.nextSibling) && ns.tagName != tagName) { + ns.removeNode(); + } + // remove the incorrect closing tag + if (ns) { + ns.removeNode(); + } + } + el.parentNode.replaceChild(newEl, el); + return newEl; + }, + + /** + * Public initializes a canvas element so that it can be used as canvas + * element from now on. This is called automatically before the page is + * loaded but if you are creating elements using createElement you need to + * make sure this is called on the element. + * @param {HTMLElement} el The canvas element to initialize. + * @return {HTMLElement} the element that was created. + */ + initElement: function (el) { + el = this.fixElement_(el); + el.getContext = function () { + if (this.context_) { + return this.context_; + } + return this.context_ = new CanvasRenderingContext2D_(this); + }; + + // do not use inline function because that will leak memory + el.attachEvent('onpropertychange', onPropertyChange); + el.attachEvent('onresize', onResize); + + var attrs = el.attributes; + if (attrs.width && attrs.width.specified) { + // TODO: use runtimeStyle and coordsize + // el.getContext().setWidth_(attrs.width.nodeValue); + el.style.width = attrs.width.nodeValue + "px"; + } else { + el.width = el.clientWidth; + } + if (attrs.height && attrs.height.specified) { + // TODO: use runtimeStyle and coordsize + // el.getContext().setHeight_(attrs.height.nodeValue); + el.style.height = attrs.height.nodeValue + "px"; + } else { + el.height = el.clientHeight; + } + //el.getContext().setCoordsize_() + return el; + } + }; + + function onPropertyChange(e) { + var el = e.srcElement; + + switch (e.propertyName) { + case 'width': + el.style.width = el.attributes.width.nodeValue + "px"; + el.getContext().clearRect(); + break; + case 'height': + el.style.height = el.attributes.height.nodeValue + "px"; + el.getContext().clearRect(); + break; + } + }; + + function onResize(e) { + var el = e.srcElement; + if (el.firstChild) { + el.firstChild.style.width = el.clientWidth + 'px'; + el.firstChild.style.height = el.clientHeight + 'px'; + } + }; + + G_vmlCanvasManager_.init(); + + // precompute "00" to "FF" + var dec2hex = []; + for (var i = 0; i < 16; i++) { + for (var j = 0; j < 16; j++) { + dec2hex[i * 16 + j] = i.toString(16) + j.toString(16); + } + } + + function createMatrixIdentity() { + return [ + [1, 0, 0], + [0, 1, 0], + [0, 0, 1] + ]; + }; + + function matrixMultiply(m1, m2) { + var result = createMatrixIdentity(); + + for (var x = 0; x < 3; x++) { + for (var y = 0; y < 3; y++) { + var sum = 0; + + for (var z = 0; z < 3; z++) { + sum += m1[x][z] * m2[z][y]; + } + + result[x][y] = sum; + } + } + return result; + }; + + function copyState(o1, o2) { + o2.fillStyle = o1.fillStyle; + o2.lineCap = o1.lineCap; + o2.lineJoin = o1.lineJoin; + o2.lineWidth = o1.lineWidth; + o2.miterLimit = o1.miterLimit; + o2.shadowBlur = o1.shadowBlur; + o2.shadowColor = o1.shadowColor; + o2.shadowOffsetX = o1.shadowOffsetX; + o2.shadowOffsetY = o1.shadowOffsetY; + o2.strokeStyle = o1.strokeStyle; + o2.arcScaleX_ = o1.arcScaleX_; + o2.arcScaleY_ = o1.arcScaleY_; + }; + + function processStyle(styleString) { + var str, alpha = 1; + + styleString = String(styleString); + if (styleString.substring(0, 3) == "rgb") { + var start = styleString.indexOf("(", 3); + var end = styleString.indexOf(")", start + 1); + var guts = styleString.substring(start + 1, end).split(","); + + str = "#"; + for (var i = 0; i < 3; i++) { + str += dec2hex[Number(guts[i])]; + } + + if ((guts.length == 4) && (styleString.substr(3, 1) == "a")) { + alpha = guts[3]; + } + } else { + str = styleString; + } + + return [str, alpha]; + }; + + function processLineCap(lineCap) { + switch (lineCap) { + case "butt": + return "flat"; + case "round": + return "round"; + case "square": + default: + return "square"; + } + }; + + /** + * This class implements CanvasRenderingContext2D interface as described by + * the WHATWG. + * @param {HTMLElement} surfaceElement The element that the 2D context should + * be associated with + */ + function CanvasRenderingContext2D_(surfaceElement) { + this.m_ = createMatrixIdentity(); + + this.mStack_ = []; + this.aStack_ = []; + this.currentPath_ = []; + + // Canvas context properties + this.strokeStyle = "#000"; + this.fillStyle = "#000"; + + this.lineWidth = 1; + this.lineJoin = "miter"; + this.lineCap = "butt"; + this.miterLimit = Z * 1; + this.globalAlpha = 1; + this.canvas = surfaceElement; + + var el = surfaceElement.ownerDocument.createElement('div'); + el.style.width = surfaceElement.clientWidth + 'px'; + el.style.height = surfaceElement.clientHeight + 'px'; + el.style.overflow = 'hidden'; + el.style.position = 'absolute'; + surfaceElement.appendChild(el); + + this.element_ = el; + this.arcScaleX_ = 1; + this.arcScaleY_ = 1; + }; + + var contextPrototype = CanvasRenderingContext2D_.prototype; + contextPrototype.clearRect = function() { + this.element_.innerHTML = ""; + this.currentPath_ = []; + }; + + contextPrototype.beginPath = function() { + // TODO: Branch current matrix so that save/restore has no effect + // as per safari docs. + + this.currentPath_ = []; + }; + + contextPrototype.moveTo = function(aX, aY) { + this.currentPath_.push({type: "moveTo", x: aX, y: aY}); + this.currentX_ = aX; + this.currentY_ = aY; + }; + + contextPrototype.lineTo = function(aX, aY) { + this.currentPath_.push({type: "lineTo", x: aX, y: aY}); + this.currentX_ = aX; + this.currentY_ = aY; + }; + + contextPrototype.bezierCurveTo = function(aCP1x, aCP1y, + aCP2x, aCP2y, + aX, aY) { + this.currentPath_.push({type: "bezierCurveTo", + cp1x: aCP1x, + cp1y: aCP1y, + cp2x: aCP2x, + cp2y: aCP2y, + x: aX, + y: aY}); + this.currentX_ = aX; + this.currentY_ = aY; + }; + + contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) { + // the following is lifted almost directly from + // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes + var cp1x = this.currentX_ + 2.0 / 3.0 * (aCPx - this.currentX_); + var cp1y = this.currentY_ + 2.0 / 3.0 * (aCPy - this.currentY_); + var cp2x = cp1x + (aX - this.currentX_) / 3.0; + var cp2y = cp1y + (aY - this.currentY_) / 3.0; + this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, aX, aY); + }; + + contextPrototype.arc = function(aX, aY, aRadius, + aStartAngle, aEndAngle, aClockwise) { + aRadius *= Z; + var arcType = aClockwise ? "at" : "wa"; + + var xStart = aX + (mc(aStartAngle) * aRadius) - Z2; + var yStart = aY + (ms(aStartAngle) * aRadius) - Z2; + + var xEnd = aX + (mc(aEndAngle) * aRadius) - Z2; + var yEnd = aY + (ms(aEndAngle) * aRadius) - Z2; + + // IE won't render arches drawn counter clockwise if xStart == xEnd. + if (xStart == xEnd && !aClockwise) { + xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something + // that can be represented in binary + } + + this.currentPath_.push({type: arcType, + x: aX, + y: aY, + radius: aRadius, + xStart: xStart, + yStart: yStart, + xEnd: xEnd, + yEnd: yEnd}); + + }; + + contextPrototype.rect = function(aX, aY, aWidth, aHeight) { + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + }; + + contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) { + // Will destroy any existing path (same as FF behaviour) + this.beginPath(); + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + this.stroke(); + }; + + contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) { + // Will destroy any existing path (same as FF behaviour) + this.beginPath(); + this.moveTo(aX, aY); + this.lineTo(aX + aWidth, aY); + this.lineTo(aX + aWidth, aY + aHeight); + this.lineTo(aX, aY + aHeight); + this.closePath(); + this.fill(); + }; + + contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) { + var gradient = new CanvasGradient_("gradient"); + return gradient; + }; + + contextPrototype.createRadialGradient = function(aX0, aY0, + aR0, aX1, + aY1, aR1) { + var gradient = new CanvasGradient_("gradientradial"); + gradient.radius1_ = aR0; + gradient.radius2_ = aR1; + gradient.focus_.x = aX0; + gradient.focus_.y = aY0; + return gradient; + }; + + contextPrototype.drawImage = function (image, var_args) { + var dx, dy, dw, dh, sx, sy, sw, sh; + + // to find the original width we overide the width and height + var oldRuntimeWidth = image.runtimeStyle.width; + var oldRuntimeHeight = image.runtimeStyle.height; + image.runtimeStyle.width = 'auto'; + image.runtimeStyle.height = 'auto'; + + // get the original size + var w = image.width; + var h = image.height; + + // and remove overides + image.runtimeStyle.width = oldRuntimeWidth; + image.runtimeStyle.height = oldRuntimeHeight; + + if (arguments.length == 3) { + dx = arguments[1]; + dy = arguments[2]; + sx = sy = 0; + sw = dw = w; + sh = dh = h; + } else if (arguments.length == 5) { + dx = arguments[1]; + dy = arguments[2]; + dw = arguments[3]; + dh = arguments[4]; + sx = sy = 0; + sw = w; + sh = h; + } else if (arguments.length == 9) { + sx = arguments[1]; + sy = arguments[2]; + sw = arguments[3]; + sh = arguments[4]; + dx = arguments[5]; + dy = arguments[6]; + dw = arguments[7]; + dh = arguments[8]; + } else { + throw "Invalid number of arguments"; + } + + var d = this.getCoords_(dx, dy); + + var w2 = sw / 2; + var h2 = sh / 2; + + var vmlStr = []; + + var W = 10; + var H = 10; + + // For some reason that I've now forgotten, using divs didn't work + vmlStr.push(' ' , + '', + ''); + + this.element_.insertAdjacentHTML("BeforeEnd", + vmlStr.join("")); + }; + + contextPrototype.stroke = function(aFill) { + var lineStr = []; + var lineOpen = false; + var a = processStyle(aFill ? this.fillStyle : this.strokeStyle); + var color = a[0]; + var opacity = a[1] * this.globalAlpha; + + var W = 10; + var H = 10; + + lineStr.push(' max.x) { + max.x = c.x; + } + if (min.y == null || c.y < min.y) { + min.y = c.y; + } + if (max.y == null || c.y > max.y) { + max.y = c.y; + } + } + } + lineStr.push(' ">'); + + if (typeof this.fillStyle == "object") { + var focus = {x: "50%", y: "50%"}; + var width = (max.x - min.x); + var height = (max.y - min.y); + var dimension = (width > height) ? width : height; + + focus.x = mr((this.fillStyle.focus_.x / width) * 100 + 50) + "%"; + focus.y = mr((this.fillStyle.focus_.y / height) * 100 + 50) + "%"; + + var colors = []; + + // inside radius (%) + if (this.fillStyle.type_ == "gradientradial") { + var inside = (this.fillStyle.radius1_ / dimension * 100); + + // percentage that outside radius exceeds inside radius + var expansion = (this.fillStyle.radius2_ / dimension * 100) - inside; + } else { + var inside = 0; + var expansion = 100; + } + + var insidecolor = {offset: null, color: null}; + var outsidecolor = {offset: null, color: null}; + + // We need to sort 'colors' by percentage, from 0 > 100 otherwise ie + // won't interpret it correctly + this.fillStyle.colors_.sort(function (cs1, cs2) { + return cs1.offset - cs2.offset; + }); + + for (var i = 0; i < this.fillStyle.colors_.length; i++) { + var fs = this.fillStyle.colors_[i]; + + colors.push( (fs.offset * expansion) + inside, "% ", fs.color, ","); + + if (fs.offset > insidecolor.offset || insidecolor.offset == null) { + insidecolor.offset = fs.offset; + insidecolor.color = fs.color; + } + + if (fs.offset < outsidecolor.offset || outsidecolor.offset == null) { + outsidecolor.offset = fs.offset; + outsidecolor.color = fs.color; + } + } + colors.pop(); + + lineStr.push(''); + } else if (aFill) { + lineStr.push(''); + } else { + lineStr.push( + '' + ); + } + + lineStr.push(""); + + this.element_.insertAdjacentHTML("beforeEnd", lineStr.join("")); + + this.currentPath_ = []; + }; + + contextPrototype.fill = function() { + this.stroke(true); + }; + + contextPrototype.closePath = function() { + this.currentPath_.push({type: "close"}); + }; + + /** + * @private + */ + contextPrototype.getCoords_ = function(aX, aY) { + return { + x: Z * (aX * this.m_[0][0] + aY * this.m_[1][0] + this.m_[2][0]) - Z2, + y: Z * (aX * this.m_[0][1] + aY * this.m_[1][1] + this.m_[2][1]) - Z2 + }; + }; + + contextPrototype.save = function() { + var o = {}; + copyState(this, o); + this.aStack_.push(o); + this.mStack_.push(this.m_); + this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); + }; + + contextPrototype.restore = function() { + copyState(this.aStack_.pop(), this); + this.m_ = this.mStack_.pop(); + }; + + contextPrototype.translate = function(aX, aY) { + var m1 = [ + [1, 0, 0], + [0, 1, 0], + [aX, aY, 1] + ]; + + this.m_ = matrixMultiply(m1, this.m_); + }; + + contextPrototype.rotate = function(aRot) { + var c = mc(aRot); + var s = ms(aRot); + + var m1 = [ + [c, s, 0], + [-s, c, 0], + [0, 0, 1] + ]; + + this.m_ = matrixMultiply(m1, this.m_); + }; + + contextPrototype.scale = function(aX, aY) { + this.arcScaleX_ *= aX; + this.arcScaleY_ *= aY; + var m1 = [ + [aX, 0, 0], + [0, aY, 0], + [0, 0, 1] + ]; + + this.m_ = matrixMultiply(m1, this.m_); + }; + + /******** STUBS ********/ + contextPrototype.clip = function() { + // TODO: Implement + }; + + contextPrototype.arcTo = function() { + // TODO: Implement + }; + + contextPrototype.createPattern = function() { + return new CanvasPattern_; + }; + + // Gradient / Pattern Stubs + function CanvasGradient_(aType) { + this.type_ = aType; + this.radius1_ = 0; + this.radius2_ = 0; + this.colors_ = []; + this.focus_ = {x: 0, y: 0}; + }; + + CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) { + aColor = processStyle(aColor); + this.colors_.push({offset: 1-aOffset, color: aColor}); + }; + + function CanvasPattern_() {}; + + // set up externs + G_vmlCanvasManager = G_vmlCanvasManager_; + CanvasRenderingContext2D = CanvasRenderingContext2D_; + CanvasGradient = CanvasGradient_; + CanvasPattern = CanvasPattern_; + +})(); + +} // if \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/geometry.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/geometry.js new file mode 100755 index 000000000..ebfff9267 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/geometry.js @@ -0,0 +1,862 @@ +/** + * Geometries + * + * @fileOverview Geometries + * @name Geometries + */ + +/** + * This is the constructor for the default value geometry. + * A value geometry is what regulates mapping of the plot values to the screen y coordinate. + * If two plots share the same value geometry, they will be drawn using the same scale. + * If "min" and "max" parameters are not set, the geometry will stretch itself automatically + * so that the entire plot will be drawn without overflowing. The stretching happens also + * when a geometry is shared between multiple plots, the one with the biggest range will + * win over the others. + * + * @constructor + */ +Timeplot.DefaultValueGeometry = function(params) { + if (!params) params = {}; + this._id = ("id" in params) ? params.id : "g" + Math.round(Math.random() * 1000000); + this._axisColor = ("axisColor" in params) ? ((typeof params.axisColor == "string") ? new Timeplot.Color(params.axisColor) : params.axisColor) : new Timeplot.Color("#606060"); + this._gridColor = ("gridColor" in params) ? ((typeof params.gridColor == "string") ? new Timeplot.Color(params.gridColor) : params.gridColor) : null; + this._gridLineWidth = ("gridLineWidth" in params) ? params.gridLineWidth : 0.5; + this._axisLabelsPlacement = ("axisLabelsPlacement" in params) ? params.axisLabelsPlacement : "right"; + //this._gridSpacing = ("gridSpacing" in params) ? params.gridStep : 50; + this._gridSpacing = ("gridSpacing" in params) ? params.gridSpacing : 50; + this._gridType = ("gridType" in params) ? params.gridType : "short"; + this._gridShortSize = ("gridShortSize" in params) ? params.gridShortSize : 10; + this._minValue = ("min" in params) ? params.min : null; + this._maxValue = ("max" in params) ? params.max : null; + this._linMap = { + direct: function(v) { + return v; + }, + inverse: function(y) { + return y; + } + }; + this._map = this._linMap; + this._labels = []; + this._grid = []; +}; + +Timeplot.DefaultValueGeometry.prototype = { + + /** + * Since geometries can be reused across timeplots, we need to call this function + * before we can paint using this geometry. + */ + setTimeplot: function(timeplot) { + this._timeplot = timeplot; + this._canvas = timeplot.getCanvas(); + this.reset(); + }, + + /** + * Called by all the plot layers this geometry is associated with + * to update the value range. Unless min/max values are specified + * in the parameters, the biggest value range will be used. + */ + setRange: function(range) { + if ((this._minValue == null) || ((this._minValue != null) && (range.min < this._minValue))) { + this._minValue = range.min; + } + if ((this._maxValue == null) || ((this._maxValue != null) && (range.max * 1.05 > this._maxValue))) { + this._maxValue = range.max * 1.05; // get a little more head room to avoid hitting the ceiling + } + + this._updateMappedValues(); + + if (!(this._minValue == 0 && this._maxValue == 0)) { + this._grid = this._calculateGrid(); + } + }, + + /** + * Called after changing ranges or canvas size to reset the grid values + */ + reset: function() { + this._clearLabels(); + this._updateMappedValues(); + this._grid = this._calculateGrid(); + }, + + /** + * Map the given value to a y screen coordinate. + */ + toScreen: function(value) { + if (this._canvas && this._maxValue) { + var v = value - this._minValue; + return this._canvas.height * (this._map.direct(v)) / this._mappedRange; + } else { + return -50; + } + }, + + /** + * Map the given y screen coordinate to a value + */ + fromScreen: function(y) { + if (this._canvas) { + return this._map.inverse(this._mappedRange * y / this._canvas.height) + this._minValue; + } else { + return 0; + } + }, + + /** + * Each geometry is also a painter and paints the value grid and grid labels. + */ + paint: function() { + if (this._timeplot) { + var ctx = this._canvas.getContext('2d'); + + ctx.lineJoin = 'miter'; + + // paint grid + if (this._gridColor) { + var gridGradient = ctx.createLinearGradient(0,0,0,this._canvas.height); + gridGradient.addColorStop(0, this._gridColor.toHexString()); + gridGradient.addColorStop(0.3, this._gridColor.toHexString()); + gridGradient.addColorStop(1, "rgba(255,255,255,0.5)"); + + ctx.lineWidth = this._gridLineWidth; + ctx.strokeStyle = gridGradient; + + for (var i = 0; i < this._grid.length; i++) { + var tick = this._grid[i]; + var y = Math.floor(tick.y) + 0.5; + if (typeof tick.label != "undefined") { + if (this._axisLabelsPlacement == "left") { + var div = this._timeplot.putText(this._id + "-" + i, tick.label,"timeplot-grid-label",{ + left: 4, + bottom: y + 2, + color: this._gridColor.toHexString(), + visibility: "hidden" + }); + } else if (this._axisLabelsPlacement == "right") { + var div = this._timeplot.putText(this._id + "-" + i, tick.label, "timeplot-grid-label",{ + right: 4, + bottom: y + 2, + color: this._gridColor.toHexString(), + visibility: "hidden" + }); + } + if (y + div.clientHeight < this._canvas.height + 10) { + div.style.visibility = "visible"; // avoid the labels that would overflow + } + } + + // draw grid + ctx.beginPath(); + if (this._gridType == "long" || tick.label == 0) { + ctx.moveTo(0, y); + ctx.lineTo(this._canvas.width, y); + } else if (this._gridType == "short") { + if (this._axisLabelsPlacement == "left") { + ctx.moveTo(0, y); + ctx.lineTo(this._gridShortSize, y); + } else if (this._axisLabelsPlacement == "right") { + ctx.moveTo(this._canvas.width, y); + ctx.lineTo(this._canvas.width - this._gridShortSize, y); + } + } + ctx.stroke(); + } + } + + // paint axis + var axisGradient = ctx.createLinearGradient(0,0,0,this._canvas.height); + axisGradient.addColorStop(0, this._axisColor.toString()); + axisGradient.addColorStop(0.5, this._axisColor.toString()); + axisGradient.addColorStop(1, "rgba(255,255,255,0.5)"); + + ctx.lineWidth = 1; + ctx.strokeStyle = axisGradient; + + // left axis + ctx.beginPath(); + ctx.moveTo(0,this._canvas.height); + ctx.lineTo(0,0); + ctx.stroke(); + + // right axis + ctx.beginPath(); + ctx.moveTo(this._canvas.width,0); + ctx.lineTo(this._canvas.width,this._canvas.height); + ctx.stroke(); + } + }, + + /** + * Removes all the labels that were added by this geometry + */ + _clearLabels: function() { + for (var i = 0; i < this._labels.length; i++) { + var l = this._labels[i]; + var parent = l.parentNode; + if (parent) parent.removeChild(l); + } + }, + + /* + * This function calculates the grid spacing that it will be used + * by this geometry to draw the grid in order to reduce clutter. + */ + _calculateGrid: function() { + var grid = []; + + if (!this._canvas || this._valueRange == 0) return grid; + + var power = 0; + if (this._valueRange > 1) { + while (Math.pow(10,power) < this._valueRange) { + power++; + } + power--; + } else { + while (Math.pow(10,power) > this._valueRange) { + power--; + } + } + + var unit = Math.pow(10,power); + var inc = unit; + while (true) { + var dy = this.toScreen(this._minValue + inc); + + while (dy < this._gridSpacing) { + inc += unit; + dy = this.toScreen(this._minValue + inc); + } + + if (dy > 2 * this._gridSpacing) { // grids are too spaced out + unit /= 10; + inc = unit; + } else { + break; + } + } + + var v = 0; + var y = this.toScreen(v); + if (this._minValue >= 0) { + while (y < this._canvas.height) { + if (y > 0) { + grid.push({ y: y, label: v }); + } + v += inc; + y = this.toScreen(v); + } + } else if (this._maxValue <= 0) { + while (y > 0) { + if (y < this._canvas.height) { + grid.push({ y: y, label: v }); + } + v -= inc; + y = this.toScreen(v); + } + } else { + while (y < this._canvas.height) { + if (y > 0) { + grid.push({ y: y, label: v }); + } + v += inc; + y = this.toScreen(v); + } + v = -inc; + y = this.toScreen(v); + while (y > 0) { + if (y < this._canvas.height) { + grid.push({ y: y, label: v }); + } + v -= inc; + y = this.toScreen(v); + } + } + + return grid; + }, + + /* + * Update the values that are used by the paint function so that + * we don't have to calculate them at every repaint. + */ + _updateMappedValues: function() { + this._valueRange = Math.abs(this._maxValue - this._minValue); + this._mappedRange = this._map.direct(this._valueRange); + } + +}; + +// -------------------------------------------------- + +/** + * This is the constructor for a Logarithmic value geometry, which + * is useful when plots have values in different magnitudes but + * exhibit similar trends and such trends want to be shown on the same + * plot (here a cartesian geometry would make the small magnitudes + * disappear). + * + * NOTE: this class extends Timeplot.DefaultValueGeometry and inherits + * all of the methods of that class. So refer to that class. + * + * @constructor + */ +Timeplot.LogarithmicValueGeometry = function(params) { + Timeplot.DefaultValueGeometry.apply(this, arguments); + this._logMap = { + direct: function(v) { + return Math.log(v + 1) / Math.log(10); + }, + inverse: function(y) { + return Math.exp(Math.log(10) * y) - 1; + } + }; + this._mode = "log"; + this._map = this._logMap; + this._calculateGrid = this._logarithmicCalculateGrid; +}; + +Timeplot.LogarithmicValueGeometry.prototype._linearCalculateGrid = Timeplot.DefaultValueGeometry.prototype._calculateGrid; + +Object.extend(Timeplot.LogarithmicValueGeometry.prototype,Timeplot.DefaultValueGeometry.prototype); + +/* + * This function calculates the grid spacing that it will be used + * by this geometry to draw the grid in order to reduce clutter. + */ +Timeplot.LogarithmicValueGeometry.prototype._logarithmicCalculateGrid = function() { + var grid = []; + + if (!this._canvas || this._valueRange == 0) return grid; + + var v = 1; + var y = this.toScreen(v); + while (y < this._canvas.height || isNaN(y)) { + if (y > 0) { + grid.push({ y: y, label: v }); + } + v *= 10; + y = this.toScreen(v); + } + + return grid; +}; + +/** + * Turn the logarithmic scaling off. + */ +Timeplot.LogarithmicValueGeometry.prototype.actLinear = function() { + this._mode = "lin"; + this._map = this._linMap; + this._calculateGrid = this._linearCalculateGrid; + this.reset(); +}; + +/** + * Turn the logarithmic scaling on. + */ +Timeplot.LogarithmicValueGeometry.prototype.actLogarithmic = function() { + this._mode = "log"; + this._map = this._logMap; + this._calculateGrid = this._logarithmicCalculateGrid; + this.reset(); +}; + +/** + * Toggle logarithmic scaling seeting it to on if off and viceversa. + */ +Timeplot.LogarithmicValueGeometry.prototype.toggle = function() { + if (this._mode == "log") { + this.actLinear(); + } else { + this.actLogarithmic(); + } +}; + +// ----------------------------------------------------- + +/** + * This is the constructor for the default time geometry. + * + * @constructor + */ +Timeplot.DefaultTimeGeometry = function(params) { + if (!params) params = {}; + this._id = ("id" in params) ? params.id : "g" + Math.round(Math.random() * 1000000); + this._locale = ("locale" in params) ? params.locale : "en"; + this._timeZone = ("timeZone" in params) ? params.timeZone : SimileAjax.DateTime.getTimezone(); + this._labeller = ("labeller" in params) ? params.labeller : null; + this._axisColor = ("axisColor" in params) ? ((params.axisColor == "string") ? new Timeplot.Color(params.axisColor) : params.axisColor) : new Timeplot.Color("#606060"); + this._gridColor = ("gridColor" in params) ? ((params.gridColor == "string") ? new Timeplot.Color(params.gridColor) : params.gridColor) : null; + this._gridLineWidth = ("gridLineWidth" in params) ? params.gridLineWidth : 0.5; + this._axisLabelsPlacement = ("axisLabelsPlacement" in params) ? params.axisLabelsPlacement : "bottom"; + this._gridStep = ("gridStep" in params) ? params.gridStep : 100; + this._gridStepRange = ("gridStepRange" in params) ? params.gridStepRange : 20; + this._min = ("min" in params) ? params.min : null; + this._max = ("max" in params) ? params.max : null; + this._timeValuePosition =("timeValuePosition" in params) ? params.timeValuePosition : "bottom"; + this._unit = ("unit" in params) ? params.unit : Timeline.NativeDateUnit; + this._linMap = { + direct: function(t) { + return t; + }, + inverse: function(x) { + return x; + } + }; + this._map = this._linMap; + this._labeler = this._unit.createLabeller(this._locale, this._timeZone); + var dateParser = this._unit.getParser("iso8601"); + if (this._min && !this._min.getTime) { + this._min = dateParser(this._min); + } + if (this._max && !this._max.getTime) { + this._max = dateParser(this._max); + } + this._grid = []; +}; + +Timeplot.DefaultTimeGeometry.prototype = { + + /** + * Since geometries can be reused across timeplots, we need to call this function + * before we can paint using this geometry. + */ + setTimeplot: function(timeplot) { + this._timeplot = timeplot; + this._canvas = timeplot.getCanvas(); + this.reset(); + }, + + /** + * Called by all the plot layers this geometry is associated with + * to update the time range. Unless min/max values are specified + * in the parameters, the biggest range will be used. + */ + setRange: function(range) { + if (this._min) { + this._earliestDate = this._min; + } else if (range.earliestDate && ((this._earliestDate == null) || ((this._earliestDate != null) && (range.earliestDate.getTime() < this._earliestDate.getTime())))) { + this._earliestDate = range.earliestDate; + } + + if (this._max) { + this._latestDate = this._max; + } else if (range.latestDate && ((this._latestDate == null) || ((this._latestDate != null) && (range.latestDate.getTime() > this._latestDate.getTime())))) { + this._latestDate = range.latestDate; + } + + if (!this._earliestDate && !this._latestDate) { + this._grid = []; + } else { + this.reset(); + } + }, + + /** + * Called after changing ranges or canvas size to reset the grid values + */ + reset: function() { + this._updateMappedValues(); + if (this._canvas) this._grid = this._calculateGrid(); + }, + + /** + * Map the given date to a x screen coordinate. + */ + toScreen: function(time) { + if (this._canvas && this._latestDate) { + var t = time - this._earliestDate.getTime(); + + return this._canvas.width * this._map.direct(t) / this._mappedPeriod; + } else { + return -50; + } + }, + + /** + * Map the given x screen coordinate to a date. + */ + fromScreen: function(x) { + if (this._canvas) { + return this._map.inverse(this._mappedPeriod * x / this._canvas.width) + this._earliestDate.getTime(); + } else { + return 0; + } + }, + + /** + * Get a period (in milliseconds) this time geometry spans. + */ + getPeriod: function() { + return this._period; + }, + + /** + * Return the labeler that has been associated with this time geometry + */ + getLabeler: function() { + return this._labeler; + }, + + /** + * Return the time unit associated with this time geometry + */ + getUnit: function() { + return this._unit; + }, + + /** + * Each geometry is also a painter and paints the value grid and grid labels. + */ + paint: function() { + if (this._canvas) { + var unit = this._unit; + var ctx = this._canvas.getContext('2d'); + + var gradient = ctx.createLinearGradient(0,0,0,this._canvas.height); + + ctx.strokeStyle = gradient; + ctx.lineWidth = this._gridLineWidth; + ctx.lineJoin = 'miter'; + + // paint grid + if (this._gridColor) { + gradient.addColorStop(0, this._gridColor.toString()); + gradient.addColorStop(1, "rgba(255,255,255,0.9)"); + + for (var i = 0; i < this._grid.length; i++) { + var tick = this._grid[i]; + var x = Math.floor(tick.x) + 0.5; + if (this._axisLabelsPlacement == "top") { + var div = this._timeplot.putText(this._id + "-" + i, tick.label,"timeplot-grid-label",{ + left: x + 4, + top: 2, + visibility: "hidden" + }); + } else if (this._axisLabelsPlacement == "bottom") { + var div = this._timeplot.putText(this._id + "-" + i, tick.label, "timeplot-grid-label",{ + left: x + 4, + bottom: 2, + visibility: "hidden" + }); + } + if (x + div.clientWidth < this._canvas.width + 10) { + div.style.visibility = "visible"; // avoid the labels that would overflow + } + + // draw separator + ctx.beginPath(); + ctx.moveTo(x,0); + ctx.lineTo(x,this._canvas.height); + ctx.stroke(); + } + } + + // paint axis + gradient.addColorStop(0, this._axisColor.toString()); + gradient.addColorStop(1, "rgba(255,255,255,0.5)"); + + ctx.lineWidth = 1; + gradient.addColorStop(0, this._axisColor.toString()); + + ctx.beginPath(); + ctx.moveTo(0,0); + ctx.lineTo(this._canvas.width,0); + ctx.stroke(); + } + }, + + /* + * This function calculates the grid spacing that it will be used + * by this geometry to draw the grid in order to reduce clutter. + */ + _calculateGrid: function() { + var grid = []; + + var time = SimileAjax.DateTime; + var u = this._unit; + var p = this._period; + + if (p == 0) return grid; + + // find the time units nearest to the time period + if (p > time.gregorianUnitLengths[time.MILLENNIUM]) { + unit = time.MILLENNIUM; + } else { + for (var unit = time.MILLENNIUM; unit > 0; unit--) { + if (time.gregorianUnitLengths[unit-1] <= p && p < time.gregorianUnitLengths[unit]) { + unit--; + break; + } + } + } + + var t = u.cloneValue(this._earliestDate); + + do { + time.roundDownToInterval(t, unit, this._timeZone, 1, 0); + var x = this.toScreen(u.toNumber(t)); + switch (unit) { + case time.SECOND: + var l = t.toLocaleTimeString(); + break; + case time.MINUTE: + var m = t.getMinutes(); + var l = t.getHours() + ":" + ((m < 10) ? "0" : "") + m; + break; + case time.HOUR: + var l = t.getHours() + ":00"; + break; + case time.DAY: + case time.WEEK: + case time.MONTH: + var l = t.toLocaleDateString(); + break; + case time.YEAR: + case time.DECADE: + case time.CENTURY: + case time.MILLENNIUM: + var l = t.getUTCFullYear(); + break; + } + if (x > 0) { + grid.push({ x: x, label: l }); + } + time.incrementByInterval(t, unit); + } while (t.getTime() < this._latestDate.getTime()); + + return grid; + }, + + /* + * Update the values that are used by the paint function so that + * we don't have to calculate them at every repaint. + */ + _updateMappedValues: function() { + if (this._latestDate && this._earliestDate) { + this._period = this._latestDate.getTime() - this._earliestDate.getTime(); + this._mappedPeriod = this._map.direct(this._period); + } else { + this._period = 0; + this._mappedPeriod = 0; + } + } + +}; + +// -------------------------------------------------------------- + +/** + * This is the constructor for the magnifying time geometry. + * Users can interact with this geometry and 'magnify' certain areas of the + * plot to see the plot enlarged and resolve details that would otherwise + * get lost or cluttered with a linear time geometry. + * + * @constructor + */ +Timeplot.MagnifyingTimeGeometry = function(params) { + Timeplot.DefaultTimeGeometry.apply(this, arguments); + + var g = this; + this._MagnifyingMap = { + direct: function(t) { + if (t < g._leftTimeMargin) { + var x = t * g._leftRate; + } else if ( g._leftTimeMargin < t && t < g._rightTimeMargin ) { + var x = t * g._expandedRate + g._expandedTimeTranslation; + } else { + var x = t * g._rightRate + g._rightTimeTranslation; + } + return x; + }, + inverse: function(x) { + if (x < g._leftScreenMargin) { + var t = x / g._leftRate; + } else if ( g._leftScreenMargin < x && x < g._rightScreenMargin ) { + var t = x / g._expandedRate + g._expandedScreenTranslation; + } else { + var t = x / g._rightRate + g._rightScreenTranslation; + } + return t; + } + }; + + this._mode = "lin"; + this._map = this._linMap; +}; + +Object.extend(Timeplot.MagnifyingTimeGeometry.prototype,Timeplot.DefaultTimeGeometry.prototype); + +/** + * Initialize this geometry associating it with the given timeplot and + * register the geometry event handlers to the timeplot so that it can + * interact with the user. + */ +Timeplot.MagnifyingTimeGeometry.prototype.initialize = function(timeplot) { + Timeplot.DefaultTimeGeometry.prototype.initialize.apply(this, arguments); + + if (!this._lens) { + this._lens = this._timeplot.putDiv("lens","timeplot-lens"); + } + + var period = 1000 * 60 * 60 * 24 * 30; // a month in the magnifying lens + + var geometry = this; + + var magnifyWith = function(lens) { + var aperture = lens.clientWidth; + var loc = geometry._timeplot.locate(lens); + geometry.setMagnifyingParams(loc.x + aperture / 2, aperture, period); + geometry.actMagnifying(); + geometry._timeplot.paint(); + }; + + var canvasMouseDown = function(elmt, evt, target) { + geometry._canvas.startCoords = SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt); + geometry._canvas.pressed = true; + }; + + var canvasMouseUp = function(elmt, evt, target) { + geometry._canvas.pressed = false; + var coords = SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt); + if (Timeplot.Math.isClose(coords,geometry._canvas.startCoords,5)) { + geometry._lens.style.display = "none"; + geometry.actLinear(); + geometry._timeplot.paint(); + } else { + geometry._lens.style.cursor = "move"; + magnifyWith(geometry._lens); + } + }; + + var canvasMouseMove = function(elmt, evt, target) { + if (geometry._canvas.pressed) { + var coords = SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt); + if (coords.x < 0) coords.x = 0; + if (coords.x > geometry._canvas.width) coords.x = geometry._canvas.width; + geometry._timeplot.placeDiv(geometry._lens, { + left: geometry._canvas.startCoords.x, + width: coords.x - geometry._canvas.startCoords.x, + bottom: 0, + height: geometry._canvas.height, + display: "block" + }); + } + }; + + var lensMouseDown = function(elmt, evt, target) { + geometry._lens.startCoords = SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt);; + geometry._lens.pressed = true; + }; + + var lensMouseUp = function(elmt, evt, target) { + geometry._lens.pressed = false; + }; + + var lensMouseMove = function(elmt, evt, target) { + if (geometry._lens.pressed) { + var coords = SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt); + var lens = geometry._lens; + var left = lens.offsetLeft + coords.x - lens.startCoords.x; + if (left < geometry._timeplot._paddingX) left = geometry._timeplot._paddingX; + if (left + lens.clientWidth > geometry._canvas.width - geometry._timeplot._paddingX) left = geometry._canvas.width - lens.clientWidth + geometry._timeplot._paddingX; + lens.style.left = left; + magnifyWith(lens); + } + }; + + if (!this._canvas.instrumented) { + SimileAjax.DOM.registerEvent(this._canvas, "mousedown", canvasMouseDown); + SimileAjax.DOM.registerEvent(this._canvas, "mousemove", canvasMouseMove); + SimileAjax.DOM.registerEvent(this._canvas, "mouseup" , canvasMouseUp); + SimileAjax.DOM.registerEvent(this._canvas, "mouseup" , lensMouseUp); + this._canvas.instrumented = true; + } + + if (!this._lens.instrumented) { + SimileAjax.DOM.registerEvent(this._lens, "mousedown", lensMouseDown); + SimileAjax.DOM.registerEvent(this._lens, "mousemove", lensMouseMove); + SimileAjax.DOM.registerEvent(this._lens, "mouseup" , lensMouseUp); + SimileAjax.DOM.registerEvent(this._lens, "mouseup" , canvasMouseUp); + this._lens.instrumented = true; + } +}; + +/** + * Set the Magnifying parameters. c is the location in pixels where the Magnifying + * center should be located in the timeplot, a is the aperture in pixel of + * the Magnifying and b is the time period in milliseconds that the Magnifying + * should span. + */ +Timeplot.MagnifyingTimeGeometry.prototype.setMagnifyingParams = function(c,a,b) { + a = a / 2; + b = b / 2; + + var w = this._canvas.width; + var d = this._period; + + if (c < 0) c = 0; + if (c > w) c = w; + + if (c - a < 0) a = c; + if (c + a > w) a = w - c; + + var ct = this.fromScreen(c) - this._earliestDate.getTime(); + if (ct - b < 0) b = ct; + if (ct + b > d) b = d - ct; + + this._centerX = c; + this._centerTime = ct; + this._aperture = a; + this._aperturePeriod = b; + + this._leftScreenMargin = this._centerX - this._aperture; + this._rightScreenMargin = this._centerX + this._aperture; + this._leftTimeMargin = this._centerTime - this._aperturePeriod; + this._rightTimeMargin = this._centerTime + this._aperturePeriod; + + this._leftRate = (c - a) / (ct - b); + this._expandedRate = a / b; + this._rightRate = (w - c - a) / (d - ct - b); + + this._expandedTimeTranslation = this._centerX - this._centerTime * this._expandedRate; + this._expandedScreenTranslation = this._centerTime - this._centerX / this._expandedRate; + this._rightTimeTranslation = (c + a) - (ct + b) * this._rightRate; + this._rightScreenTranslation = (ct + b) - (c + a) / this._rightRate; + + this._updateMappedValues(); +}; + +/* + * Turn magnification off. + */ +Timeplot.MagnifyingTimeGeometry.prototype.actLinear = function() { + this._mode = "lin"; + this._map = this._linMap; + this.reset(); +}; + +/* + * Turn magnification on. + */ +Timeplot.MagnifyingTimeGeometry.prototype.actMagnifying = function() { + this._mode = "Magnifying"; + this._map = this._MagnifyingMap; + this.reset(); +}; + +/* + * Toggle magnification. + */ +Timeplot.MagnifyingTimeGeometry.prototype.toggle = function() { + if (this._mode == "Magnifying") { + this.actLinear(); + } else { + this.actMagnifying(); + } +}; diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/math.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/math.js new file mode 100755 index 000000000..f7701ae6d --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/math.js @@ -0,0 +1,194 @@ +/** + * Math Utility functions + * + * @fileOverview Math Utility functions + * @name Math + */ + +Timeplot.Math = { + + /** + * Evaluates the range (min and max values) of the given array + */ + range: function(f) { + var F = f.length; + var min = Number.MAX_VALUE; + var max = Number.MIN_VALUE; + + for (var t = 0; t < F; t++) { + var value = f[t]; + if (value < min) { + min = value; + } + if (value > max) { + max = value; + } + } + + return { + min: min, + max: max + }; + }, + + /** + * Evaluates the windows average of a given array based on the + * given window size + */ + movingAverage: function(f, size) { + var F = f.length; + var g = new Array(F); + for (var n = 0; n < F; n++) { + var value = 0; + for (var m = n - size; m < n + size; m++) { + if (m < 0) { + var v = f[0]; + } else if (m >= F) { + // var v = g[n-1];//bug! if n< size and n==0 then the g[n-1] is invalidate!!!!! + var v=(n-1<0)?f[0]:g[n-1]; + } else { + var v = f[m]; + } + value += v; + } + g[n] = value / (2 * size); + } + return g; + }, + + /** + * Returns an array with the integral of the given array + */ + integral: function(f) { + var F = f.length; + + var g = new Array(F); + var sum = 0; + + for (var t = 0; t < F; t++) { + sum += f[t]; + g[t] = sum; + } + + return g; + }, + + /** + * Normalizes an array so that its complete integral is 1. + * This is useful to obtain arrays that preserve the overall + * integral of a convolution. + */ + normalize: function(f) { + var F = f.length; + var sum = 0.0; + + for (var t = 0; t < F; t++) { + sum += f[t]; + } + + for (var t = 0; t < F; t++) { + f[t] /= sum; + } + + return f; + }, + + /** + * Calculates the convolution between two arrays + */ + convolution: function(f,g) { + var F = f.length; + var G = g.length; + + var c = new Array(F); + + for (var m = 0; m < F; m++) { + var r = 0; + var end = (m + G < F) ? m + G : F; + for (var n = m; n < end; n++) { + var a = f[n - G]; + var b = g[n - m]; + r += a * b; + } + c[m] = r; + } + + return c; + }, + + // ------ Array generators ------------------------------------------------- + // Functions that generate arrays based on mathematical functions + // Normally these are used to produce operators by convolving them with the input array + // The returned arrays have the property of having + + /** + * Generate the heavyside step function of given size + */ + heavyside: function(size) { + var f = new Array(size); + var value = 1 / size; + for (var t = 0; t < size; t++) { + f[t] = value; + } + return f; + }, + + /** + * Generate the gaussian function so that at the given 'size' it has value 'threshold' + * and make sure its integral is one. + */ + gaussian: function(size, threshold) { + with (Math) { + var radius = size / 2; + var variance = radius * radius / log(threshold); + var g = new Array(size); + for (var t = 0; t < size; t++) { + var l = t - radius; + g[t] = exp(-variance * l * l); + } + } + + return this.normalize(g); + }, + + // ---- Utility Methods -------------------------------------------------- + + /** + * Return x with n significant figures + */ + round: function(x,n) { + with (Math) { + if (abs(x) > 1) { + var l = floor(log(x)/log(10)); + var d = round(exp((l-n+1)*log(10))); + var y = round(round(x / d) * d); + return y; + } else { + log("FIXME(SM): still to implement for 0 < abs(x) < 1"); + return x; + } + } + }, + + /** + * Return the hyperbolic tangent of x + */ + tanh: function(x) { + if (x > 5) { + return 1; + } else if (x < 5) { + return -1; + } else { + var expx2 = Math.exp(2 * x); + return (expx2 - 1) / (expx2 + 1); + } + }, + + /** + * Returns true if |a.x - b.x| < value && | a.y - b.y | < value + */ + isClose: function(a,b,value) { + return (a && b && Math.abs(a.x - b.x) < value && Math.abs(a.y - b.y) < value); + } + +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/oop.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/oop.js new file mode 100755 index 000000000..99c1ea616 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/oop.js @@ -0,0 +1,6 @@ +Object.extend = function(destination, source) { + for (var property in source) { + destination[property] = source[property]; + } + return destination; +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/plot.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/plot.js new file mode 100755 index 000000000..ce1d9a728 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/plot.js @@ -0,0 +1,388 @@ +/** + * Plot Layer + * + * @fileOverview Plot Layer + * @name Plot + */ + +/** + * A plot layer is the main building block for timeplots and it's the object + * that is responsible for painting the plot itself. Each plot needs to have + * a time geometry, either a DataSource (for time series + * plots) or an EventSource (for event plots) and a value geometry in case + * of time series plots. Such parameters are passed along + * in the 'plotInfo' map. + * + * @constructor + */ +Timeplot.Plot = function(timeplot, plotInfo) { + this._timeplot = timeplot; + this._canvas = timeplot.getCanvas(); + this._plotInfo = plotInfo; + this._id = plotInfo.id; + this._timeGeometry = plotInfo.timeGeometry; + this._valueGeometry = plotInfo.valueGeometry; + this._showValues = plotInfo.showValues; + this._theme = new Timeline.getDefaultTheme(); + this._dataSource = plotInfo.dataSource; + this._eventSource = plotInfo.eventSource; + this._bubble = null; +}; + +Timeplot.Plot.prototype = { + + /** + * Initialize the plot layer + */ + initialize: function() { + if (this._showValues && this._dataSource && this._dataSource.getValue) { + this._timeFlag = this._timeplot.putDiv("timeflag","timeplot-timeflag"); + this._valueFlag = this._timeplot.putDiv(this._id + "valueflag","timeplot-valueflag"); + this._valueFlagLineLeft = this._timeplot.putDiv(this._id + "valueflagLineLeft","timeplot-valueflag-line"); + this._valueFlagLineRight = this._timeplot.putDiv(this._id + "valueflagLineRight","timeplot-valueflag-line"); + if (!this._valueFlagLineLeft.firstChild) { + this._valueFlagLineLeft.appendChild(SimileAjax.Graphics.createTranslucentImage(Timeplot.urlPrefix + "images/line_left.png")); + this._valueFlagLineRight.appendChild(SimileAjax.Graphics.createTranslucentImage(Timeplot.urlPrefix + "images/line_right.png")); + } + this._valueFlagPole = this._timeplot.putDiv(this._id + "valuepole","timeplot-valueflag-pole"); + + var opacity = this._plotInfo.valuesOpacity; + + SimileAjax.Graphics.setOpacity(this._timeFlag, opacity); + SimileAjax.Graphics.setOpacity(this._valueFlag, opacity); + SimileAjax.Graphics.setOpacity(this._valueFlagLineLeft, opacity); + SimileAjax.Graphics.setOpacity(this._valueFlagLineRight, opacity); + SimileAjax.Graphics.setOpacity(this._valueFlagPole, opacity); + + var plot = this; + + var mouseOverHandler = function(elmt, evt, target) { + plot._valueFlag.style.display = "block"; + mouseMoveHandler(elmt, evt, target); + }; + + var day = 24 * 60 * 60 * 1000; + var month = 30 * day; + + var mouseMoveHandler = function(elmt, evt, target) { + if (typeof SimileAjax != "undefined") { + var c = plot._canvas; + var x = Math.round(SimileAjax.DOM.getEventRelativeCoordinates(evt,plot._canvas).x); + if (x > c.width) x = c.width; + if (isNaN(x) || x < 0) x = 0; + var t = plot._timeGeometry.fromScreen(x); + if (t == 0) { // something is wrong + plot._valueFlag.style.display = "none"; + return; + } + + var v = plot._dataSource.getValue(t); + if (plot._plotInfo.roundValues) v = Math.round(v); + plot._valueFlag.innerHTML = new String(v); + var d = new Date(t); + var p = plot._timeGeometry.getPeriod(); + if (p < day) { + plot._timeFlag.innerHTML = d.toLocaleTimeString(); + } else if (p > month) { + plot._timeFlag.innerHTML = d.toLocaleDateString(); + } else { + plot._timeFlag.innerHTML = d.toLocaleString(); + } + + var tw = plot._timeFlag.clientWidth; + var th = plot._timeFlag.clientHeight; + var tdw = Math.round(tw / 2); + var vw = plot._valueFlag.clientWidth; + var vh = plot._valueFlag.clientHeight; + var y = plot._valueGeometry.toScreen(v); + + if (x + tdw > c.width) { + var tx = c.width - tdw; + } else if (x - tdw < 0) { + var tx = tdw; + } else { + var tx = x; + } + + if (plot._timeGeometry._timeValuePosition == "top") { + plot._timeplot.placeDiv(plot._valueFlagPole, { + left: x, + top: th - 5, + height: c.height - y - th + 6, + display: "block" + }); + plot._timeplot.placeDiv(plot._timeFlag,{ + left: tx - tdw, + top: -6, + display: "block" + }); + } else { + plot._timeplot.placeDiv(plot._valueFlagPole, { + left: x, + bottom: th - 5, + height: y - th + 6, + display: "block" + }); + plot._timeplot.placeDiv(plot._timeFlag,{ + left: tx - tdw, + bottom: -6, + display: "block" + }); + } + + if (x + vw + 14 > c.width && y + vh + 4 > c.height) { + plot._valueFlagLineLeft.style.display = "none"; + plot._timeplot.placeDiv(plot._valueFlagLineRight,{ + left: x - 14, + bottom: y - 14, + display: "block" + }); + plot._timeplot.placeDiv(plot._valueFlag,{ + left: x - vw - 13, + bottom: y - vh - 13, + display: "block" + }); + } else if (x + vw + 14 > c.width && y + vh + 4 < c.height) { + plot._valueFlagLineRight.style.display = "none"; + plot._timeplot.placeDiv(plot._valueFlagLineLeft,{ + left: x - 14, + bottom: y, + display: "block" + }); + plot._timeplot.placeDiv(plot._valueFlag,{ + left: x - vw - 13, + bottom: y + 13, + display: "block" + }); + } else if (x + vw + 14 < c.width && y + vh + 4 > c.height) { + plot._valueFlagLineRight.style.display = "none"; + plot._timeplot.placeDiv(plot._valueFlagLineLeft,{ + left: x, + bottom: y - 13, + display: "block" + }); + plot._timeplot.placeDiv(plot._valueFlag,{ + left: x + 13, + bottom: y - 13, + display: "block" + }); + } else { + plot._valueFlagLineLeft.style.display = "none"; + plot._timeplot.placeDiv(plot._valueFlagLineRight,{ + left: x, + bottom: y, + display: "block" + }); + plot._timeplot.placeDiv(plot._valueFlag,{ + left: x + 13, + bottom: y + 13, + display: "block" + }); + } + } + }; + + var timeplotElement = this._timeplot.getElement(); + SimileAjax.DOM.registerEvent(timeplotElement, "mouseover", mouseOverHandler); + SimileAjax.DOM.registerEvent(timeplotElement, "mousemove", mouseMoveHandler); + } + }, + + /** + * Dispose the plot layer and all the data sources and listeners associated to it + */ + dispose: function() { + if (this._dataSource) { + this._dataSource.removeListener(this._paintingListener); + this._paintingListener = null; + this._dataSource.dispose(); + this._dataSource = null; + } + }, + + /** + * Return the data source of this plot layer (it could be either a DataSource or an EventSource) + */ + getDataSource: function() { + return (this._dataSource) ? this._dataSource : this._eventSource; + }, + + /** + * Return the time geometry associated with this plot layer + */ + getTimeGeometry: function() { + return this._timeGeometry; + }, + + /** + * Return the value geometry associated with this plot layer + */ + getValueGeometry: function() { + return this._valueGeometry; + }, + + /** + * Paint this plot layer + */ + paint: function() { + var ctx = this._canvas.getContext('2d'); + + ctx.lineWidth = this._plotInfo.lineWidth; + ctx.lineJoin = 'miter'; + + if (this._dataSource) { + if (this._plotInfo.fillColor) { + if (this._plotInfo.fillGradient) { + var gradient = ctx.createLinearGradient(0,this._canvas.height,0,0); + gradient.addColorStop(0,this._plotInfo.fillColor.toString()); + gradient.addColorStop(0.5,this._plotInfo.fillColor.toString()); + gradient.addColorStop(1, 'rgba(255,255,255,0)'); + + ctx.fillStyle = gradient; + } else { + ctx.fillStyle = this._plotInfo.fillColor.toString(); + } + + ctx.beginPath(); + ctx.moveTo(0,0); + this._plot(function(x,y) { + ctx.lineTo(x,y); + }); + if (this._plotInfo.fillFrom == Number.NEGATIVE_INFINITY) { + ctx.lineTo(this._canvas.width, 0); + } else if (this._plotInfo.fillFrom == Number.POSITIVE_INFINITY) { + ctx.lineTo(this._canvas.width, this._canvas.height); + ctx.lineTo(0, this._canvas.height); + } else { + ctx.lineTo(this._canvas.width, this._valueGeometry.toScreen(this._plotInfo.fillFrom)); + ctx.lineTo(0, this._valueGeometry.toScreen(this._plotInfo.fillFrom)); + } + ctx.fill(); + } + + if (this._plotInfo.lineColor) { + ctx.strokeStyle = this._plotInfo.lineColor.toString(); + ctx.beginPath(); + var first = true; + this._plot(function(x,y) { + if (first) { + first = false; + ctx.moveTo(x,y); + } + ctx.lineTo(x,y); + }); + ctx.stroke(); + } + + if (this._plotInfo.dotColor) { + ctx.fillStyle = this._plotInfo.dotColor.toString(); + var r = this._plotInfo.dotRadius; + this._plot(function(x,y) { + ctx.beginPath(); + ctx.arc(x,y,r,0,2*Math.PI,true); + ctx.fill(); + }); + } + } + + if (this._eventSource) { + var gradient = ctx.createLinearGradient(0,0,0,this._canvas.height); + gradient.addColorStop(1, 'rgba(255,255,255,0)'); + + ctx.strokeStyle = gradient; + ctx.fillStyle = gradient; + ctx.lineWidth = this._plotInfo.eventLineWidth; + ctx.lineJoin = 'miter'; + + var i = this._eventSource.getAllEventIterator(); + while (i.hasNext()) { + var event = i.next(); + var color = event.getColor(); + color = (color) ? new Timeplot.Color(color) : this._plotInfo.lineColor; + var eventStart = event.getStart().getTime(); + var eventEnd = event.getEnd().getTime(); + + if (eventStart == eventEnd) { + var c = color.toString(); + gradient.addColorStop(0, c); + var start = this._timeGeometry.toScreen(eventStart); + start = Math.floor(start) + 0.5; // center it between two pixels (makes the rendering nicer) + var end = start; + ctx.beginPath(); + ctx.moveTo(start,0); + ctx.lineTo(start,this._canvas.height); + ctx.stroke(); + var x = start - 4; + var w = 7; + } else { + var c = color.toString(0.5); + gradient.addColorStop(0, c); + var start = this._timeGeometry.toScreen(eventStart); + start = Math.floor(start) + 0.5; // center it between two pixels (makes the rendering nicer) + var end = this._timeGeometry.toScreen(eventEnd); + end = Math.floor(end) + 0.5; // center it between two pixels (makes the rendering nicer) + ctx.fillRect(start,0,end - start, this._canvas.height); + var x = start; + var w = end - start - 1; + } + + var div = this._timeplot.putDiv(event.getID(),"timeplot-event-box",{ + left: Math.round(x), + width: Math.round(w), + top: 0, + height: this._canvas.height - 1 + }); + + var plot = this; + var clickHandler = function(event) { + return function(elmt, evt, target) { + var doc = plot._timeplot.getDocument(); + plot._closeBubble(); + var coords = SimileAjax.DOM.getEventPageCoordinates(evt); + var elmtCoords = SimileAjax.DOM.getPageCoordinates(elmt); + plot._bubble = SimileAjax.Graphics.createBubbleForPoint(coords.x, parseInt(elmtCoords.top) + parseInt(plot._canvas.height), plot._plotInfo.bubbleWidth, plot._plotInfo.bubbleHeight, "bottom"); + event.fillInfoBubble(plot._bubble.content, plot._theme, plot._timeGeometry.getLabeler()); + }; + }; + var mouseOverHandler = function(elmt, evt, target) { + elmt.oldClass = elmt.className; + elmt.className = elmt.className + " timeplot-event-box-highlight"; + }; + var mouseOutHandler = function(elmt, evt, target) { + elmt.className = elmt.oldClass; + elmt.oldClass = null; + } + + if (!div.instrumented) { + SimileAjax.DOM.registerEvent(div, "click" , clickHandler(event)); + SimileAjax.DOM.registerEvent(div, "mouseover", mouseOverHandler); + SimileAjax.DOM.registerEvent(div, "mouseout" , mouseOutHandler); + + div.instrumented = true; + } + } + } + }, + + _plot: function(f) { + var data = this._dataSource.getData(); + if (data) { + var times = data.times; + var values = data.values; + var T = times.length; + for (var t = 0; t < T; t++) { + var x = this._timeGeometry.toScreen(times[t]); + var y = this._valueGeometry.toScreen(values[t]); + f(x, y); + } + } + }, + + _closeBubble: function() { + if (this._bubble != null) { + this._bubble.close(); + this._bubble = null; + } + } + +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/processor.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/processor.js new file mode 100755 index 000000000..5eef979d3 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/processor.js @@ -0,0 +1,120 @@ +/** + * Processing Data Source + * + * @fileOverview Processing Data Source and Operators + * @name Processor + */ + +/* ----------------------------------------------------------------------------- + * Operators + * + * These are functions that can be used directly as Timeplot.Processor operators + * ----------------------------------------------------------------------------- */ + +Timeplot.Operator = { + + /** + * This is the operator used when you want to draw the cumulative sum + * of a time series and not, for example, their daily values. + */ + sum: function(data, params) { + return Timeplot.Math.integral(data.values); + }, + + /** + * This is the operator that is used to 'smooth' a given time series + * by taking the average value of a moving window centered around + * each value. The size of the moving window is influenced by the 'size' + * parameters in the params map. + */ + average: function(data, params) { + var size = ("size" in params) ? params.size : 30; + var result = Timeplot.Math.movingAverage(data.values, size); + return result; + } +}; + +/*================================================== + * Processing Data Source + *==================================================*/ + +/** + * A Processor is a special DataSource that can apply an Operator + * to the DataSource values and thus return a different one. + * + * @constructor + */ +Timeplot.Processor = function(dataSource, operator, params) { + this._dataSource = dataSource; + this._operator = operator; + this._params = params; + + this._data = { + times: new Array(), + values: new Array() + }; + + this._range = { + earliestDate: null, + latestDate: null, + min: 0, + max: 0 + }; + + var processor = this; + this._processingListener = { + onAddMany: function() { processor._process(); }, + onClear: function() { processor._clear(); } + }; + this.addListener(this._processingListener); +}; + +Timeplot.Processor.prototype = { + + _clear: function() { + this.removeListener(this._processingListener); + this._dataSource._clear(); + }, + + _process: function() { + // this method requires the dataSource._process() method to be + // called first as to setup the data and range used below + // this should be guaranteed by the order of the listener registration + + var data = this._dataSource.getData(); + var range = this._dataSource.getRange(); + + var newValues = this._operator(data, this._params); + var newValueRange = Timeplot.Math.range(newValues); + + this._data = { + times: data.times, + values: newValues + }; + + this._range = { + earliestDate: range.earliestDate, + latestDate: range.latestDate, + min: newValueRange.min, + max: newValueRange.max + }; + }, + + getRange: function() { + return this._range; + }, + + getData: function() { + return this._data; + }, + + getValue: Timeplot.DataSource.prototype.getValue, + + addListener: function(listener) { + this._dataSource.addListener(listener); + }, + + removeListener: function(listener) { + this._dataSource.removeListener(listener); + } +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/signal.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/signal.js new file mode 100755 index 000000000..7bfcf2a35 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/signal.js @@ -0,0 +1,44 @@ +/*================================================== + * This file is used to detect that all outstanding + * javascript files have been loaded. You can put + * a function reference into SimileAjax_onLoad + * to have it executed once all javascript files + * have loaded. + *================================================== + */ +(function() { + var substring = SimileAjax.urlPrefix + "scripts/signal.js"; + var heads = document.documentElement.getElementsByTagName("head"); + for (var h = 0; h < heads.length; h++) { + var node = heads[h].firstChild; + while (node != null) { + if (node.nodeType == 1 && node.tagName.toLowerCase() == "script") { + var url = node.src; + var i = url.indexOf(substring); + if (i >= 0) { + heads[h].removeChild(node); // remove it so we won't hit it again + + var count = parseInt(url.substr(substring.length + 1)); + SimileAjax.loadingScriptsCount -= count; + + if (SimileAjax.loadingScriptsCount == 0) { + var f = null; + if (typeof SimileAjax_onLoad == "string") { + f = eval(SimileAjax_onLoad); + SimileAjax_onLoad = null; + } else if (typeof SimileAjax_onLoad == "function") { + f = SimileAjax_onLoad; + SimileAjax_onLoad = null; + } + + if (f != null) { + f(); + } + } + return; + } + } + node = node.nextSibling; + } + } +})(); \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/sources.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/sources.js new file mode 100755 index 000000000..17c72983e --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/sources.js @@ -0,0 +1,346 @@ +/** + * Sources + * + * @fileOverview Sources + * @name Sources + */ + +/** + * Timeplot.DefaultEventSource is an extension of Timeline.DefaultEventSource + * and therefore reuses the exact same event loading subsystem that + * Timeline uses. + * + * @constructor + */ +Timeplot.DefaultEventSource = function(eventIndex) { + Timeline.DefaultEventSource.apply(this, arguments); +}; + +Object.extend(Timeplot.DefaultEventSource.prototype, Timeline.DefaultEventSource.prototype); + +/** + * Function used by Timeplot to load time series data from a text file. + */ +Timeplot.DefaultEventSource.prototype.loadText = function(text, separator, url, filter, format) { + + if (text == null) { + return; + } + + this._events.maxValues = new Array(); + var base = this._getBaseURL(url); + + if (!format) format = 'iso8601'; + var parseDateTimeFunction = this._events.getUnit().getParser(format); + + var data = this._parseText(text, separator); + + var added = false; + + if (filter) { + data = filter(data); + } + + if (data) { + for (var i = 0; i < data.length; i++){ + var row = data[i]; + if (row.length > 1) { + // var dateStr = $.trim(row[0]); + var dateStr =row[0]; + var date = parseDateTimeFunction(dateStr); + if (date) { + var evt = new Timeplot.DefaultEventSource.NumericEvent(date,row.slice(1)); + this._events.add(evt); + added = true; + } + } + } + } + + if (added) { + this._fire("onAddMany", []); + } +}; + +/* + * Parse the data file. + * + * Adapted from http://www.kawa.net/works/js/jkl/js/jkl-parsexml.js by Yusuke Kawasaki + */ +Timeplot.DefaultEventSource.prototype._parseText = function (text, separator) { + text = text.replace( /\r\n?/g, "\n" ); // normalize newlines + var pos = 0; + var len = text.length; + var table = []; + while (pos < len) { + var line = []; + if (text.charAt(pos) != '#') { // if it's not a comment, process + while (pos < len) { + if (text.charAt(pos) == '"') { // "..." quoted column + var nextquote = text.indexOf('"', pos+1 ); + while (nextquote -1) { + if (text.charAt(nextquote+1) != '"') { + break; // end of column + } + nextquote = text.indexOf('"', nextquote + 2); + } + if ( nextquote < 0 ) { + // unclosed quote + } else if (text.charAt(nextquote + 1) == separator) { // end of column + var quoted = text.substr(pos + 1, nextquote-pos - 1); + quoted = quoted.replace(/""/g,'"'); + line[line.length] = quoted; + pos = nextquote + 2; + continue; + } else if (text.charAt(nextquote + 1) == "\n" || // end of line + len == nextquote + 1 ) { // end of file + var quoted = text.substr(pos + 1, nextquote-pos - 1); + quoted = quoted.replace(/""/g,'"'); + line[line.length] = quoted; + pos = nextquote + 2; + break; + } else { + // invalid column + } + } + var nextseparator = text.indexOf(separator, pos); + var nextnline = text.indexOf("\n", pos); + if (nextnline < 0) nextnline = len; + if (nextseparator > -1 && nextseparator < nextnline) { + line[line.length] = text.substr(pos, nextseparator-pos); + pos = nextseparator + 1; + } else { // end of line + line[line.length] = text.substr(pos, nextnline-pos); + pos = nextnline + 1; + break; + } + } + } else { // if it's a comment, ignore + var nextnline = text.indexOf("\n", pos); + pos = (nextnline > -1) ? nextnline + 1 : cur; + } + if (line.length > 0) { + table[table.length] = line; // push line + } + } + if (table.length < 0) return; // null data + return table; +}; + +/** + * Return the range of the loaded data + */ +Timeplot.DefaultEventSource.prototype.getRange = function() { + var earliestDate = this.getEarliestDate(); + var latestDate = this.getLatestDate(); + return { + earliestDate: (earliestDate) ? earliestDate : null, + latestDate: (latestDate) ? latestDate : null, + min: 0, + max: 0 + }; +}; + +// ----------------------------------------------------------------------- + +/** + * A NumericEvent is an Event that also contains an array of values, + * one for each columns in the loaded data file. + * + * @constructor + */ +Timeplot.DefaultEventSource.NumericEvent = function(time, values) { + this._id = "e" + Math.round(Math.random() * 1000000); + this._time = time; + this._values = values; +}; + +Timeplot.DefaultEventSource.NumericEvent.prototype = { + getID: function() { return this._id; }, + getTime: function() { return this._time; }, + getValues: function() { return this._values; }, + + // these are required by the EventSource + getStart: function() { return this._time; }, + getEnd: function() { return this._time; } +}; + +// ----------------------------------------------------------------------- + +/** + * A DataSource represent an abstract class that represents a monodimensional time series. + * + * @constructor + */ +Timeplot.DataSource = function(eventSource) { + this._eventSource = eventSource; + var source = this; + this._processingListener = { + onAddMany: function() { source._process(); }, + onClear: function() { source._clear(); } + }; + this.addListener(this._processingListener); + this._listeners = []; + this._data = null; + this._range = null; +}; + +Timeplot.DataSource.prototype = { + + _clear: function() { + this._data = null; + this._range = null; + }, + + _process: function() { + this._data = { + times: new Array(), + values: new Array() + }; + this._range = { + earliestDate: null, + latestDate: null, + min: 0, + max: 0 + }; + }, + + /** + * Return the range of this data source + */ + getRange: function() { + return this._range; + }, + + /** + * Return the actual data that this data source represents. + * NOTE: _data = { times: [], values: [] } + */ + getData: function() { + return this._data; + }, + + /** + * Return the value associated with the given time in this time series + */ + getValue: function(t) { + if (this._data) { + for (var i = 0; i < this._data.times.length; i++) { + var l = this._data.times[i]; + if (l >= t) { + return this._data.values[i]; + } + } + } + return 0; + }, + + /** + * Add a listener to the underlying event source + */ + addListener: function(listener) { + this._eventSource.addListener(listener); + }, + + /** + * Remove a listener from the underlying event source + */ + removeListener: function(listener) { + this._eventSource.removeListener(listener); + }, + + /** + * Replace a listener from the underlying event source + */ + replaceListener: function(oldListener, newListener) { + this.removeListener(oldListener); + this.addListener(newListener); + } + +}; + +// ----------------------------------------------------------------------- + +/** + * Implementation of a DataSource that extracts the time series out of a + * single column from the events + * + * @constructor + */ +Timeplot.ColumnSource = function(eventSource, column) { + Timeplot.DataSource.apply(this, arguments); + this._column = column - 1; +}; + +Object.extend(Timeplot.ColumnSource.prototype,Timeplot.DataSource.prototype); + +Timeplot.ColumnSource.prototype.dispose = function() { + this.removeListener(this._processingListener); + this._clear(); +}; + +Timeplot.ColumnSource.prototype._process = function() { + var count = this._eventSource.getCount(); + var times = new Array(count); + var values = new Array(count); + var min = Number.MAX_VALUE; + var max = Number.MIN_VALUE; + var i = 0; + + var iterator = this._eventSource.getAllEventIterator(); + while (iterator.hasNext()) { + var event = iterator.next(); + var time = event.getTime(); + times[i] = time; + var value = this._getValue(event); + if (!isNaN(value)) { + if (value < min) { + min = value; + } + if (value > max) { + max = value; + } + values[i] = value; + } + i++; + } + + this._data = { + times: times, + values: values + }; + + if (max == Number.MIN_VALUE) max = 1; + + this._range = { + earliestDate: this._eventSource.getEarliestDate(), + latestDate: this._eventSource.getLatestDate(), + min: min, + max: max + }; +}; + +Timeplot.ColumnSource.prototype._getValue = function(event) { + return parseFloat(event.getValues()[this._column]); +}; + +// --------------------------------------------------------------- + +/** + * Data Source that generates the time series out of the difference + * between the first and the second column + * + * @constructor + */ +Timeplot.ColumnDiffSource = function(eventSource, column1, column2) { + Timeplot.ColumnSource.apply(this, arguments); + this._column2 = column2 - 1; +}; + +Object.extend(Timeplot.ColumnDiffSource.prototype,Timeplot.ColumnSource.prototype); + +Timeplot.ColumnDiffSource.prototype._getValue = function(event) { + var a = parseFloat(event.getValues()[this._column]); + var b = parseFloat(event.getValues()[this._column2]); + return a - b; +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/timeplot.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/timeplot.js new file mode 100755 index 000000000..d92e52ec9 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/scripts/timeplot.js @@ -0,0 +1,536 @@ +/** + * Timeplot + * + * @fileOverview Timeplot + * @name Timeplot + */ + +//Timeline.Debug = SimileAjax.Debug; // timeline uses it's own debug system which is not as advanced +//var log = SimileAjax.Debug.log; // shorter name is easier to use + +/* + * This function is used to implement a raw but effective OOP-like inheritance + * in various Timeplot classes. + */ +Object.extend = function(destination, source) { + for (var property in source) { + destination[property] = source[property]; + } + return destination; +}; + +// --------------------------------------------- + +/** + * Create a timeplot attached to the given element and using the configuration from the given array of PlotInfos + */ +Timeplot.create = function(elmt, plotInfos) { + return new Timeplot._Impl(elmt, plotInfos); +}; + +/** + * Create a PlotInfo configuration from the given map of params + */ +Timeplot.createPlotInfo = function(params) { + return { + id: ("id" in params) ? params.id : "p" + Math.round(Math.random() * 1000000), + dataSource: ("dataSource" in params) ? params.dataSource : null, + eventSource: ("eventSource" in params) ? params.eventSource : null, + timeGeometry: ("timeGeometry" in params) ? params.timeGeometry : new Timeplot.DefaultTimeGeometry(), + valueGeometry: ("valueGeometry" in params) ? params.valueGeometry : new Timeplot.DefaultValueGeometry(), + timeZone: ("timeZone" in params) ? params.timeZone : 0, + fillColor: ("fillColor" in params) ? ((params.fillColor == "string") ? new Timeplot.Color(params.fillColor) : params.fillColor) : null, + fillGradient: ("fillGradient" in params) ? params.fillGradient : true, + fillFrom: ("fillFrom" in params) ? params.fillFrom : Number.NEGATIVE_INFINITY, + lineColor: ("lineColor" in params) ? ((params.lineColor == "string") ? new Timeplot.Color(params.lineColor) : params.lineColor) : new Timeplot.Color("#606060"), + lineWidth: ("lineWidth" in params) ? params.lineWidth : 1.0, + dotRadius: ("dotRadius" in params) ? params.dotRadius : 2.0, + dotColor: ("dotColor" in params) ? params.dotColor : null, + eventLineWidth: ("eventLineWidth" in params) ? params.eventLineWidth : 1.0, + showValues: ("showValues" in params) ? params.showValues : false, + roundValues: ("roundValues" in params) ? params.roundValues : true, + valuesOpacity: ("valuesOpacity" in params) ? params.valuesOpacity : 75, + bubbleWidth: ("bubbleWidth" in params) ? params.bubbleWidth : 300, + bubbleHeight: ("bubbleHeight" in params) ? params.bubbleHeight : 200 + }; +}; + +// ------------------------------------------------------- + +/** + * This is the implementation of the Timeplot object. + * + * @constructor + */ +Timeplot._Impl = function(elmt, plotInfos) { + this._id = "t" + Math.round(Math.random() * 1000000); + this._containerDiv = elmt; + this._plotInfos = plotInfos; + this._painters = { + background: [], + foreground: [] + }; + this._painter = null; + this._active = false; + this._upright = false; + this._initialize(); +}; + +Timeplot._Impl.prototype = { + + dispose: function() { + for (var i = 0; i < this._plots.length; i++) { + this._plots[i].dispose(); + } + this._plots = null; + this._plotsInfos = null; + this._containerDiv.innerHTML = ""; + }, + + /** + * Returns the main container div this timeplot is operating on. + */ + getElement: function() { + return this._containerDiv; + }, + + /** + * Returns document this timeplot belongs to. + */ + getDocument: function() { + return this._containerDiv.ownerDocument; + }, + + /** + * Append the given element to the timeplot DOM + */ + add: function(div) { + this._containerDiv.appendChild(div); + }, + + /** + * Remove the given element to the timeplot DOM + */ + remove: function(div) { + this._containerDiv.removeChild(div); + }, + + /** + * Add a painter to the timeplot + */ + addPainter: function(layerName, painter) { + var layer = this._painters[layerName]; + if (layer) { + for (var i = 0; i < layer.length; i++) { + if (layer[i].context._id == painter.context._id) { + return; + } + } + layer.push(painter); + } + }, + + /** + * Remove a painter from the timeplot + */ + removePainter: function(layerName, painter) { + var layer = this._painters[layerName]; + if (layer) { + for (var i = 0; i < layer.length; i++) { + if (layer[i].context._id == painter.context._id) { + layer.splice(i, 1); + break; + } + } + } + }, + + /** + * Get the width in pixels of the area occupied by the entire timeplot in the page + */ + getWidth: function() { + return this._containerDiv.clientWidth; + }, + + /** + * Get the height in pixels of the area occupied by the entire timeplot in the page + */ + getHeight: function() { + return this._containerDiv.clientHeight; + }, + + /** + * Get the drawing canvas associated with this timeplot + */ + getCanvas: function() { + return this._canvas; + }, + + /** + *

Load the data from the given url into the given eventSource, using + * the given separator to parse the columns and preprocess it before parsing + * thru the optional filter function. The filter is useful for when + * the data is row-oriented but the format is not compatible with the + * one that Timeplot expects.

+ * + *

Here is an example of a filter that changes dates in the form 'yyyy/mm/dd' + * in the required 'yyyy-mm-dd' format: + *

var dataFilter = function(data) {
+     *     for (var i = 0; i < data.length; i++) {
+     *         var row = data[i];
+     *         row[0] = row[0].replace(/\//g,"-");
+     *     }
+     *     return data;
+     * };

+ */ + loadText: function(url, separator, eventSource, filter, format) { + if (this._active) { + var tp = this; + + var fError = function(statusText, status, xmlhttp) { + alert("Failed to load data xml from " + url + "\n" + statusText); + tp.hideLoadingMessage(); + }; + + var fDone = function(xmlhttp) { + try { + eventSource.loadText(xmlhttp.responseText, separator, url, filter, format); + } catch (e) { + SimileAjax.Debug.exception(e); + } finally { + tp.hideLoadingMessage(); + } + }; + + this.showLoadingMessage(); + window.setTimeout(function() { SimileAjax.XmlHttp.get(url, fError, fDone); }, 0); + } + }, + + /** + * Load event data from the given url into the given eventSource, using + * the Timeline XML event format. + */ + loadXML: function(url, eventSource) { + if (this._active) { + var tl = this; + + var fError = function(statusText, status, xmlhttp) { + alert("Failed to load data xml from " + url + "\n" + statusText); + tl.hideLoadingMessage(); + }; + + var fDone = function(xmlhttp) { + try { + var xml = xmlhttp.responseXML; + if (!xml.documentElement && xmlhttp.responseStream) { + xml.load(xmlhttp.responseStream); + } + eventSource.loadXML(xml, url);tl.repaint(); + } finally { + tl.hideLoadingMessage(); + } + }; + + this.showLoadingMessage(); + window.setTimeout(function() { SimileAjax.XmlHttp.get(url, fError, fDone); }, 0); + } + }, + + /** + * Overlay a 'div' element filled with the given text and styles to this timeplot + * This is used to implement labels since canvas does not support drawing text. + */ + putText: function(id, text, clazz, styles) { + var div = this.putDiv(id, "timeplot-div " + clazz, styles); + div.innerHTML = text; + return div; + }, + + /** + * Overlay a 'div' element, with the given class and the given styles to this timeplot. + * This is used for labels and horizontal and vertical grids. + */ + putDiv: function(id, clazz, styles) { + var tid = this._id + "-" + id; + var div = document.getElementById(tid); + if (!div) { + var container = this._containerDiv.firstChild; // get the divs container + div = document.createElement("div"); + div.setAttribute("id",tid); + container.appendChild(div); + } + div.setAttribute("class","timeplot-div " + clazz); + div.setAttribute("className","timeplot-div " + clazz); + this.placeDiv(div,styles); + return div; + }, + + /** + * Associate the given map of styles to the given element. + * In case such styles indicate position (left,right,top,bottom) correct them + * with the padding information so that they align to the 'internal' area + * of the timeplot. + */ + placeDiv: function(div, styles) { + if (styles) { + for (style in styles) { + if (style == "left") { + styles[style] += this._paddingX; + styles[style] += "px"; + } else if (style == "right") { + styles[style] += this._paddingX; + styles[style] += "px"; + } else if (style == "top") { + styles[style] += this._paddingY; + styles[style] += "px"; + } else if (style == "bottom") { + styles[style] += this._paddingY; + styles[style] += "px"; + } else if (style == "width") { + if (styles[style] < 0) styles[style] = 0; + styles[style] += "px"; + } else if (style == "height") { + if (styles[style] < 0) styles[style] = 0; + styles[style] += "px"; + } + div.style[style] = styles[style]; + } + } + }, + + /** + * return a {x,y} map with the location of the given element relative to the 'internal' area of the timeplot + * (that is, without the container padding) + */ + locate: function(div) { + return { + x: div.offsetLeft - this._paddingX, + y: div.offsetTop - this._paddingY + }; + }, + + /** + * Forces timeplot to re-evaluate the various value and time geometries + * associated with its plot layers and repaint accordingly. This should + * be invoked after the data in any of the data sources has been + * modified. + */ + update: function() { + if (this._active) { + for (var i = 0; i < this._plots.length; i++) { + var plot = this._plots[i]; + var dataSource = plot.getDataSource(); + if (dataSource) { + var range = dataSource.getRange(); + if (range) { + plot._valueGeometry.setRange(range); + plot._timeGeometry.setRange(range); + } + } + } + this.paint(); + } + }, + + /** + * Forces timeplot to re-evaluate its own geometry, clear itself and paint. + * This should be used instead of paint() when you're not sure if the + * geometry of the page has changed or not. + */ + repaint: function() { + if (this._active) { + this._prepareCanvas(); + for (var i = 0; i < this._plots.length; i++) { + var plot = this._plots[i]; + if (plot._timeGeometry) plot._timeGeometry.reset(); + if (plot._valueGeometry) plot._valueGeometry.reset(); + } + this.paint(); + } + }, + + /** + * Calls all the painters that were registered to this timeplot and makes them + * paint the timeplot. This should be used only when you're sure that the geometry + * of the page hasn't changed. + * NOTE: painting is performed by a different thread and it's safe to call this + * function in bursts (as in mousemove or during window resizing + */ + paint: function() { + if (this._active && this._painter == null) { + var timeplot = this; + this._painter = window.setTimeout(function() { + timeplot._clearCanvas(); + + var run = function(action,context) { + try { + if (context.setTimeplot) context.setTimeplot(timeplot); + action.apply(context,[]); + } catch (e) { + SimileAjax.Debug.exception(e); + } + }; + + var background = timeplot._painters.background; + for (var i = 0; i < background.length; i++) { + run(background[i].action, background[i].context); + } + var foreground = timeplot._painters.foreground; + for (var i = 0; i < foreground.length; i++) { + run(foreground[i].action, foreground[i].context); + } + + timeplot._painter = null; + }, 20); + } + }, + + _clearCanvas: function() { + var canvas = this.getCanvas(); + var ctx = canvas.getContext('2d'); + ctx.clearRect(0,0,canvas.width,canvas.height); + }, + + _prepareCanvas: function() { + var canvas = this.getCanvas(); + + // using jQuery. note we calculate the average padding; if your + // padding settings are not symmetrical, the labels will be off + // since they expect to be centered on the canvas. + var s = SimileAjax.DOM.getSize(this._containerDiv); + + canvas.width = s.w; + canvas.height = s.h; + + this._paddingX = (this.getWidth() - canvas.width) / 2; + this._paddingY = (this.getHeight() - canvas.height) / 2; + + var ctx = canvas.getContext('2d'); + this._setUpright(ctx, canvas); + ctx.globalCompositeOperation = 'source-over'; + }, + + _setUpright: function(ctx, canvas) { + // excanvas+IE requires this to be done only once, ever; actual canvas + // implementations reset and require this for each call to re-layout + if (!SimileAjax.Platform.browser.isIE) this._upright = false; + if (!this._upright) { + this._upright = true; + ctx.translate(0, canvas.height); + ctx.scale(1,-1); + } + }, + + _isBrowserSupported: function(canvas) { + var browser = SimileAjax.Platform.browser; + if ((canvas.getContext && window.getComputedStyle) || + (browser.isIE && browser.majorVersion >= 6)) { + return true; + } else { + return false; + } + }, + + _initialize: function() { + + // initialize the window manager (used to handle the popups) + // NOTE: this is a singleton and it's safe to call multiple times + SimileAjax.WindowManager.initialize(); + + var containerDiv = this._containerDiv; + var doc = containerDiv.ownerDocument; + + // make sure the timeplot div has the right class + containerDiv.className = "timeplot-container " + containerDiv.className; + + // clean it up if it contains some content + while (containerDiv.firstChild) { + containerDiv.removeChild(containerDiv.firstChild); + } + + var canvas = doc.createElement("canvas"); + + if (this._isBrowserSupported(canvas)) { + // this is where we'll place the labels + var labels = doc.createElement("div"); + containerDiv.appendChild(labels); + + this._canvas = canvas; + canvas.className = "timeplot-canvas"; + containerDiv.appendChild(canvas); + if(!canvas.getContext && G_vmlCanvasManager) { + canvas = G_vmlCanvasManager.initElement(this._canvas); + this._canvas = canvas; + } + this._prepareCanvas(); + + // inserting copyright and link to simile + var elmtCopyright = SimileAjax.Graphics.createTranslucentImage(Timeplot.urlPrefix + "images/copyright.png"); + elmtCopyright.className = "timeplot-copyright"; + elmtCopyright.title = "Timeplot (c) SIMILE - http://simile.mit.edu/timeplot/"; + SimileAjax.DOM.registerEvent(elmtCopyright, "click", function() { window.location = "http://simile.mit.edu/timeplot/"; }); + containerDiv.appendChild(elmtCopyright); + + var timeplot = this; + var painter = { + onAddMany: function() { timeplot.update(); }, + onClear: function() { timeplot.update(); } + }; + + // creating painters + this._plots = []; + if (this._plotInfos) { + for (var i = 0; i < this._plotInfos.length; i++) { + var plot = new Timeplot.Plot(this, this._plotInfos[i]); + var dataSource = plot.getDataSource(); + if (dataSource) { + dataSource.addListener(painter); + } + this.addPainter("background", { + context: plot.getTimeGeometry(), + action: plot.getTimeGeometry().paint + }); + this.addPainter("background", { + context: plot.getValueGeometry(), + action: plot.getValueGeometry().paint + }); + this.addPainter("foreground", { + context: plot, + action: plot.paint + }); + this._plots.push(plot); + plot.initialize(); + } + } + + // creating loading UI + var message = SimileAjax.Graphics.createMessageBubble(doc); + message.containerDiv.className = "timeplot-message-container"; + containerDiv.appendChild(message.containerDiv); + + message.contentDiv.className = "timeplot-message"; + message.contentDiv.innerHTML = " Loading..."; + + this.showLoadingMessage = function() { message.containerDiv.style.display = "block"; }; + this.hideLoadingMessage = function() { message.containerDiv.style.display = "none"; }; + + this._active = true; + + } else { + + this._message = SimileAjax.Graphics.createMessageBubble(doc); + this._message.containerDiv.className = "timeplot-message-container"; + this._message.containerDiv.style.top = "15%"; + this._message.containerDiv.style.left = "20%"; + this._message.containerDiv.style.right = "20%"; + this._message.containerDiv.style.minWidth = "20em"; + this._message.contentDiv.className = "timeplot-message"; + this._message.contentDiv.innerHTML = "We're terribly sorry, but your browser is not currently supported by Timeplot.

We are working on supporting it in the near future but, for now, see the list of currently supported browsers."; + this._message.containerDiv.style.display = "block"; + + containerDiv.appendChild(this._message.containerDiv); + + } + } +}; \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/simile-ajax-api.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/simile-ajax-api.js new file mode 100755 index 000000000..c8544dda5 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/simile-ajax-api.js @@ -0,0 +1,211 @@ +/*================================================== + * Simile Ajax API + * + * Include this file in your HTML file as follows: + * + * + * + *================================================== + */ + +if (typeof SimileAjax == "undefined") { + var SimileAjax = { + loaded: false, + loadingScriptsCount: 0, + error: null, + params: { bundle:"true" } + }; + + SimileAjax.Platform = new Object(); + /* + HACK: We need these 2 things here because we cannot simply append + a "); + return; + } catch (e) { + // fall through + } + } + + var script = doc.createElement("script"); + if (onerror) { + try { script.innerHTML = onerror; } catch(e) {} + script.setAttribute("onerror", onerror); + } + if (charset) { + script.setAttribute("charset", charset); + } + script.type = "text/javascript"; + script.language = "JavaScript"; + script.src = url; + return getHead(doc).appendChild(script); + }; + SimileAjax.includeJavascriptFiles = function(doc, urlPrefix, filenames) { + for (var i = 0; i < filenames.length; i++) { + SimileAjax.includeJavascriptFile(doc, urlPrefix + filenames[i]); + } + SimileAjax.loadingScriptsCount += filenames.length; + //SimileAjax.includeJavascriptFile(doc, SimileAjax.urlPrefix + "scripts/signal.js?" + filenames.length); + }; + SimileAjax.includeCssFile = function(doc, url) { + if (doc.body == null) { + try { + doc.write(""); + return; + } catch (e) { + // fall through + } + } + + var link = doc.createElement("link"); + link.setAttribute("rel", "stylesheet"); + link.setAttribute("type", "text/css"); + link.setAttribute("href", url); + getHead(doc).appendChild(link); + }; + SimileAjax.includeCssFiles = function(doc, urlPrefix, filenames) { + for (var i = 0; i < filenames.length; i++) { + SimileAjax.includeCssFile(doc, urlPrefix + filenames[i]); + } + }; + + /** + * Append into urls each string in suffixes after prefixing it with urlPrefix. + * @param {Array} urls + * @param {String} urlPrefix + * @param {Array} suffixes + */ + SimileAjax.prefixURLs = function(urls, urlPrefix, suffixes) { + for (var i = 0; i < suffixes.length; i++) { + urls.push(urlPrefix + suffixes[i]); + } + }; + + /** + * Parse out the query parameters from a URL + * @param {String} url the url to parse, or location.href if undefined + * @param {Object} to optional object to extend with the parameters + * @param {Object} types optional object mapping keys to value types + * (String, Number, Boolean or Array, String by default) + * @return a key/value Object whose keys are the query parameter names + * @type Object + */ + SimileAjax.parseURLParameters = function(url, to, types) { + to = to || {}; + types = types || {}; + + if (typeof url == "undefined") { + url = location.href; + } + var q = url.indexOf("?"); + if (q < 0) { + return to; + } + url = (url+"#").slice(q+1, url.indexOf("#")); // toss the URL fragment + + var params = url.split("&"), param, parsed = {}; + var decode = window.decodeURIComponent || unescape; + for (var i = 0; param = params[i]; i++) { + var eq = param.indexOf("="); + var name = decode(param.slice(0,eq)); + var old = parsed[name]; + if (typeof old == "undefined") { + old = []; + } else if (!(old instanceof Array)) { + old = [old]; + } + parsed[name] = old.concat(decode(param.slice(eq+1))); + } + for (var i in parsed) { + if (!parsed.hasOwnProperty(i)) continue; + var type = types[i] || String; + var data = parsed[i]; + if (!(data instanceof Array)) { + data = [data]; + } + if (type === Boolean && data[0] == "false") { + to[i] = false; // because Boolean("false") === true + } else { + to[i] = type.apply(this, data); + } + } + return to; + }; + + (function() { + var javascriptFiles = [ + "jquery-1.1.3.1.js", + "platform.js", + "debug.js", + "xmlhttp.js", + "json.js", + "dom.js", + "graphics.js", + "date-time.js", + "string.js", + "html.js", + "data-structure.js", + "units.js", + + "ajax.js", + "history.js", + "window-manager.js" + ]; + var cssFiles = [ + ]; + + if (typeof SimileAjax_urlPrefix == "string") { + SimileAjax.urlPrefix = SimileAjax_urlPrefix; + } else { + var url = SimileAjax.findScript(document, "simile-ajax-api.js"); + if (url == null) { + SimileAjax.error = new Error("Failed to derive URL prefix for Simile Ajax API code files"); + return; + } + + SimileAjax.urlPrefix = url.substr(0, url.indexOf("simile-ajax-api.js")); + } + + SimileAjax.parseURLParameters(url, SimileAjax.params, {bundle:Boolean}); + if (SimileAjax.params.bundle) { + SimileAjax.includeJavascriptFiles(document, SimileAjax.urlPrefix, [ "simile-ajax-bundle.js" ]); + } else { + SimileAjax.includeJavascriptFiles(document, SimileAjax.urlPrefix + "scripts/", javascriptFiles); + } + SimileAjax.includeCssFiles(document, SimileAjax.urlPrefix + "styles/", cssFiles); + + SimileAjax.loaded = true; + })(); +} \ No newline at end of file diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/simile-ajax-bundle.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/simile-ajax-bundle.js new file mode 100755 index 000000000..74f77a01e --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/simile-ajax-bundle.js @@ -0,0 +1,3048 @@ + + +/* platform.js */ + + + +SimileAjax.Platform.os={ +isMac:false, +isWin:false, +isWin32:false, +isUnix:false +}; +SimileAjax.Platform.browser={ +isIE:false, +isNetscape:false, +isMozilla:false, +isFirefox:false, +isOpera:false, +isSafari:false, + +majorVersion:0, +minorVersion:0 +}; + +(function(){ +var an=navigator.appName.toLowerCase(); +var ua=navigator.userAgent.toLowerCase(); + + +SimileAjax.Platform.os.isMac=(ua.indexOf('mac')!=-1); +SimileAjax.Platform.os.isWin=(ua.indexOf('win')!=-1); +SimileAjax.Platform.os.isWin32=SimileAjax.Platform.isWin&&( +ua.indexOf('95')!=-1|| +ua.indexOf('98')!=-1|| +ua.indexOf('nt')!=-1|| +ua.indexOf('win32')!=-1|| +ua.indexOf('32bit')!=-1 +); +SimileAjax.Platform.os.isUnix=(ua.indexOf('x11')!=-1); + + +SimileAjax.Platform.browser.isIE=(an.indexOf("microsoft")!=-1); +SimileAjax.Platform.browser.isNetscape=(an.indexOf("netscape")!=-1); +SimileAjax.Platform.browser.isMozilla=(ua.indexOf("mozilla")!=-1); +SimileAjax.Platform.browser.isFirefox=(ua.indexOf("firefox")!=-1); +SimileAjax.Platform.browser.isOpera=(an.indexOf("opera")!=-1); +SimileAjax.Platform.browser.isSafari=(an.indexOf("safari")!=-1); + +var parseVersionString=function(s){ +var a=s.split("."); +SimileAjax.Platform.browser.majorVersion=parseInt(a[0]); +SimileAjax.Platform.browser.minorVersion=parseInt(a[1]); +}; +var indexOf=function(s,sub,start){ +var i=s.indexOf(sub,start); +return i>=0?i:s.length; +}; + +if(SimileAjax.Platform.browser.isMozilla){ +var offset=ua.indexOf("mozilla/"); +if(offset>=0){ +parseVersionString(ua.substring(offset+8,indexOf(ua," ",offset))); +} +} +if(SimileAjax.Platform.browser.isIE){ +var offset=ua.indexOf("msie "); +if(offset>=0){ +parseVersionString(ua.substring(offset+5,indexOf(ua,";",offset))); +} +} +if(SimileAjax.Platform.browser.isNetscape){ +var offset=ua.indexOf("rv:"); +if(offset>=0){ +parseVersionString(ua.substring(offset+3,indexOf(ua,")",offset))); +} +} +if(SimileAjax.Platform.browser.isFirefox){ +var offset=ua.indexOf("firefox/"); +if(offset>=0){ +parseVersionString(ua.substring(offset+8,indexOf(ua," ",offset))); +} +} + +if(!("localeCompare"in String.prototype)){ +String.prototype.localeCompare=function(s){ +if(thiss)return 1; +else return 0; +}; +} +})(); + +SimileAjax.Platform.getDefaultLocale=function(){ +return SimileAjax.Platform.clientLocale; +}; + +/* ajax.js */ + + + +SimileAjax.ListenerQueue=function(wildcardHandlerName){ +this._listeners=[]; +this._wildcardHandlerName=wildcardHandlerName; +}; + +SimileAjax.ListenerQueue.prototype.add=function(listener){ +this._listeners.push(listener); +}; + +SimileAjax.ListenerQueue.prototype.remove=function(listener){ +var listeners=this._listeners; +for(var i=0;i0)?this._a[0]:null; +}; + +SimileAjax.SortedArray.prototype.getLast=function(){ +return(this._a.length>0)?this._a[this._a.length-1]:null; +}; + + + +SimileAjax.EventIndex=function(unit){ +var eventIndex=this; + +this._unit=(unit!=null)?unit:SimileAjax.NativeDateUnit; +this._events=new SimileAjax.SortedArray( +function(event1,event2){ +return eventIndex._unit.compare(event1.getStart(),event2.getStart()); +} +); +this._idToEvent={}; +this._indexed=true; +}; + +SimileAjax.EventIndex.prototype.getUnit=function(){ +return this._unit; +}; + +SimileAjax.EventIndex.prototype.getEvent=function(id){ +return this._idToEvent[id]; +}; + +SimileAjax.EventIndex.prototype.add=function(evt){ +this._events.add(evt); +this._idToEvent[evt.getID()]=evt; +this._indexed=false; +}; + +SimileAjax.EventIndex.prototype.removeAll=function(){ +this._events.removeAll(); +this._idToEvent={}; +this._indexed=false; +}; + +SimileAjax.EventIndex.prototype.getCount=function(){ +return this._events.length(); +}; + +SimileAjax.EventIndex.prototype.getIterator=function(startDate,endDate){ +if(!this._indexed){ +this._index(); +} +return new SimileAjax.EventIndex._Iterator(this._events,startDate,endDate,this._unit); +}; + +SimileAjax.EventIndex.prototype.getReverseIterator=function(startDate,endDate){ +if(!this._indexed){ +this._index(); +} +return new SimileAjax.EventIndex._ReverseIterator(this._events,startDate,endDate,this._unit); +}; + +SimileAjax.EventIndex.prototype.getAllIterator=function(){ +return new SimileAjax.EventIndex._AllIterator(this._events); +}; + +SimileAjax.EventIndex.prototype.getEarliestDate=function(){ +var evt=this._events.getFirst(); +return(evt==null)?null:evt.getStart(); +}; + +SimileAjax.EventIndex.prototype.getLatestDate=function(){ +var evt=this._events.getLast(); +if(evt==null){ +return null; +} + +if(!this._indexed){ +this._index(); +} + +var index=evt._earliestOverlapIndex; +var date=this._events.elementAt(index).getEnd(); +for(var i=index+1;i=0){ +this._currentIndex=this._events.elementAt(this._currentIndex-1)._earliestOverlapIndex; +} +this._currentIndex--; + +this._maxIndex=events.find(function(evt){ +return unit.compare(evt.getStart(),endDate); +}); + +this._hasNext=false; +this._next=null; +this._findNext(); +}; + +SimileAjax.EventIndex._Iterator.prototype={ +hasNext:function(){return this._hasNext;}, +next:function(){ +if(this._hasNext){ +var next=this._next; +this._findNext(); + +return next; +}else{ +return null; +} +}, +_findNext:function(){ +var unit=this._unit; +while((++this._currentIndex)0){ + +this._next=evt; +this._hasNext=true; +return; +} +} +this._next=null; +this._hasNext=false; +} +}; + +SimileAjax.EventIndex._ReverseIterator=function(events,startDate,endDate,unit){ +this._events=events; +this._startDate=startDate; +this._endDate=endDate; +this._unit=unit; + +this._minIndex=events.find(function(evt){ +return unit.compare(evt.getStart(),startDate); +}); +if(this._minIndex-1>=0){ +this._minIndex=this._events.elementAt(this._minIndex-1)._earliestOverlapIndex; +} + +this._maxIndex=events.find(function(evt){ +return unit.compare(evt.getStart(),endDate); +}); + +this._currentIndex=this._maxIndex; +this._hasNext=false; +this._next=null; +this._findNext(); +}; + +SimileAjax.EventIndex._ReverseIterator.prototype={ +hasNext:function(){return this._hasNext;}, +next:function(){ +if(this._hasNext){ +var next=this._next; +this._findNext(); + +return next; +}else{ +return null; +} +}, +_findNext:function(){ +var unit=this._unit; +while((--this._currentIndex)>=this._minIndex){ +var evt=this._events.elementAt(this._currentIndex); +if(unit.compare(evt.getStart(),this._endDate)<0&& +unit.compare(evt.getEnd(),this._startDate)>0){ + +this._next=evt; +this._hasNext=true; +return; +} +} +this._next=null; +this._hasNext=false; +} +}; + +SimileAjax.EventIndex._AllIterator=function(events){ +this._events=events; +this._index=0; +}; + +SimileAjax.EventIndex._AllIterator.prototype={ +hasNext:function(){ +return this._index0&&s.length<8){ +var space=s.indexOf(" "); +if(space>0){ +var year=parseInt(s.substr(0,space)); +var suffix=s.substr(space+1); +if(suffix.toLowerCase()=="bc"){ +year=1-year; +} +}else{ +var year=parseInt(s); +} + +var d=new Date(0); +d.setUTCFullYear(year); + +return d; +} + +try{ +return new Date(Date.parse(s)); +}catch(e){ +return null; +} +}; + + +SimileAjax.DateTime.roundDownToInterval=function(date,intervalUnit,timeZone,multiple,firstDayOfWeek){ +var timeShift=timeZone* +SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.HOUR]; + +var date2=new Date(date.getTime()+timeShift); +var clearInDay=function(d){ +d.setUTCMilliseconds(0); +d.setUTCSeconds(0); +d.setUTCMinutes(0); +d.setUTCHours(0); +}; +var clearInYear=function(d){ +clearInDay(d); +d.setUTCDate(1); +d.setUTCMonth(0); +}; + +switch(intervalUnit){ +case SimileAjax.DateTime.MILLISECOND: +var x=date2.getUTCMilliseconds(); +date2.setUTCMilliseconds(x-(x%multiple)); +break; +case SimileAjax.DateTime.SECOND: +date2.setUTCMilliseconds(0); + +var x=date2.getUTCSeconds(); +date2.setUTCSeconds(x-(x%multiple)); +break; +case SimileAjax.DateTime.MINUTE: +date2.setUTCMilliseconds(0); +date2.setUTCSeconds(0); + +var x=date2.getUTCMinutes(); +date2.setTime(date2.getTime()- +(x%multiple)*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.MINUTE]); +break; +case SimileAjax.DateTime.HOUR: +date2.setUTCMilliseconds(0); +date2.setUTCSeconds(0); +date2.setUTCMinutes(0); + +var x=date2.getUTCHours(); +date2.setUTCHours(x-(x%multiple)); +break; +case SimileAjax.DateTime.DAY: +clearInDay(date2); +break; +case SimileAjax.DateTime.WEEK: +clearInDay(date2); +var d=(date2.getUTCDay()+7-firstDayOfWeek)%7; +date2.setTime(date2.getTime()- +d*SimileAjax.DateTime.gregorianUnitLengths[SimileAjax.DateTime.DAY]); +break; +case SimileAjax.DateTime.MONTH: +clearInDay(date2); +date2.setUTCDate(1); + +var x=date2.getUTCMonth(); +date2.setUTCMonth(x-(x%multiple)); +break; +case SimileAjax.DateTime.YEAR: +clearInYear(date2); + +var x=date2.getUTCFullYear(); +date2.setUTCFullYear(x-(x%multiple)); +break; +case SimileAjax.DateTime.DECADE: +clearInYear(date2); +date2.setUTCFullYear(Math.floor(date2.getUTCFullYear()/10)*10); +break; +case SimileAjax.DateTime.CENTURY: +clearInYear(date2); +date2.setUTCFullYear(Math.floor(date2.getUTCFullYear()/100)*100); +break; +case SimileAjax.DateTime.MILLENNIUM: +clearInYear(date2); +date2.setUTCFullYear(Math.floor(date2.getUTCFullYear()/1000)*1000); +break; +} + +date.setTime(date2.getTime()-timeShift); +}; + + +SimileAjax.DateTime.roundUpToInterval=function(date,intervalUnit,timeZone,multiple,firstDayOfWeek){ +var originalTime=date.getTime(); +SimileAjax.DateTime.roundDownToInterval(date,intervalUnit,timeZone,multiple,firstDayOfWeek); +if(date.getTime()12){ +return 24-utcHours+localHours; +}else{ +return-(utcHours+24-localHours); +} +}; + +/* debug.js */ + + + +SimileAjax.Debug={ +silent:false +}; + +SimileAjax.Debug.log=function(msg){ +var f; +if("console"in window&&"log"in window.console){ +f=function(msg2){ +console.log(msg2); +} +}else{ +f=function(msg2){ +if(!SimileAjax.Debug.silent){ +alert(msg2); +} +} +} +SimileAjax.Debug.log=f; +f(msg); +}; + +SimileAjax.Debug.warn=function(msg){ +var f; +if("console"in window&&"warn"in window.console){ +f=function(msg2){ +console.warn(msg2); +} +}else{ +f=function(msg2){ +if(!SimileAjax.Debug.silent){ +alert(msg2); +} +} +} +SimileAjax.Debug.warn=f; +f(msg); +}; + +SimileAjax.Debug.exception=function(e,msg){ +var f,params=SimileAjax.parseURLParameters(); +if(params.errors=="throw"||SimileAjax.params.errors=="throw"){ +f=function(e2,msg2){ +throw(e2); +}; +}else if("console"in window&&"error"in window.console){ +f=function(e2,msg2){ +if(msg2!=null){ +console.error(msg2+" %o",e2); +}else{ +console.error(e2); +} +throw(e2); +}; +}else{ +f=function(e2,msg2){ +if(!SimileAjax.Debug.silent){ +alert("Caught exception: "+msg2+"\n\nDetails: "+("description"in e2?e2.description:e2)); +} +throw(e2); +}; +} +SimileAjax.Debug.exception=f; +f(e,msg); +}; + +SimileAjax.Debug.objectToString=function(o){ +return SimileAjax.Debug._objectToString(o,""); +}; + +SimileAjax.Debug._objectToString=function(o,indent){ +var indent2=indent+" "; +if(typeof o=="object"){ +var s="{"; +for(n in o){ +s+=indent2+n+": "+SimileAjax.Debug._objectToString(o[n],indent2)+"\n"; +} +s+=indent+"}"; +return s; +}else if(typeof o=="array"){ +var s="["; +for(var n=0;n-1)w=w.replace("px",""); +if(h.indexOf("px")>-1)h=h.replace("px",""); +return{ +w:w, +h:h +} +} + +SimileAjax.DOM.getStyle=function(elmt,styleProp){ +if(elmt.currentStyle){ +var style=elmt.currentStyle[styleProp]; +}else if(window.getComputedStyle){ +var style=document.defaultView.getComputedStyle(elmt,null).getPropertyValue(styleProp); +}else{ +var style=""; +} +return style; +} + +SimileAjax.DOM.getEventRelativeCoordinates=function(evt,elmt){ +if(SimileAjax.Platform.browser.isIE){ +return{ +x:evt.offsetX, +y:evt.offsetY +}; +}else{ +var coords=SimileAjax.DOM.getPageCoordinates(elmt); +return{ +x:evt.pageX-coords.left, +y:evt.pageY-coords.top +}; +} +}; + +SimileAjax.DOM.getEventPageCoordinates=function(evt){ +if(SimileAjax.Platform.browser.isIE){ +return{ +x:evt.clientX+document.body.scrollLeft, +y:evt.clientY+document.body.scrollTop +}; +}else{ +return{ +x:evt.pageX, +y:evt.pageY +}; +} +}; + +SimileAjax.DOM.hittest=function(x,y,except){ +return SimileAjax.DOM._hittest(document.body,x,y,except); +}; + +SimileAjax.DOM._hittest=function(elmt,x,y,except){ +var childNodes=elmt.childNodes; +outer:for(var i=0;i"; + +return div.firstChild; +}; + +SimileAjax.DOM.createDOMFromTemplate=function(template){ +var result={}; +result.elmt=SimileAjax.DOM._createDOMFromTemplate(template,result,null); + +return result; +}; + +SimileAjax.DOM._createDOMFromTemplate=function(templateNode,result,parentElmt){ +if(templateNode==null){ + +return null; +}else if(typeof templateNode!="object"){ +var node=document.createTextNode(templateNode); +if(parentElmt!=null){ +parentElmt.appendChild(node); +} +return node; +}else{ +var elmt=null; +if("tag"in templateNode){ +var tag=templateNode.tag; +if(parentElmt!=null){ +if(tag=="tr"){ +elmt=parentElmt.insertRow(parentElmt.rows.length); +}else if(tag=="td"){ +elmt=parentElmt.insertCell(parentElmt.cells.length); +} +} +if(elmt==null){ +elmt=tag=="input"? +SimileAjax.DOM.createInputElement(templateNode.type): +document.createElement(tag); + +if(parentElmt!=null){ +parentElmt.appendChild(elmt); +} +} +}else{ +elmt=templateNode.elmt; +if(parentElmt!=null){ +parentElmt.appendChild(elmt); +} +} + +for(var attribute in templateNode){ +var value=templateNode[attribute]; + +if(attribute=="field"){ +result[value]=elmt; + +}else if(attribute=="className"){ +elmt.className=value; +}else if(attribute=="id"){ +elmt.id=value; +}else if(attribute=="title"){ +elmt.title=value; +}else if(attribute=="type"&&elmt.tagName=="input"){ + +}else if(attribute=="style"){ +for(n in value){ +var v=value[n]; +if(n=="float"){ +n=SimileAjax.Platform.browser.isIE?"styleFloat":"cssFloat"; +} +elmt.style[n]=v; +} +}else if(attribute=="children"){ +for(var i=0;i0){ +elmt.removeAttribute("id"); +if(id in fieldElmts){ +var parentElmt=elmt.parentNode; +parentElmt.insertBefore(fieldElmts[id],elmt); +parentElmt.removeChild(elmt); + +dom[id]=fieldElmts[id]; +return; +}else{ +dom[id]=elmt; +} +} + +if(elmt.hasChildNodes()){ +SimileAjax.DOM._processDOMChildrenConstructedFromString(dom,elmt,fieldElmts); +} +}; + +SimileAjax.DOM._processDOMChildrenConstructedFromString=function(dom,elmt,fieldElmts){ +var node=elmt.firstChild; +while(node!=null){ +var node2=node.nextSibling; +if(node.nodeType==1){ +SimileAjax.DOM._processDOMConstructedFromString(dom,node,fieldElmts); +} +node=node2; +} +}; + + +/* graphics.js */ + + + +SimileAjax.Graphics=new Object(); + + +SimileAjax.Graphics.pngIsTranslucent=(!SimileAjax.Platform.browser.isIE)||(SimileAjax.Platform.browser.majorVersion>6); + + +SimileAjax.Graphics._createTranslucentImage1=function(url,verticalAlign){ +elmt=document.createElement("img"); +elmt.setAttribute("src",url); +if(verticalAlign!=null){ +elmt.style.verticalAlign=verticalAlign; +} +return elmt; +}; +SimileAjax.Graphics._createTranslucentImage2=function(url,verticalAlign){ +elmt=document.createElement("img"); +elmt.style.width="1px"; +elmt.style.height="1px"; +elmt.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+url+"', sizingMethod='image')"; +elmt.style.verticalAlign=(verticalAlign!=null)?verticalAlign:"middle"; +return elmt; +}; + + +SimileAjax.Graphics.createTranslucentImage=SimileAjax.Graphics.pngIsTranslucent? +SimileAjax.Graphics._createTranslucentImage1: +SimileAjax.Graphics._createTranslucentImage2; + +SimileAjax.Graphics._createTranslucentImageHTML1=function(url,verticalAlign){ +return""; +}; +SimileAjax.Graphics._createTranslucentImageHTML2=function(url,verticalAlign){ +var style= +"width: 1px; height: 1px; "+ +"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+url+"', sizingMethod='image');"+ +(verticalAlign!=null?" vertical-align: "+verticalAlign+";":""); + +return""; +}; + + +SimileAjax.Graphics.createTranslucentImageHTML=SimileAjax.Graphics.pngIsTranslucent? +SimileAjax.Graphics._createTranslucentImageHTML1: +SimileAjax.Graphics._createTranslucentImageHTML2; + + +SimileAjax.Graphics.setOpacity=function(elmt,opacity){ +if(SimileAjax.Platform.browser.isIE){ +elmt.style.filter="progid:DXImageTransform.Microsoft.Alpha(Style=0,Opacity="+opacity+")"; +}else{ +var o=(opacity/100).toString(); +elmt.style.opacity=o; +elmt.style.MozOpacity=o; +} +}; + + +SimileAjax.Graphics._bubbleMargins={ +top:33, +bottom:42, +left:33, +right:40 +} + + +SimileAjax.Graphics._arrowOffsets={ +top:0, +bottom:9, +left:1, +right:8 +} + +SimileAjax.Graphics._bubblePadding=15; +SimileAjax.Graphics._bubblePointOffset=6; +SimileAjax.Graphics._halfArrowWidth=18; + + +SimileAjax.Graphics.createBubbleForContentAndPoint=function(div,pageX,pageY,contentWidth,orientation){ +if(typeof contentWidth!="number"){ +contentWidth=300; +} + +div.style.position="absolute"; +div.style.left="-5000px"; +div.style.top="0px"; +div.style.width=contentWidth+"px"; +document.body.appendChild(div); + +window.setTimeout(function(){ +var width=div.scrollWidth+10; +var height=div.scrollHeight+10; + +var bubble=SimileAjax.Graphics.createBubbleForPoint(pageX,pageY,width,height,orientation); + +document.body.removeChild(div); +div.style.position="static"; +div.style.left=""; +div.style.top=""; +div.style.width=width+"px"; +bubble.content.appendChild(div); +},200); +}; + + +SimileAjax.Graphics.createBubbleForPoint=function(pageX,pageY,contentWidth,contentHeight,orientation){ +function getWindowDims(){ +if(typeof window.innerHeight=='number'){ +return{w:window.innerWidth,h:window.innerHeight}; +}else if(document.documentElement&&document.documentElement.clientHeight){ +return{ +w:document.documentElement.clientWidth, +h:document.documentElement.clientHeight +}; +}else if(document.body&&document.body.clientHeight){ +return{ +w:document.body.clientWidth, +h:document.body.clientHeight +}; +} +} + +var close=function(){ +if(!bubble._closed){ +document.body.removeChild(bubble._div); +bubble._doc=null; +bubble._div=null; +bubble._content=null; +bubble._closed=true; +} +} +var bubble={ +_closed:false +}; + +var dims=getWindowDims(); +var docWidth=dims.w; +var docHeight=dims.h; + +var margins=SimileAjax.Graphics._bubbleMargins; +contentWidth=parseInt(contentWidth,10); +contentHeight=parseInt(contentHeight,10); +var bubbleWidth=margins.left+contentWidth+margins.right; +var bubbleHeight=margins.top+contentHeight+margins.bottom; + +var pngIsTranslucent=SimileAjax.Graphics.pngIsTranslucent; +var urlPrefix=SimileAjax.urlPrefix; + +var setImg=function(elmt,url,width,height){ +elmt.style.position="absolute"; +elmt.style.width=width+"px"; +elmt.style.height=height+"px"; +if(pngIsTranslucent){ +elmt.style.background="url("+url+")"; +}else{ +elmt.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+url+"', sizingMethod='crop')"; +} +} +var div=document.createElement("div"); +div.style.width=bubbleWidth+"px"; +div.style.height=bubbleHeight+"px"; +div.style.position="absolute"; +div.style.zIndex=1000; + +var layer=SimileAjax.WindowManager.pushLayer(close,true,div); +bubble._div=div; +bubble.close=function(){SimileAjax.WindowManager.popLayer(layer);} + +var divInner=document.createElement("div"); +divInner.style.width="100%"; +divInner.style.height="100%"; +divInner.style.position="relative"; +div.appendChild(divInner); + +var createImg=function(url,left,top,width,height){ +var divImg=document.createElement("div"); +divImg.style.left=left+"px"; +divImg.style.top=top+"px"; +setImg(divImg,url,width,height); +divInner.appendChild(divImg); +} + +createImg(urlPrefix+"images/bubble-top-left.png",0,0,margins.left,margins.top); +createImg(urlPrefix+"images/bubble-top.png",margins.left,0,contentWidth,margins.top); +createImg(urlPrefix+"images/bubble-top-right.png",margins.left+contentWidth,0,margins.right,margins.top); + +createImg(urlPrefix+"images/bubble-left.png",0,margins.top,margins.left,contentHeight); +createImg(urlPrefix+"images/bubble-right.png",margins.left+contentWidth,margins.top,margins.right,contentHeight); + +createImg(urlPrefix+"images/bubble-bottom-left.png",0,margins.top+contentHeight,margins.left,margins.bottom); +createImg(urlPrefix+"images/bubble-bottom.png",margins.left,margins.top+contentHeight,contentWidth,margins.bottom); +createImg(urlPrefix+"images/bubble-bottom-right.png",margins.left+contentWidth,margins.top+contentHeight,margins.right,margins.bottom); + +var divClose=document.createElement("div"); +divClose.style.left=(bubbleWidth-margins.right+SimileAjax.Graphics._bubblePadding-16-2)+"px"; +divClose.style.top=(margins.top-SimileAjax.Graphics._bubblePadding+1)+"px"; +divClose.style.cursor="pointer"; +setImg(divClose,urlPrefix+"images/close-button.png",16,16); +SimileAjax.WindowManager.registerEventWithObject(divClose,"click",bubble,"close"); +divInner.appendChild(divClose); + +var divContent=document.createElement("div"); +divContent.style.position="absolute"; +divContent.style.left=margins.left+"px"; +divContent.style.top=margins.top+"px"; +divContent.style.width=contentWidth+"px"; +divContent.style.height=contentHeight+"px"; +divContent.style.overflow="auto"; +divContent.style.background="white"; +divInner.appendChild(divContent); +bubble.content=divContent; + +(function(){ +if(pageX-SimileAjax.Graphics._halfArrowWidth-SimileAjax.Graphics._bubblePadding>0&& +pageX+SimileAjax.Graphics._halfArrowWidth+SimileAjax.Graphics._bubblePadding0))){ +var divImg=document.createElement("div"); + +divImg.style.left=(pageX-SimileAjax.Graphics._halfArrowWidth-left)+"px"; +divImg.style.top=(margins.top+contentHeight)+"px"; +setImg(divImg,urlPrefix+"images/bubble-bottom-arrow.png",37,margins.bottom); +divInner.appendChild(divImg); + +div.style.left=left+"px"; +div.style.top=(pageY-SimileAjax.Graphics._bubblePointOffset-bubbleHeight+ +SimileAjax.Graphics._arrowOffsets.bottom)+"px"; + +return; +}else if((orientation&&orientation=="bottom")||(!orientation&&(pageY+SimileAjax.Graphics._bubblePointOffset+bubbleHeight0))){ +var divImg=document.createElement("div"); + +divImg.style.left=(margins.left+contentWidth)+"px"; +divImg.style.top=(pageY-SimileAjax.Graphics._halfArrowWidth-top)+"px"; +setImg(divImg,urlPrefix+"images/bubble-right-arrow.png",margins.right,37); +divInner.appendChild(divImg); + +div.style.left=(pageX-SimileAjax.Graphics._bubblePointOffset-bubbleWidth+ +SimileAjax.Graphics._arrowOffsets.right)+"px"; +div.style.top=top+"px"; +}else if((orientation&&orientation=="right")||(!orientation&&(pageX-SimileAjax.Graphics._bubblePointOffset-bubbleWidth"; + +var textarea=div.firstChild; +textarea.style.width=width+"px"; +textarea.style.height=height+"px"; +textarea.onmousedown=function(evt){ +evt=(evt)?evt:((event)?event:null); +if(evt.button==2){ +textarea.value=createDataFunction(); +textarea.select(); +} +}; + +return div; +}; + +SimileAjax.Graphics.getFontRenderingContext=function(elmt,width){ +return new SimileAjax.Graphics._FontRenderingContext(elmt,width); +}; + +SimileAjax.Graphics._FontRenderingContext=function(elmt,width){ +this._elmt=elmt; +this._elmt.style.visibility="hidden"; +if(typeof width=="string"){ +this._elmt.style.width=width; +}else if(typeof width=="number"){ +this._elmt.style.width=width+"px"; +} +}; + +SimileAjax.Graphics._FontRenderingContext.prototype.dispose=function(){ +this._elmt=null; +}; + +SimileAjax.Graphics._FontRenderingContext.prototype.update=function(){ +this._elmt.innerHTML="A"; +this._lineHeight=this._elmt.offsetHeight; +}; + +SimileAjax.Graphics._FontRenderingContext.prototype.computeSize=function(text){ +this._elmt.innerHTML=text; +return{ +width:this._elmt.offsetWidth, +height:this._elmt.offsetHeight +}; +}; + +SimileAjax.Graphics._FontRenderingContext.prototype.getLineHeight=function(){ +return this._lineHeight; +}; + + +/* history.js */ + + + +SimileAjax.History={ +maxHistoryLength:10, +historyFile:"__history__.html", +enabled:true, + +_initialized:false, +_listeners:new SimileAjax.ListenerQueue(), + +_actions:[], +_baseIndex:0, +_currentIndex:0, + +_plainDocumentTitle:document.title +}; + +SimileAjax.History.formatHistoryEntryTitle=function(actionLabel){ +return SimileAjax.History._plainDocumentTitle+" {"+actionLabel+"}"; +}; + +SimileAjax.History.initialize=function(){ +if(SimileAjax.History._initialized){ +return; +} + +if(SimileAjax.History.enabled){ +var iframe=document.createElement("iframe"); +iframe.id="simile-ajax-history"; +iframe.style.position="absolute"; +iframe.style.width="10px"; +iframe.style.height="10px"; +iframe.style.top="0px"; +iframe.style.left="0px"; +iframe.style.visibility="hidden"; +iframe.src=SimileAjax.History.historyFile+"?0"; + +document.body.appendChild(iframe); +SimileAjax.DOM.registerEvent(iframe,"load",SimileAjax.History._handleIFrameOnLoad); + +SimileAjax.History._iframe=iframe; +} +SimileAjax.History._initialized=true; +}; + +SimileAjax.History.addListener=function(listener){ +SimileAjax.History.initialize(); + +SimileAjax.History._listeners.add(listener); +}; + +SimileAjax.History.removeListener=function(listener){ +SimileAjax.History.initialize(); + +SimileAjax.History._listeners.remove(listener); +}; + +SimileAjax.History.addAction=function(action){ +SimileAjax.History.initialize(); + +SimileAjax.History._listeners.fire("onBeforePerform",[action]); +window.setTimeout(function(){ +try{ +action.perform(); +SimileAjax.History._listeners.fire("onAfterPerform",[action]); + +if(SimileAjax.History.enabled){ +SimileAjax.History._actions=SimileAjax.History._actions.slice( +0,SimileAjax.History._currentIndex-SimileAjax.History._baseIndex); + +SimileAjax.History._actions.push(action); +SimileAjax.History._currentIndex++; + +var diff=SimileAjax.History._actions.length-SimileAjax.History.maxHistoryLength; +if(diff>0){ +SimileAjax.History._actions=SimileAjax.History._actions.slice(diff); +SimileAjax.History._baseIndex+=diff; +} + +try{ +SimileAjax.History._iframe.contentWindow.location.search= +"?"+SimileAjax.History._currentIndex; +}catch(e){ + +var title=SimileAjax.History.formatHistoryEntryTitle(action.label); +document.title=title; +} +} +}catch(e){ +SimileAjax.Debug.exception(e,"Error adding action {"+action.label+"} to history"); +} +},0); +}; + +SimileAjax.History.addLengthyAction=function(perform,undo,label){ +SimileAjax.History.addAction({ +perform:perform, +undo:undo, +label:label, +uiLayer:SimileAjax.WindowManager.getBaseLayer(), +lengthy:true +}); +}; + +SimileAjax.History._handleIFrameOnLoad=function(){ + + +try{ +var q=SimileAjax.History._iframe.contentWindow.location.search; +var c=(q.length==0)?0:Math.max(0,parseInt(q.substr(1))); + +var finishUp=function(){ +var diff=c-SimileAjax.History._currentIndex; +SimileAjax.History._currentIndex+=diff; +SimileAjax.History._baseIndex+=diff; + +SimileAjax.History._iframe.contentWindow.location.search="?"+c; +}; + +if(cc&& +SimileAjax.History._currentIndex>SimileAjax.History._baseIndex){ + +SimileAjax.History._currentIndex--; + +var action=SimileAjax.History._actions[SimileAjax.History._currentIndex-SimileAjax.History._baseIndex]; + +try{ +action.undo(); +}catch(e){ +SimileAjax.Debug.exception(e,"History: Failed to undo action {"+action.label+"}"); +} +} + +SimileAjax.History._listeners.fire("onAfterUndoSeveral",[]); +finishUp(); +},0); +}else if(c>SimileAjax.History._currentIndex){ +SimileAjax.History._listeners.fire("onBeforeRedoSeveral",[]); +window.setTimeout(function(){ +while(SimileAjax.History._currentIndex=0&&index35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7(1g 18.6=="I"){18.I=18.I;u 6=q(a,c){7(18==9||!9.3X)v 14 6(a,c);v 9.3X(a,c)};7(1g $!="I")6.1I$=$;u $=6;6.11=6.8r={3X:q(a,c){a=a||P;7(6.16(a))v 14 6(P)[6.11.1G?"1G":"1W"](a);7(1g a=="1s"){u m=/^[^<]*(<(.|\\s)+>)[^>]*$/.1V(a);7(m)a=6.31([m[1]]);B v 14 6(c).1L(a)}v 9.4E(a.15==2b&&a||(a.3C||a.C&&a!=18&&!a.1q&&a[0]!=I&&a[0].1q)&&6.2L(a)||[a])},3C:"1.1.3.1",7W:q(){v 9.C},C:0,1M:q(a){v a==I?6.2L(9):9[a]},1Z:q(a){u b=6(a);b.5q=9;v b},4E:q(a){9.C=0;[].R.O(9,a);v 9},F:q(a,b){v 6.F(9,a,b)},2p:q(a){u b=-1;9.F(q(i){7(9==a)b=i});v b},1b:q(f,d,e){u c=f;7(f.15==33)7(d==I)v 9.C&&6[e||"1b"](9[0],f)||I;B{c={};c[f]=d}v 9.F(q(a){E(u b V c)6.1b(e?9.T:9,b,6.4H(9,c[b],e,a,b))})},1f:q(b,a){v 9.1b(b,a,"2z")},2A:q(e){7(1g e=="1s")v 9.2Y().3e(P.66(e));u t="";6.F(e||9,q(){6.F(9.2S,q(){7(9.1q!=8)t+=9.1q!=1?9.5R:6.11.2A([9])})});v t},8b:q(){u a,1S=19;v 9.F(q(){7(!a)a=6.31(1S,9.2O);u b=a[0].3s(K);9.L.2K(b,9);1v(b.1d)b=b.1d;b.4g(9)})},3e:q(){v 9.2F(19,K,1,q(a){9.4g(a)})},5w:q(){v 9.2F(19,K,-1,q(a){9.2K(a,9.1d)})},5t:q(){v 9.2F(19,N,1,q(a){9.L.2K(a,9)})},5s:q(){v 9.2F(19,N,-1,q(a){9.L.2K(a,9.1X)})},2U:q(){v 9.5q||6([])},1L:q(t){u b=6.3k(9,q(a){v 6.1L(t,a)});v 9.1Z(/[^+>] [^+>]/.17(t)||t.J("..")>-1?6.5g(b):b)},7x:q(e){u d=9.1A(9.1L("*"));d.F(q(){9.1I$1a={};E(u a V 9.$1a)9.1I$1a[a]=6.1c({},9.$1a[a])}).3U();u r=9.1Z(6.3k(9,q(a){v a.3s(e!=I?e:K)}));d.F(q(){u b=9.1I$1a;E(u a V b)E(u c V b[a])6.S.1A(9,a,b[a][c],b[a][c].W);9.1I$1a=H});v r},1i:q(t){v 9.1Z(6.16(t)&&6.2s(9,q(b,a){v t.O(b,[a])})||6.2x(t,9))},4Y:q(t){v 9.1Z(t.15==33&&6.2x(t,9,K)||6.2s(9,q(a){v(t.15==2b||t.3C)?6.2w(a,t)<0:a!=t}))},1A:q(t){v 9.1Z(6.1T(9.1M(),t.15==33?6(t).1M():t.C!=I&&(!t.Q||t.Q=="6Z")?t:[t]))},37:q(a){v a?6.2x(a,9).C>0:N},6R:q(a){v a==I?(9.C?9[0].2v:H):9.1b("2v",a)},3F:q(a){v a==I?(9.C?9[0].27:H):9.2Y().3e(a)},2F:q(f,d,g,e){u c=9.C>1,a;v 9.F(q(){7(!a){a=6.31(f,9.2O);7(g<0)a.6E()}u b=9;7(d&&6.Q(9,"1r")&&6.Q(a[0],"2V"))b=9.3R("1z")[0]||9.4g(P.5h("1z"));6.F(a,q(){e.O(b,[c?9.3s(K):9])})})}};6.1c=6.11.1c=q(){u c=19[0],a=1;7(19.C==1){c=9;a=0}u b;1v((b=19[a++])!=H)E(u i V b)c[i]=b[i];v c};6.1c({6n:q(){7(6.1I$)$=6.1I$;v 6},16:q(a){v!!a&&1g a!="1s"&&!a.Q&&a.15!=2b&&/q/i.17(a+"")},40:q(a){v a.4z&&a.2O&&!a.2O.4y},Q:q(b,a){v b.Q&&b.Q.1D()==a.1D()},F:q(a,b,c){7(a.C==I)E(u i V a)b.O(a[i],c||[i,a[i]]);B E(u i=0,4x=a.C;i<4x;i++)7(b.O(a[i],c||[i,a[i]])===N)1F;v a},4H:q(c,b,d,e,a){7(6.16(b))b=b.3D(c,[e]);u f=/z-?2p|5Y-?8p|1e|5U|8i-?1u/i;v b&&b.15==3y&&d=="2z"&&!f.17(a)?b+"4o":b},12:{1A:q(b,c){6.F(c.2R(/\\s+/),q(i,a){7(!6.12.3w(b.12,a))b.12+=(b.12?" ":"")+a})},1E:q(b,c){b.12=c!=I?6.2s(b.12.2R(/\\s+/),q(a){v!6.12.3w(c,a)}).5M(" "):""},3w:q(t,c){v 6.2w(c,(t.12||t).3v().2R(/\\s+/))>-1}},4m:q(e,o,f){E(u i V o){e.T["2N"+i]=e.T[i];e.T[i]=o[i]}f.O(e,[]);E(u i V o)e.T[i]=e.T["2N"+i]},1f:q(e,p){7(p=="1u"||p=="29"){u b={},3r,3p,d=["83","81","80","7Y"];6.F(d,q(){b["7V"+9]=0;b["7T"+9+"7S"]=0});6.4m(e,b,q(){7(6(e).37(\':4f\')){3r=e.7Q;3p=e.7O}B{e=6(e.3s(K)).1L(":4b").5v("2B").2U().1f({48:"1y",3i:"7L",U:"2h",7K:"0",7I:"0"}).5o(e.L)[0];u a=6.1f(e.L,"3i")||"3n";7(a=="3n")e.L.T.3i="7G";3r=e.7E;3p=e.7D;7(a=="3n")e.L.T.3i="3n";e.L.3q(e)}});v p=="1u"?3r:3p}v 6.2z(e,p)},2z:q(e,a,d){u g;7(a=="1e"&&6.M.1h){g=6.1b(e.T,"1e");v g==""?"1":g}7(a.3t(/3x/i))a=6.1U;7(!d&&e.T[a])g=e.T[a];B 7(P.3f&&P.3f.3Y){7(a.3t(/3x/i))a="3x";a=a.1o(/([A-Z])/g,"-$1").2H();u b=P.3f.3Y(e,H);7(b)g=b.57(a);B 7(a=="U")g="1P";B 6.4m(e,{U:"2h"},q(){u c=P.3f.3Y(9,"");g=c&&c.57(a)||""})}B 7(e.3S){u f=a.1o(/\\-(\\w)/g,q(m,c){v c.1D()});g=e.3S[a]||e.3S[f]}v g},31:q(a,c){u r=[];c=c||P;6.F(a,q(i,b){7(!b)v;7(b.15==3y)b=b.3v();7(1g b=="1s"){u s=6.2C(b).2H(),1x=c.5h("1x"),1N=[];u a=!s.J("<1H")&&[1,"<2y>",""]||!s.J("<7g")&&[1,"<52>",""]||(!s.J("<7c")||!s.J("<1z")||!s.J("<7a")||!s.J("<78"))&&[1,"<1r>",""]||!s.J("<2V")&&[2,"<1r><1z>",""]||(!s.J("<75")||!s.J("<74"))&&[3,"<1r><1z><2V>",""]||!s.J("<73")&&[2,"<1r><4W>",""]||[0,"",""];1x.27=a[1]+b+a[2];1v(a[0]--)1x=1x.1d;7(6.M.1h){7(!s.J("<1r")&&s.J("<1z")<0)1N=1x.1d&&1x.1d.2S;B 7(a[1]=="<1r>"&&s.J("<1z")<0)1N=1x.2S;E(u n=1N.C-1;n>=0;--n)7(6.Q(1N[n],"1z")&&!1N[n].2S.C)1N[n].L.3q(1N[n])}b=6.2L(1x.2S)}7(0===b.C&&(!6.Q(b,"34")&&!6.Q(b,"2y")))v;7(b[0]==I||6.Q(b,"34")||b.71)r.R(b);B r=6.1T(r,b)});v r},1b:q(c,d,a){u e=6.40(c)?{}:6.3H;7(e[d]){7(a!=I)c[e[d]]=a;v c[e[d]]}B 7(a==I&&6.M.1h&&6.Q(c,"34")&&(d=="70"||d=="6Y"))v c.6W(d).5R;B 7(c.4z){7(a!=I)c.6U(d,a);7(6.M.1h&&/4M|2u/.17(d)&&!6.40(c))v c.35(d,2);v c.35(d)}B{7(d=="1e"&&6.M.1h){7(a!=I){c.5U=1;c.1i=(c.1i||"").1o(/4L\\([^)]*\\)/,"")+(39(a).3v()=="6M"?"":"4L(1e="+a*4X+")")}v c.1i?(39(c.1i.3t(/1e=([^)]*)/)[1])/4X).3v():""}d=d.1o(/-([a-z])/6K,q(z,b){v b.1D()});7(a!=I)c[d]=a;v c[d]}},2C:q(t){v t.1o(/^\\s+|\\s+$/g,"")},2L:q(a){u r=[];7(1g a!="6I")E(u i=0,26=a.C;i<26;i++)r.R(a[i]);B r=a.51(0);v r},2w:q(b,a){E(u i=0,26=a.C;i<26;i++)7(a[i]==b)v i;v-1},1T:q(a,b){E(u i=0;b[i];i++)a.R(b[i]);v a},5g:q(a){u r=[],3P=6.1k++;E(u i=0,4G=a.C;i<4G;i++)7(3P!=a[i].1k){a[i].1k=3P;r.R(a[i])}v r},1k:0,2s:q(c,b,d){7(1g b=="1s")b=14 45("a","i","v "+b);u a=[];E(u i=0,30=c.C;i<30;i++)7(!d&&b(c[i],i)||d&&!b(c[i],i))a.R(c[i]);v a},3k:q(c,b){7(1g b=="1s")b=14 45("a","v "+b);u d=[];E(u i=0,30=c.C;i<30;i++){u a=b(c[i],i);7(a!==H&&a!=I){7(a.15!=2b)a=[a];d=d.6v(a)}}v d}});14 q(){u b=6u.6t.2H();6.M={4D:(b.3t(/.+(?:6s|6q|6o|6m)[\\/: ]([\\d.]+)/)||[])[1],20:/5l/.17(b),2a:/2a/.17(b),1h:/1h/.17(b)&&!/2a/.17(b),3j:/3j/.17(b)&&!/(6h|5l)/.17(b)};6.6g=!6.M.1h||P.6f=="6c";6.1U=6.M.1h?"1U":"5x",6.3H={"E":"68","67":"12","3x":6.1U,5x:6.1U,1U:6.1U,27:"27",12:"12",2v:"2v",2r:"2r",2B:"2B",65:"63",2T:"2T",62:"5Z"}};6.F({4v:"a.L",4p:"6.4p(a)",8o:"6.22(a,2,\'1X\')",8n:"6.22(a,2,\'4t\')",8k:"6.4q(a.L.1d,a)",8h:"6.4q(a.1d)"},q(i,n){6.11[i]=q(a){u b=6.3k(9,n);7(a&&1g a=="1s")b=6.2x(a,b);v 9.1Z(b)}});6.F({5o:"3e",8g:"5w",2K:"5t",8f:"5s"},q(i,n){6.11[i]=q(){u a=19;v 9.F(q(){E(u j=0,26=a.C;j<26;j++)6(a[j])[n](9)})}});6.F({5v:q(a){6.1b(9,a,"");9.8d(a)},8c:q(c){6.12.1A(9,c)},88:q(c){6.12.1E(9,c)},87:q(c){6.12[6.12.3w(9,c)?"1E":"1A"](9,c)},1E:q(a){7(!a||6.1i(a,[9]).r.C)9.L.3q(9)},2Y:q(){1v(9.1d)9.3q(9.1d)}},q(i,n){6.11[i]=q(){v 9.F(n,19)}});6.F(["5Q","5P","5O","5N"],q(i,n){6.11[n]=q(a,b){v 9.1i(":"+n+"("+a+")",b)}});6.F(["1u","29"],q(i,n){6.11[n]=q(h){v h==I?(9.C?6.1f(9[0],n):H):9.1f(n,h.15==33?h:h+"4o")}});6.1c({4n:{"":"m[2]==\'*\'||6.Q(a,m[2])","#":"a.35(\'2m\')==m[2]",":":{5P:"im[3]-0",22:"m[3]-0==i",5Q:"m[3]-0==i",2Q:"i==0",2P:"i==r.C-1",5L:"i%2==0",5K:"i%2","2Q-3u":"a.L.3R(\'*\')[0]==a","2P-3u":"6.22(a.L.5J,1,\'4t\')==a","86-3u":"!6.22(a.L.5J,2,\'4t\')",4v:"a.1d",2Y:"!a.1d",5N:"(a.5H||a.85||\'\').J(m[3])>=0",4f:\'"1y"!=a.G&&6.1f(a,"U")!="1P"&&6.1f(a,"48")!="1y"\',1y:\'"1y"==a.G||6.1f(a,"U")=="1P"||6.1f(a,"48")=="1y"\',84:"!a.2r",2r:"a.2r",2B:"a.2B",2T:"a.2T||6.1b(a,\'2T\')",2A:"\'2A\'==a.G",4b:"\'4b\'==a.G",5F:"\'5F\'==a.G",4l:"\'4l\'==a.G",5E:"\'5E\'==a.G",4k:"\'4k\'==a.G",5D:"\'5D\'==a.G",5C:"\'5C\'==a.G",1J:\'"1J"==a.G||6.Q(a,"1J")\',5B:"/5B|2y|82|1J/i.17(a.Q)"},"[":"6.1L(m[2],a).C"},5A:[/^\\[ *(@)([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,14 3o("^([:.#]*)("+(6.2J=6.M.20&&6.M.4D<"3.0.0"?"\\\\w":"(?:[\\\\w\\7Z-\\7X*1I-]|\\\\\\\\.)")+"+)")],2x:q(a,c,b){u d,1K=[];1v(a&&a!=d){d=a;u f=6.1i(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1K=b?c=f.r:6.1T(1K,f.r)}v 1K},1L:q(t,l){7(1g t!="1s")v[t];7(l&&!l.1q)l=H;l=l||P;7(!t.J("//")){l=l.4h;t=t.2G(2,t.C)}B 7(!t.J("/")&&!l.2O){l=l.4h;t=t.2G(1,t.C);7(t.J("/")>=1)t=t.2G(t.J("/"),t.C)}u b=[l],2j=[],2P;1v(t&&2P!=t){u r=[];2P=t;t=6.2C(t).1o(/^\\/\\//,"");u k=N;u g=14 3o("^[/>]\\\\s*("+6.2J+"+)");u m=g.1V(t);7(m){u o=m[1].1D();E(u i=0;b[i];i++)E(u c=b[i].1d;c;c=c.1X)7(c.1q==1&&(o=="*"||c.Q.1D()==o.1D()))r.R(c);b=r;t=t.1o(g,"");7(t.J(" ")==0)7R;k=K}B{g=/^((\\/?\\.\\.)|([>\\/+~]))\\s*([a-z]*)/i;7((m=g.1V(t))!=H){r=[];u o=m[4],1k=6.1k++;m=m[1];E(u j=0,2e=b.C;j<2e;j++)7(m.J("..")<0){u n=m=="~"||m=="+"?b[j].1X:b[j].1d;E(;n;n=n.1X)7(n.1q==1){7(m=="~"&&n.1k==1k)1F;7(!o||n.Q.1D()==o.1D()){7(m=="~")n.1k=1k;r.R(n)}7(m=="+")1F}}B r.R(b[j].L);b=r;t=6.2C(t.1o(g,""));k=K}}7(t&&!k){7(!t.J(",")){7(l==b[0])b.4e();2j=6.1T(2j,b);r=b=[l];t=" "+t.2G(1,t.C)}B{u h=14 3o("^("+6.2J+"+)(#)("+6.2J+"+)");u m=h.1V(t);7(m){m=[0,m[2],m[3],m[1]]}B{h=14 3o("^([#.]?)("+6.2J+"*)");m=h.1V(t)}m[2]=m[2].1o(/\\\\/g,"");u f=b[b.C-1];7(m[1]=="#"&&f&&f.4d){u p=f.4d(m[2]);7((6.M.1h||6.M.2a)&&p&&1g p.2m=="1s"&&p.2m!=m[2])p=6(\'[@2m="\'+m[2]+\'"]\',f)[0];b=r=p&&(!m[3]||6.Q(p,m[3]))?[p]:[]}B{E(u i=0;b[i];i++){u a=m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&b[i].Q.2H()=="7P")a="2E";r=6.1T(r,b[i].3R(a))}7(m[1]==".")r=6.4c(r,m[2]);7(m[1]=="#"){u e=[];E(u i=0;r[i];i++)7(r[i].35("2m")==m[2]){e=[r[i]];1F}r=e}b=r}t=t.1o(h,"")}}7(t){u d=6.1i(t,r);b=r=d.r;t=6.2C(d.t)}}7(t)b=[];7(b&&l==b[0])b.4e();2j=6.1T(2j,b);v 2j},4c:q(r,m,a){m=" "+m+" ";u b=[];E(u i=0;r[i];i++){u c=(" "+r[i].12+" ").J(m)>=0;7(!a&&c||a&&!c)b.R(r[i])}v b},1i:q(t,r,h){u d;1v(t&&t!=d){d=t;u p=6.5A,m;E(u i=0;p[i];i++){m=p[i].1V(t);7(m){t=t.7N(m[0].C);m[2]=m[2].1o(/\\\\/g,"");1F}}7(!m)1F;7(m[1]==":"&&m[2]=="4Y")r=6.1i(m[3],r,K).r;B 7(m[1]==".")r=6.4c(r,m[2],h);B 7(m[1]=="@"){u g=[],G=m[3];E(u i=0,2e=r.C;i<2e;i++){u a=r[i],z=a[6.3H[m[2]]||m[2]];7(z==H||/4M|2u/.17(m[2]))z=6.1b(a,m[2])||\'\';7((G==""&&!!z||G=="="&&z==m[5]||G=="!="&&z!=m[5]||G=="^="&&z&&!z.J(m[5])||G=="$="&&z.2G(z.C-m[5].C)==m[5]||(G=="*="||G=="~=")&&z.J(m[5])>=0)^h)g.R(a)}r=g}B 7(m[1]==":"&&m[2]=="22-3u"){u e=6.1k++,g=[],17=/(\\d*)n\\+?(\\d*)/.1V(m[3]=="5L"&&"2n"||m[3]=="5K"&&"2n+1"||!/\\D/.17(m[3])&&"n+"+m[3]||m[3]),2Q=(17[1]||1)-0,d=17[2]-0;E(u i=0,2e=r.C;i<2e;i++){u j=r[i],L=j.L;7(e!=L.1k){u c=1;E(u n=L.1d;n;n=n.1X)7(n.1q==1)n.4a=c++;L.1k=e}u b=N;7(2Q==1){7(d==0||j.4a==d)b=K}B 7((j.4a+d)%2Q==0)b=K;7(b^h)g.R(j)}r=g}B{u f=6.4n[m[1]];7(1g f!="1s")f=6.4n[m[1]][m[2]];49("f = q(a,i){v "+f+"}");r=6.2s(r,f,h)}}v{r:r,t:t}},4p:q(c){u b=[];u a=c.L;1v(a&&a!=P){b.R(a);a=a.L}v b},22:q(a,e,c,b){e=e||1;u d=0;E(;a;a=a[c])7(a.1q==1&&++d==e)1F;v a},4q:q(n,a){u r=[];E(;n;n=n.1X){7(n.1q==1&&(!a||n!=a))r.R(n)}v r}});6.S={1A:q(d,e,c,b){7(6.M.1h&&d.3m!=I)d=18;7(!c.1Q)c.1Q=9.1Q++;7(b!=I){u f=c;c=q(){v f.O(9,19)};c.W=b;c.1Q=f.1Q}7(!d.$1a)d.$1a={};7(!d.$1p)d.$1p=q(){u a;7(1g 6=="I"||6.S.47)v a;a=6.S.1p.O(d,19);v a};u g=d.$1a[e];7(!g){g=d.$1a[e]={};7(d.46)d.46(e,d.$1p,N);B d.7M("5r"+e,d.$1p)}g[c.1Q]=c;7(!9.Y[e])9.Y[e]=[];7(6.2w(d,9.Y[e])==-1)9.Y[e].R(d)},1Q:1,Y:{},1E:q(b,c,a){u d=b.$1a,1Y,2p;7(d){7(c&&c.G){a=c.44;c=c.G}7(!c){E(c V d)9.1E(b,c)}B 7(d[c]){7(a)3l d[c][a.1Q];B E(a V b.$1a[c])3l d[c][a];E(1Y V d[c])1F;7(!1Y){7(b.43)b.43(c,b.$1p,N);B b.7J("5r"+c,b.$1p);1Y=H;3l d[c];1v(9.Y[c]&&((2p=6.2w(b,9.Y[c]))>=0))3l 9.Y[c][2p]}}E(1Y V d)1F;7(!1Y)b.$1p=b.$1a=H}},1t:q(c,b,d){b=6.2L(b||[]);7(!d)6.F(9.Y[c]||[],q(){6.S.1t(c,b,9)});B{u a,1Y,11=6.16(d[c]||H);b.5p(9.42({G:c,1O:d}));7(6.16(d.$1p)&&(a=d.$1p.O(d,b))!==N)9.47=K;7(11&&a!==N&&!6.Q(d,\'a\'))d[c]();9.47=N}},1p:q(b){u a;b=6.S.42(b||18.S||{});u c=9.$1a&&9.$1a[b.G],1S=[].51.3D(19,1);1S.5p(b);E(u j V c){1S[0].44=c[j];1S[0].W=c[j].W;7(c[j].O(9,1S)===N){b.2d();b.2D();a=N}}7(6.M.1h)b.1O=b.2d=b.2D=b.44=b.W=H;v a},42:q(c){u a=c;c=6.1c({},a);c.2d=q(){7(a.2d)v a.2d();a.7H=N};c.2D=q(){7(a.2D)v a.2D();a.7F=K};7(!c.1O&&c.5n)c.1O=c.5n;7(6.M.20&&c.1O.1q==3)c.1O=a.1O.L;7(!c.41&&c.4j)c.41=c.4j==c.1O?c.7C:c.4j;7(c.5k==H&&c.5j!=H){u e=P.4h,b=P.4y;c.5k=c.5j+(e&&e.5i||b.5i);c.7z=c.7y+(e&&e.5f||b.5f)}7(!c.3h&&(c.5e||c.5d))c.3h=c.5e||c.5d;7(!c.5c&&c.5b)c.5c=c.5b;7(!c.3h&&c.1J)c.3h=(c.1J&1?1:(c.1J&2?3:(c.1J&4?2:0)));v c}};6.11.1c({3g:q(c,a,b){v c=="3z"?9.3Z(c,a,b):9.F(q(){6.S.1A(9,c,b||a,b&&a)})},3Z:q(d,b,c){v 9.F(q(){6.S.1A(9,d,q(a){6(9).3U(a);v(c||b).O(9,19)},c&&b)})},3U:q(a,b){v 9.F(q(){6.S.1E(9,a,b)})},1t:q(a,b){v 9.F(q(){6.S.1t(a,b,9)})},1R:q(){u a=19;v 9.5a(q(e){9.4u=0==9.4u?1:0;e.2d();v a[9.4u].O(9,[e])||N})},7w:q(f,g){q 3W(e){u p=e.41;1v(p&&p!=9)2g{p=p.L}25(e){p=9};7(p==9)v N;v(e.G=="3V"?f:g).O(9,[e])}v 9.3V(3W).59(3W)},1G:q(f){7(6.3d)f.O(P,[6]);B 6.2q.R(q(){v f.O(9,[6])});v 9}});6.1c({3d:N,2q:[],1G:q(){7(!6.3d){6.3d=K;7(6.2q){6.F(6.2q,q(){9.O(P)});6.2q=H}7(6.M.3j||6.M.2a)P.43("58",6.1G,N);7(!18.7v.C)6(18).1W(q(){6("#3T").1E()})}}});14 q(){6.F(("7u,7t,1W,7s,7r,3z,5a,7q,"+"7p,7o,7n,3V,59,7m,2y,"+"4k,7l,7k,7j,2c").2R(","),q(i,o){6.11[o]=q(f){v f?9.3g(o,f):9.1t(o)}});7(6.M.3j||6.M.2a)P.46("58",6.1G,N);B 7(6.M.1h){P.7i("<7h"+"7f 2m=3T 7e=K "+"2u=//:><\\/3b>");u a=P.4d("3T");7(a)a.7d=q(){7(9.3a!="1n")v;6.1G()};a=H}B 7(6.M.20)6.3N=3m(q(){7(P.3a=="79"||P.3a=="1n"){3M(6.3N);6.3N=H;6.1G()}},10);6.S.1A(18,"1W",6.1G)};7(6.M.1h)6(18).3Z("3z",q(){u a=6.S.Y;E(u b V a){u c=a[b],i=c.C;7(i&&b!=\'3z\')77 c[i-1]&&6.S.1E(c[i-1],b);1v(--i)}});6.11.1c({76:q(c,b,a){9.1W(c,b,a,1)},1W:q(g,d,c,e){7(6.16(g))v 9.3g("1W",g);c=c||q(){};u f="3K";7(d)7(6.16(d)){c=d;d=H}B{d=6.2E(d);f="50"}u h=9;6.2Z({1C:g,G:f,W:d,2t:e,1n:q(a,b){7(b=="28"||!e&&b=="4V")h.1b("27",a.3c).3J().F(c,[a.3c,b,a]);B c.O(h,[a.3c,b,a])}});v 9},72:q(){v 6.2E(9)},3J:q(){v 9.1L("3b").F(q(){7(9.2u)6.4U(9.2u);B 6.3I(9.2A||9.5H||9.27||"")}).2U()}});6.F("4T,4I,4S,4R,4Q,4P".2R(","),q(i,o){6.11[o]=q(f){v 9.3g(o,f)}});6.1c({1M:q(e,c,a,d,b){7(6.16(c)){a=c;c=H}v 6.2Z({G:"3K",1C:e,W:c,28:a,3G:d,2t:b})},6X:q(d,b,a,c){v 6.1M(d,b,a,c,1)},4U:q(b,a){v 6.1M(b,H,a,"3b")},6V:q(c,b,a){v 6.1M(c,b,a,"4N")},6T:q(d,b,a,c){7(6.16(b)){a=b;b={}}v 6.2Z({G:"50",1C:d,W:b,28:a,3G:c})},6S:q(a){6.36.21=a},6Q:q(a){6.1c(6.36,a)},36:{Y:K,G:"3K",21:0,4O:"6P/x-6O-34-6N",4K:K,38:K,W:H},32:{},2Z:q(s){s=6.1c({},6.36,s);7(s.W){7(s.4K&&1g s.W!="1s")s.W=6.2E(s.W);7(s.G.2H()=="1M"){s.1C+=((s.1C.J("?")>-1)?"&":"?")+s.W;s.W=H}}7(s.Y&&!6.3L++)6.S.1t("4T");u f=N;u h=18.4Z?14 4Z("6L.6J"):14 4J();h.7b(s.G,s.1C,s.38);7(s.W)h.3Q("6H-6G",s.4O);7(s.2t)h.3Q("6F-3O-6D",6.32[s.1C]||"6C, 6B 6A 6z 4r:4r:4r 6y");h.3Q("X-6x-6w","4J");7(s.56)s.56(h);7(s.Y)6.S.1t("4P",[h,s]);u g=q(d){7(h&&(h.3a==4||d=="21")){f=K;7(i){3M(i);i=H}u c;2g{c=6.54(h)&&d!="21"?s.2t&&6.4F(h,s.1C)?"4V":"28":"2c";7(c!="2c"){u b;2g{b=h.3E("53-3O")}25(e){}7(s.2t&&b)6.32[s.1C]=b;u a=6.55(h,s.3G);7(s.28)s.28(a,c);7(s.Y)6.S.1t("4Q",[h,s])}B 6.2X(s,h,c)}25(e){c="2c";6.2X(s,h,c,e)}7(s.Y)6.S.1t("4S",[h,s]);7(s.Y&&!--6.3L)6.S.1t("4I");7(s.1n)s.1n(h,c);7(s.38)h=H}};u i=3m(g,13);7(s.21>0)4C(q(){7(h){h.6r();7(!f)g("21")}},s.21);2g{h.6p(s.W)}25(e){6.2X(s,h,H,e)}7(!s.38)g();v h},2X:q(s,a,b,e){7(s.2c)s.2c(a,b,e);7(s.Y)6.S.1t("4R",[a,s,e])},3L:0,54:q(r){2g{v!r.23&&7A.7B=="4l:"||(r.23>=5u&&r.23<6l)||r.23==5m||6.M.20&&r.23==I}25(e){}v N},4F:q(a,c){2g{u b=a.3E("53-3O");v a.23==5m||b==6.32[c]||6.M.20&&a.23==I}25(e){}v N},55:q(r,b){u c=r.3E("6k-G");u a=!b&&c&&c.J("4B")>=0;a=b=="4B"||a?r.6j:r.3c;7(b=="3b")6.3I(a);7(b=="4N")a=49("("+a+")");7(b=="3F")6("<1x>").3F(a).3J();v a},2E:q(a){u s=[];7(a.15==2b||a.3C)6.F(a,q(){s.R(2l(9.6i)+"="+2l(9.2v))});B E(u j V a)7(a[j]&&a[j].15==2b)6.F(a[j],q(){s.R(2l(j)+"="+2l(9))});B s.R(2l(j)+"="+2l(a[j]));v s.5M("&")},3I:q(a){7(18.4A)18.4A(a);B 7(6.M.20)18.4C(a,0);B 49.3D(18,a)}});6.11.1c({1m:q(b,a){v b?9.1w({1u:"1m",29:"1m",1e:"1m"},b,a):9.1i(":1y").F(q(){9.T.U=9.2i?9.2i:"";7(6.1f(9,"U")=="1P")9.T.U="2h"}).2U()},1j:q(b,a){v b?9.1w({1u:"1j",29:"1j",1e:"1j"},b,a):9.1i(":4f").F(q(){9.2i=9.2i||6.1f(9,"U");7(9.2i=="1P")9.2i="2h";9.T.U="1P"}).2U()},5G:6.11.1R,1R:q(a,b){v 6.16(a)&&6.16(b)?9.5G(a,b):a?9.1w({1u:"1R",29:"1R",1e:"1R"},a,b):9.F(q(){6(9)[6(9).37(":1y")?"1m":"1j"]()})},6e:q(b,a){v 9.1w({1u:"1m"},b,a)},6d:q(b,a){v 9.1w({1u:"1j"},b,a)},6b:q(b,a){v 9.1w({1u:"1R"},b,a)},6a:q(b,a){v 9.1w({1e:"1m"},b,a)},69:q(b,a){v 9.1w({1e:"1j"},b,a)},7U:q(c,a,b){v 9.1w({1e:a},c,b)},1w:q(d,h,f,g){v 9.1l(q(){u c=6(9).37(":1y"),1H=6.5z(h,f,g),5y=9;E(u p V d){7(d[p]=="1j"&&c||d[p]=="1m"&&!c)v 6.16(1H.1n)&&1H.1n.O(9);7(p=="1u"||p=="29"){1H.U=6.1f(9,"U");1H.2f=9.T.2f}}7(1H.2f!=H)9.T.2f="1y";9.2k=6.1c({},d);6.F(d,q(a,b){u e=14 6.2M(5y,1H,a);7(b.15==3y)e.2W(e.1K(),b);B e[b=="1R"?c?"1m":"1j":b](d)})})},1l:q(a,b){7(!b){b=a;a="2M"}v 9.F(q(){7(!9.1l)9.1l={};7(!9.1l[a])9.1l[a]=[];9.1l[a].R(b);7(9.1l[a].C==1)b.O(9)})}});6.1c({5z:q(b,a,c){u d=b&&b.15==64?b:{1n:c||!c&&a||6.16(b)&&b,1B:b,2I:c&&a||a&&a.15!=45&&a||(6.2I.4i?"4i":"4w")};d.1B=(d.1B&&d.1B.15==3y?d.1B:{61:60,89:5u}[d.1B])||8a;d.2N=d.1n;d.1n=q(){6.5I(9,"2M");7(6.16(d.2N))d.2N.O(9)};v d},2I:{4w:q(p,n,b,a){v b+a*p},4i:q(p,n,b,a){v((-5W.5X(p*5W.8e)/2)+0.5)*a+b}},1l:{},5I:q(b,a){a=a||"2M";7(b.1l&&b.1l[a]){b.1l[a].4e();u f=b.1l[a][0];7(f)f.O(b)}},3B:[],2M:q(f,e,g){u z=9;u y=f.T;z.a=q(){7(e.3A)e.3A.O(f,[z.2o]);7(g=="1e")6.1b(y,"1e",z.2o);B{y[g]=8m(z.2o)+"4o";y.U="2h"}};z.5V=q(){v 39(6.1f(f,g))};z.1K=q(){u r=39(6.2z(f,g));v r&&r>-8l?r:z.5V()};z.2W=q(c,b){z.4s=(14 5T()).5S();z.2o=c;z.a();6.3B.R(q(){v z.3A(c,b)});7(6.3B.C==1){u d=3m(q(){u a=6.3B;E(u i=0;ie.1B+z.4s){z.2o=c;z.a();7(f.2k)f.2k[g]=K;u b=K;E(u i V f.2k)7(f.2k[i]!==K)b=N;7(b){7(e.U!=H){y.2f=e.2f;y.U=e.U;7(6.1f(f,"U")=="1P")y.U="2h"}7(e.1j)y.U="1P";7(e.1j||e.1m)E(u p V f.2k)6.1b(y,p,f.24[p])}7(b&&6.16(e.1n))e.1n.O(f);v N}B{u n=t-9.4s;u p=n/e.1B;z.2o=6.2I[e.2I](p,n,a,(c-a),e.1B);z.a()}v K}}})}',62,524,'||||||jQuery|if||this|||||||||||||||||function||||var|return||||||else|length||for|each|type|null|undefined|indexOf|true|parentNode|browser|false|apply|document|nodeName|push|event|style|display|in|data||global|||fn|className||new|constructor|isFunction|test|window|arguments|events|attr|extend|firstChild|opacity|css|typeof|msie|filter|hide|mergeNum|queue|show|complete|replace|handle|nodeType|table|string|trigger|height|while|animate|div|hidden|tbody|add|duration|url|toUpperCase|remove|break|ready|opt|_|button|cur|find|get|tb|target|none|guid|toggle|args|merge|styleFloat|exec|load|nextSibling|ret|pushStack|safari|timeout|nth|status|orig|catch|al|innerHTML|success|width|opera|Array|error|preventDefault|rl|overflow|try|block|oldblock|done|curAnim|encodeURIComponent|id||now|index|readyList|disabled|grep|ifModified|src|value|inArray|multiFilter|select|curCSS|text|checked|trim|stopPropagation|param|domManip|substr|toLowerCase|easing|chars|insertBefore|makeArray|fx|old|ownerDocument|last|first|split|childNodes|selected|end|tr|custom|handleError|empty|ajax|el|clean|lastModified|String|form|getAttribute|ajaxSettings|is|async|parseFloat|readyState|script|responseText|isReady|append|defaultView|bind|which|position|mozilla|map|delete|setInterval|static|RegExp|oWidth|removeChild|oHeight|cloneNode|match|child|toString|has|float|Number|unload|step|timers|jquery|call|getResponseHeader|html|dataType|props|globalEval|evalScripts|GET|active|clearInterval|safariTimer|Modified|num|setRequestHeader|getElementsByTagName|currentStyle|__ie_init|unbind|mouseover|handleHover|init|getComputedStyle|one|isXMLDoc|relatedTarget|fix|removeEventListener|handler|Function|addEventListener|triggered|visibility|eval|nodeIndex|radio|classFilter|getElementById|shift|visible|appendChild|documentElement|swing|fromElement|submit|file|swap|expr|px|parents|sibling|00|startTime|previousSibling|lastToggle|parent|linear|ol|body|tagName|execScript|xml|setTimeout|version|setArray|httpNotModified|fl|prop|ajaxStop|XMLHttpRequest|processData|alpha|href|json|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxComplete|ajaxStart|getScript|notmodified|colgroup|100|not|ActiveXObject|POST|slice|fieldset|Last|httpSuccess|httpData|beforeSend|getPropertyValue|DOMContentLoaded|mouseout|click|ctrlKey|metaKey|keyCode|charCode|scrollTop|unique|createElement|scrollLeft|clientX|pageX|webkit|304|srcElement|appendTo|unshift|prevObject|on|after|before|200|removeAttr|prepend|cssFloat|self|speed|parse|input|reset|image|password|checkbox|_toggle|textContent|dequeue|lastChild|odd|even|join|contains|gt|lt|eq|nodeValue|getTime|Date|zoom|max|Math|cos|font|maxLength|600|slow|maxlength|readOnly|Object|readonly|createTextNode|class|htmlFor|fadeOut|fadeIn|slideToggle|CSS1Compat|slideUp|slideDown|compatMode|boxModel|compatible|name|responseXML|content|300|ie|noConflict|ra|send|it|abort|rv|userAgent|navigator|concat|With|Requested|GMT|1970|Jan|01|Thu|Since|reverse|If|Type|Content|array|XMLHTTP|ig|Microsoft|NaN|urlencoded|www|application|ajaxSetup|val|ajaxTimeout|post|setAttribute|getJSON|getAttributeNode|getIfModified|method|FORM|action|options|serialize|col|th|td|loadIfModified|do|colg|loaded|tfoot|open|thead|onreadystatechange|defer|ipt|leg|scr|write|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|dblclick|scroll|resize|focus|blur|frames|hover|clone|clientY|pageY|location|protocol|toElement|clientWidth|clientHeight|cancelBubble|relative|returnValue|left|detachEvent|right|absolute|attachEvent|substring|offsetWidth|object|offsetHeight|continue|Width|border|fadeTo|padding|size|uFFFF|Left|u0128|Right|Bottom|textarea|Top|enabled|innerText|only|toggleClass|removeClass|fast|400|wrap|addClass|removeAttribute|PI|insertAfter|prependTo|children|line|splice|siblings|10000|parseInt|prev|next|weight|1px|prototype'.split('|'),0,{})) + +/* json.js */ + + + + + +SimileAjax.JSON=new Object(); + +(function(){ +var m={ +'\b':'\\b', +'\t':'\\t', +'\n':'\\n', +'\f':'\\f', +'\r':'\\r', +'"':'\\"', +'\\':'\\\\' +}; +var s={ +array:function(x){ +var a=['['],b,f,i,l=x.length,v; +for(i=0;i=prefix.length&&this.substr(0,prefix.length)==prefix; +}; + +String.prototype.endsWith=function(suffix){ +return this.length>=suffix.length&&this.substr(this.length-suffix.length)==suffix; +}; + +String.substitute=function(s,objects){ +var result=""; +var start=0; +while(startstart&&s.charAt(percent-1)=="\\"){ +result+=s.substring(start,percent-1)+"%"; +start=percent+1; +}else{ +var n=parseInt(s.charAt(percent+1)); +if(isNaN(n)||n>=objects.length){ +result+=s.substring(start,percent+2); +}else{ +result+=s.substring(start,percent)+objects[n].toString(); +} +start=percent+2; +} +} + +if(start0?v1:v2; + +}; + + + +SimileAjax.NativeDateUnit.change=function(v,n){ + +return new Date(v.getTime()+n); + +}; + + + + + +/* window-manager.js */ + + + + +SimileAjax.WindowManager={ +_initialized:false, +_listeners:[], + +_draggedElement:null, +_draggedElementCallback:null, +_dropTargetHighlightElement:null, +_lastCoords:null, +_ghostCoords:null, +_draggingMode:"", +_dragging:false, + +_layers:[] +}; + +SimileAjax.WindowManager.initialize=function(){ +if(SimileAjax.WindowManager._initialized){ +return; +} + +SimileAjax.DOM.registerEvent(document.body,"mousedown",SimileAjax.WindowManager._onBodyMouseDown); +SimileAjax.DOM.registerEvent(document.body,"mousemove",SimileAjax.WindowManager._onBodyMouseMove); +SimileAjax.DOM.registerEvent(document.body,"mouseup",SimileAjax.WindowManager._onBodyMouseUp); +SimileAjax.DOM.registerEvent(document,"keydown",SimileAjax.WindowManager._onBodyKeyDown); +SimileAjax.DOM.registerEvent(document,"keyup",SimileAjax.WindowManager._onBodyKeyUp); + +SimileAjax.WindowManager._layers.push({index:0}); + +SimileAjax.WindowManager._historyListener={ +onBeforeUndoSeveral:function(){}, +onAfterUndoSeveral:function(){}, +onBeforeUndo:function(){}, +onAfterUndo:function(){}, + +onBeforeRedoSeveral:function(){}, +onAfterRedoSeveral:function(){}, +onBeforeRedo:function(){}, +onAfterRedo:function(){} +}; +SimileAjax.History.addListener(SimileAjax.WindowManager._historyListener); + +SimileAjax.WindowManager._initialized=true; +}; + +SimileAjax.WindowManager.getBaseLayer=function(){ +SimileAjax.WindowManager.initialize(); +return SimileAjax.WindowManager._layers[0]; +}; + +SimileAjax.WindowManager.getHighestLayer=function(){ +SimileAjax.WindowManager.initialize(); +return SimileAjax.WindowManager._layers[SimileAjax.WindowManager._layers.length-1]; +}; + +SimileAjax.WindowManager.registerEventWithObject=function(elmt,eventName,obj,handlerName,layer){ +SimileAjax.WindowManager.registerEvent( +elmt, +eventName, +function(elmt2,evt,target){ +return obj[handlerName].call(obj,elmt2,evt,target); +}, +layer +); +}; + +SimileAjax.WindowManager.registerEvent=function(elmt,eventName,handler,layer){ +if(layer==null){ +layer=SimileAjax.WindowManager.getHighestLayer(); +} + +var handler2=function(elmt,evt,target){ +if(SimileAjax.WindowManager._canProcessEventAtLayer(layer)){ +SimileAjax.WindowManager._popToLayer(layer.index); +try{ +handler(elmt,evt,target); +}catch(e){ +SimileAjax.Debug.exception(e); +} +} +SimileAjax.DOM.cancelEvent(evt); +return false; +} + +SimileAjax.DOM.registerEvent(elmt,eventName,handler2); +}; + +SimileAjax.WindowManager.pushLayer=function(f,ephemeral,elmt){ +var layer={onPop:f,index:SimileAjax.WindowManager._layers.length,ephemeral:(ephemeral),elmt:elmt}; +SimileAjax.WindowManager._layers.push(layer); + +return layer; +}; + +SimileAjax.WindowManager.popLayer=function(layer){ +for(var i=1;i0&&SimileAjax.WindowManager._layers[i].ephemeral){ +var layer=SimileAjax.WindowManager._layers[i]; +if(layer.elmt!=null){ +var elmt=layer.elmt; +var elmtCoords=SimileAjax.DOM.getPageCoordinates(elmt); +if(evtCoords.x>=elmtCoords.left&&evtCoords.x<(elmtCoords.left+elmt.offsetWidth)&& +evtCoords.y>=elmtCoords.top&&evtCoords.y<(elmtCoords.top+elmt.offsetHeight)){ +break; +} +} +i--; +} +SimileAjax.WindowManager._popToLayer(i); +}; + +SimileAjax.WindowManager._onBodyMouseDown=function(elmt,evt,target){ +if(!("eventPhase"in evt)||evt.eventPhase==evt.BUBBLING_PHASE){ +SimileAjax.WindowManager.cancelPopups(evt); +} +}; + +SimileAjax.WindowManager._handleMouseDown=function(elmt,evt,callback){ +SimileAjax.WindowManager._draggedElement=elmt; +SimileAjax.WindowManager._draggedElementCallback=callback; +SimileAjax.WindowManager._lastCoords={x:evt.clientX,y:evt.clientY}; + +SimileAjax.DOM.cancelEvent(evt); +return false; +}; + +SimileAjax.WindowManager._onBodyKeyDown=function(elmt,evt,target){ +if(SimileAjax.WindowManager._dragging){ +if(evt.keyCode==27){ +SimileAjax.WindowManager._cancelDragging(); +}else if((evt.keyCode==17||evt.keyCode==16)&&SimileAjax.WindowManager._draggingMode!="copy"){ +SimileAjax.WindowManager._draggingMode="copy"; + +var img=SimileAjax.Graphics.createTranslucentImage(SimileAjax.urlPrefix+"images/copy.png"); +img.style.position="absolute"; +img.style.left=(SimileAjax.WindowManager._ghostCoords.left-16)+"px"; +img.style.top=(SimileAjax.WindowManager._ghostCoords.top)+"px"; +document.body.appendChild(img); + +SimileAjax.WindowManager._draggingModeIndicatorElmt=img; +} +} +}; + +SimileAjax.WindowManager._onBodyKeyUp=function(elmt,evt,target){ +if(SimileAjax.WindowManager._dragging){ +if(evt.keyCode==17||evt.keyCode==16){ +SimileAjax.WindowManager._draggingMode=""; +if(SimileAjax.WindowManager._draggingModeIndicatorElmt!=null){ +document.body.removeChild(SimileAjax.WindowManager._draggingModeIndicatorElmt); +SimileAjax.WindowManager._draggingModeIndicatorElmt=null; +} +} +} +}; + +SimileAjax.WindowManager._onBodyMouseMove=function(elmt,evt,target){ +if(SimileAjax.WindowManager._draggedElement!=null){ +var callback=SimileAjax.WindowManager._draggedElementCallback; + +var lastCoords=SimileAjax.WindowManager._lastCoords; +var diffX=evt.clientX-lastCoords.x; +var diffY=evt.clientY-lastCoords.y; + +if(!SimileAjax.WindowManager._dragging){ +if(Math.abs(diffX)>5||Math.abs(diffY)>5){ +try{ +if("onDragStart"in callback){ +callback.onDragStart(); +} + +if("ghost"in callback&&callback.ghost){ +var draggedElmt=SimileAjax.WindowManager._draggedElement; + +SimileAjax.WindowManager._ghostCoords=SimileAjax.DOM.getPageCoordinates(draggedElmt); +SimileAjax.WindowManager._ghostCoords.left+=diffX; +SimileAjax.WindowManager._ghostCoords.top+=diffY; + +var ghostElmt=draggedElmt.cloneNode(true); +ghostElmt.style.position="absolute"; +ghostElmt.style.left=SimileAjax.WindowManager._ghostCoords.left+"px"; +ghostElmt.style.top=SimileAjax.WindowManager._ghostCoords.top+"px"; +ghostElmt.style.zIndex=1000; +SimileAjax.Graphics.setOpacity(ghostElmt,50); + +document.body.appendChild(ghostElmt); +callback._ghostElmt=ghostElmt; +} + +SimileAjax.WindowManager._dragging=true; +SimileAjax.WindowManager._lastCoords={x:evt.clientX,y:evt.clientY}; + +document.body.focus(); +}catch(e){ +SimileAjax.Debug.exception("WindowManager: Error handling mouse down",e); +SimileAjax.WindowManager._cancelDragging(); +} +} +}else{ +try{ +SimileAjax.WindowManager._lastCoords={x:evt.clientX,y:evt.clientY}; + +if("onDragBy"in callback){ +callback.onDragBy(diffX,diffY); +} + +if("_ghostElmt"in callback){ +var ghostElmt=callback._ghostElmt; + +SimileAjax.WindowManager._ghostCoords.left+=diffX; +SimileAjax.WindowManager._ghostCoords.top+=diffY; + +ghostElmt.style.left=SimileAjax.WindowManager._ghostCoords.left+"px"; +ghostElmt.style.top=SimileAjax.WindowManager._ghostCoords.top+"px"; +if(SimileAjax.WindowManager._draggingModeIndicatorElmt!=null){ +var indicatorElmt=SimileAjax.WindowManager._draggingModeIndicatorElmt; + +indicatorElmt.style.left=(SimileAjax.WindowManager._ghostCoords.left-16)+"px"; +indicatorElmt.style.top=SimileAjax.WindowManager._ghostCoords.top+"px"; +} + +if("droppable"in callback&&callback.droppable){ +var coords=SimileAjax.DOM.getEventPageCoordinates(evt); +var target=SimileAjax.DOM.hittest( +coords.x,coords.y, +[SimileAjax.WindowManager._ghostElmt, +SimileAjax.WindowManager._dropTargetHighlightElement +] +); +target=SimileAjax.WindowManager._findDropTarget(target); + +if(target!=SimileAjax.WindowManager._potentialDropTarget){ +if(SimileAjax.WindowManager._dropTargetHighlightElement!=null){ +document.body.removeChild(SimileAjax.WindowManager._dropTargetHighlightElement); + +SimileAjax.WindowManager._dropTargetHighlightElement=null; +SimileAjax.WindowManager._potentialDropTarget=null; +} + +var droppable=false; +if(target!=null){ +if((!("canDropOn"in callback)||callback.canDropOn(target))&& +(!("canDrop"in target)||target.canDrop(SimileAjax.WindowManager._draggedElement))){ + +droppable=true; +} +} + +if(droppable){ +var border=4; +var targetCoords=SimileAjax.DOM.getPageCoordinates(target); +var highlight=document.createElement("div"); +highlight.style.border=border+"px solid yellow"; +highlight.style.backgroundColor="yellow"; +highlight.style.position="absolute"; +highlight.style.left=targetCoords.left+"px"; +highlight.style.top=targetCoords.top+"px"; +highlight.style.width=(target.offsetWidth-border*2)+"px"; +highlight.style.height=(target.offsetHeight-border*2)+"px"; +SimileAjax.Graphics.setOpacity(highlight,30); +document.body.appendChild(highlight); + +SimileAjax.WindowManager._potentialDropTarget=target; +SimileAjax.WindowManager._dropTargetHighlightElement=highlight; +} +} +} +} +}catch(e){ +SimileAjax.Debug.exception("WindowManager: Error handling mouse move",e); +SimileAjax.WindowManager._cancelDragging(); +} +} + +SimileAjax.DOM.cancelEvent(evt); +return false; +} +}; + +SimileAjax.WindowManager._onBodyMouseUp=function(elmt,evt,target){ +if(SimileAjax.WindowManager._draggedElement!=null){ +try{ +if(SimileAjax.WindowManager._dragging){ +var callback=SimileAjax.WindowManager._draggedElementCallback; +if("onDragEnd"in callback){ +callback.onDragEnd(); +} +if("droppable"in callback&&callback.droppable){ +var dropped=false; + +var target=SimileAjax.WindowManager._potentialDropTarget; +if(target!=null){ +if((!("canDropOn"in callback)||callback.canDropOn(target))&& +(!("canDrop"in target)||target.canDrop(SimileAjax.WindowManager._draggedElement))){ + +if("onDropOn"in callback){ +callback.onDropOn(target); +} +target.ondrop(SimileAjax.WindowManager._draggedElement,SimileAjax.WindowManager._draggingMode); + +dropped=true; +} +} + +if(!dropped){ + +} +} +} +}finally{ +SimileAjax.WindowManager._cancelDragging(); +} + +SimileAjax.DOM.cancelEvent(evt); +return false; +} +}; + +SimileAjax.WindowManager._cancelDragging=function(){ +var callback=SimileAjax.WindowManager._draggedElementCallback; +if("_ghostElmt"in callback){ +var ghostElmt=callback._ghostElmt; +document.body.removeChild(ghostElmt); + +delete callback._ghostElmt; +} +if(SimileAjax.WindowManager._dropTargetHighlightElement!=null){ +document.body.removeChild(SimileAjax.WindowManager._dropTargetHighlightElement); +SimileAjax.WindowManager._dropTargetHighlightElement=null; +} +if(SimileAjax.WindowManager._draggingModeIndicatorElmt!=null){ +document.body.removeChild(SimileAjax.WindowManager._draggingModeIndicatorElmt); +SimileAjax.WindowManager._draggingModeIndicatorElmt=null; +} + +SimileAjax.WindowManager._draggedElement=null; +SimileAjax.WindowManager._draggedElementCallback=null; +SimileAjax.WindowManager._potentialDropTarget=null; +SimileAjax.WindowManager._dropTargetHighlightElement=null; +SimileAjax.WindowManager._lastCoords=null; +SimileAjax.WindowManager._ghostCoords=null; +SimileAjax.WindowManager._draggingMode=""; +SimileAjax.WindowManager._dragging=false; +}; + +SimileAjax.WindowManager._findDropTarget=function(elmt){ +while(elmt!=null){ +if("ondrop"in elmt&&(typeof elmt.ondrop)=="function"){ +break; +} +elmt=elmt.parentNode; +} +return elmt; +}; + + +/* xmlhttp.js */ + + + +SimileAjax.XmlHttp=new Object(); + + +SimileAjax.XmlHttp._onReadyStateChange=function(xmlhttp,fError,fDone){ +switch(xmlhttp.readyState){ + + + + + +case 4: +try{ +if(xmlhttp.status==0 +||xmlhttp.status==200 +){ +if(fDone){ +fDone(xmlhttp); +} +}else{ +if(fError){ +fError( +xmlhttp.statusText, +xmlhttp.status, +xmlhttp +); +} +} +}catch(e){ +SimileAjax.Debug.exception("XmlHttp: Error handling onReadyStateChange",e); +} +break; +} +}; + + +SimileAjax.XmlHttp._createRequest=function(){ +if(SimileAjax.Platform.browser.isIE){ +var programIDs=[ +"Msxml2.XMLHTTP", +"Microsoft.XMLHTTP", +"Msxml2.XMLHTTP.4.0" +]; +for(var i=0;i + * + *==================================================*/ + +(function() { + + var local = false; + + // obtain local mode from the document URL + if (document.location.search.length > 0) { + var params = document.location.search.substr(1).split("&"); + for (var i = 0; i < params.length; i++) { + if (params[i] == "local") { + local = true; + } + } + } + + // obtain local mode from the script URL params attribute + if (!local) { + var heads = document.documentElement.getElementsByTagName("head"); + for (var h = 0; h < heads.length; h++) { + var node = heads[h].firstChild; + while (node != null) { + if (node.nodeType == 1 && node.tagName.toLowerCase() == "script") { + var url = node.src; + if (url.indexOf("timeplot-api") >= 0) { + local = (url.indexOf("local") >= 0); + } + } + node = node.nextSibling; + } + } + } + + // Load Timeplot if it's not already loaded (after SimileAjax and Timeline) + var loadTimeplot = function() { + + if (typeof window.Timeplot != "undefined") { + return; + } + + window.Timeplot = { + loaded: false, + params: { bundle: true, autoCreate: true }, + namespace: "http://simile.mit.edu/2007/06/timeplot#", + importers: {} + }; + + var javascriptFiles = [ + "timeplot.js", + "plot.js", + "sources.js", + "geometry.js", + "color.js", + "math.js", + "processor.js" + ]; + var cssFiles = [ + "timeplot.css" + ]; + + var locales = [ "en" ]; + + var defaultClientLocales = ("language" in navigator ? navigator.language : navigator.browserLanguage).split(";"); + for (var l = 0; l < defaultClientLocales.length; l++) { + var locale = defaultClientLocales[l]; + if (locale != "en") { + var segments = locale.split("-"); + if (segments.length > 1 && segments[0] != "en") { + locales.push(segments[0]); + } + locales.push(locale); + } + } + + var paramTypes = { bundle:Boolean, js:Array, css:Array, autoCreate:Boolean }; + if (typeof Timeplot_urlPrefix == "string") { + Timeplot.urlPrefix = Timeplot_urlPrefix; + if ("Timeplot_parameters" in window) { + SimileAjax.parseURLParameters(Timeplot_parameters, Timeplot.params, paramTypes); + } + } else { + var url = SimileAjax.findScript(document, "/timeplot-api.js"); + if (url == null) { + Timeplot.error = new Error("Failed to derive URL prefix for Simile Timeplot API code files"); + return; + } + Timeplot.urlPrefix = url.substr(0, url.indexOf("timeplot-api.js")); + + SimileAjax.parseURLParameters(url, Timeplot.params, paramTypes); + } + + if (Timeplot.params.locale) { // ISO-639 language codes, + // optional ISO-3166 country codes (2 characters) + if (Timeplot.params.locale != "en") { + var segments = Timeplot.params.locale.split("-"); + if (segments.length > 1 && segments[0] != "en") { + locales.push(segments[0]); + } + locales.push(Timeplot.params.locale); + } + } + + var timeplotURLPrefix = (local) ? "/timeplot/api/1.0/" : Timeplot.urlPrefix; + + if (local && !("console" in window)) { + var firebug = [ timeplotURLPrefix + "lib/firebug/firebug.js" ]; + SimileAjax.includeJavascriptFiles(document, "", firebug); + } + + var canvas = document.createElement("canvas"); + + if (!canvas.getContext) { + var excanvas = [ timeplotURLPrefix + "lib/excanvas.js" ]; + SimileAjax.includeJavascriptFiles(document, "", excanvas); + } + + var scriptURLs = Timeplot.params.js || []; + var cssURLs = Timeplot.params.css || []; + + // Core scripts and styles + if (Timeplot.params.bundle && !local) { + scriptURLs.push(timeplotURLPrefix + "timeplot-bundle.js"); + cssURLs.push(timeplotURLPrefix + "timeplot-bundle.css"); + } else { + SimileAjax.prefixURLs(scriptURLs, timeplotURLPrefix + "scripts/", javascriptFiles); + SimileAjax.prefixURLs(cssURLs, timeplotURLPrefix + "styles/", cssFiles); + } + + // Localization + //for (var i = 0; i < locales.length; i++) { + // scriptURLs.push(Timeplot.urlPrefix + "locales/" + locales[i] + "/locale.js"); + //}; + + window.SimileAjax_onLoad = function() { + if (local && window.console.open) window.console.open(); + if (Timeplot.params.callback) { + eval(Timeplot.params.callback + "()"); + } + } + + SimileAjax.includeJavascriptFiles(document, "", scriptURLs); + SimileAjax.includeCssFiles(document, "", cssURLs); + Timeplot.loaded = true; + }; + + // Load Timeline if it's not already loaded (after SimileAjax and before Timeplot) + var loadTimeline = function() { + if (typeof Timeline != "undefined") { + loadTimeplot(); + } else { + var timelineURL = (local) ? "/timeline/api-2.0/timeline-api.js?bundle=false" : "http://static.simile.mit.edu/timeline/api-2.0/timeline-api.js"; + window.SimileAjax_onLoad = loadTimeplot; + SimileAjax.includeJavascriptFile(document, timelineURL); + } + }; + + // Load SimileAjax if it's not already loaded + if (typeof SimileAjax == "undefined") { + window.SimileAjax_onLoad = loadTimeline; + + var url = local ? + "/ajax/api-2.0/simile-ajax-api.js?bundle=false" : + "http://static.simile.mit.edu/ajax/api-2.0/simile-ajax-api.js?bundle=true"; + + var createScriptElement = function() { + var script = document.createElement("script"); + script.type = "text/javascript"; + script.language = "JavaScript"; + script.src = url; + document.getElementsByTagName("head")[0].appendChild(script); + } + + if (document.body == null) { + try { + document.write(""); + } catch (e) { + createScriptElement(); + } + } else { + createScriptElement(); + } + } else { + loadTimeline(); + } +})(); diff --git a/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/timeplot-bundle.js b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/timeplot-bundle.js new file mode 100755 index 000000000..d80dccf67 --- /dev/null +++ b/zk-Timeplot-1.0_2/timeplotz/src/archive/web/js/ext/timeplot/api/timeplot-bundle.js @@ -0,0 +1,2210 @@ + + +/* timeplot.js */ + + + +Timeline.Debug=SimileAjax.Debug; +var log=SimileAjax.Debug.log; + + +Object.extend=function(destination,source){ +for(var property in source){ +destination[property]=source[property]; +} +return destination; +} + + + + +Timeplot.create=function(elmt,plotInfos){ +return new Timeplot._Impl(elmt,plotInfos); +}; + + +Timeplot.createPlotInfo=function(params){ +return{ +id:("id"in params)?params.id:"p"+Math.round(Math.random()*1000000), +dataSource:("dataSource"in params)?params.dataSource:null, +eventSource:("eventSource"in params)?params.eventSource:null, +timeGeometry:("timeGeometry"in params)?params.timeGeometry:new Timeplot.DefaultTimeGeometry(), +valueGeometry:("valueGeometry"in params)?params.valueGeometry:new Timeplot.DefaultValueGeometry(), +timeZone:("timeZone"in params)?params.timeZone:0, +fillColor:("fillColor"in params)?((params.fillColor=="string")?new Timeplot.Color(params.fillColor):params.fillColor):null, +lineColor:("lineColor"in params)?((params.lineColor=="string")?new Timeplot.Color(params.lineColor):params.lineColor):new Timeplot.Color("#606060"), +lineWidth:("lineWidth"in params)?params.lineWidth:1.0, +dotRadius:("dotRadius"in params)?params.dotRadius:2.0, +dotColor:("dotColor"in params)?params.dotColor:null, +eventLineWidth:("eventLineWidth"in params)?params.eventLineWidth:1.0, +showValues:("showValues"in params)?params.showValues:false, +roundValues:("roundValues"in params)?params.roundValues:true, +valuesOpacity:("valuesOpacity"in params)?params.valuesOpacity:75, +bubbleWidth:("bubbleWidth"in params)?params.bubbleWidth:300, +bubbleHeight:("bubbleHeight"in params)?params.bubbleHeight:200 +}; +}; + + + + +Timeplot._Impl=function(elmt,plotInfos){ +this._id="t"+Math.round(Math.random()*1000000); +this._containerDiv=elmt; +this._plotInfos=plotInfos; +this._painters={ +background:[], +foreground:[] +}; +this._painter=null; +this._active=false; +this._initialize(); +}; + +Timeplot._Impl.prototype={ + +dispose:function(){ +for(var i=0;ic.width)x=c.width; +if(isNaN(x)||x<0)x=0; +var t=plot._timeGeometry.fromScreen(x); +if(t==0){ +plot._valueFlag.style.display="none"; +return; +} + +var v=plot._dataSource.getValue(t); +if(plot._plotInfo.roundValues)v=Math.round(v); +plot._valueFlag.innerHTML=new String(v); +var d=new Date(t); +var p=plot._timeGeometry.getPeriod(); +if(pmonth){ +plot._timeFlag.innerHTML=d.toLocaleDateString(); +}else{ +plot._timeFlag.innerHTML=d.toLocaleString(); +} + +var tw=plot._timeFlag.clientWidth; +var th=plot._timeFlag.clientHeight; +var tdw=Math.round(tw/2); +var vw=plot._valueFlag.clientWidth; +var vh=plot._valueFlag.clientHeight; +var y=plot._valueGeometry.toScreen(v); + +if(x+tdw>c.width){ +var tx=c.width-tdw; +}else if(x-tdw<0){ +var tx=tdw; +}else{ +var tx=x; +} + +if(plot._timeGeometry._timeValuePosition=="top"){ +plot._timeplot.placeDiv(plot._valueFlagPole,{ +left:x, +top:th-5, +height:c.height-y-th+6, +display:"block" +}); +plot._timeplot.placeDiv(plot._timeFlag,{ +left:tx-tdw, +top:-6, +display:"block" +}); +}else{ +plot._timeplot.placeDiv(plot._valueFlagPole,{ +left:x, +bottom:th-5, +height:y-th+6, +display:"block" +}); +plot._timeplot.placeDiv(plot._timeFlag,{ +left:tx-tdw, +bottom:-6, +display:"block" +}); +} + +if(x+vw+14>c.width&&y+vh+4>c.height){ +plot._valueFlagLineLeft.style.display="none"; +plot._timeplot.placeDiv(plot._valueFlagLineRight,{ +left:x-14, +bottom:y-14, +display:"block" +}); +plot._timeplot.placeDiv(plot._valueFlag,{ +left:x-vw-13, +bottom:y-vh-13, +display:"block" +}); +}else if(x+vw+14>c.width&&y+vh+4c.height){ +plot._valueFlagLineRight.style.display="none"; +plot._timeplot.placeDiv(plot._valueFlagLineLeft,{ +left:x, +bottom:y-13, +display:"block" +}); +plot._timeplot.placeDiv(plot._valueFlag,{ +left:x+13, +bottom:y-13, +display:"block" +}); +}else{ +plot._valueFlagLineLeft.style.display="none"; +plot._timeplot.placeDiv(plot._valueFlagLineRight,{ +left:x, +bottom:y, +display:"block" +}); +plot._timeplot.placeDiv(plot._valueFlag,{ +left:x+13, +bottom:y+13, +display:"block" +}); +} +} +} + +var timeplotElement=this._timeplot.getElement(); +SimileAjax.DOM.registerEvent(timeplotElement,"mouseover",mouseOverHandler); +SimileAjax.DOM.registerEvent(timeplotElement,"mousemove",mouseMoveHandler); +} +}, + + +dispose:function(){ +if(this._dataSource){ +this._dataSource.removeListener(this._paintingListener); +this._paintingListener=null; +this._dataSource.dispose(); +this._dataSource=null; +} +}, + + +getDataSource:function(){ +return(this._dataSource)?this._dataSource:this._eventSource; +}, + + +getTimeGeometry:function(){ +return this._timeGeometry; +}, + + +getValueGeometry:function(){ +return this._valueGeometry; +}, + + +paint:function(){ +var ctx=this._canvas.getContext('2d'); + +ctx.lineWidth=this._plotInfo.lineWidth; +ctx.lineJoin='miter'; + +if(this._dataSource){ +if(this._plotInfo.fillColor){ +var gradient=ctx.createLinearGradient(0,this._canvas.height,0,0); +gradient.addColorStop(0,this._plotInfo.fillColor.toString()); +gradient.addColorStop(0.5,this._plotInfo.fillColor.toString()); +gradient.addColorStop(1,'rgba(255,255,255,0)'); + +ctx.fillStyle=gradient; + +ctx.beginPath(); +ctx.moveTo(0,0); +this._plot(function(x,y){ +ctx.lineTo(x,y); +}); +ctx.lineTo(this._canvas.width,0); +ctx.fill(); +} + +if(this._plotInfo.lineColor){ +ctx.strokeStyle=this._plotInfo.lineColor.toString(); +ctx.beginPath(); +this._plot(function(x,y){ +ctx.lineTo(x,y); +}); +ctx.stroke(); +} + +if(this._plotInfo.dotColor){ +ctx.fillStyle=this._plotInfo.dotColor.toString(); +var r=this._plotInfo.dotRadius; +this._plot(function(x,y){ +ctx.beginPath(); +ctx.arc(x,y,r,0,2*Math.PI,true); +ctx.fill(); +}); +} +} + +if(this._eventSource){ +var gradient=ctx.createLinearGradient(0,0,0,this._canvas.height); +gradient.addColorStop(1,'rgba(255,255,255,0)'); + +ctx.strokeStyle=gradient; +ctx.fillStyle=gradient; +ctx.lineWidth=this._plotInfo.eventLineWidth; +ctx.lineJoin='miter'; + +var i=this._eventSource.getAllEventIterator(); +while(i.hasNext()){ +var event=i.next(); +var color=event.getColor(); +color=(color)?new Timeplot.Color(color):this._plotInfo.lineColor; +var eventStart=event.getStart().getTime(); +var eventEnd=event.getEnd().getTime(); +if(eventStart==eventEnd){ +var c=color.toString(); +gradient.addColorStop(0,c); +var start=this._timeGeometry.toScreen(eventStart); +start=Math.floor(start)+0.5; +var end=start; +ctx.beginPath(); +ctx.moveTo(start,0); +ctx.lineTo(start,this._canvas.height); +ctx.stroke(); +var x=start-4; +var w=7; +}else{ +var c=color.toString(0.5); +gradient.addColorStop(0,c); +var start=this._timeGeometry.toScreen(eventStart); +start=Math.floor(start)+0.5; +var end=this._timeGeometry.toScreen(eventEnd); +end=Math.floor(end)+0.5; +ctx.fillRect(start,0,end-start,this._canvas.height); +var x=start; +var w=end-start-1; +} + +var div=this._timeplot.putDiv(event.getID(),"timeplot-event-box",{ +left:Math.round(x), +width:Math.round(w), +top:0, +height:this._canvas.height-1 +}); + +var plot=this; +var clickHandler=function(event){ +return function(elmt,evt,target){ +var doc=plot._timeplot.getDocument(); +plot._closeBubble(); +var coords=SimileAjax.DOM.getEventPageCoordinates(evt); +var elmtCoords=SimileAjax.DOM.getPageCoordinates(elmt); +plot._bubble=SimileAjax.Graphics.createBubbleForPoint(coords.x,elmtCoords.top+plot._canvas.height,plot._plotInfo.bubbleWidth,plot._plotInfo.bubbleHeight,"bottom"); +event.fillInfoBubble(plot._bubble.content,plot._theme,plot._timeGeometry.getLabeler()); +} +}; +var mouseOverHandler=function(elmt,evt,target){ +elmt.oldClass=elmt.className; +elmt.className=elmt.className+" timeplot-event-box-highlight"; +}; +var mouseOutHandler=function(elmt,evt,target){ +elmt.className=elmt.oldClass; +elmt.oldClass=null; +} + +if(!div.instrumented){ +SimileAjax.DOM.registerEvent(div,"click",clickHandler(event)); +SimileAjax.DOM.registerEvent(div,"mouseover",mouseOverHandler); +SimileAjax.DOM.registerEvent(div,"mouseout",mouseOutHandler); +div.instrumented=true; +} +} +} +}, + +_plot:function(f){ +var data=this._dataSource.getData(); +if(data){ +var times=data.times; +var values=data.values; +var T=times.length; +for(var t=0;t1){ +var evt=new Timeplot.DefaultEventSource.NumericEvent( +parseDateTimeFunction(row[0]), +row.slice(1) +); +this._events.add(evt); +added=true; +} +} +} + +if(added){ +this._fire("onAddMany",[]); +} +} + + +Timeplot.DefaultEventSource.prototype._parseText=function(text,separator){ +text=text.replace(/\r\n?/g,"\n"); +var pos=0; +var len=text.length; +var table=[]; +while(pos-1){ +if(text.charAt(nextquote+1)!='"'){ +break; +} +nextquote=text.indexOf('"',nextquote+2); +} +if(nextquote<0){ + +}else if(text.charAt(nextquote+1)==separator){ +var quoted=text.substr(pos+1,nextquote-pos-1); +quoted=quoted.replace(/""/g,'"'); +line[line.length]=quoted; +pos=nextquote+2; +continue; +}else if(text.charAt(nextquote+1)=="\n"|| +len==nextquote+1){ +var quoted=text.substr(pos+1,nextquote-pos-1); +quoted=quoted.replace(/""/g,'"'); +line[line.length]=quoted; +pos=nextquote+2; +break; +}else{ + +} +} +var nextseparator=text.indexOf(separator,pos); +var nextnline=text.indexOf("\n",pos); +if(nextnline<0)nextnline=len; +if(nextseparator>-1&&nextseparator-1)?nextnline+1:cur; +} +if(line.length>0){ +table[table.length]=line; +} +} +if(table.length<0)return; +return table; +} + + +Timeplot.DefaultEventSource.prototype.getRange=function(){ +var earliestDate=this.getEarliestDate(); +var latestDate=this.getLatestDate(); +return{ +earliestDate:(earliestDate)?earliestDate:null, +latestDate:(latestDate)?latestDate:null, +min:0, +max:0 +}; +} + + + + +Timeplot.DefaultEventSource.NumericEvent=function(time,values){ +this._id="e"+Math.round(Math.random()*1000000); +this._time=time; +this._values=values; +}; + +Timeplot.DefaultEventSource.NumericEvent.prototype={ +getID:function(){return this._id;}, +getTime:function(){return this._time;}, +getValues:function(){return this._values;}, + + +getStart:function(){return this._time;}, +getEnd:function(){return this._time;} +}; + + + + +Timeplot.DataSource=function(eventSource){ +this._eventSource=eventSource; +var source=this; +this._processingListener={ +onAddMany:function(){source._process();}, +onClear:function(){source._clear();} +} +this.addListener(this._processingListener); +this._listeners=[]; +this._data=null; +this._range=null; +}; + +Timeplot.DataSource.prototype={ + +_clear:function(){ +this._data=null; +this._range=null; +}, + +_process:function(){ +this._data={ +times:new Array(), +values:new Array() +}; +this._range={ +earliestDate:null, +latestDate:null, +min:0, +max:0 +}; +}, + + +getRange:function(){ +return this._range; +}, + + +getData:function(){ +return this._data; +}, + + +getValue:function(t){ +if(this._data){ +for(var i=0;it){ +return this._data.values[i]; +} +} +} +return 0; +}, + + +addListener:function(listener){ +this._eventSource.addListener(listener); +}, + + +removeListener:function(listener){ +this._eventSource.removeListener(listener); +}, + + +replaceListener:function(oldListener,newListener){ +this.removeListener(oldListener); +this.addListener(newListener); +} + +} + + + + +Timeplot.ColumnSource=function(eventSource,column){ +Timeplot.DataSource.apply(this,arguments); +this._column=column-1; +}; + +Object.extend(Timeplot.ColumnSource.prototype,Timeplot.DataSource.prototype); + +Timeplot.ColumnSource.prototype.dispose=function(){ +this.removeListener(this._processingListener); +this._clear(); +} + +Timeplot.ColumnSource.prototype._process=function(){ +var count=this._eventSource.getCount(); +var times=new Array(count); +var values=new Array(count); +var min=Number.MAX_VALUE; +var max=Number.MIN_VALUE; +var i=0; + +var iterator=this._eventSource.getAllEventIterator(); +while(iterator.hasNext()){ +var event=iterator.next(); +var time=event.getTime(); +times[i]=time; +var value=this._getValue(event); +if(!isNaN(value)){ +if(valuemax){ +max=value; +} +values[i]=value; +} +i++; +} + +this._data={ +times:times, +values:values +}; + +this._range={ +earliestDate:this._eventSource.getEarliestDate(), +latestDate:this._eventSource.getLatestDate(), +min:min, +max:max +}; +} + +Timeplot.ColumnSource.prototype._getValue=function(event){ +return parseFloat(event.getValues()[this._column]); +} + + + + +Timeplot.ColumnDiffSource=function(eventSource,column1,column2){ +Timeplot.ColumnSource.apply(this,arguments); +this._column2=column2-1; +}; + +Object.extend(Timeplot.ColumnDiffSource.prototype,Timeplot.ColumnSource.prototype); + +Timeplot.ColumnDiffSource.prototype._getValue=function(event){ +var a=parseFloat(event.getValues()[this._column]); +var b=parseFloat(event.getValues()[this._column2]); +return a-b; +} + + +/* geometry.js */ + + + + +Timeplot.DefaultValueGeometry=function(params){ +if(!params)params={}; +this._id=("id"in params)?params.id:"g"+Math.round(Math.random()*1000000); +this._axisColor=("axisColor"in params)?((typeof params.axisColor=="string")?new Timeplot.Color(params.axisColor):params.axisColor):new Timeplot.Color("#606060"), +this._gridColor=("gridColor"in params)?((typeof params.gridColor=="string")?new Timeplot.Color(params.gridColor):params.gridColor):null, +this._gridLineWidth=("gridLineWidth"in params)?params.gridLineWidth:0.5; +this._axisLabelsPlacement=("axisLabelsPlacement"in params)?params.axisLabelsPlacement:"right"; +this._gridSpacing=("gridSpacing"in params)?params.gridStep:50; +this._gridType=("gridType"in params)?params.gridType:"short"; +this._gridShortSize=("gridShortSize"in params)?params.gridShortSize:10; +this._minValue=("min"in params)?params.min:null; +this._maxValue=("max"in params)?params.max:null; +this._linMap={ +direct:function(v){ +return v; +}, +inverse:function(y){ +return y; +} +} +this._map=this._linMap; +this._labels=[]; +this._grid=[]; +} + +Timeplot.DefaultValueGeometry.prototype={ + + +setTimeplot:function(timeplot){ +this._timeplot=timeplot; +this._canvas=timeplot.getCanvas(); +this.reset(); +}, + + +setRange:function(range){ +if((this._minValue==null)||((this._minValue!=null)&&(range.minthis._maxValue))){ +this._maxValue=range.max*1.05; +} + +this._updateMappedValues(); + +if(!(this._minValue==0&&this._maxValue==0)){ +this._grid=this._calculateGrid(); +} +}, + + +reset:function(){ +this._clearLabels(); +this._updateMappedValues(); +this._grid=this._calculateGrid(); +}, + + +toScreen:function(value){ +if(this._canvas&&this._maxValue){ +var v=value-this._minValue; +return this._canvas.height*(this._map.direct(v))/this._mappedRange; +}else{ +return-50; +} +}, + + +fromScreen:function(y){ +if(this._canvas){ +return this._map.inverse(this._mappedRange*y/this._canvas.height)+this._minValue; +}else{ +return 0; +} +}, + + +paint:function(){ +if(this._timeplot){ +var ctx=this._canvas.getContext('2d'); + +ctx.lineJoin='miter'; + + +if(this._gridColor){ +var gridGradient=ctx.createLinearGradient(0,0,0,this._canvas.height); +gridGradient.addColorStop(0,this._gridColor.toHexString()); +gridGradient.addColorStop(0.3,this._gridColor.toHexString()); +gridGradient.addColorStop(1,"rgba(255,255,255,0.5)"); + +ctx.lineWidth=this._gridLineWidth; +ctx.strokeStyle=gridGradient; + +for(var i=0;i1){ +while(Math.pow(10,power)this._valueRange){ +power--; +} +} + +var unit=Math.pow(10,power); +var inc=unit; +while(true){ +var dy=this.toScreen(this._minValue+inc); + +while(dy2*this._gridSpacing){ +unit/=10; +inc=unit; +}else{ +break; +} +} + +var v=0; +var y=this.toScreen(v); +if(this._minValue>=0){ +while(y0){ +grid.push({y:y,label:v}); +} +v+=inc; +y=this.toScreen(v); +} +}else if(this._maxValue<=0){ +while(y>0){ +if(y0){ +grid.push({y:y,label:v}); +} +v+=inc; +y=this.toScreen(v); +} +v=-inc; +y=this.toScreen(v); +while(y>0){ +if(y0){ +grid.push({y:y,label:v}); +} +v*=10; +y=this.toScreen(v); +} + +return grid; +}; + + +Timeplot.LogarithmicValueGeometry.prototype.actLinear=function(){ +this._mode="lin"; +this._map=this._linMap; +this._calculateGrid=this._linearCalculateGrid; +this.reset(); +} + + +Timeplot.LogarithmicValueGeometry.prototype.actLogarithmic=function(){ +this._mode="log"; +this._map=this._logMap; +this._calculateGrid=this._logarithmicCalculateGrid; +this.reset(); +} + + +Timeplot.LogarithmicValueGeometry.prototype.toggle=function(){ +if(this._mode=="log"){ +this.actLinear(); +}else{ +this.actLogarithmic(); +} +} + + + + +Timeplot.DefaultTimeGeometry=function(params){ +if(!params)params={}; +this._id=("id"in params)?params.id:"g"+Math.round(Math.random()*1000000); +this._locale=("locale"in params)?params.locale:"en"; +this._timeZone=("timeZone"in params)?params.timeZone:SimileAjax.DateTime.getTimezone(); +this._labeller=("labeller"in params)?params.labeller:null; +this._axisColor=("axisColor"in params)?((params.axisColor=="string")?new Timeplot.Color(params.axisColor):params.axisColor):new Timeplot.Color("#606060"), +this._gridColor=("gridColor"in params)?((params.gridColor=="string")?new Timeplot.Color(params.gridColor):params.gridColor):null, +this._gridLineWidth=("gridLineWidth"in params)?params.gridLineWidth:0.5; +this._axisLabelsPlacement=("axisLabelsPlacement"in params)?params.axisLabelsPlacement:"bottom"; +this._gridStep=("gridStep"in params)?params.gridStep:100; +this._gridStepRange=("gridStepRange"in params)?params.gridStepRange:20; +this._min=("min"in params)?params.min:null; +this._max=("max"in params)?params.max:null; +this._timeValuePosition=("timeValuePosition"in params)?params.timeValuePosition:"bottom"; +this._unit=("unit"in params)?params.unit:Timeline.NativeDateUnit; +this._linMap={ +direct:function(t){ +return t; +}, +inverse:function(x){ +return x; +} +} +this._map=this._linMap; +this._labeler=this._unit.createLabeller(this._locale,this._timeZone); +var dateParser=this._unit.getParser("iso8601"); +if(this._min&&!this._min.getTime){ +this._min=dateParser(this._min); +} +if(this._max&&!this._max.getTime){ +this._max=dateParser(this._max); +} +this._grid=[]; +} + +Timeplot.DefaultTimeGeometry.prototype={ + + +setTimeplot:function(timeplot){ +this._timeplot=timeplot; +this._canvas=timeplot.getCanvas(); +this.reset(); +}, + + +setRange:function(range){ +if(this._min){ +this._earliestDate=this._min; +}else if(range.earliestDate&&((this._earliestDate==null)||((this._earliestDate!=null)&&(range.earliestDate.getTime()this._latestDate.getTime())))){ +this._latestDate=range.latestDate; +} + +if(!this._earliestDate&&!this._latestDate){ +this._grid=[]; +}else{ +this.reset(); +} +}, + + +reset:function(){ +this._updateMappedValues(); +if(this._canvas)this._grid=this._calculateGrid(); +}, + + +toScreen:function(time){ +if(this._canvas&&this._latestDate){ +var t=time-this._earliestDate.getTime(); +return this._canvas.width*this._map.direct(t)/this._mappedPeriod; +}else{ +return-50; +} +}, + + +fromScreen:function(x){ +if(this._canvas){ +return this._map.inverse(this._mappedPeriod*x/this._canvas.width)+this._earliestDate.getTime(); +}else{ +return 0; +} +}, + + +getPeriod:function(){ +return this._period; +}, + + +getLabeler:function(){ +return this._labeler; +}, + + +getUnit:function(){ +return this._unit; +}, + + +paint:function(){ +if(this._canvas){ +var unit=this._unit; +var ctx=this._canvas.getContext('2d'); + +var gradient=ctx.createLinearGradient(0,0,0,this._canvas.height); + +ctx.strokeStyle=gradient; +ctx.lineWidth=this._gridLineWidth; +ctx.lineJoin='miter'; + + +if(this._gridColor){ +gradient.addColorStop(0,this._gridColor.toString()); +gradient.addColorStop(1,"rgba(255,255,255,0.9)"); + +for(var i=0;itime.gregorianUnitLengths[time.MILLENNIUM]){ +unit=time.MILLENNIUM; +}else{ +for(var unit=time.MILLENNIUM;unit>0;unit--){ +if(time.gregorianUnitLengths[unit-1]<=p&&p0){ +grid.push({x:x,label:l}); +} +time.incrementByInterval(t,unit); +}while(t.getTime()geometry._canvas.width)coords.x=geometry._canvas.width; +geometry._timeplot.placeDiv(geometry._lens,{ +left:geometry._canvas.startCoords.x, +width:coords.x-geometry._canvas.startCoords.x, +bottom:0, +height:geometry._canvas.height, +display:"block" +}); +} +} + +var lensMouseDown=function(elmt,evt,target){ +geometry._lens.startCoords=SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt);; +geometry._lens.pressed=true; +} + +var lensMouseUp=function(elmt,evt,target){ +geometry._lens.pressed=false; +} + +var lensMouseMove=function(elmt,evt,target){ +if(geometry._lens.pressed){ +var coords=SimileAjax.DOM.getEventRelativeCoordinates(evt,elmt); +var lens=geometry._lens; +var left=lens.offsetLeft+coords.x-lens.startCoords.x; +if(leftgeometry._canvas.width-geometry._timeplot._paddingX)left=geometry._canvas.width-lens.clientWidth+geometry._timeplot._paddingX; +lens.style.left=left; +magnifyWith(lens); +} +} + +if(!this._canvas.instrumented){ +SimileAjax.DOM.registerEvent(this._canvas,"mousedown",canvasMouseDown); +SimileAjax.DOM.registerEvent(this._canvas,"mousemove",canvasMouseMove); +SimileAjax.DOM.registerEvent(this._canvas,"mouseup",canvasMouseUp); +SimileAjax.DOM.registerEvent(this._canvas,"mouseup",lensMouseUp); +this._canvas.instrumented=true; +} + +if(!this._lens.instrumented){ +SimileAjax.DOM.registerEvent(this._lens,"mousedown",lensMouseDown); +SimileAjax.DOM.registerEvent(this._lens,"mousemove",lensMouseMove); +SimileAjax.DOM.registerEvent(this._lens,"mouseup",lensMouseUp); +SimileAjax.DOM.registerEvent(this._lens,"mouseup",canvasMouseUp); +this._lens.instrumented=true; +} +} + + +Timeplot.MagnifyingTimeGeometry.prototype.setMagnifyingParams=function(c,a,b){ +a=a/2; +b=b/2; + +var w=this._canvas.width; +var d=this._period; + +if(c<0)c=0; +if(c>w)c=w; + +if(c-a<0)a=c; +if(c+a>w)a=w-c; + +var ct=this.fromScreen(c)-this._earliestDate.getTime(); +if(ct-b<0)b=ct; +if(ct+b>d)b=d-ct; + +this._centerX=c; +this._centerTime=ct; +this._aperture=a; +this._aperturePeriod=b; + +this._leftScreenMargin=this._centerX-this._aperture; +this._rightScreenMargin=this._centerX+this._aperture; +this._leftTimeMargin=this._centerTime-this._aperturePeriod; +this._rightTimeMargin=this._centerTime+this._aperturePeriod; + +this._leftRate=(c-a)/(ct-b); +this._expandedRate=a/b; +this._rightRate=(w-c-a)/(d-ct-b); + +this._expandedTimeTranslation=this._centerX-this._centerTime*this._expandedRate; +this._expandedScreenTranslation=this._centerTime-this._centerX/this._expandedRate; +this._rightTimeTranslation=(c+a)-(ct+b)*this._rightRate; +this._rightScreenTranslation=(ct+b)-(c+a)/this._rightRate; + +this._updateMappedValues(); +} + + +Timeplot.MagnifyingTimeGeometry.prototype.actLinear=function(){ +this._mode="lin"; +this._map=this._linMap; +this.reset(); +} + + +Timeplot.MagnifyingTimeGeometry.prototype.actMagnifying=function(){ +this._mode="Magnifying"; +this._map=this._MagnifyingMap; +this.reset(); +} + + +Timeplot.MagnifyingTimeGeometry.prototype.toggle=function(){ +if(this._mode=="Magnifying"){ +this.actLinear(); +}else{ +this.actMagnifying(); +} +} + + + +/* color.js */ + + + + + + +Timeplot.Color=function(color){ +this._fromHex(color); +}; + +Timeplot.Color.prototype={ + + +set:function(r,g,b,a){ +this.r=r; +this.g=g; +this.b=b; +this.a=(a)?a:1.0; +return this.check(); +}, + + +transparency:function(a){ +this.a=a; +return this.check(); +}, + + +lighten:function(level){ +var color=new Timeplot.Color(); +return color.set( +this.r+=parseInt(level,10), +this.g+=parseInt(level,10), +this.b+=parseInt(level,10) +); +}, + + +darken:function(level){ +var color=new Timeplot.Color(); +return color.set( +this.r-=parseInt(level,10), +this.g-=parseInt(level,10), +this.b-=parseInt(level,10) +); +}, + + +check:function(){ +if(this.r>255){ +this.r=255; +}else if(this.r<0){ +this.r=0; +} +if(this.g>255){ +this.g=255; +}else if(this.g<0){ +this.g=0; +} +if(this.b>255){ +this.b=255; +}else if(this.b<0){ +this.b=0; +} +if(this.a>1.0){ +this.a=255; +}else if(this.a<0.0){ +this.a=0.0; +} +return this; +}, + + +toString:function(alpha){ +return'rgba('+this.r+','+this.g+','+this.b+','+((alpha)?alpha:'1.0')+')'; +}, + + +toHexString:function(){ +return"#"+this._toHex(this.r)+this._toHex(this.g)+this._toHex(this.b); +}, + + +_fromHex:function(color){ +if(/^#?([\da-f]{3}|[\da-f]{6})$/i.test(color)){ +color=color.replace(/^#/,'').replace(/^([\da-f])([\da-f])([\da-f])$/i,"$1$1$2$2$3$3"); +this.r=parseInt(color.substr(0,2),16); +this.g=parseInt(color.substr(2,2),16); +this.b=parseInt(color.substr(4,2),16); +}else if(/^rgb *\( *\d{0,3} *, *\d{0,3} *, *\d{0,3} *\)$/i.test(color)){ +color=color.match(/^rgb *\( *(\d{0,3}) *, *(\d{0,3}) *, *(\d{0,3}) *\)$/i); +this.r=parseInt(color[1],10); +this.g=parseInt(color[2],10); +this.b=parseInt(color[3],10); +} +this.a=1.0; +return this.check(); +}, + + +_toHex:function(dec){ +var hex="0123456789ABCDEF" +if(dec<0)return"00"; +if(dec>255)return"FF"; +var i=Math.floor(dec/16); +var j=dec%16; +return hex.charAt(i)+hex.charAt(j); +} + +}; + +/* math.js */ + + + +Timeplot.Math={ + + +range:function(f){ +var F=f.length; +var min=Number.MAX_VALUE; +var max=Number.MIN_VALUE; + +for(var t=0;tmax){ +max=value; +} +} + +return{ +min:min, +max:max +} +}, + + +movingAverage:function(f,size){ +var F=f.length; +var g=new Array(F); +for(var n=0;n=F){ +var v=g[n-1]; +}else{ +var v=f[m]; +} +value+=v; +} +g[n]=value/(2*size); +} +return g; +}, + + +integral:function(f){ +var F=f.length; + +var g=new Array(F); +var sum=0; + +for(var t=0;t1){ +var l=floor(log(x)/log(10)); +var d=round(exp((l-n+1)*log(10))); +var y=round(round(x/d)*d); +return y; +}else{ +log("FIXME(SM): still to implement for 0 < abs(x) < 1"); +return x; +} +} +}, + + +tanh:function(x){ +if(x>5){ +return 1; +}else if(x<5){ +return-1; +}else{ +var expx2=Math.exp(2*x); +return(expx2-1)/(expx2+1); +} +}, + + +isClose:function(a,b,value){ +return(a&&b&&Math.abs(a.x-b.x) + * + *================================================== + */ + +var Timeplot = new Object(); +Timeplot = { + loaded: false, + params: { bundle: true, autoCreate: true }, + namespace: "http://simile.mit.edu/2007/06/timeplot#", + importers: {} + }; +Timeplot.Platform = new Object(); + /* + HACK: We need these 2 things here because we cannot simply append + a