1 # IR toolkit for tcl/tk
3 # See the file LICENSE for details.
4 # Sebastian Hammer, Adam Dickmeiss
7 # Revision 1.1 1998-09-30 10:53:54 perhans
8 # New client with better Explain support and nice icons.
10 # Revision 1.13 1997/11/19 11:22:10 adam
11 # Object identifiers can be accessed in GRS-1 records.
13 # Revision 1.12 1996/04/12 13:45:50 adam
16 # Revision 1.11 1996/03/29 16:05:37 adam
17 # Bug fix: GRS records wasn't recognized.
19 # Revision 1.10 1996/01/23 15:24:24 adam
20 # Wrore more comments.
22 # Revision 1.9 1995/10/17 14:18:10 adam
23 # Minor changes in presentation formats.
25 # Revision 1.8 1995/10/17 10:58:09 adam
26 # More work on presentation formats.
28 # Revision 1.7 1995/10/12 14:46:58 adam
29 # The record position in the raw format is much more visible.
31 # Revision 1.6 1995/09/20 11:37:07 adam
34 # Revision 1.5 1995/08/28 12:22:09 adam
35 # Use 'line' instead of 'list' in MARC extraction.
37 # Revision 1.4 1995/06/22 13:16:29 adam
38 # Feature: SUTRS. Setting getSutrs implemented.
39 # Work on display formats.
41 # Revision 1.3 1995/06/14 12:16:42 adam
42 # Minor presentation format changes.
44 # Revision 1.2 1995/06/12 15:18:10 adam
45 # Work on presentation formats. These are used in the main window as well
49 proc display-grs-raw {w r i} {
51 for {set j 0} {$j < $i} {incr j} {
52 insertWithTags $w " " {}
54 insertWithTags $w "([lindex $e 0],[lindex $e 2])" marc-tag
55 if {[lindex $e 3] == "string"} {
56 insertWithTags $w [lindex $e 4] {}
57 insertWithTags $w "\n" {}
58 } elseif {[lindex $e 3] == "subtree"} {
59 insertWithTags $w "\n" {}
60 display-grs-raw $w [lindex $e 4] [expr $i+1]
62 insertWithTags $w [lindex $e 4] {}
63 insertWithTags $w "\n" {}
68 # Procedure display-raw {sno no w flag}
69 # sno result set number (integer)
70 # no record position (integer)
71 # w text widget in which the record should be displayed.
72 # hflag header flag. If true a header showing the record position
73 # should be displayed.
74 # This procedure attempts to display records in a raw format.
75 proc display-raw {sno no w hflag} {
77 insertWithTags $w " $no " marc-head
78 insertWithTags $w "\n"
82 set type [z39.$sno type $no]
84 set err [lindex [z39.$sno diag $no] 1]
85 set add [lindex [z39.$sno diag $no] 2]
89 insertWithTags $w "Error ${err}${add}\n" marc-id
95 set rtype [z39.$sno recordType $no]
96 if {$rtype == "SUTRS"} {
97 insertWithTags $w [join [z39.$sno getSutrs $no]] {}
101 if {$rtype == "GRS-1"} {
102 display-grs-raw $w [z39.$sno getGrs $no] 0
105 if {[catch {set r [z39.$sno getMarc $no line * * *]}]} {
106 insertWithTags $w "Unknown record type: $rtype\n" marc-id
110 set tag [lindex $line 0]
111 set indicator [lindex $line 1]
112 set fields [lindex $line 2]
114 if {$indicator != ""} {
115 insertWithTags $w "$tag $indicator" marc-tag
117 insertWithTags $w "$tag " marc-tag
119 foreach field $fields {
120 set id [lindex $field 0]
121 set data [lindex $field 1]
123 insertWithTags $w " $id " marc-id
125 insertWithTags $w $data {}