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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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
Exemple #6
0
    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