Test Failed
Push — master ( b264b0...0ab505 )
by Yoshihiro
03:23
created

EventProcessingClass.create_event_character()   B

Complexity

Conditions 1

Size

Total Lines 110
Code Lines 79

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 79
dl 0
loc 110
rs 7.6872
c 0
b 0
f 0
cc 1
nop 1

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
#!/usr/bin/env python3
2
from . import Definition
3
4
5
class EventProcessingClass(Definition.DefinitionClass):
6
    """ウインドウイベントのクラス.
7
8
    ・ウインドウイベントにあるプログラム群
9
10
    Args:
11
        app (instance): MainProcessingClass のインスタンス
12
        locale_var (str): ロケーション
13
        master (instance): toplevel のインスタンス
14
    """
15
    def __init__(self, app, locale_var, master=None):
16
        super().__init__(locale_var, master)
17
        self.app = app
18
19
    def create_event_text(self):
20
        """テキストイベントの設定.
21
22
        ・テキストボックスにイベントを追加する。
23
        """
24
        # テキスト内でのスクロール時
25
        self.app.NovelEditor.bind('<<Scroll>>', self.app.spc.update_line_numbers)
26
        self.app.NovelEditor.bind('<Up>', self.app.spc.update_line_numbers)
27
        self.app.NovelEditor.bind('<Down>', self.app.spc.update_line_numbers)
28
        self.app.NovelEditor.bind('<Left>', self.app.spc.update_line_numbers)
29
        self.app.NovelEditor.bind('<Right>', self.app.spc.update_line_numbers)
30
        # テキストの変更時
31
        self.app.NovelEditor.bind('<<Change>>', self.app.spc.change_setting)
32
        # キー場押されたときの処理
33
        self.app.NovelEditor.bind("<Any-KeyPress>", self.app.fpc.push_keys)
34
        # ウィジェットのサイズが変わった際。行番号の描画を行う
35
        self.app.NovelEditor.bind('<Configure>', self.app.spc.update_line_numbers)
36
        # Tab押下時(インデント、又はコード補完)
37
        self.app.NovelEditor.bind('<Tab>', self.app.cpc.tab)
38
        # ルビを振る
39
        self.app.NovelEditor.bind('<Control-Key-r>', self.app.pmc.ruby_huri)
40
        # 開くダイアロクを表示する
41
        self.app.NovelEditor.bind('<Control-Key-e>', self.app.fmc.open_file)
42
        # 保存ダイアロクを表示する
43
        self.app.NovelEditor.bind('<Control-Key-w>', self.app.fmc.save_file)
44
        # 小説家になろうを開く
45
        self.app.NovelEditor.bind(
46
            '<Control-Key-u>',
47
            self.app.pmc.open_becoming_novelist_page
48
        )
49
        # 検索ダイアログを開く
50
        self.app.NovelEditor.bind('<Control-Key-f>', self.app.fpc.find_dialog)
51
        # 置換ダイアログを開く
52
        self.app.NovelEditor.bind('<Control-Key-l>', self.app.fpc.replacement_dialog)
53
        # 上書き保存する
54
        self.app.NovelEditor.bind('<Control-Key-s>', self.app.fmc.overwrite_save_file)
55
        # 新規作成する
56
        self.app.NovelEditor.bind('<Control-Key-n>', self.app.fmc.new_open)
57
        # helpページを開く
58
        self.app.NovelEditor.bind('<Control-Key-h>', self.app.hmc.help)
59
        # Versionページを開く
60
        self.app.NovelEditor.bind('<Control-Shift-Key-V>', self.app.hmc.version)
61
        # 文字数と行数をカウントすShift-る
62
        self.app.NovelEditor.bind('<Control-Shift-Key-C>', self.app.pmc.count_moji)
63
        # redo処理
64
        self.app.NovelEditor.bind('<Control-Shift-Key-Z>', self.app.emc.redo)
65
        # uedo処理
66
        self.app.NovelEditor.bind('<Control-Key-z>', self.app.emc.undo)
67
        # フォントサイズの変更
68
        self.app.NovelEditor.bind('<Control-Shift-Key-F>', self.app.pmc.font_dialog)
69
        # 意味を検索
70
        self.app.NovelEditor.bind(
71
            '<Control-Shift-Key-D>',
72
            self.app.pmc.find_wikipedia
73
        )
74
        # 文章を読み上げ
75
        self.app.NovelEditor.bind('<Control-Shift-Key-R>', self.app.pmc.read_text)
76
        # yahoo文字列解析
77
        self.app.NovelEditor.bind('<Control-Key-y>', self.app.pmc.yahoo)
78
79
    def create_event_character(self):
80
        """キャラクター欄のイベント設定.
81
82
        ・キャラクター関係のボックスにイベントを追加する。
83
        """
84
        # 開くダイアロクを表示する
85
        self.app.EntryCallName.bind('<Control-Key-e>', self.app.fmc.open_file)
86
        self.app.EntryName.bind('<Control-Key-e>', self.app.fmc.open_file)
87
        self.app.EntryBirthday.bind('<Control-Key-e>', self.app.fmc.open_file)
88
        self.app.TextboxBiography.bind('<Control-Key-e>', self.app.fmc.open_file)
89
        # 保存ダイアロクを表示する
90
        self.app.EntryCallName.bind('<Control-Key-w>', self.app.fmc.save_file)
91
        self.app.EntryName.bind('<Control-Key-w>', self.app.fmc.save_file)
92
        self.app.EntryBirthday.bind('<Control-Key-w>', self.app.fmc.save_file)
93
        self.app.TextboxBiography.bind('<Control-Key-w>', self.app.fmc.save_file)
94
        # 小説家になろうを開く
95
        self.app.EntryCallName.bind(
96
            '<Control-Key-u>',
97
            self.app.pmc.open_becoming_novelist_page
98
        )
99
        self.app.EntryName.bind(
100
            '<Control-Key-u>',
101
            self.app.pmc.open_becoming_novelist_page
102
        )
103
        self.app.EntryBirthday.bind(
104
            '<Control-Key-u>',
105
            self.app.pmc.open_becoming_novelist_page
106
        )
107
        self.app.TextboxBiography.bind(
108
            '<Control-Key-u>',
109
            self.app.pmc.open_becoming_novelist_page
110
        )
111
        # 検索ダイアログを開く
112
        self.app.EntryCallName.bind(
113
            '<Control-Key-f>',
114
            self.app.fpc.find_dialog
115
        )
116
        self.app.EntryName.bind('<Control-Key-f>', self.app.fpc.find_dialog)
117
        self.app.EntryCallName.bind(
118
            '<Control-Key-f>',
119
            self.app.fpc.find_dialog
120
        )
121
        self.app.TextboxBiography.bind('<Control-Key-f>', self.app.fpc.find_dialog)
122
        # 上書き保存する
123
        self.app.EntryCallName.bind(
124
            '<Control-Key-s>',
125
            self.app.fmc.overwrite_save_file
126
        )
127
        self.app.EntryName.bind(
128
            '<Control-Key-s>',
129
            self.app.fmc.overwrite_save_file
130
        )
131
        self.app.EntryBirthday.bind(
132
            '<Control-Key-s>',
133
            self.app.fmc.overwrite_save_file
134
        )
135
        self.app.TextboxBiography.bind(
136
            '<Control-Key-s>',
137
            self.app.fmc.overwrite_save_file
138
        )
139
        # 新規作成する
140
        self.app.EntryCallName.bind('<Control-Key-n>', self.app.fmc.new_open)
141
        self.app.EntryName.bind('<Control-Key-n>', self.app.fmc.new_open)
142
        self.app.EntryCallName.bind('<Control-Key-n>', self.app.fmc.new_open)
143
        self.app.TextboxBiography.bind('<Control-Key-n>', self.app.fmc.new_open)
144
        # helpページを開く
145
        self.app.EntryCallName.bind('<Control-Key-h>', self.app.hmc.help)
146
        self.app.EntryName.bind('<Control-Key-h>', self.app.hmc.help)
147
        self.app.EntryBirthday.bind('<Control-Key-h>', self.app.hmc.help)
148
        self.app.TextboxBiography.bind('<Control-Key-h>', self.app.hmc.help)
149
        # Versionページを開く
150
        self.app.EntryCallName.bind(
151
            '<Control-Shift-Key-V>',
152
            self.app.hmc.version
153
        )
154
        self.app.EntryName.bind('<Control-Shift-Key-V>', self.app.hmc.version)
155
        self.app.EntryBirthday.bind(
156
            '<Control-Shift-Key-V>',
157
            self.app.hmc.version
158
        )
159
        self.app.EntryCallName.bind(
160
            '<Control-Shift-Key-V>',
161
            self.app.hmc.version
162
        )
163
        # redo処理
164
        self.app.EntryCallName.bind('<Control-Shift-Key-Z>', self.app.emc.redo)
165
        self.app.EntryName.bind('<Control-Shift-Key-Z>', self.app.emc.redo)
166
        self.app.EntryBirthday.bind('<Control-Shift-Key-Z>', self.app.emc.redo)
167
        self.app.TextboxBiography.bind('<Control-Shift-Key-Z>', self.app.emc.redo)
168
        # undo処理
169
        self.app.EntryCallName.bind('<Control-Key-z>', self.app.emc.undo)
170
        self.app.EntryName.bind('<Control-Key-z>', self.app.emc.undo)
171
        self.app.EntryBirthday.bind('<Control-Key-z>', self.app.emc.undo)
172
        self.app.TextboxBiography.bind('<Control-Key-z>', self.app.emc.undo)
173
        # フォントサイズの変更
174
        self.app.EntryCallName.bind(
175
            '<Control-Shift-Key-F>',
176
            self.app.pmc.font_dialog
177
        )
178
        self.app.EntryName.bind(
179
            '<Control-Shift-Key-F>',
180
            self.app.pmc.font_dialog
181
        )
182
        self.app.EntryBirthday.bind(
183
            '<Control-Shift-Key-F>',
184
            self.app.pmc.font_dialog
185
        )
186
        self.app.TextboxBiography.bind(
187
            '<Control-Shift-Key-F>',
188
            self.app.pmc.font_dialog
189
        )
190
191
    def create_event_image(self):
192
        """イメージイベントの設定.
193
194
        ・イメージキャンバスにイベントを追加する。
195
        """
196
        self.app.CanvasImage.bind('<MouseWheel>', self.app.spc.mouse_y_scroll)
197
        self.app.CanvasImage.bind(
198
            '<Control-MouseWheel>',
199
            self.app.spc.mouse_image_scroll
200
        )
201
202
    def create_event(self):
203
        """ツリービューイベントの設定.
204
205
        ・ツリービューにイベントを追加する。
206
        """
207
        # ツリービューをダブルクリックしたときにその項目を表示する
208
        self.app.tree.bind("<Double-1>", self.app.lmc.on_double_click)
209
        # ツリービューの名前を変更する
210
        self.app.tree.bind("<Control-Key-g>", self.app.lmc.on_name_click)
211
        # ツリービューで右クリックしたときにダイアログを表示する
212
        self.app.tree.bind("<Button-3>", self.app.lmc.message_window)
213