def close(self): # Delete star list information print("Deleting star list information...") self.master.starListDim = 0 self.master.refName = None self.master.refPose = None self.master.refButton.configure(state=tk.DISABLED) self.master.refLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.master.refEntry, tk.DISABLED) self.master.curRefLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.master.curRefEntry, tk.DISABLED) # Close star list window print("Closing star list window...") self.master.starListWindow = None self.destroy() return
def remove_star(self, record_to_remove): print("REMOVE STAR") index_to_remove = record_to_remove - 1 name_to_remove = self.starListWindow.starEntries[index_to_remove].get() # Check if the star to remove is the reference star if is_standard( name_to_remove) and self.curRefEntry.get() == name_to_remove: print("Removing reference information...") self.curRefLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.curRefEntry) self.starListWindow.refLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.starListWindow.refEntry) self.starListWindow.refPoseLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.starListWindow.refPoseEntry, tk.DISABLED) self.starListWindow.removeButtons.pop(index_to_remove).destroy() self.starListWindow.starEntries.pop(index_to_remove).destroy() self.starListWindow.posesEntries.pop(index_to_remove).destroy() self.starListWindow.flatEntries.pop(index_to_remove).destroy() self.starListWindow.neonEntries.pop(index_to_remove).destroy() self.starListWindow.darkEntries.pop(index_to_remove).destroy() self.starListWindow.standardEntries.pop(index_to_remove).destroy() self.starListDim -= 1 if self.starListDim == 0: self.refButton.configure(state=tk.DISABLED) self.refLabel.configure(state=tk.DISABLED) self.refEntry.configure(state=tk.DISABLED) print("Closing star list window...") self.starListWindow.destroy() self.starListWindow = None print("Star removed correctly") return for i in range(index_to_remove, self.starListDim): new_row = self.starListWindow.starEntries[i].grid_info().get( "row") - 1 self.starListWindow.removeButtons[i].configure( command=lambda to_remove=new_row: self.remove_star(to_remove)) self.starListWindow.removeButtons[i].grid(row=new_row) self.starListWindow.starEntries[i].grid(row=new_row) self.starListWindow.posesEntries[i].grid(row=new_row) self.starListWindow.flatEntries[i].grid(row=new_row) self.starListWindow.neonEntries[i].grid(row=new_row) self.starListWindow.darkEntries[i].grid(row=new_row) self.starListWindow.standardEntries[i].grid(row=new_row) # Resize star list window self.starListWindow = resized_window(self.starListWindow, self.starListDim, STARL_EN_HG) print("Star removed correctly") return
def select_ref(self): print("SELECT REF") # Check ref name print("Checking inserted name...") ref_name = rm_spaces(self.refEntry.get()) if not ref_name: print("Error: insert a star name!") mtk.entry_err_blink(self.refEntry) return for i in range(0, self.starListDim): if ref_name != self.starListWindow.starEntries[i].get(): continue # Set reference star print("Setting the reference star...") self.refName = ref_name mtk.clear_Entry(self.refEntry) self.curRefLabel.configure(state=tk.NORMAL) mtk.clear_Entry(self.curRefEntry, tk.NORMAL) self.curRefEntry.insert(0, ref_name) self.curRefEntry.configure(state="readonly") self.starListWindow.refLabel.configure(state=tk.NORMAL) mtk.clear_Entry(self.starListWindow.refEntry, tk.NORMAL) self.starListWindow.refEntry.insert(0, ref_name) self.starListWindow.refEntry.configure(state="readonly") self.starListWindow.refPoseLabel.configure(state=tk.NORMAL) self.starListWindow.refPoseEntry.configure(state=tk.NORMAL) print("Reference star set successfully") return print("Error: invalid reference star name!") mtk.entry_err_blink(self.refEntry) return
def restart(self): print("RESTART") # Close all the other windows (if there are) if not (self.starListWindow is None): self.starListWindow.destroy() self.starListWindow = None if not (self.masterListWindow is None): self.masterListWindow.destroy() self.masterListWindow = None if not (self.synWindow is None): self.synWindow.destroy() self.synWindow = None # Delete information about the previous session self.wsPath = "" self.starList = [] self.starListDim = 0 self.refName = None self.refPose = None self.masterListDim = 0 self.masterFlag = False self.wsButton.configure(state=tk.NORMAL) self.wsLabel.configure(state=tk.NORMAL) mtk.clear_Entry(self.wsEntry) self.starButton.configure(state=tk.DISABLED) self.starLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.starEntry, tk.DISABLED) self.refButton.configure(state=tk.DISABLED) self.refLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.refEntry, tk.DISABLED) self.curRefLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.curRefEntry) self.specLabel.configure(state=tk.DISABLED) self.specOptions.configure(state=tk.DISABLED) self.addSpecButton.configure(state=tk.DISABLED) self.modSpecButton.configure(state=tk.DISABLED) self.delSpecButton.configure(state=tk.DISABLED) self.synButton.configure(state=tk.DISABLED) self.darkButton.configure(state=tk.DISABLED) self.darkPosesLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.darkPosesEntry, tk.DISABLED) self.darkTimeLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.darkTimeEntry, tk.DISABLED) self.biasButton.configure(state=tk.DISABLED) self.biasPosesLabel.configure(state=tk.DISABLED) mtk.clear_Entry(self.biasPosesEntry, tk.DISABLED) return
def add_master(self, master_type): print("ADD MASTER (" + master_type + ")") bias_flag = (master_type == BIAS) err_flag = False if bias_flag: print("Checking inserted bias poses value...") poses_entry = self.biasPosesEntry else: print("Checking inserted dark poses and time values...") poses_entry = self.darkPosesEntry time_entry = self.darkTimeEntry master_time = rm_spaces(time_entry.get()) print("Checking master time...") if not str_is_positive_int(master_time): print("Error: invalid master time value!") err_flag = True else: master_time = int(master_time) if not (self.masterListWindow is None): for i in range(0, self.masterListDim): if self.masterListWindow.typeEntries[i].get() == BIAS: continue i_time = int( self.masterListWindow.timeEntries[i].get()) if master_time == i_time: print( "Error: master dark with such pose time already exists!" ) err_flag = True break master_poses = rm_spaces(poses_entry.get()) print("Checking master poses...") if not str_is_positive_int(master_poses): print("Error: invalid master poses value!") err_flag = True else: master_poses = int(master_poses) if err_flag: mtk.entry_err_blink(poses_entry) if master_type == DARK: mtk.entry_err_blink(time_entry) return mtk.clear_Entry(poses_entry) if bias_flag: self.biasButton.configure(state=tk.DISABLED) self.biasPosesLabel.configure(state=tk.DISABLED) self.biasPosesEntry.configure(state=tk.DISABLED) else: mtk.clear_Entry(time_entry) self.masterListDim += 1 self.masterFlag = True if self.masterListWindow is None: # Open dark list window print("Opening master list window...") self.masterListWindow = MasterListWindow() list_dim = self.masterListDim list_frame = self.masterListWindow.listFrame print("Adding the master to the list...") new_remove_button = mtk.make_Button( list_frame, text="-", row=list_dim, pady=1, command=lambda to_remove=list_dim: self.remove_master(to_remove)) self.masterListWindow.removeButtons.append(new_remove_button) new_type_entry = mtk.make_Entry(list_frame, text=master_type, row=list_dim, column=1, padx=2, width=6, sticky=tk.EW, state="readonly") self.masterListWindow.typeEntries.append(new_type_entry) new_poses_entry = mtk.make_Entry(list_frame, text=master_poses, row=list_dim, column=2, padx=2, width=6, sticky=tk.EW, state="readonly") self.masterListWindow.posesEntries.append(new_poses_entry) new_time_entry = mtk.make_Entry(list_frame, row=list_dim, column=3, padx=2, width=6, sticky=tk.EW) if bias_flag: new_time_entry.configure(state=tk.DISABLED) else: new_time_entry.insert(0, master_time) new_time_entry.configure(state="readonly") self.masterListWindow.timeEntries.append(new_time_entry) # Resize master list window self.masterListWindow = resized_window(self.masterListWindow, list_dim, MASTERL_EN_HG) print("New master added successfully") return
def add_star(self): print("ADD STAR") # Check star name print("Checking inserted name...") star_name = rm_spaces(self.starEntry.get()) mtk.clear_Entry(self.starEntry) if not star_name: print("Error: insert a star name!") mtk.entry_err_blink(self.starEntry) return elif self.starListWindow is None: # Open star list window print("Opening star list window...") self.starListWindow = StarListWindow() self.refButton.configure(state=tk.NORMAL) self.refLabel.configure(state=tk.NORMAL) self.refEntry.configure(state=tk.NORMAL) else: for i in range(0, self.starListDim): i_star = self.starListWindow.starEntries[i].get() if star_name == i_star: print("Error: star is already in the list!") mtk.entry_err_blink(self.starEntry) return mtk.clear_Entry(self.starEntry) self.starListDim += 1 list_dim = self.starListDim list_frame = self.starListWindow.listFrame # Add new record on the star list window print("Adding a new record on the star list window...") new_remove_button = mtk.make_Button( list_frame, text="-", row=list_dim, pady=1, command=lambda to_remove=list_dim: self.remove_star(to_remove)) self.starListWindow.removeButtons.append(new_remove_button) new_star_entry = mtk.make_Entry(list_frame, text=star_name, row=list_dim, column=1, padx=2, width=20, sticky=tk.EW, state="readonly") self.starListWindow.starEntries.append(new_star_entry) new_pose_entry = mtk.make_Entry(list_frame, row=list_dim, column=2, width=6, sticky=tk.EW) self.starListWindow.posesEntries.append(new_pose_entry) new_flat_entry = mtk.make_Entry(list_frame, text=5, row=list_dim, column=3, width=6, sticky=tk.EW) self.starListWindow.flatEntries.append(new_flat_entry) new_neon_entry = mtk.make_Entry(list_frame, text=3, row=list_dim, column=4, width=6, sticky=tk.EW) self.starListWindow.neonEntries.append(new_neon_entry) new_dark_entry = mtk.make_Entry(list_frame, row=list_dim, column=5, width=6, sticky=tk.EW) self.starListWindow.darkEntries.append(new_dark_entry) new_standard_entry = mtk.make_Entry(list_frame, row=list_dim, column=6, width=10, sticky=tk.EW) if is_standard(star_name): new_standard_entry.configure(state=tk.DISABLED) self.starListWindow.standardEntries.append(new_standard_entry) # Resize star list window self.starListWindow = resized_window(self.starListWindow, self.starListDim, STARL_EN_HG) print("New star added successfully") return