OSDN Git Service

add alchemy simulator
[amulettoolsmh4/main.git] / view / notebookseed2view.py
1 # -*- coding: utf-8 -*-
2
3 # GUIのメインフレームにおけるSeed2特定Notebookのview
4 # 2013/12/15 written by kei9
5 import wx
6 from wx import xrc
7 import wx.grid
8
9 import constnumbers
10
11 class NoteBookSeed2View():
12     u""" メインのフレームのSeed2特定タブ """
13     def __init__(self, frame):
14         self.frame = frame
15         self._init_view()
16
17     def _init_view(self):
18         # initialize view
19
20         # buttons
21         self.button_search = xrc.XRCCTRL(self.frame, "ButtonSeedSearch")
22         self.button_clear = xrc.XRCCTRL(self.frame, "ButtonSeedClear")
23         self.button_skill2 = xrc.XRCCTRL(self.frame, "ButtonSkillFromSeedSearch")
24
25         self.ID_BUTTON_SEARCH = xrc.XRCID("ButtonSeedSearch")
26         self.ID_BUTTON_CLEAR = xrc.XRCID("ButtonSeedClear")
27         self.ID_BUTTON_SKILL2 = xrc.XRCID("ButtonSkillFromSeedSearch")
28
29         # text ctrl
30         self.text_ctrl_seed2_explain = xrc.XRCCTRL(self.frame, "TextCtrlSeed2Explain")
31         self.text_ctrl_seed2_result = xrc.XRCCTRL(self.frame, "TextCtrlSeedResults")
32
33         # load combo boxes
34         self.combo_box_skill_dict = {}
35         self.combo_box_skill_dict[constnumbers.KEY_AMULET1] = [
36                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_1"),
37                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_2"),
38                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_3"),
39                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_4"),
40                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_5"),
41                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_6"),
42                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet1_7")]
43         self.combo_box_skill_dict[constnumbers.KEY_AMULET2] = [
44                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_1"),
45                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_2"),
46                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_3"),
47                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_4"),
48                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_5"),
49                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_6"),
50                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet2_7")]
51         self.combo_box_skill_dict[constnumbers.KEY_AMULET3] = [
52                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_1"),
53                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_2"),
54                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_3"),
55                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_4"),
56                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_5"),
57                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_6"),
58                 xrc.XRCCTRL(self.frame, "ComboBoxAmulet3_7")]
59
60         # load list box
61         self.list_box_seed = xrc.XRCCTRL(self.frame, "ListBoxSeed")
62         self.ID_LIST_BOX_SEED = xrc.XRCID("ListBoxSeed")
63
64         # set explanation text
65         self.text_ctrl_seed2_explain.SetValue(constnumbers.SEED_DECISION_EXPLANATION)
66
67     def bind_button_search(self, event_func, evt=wx.EVT_BUTTON):
68         u""" 検索ボタンへのイベント登録 """
69         self.button_search.Bind(evt, event_func)
70
71     def bind_button_clear(self, event_func, evt=wx.EVT_BUTTON):
72         u""" クリアボタンへのイベント登録 """
73         self.button_clear.Bind(evt, event_func)
74
75     def bind_button_skill2(self, event_func, evt=wx.EVT_BUTTON):
76         u""" 対応スキル2ボタンへのイベント登録 """
77         self.button_skill2.Bind(evt, event_func)
78
79     def set_skill_names(self, amulet_key, skill_names):
80         u""" キーに対応するComboboxにスキル名をセットする。"""
81         for combo in self.combo_box_skill_dict[amulet_key]:
82             combo.SetItems(skill_names)
83             combo.SetSelection(0)
84
85     def get_selected_skill_names(self, amulet_key):
86         u""" キーに対応するComboboxで選択されているスキル名を返す"""
87         return [combo.GetStringSelection() for combo in self.combo_box_skill_dict[amulet_key]]
88
89     def set_skill_selected_idx(self, idx=0):
90         u""" Comboboxの選択されたインデックスを全て指定された値とする """
91         for key, combo_list in self.combo_box_skill_dict.items():
92             for combo in combo_list:
93                 combo.SetSelection(idx)
94
95     def set_seed_lists(self, seed_list):
96         u""" Seed2一覧をセットする """
97         self.list_box_seed.SetItems(seed_list)
98         self.list_box_seed.SetSelection(0)
99
100     def clear_seed_list(self):
101         u""" Seed2一覧をクリアする """
102         self.list_box_seed.Clear()
103
104     def set_result_text(self, value):
105         u""" 検索結果を示すTextCtrlへの値のセット """
106         self.text_ctrl_seed2_result.SetValue(value)
107
108     def set_skill2_button_enable(self, value):
109         u""" 対応スキル検索ボタンの有効・無効の切り替え """
110         if value is True:
111             self.button_skill2.Enable()
112         else:
113             self.button_skill2.Disable()
114
115     def get_selected_seed2(self):
116         u""" ListBoxから選択したSeed2を返す。値が不正な場合はNoneを返す """
117         seed = self.list_box_seed.GetStringSelection()
118         if seed.isdigit():
119             return int(seed)
120         else:
121             return None