Overseer partly worked
This commit is contained in:
parent
c5f2da169a
commit
9c0b9a27a7
10
forms.py
10
forms.py
@ -10,6 +10,10 @@ ID_DUPLICATE_MODEL = wx.NewId()
|
||||
ID_DELETE_MODEL = wx.NewId()
|
||||
ID_PROCESS_MODEL = wx.NewId()
|
||||
|
||||
class MyTreeListCtrl(wx.gizmos.TreeListCtrl):
|
||||
def Refresh(self, erase, rect):
|
||||
wx.gizmos.TreeListCtrl.Refresh(False, rect)
|
||||
|
||||
class MainFrame (wx.Frame):
|
||||
|
||||
def __init__(self, parent):
|
||||
@ -27,8 +31,10 @@ class MainFrame (wx.Frame):
|
||||
bSizer4 = wx.BoxSizer(wx.VERTICAL)
|
||||
|
||||
self.m_user_models = wx.gizmos.TreeListCtrl(self,
|
||||
style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_EDIT_LABELS)
|
||||
self.m_user_models.SetMinSize(wx.Size(-1,200))
|
||||
#self.m_user_models = MyTreeListCtrl(self,
|
||||
#self.m_user_models = wx.TreeCtrl(self,
|
||||
style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_EDIT_LABELS | wx.TR_ROW_LINES)
|
||||
self.m_user_models.SetMinSize(wx.Size(-1, 200))
|
||||
self.m_user_models.AddColumn("Model name")
|
||||
self.m_user_models.AddColumn("Status")
|
||||
self.m_user_models.AddColumn("Progress")
|
||||
|
62
opal.py
62
opal.py
@ -64,47 +64,41 @@ class MainFrame(forms.MainFrame):
|
||||
self.server.Stop()
|
||||
self.Destroy()
|
||||
|
||||
# todo1 вменяемый цикл обхода!
|
||||
def Overseer(self):
|
||||
|
||||
def SeeTheItem(item):
|
||||
um = self.m_user_models
|
||||
md = um.GetPyData(item)
|
||||
print um.GetItemText(item)
|
||||
job = md.job
|
||||
if job:
|
||||
t = os.path.basename(job.taskd.execpath)
|
||||
p = job.percent * 100
|
||||
print t, p
|
||||
um.SetItemText(item, '{}: {:.2F}%'.format(t, p), 1)
|
||||
|
||||
child, cookie = um.GetFirstChild()
|
||||
while child.IsOk():
|
||||
SeeTheItem(child)
|
||||
child, cookie = um.GetNextChild(child, cookie)
|
||||
|
||||
#try:
|
||||
server = self.server
|
||||
try:
|
||||
while True:
|
||||
print 'cycle'
|
||||
um = self.m_user_models
|
||||
item = um.GetFirstVisibleItem()
|
||||
SeeTheItem(item)
|
||||
if True:
|
||||
wx.MutexGuiEnter()
|
||||
#print '-- cycle --'
|
||||
um = self.m_user_models
|
||||
#um.Freeze()
|
||||
item = um.GetRootItem()
|
||||
while item.IsOk():
|
||||
md = um.GetPyData(item)
|
||||
job = md.job if md else None
|
||||
if job and job.IsRunning():
|
||||
t = os.path.basename(job.taskd.execpath)
|
||||
p = job.percent * 100
|
||||
#print t, p
|
||||
um.SetItemText(item, str(job.GetState()), 1)
|
||||
um.SetItemText(item, '{}: {:.2F}%'.format(t, p), 2)
|
||||
item = um.GetNext(item)
|
||||
#um.Thaw()
|
||||
wx.MutexGuiLeave()
|
||||
time.sleep(0.5)
|
||||
#except:
|
||||
# pass
|
||||
except Exception, e:
|
||||
print 'Error in overseer: ', e
|
||||
|
||||
def NewProject(self, project):
|
||||
# 1. загрузить спецификации модели
|
||||
# 2. создать одну модель по умолчанию
|
||||
model = project
|
||||
um = self.m_user_models
|
||||
root = um.AddRoot('')
|
||||
root = um.AddRoot('Root')
|
||||
data = task.DataDefinition(model)
|
||||
|
||||
child = um.AppendItem(root, 'Default')
|
||||
um.SetPyData(child, data)
|
||||
um.SetItemText(child, '234', 1)
|
||||
|
||||
def SelectUserModel(self, model_def):
|
||||
|
||||
@ -169,6 +163,7 @@ class MainFrame(forms.MainFrame):
|
||||
md[param] = value
|
||||
|
||||
def OnTest(self, event):
|
||||
|
||||
um = self.m_user_models
|
||||
id = um.GetSelection()
|
||||
md = um.GetItemPyData(id)
|
||||
@ -184,19 +179,10 @@ class MainFrame(forms.MainFrame):
|
||||
md = um.GetItemPyData(id)
|
||||
child = um.AppendItem(parent, title + ' Copy')
|
||||
um.SetPyData(child, md.Copy())
|
||||
self.SetStatusText('Copy for "{}" created'.format(title), 0)
|
||||
|
||||
def OnIdle(self, event):
|
||||
## server = self.server
|
||||
## self.m_job_list.Freeze()
|
||||
## self.m_job_list.Clear()
|
||||
## with server.queue_lock:
|
||||
## for j in server.jobs_queue:
|
||||
## t = os.path.dirname(j.taskd.execpath)
|
||||
## p = j.percent * 100.0
|
||||
## self.m_job_list.Append('{}: {:.2}%'.format(t, p))
|
||||
## self.m_job_list.Thaw()
|
||||
pass
|
||||
#time.sleep(1)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Приложение
|
||||
|
@ -184,6 +184,7 @@ class Job:
|
||||
self.comment = ''
|
||||
self.result = None
|
||||
self.proc = None
|
||||
self.client_data = None
|
||||
|
||||
def ProcessMsg(self, msg):
|
||||
# разбираем полученный ответ
|
||||
|
@ -79,7 +79,7 @@ def main():
|
||||
while l <= r:
|
||||
y = sin_taylor(l, d)
|
||||
res.append([l, y])
|
||||
write(answer(round(l / r, 2)))
|
||||
write(answer(l / r))
|
||||
l += h
|
||||
time.sleep(0.2)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user