1 # -*- coding: utf-8 -*-
3 # GUIのメインフレームにおけるお守り検索Notebookのview
4 # 2013/12/15 written by kei9
11 class NoteBookAmuletView():
12 u""" メインのフレームのお守り検索タブ """
13 def __init__(self, frame):
21 self.button_search = xrc.XRCCTRL(self.frame, "ButtonAmuletSearchSearch")
22 self.button_clear = xrc.XRCCTRL(self.frame, "ButtonAmuletSearchClear")
23 self.button_skill = xrc.XRCCTRL(self.frame, "ButtonAmuletSearchSkill")
24 self.ID_BUTTON_SEARCH = xrc.XRCID("ButtonAmuletSearchSearch")
25 self.ID_BUTTON_CLEAR = xrc.XRCID("ButtonAmuletSearchClear")
26 self.ID_BUTTON_SKILL = xrc.XRCID("ButtonAmuletSearchSkill")
29 self.radio_button_amulet1 = xrc.XRCCTRL(self.frame, "RadioButtonAmulet1")
30 self.radio_button_amulet2 = xrc.XRCCTRL(self.frame, "RadioButtonAmulet2")
31 self.radio_button_amulet3 = xrc.XRCCTRL(self.frame, "RadioButtonAmulet3")
32 self.ID_RADIO_BUTTON_AMULET1 = xrc.XRCID("RadioButtonAmulet1")
33 self.ID_RADIO_BUTTON_AMULET2 = xrc.XRCID("RadioButtonAmulet2")
34 self.ID_RADIO_BUTTON_AMULET3 = xrc.XRCID("RadioButtonAmulet3")
35 self.amulet2radio_button_dict = {}
36 self.amulet2radio_button_dict[constnumbers.NAME_AMULET1] = self.radio_button_amulet1
37 self.amulet2radio_button_dict[constnumbers.NAME_AMULET2] = self.radio_button_amulet2
38 self.amulet2radio_button_dict[constnumbers.NAME_AMULET3] = self.radio_button_amulet3
39 self.amulet2radio_id_dict = {}
40 self.amulet2radio_id_dict[constnumbers.NAME_AMULET1] = self.ID_RADIO_BUTTON_AMULET1
41 self.amulet2radio_id_dict[constnumbers.NAME_AMULET2] = self.ID_RADIO_BUTTON_AMULET2
42 self.amulet2radio_id_dict[constnumbers.NAME_AMULET3] = self.ID_RADIO_BUTTON_AMULET3
45 self.list_box_seeds = xrc.XRCCTRL(self.frame, "ListBoxAmuletSearchSeeds")
46 self.ID_LIST_BOX_SEEDS = xrc.XRCID("ListBoxAmuletSearchSeeds")
49 self.spin_ctrl_skill1_val = xrc.XRCCTRL(self.frame, "SpinCtrlAmuletSearchSkill1Value")
50 self.spin_ctrl_skill2_val = xrc.XRCCTRL(self.frame, "SpinCtrlAmuletSearchSkill2Value")
51 self.spin_ctrl_slot_num = xrc.XRCCTRL(self.frame, "SpinCtrlAmuletSearchSlotNumber")
52 self.ID_SPIN_CTRL_SKILL1_VAL = xrc.XRCID("SpinCtrlAmuletSearchSkill1Value")
53 self.ID_SPIN_CTRL_SKILL2_VAL = xrc.XRCID("SpinCtrlAmuletSearchSkill2Value")
56 self.combo_box_skill1 = xrc.XRCCTRL(self.frame, "ComboBoxAmuletSearchSkill1")
57 self.combo_box_skill2 = xrc.XRCCTRL(self.frame, "ComboBoxAmuletSearchSkill2")
58 self.ID_COMBO_BOX_SKILL1 = xrc.XRCID("ComboBoxAmuletSearchSkill1")
59 self.ID_COMBO_BOX_SKILL2 = xrc.XRCID("ComboBoxAmuletSearchSkill2")
62 self.text_ctrl_result = xrc.XRCCTRL(self.frame, "TextCtrlAmuletSearchResult")
64 # set min & max of slot
65 self.set_slot_minmax(constnumbers.SLOT_MIN, constnumbers.SLOT_MAX)
67 def bind_radio_button(self, event_func, evt=wx.EVT_RADIOBUTTON):
68 u""" ラジオボタンが押された時のイベントをセットする """
69 self.radio_button_amulet1.Bind(evt, event_func)
70 self.radio_button_amulet2.Bind(evt, event_func)
71 self.radio_button_amulet3.Bind(evt, event_func)
73 def bind_combobox(self, event_func, evt=wx.EVT_COMBOBOX):
74 u""" コンボボタンが押された時のイベントをセットする """
75 self.combo_box_skill1.Bind(evt, event_func)
76 self.combo_box_skill2.Bind(evt, event_func)
78 def bind_button_search(self, event_func, evt=wx.EVT_BUTTON):
79 u""" 検索ボタンが押された時のイベントをセットする """
80 self.button_search.Bind(evt, event_func)
82 def bind_button_clear(self, event_func, evt=wx.EVT_BUTTON):
83 u""" クリアボタンが押された時のイベントをセットする """
84 self.button_clear.Bind(evt, event_func)
86 def bind_button_skill(self, event_func, evt=wx.EVT_BUTTON):
87 u""" スキル検索ボタンが押された時のイベントをセットする """
88 self.button_skill.Bind(evt, event_func)
90 def set_skill_minmax(self, min1, max1, min2, max2):
91 u""" 第1,2スキルの最大値と最小値をセットする """
92 self.spin_ctrl_skill1_val.SetRange(min1, max1)
93 self.spin_ctrl_skill2_val.SetRange(min2, max2)
95 def set_slot_minmax(self, slot_min, slot_max):
96 u""" スロットの最大値と最小値をセットする """
97 self.spin_ctrl_slot_num.SetRange(slot_min, slot_max)
99 def get_skill_values(self):
101 return (skill1_val, skill2_val)"""
102 skill1_val = self.spin_ctrl_skill1_val.GetValue()
103 skill2_val = self.spin_ctrl_skill2_val.GetValue()
104 return (skill1_val, skill2_val)
106 def get_slot_value(self):
108 return self.spin_ctrl_slot_num.GetValue()
110 def set_radio_value(self, value, amulet_name=constnumbers.NAME_AMULET1):
112 arg: (value, amulet_name)
114 self.amulet2radio_button_dict[amulet_name].SetValue(value)
116 def get_radio_value(self, amulet_name=constnumbers.NAME_AMULET1):
120 return self.amulet2radio_button_dict[amulet_name].GetValue()
122 def get_selected_radio_name(self):
123 u""" 選択されているラジオボタンのお守り名を得る
124 return: (NAME_OF_AMULET)
126 if self.amulet2radio_button_dict[constnumbers.NAME_AMULET1].GetValue:
127 return constnumbers.NAME_AMULET1
128 elif self.amulet2radio_button_dict[constnumbers.NAME_AMULET2].GetValue:
129 return constnumbers.NAME_AMULET2
130 elif self.amulet2radio_button_dict[constnumbers.NAME_AMULET3].GetValue:
131 return constnumbers.NAME_AMULET3
133 raise NotImplementedError("irregular radio button selected")
135 def set_selection_skill1_combobox(self, idx):
136 u""" skill1のコンボボックスの選択されたインデックスをセットする """
137 self.combo_box_skill1.SetSelection(idx)
139 def set_selection_skill2_combobox(self, idx):
140 u""" skill2のコンボボックスの選択されたインデックスをセットする """
141 self.combo_box_skill2.SetSelection(idx)
143 def get_string_selection_skill1_combobox(self):
144 u""" skill1のコンボボックスの選択された値を得る """
145 return self.combo_box_skill1.GetStringSelection()
147 def get_string_selection_skill2_combobox(self):
148 u""" skill2のコンボボックスの選択された値を得る """
149 return self.combo_box_skill2.GetStringSelection()
151 def get_string_selection_skill_names(self):
152 u""" skill1, skill2で選択されているスキル名を返す
153 return (skill1_name, skill2_name)"""
154 skill1_name = self.get_string_selection_skill1_combobox()
155 skill2_name = self.get_string_selection_skill2_combobox()
156 return (skill1_name, skill2_name)
158 def set_items_skill1_combobox(self, string_list):
159 u""" skill1のコンボボックスの値をセットする """
160 self.combo_box_skill1.SetItems(string_list)
162 def set_items_skill2_combobox(self, string_list):
163 u""" skill2のコンボボックスの値をセットする """
164 self.combo_box_skill2.SetItems(string_list)
166 def set_items_skill_combobox(self, idx, string_list):
167 u""" 指定されたインデックスのskillのコンボボックスの値をセットする """
169 self.set_items_skill1_combobox(string_list)
171 self.set_items_skill2_combobox(string_list)
173 raise NotImplementedError(u"this idx is not implemented")
175 def set_skill_button_enable(self, value):
176 u""" 対応スキル検索ボタンの有効・無効の切り替え """
178 self.button_skill.Enable()
180 self.button_skill.Disable()
182 def set_result_text_ctrl_value(self, value):
183 u""" 結果表示用のTextCtrlに値をセットする """
184 self.text_ctrl_result.SetValue(value)
186 def set_listbox_items(self, items):
187 u""" Seed一覧のListBoxに値をセットする。
188 Noneが与えられた時はClearする"""
189 if items is not None:
190 self.list_box_seeds.SetItems(items)
192 self.list_box_seeds.Clear()
194 def get_string_selection_listbox(self):
195 u""" Seed一覧のListBoxの選択された値を得る。"""
196 return self.list_box_seeds.GetStringSelection()
198 def set_selection_listbox(self, idx):
199 u""" Seed一覧のListBoxの選択されたインデックスをセットする。"""
200 self.list_box_seeds.SetSelection(idx)
202 def clear_listbox_items(self):
203 u""" Seed一覧のListBoxから値をClearする"""
204 self.list_box_seeds.Clear()