X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=formats%2Fline.tcl;h=356887861c411e9baf69d56213ce86810de63d78;hb=29933c91f94e4c2b255006f911b9ad44a5409a0b;hp=4274de1f540571ad3bfd3feefa7c77ad3feb1d36;hpb=eb71fbcf75d076d638a0cee0d1418f311135d879;p=ir-tcl-moved-to-github.git diff --git a/formats/line.tcl b/formats/line.tcl index 4274de1..3568878 100644 --- a/formats/line.tcl +++ b/formats/line.tcl @@ -4,7 +4,23 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: line.tcl,v $ -# Revision 1.4 1995-06-19 08:10:21 adam +# Revision 1.9 1995-10-17 14:18:09 adam +# Minor changes in presentation formats. +# +# Revision 1.8 1995/10/17 10:58:08 adam +# More work on presentation formats. +# +# Revision 1.7 1995/09/20 11:37:06 adam +# Work on GRS. +# +# Revision 1.6 1995/06/29 12:34:20 adam +# IrTcl now works with both tk4.0b4/tcl7.4b4 and tk3.6/tcl7.3 +# +# Revision 1.5 1995/06/22 13:16:28 adam +# Feature: SUTRS. Setting getSutrs implemented. +# Work on display formats. +# +# Revision 1.4 1995/06/19 08:10:21 adam # Inverse highligt colours in monochrome mode. # # Revision 1.3 1995/06/16 12:29:00 adam @@ -19,11 +35,30 @@ # as popup windows. # # +proc display-grs-line {w r i} { + foreach e $r { + for {set j 0} {$j < $i} {incr j} { + insertWithTags $w " " {} + } + insertWithTags $w "([lindex $e 0]:[lindex $e 2])" marc-tag + if {[lindex $e 3] == "string"} { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w "\n" {} + } elseif {[lindex $e 3] == "subtree"} { + insertWithTags $w "\n" {} + display-grs-line $w [lindex $e 4] [expr $i+1] + } else { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w " ?\n" {} + } + } +} proc display-line {sno no w hflag} { + global monoFlag set type [z39.$sno type $no] if {$hflag} { - if {[tk colormodel .] == "color"} { + if {! $monoFlag} { $w tag bind r$no \ [list $w tag configure r$no -background gray80] $w tag bind r$no \ @@ -37,23 +72,32 @@ proc display-line {sno no w hflag} { } else { $w delete 0.0 end } + if {$hflag} { + set nostr [format "%5d " $no] + insertWithTags $w $nostr marc-small-head + } if {$type == "DB"} { - if {$hflag} { - set nostr [format "%5d " $no] - insertWithTags $w $nostr marc-tag + set rtype [z39.$sno recordType $no] + if {$rtype == "SUTRS"} { + insertWithTags $w [join [z39.$sno getSutrs $no]] + } elseif {$rtype == "GRS1"} { + display-grs-line $w [z39.$sno getGrs $no] 6 + } else { + if {[catch { + set title [lindex [z39.$sno getMarc $no field 245 * a] 0] + set year [lindex [z39.$sno getMarc $no field 260 * c] 0] + insertWithTags $w "$title - " marc-text + insertWithTags $w "$year\n" marc-it + }]} { + insertWithTags $w "Unknown record type: $rtype\n" marc-id + } } - set title [lindex [z39.$sno getMarc $no field 245 * a] 0] - set year [lindex [z39.$sno getMarc $no field 260 * c] 0] - insertWithTags $w "$title - $year\n" marc-data - $w tag bind marc-data } elseif {$type == "SD"} { set err [lindex [z39.$sno diag $no] 1] set add [lindex [z39.$sno diag $no] 2] if {$add != {}} { set add " :${add}" } - insertWithTags $w "Error ${err}${add}\n" marc-data - } elseif {$type == ""} { - return - } + insertWithTags $w "Error ${err}${add}\n" marc-id + } }