All pastes #923742 Raw Edit

Someone

public text v1 · immutable
#923742 ·published 2008-02-29 20:31 UTC
rendered paste body
menu * {
  Hash Manager: hshviewer
}
alias hshviewer {
  if (!$dialog(hsh)) { dialog -m hsh hsh }
}

dialog hsh {
  title "Hash Manager v.2"
  size -1 -1 423 420
  list 1, 11 17 121 260, vsbar sort
  list 2, 151 17 121 260, vsbar sort
  list 3, 291 17 121 260, vsbar
  box "Table", 4, 4 2 135 275 
  box "Item", 5, 144 2 135 275
  box "Data", 6, 284 2 135 275
  button "New Table", 7, 4 280 60 20,
  button "Delete", 8, 80 280 60 20, 
  button "Add Item", 9, 144 280 60 20, 
  button "Delete", 10, 220 280 60 20, 
  button "Edit Data", 11, 284 280 120 20, 
  edit "", 12, 70 305 350 20, read autohs center
  edit "", 13, 70 330 350 20, read autohs center
  edit "", 14, 70 355 350 20, read autohs center 
  text "Table Name", 15, 5 307 60 20, center
  text "Item", 16, 5 332 60 20, center
  text "Data", 17, 5 357 60 20, center
  button "R", 18, 65 280 15 20, 
  button "R", 19, 205 280 15 20, 
  button "R", 20, 405 280 15 20,
  text "*R buttons resets the list above it and following list where applicable.*", 21, 5 380 418 20, center
  text "*No information is erased from a hash table.*", 22, 5 395 418 20, center
}



alias chsh2 { 
  if (!hsh2) { halt }
  else { dialog -x hsh2 hsh2 }
}
alias re.fresh {
  did -r hsh 1,2,3 
  var %x 1
  while ($hget(%x)) {
    did -a hsh 1 $hget(%x)
    inc %x
  }
}
alias re.fresh2 {
  var %x 1
  did -r hsh 2
  while ($hget($did(1).seltext,%x).item) {
    did -a hsh 2 $hget($did(1).seltext,%x).item
    inc %x 
  }
}
alias re.fresh3 {
  did -r hsh 3
  did -a hsh 3 $hget($did(1).seltext,$did(2).seltext)
}
alias re.fresh4 {
  did -h hsh 12,15,13,16,14,17
  did -r hsh 2,3
  did -u hsh 1  
  did -v hsh 12,15 {
    if ($did(1).lines == 1) { did -ra hsh 12 There is one table to choose from. | halt }
    else { did -ra hsh 12 There are $did(1).lines tables to choose from. } 
  }
}
on *:dialog:hsh:close:* { chsh2 }


on *:dialog:hsh:init:* {
  did -h hsh 12,13,14,15,16,17
  did -h hsh 18,19,20
  re.fresh
  re.fresh4
}
on *:dialog:hsh:sclick:1 {
  did -h hsh 19,20
  if ($did(1).seltext == $null) { 
    did -h hsh 12,15,13,16,14,17 | did -h hsh 18 | did -r hsh 3 | did -r hsh 2 
    did -v hsh 12,15 {
      if ($did(1).lines == 1) { did -ra hsh 12 There is one table to choose from. halt }
      else { did -ra hsh 12 There are $did(1).lines tables to choose from. | halt } 
    }
  }
  else { 
    var %x 1
    did -r hsh 2,3 
    did -h hsh 13,16,14,17
    did -v hsh 18
    while ($hget($did(1).seltext,%x).item) {
      did -a hsh 2 $hget($did(1).seltext,%x).item
      inc %x
      did -v hsh 12,15
      did -v hsh 18
      did -h hsh 13,16,14,17
    }
    did -ra hsh 12 $did(1).seltext  $qt($hget($did(1).seltext).size)
    if (!hsh2) { set %a $did(1).seltext | hsh2 | dialog -s hsh2 -1 -1 -100 -100 | halt }
  }   
}

on *:dialog:hsh:sclick:2 {
  did -v hsh 19
  did -h hsh 20
  if ($did(2).seltext == $null) { did -h hsh 13,16,14,17 | halt }
  else { 
    did -r hsh 3
    did -ra hsh 3 $hget($did(1).seltext,$did(2).seltext)           
    did -ra hsh 12 $did(1).seltext  $qt($hget($did(1).seltext).size) 
    did -ra hsh 13 $did(2).seltext 
    did -v hsh 13,16
    did -h hsh 14,17
  } 
}

on *:dialog:hsh:sclick:3 { 
  did -v hsh 20    
  if ($did(3).seltext == $null) { did -h hsh 14,17 | halt }
  else {
    did -ra hsh 12 $did(1).seltext  $qt($hget($did(1).seltext).size) 
    did -ra hsh 13 $did(2).seltext 
    did -ra hsh 14 $did(3).seltext
    did -v hsh 14,17 
  }
}
on *:dialog:hsh:sclick:7 { 
  hmake $$?="Table Name Slots:"
  re.fresh
}

on *:dialog:hsh:sclick:8 {
  if ($did(1).sel) {
    if ($input(Are you sure that you want to delete $did(1).seltext,qy,Confirmation)) {
      .hfree $did(1).seltext 
      did -r hsh 1
      re.fresh 
      re.fresh4
    }
  }
}
on *:dialog:hsh:sclick:9 { 
  if ($did(1).sel) {
    if ($$?="+ ( Item with Data ) Ex: /hadd HashTable Item Data $crlf $+ - ( Item without Data ) Ex: /hadd HashTable Item" == -) { set %a $did(1).seltext | hsh2 |  dialog -s hsh2 -1 -1 145 155 | halt }
    else {
      .hadd $did(1).seltext $input(Enter item name,qe,Item Name) $input(Enter Data,qe,Data?)
    }
    re.fresh2
  }
}


on *:dialog:hsh:sclick:10 {
  if ($did(2).lines) {
    if ($input(Are you sure that you want to delete $did(2).seltext,qy,Confirmation)) {
      .hdel $did(1).seltext $did(2).seltext
      did -r hsh 2,3
      did -h hsh 13,16,14,17
      did -h hsh 19,20
      re.fresh2
      did -v hsh 12,15,13,16 {
        if ($did(2).lines == 0) { did -h hsh 13,16 | halt }
        if ($did(2).lines == 1) { did -ra hsh 13 There is one item to choose from. | halt }
        else { did -ra hsh 13 There are $did(2).lines item to choose from. | halt } 
      }
    }
  }
}

on *:dialog:hsh:sclick:11 {
  if ($did(3).lines == 0) { halt }
  else { 
    var %x $input(Current Information $crlf Table: $did(1).seltext $crlf Item: $did(2).seltext $crlf Data: $hget($did(1).seltext,$did(2).seltext),oe,Change Data To?)
    if (%x == $null) { halt }
    if (%x !isalnum) {
      .hdel $did(1).seltext $did(2).seltext 
      .hadd $did(1).seltext $did(2).seltext %x
      did -o hsh 3 1
      did -ra hsh 3,14 %x
      halt
    }
    if ((%x isletter)) { 
      .hdel $did(1).seltext $did(2).seltext 
      .hadd $did(1).seltext $did(2).seltext %x
      did -o hsh 3 1
      did -ra hsh 3,14 %x
      halt
    }
    if ((%x isletter) && || (%x isnum)) {
      .hdel $did(1).seltext $did(2).seltext 
      .hadd $did(1).seltext $did(2).seltext %x
      did -o hsh 3 1
      did -ra hsh 3,14 %x
      halt
    }
    if (%x == 0) {
      .hdel $did(1).seltext $did(2).seltext
      .hadd $did(1).seltext $did(2).seltext
      did -o hsh 3 $calc(1 - %x)
      inc %x
      did -ra hsh 3,14 $calc(1 - %x)
      inc %x
    }
    else {
      if (%x == 1) {   
        .hdel $did(1).seltext $did(2).seltext 
        .hadd $did(1).seltext $did(2).seltext 1
        did -o hsh 3 1
        did -ra hsh 3,14 1
      }
      else { 
        .hdel $did(1).seltext $did(2).seltext 
        .hadd $did(1).seltext $did(2).seltext %x
        inc %x
        did -o hsh 3 $calc(%x - 2)
        inc %x
        did -ra hsh 3,14 $calc(%x - 2)
        inc %x
      }
    }
  }
}

on *:dialog:hsh:sclick:18 {
  did -h hsh 12,15,13,16,14,17
  did -h hsh 18,19,20
  did -r hsh 2,3
  did -u hsh 1  
  did -v hsh 12,15 {
    if ($did(1).lines == 1) { did -ra hsh 12 There is one table to choose from. | halt }
    else { did -ra hsh 12 There are $did(1).lines tables to choose from. } 
  }
}
on *:dialog:hsh:sclick:19 {
  did -h hsh 13,16,14,17
  did -h hsh 20
  did -r hsh 3
  did -u hsh 2 {
    if ($did(2).lines == 0) { halt }
    else {
      did -h hsh 19
      did -v hsh 13,16 {
        if ($did(2).lines == 1) { did -ra hsh 13 There is one item to choose from. | halt }
        else { did -ra hsh 13 There are $did(2).lines item(s) to choose from. }
      }
    }
  }
}
on *:dialog:hsh:sclick:20 {
  if ($did(3).lines == 0) { halt }
  else {
    did -h hsh 14,17
    did -h hsh 19,20
    did -r hsh 3 
    did -u hsh 2
    did -v hsh 13,16 {
      if ($did(2).lines == 1) { did -ra hsh 13 There is one item to choose from. | halt }
      else { did -ra hsh 13 There are $did(2).lines item(s) to choose from. }
    }
  }
}

alias hsh2 {
  if (!$dialog(hsh2)) { dialog -m hsh2 hsh2 |  dialog -s hsh2 -1 -1 -100 -100 }
}

dialog hsh2 {
  title "HM v.2 AddOn"
  size -1 -1 145 155 
  list 1, 10 20 125 75
  box "Item", 2, 2 2 140 80 
  button "List Item", 3, 1 87 143 20
  button "Add Item", 4, 1 110 143 20
  button "Clear List", 5, 1 133 143 20
}

on *:dialog:hsh2:*:*: {
  if ($devent == init) { did -r hsh2 1 }
  if ($devent == sclick) { 
    if ($did == 3) { 
      var %x $input(Enter item to be entered,qe,Item)
      did -a hsh2 1 %x
    }
    if ($did == 4) { 
      if ($did(1).lines == 0) { halt }
      else { 
        if ($did(1).seltext == $null) { halt }
        else { hadd -sc %a $did(1).seltext }
      }
    }
    if ($did == 5) { did -r hsh2 1 }
  }
}