Passed
Push — master ( c14483...ae10f4 )
by Yoshihiro
56s queued 30s
created

MC.MainProcessingClass.initialize()   B

Complexity

Conditions 8

Size

Total Lines 38
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 25
nop 1
dl 0
loc 38
rs 7.3333
c 0
b 0
f 0
1
import os
2
import shutil
3
import platform
4
import tkinter as tk
5
import tkinter.ttk as ttk
6
7
import CW
8
import EP
9
import SP
10
import HP
11
import FP
12
import CP
13
import FM
14
import EM
15
import HM
16
import PM
17
import LM
18
19
20
class MainProcessingClass(ttk.Frame):
21
    """メインフレーム処理のクラス
22
23
    ・初期設定をするプログラム群
24
25
    Args:
26
        tree_folder (str): ツリーフォルダの配列
27
        tokenizer (instance): Tokenizerインスタンス
28
        wiki_wiki (instance): wikipediaapi.Wikipediaインスタンス
29
        title_binary (str): タイトルイメージファイルバイナリ
30
        master (instance): toplevelインスタンス
31
32
    """
33
34
    def __init__(
35
        self,
36
        tree_folder,
37
        tokenizer,
38
        wiki_wiki,
39
        title_binary,
40
        master=None,
41
        **kwargs
42
    ):
43
        super().__init__(master, **kwargs)
44
        self.TREE_FOLDER = tree_folder
45
        # 自作クラスの読み込み
46
        self.cwc = CW.CreateWindowClass(self)
47
        self.epc = EP.EventProcessingClass(self)
48
        self.sfc = SP.SubfunctionProcessingClass(self, self.TREE_FOLDER)
49
        self.hpc = HP.HighlightProcessingClass(self, tokenizer)
50
        self.fpc = FP.FindProcessingClass(self)
51
        self.cpc = CP.ComplementProcessingClass(self, tokenizer)
52
        self.fmc = FM.FileMenuClass(self, master, self.TREE_FOLDER)
53
        self.emc = EM.EditMenuClass(self)
54
        self.pmc = PM.ProcessingMenuClass(self, wiki_wiki, tokenizer)
55
        self.lmc = LM.ListMenuClass(self, master, self.TREE_FOLDER)
56
        self.hmc = HM.HelpMenuClass(self, title_binary)
57
        # メニューバーの作成
58
        self.menu_bar = tk.Menu(self.master)
59
        self.master.config(menu=self.menu_bar)
60
        # 初期化処理
61
        self.initialize()
62
        self.cwc.create_widgets()
63
        self.epc.create_event()
64
65
    def initialize(self):
66
        """初期化処理
67
68
        ・変数の初期化及び起動準備をする。
69
70
        """
71
        # 今の処理ししているファイルのパス
72
        self.fmc.now_path = ""
73
        # 現在開いているファイル
74
        self.fmc.file_path = ""
75
        # 検索文字列
76
        self.fpc.find_text = ""
77
        # 現在入力中の初期テキスト
78
        self.lmc.text_text = ""
79
        self.lmc.select_list_item = ""
80
        # 文字の大きさ
81
        self.pmc.font_size = 16
82
        self.APPID = ""
83
        if os.path.isfile("./appid.txt"):
84
            f = open("./appid.txt", "r", encoding="utf-8")
85
            self.APPID = f.read()
86
            f.close()
87
        if u"ここを消して、" in self.APPID:
88
            self.APPID = ""
89
        # フォントをOSごとに変える
90
        pf = platform.system()
91
        if pf == 'Windows':
92
            self.font = "メイリオ"
93
        elif pf == 'Darwin':  # MacOS
94
            self.font = "Osaka-等幅"
95
        elif pf == 'Linux':
96
            self.font = "IPAゴシック"
97
        # dataフォルダがあるときは、削除する
98
        if os.path.isdir('./data'):
99
            shutil.rmtree('./data')
100
        # 新しくdataフォルダを作成する
101
        for val in self.TREE_FOLDER:
102
            os.makedirs('./{0}'.format(val[0]))
103