#!/bin/sh
#-*- tcl -*- \
exec tclsh "$0" "$@"

#------------------------------------------------------------------------
#
#	ScienceArchive TK GUI interface
#
#       Peter Kunszt, July 20, 1999
#
#       Last Mod. 25 Jun 01 DCD
#------------------------------------------------------------------------
#
# (c) Copyright The Johns Hopkins University 1999
# All Rights Reserved
#
#-------------------------------------------------------------------------
#	Read DDL files and convert them into a GUI datafile
#-------------------------------------------------------------------------

# Mod to update SXQT to SDSSQT DCD 25 Jun 01

#set auto_path "$env(SXQT_DIR)/tcl $auto_path"
#set sxGlobal(dataDir) "$env(SXQT_DIR)/etc"
#set sxGlobal(htmlDir) "$env(SXQT_DIR)/doc/www"

if { ![info exist env(SDSSQT_DIR)] } {
    if { ![info exist env(SXQT_DIR] } {
        puts "Set SDSSQT_DIR environment variable first."
        puts "Read README how to install sdssQT."
        exit
    } else {
        set auto_path "$env(SXQT_DIR)/tcl $auto_path"
        set sxGlobal(dataDir) "$env(SXQT_DIR)/etc"
        set sxGlobal(htmlDir) "$env(SXQT_DIR)/doc/www"
    }
} else {
        set auto_path "$env(SDSSQT_DIR)/tcl $auto_path"
        set sxGlobal(dataDir) "$env(SDSSQT_DIR)/etc"
        set sxGlobal(htmlDir) "$env(SDSSQT_DIR)/doc/www"
}

set sxGlobal(photoObjDesc) {sxPhotoObj sxPhotoPrimary sxPhotoSecondary sxPhotoBad}
set sxGlobal(tagObjDesc) {sxTag sxPrimary sxSecondary sxStar sxGalaxy sxSky sxUnknown sxSkySecondary sxGalaxySecondary sxStarSecondary sxUnknownSecondary sxBad sxBright sxNonBright}

getDDLInfo [getDDLFiles]
resolveInheritance
getInheritedMembers

#set file [open "$sxGlobal(htmlDir)/classFrameList.html" w]

# DCD 22 Jun 01 Used join below instead of syntax above to
# avoid pratform separator incompatibility.
# ex / UNIX \ Windows & : mac

set tmp71 [file join $sxGlobal(htmlDir) classFrameList.html]
set file [open "$tmp71" w]

puts $file "<HTML>"
puts $file "<HEAD>"
puts $file "<!-- A list of all classes, generated by mkClassHelp -->"
puts $file "<TITLE>"
puts $file "All Classes"
puts $file "</TITLE>"
puts $file "</HEAD>"
puts $file "<BODY BGCOLOR=\"white\">"
puts $file "<FONT size=\"+1\" ID=\"FrameHeadingFont\">"
puts $file "<B>All Classes</B></FONT>"
puts $file "<BR>"
puts $file "\n"
puts $file "<TABLE BORDER=\"0\" WIDTH=\"100%\">"
puts $file "<TR>"
puts $file "<TD NOWRAP><FONT ID=\"FrameItemFont\"><A HREF=\"classOverview.html\" TARGET=\"classFrame\">Overview</A>"
puts $file "<BR><BR>"

set classlist [lsort $schema(classes)]
foreach class $classlist {
    puts $file "<A HREF=\"$class.html\" TARGET=\"classFrame\">$class</A>"
    puts $file "<BR>"
}

puts $file "</FONT></TD>"
puts $file "</TR>"
puts $file "</TABLE>"
puts $file "</BODY>"
puts $file "</HTML>"
flush $file
close $file

foreach class $classlist {

#set file [open "$sxGlobal(htmlDir)/$class.html" w]
# DCD 22 Jun 01 Used join below instead of syntax above to
# avoid pratform separator incompatibility.
# ex / UNIX \ Windows & : mac

set tmp71 [file join $sxGlobal(htmlDir) $class.html]
set file [open "$tmp71" w]

puts $file "<HTML>"
puts $file "<HEAD>"
puts $file "<!-- $class member list, generated by mkClassHelp -->"
puts $file "<TITLE>"
puts $file "$class Members"
puts $file "</TITLE>"
puts $file "</HEAD>"
puts $file "<BODY BGCOLOR=\"white\">"
puts $file "<FONT size=\"+1\" ID=\"FrameHeadingFont\">"
puts $file "<B>$class Members</B></FONT>"
puts $file "<BR>"
puts $file "<BR><p>"
puts $file "<TABLE BORDER=\"1\" WIDTH=\"100%\">"
puts $file "<TR>"
puts $file "<TD><b>Member Name</TD><TD><b>Member Type</TD><TD><b>Description</b></TD>"
puts $file "</TR>"

    if { ![info exists schema($class)] } {
	set len 0
    } else {
	set len [llength $schema($class)]
    }

    for {set i 0} {$i < $len} {incr i} { 
	set member [lindex $schema($class) $i]
    	set type [lindex $schema($class,$member) 0]
	set dim [lindex $schema($class,$member) 1]
	if {$dim > 1 && $dim < 100} then {
	    set type "$type\[$dim\]"
	} elseif {$dim !=""} then {set type "$type - $dim"}

	set desc [sxDescription $member $class 1]

	puts $file "<TR>"
	puts $file "<TD>$member</TD><TD>$type</TD><TD>$desc</TD>"
	puts $file "</TR>"
    }

puts $file "</TABLE>"
puts $file "</BODY>"
puts $file "</HTML>"
flush $file
close $file

}

puts "help files written."
