Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.stsci.edu/spst/UnixTransition/doc/cl_parameters_input.py
Дата изменения: Fri Apr 8 12:46:10 2016
Дата индексирования: Mon Apr 11 04:45:49 2016
Кодировка:
#MODULE cl_parameters_input.py
#
#***********************************************************************
"""

**PURPOSE** --
This is the Command Loader input selection menu.

**DEVELOPER** --
Don Chance

**MODIFICATION HISTORY** --
o Initial implementation 8/28/03
o change cursor to a watch while waiting for the config dialog
to appear. dc 12/9/03
o hide the output directory on the test side. drc 4/27/04
o updated for PASS 33.60 drc 9/1/10
o fix qbf_initial default. drc 11/15/10
o fix history keeping for qbf_initial drc 3/17/11
o add INTERCEPT_486TYPE parameter. drc 8/22/11
o Time_Entry moved from time_util to spss_tk_util drc 10/15/14
o get possible revision letters from pass_product.py drc 2/1/16
"""
#***********************************************************************

__version__ = "16.02.01"

from Tkinter import Label, Frame, W
from pass_environ_setup import PASS_SYSTEM
from pass_product import REVISION_LETTERS
from spss_tk_util import Time_Entry
import Pmw
import select_option_menu
import time_util
import cl_break_selection_menu
import dir_selection_menu
import Tix
import mscl_util

CLNAMELIST = 'CLNINPUT'


class cl_parameters_input:
"""Input parameters for a CL run.
"""
def __init__(self, parent, cl=None, cl_num=1, command=None, verbose=False):
self.verbose = verbose
if self.verbose:
print "in cl_paramters_input constructor"
print "input cl:", cl
print "input cl_num:", cl_num
if cl:
print "cl.ms:", cl.ms
print "cl start", cl.get_begin_time()
print "cl end", cl.get_end_time()
if cl.ms:
print "cl.ms.sms:", cl.ms.sms
self.parent = parent
self.dialog = Pmw.Dialog(self.parent,
title="Command Loader parameters CL# %d" % cl_num,
buttons=('OK', 'Cancel'),
defaultbutton='OK',
command=self.execute)
self.frame = Frame(self.dialog.interior())
self.frame.pack(padx=10, pady=10)
self.cl = cl
self.cl_num = cl_num
self.ok_command = command
if not self.cl:
self.cl = mscl_util.cl()

# Setup defaults
default_outdir = self.cl.get_output_directory()
default_starttime = self.cl.get_begin_time()
default_endtime = self.cl.get_end_time()
if not default_starttime:
default_starttime = time_util.spss_time()
default_endtime = default_starttime
if not default_endtime:
default_endtime = default_starttime

if self.verbose:
print "default_starttime =", default_starttime
print "default_endtime =", default_endtime

if PASS_SYSTEM != 'test':
# Create an output directory entry box
self.outdir_entry = dir_selection_menu.dir_selection_menu(self.frame,
"",
True,
default_outdir,
False)
Label(self.frame, text='Output directory: ', width=30, anchor=W).grid(row=0, column=0, padx=2)
self.outdir_entry.frame.grid(row=0, column=1, sticky='w')
else:
self.outdir_entry = None

# Create a begin time menu.
Label(self.frame, text='Begin Time: ', width=30, anchor=W).grid(row=7, column=0, padx=2)
self.begin_time_entry = Time_Entry(self.frame, default_starttime)
self.begin_time_entry.grid(row=7, column=1, sticky='w')

# Create a end time menu.
Label(self.frame, text='End Time: ', width=30, anchor=W).grid(row=8, column=0, padx=2)
self.end_time_entry = Time_Entry(self.frame, default_endtime)
self.end_time_entry.grid(row=8, column=1, sticky='w')

# Create a revision letter menu
nml_revision = self.cl.get_clstart()[CLNAMELIST]['CLREVISION'][0].replace("'", "").strip()
Label(self.frame, text='Revision letter: ', width=30, anchor=W).grid(row=9, column=0, padx=2)
self.revision_letter_menu = select_option_menu.select_option_menu(self.frame,
"",
REVISION_LETTERS,
nml_revision)
self.revision_letter_menu.frame.grid(row=9, column=1, sticky='w')

nml_486_flb = self.cl.get_clstart()['CLNINPUT']['AUTOFLB'][0]
default_486_flb = nml_486_flb.replace(".", "").strip().lower().capitalize()
# Create 486 Auto fixed load break menu.
self.auto_486_fixed_lb_menu = select_option_menu.select_option_menu(self.frame,
"",
["False", "True"],
default_486_flb)
Label(self.frame, text="486 Auto Fixed Load Breaks : ", width=30, anchor=W).grid(row=11, column=0, padx=2)
self.auto_486_fixed_lb_menu.frame.grid(row=11, column=1, sticky='w')

# Create NSSC Auto fixed load break menu.
nml_nssc_flb = self.cl.get_clstart()['CLNINPUT']['AUTOFLB'][1]
default_nssc_flb = nml_nssc_flb.replace(".", "").strip().lower().capitalize()
self.auto_nssc_fixed_lb_menu = select_option_menu.select_option_menu(self.frame,
"",
["False", "True"],
default_nssc_flb)
Label(self.frame, text="NSSC Auto Fixed Load Breaks : ", width=30, anchor=W).grid(row=12, column=0, padx=2)
self.auto_nssc_fixed_lb_menu.frame.grid(row=12, column=1, sticky='w')

# Create 486 start menu.
nml_mode_486 = self.cl.get_clstart()['CLNINPUT']['DFMODE'][0]
default_mode_486 = nml_mode_486.replace("'", "").strip().lower()
if self.cl_num > 1:
default_mode_486 = 'reopen'
self.start_mode_486_menu = select_option_menu.select_option_menu(self.frame,
"",
["reopen", "closeout", "initial"],
default_mode_486)
Label(self.frame, text="486 Start Mode : ", width=30, anchor=W).grid(row=13, column=0, padx=2)
self.start_mode_486_menu.frame.grid(row=13, column=1, sticky='w')

# Create NSSC start menu.
nml_mode_nssc = self.cl.get_clstart()['CLNINPUT']['NSMODE'][0]
default_mode_nssc = nml_mode_nssc.replace("'", "").strip().lower()
if self.cl_num > 1:
default_mode_nssc = 'reopen'
self.start_mode_nssc_menu = select_option_menu.select_option_menu(self.frame,
"",
["reopen", "closeout", "initial"],
default_mode_nssc)
Label(self.frame, text="NSSC Start Mode : ", width=30, anchor=W).grid(row=14, column=0, padx=2)
self.start_mode_nssc_menu.frame.grid(row=14, column=1, sticky='w')

# Create QBF initialization menu
qbf_initial = self.cl.get_clstart()['CLNINPUT']['QBF_INITIAL'][0]
if qbf_initial.upper() in ('.T.', '.TRUE.'):
default_qbf_initial = 'True'
else:
default_qbf_initial = 'False'
self.qbf_initial_menu = select_option_menu.select_option_menu(self.frame,
"",
["True", "False"],
default_qbf_initial)
Label(self.frame, text="Initialize QBUF slots and buffers: ", width=30, anchor=W).grid(row=15, column=0, padx=2)
self.qbf_initial_menu.frame.grid(row=15, column=1, sticky='w')

# Create an intercept type menu
intercept_type = self.cl.get_clstart()['CLNINPUT']['INTERCEPT_486TYPE'][0]
if intercept_type.upper() == "'REBUILD'":
default_intercept_type = 'Rebuild'
elif intercept_type.upper() == "'PATCH'":
default_intercept_type = 'Patch'
else:
default_intercept_type = ' '
self.intercept_type_menu = select_option_menu.select_option_menu(self.frame,
"",
["Rebuild", "Patch", " "],
default_intercept_type)
Label(self.frame, text='486 Intercept Type: ', width=30, anchor=W).grid(row=16, column=0, padx=2)
self.intercept_type_menu.frame.grid(row=16, column=1, sticky='w')

# Create load break menu
self.load_break_menu = cl_break_selection_menu.cl_break_selection_menu(self.frame,
self.cl,
default_starttime,
default_endtime)
self.load_break_menu.frame.grid(row=17, column=0, sticky='n', columnspan=2, pady=5)

def execute(self, result='OK'):
if result == 'OK' and self.ok_command:
self.save_selections()
self.ok_command(self.cl_num, self.cl)
self.dialog.deactivate(result)

def save_selections(self):
if self.outdir_entry:
self.cl.set_output_directory(self.outdir_entry.get_entry())
self.cl.set_begin_time(self.begin_time_entry.get())
self.cl.set_end_time(self.end_time_entry.get())
self.cl.get_clstart().set_value(CLNAMELIST, 'CLREVISION', ["'%s'" % self.revision_letter_menu.get_value().upper()])
self.cl.get_clstart().set_value(CLNAMELIST, 'AUTOFLB', [".%s." % self.auto_486_fixed_lb_menu.get_value().upper(),
".%s." % self.auto_nssc_fixed_lb_menu.get_value().upper()])
self.cl.get_clstart().set_value(CLNAMELIST, 'DFMODE', ["'%s'" % self.start_mode_486_menu.get_value().upper()])
self.cl.get_clstart().set_value(CLNAMELIST, 'NSMODE', ["'%s'" % self.start_mode_nssc_menu.get_value().upper()])
self.cl.get_clstart().set_value(CLNAMELIST, 'QBF_INITIAL', [".%s." % self.qbf_initial_menu.get_value().upper()])
self.cl.get_clstart().set_value(CLNAMELIST, 'INTERCEPT_486TYPE', ["'%s'" % self.intercept_type_menu.get_value().upper()])
self.load_break_menu.update_cl_edit_namelist()
if self.verbose:
print "in cl_paramaters_input.save_selections"
print "self.cl.get_begin_time() =", self.cl.get_begin_time()

if __name__ == '__main__':
root = Tix.Tk()
dialog = cl_parameters_input(root)
dialog.dialog.activate()
root.mainloop()