class SL_creator(Frame): def __init__(self, parent): Frame.__init__(self) self.parent = parent self.variable = StringVar(self) self.v = StringVar(self) self.level = StringVar(self) self.angle = StringVar(self) self.initUI() def initUI(self): self.parent.title("Social Link Creator") self.grid(row=0, column=0) Style().configure("TButton", padding=(0, 5, 0, 5), background='WhiteSmoke') list = json_reader.data_list("arcanas") self.variable.set("Select Arcana") w = OptionMenu(self, self.variable, *list, command=self.showText) w.grid(row=0, column=1) select = Button(self, text="Select", command=self.context) select.grid(row=1, column=1) back = Button(self, text="Back", command=self.back) back.grid(row=2, column=1) self.v.set("") self.text = Label(self, textvariable=self.v, wraplength=500) self.text.grid(row=0, column=0, rowspan=3) def context(self): if self.variable.get() == "Select Arcana": return levs = [] for x in range(1, 11): levs.append("Level " + str(x)) self.level.set(levs[0]) self.levelOM = OptionMenu(self, self.level, *levs) self.levelOM.grid(row=1, column=2, columnspan=2) self.angs = [] try: tempLink = json_reader.readLink(self.variable.get()) print tempLink print self.variable.get() for decon in tempLink["cutscenes"]: self.angs.append("Angle " + str(decon)[str(decon).index("_") + 1:]) except: pass if not self.angs: self.angs.append("No angles") self.angle.set(self.angs[0]) self.angleOM = OptionMenu(self, self.angle, *self.angs) self.angleOM.grid(row=2, column=2, columnspan=2) self.addAngB = Button(self, text="Add Angle", command=self.addAngle) self.addAngB.grid(row=3, column=2) self.newAng = Text(self, height=1, width=5) self.newAng.grid(row=3, column=3) self.go = Button(self, text="Go", command=self.begin) self.go.grid(row=4, column=2, columnspan=2) def addAngle(self): try: (int)(self.newAng.get(1.0, END)) if self.angs[0] == "No angles": self.angleOM["menu"].delete(0, "end") self.angleOM["menu"].add_command( label="Angle " + self.newAng.get(1.0, END), command=Tkinter._setit( self.angle, ("Angle " + self.newAng.get(1.0, END)).replace("\n", ""))) self.angle.set( ("Angle " + self.newAng.get(1.0, END)).replace("\n", "")) self.newAng.delete(1.0, END) except: popup("The Angle must be an integer", "Critical") print "Angle must be an integer" def showText(self, somthing): self.v.set(json_reader.readArcDesc(self.variable.get())) self.destroyContext() def destroyContext(self): try: self.levelOM.destroy() self.angleOM.destroy() self.addAngB.destroy() self.newAng.destroy() self.go.destroy() except: pass def begin(self): if self.angle.get() == "No angles": popup( "An Angle must be selected.\nCreate angles by entering a number in the text box below and clicking \"Add Angle\"", "Critical") return enter_level = self.level.get()[self.level.get().index(" ") + 1:] print enter_level enter_angle = self.angle.get()[self.angle.get().index(" ") + 1:] print enter_angle print "Entered SL creation mode for arcana " + self.variable.get() self.parent.withdraw() self.destroyContext() sl = slgui.SLFrame(self.parent, self.variable.get(), (int)(enter_level), (int)(enter_angle)) def back(self): print "Returned to main screen" app = Base(self.parent) self.destroy()
class A_DWI: def __init__(self, container, frame, label='', text='', row=0, column=0): self.container = container self.is_b0 = BooleanVar(container.parent) self.is_dw = BooleanVar(container.parent) self.column = column self.direction = StringVar(container.parent) self.label_from = Label(frame, text='from') self.text_from = Entry(frame) self.text_from.insert(0, text) self.button_file_from = Button(frame, text='...', command=lambda:filenameDialog_text(self.text_from)) self.button_rm = Button(frame, text='remove', command=self.click_remove) self.radio_ap = Radiobutton(frame, text='AP', variable=self.direction, value='AP', command=self.set_direction) self.radio_pa = Radiobutton(frame, text='PA', variable=self.direction, value='PA', command=self.set_direction) self.label_to = Label(frame, text='to') self.text_to = Entry(frame) #self.text_to.insert(0, text) self.button_file_to = Button(frame, text='Gen', command=self.set_filename_to) self.check_b0 = Checkbutton(frame, text='B0', variable=self.is_b0) self.check_dw = Checkbutton(frame, text='DWI', variable=self.is_dw) self.button_up = Button(frame, text='up', width=3, command=self.click_up) self.button_dn = Button(frame, text='down', width=3, command=self.click_dn) self.row = -1 self.change_row(row) if text != '': self.set_appa() self.set_filename_to() def prefix(self): return self.container.parent.prefix() def set_direction(self): pass def get_dwi_filenames(self): ''' :return: [('from', 'to'), ('from', 'to')] ''' filename_from = self.text_from.get() filename_to = self.text_to.get() if self.is_dw.get(): rtn = [ [filename_from, filename_to] ] filename_b_from = filename_wo_ext(filename_from) filename_b_to = filename_wo_ext(filename_to) rtn.append( [filename_b_from+'.bval', filename_b_to+'.bval'] ) rtn.append( [filename_b_from+'.bvec', filename_b_to+'.bvec'] ) return rtn return [] def get_b0_filename(self): ''' :return: [('from', 'to')] ''' filename_from = self.text_from.get() filename_to = self.text_to.get() ext = extname(filename_to) if self.is_b0.get(): if self.is_dw.get(): filename_to = '%s_B0%s' % (filename_wo_ext(filename_to), ext) return [ [filename_from, filename_to] ] return [] def set_appa(self): filename_from = self.text_from.get() basename_from = os.path.basename(filename_from) basename_b_from = filename_wo_ext(basename_from) if 'pa' in basename_b_from.lower(): self.direction.set('PA') elif 'ap' in basename_b_from.lower(): self.direction.set('AP') else: pass def set_filename_to(self, middle=None): filename_from = self.text_from.get() basename_from = os.path.basename(filename_from) number = os.path.dirname(filename_from).split('/')[-1].split('_')[0] if number == '': number = str(self.row) else: try: int(number) except: number = str(self.row) ext = extname(basename_from) intermediate = self.direction.get() if intermediate == '': intermediate = 'DWI' if self.is_b0.get() and not self.is_dw.get(): intermediate += '_B0' self.text_to.delete(0, len(self.text_to.get())) self.text_to.insert(0, '%s%s_%s%s' % (self.prefix(), number, intermediate, ext)) def change_row(self, row): if self.row == row: return self.row = row i = 2*row j = self.column j += 0; self.button_up.grid(row=i, column=j) j += 1; self.label_from.grid(row=i, column=j) j += 1; self.text_from.grid(row=i, column=j, sticky=EW) j += 1; self.button_file_from.grid(row=i, column=j) j += 1; self.button_rm.grid(row=i, column=j) j += 1; self.radio_ap.grid(row=i, column=j) j += 1; self.radio_pa.grid(row=i, column=j) i += 1 j = 0 j += 0; self.button_dn.grid(row=i, column=j) j += 1; self.label_to.grid(row=i, column=j) j += 1; self.text_to.grid(row=i, column=j, sticky=EW) j += 1; self.button_file_to.grid(row=i, column=j) j += 1 j += 1; self.check_b0.grid(row=i, column=j) j += 1; self.check_dw.grid(row=i, column=j) def click_remove(self): self.container.remove(self.row) self.button_up.destroy() self.label_from.destroy() self.text_from.destroy() self.button_file_from.destroy() self.button_rm.destroy() self.radio_ap.destroy() self.radio_pa.destroy() self.button_dn.destroy() self.label_to.destroy() self.text_to.destroy() self.button_file_to.destroy() self.check_b0.destroy() self.check_dw.destroy() def click_up(self): self.container.up(self.row) def click_dn(self): self.container.dn(self.row)