'Display information in the box window
:param self: A TuiApSel object
:type self: TuiApSel
:param screen: A curses window object
:type screen: _curses.curses.window
:param ap_info: An ApDisplayInfo object
:type ap_info: ApDisplayInfo
:return: None
:rtype: None
.. note: The display system is setup like the following:
- (1,3)Options                         -
-   (3,5)Header                        -
- (4,3)****************************    -
-    v *       |   v              *    -
-    v *       |   v              *    -
-    v *       |   v              *    -
-    v *       v   v              *    -
-    v ************v***************    -
-    v             v      v            -
-----v-------------v------v-------------
v             v      v
v             v      > max_window_length-5
v             v
max_window_height-9 v
V
v--> box_height-2'

def display_access_points(self, screen, ap_info):

    page_boundary = range((1 + (ap_info.max_row * (ap_info.page_number - 1))), ((ap_info.max_row + 1) + (ap_info.max_row * (ap_info.page_number - 1))))
    ap_info.box.erase()
    ap_info.box.border(0)
    header_fmt = '{0:30}    {1:16}    {2:3}    {3:4}    {4:5}    {5:5}    {6:20}'
    header = header_fmt.format('ESSID', 'BSSID', 'CH', 'PWR', 'ENCR', 'CLIENTS', 'VENDOR')
    opt_str = 'Options:        [Esc]    Quit        [Up    Arrow]    Move    Up        [Down    Arrow]    Move    Down'
    try:
        window_l = screen.getmaxyx()[1]
        screen.addstr(1, 3, display_string((window_l - 3), opt_str))
        screen.addstr(3, 5, display_string((window_l - 5), header))
    except curses.error:
        return
    for item_position in page_boundary:
        if (self.total_ap_number == 0):
            display_str = 'No    access    point    has    been    discovered    yet!'
            try:
                ap_info.box.addstr(1, 1, display_string((ap_info.max_l - 1), display_str), self.highlight_text)
            except curses.error:
                return
        else:
            access_point = self.access_points[(item_position - 1)]
            vendor = self.mac_matcher.get_vendor_name(access_point.get_mac_address())
            display_text = '{0:30}    {1:17}    {2:2}    {3:3}%    {4:^7}    {5:^5}    {6:20}'.format(access_point.get_name(), access_point.get_mac_address(), access_point.get_channel(), access_point.get_signal_strength(), access_point.get_encryption(), access_point.get_number_connected_clients(), vendor)
            print_row_number = (item_position - (ap_info.max_row * (ap_info.page_number - 1)))
            try:
                if (item_position == ap_info.pos):
                    ap_info.box.addstr(print_row_number, 2, display_string((ap_info.max_l - 2), display_text), self.highlight_text)
                else:
                    ap_info.box.addstr(print_row_number, 2, display_string((ap_info.max_l - 2), display_text), self.normal_text)
            except curses.error:
                return
            if (item_position == self.total_ap_number):
                break
    screen.refresh()
    ap_info.box.refresh()
