Overseer partly worked

This commit is contained in:
anwinged 2012-04-19 12:09:04 +00:00
parent c5f2da169a
commit 9c0b9a27a7
4 changed files with 34 additions and 41 deletions

View File

@ -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
View File

@ -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)
#-----------------------------------------------------------------------------
# Приложение

View File

@ -184,6 +184,7 @@ class Job:
self.comment = ''
self.result = None
self.proc = None
self.client_data = None
def ProcessMsg(self, msg):
# разбираем полученный ответ

View File

@ -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)