Diff for /capa/capa51/GUITools/classl.tcl between versions 1.1.1.1 and 1.4

version 1.1.1.1, 1999/09/28 21:25:36 version 1.4, 2000/07/07 18:25:12
Line 1 Line 1
   # classl editor
   #  Copyright (C) 1992-2000 Michigan State University
   #
   #  The CAPA system is free software; you can redistribute it and/or
   #  modify it under the terms of the GNU Library General Public License as
   #  published by the Free Software Foundation; either version 2 of the
   #  License, or (at your option) any later version.
   #
   #  The CAPA system is distributed in the hope that it will be useful,
   #  but WITHOUT ANY WARRANTY; without even the implied warranty of
   #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   #  Library General Public License for more details.
   #
   #  You should have received a copy of the GNU Library General Public
   #  License along with the CAPA system; see the file COPYING.  If not,
   #  write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   #  Boston, MA 02111-1307, USA.
   #
   #  As a special exception, you have permission to link this program
   #  with the TtH/TtM library and distribute executables, as long as you
   #  follow the requirements of the GNU GPL in regard to all of the
   #  software in the executable aside from TtH/TtM.
   
 ###########################################################  ###########################################################
 # createClasslEditor  # createClasslEditor
 ###########################################################  ###########################################################
Line 67  proc createClasslEditor { classlFile } { Line 90  proc createClasslEditor { classlFile } {
 #action  #action
     button $actionFrame.add -text "Add" -command "classlAdd $num"      button $actionFrame.add -text "Add" -command "classlAdd $num"
     button $actionFrame.edit -text "Edit" -command "classlEdit $num"      button $actionFrame.edit -text "Edit" -command "classlEdit $num"
       button $actionFrame.save -text "Save" -command "saveClassl $num 1"
     button $actionFrame.delete -text "Delete" -command "classlDelete $num"      button $actionFrame.delete -text "Delete" -command "classlDelete $num"
     button $actionFrame.section -text "Change Section" -command "classlSectionChange $num"      button $actionFrame.section -text "Change Section" -command "classlSectionChange $num"
     button $actionFrame.sort -text "Sort" -command "classlSort $num"      button $actionFrame.sort -text "Sort" -command "classlSort $num"
     button $actionFrame.print -text "Print" -command "classlPrint $num"      button $actionFrame.print -text "Print" -command "classlPrint $num"
     button $actionFrame.find -text "Find" -command "classlFind $num"      button $actionFrame.find -text "Find" -command "classlFind $num"
     pack $actionFrame.add $actionFrame.edit $actionFrame.delete $actionFrame.section \      button $actionFrame.merge -text "Merge" -command "classlMerge $num"
  $actionFrame.sort $actionFrame.print $actionFrame.find -side left      pack $actionFrame.add $actionFrame.edit $actionFrame.save $actionFrame.delete \
    $actionFrame.section $actionFrame.sort $actionFrame.print $actionFrame.find \
    $actionFrame.merge -side left
   
 #window  #window
     set leftFrame [frame $windowFrame.left]      set leftFrame [frame $windowFrame.left]
Line 738  proc classlDoFind { num type } { Line 764  proc classlDoFind { num type } {
  incr which   incr which
     }      }
     set max [$gClassl($num) index end]      set max [$gClassl($num) index end]
     for {set i 0} { $i < ($max-1)} {incr i} {      for {set i 0} { $i < ($max)} {incr i} {
  set current [expr ($i+$which)%$max]   set current [expr ($i+$which)%$max]
  puts -nonewline "$current:"  
  set entry [$gClassl($num) get $current]   set entry [$gClassl($num) get $current]
  switch $type {   switch $type {
     name { set tmp [string range [$gClassl($num) get $current] 24 53] }      name { set tmp [string range [$gClassl($num) get $current] 24 53] }
Line 751  proc classlDoFind { num type } { Line 776  proc classlDoFind { num type } {
     $gClassl($num) selection clear 0 end      $gClassl($num) selection clear 0 end
     $gClassl($num) selection set $current      $gClassl($num) selection set $current
     $gClassl($num) see $current      $gClassl($num) see $current
     puts " "  
     return      return
  }   }
     }      }
     displayMessage "Not Found"      displayMessage "Not Found"
 }  
   
   }
   
   ###########################################################
   # classlMerge
   ###########################################################
   ###########################################################
   ###########################################################
   proc classlMerge { num } {
       global gClassl 
   
       set filename [tk_getOpenFile -title "Select a File to merge in"]
   
       if { $filename == "" } { return }
       set fileId [open $filename "r"]
       set maxlines [lindex [exec wc -l $filename] 0]
       set linenum 0
       set newentries 0
       displayStatus "Merging $filename" both $num
       set aline [gets $fileId]
       while {![eof $fileId]} {
    incr linenum
    set found 0
    set stunum [string range $aline 14 22]
    set max [$gClassl($num) index end]
    for {set i 0} { $i < ($max)} {incr i} {
       set tmp [string range [$gClassl($num) get $i] 14 22]
       if { [regexp -nocase $stunum $tmp] } { 
    set found 1
    break 
       }
    }
    if { !$found } { 
       incr newentries
       $gClassl($num) insert end $aline 
    }
    updateStatusBar [expr $linenum/double($maxlines)] $num
    set aline [gets $fileId]
       }    
       removeStatus $num
       if { $newentries != 0 } { 
    $gClassl($num) see $max 
    $gClassl($num) selection set $max
       }
       displayMessage "Added $newentries students."
   }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>