"""
 
  Views RKI files in a TK window.


"""
import sys
from os.path import basename, abspath, join, dirname
from Tkinter import *
import textwrap

import rki


def tkinter_display_str(rki_filename, msg):
  root = Tk()
  root.iconbitmap(abspath(join(dirname(__file__), "corona.ico")))  
  text = Text(root, width=100, padx=10, pady=10)
  text.insert(INSERT, msg)
  text.pack()
  root.title(rki_filename)
  root.mainloop()
  return


def dict_to_str(d):
  str_rep = ""
  for key in dir(obj):
    k = str(key).strip().ljust(30)          
    value = getattr(obj, key)
    value = str(value).strip()
    if len(value) > 100:
      print len(value)
      value = "\n" + textwrap.fill(value, 100, initial_indent='    ', subsequent_indent='    ') + "\n"
      str_rep += "%s: %s\n" % (k, value)
  return str_rep

  

def view_rki(rki_path):
  str_rep = ""
  obj = rki.parseObject(rki_path)
  if obj is not None:
    for key in dir(obj):
      if not key.startswith("_"):
        if key == "count":
          pass
        elif key == "index":
          pass
        else:
          k = str(key).strip().ljust(30)
          
          value = getattr(obj, key)
          value = str(value).strip()
          if len(value) > 100:
            print len(value)
            value = "\n" + textwrap.fill(value, 100, initial_indent='    ', subsequent_indent='    ') + "\n"
          str_rep += "%s: %s\n" % (k, value)
  else:
    str_rep = "Problem parsing rki file!"

  tkinter_display_str(basename(rki_path), str_rep)
  return


def main(rki_filenames):
  for rki_filename in rki_filenames:
    rji_filename = abspath(rki_filename)
    view_rki(rki_filename)    
  return

if __name__ == "__main__":
  if len(sys.argv) > 1:
    main(sys.argv[1:])
