EventProcessingClass.create_event_character()   B
last analyzed

Complexity

Conditions 1

Size

Total Lines 71
Code Lines 51

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 51
dl 0
loc 71
rs 8.6036
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
16
    def __init__(self, app, locale_var, master=None):
17
        super().__init__(locale_var, master)
18
        self.app = app
19
20
    def create_event_text(self):
21
        """テキストイベントの設定.
22
23
        ・テキストボックスにイベントを追加する。
24
        """
25
        # テキスト内でのスクロール時
26
        self.app.NovelEditor.bind("<<Scroll>>", self.app.spc.update_line_numbers)
27
        self.app.NovelEditor.bind("<Up>", self.app.spc.update_line_numbers)
28
        self.app.NovelEditor.bind("<Down>", self.app.spc.update_line_numbers)
29
        self.app.NovelEditor.bind("<Left>", self.app.spc.update_line_numbers)
30
        self.app.NovelEditor.bind("<Right>", self.app.spc.update_line_numbers)
31
        # テキストの変更時
32
        self.app.NovelEditor.bind("<<Change>>", self.app.spc.change_setting)
33
        # キー場押されたときの処理
34
        self.app.NovelEditor.bind("<Any-KeyPress>", self.app.fpc.push_keys)
35
        # ウィジェットのサイズが変わった際。行番号の描画を行う
36
        self.app.NovelEditor.bind("<Configure>", self.app.spc.update_line_numbers)
37
        # Tab押下時(インデント、又はコード補完)
38
        self.app.NovelEditor.bind("<Tab>", self.app.cpc.tab)
39
        # ルビを振る
40
        self.app.NovelEditor.bind("<Control-Key-r>", self.app.pmc.ruby_huri)
41
        # 開くダイアロクを表示する
42
        self.app.NovelEditor.bind("<Control-Key-e>", self.app.fmc.open_file)
43
        # 保存ダイアロクを表示する
44
        self.app.NovelEditor.bind("<Control-Key-w>", self.app.fmc.save_file)
45
        # 小説家になろうを開く
46
        self.app.NovelEditor.bind(
47
            "<Control-Key-u>", 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("<Control-Shift-Key-D>", self.app.pmc.find_wikipedia)
71
        # 文章を読み上げ
72
        self.app.NovelEditor.bind("<Control-Shift-Key-R>", self.app.pmc.read_text)
73
        # yahoo文字列解析
74
        self.app.NovelEditor.bind("<Control-Key-y>", self.app.pmc.yahoo)
75
76
    def create_event_character(self):
77
        """キャラクター欄のイベント設定.
78
79
        ・キャラクター関係のボックスにイベントを追加する。
80
        """
81
        # 開くダイアロクを表示する
82
        self.app.EntryCallName.bind("<Control-Key-e>", self.app.fmc.open_file)
83
        self.app.EntryName.bind("<Control-Key-e>", self.app.fmc.open_file)
84
        self.app.EntryBirthday.bind("<Control-Key-e>", self.app.fmc.open_file)
85
        self.app.TextboxBiography.bind("<Control-Key-e>", self.app.fmc.open_file)
86
        # 保存ダイアロクを表示する
87
        self.app.EntryCallName.bind("<Control-Key-w>", self.app.fmc.save_file)
88
        self.app.EntryName.bind("<Control-Key-w>", self.app.fmc.save_file)
89
        self.app.EntryBirthday.bind("<Control-Key-w>", self.app.fmc.save_file)
90
        self.app.TextboxBiography.bind("<Control-Key-w>", self.app.fmc.save_file)
91
        # 小説家になろうを開く
92
        self.app.EntryCallName.bind(
93
            "<Control-Key-u>", self.app.pmc.open_becoming_novelist_page
94
        )
95
        self.app.EntryName.bind(
96
            "<Control-Key-u>", self.app.pmc.open_becoming_novelist_page
97
        )
98
        self.app.EntryBirthday.bind(
99
            "<Control-Key-u>", self.app.pmc.open_becoming_novelist_page
100
        )
101
        self.app.TextboxBiography.bind(
102
            "<Control-Key-u>", self.app.pmc.open_becoming_novelist_page
103
        )
104
        # 検索ダイアログを開く
105
        self.app.EntryCallName.bind("<Control-Key-f>", self.app.fpc.find_dialog)
106
        self.app.EntryName.bind("<Control-Key-f>", self.app.fpc.find_dialog)
107
        self.app.EntryCallName.bind("<Control-Key-f>", self.app.fpc.find_dialog)
108
        self.app.TextboxBiography.bind("<Control-Key-f>", self.app.fpc.find_dialog)
109
        # 上書き保存する
110
        self.app.EntryCallName.bind("<Control-Key-s>", self.app.fmc.overwrite_save_file)
111
        self.app.EntryName.bind("<Control-Key-s>", self.app.fmc.overwrite_save_file)
112
        self.app.EntryBirthday.bind("<Control-Key-s>", self.app.fmc.overwrite_save_file)
113
        self.app.TextboxBiography.bind(
114
            "<Control-Key-s>", self.app.fmc.overwrite_save_file
115
        )
116
        # 新規作成する
117
        self.app.EntryCallName.bind("<Control-Key-n>", self.app.fmc.new_open)
118
        self.app.EntryName.bind("<Control-Key-n>", self.app.fmc.new_open)
119
        self.app.EntryCallName.bind("<Control-Key-n>", self.app.fmc.new_open)
120
        self.app.TextboxBiography.bind("<Control-Key-n>", self.app.fmc.new_open)
121
        # helpページを開く
122
        self.app.EntryCallName.bind("<Control-Key-h>", self.app.hmc.help)
123
        self.app.EntryName.bind("<Control-Key-h>", self.app.hmc.help)
124
        self.app.EntryBirthday.bind("<Control-Key-h>", self.app.hmc.help)
125
        self.app.TextboxBiography.bind("<Control-Key-h>", self.app.hmc.help)
126
        # Versionページを開く
127
        self.app.EntryCallName.bind("<Control-Shift-Key-V>", self.app.hmc.version)
128
        self.app.EntryName.bind("<Control-Shift-Key-V>", self.app.hmc.version)
129
        self.app.EntryBirthday.bind("<Control-Shift-Key-V>", self.app.hmc.version)
130
        self.app.EntryCallName.bind("<Control-Shift-Key-V>", self.app.hmc.version)
131
        # redo処理
132
        self.app.EntryCallName.bind("<Control-Shift-Key-Z>", self.app.emc.redo)
133
        self.app.EntryName.bind("<Control-Shift-Key-Z>", self.app.emc.redo)
134
        self.app.EntryBirthday.bind("<Control-Shift-Key-Z>", self.app.emc.redo)
135
        self.app.TextboxBiography.bind("<Control-Shift-Key-Z>", self.app.emc.redo)
136
        # undo処理
137
        self.app.EntryCallName.bind("<Control-Key-z>", self.app.emc.undo)
138
        self.app.EntryName.bind("<Control-Key-z>", self.app.emc.undo)
139
        self.app.EntryBirthday.bind("<Control-Key-z>", self.app.emc.undo)
140
        self.app.TextboxBiography.bind("<Control-Key-z>", self.app.emc.undo)
141
        # フォントサイズの変更
142
        self.app.EntryCallName.bind("<Control-Shift-Key-F>", self.app.pmc.font_dialog)
143
        self.app.EntryName.bind("<Control-Shift-Key-F>", self.app.pmc.font_dialog)
144
        self.app.EntryBirthday.bind("<Control-Shift-Key-F>", self.app.pmc.font_dialog)
145
        self.app.TextboxBiography.bind(
146
            "<Control-Shift-Key-F>", self.app.pmc.font_dialog
147
        )
148
149
    def create_event_image(self):
150
        """イメージイベントの設定.
151
152
        ・イメージキャンバスにイベントを追加する。
153
        """
154
        self.app.CanvasImage.bind("<MouseWheel>", self.app.spc.mouse_y_scroll)
155
        self.app.CanvasImage.bind(
156
            "<Control-MouseWheel>", self.app.spc.mouse_image_scroll
157
        )
158
159
    def create_event(self):
160
        """ツリービューイベントの設定.
161
162
        ・ツリービューにイベントを追加する。
163
        """
164
        # ツリービューをダブルクリックしたときにその項目を表示する
165
        self.app.tree.bind("<Double-1>", self.app.lmc.on_double_click)
166
        # ツリービューの名前を変更する
167
        self.app.tree.bind("<Control-Key-g>", self.app.lmc.on_name_click)
168
        # ツリービューで右クリックしたときにダイアログを表示する
169
        self.app.tree.bind("<Button-3>", self.app.lmc.message_window)
170