90 lines
1.8 KiB
Python
90 lines
1.8 KiB
Python
# Python imports
|
|
from random import randint
|
|
|
|
|
|
# Lib imports
|
|
|
|
|
|
# Application imports
|
|
from .views.view import View
|
|
|
|
|
|
class Window:
|
|
def __init__(self):
|
|
self._id_length = 10
|
|
self._id = ""
|
|
self._name = ""
|
|
self._nickname = ""
|
|
self._isHidden = False
|
|
self._views = []
|
|
|
|
self._generate_id()
|
|
self._set_name()
|
|
|
|
|
|
def create_view(self):
|
|
view = View()
|
|
self._views.append(view)
|
|
return view
|
|
|
|
def pop_view(self):
|
|
self._views.pop()
|
|
|
|
def delete_view_by_id(self, vid):
|
|
for view in self._views:
|
|
if view.get_id() == vid:
|
|
self._views.remove(view)
|
|
break
|
|
|
|
|
|
def get_view_by_id(self, vid):
|
|
for view in self._views:
|
|
if view.get_id() == vid:
|
|
return view
|
|
|
|
def get_view_by_index(self, index):
|
|
return self._views[index]
|
|
|
|
def get_views_count(self):
|
|
return len(self._views)
|
|
|
|
def get_all_views(self):
|
|
return self._views
|
|
|
|
def list_files_from_views(self):
|
|
for view in self._views:
|
|
print(view.get_files())
|
|
|
|
|
|
def get_id(self):
|
|
return self._id
|
|
|
|
def get_name(self):
|
|
return self._name
|
|
|
|
def get_nickname(self):
|
|
return self._nickname
|
|
|
|
def is_hidden(self):
|
|
return self._isHidden
|
|
|
|
|
|
|
|
|
|
def set_nickname(self, nickname):
|
|
self._nickname = f"{nickname}"
|
|
|
|
def set_is_hidden(self, state):
|
|
self._isHidden = f"{state}"
|
|
|
|
def _set_name(self):
|
|
self._name = "window_" + self.get_id()
|
|
|
|
def _random_with_N_digits(self, n):
|
|
range_start = 10**(n-1)
|
|
range_end = (10**n)-1
|
|
return randint(range_start, range_end)
|
|
|
|
def _generate_id(self):
|
|
self._id = str(self._random_with_N_digits(self._id_length))
|