31 from RtmCompData
import *
32 from RtmDialog
import *
42 for item_name, handler
in menulist:
43 if item_name ==
"---":
44 self.menu.AppendSeparator()
48 self.menu.AppendMenu(new_id, item_name, sm)
51 self.parent.Bind(wx.EVT_MENU, handler, id=new_id)
52 item = wx.MenuItem(self.
menu, new_id, item_name)
53 self.menu.AppendItem(item)
56 """メニューを取得する
[引数]
void
[戻り値]
self.menu -- メニューオブジェクト
62 self.menu -- メニューオブジェクト 67 """カレントのツリーItemIDををセットする
[引数]
item -- ItemID
[戻り値]
void
78 test_id = self.parent.tree.GetItemText(self.
item)
79 fullpath = self.parent.makeFullPath(self.
item)
81 item = self.parent.tree.GetItemParent(self.
item)
82 parent_path = self.parent.makeFullPath(item)
84 cxt_obj = self.parent.myDict.GetObjRefToFullpath(parent_path)
86 cxt_obj = self.parent.nshelper.root_cxt
88 cxt_obj = self.parent.nshelper.root_cxt
89 bname = self.parent.myDict.GetBindingNameToFullpath(fullpath)
90 self.parent.nshelper.DeleteToContext(cxt_obj,bname)
93 test_id = self.parent.tree.GetItemText(self.
item)
94 fullpath = self.parent.makeFullPath(self.
item)
95 mod_name = self.parent.myDict.GetCompName(fullpath)
96 cate_name = self.parent.myDict.GetCateName(fullpath)
98 print 'cate_cxt search error!!' 100 mgrpath = self.parent.searchManagerPath(self.
item)
102 print 'RTCManager object-ref search error!!' 105 objref = self.parent.myDict.GetObjRefToFullpath(mgrpath)
107 objref._narrow(RTM.RTCManager)
109 (ret,ret_str) = objref.create_component(mod_name, cate_name)
116 """コンポーネントItemポップアップクラス""" 118 menulist = [(
"Start", self.
OnStart),
128 return RtmPopup.__init__(self, parent, menulist)
131 """現在のItemIdからFullPathを生成 139 ret = self.parent.tree.GetItemText(self.
item)
144 tmp_id = self.parent.tree.GetItemParent(cur_id)
147 name = self.parent.tree.GetItemText(tmp_id)
151 ret = name +
'/' + ret
156 """コンポーネントをrtc_start()させる [引数]
event -- Event, 使用していない
[戻り値]
void
158 event -- Event, 使用していない 166 ret = self.parent.myDict.TreeListCompStart(fullpath)
167 if (ret != RTM.RTM_OK):
175 """コンポーネントをrtc_stop()させる [引数]
event -- Event, 使用していない
[戻り値]
void
177 event -- Event, 使用していない 184 ret = self.parent.myDict.TreeListCompStop(fullpath)
188 """コンポーネントをrtc_reset()させる [引数]
event -- Event, 使用していない
[戻り値]
void
190 event -- Event, 使用していない 197 ret = self.parent.myDict.TreeListCompReset(fullpath)
201 """コンポーネントをrtc_exit()させる [引数]
event -- Event, 使用していない
[戻り値]
void
203 event -- Event, 使用していない 210 ret = self.parent.myDict.TreeListCompExit(fullpath)
214 """コンポーネントをrtc_kill()させる [引数]
event -- Event, 使用していない
[戻り値]
void
216 event -- Event, 使用していない 223 ret = self.parent.myDict.TreeListCompKill(fullpath)
228 kind = self.parent.myDict.GetKindToFullpath(fullpath)
230 ref = self.parent.myDict.GetObjRefToFullpath(fullpath)
232 self.parent.frame.profilepanel.RefreshProfile(ref.get_component_profile())
244 """モジュールItemポップアップクラス""" 246 menulist = [(
"Create", self.
OnCreate),
250 return RtmPopup.__init__(self, parent, menulist)
265 """Unknown Itemポップアップクラス""" 267 menulist = [(
"Delete", self.
OnDelete)]
268 return RtmPopup.__init__(self, parent, menulist)
276 """マネージャItemポップアップクラス""" 278 menulist = [(
"Create",
None),
284 return RtmPopup.__init__(self, parent, menulist)
287 tmp_id = self.menu.FindItem(
"Create")
289 item_list = self.menu.GetMenuItems()
291 for item
in item_list:
292 if item.GetId() == tmp_id:
293 sub_menu = item.GetSubMenu()
296 child_items = sub_menu.GetMenuItems()
297 for item
in child_items:
302 mgrpath = self.parent.searchManagerPath(self.
item)
304 print 'RTCManager object-ref search error!!' 307 objref = self.parent.myDict.GetObjRefToFullpath(mgrpath)
309 objref._narrow(RTM.RTCManager)
311 fact_list = objref.factory_list()
315 for item_struct
in fact_list:
316 name = item_struct.name
317 cate = item_struct.category
318 item_name = cate +
'/' + name
320 item = wx.MenuItem(sub_menu, new_id, item_name)
321 sub_menu.AppendItem(item)
322 self.parent.Bind(wx.EVT_MENU, self.
OnCreateSub, id=new_id)
325 item_id= event.GetId()
326 item_name = self.menu.GetLabel(item_id)
327 num = item_name.find(
'/')
328 cate = str(item_name[0:num])
329 name = str(item_name[num+1:])
330 mgrpath = self.parent.searchManagerPath(self.
item)
332 print 'RTCManager object-ref search error!!' 334 objref = self.parent.myDict.GetObjRefToFullpath(mgrpath)
336 objref._narrow(RTM.RTCManager)
338 (ret,ret_str) = objref.create_component(name, cate)
344 mgrpath = self.parent.searchManagerPath(self.
item)
346 print 'RTCManager object-ref search error!!' 348 cate_name = self.parent.searchCategoryName(self.
item)
350 print 'cate_cxt search error!!' 353 objref = self.parent.myDict.GetObjRefToFullpath(mgrpath)
355 objref._narrow(RTM.RTCManager)
357 item_id= event.GetId()
358 item_name = self.menu.GetLabel(item_id)
359 print "item_name:",item_name
361 (ret,ret_str) = objref.create_component(item_name, cate_name)
378 """ネームサーバItemポップアップクラス""" 382 return RtmPopup.__init__(self, parent, menulist)
385 """ネームサーバ接続ダイアログを表示させる [引数]
event -- Event, 使用していない
[戻り値]
void
387 event -- Event, 使用していない 392 self.parent.OnConnectNSClick(
None)
395 """ネーミングツリーをリフレッシュする [引数]
event -- Event, 使用していない
[戻り値]
void
397 event -- Event, 使用していない 403 self.parent.myDict.Mutex.lock(self.parent.Refresh,dummy)
404 self.parent.myDict.Mutex.unlock()
410 def __init__(self, parent, id, pos, size, style, log):
416 pos -- 位置 size -- サイズ
style -- ウインドウスタイル
# wx.TreeCtrl と同じ
[戻り値]
this
418 style -- ウインドウスタイル # wx.TreeCtrl と同じ
[戻り値]
this
425 wx.TreeCtrl.__init__(self, parent, id, pos, size, style)
429 il = wx.ImageList(isz[0], isz[1])
454 self.SetImageList(il)
458 self.
root = self.AddRoot(
"NS:")
459 self.SetPyData(self.
root,
None)
461 wx.TreeItemIcon_Normal)
463 wx.TreeItemIcon_Expanded)
464 self.Expand(self.
root)
465 rootitem_id = self.GetRootItem()
466 self.SelectItem(rootitem_id)
471 """itemの比較
[引数]
item1 -- item1
item2 -- item2
[戻り値]
-1 -- t1 < t2
0 -- t1 = t2
1 -- t1 > t2
482 t1 = self.GetItemText(item1)
483 t2 = self.GetItemText(item2)
484 self.log.WriteText(
'compare: ' + t1 +
' <> ' + t2 +
'\n')
485 if t1 < t2:
return -1
486 if t1 == t2:
return 0
498 rootitem_id = self.GetRootItem()
507 if 'cxt_' == kind[0:4]
or '' == kind
or kind ==
None:
512 if mode == kindCheck
or mode ==
'all' or kind ==
'rtc':
520 """ディクショナリを与えてItemをセット
[引数]
dict -- Item のディクショナリ
[戻り値]
void
523 dict -- Item のディクショナリ
[戻り値]
void
528 rootitem_id = self.GetRootItem()
534 self.DeleteChildren(rootitem_id)
535 self.SelectItem(rootitem_id)
538 """Item をディクショナリから再帰的にセットする
[引数]
item_id -- 現在のレベルのItemのID
dict -- Item の残りのディクショナリ
[戻り値]
void
541 item_id -- 現在のレベルのItemのID 542 dict -- Item の残りのディクショナリ
[戻り値]
void
555 for dict_name
in dict.keys():
557 kind = dict[dict_name][0][
'kind']
561 if dict_name
in items.keys():
565 self.SetPyData(items[dict_name][0], dict[dict_name][0])
566 new_item_id = items[dict_name][0]
569 new_item_id = self.AppendItem(item_id, dict_name)
570 self.SetPyData(new_item_id, dict[dict_name][0])
571 print dict_name +
":", self.
depth 572 if kind
not in self.treeimg_list.keys():
575 self.SetItemImage(new_item_id, self.
treeimg_list[kind][0],
576 wx.TreeItemIcon_Normal)
577 self.SetItemImage(new_item_id, self.
treeimg_list[kind][0],
578 wx.TreeItemIcon_Expanded)
584 if dict[dict_name][1] !=
None and check_disp == 1:
588 for item_name
in items.keys():
589 if item_name
in dict.keys():
590 kind = dict[item_name][0][
'kind']
593 self.DeleteChildren(items[item_name][0])
594 self.Delete(items[item_name][0])
596 self.DeleteChildren(items[item_name][0])
597 self.Delete(items[item_name][0])
601 """現在のItemID以下の子供のIDリストを取得する
[引数]
paren_id -- 現在のレベルのItemID
[戻り値]
items -- 子供のItemのリスト
604 paren_id -- 現在のレベルのItemID 610 if self.ItemHasChildren(parent_id):
611 id, cookie = self.GetFirstChild(parent_id)
612 items.append((id, cookie))
614 for i
in range(self.GetChildrenCount(parent_id,
False) - 1):
615 id, cookie = self.GetNextChild(parent_id, cookie)
616 items.append((id, cookie))
620 """現在のItemID以下の子供のItemTextリストを取得する
[引数]
paren_id -- 現在のレベルのItemID
[戻り値]
items -- 子供のItemTextのリスト
623 paren_id -- 現在のレベルのItemID 626 items -- 子供のItemTextのリスト 629 if self.ItemHasChildren(parent_id):
630 id, cookie = self.GetFirstChild(parent_id)
631 item_names[self.GetItemText(id)] = (id, cookie)
633 for i
in range(self.GetChildrenCount(parent_id,
False) - 1):
634 id, cookie = self.GetNextChild(parent_id, cookie)
635 item_names[self.GetItemText(id)] = (id, cookie)
639 """現在のItemID以下の子供のItemTextを再帰的に表示する
[引数]
item_id -- 現在のレベルのItemID
[戻り値]
void
642 item_id -- 現在のレベルのItemID 648 if self.ItemHasChildren(id):
649 print self.GetItemText(id)
652 print self.GetItemText(id)
657 """ネーミングツリーコントロールのパネルクラス""" 662 frame -- 親フレーム parent -- 親ウインドウ
[戻り値]
this
673 wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS)
674 self.Bind(wx.EVT_SIZE, self.
OnSize)
687 self.tree.Expand(self.tree.GetRootItem())
696 self.tree.SetItemText(self.tree.root,
"NS:"+self.
name_server)
706 self.Bind(wx.EVT_RIGHT_UP, self.
OnRightUp)
707 self.tree.Bind(wx.EVT_TREE_BEGIN_DRAG, self.
OnBeginDrag)
708 self.tree.Bind(wx.EVT_TREE_END_DRAG, self.
OnEndDrag)
712 self.tree.Bind(wx.EVT_RIGHT_UP, self.
OnRightUp)
714 self.tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.
OnSelChanged)
721 thread.start_new_thread(self.
OnRefresh,())
732 """ツリー表示のためのディクショナリを生成 740 rootitem_id = self.tree.GetRootItem()
742 self.myDict.SetObjRefToFullpath(fullpath,
None)
746 """ツリー表示のためのディクショナリを再帰的に生成 748 item_id -- 現在のレベルのItemID 753 for id, cookie
in self.tree.GetChildrenItemIdList(item_id):
754 if self.tree.ItemHasChildren(id):
755 data = self.tree.GetItemData(id)
756 comp = data.GetData()
758 self.myDict.SetObjRefToFullpath(fullpath,comp)
761 data = self.tree.GetItemData(id)
762 comp = data.GetData()
764 self.myDict.SetObjRefToFullpath(fullpath,comp)
767 """ネームサーバのアドレス:ポートをセット
[引数]
name_server -- ネームサーバのアドレス:ポート
[戻り値]
void
770 name_server -- ネームサーバのアドレス:ポート
[戻り値]
void
778 """ネームサーバのアドレス:ポートを取得
[引数]
void
[戻り値]
name_server -- ネームサーバのアドレス:ポート
784 name_server -- ネームサーバのアドレス:ポート 789 """ネームサービスホスト:ポート設定ダイアログを表示 792 event -- Event, 使用していない 797 win =
ConnectDialog(self, -1,
"Naming Server", self.NSHistory.GetNSNames(),size=(400, 200),
799 style = wx.DEFAULT_DIALOG_STYLE
803 val = win.ShowModal()
807 self.tree.SetItemText(self.tree.root,
"NS:"+self.
name_server)
808 self.tree.Expand(self.tree.root)
814 """ネーミングツリーをリフレッシュ ループするので別スレッドから呼ぶべき
[引数]
void
[戻り値]
void
826 self.frame.close_evt.clear()
829 self.myDict.Mutex.lock(self.
Refresh,dummy)
830 self.myDict.Mutex.unlock()
832 self.frame.close_evt.set()
835 """ネーミングツリーをリフレッシュ
[引数]
void
[戻り値]
void
847 self.tree.SetItemByDict(self.nshelper.GetNSDict())
859 """ツリー右クリック時コンテキストメニュー表示 862 event -- イベント
[戻り値]
void
868 pt = event.GetPosition();
869 item, flags = self.tree.HitTest(pt)
872 if self.tree.GetItemText(item) ==
"":
876 fullpath = self.makeFullPath(cur_item)
877 kind = self.myDict.GetKindToFullpath(fullpath)
880 self.names_popup.SetItem(item)
881 self.PopupMenu(self.names_popup.GetMenu(),
883 elif (kind ==
'mgr' or kind ==
'mgr_cxt'):
884 self.manager_popup.SetItem(item)
885 self.manager_popup.SetSubMenu()
886 self.PopupMenu(self.manager_popup.GetMenu(),
888 elif (kind ==
'mod_cxt'):
889 self.module_popup.SetItem(item)
890 self.PopupMenu(self.module_popup.GetMenu(),
892 elif (kind ==
'rtc'):
893 self.comp_popup.SetItem(item)
894 self.PopupMenu(self.comp_popup.GetMenu(),
897 self.unknown_popup.SetItem(item)
898 self.PopupMenu(self.unknown_popup.GetMenu(),
905 self.log.WriteText(
"OnBeginEdit\n")
907 if self.tree.GetItemText(event.GetItem()) ==
"The Root Item":
909 self.log.WriteText(
"You can't edit this one...\n")
913 root = event.GetItem()
914 (child, cookie) = self.tree.GetFirstChild(root)
917 self.log.WriteText(
"Child [%s] visible = %d" %
918 (self.tree.GetItemText(child),
919 self.tree.IsVisible(child)))
920 (child, cookie) = self.tree.GetNextChild(root, cookie)
925 self.log.WriteText(
"OnEndEdit\n")
927 for x
in event.GetLabel():
928 if x
in string.digits:
929 self.log.WriteText(
"You can't enter digits...\n")
934 pt = event.GetPosition();
935 item, flags = self.tree.HitTest(pt)
936 self.log.WriteText(
"OnLeftDClick: %s\n" % self.tree.GetItemText(item))
937 rootitem_id = self.tree.GetRootItem()
938 parent = self.tree.GetItemParent(item)
940 self.tree.SortChildren(parent)
946 w,h = self.GetClientSizeTuple()
947 self.tree.SetDimensions(0, 0, w, h)
950 item = event.GetItem()
951 self.log.WriteText(
"OnItemExpanded: %s\n" % self.tree.GetItemText(item))
954 item = event.GetItem()
955 self.log.WriteText(
"OnItemCollapsed: %s\n" % self.tree.GetItemText(item))
959 self.log.WriteText(
"OnSelChanged: %s\n" % self.tree.GetItemText(self.
item))
960 if wx.Platform ==
'__WXMSW__':
961 self.log.WriteText(
"BoundingRect: %s\n" %
962 self.tree.GetBoundingRect(self.
item,
True))
965 self.
item = event.GetItem()
971 """現在のItemIdからFullPathを生成 980 ret = self.tree.GetItemText(item)
982 print "item name is None!!: error!!" 987 rootitem_id = self.tree.GetRootItem()
988 while (rootitem_id != cur_id):
989 tmp_id = self.tree.GetItemParent(cur_id)
992 name = self.tree.GetItemText(tmp_id)
996 ret = name +
'/' + ret
1001 """現在のItemIdからCategoryの名称を検索 manager にぶら下がっているcategory名を検索
[引数]
cur_id -- 現在のItemID
[戻り値]
ret -- ツリーのFull Path
1002 manager にぶら下がっているcategory名を検索
[引数]
cur_id -- 現在のItemID
[戻り値]
ret -- ツリーのFull Path
1008 ret -- ツリーのFull Path 1016 if self.ItemHasChildren(parent_id):
1017 cur_id, cookie = self.GetFirstChild(parent_id)
1019 for i
in range(self.GetChildrenCount(parent_id,
False) - 1):
1020 cur_name = self.tree.GetItemText(cur_id)
1021 num = cur_name.find(
'|')
1023 kind = cur_name[num+1:]
1028 if kind ==
'cate_cxt':
1029 ret = cur_name[0:num-1]
1031 cur_id, cookie = self.GetNextChild(cur_id, cookie)
1037 """現在のItemIdからManagerのFullPathを作成 1043 ret -- ツリーのFull Path 1049 rootitem_id = self.tree.GetRootItem()
1051 while (rootitem_id != cur_id):
1052 cur_name = self.tree.GetItemText(cur_id)
1053 num = cur_name.find(
'|')
1055 kind = cur_name[num+1:]
1060 if kind ==
'mgr_cxt':
1062 tmp_id = self.tree.GetItemParent(cur_id)
1068 if kind ==
'mgr_cxt':
1070 for id, cookie
in self.tree.GetChildrenItemIdList(tmp_id):
1071 cur_name = self.tree.GetItemText(id)
1072 num = cur_name.find(
'|')
1074 kind = cur_name[num+1:]
1086 ret = self.tree.GetItemText(cur_id)
1088 while (rootitem_id != cur_id):
1089 tmp_id = self.tree.GetItemParent(cur_id)
1092 name = self.tree.GetItemText(tmp_id)
1093 ret = name +
'/' + ret
1099 """DnDスタート
[引数]
event -- Event, 使用していない
[戻り値]
void
1102 event -- Event, 使用していない 1108 item = event.GetItem()
1109 self.tree.SelectItem(item)
1112 kind = self.myDict.GetKindToFullpath(fullpath)
1122 data = wx.DataObjectComposite()
1125 textDataObj = wx.TextDataObject(dragText)
1126 data.Add(textDataObj)
1128 drop_source = wx.DropSource(self.
tree)
1129 drop_source.SetData(data)
1130 result = drop_source.DoDragDrop()
1132 if result == wx.DragError:
1134 elif result == wx.DragNone:
1136 elif result == wx.DragCopy:
1137 print "DragCopy: Sucseed" 1138 elif result == wx.DragMove:
1139 print "DragCopy: Sucseed" 1140 elif result == wx.DragCancel:
1146 """DnDエンド
[引数]
event -- Event, 使用していない
[戻り値]
void
1149 event -- Event, 使用していない 1154 item = event.GetItem()
1155 self.tree.SelectItem(item)
1156 print self.tree.GetItemText(item)
1162 event -- Event, 使用していない 1167 item = self.tree.GetSelection()
1168 name = self.tree.GetItemText(item)
1170 kind = self.myDict.GetKindToFullpath(fullpath)
1172 ref = self.myDict.GetObjRefToFullpath(fullpath)
1174 self.frame.profilepanel.RefreshProfile(ref.get_component_profile())
1183 event -- Event, 使用していない 1188 item = event.GetItem()
1189 name = self.tree.GetItemText(item)
1194 kind = self.myDict.GetKindToFullpath(fullpath)
1196 ref = self.myDict.GetObjRefToFullpath(fullpath)
1198 self.frame.profilepanel.RefreshProfile(ref.get_component_profile())
1206 """ ネーミングサービス接続ダイアログクラス""" 1208 self, parent, ID, title, text_list,size=wx.DefaultSize, pos=wx.DefaultPosition,
1209 style=wx.DEFAULT_DIALOG_STYLE
1216 title -- ダイアログウインドウタイトル size -- サイズ
pos -- 位置
style -- ダイアログウインドウスタイル
[戻り値]
this
1218 pos -- 位置 style -- ダイアログウインドウスタイル
[戻り値]
this
1219 style -- ダイアログウインドウスタイル
[戻り値]
this
1224 pre = wx.PreDialog()
1225 pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP)
1226 pre.Create(parent, ID, title, pos, size, style)
1230 sizer = wx.BoxSizer(wx.VERTICAL)
1231 box = wx.BoxSizer(wx.HORIZONTAL)
1233 label = wx.StaticText(self, -1,
"NameServer:port ")
1234 label.SetHelpText(
"Name server and port number")
1235 box.Add(label, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
1237 self.
hosttxt = wx.ComboBox(self, -1,
"", (90,50),(160,-1), text_list,wx.CB_DROPDOWN)
1238 self.hosttxt.SetHelpText(
"Name server and port number")
1239 box.Add(self.
hosttxt, 1, wx.ALIGN_CENTRE|wx.ALL, 5)
1241 sizer.AddSizer(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
1243 line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
1244 sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
1246 box = wx.BoxSizer(wx.HORIZONTAL)
1248 if wx.Platform !=
"__WXMSW__":
1249 btn = wx.ContextHelpButton(self)
1250 box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 5)
1252 btn = wx.Button(self, wx.ID_OK,
" OK ")
1254 btn.SetHelpText(
"The OK button completes the dialog")
1255 box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 5)
1257 btn = wx.Button(self, wx.ID_CANCEL,
" Cancel ")
1258 btn.SetHelpText(
"The Cancel button cnacels the dialog. (Cool, huh?)")
1259 box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 5)
1262 wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.ALL,
1265 self.SetSizer(sizer)
1266 self.SetAutoLayout(
True)
1270 """ダイアログウインドウに予め表示するネーミングサーバ名 1273 name_server -- ネーミングサーバ名 1278 self.hosttxt.SetValue(name_server)
1281 """ダイアログウインドウに入力されたネーミングサーバ名を取得する
[引数]
void
[戻り値]
name_server -- ネーミングサーバ名
1287 name_server -- ネーミングサーバ名 1289 return self.hosttxt.GetValue()
1292 """ ネーミングサービス接続ヒストリークラス""" 1306 if os.name ==
'posix':
1309 elif os.name ==
'nt':
1321 print "create to history-file:",self.
hist_path 1324 self.file.write(
'localhost\n')
1329 self.history.append(
'localhost')
1333 tmp_hist = self.file.readlines()
1334 for hist
in tmp_hist:
1336 self.history.append(hist)
1347 indx = self.history.index(newName)
1349 self.history.insert(0,newName)
1352 for n
in range(10,len(self.
history)):
1356 self.file.write(hist)
1357 self.file.write(
'\n')
1371 if __name__ ==
'__main__':
1374 run.main([
'', os.path.basename(sys.argv[0])] + sys.argv[1:])
def OnEndEdit(self, event)
def searchCategoryName(self, item)
def OnSelChanged(self, event)
def SetItemByDict(self, dict)
def OnEndDrag(self, event)
def OnItemExpanded(self, event)
def OnActivate(self, event)
def __SetItemRecursive__(self, item_id, dict)
def __init__(self, parent, id, pos, size, style, log)
def SetNameServer(self, name_server)
def OnBeginEdit(self, event)
def GetChildrenItemIdList(self, parent_id)
def OnLeftDClick(self, event)
def makeFullPath(self, item)
def searchManagerPath(self, item)
def OnItemCollapsed(self, event)
def OnSelChanging(self, event)
def runTest(frame, nb, log)
def OnCompareItems(self, item1, item2)
def OnLeftUp(self, event)
def OnRightUp(self, event)
def OnConnectNSClick(self, event)
def __ListupRecursive__(self, item_id)
def OnBeginDrag(self, event)
def SetNameServer(self, name_server)
def __init__(self, frame, parent, log)
def __init__(self, parent, ID, title, text_list, size=wx.DefaultSize, pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE)
def OnRightClick(self, event)
def __makeDictRecursive__(self, item_id)
def GetChildrenItemNameList(self, parent_id)
def checkDispKind(self, kind)
def SetNSName(self, newName)