Beremiz.py
author Surkov Sergey <surkovsv93@gmail.com>
Tue, 27 Jun 2017 19:21:09 +0300
changeset 1710 953ceea2573e
parent 1680 6db967480b7d
child 1730 64d8f52bc8c8
permissions -rwxr-xr-x
fix bug with TextViewer instance in debug mode, appears after transferring new program on PLC
TextViewer isn't able to display debug values, so calling for this class SubscribeAllDataConsumers method causes error
1663
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     1
#!/usr/bin/env python
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     3
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     4
# This file is part of Beremiz, a Integrated Development Environment for
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     5
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     6
#
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     7
# Copyright (C) 2016 - 2017: Andrey Skvortsov <andrej.skvortzov@gmail.com>
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     8
#
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     9
# See COPYING file for copyrights details.
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    10
#
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    11
# This program is free software; you can redistribute it and/or
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    12
# modify it under the terms of the GNU General Public License
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    13
# as published by the Free Software Foundation; either version 2
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    14
# of the License, or (at your option) any later version.
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    15
#
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    16
# This program is distributed in the hope that it will be useful,
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    17
# but WITHOUT ANY WARRANTY; without even the implied warranty of
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    18
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    19
# GNU General Public License for more details.
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    20
#
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    21
# You should have received a copy of the GNU General Public License
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    22
# along with this program; if not, write to the Free Software
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    23
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    24
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    25
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    26
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    27
import os, sys, getopt
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    28
import time
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    29
import __builtin__
1680
6db967480b7d make run Beremiz and PLCOpen Editor, if full path contain non-lating
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1666
diff changeset
    30
import util.paths as paths
1663
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    31
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    32
class BeremizIDELauncher:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    33
    def __init__(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    34
        self.updateinfo_url = None
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    35
        self.extensions = []
1680
6db967480b7d make run Beremiz and PLCOpen Editor, if full path contain non-lating
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1666
diff changeset
    36
        self.app_dir = paths.AbsDir(__file__)
1663
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    37
        self.projectOpen = None
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    38
        self.buildpath = None
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    39
        self.splash = None
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    40
        self.splashPath = self.Bpath("images", "splash.png")
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    41
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    42
    def Bpath(self, *args):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    43
        return os.path.join(self.app_dir,*args)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    44
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    45
    def ShowSplashScreen(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    46
        from wx.lib.agw.advancedsplash import AdvancedSplash
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    47
        bmp = wx.Image(self.splashPath).ConvertToBitmap()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    48
        self.splash = AdvancedSplash(None, bitmap=bmp)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    49
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    50
        # process all events
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    51
        # even the events generated by splash themself during showing
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    52
        if wx.Platform == '__WXMSW__':
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    53
            self.splash.Show()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    54
            self.splash.ProcessEvent(wx.PaintEvent())
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    55
        else:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    56
            for i in range(0,30):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    57
                wx.Yield()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    58
                time.sleep(0.01);
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    59
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    60
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    61
    def Usage(self):
1666
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    62
        print "Usage:"
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    63
        print "%s [Options] [Projectpath] [Buildpath]"%sys.argv[0]        
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    64
        print ""
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    65
        print "Supported options:"
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    66
        print "-h --help                    Print this help"
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    67
        print "-u --updatecheck URL         Retrieve update information by checking URL"
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    68
        print "-e --extend PathToExtension  Extend IDE functionality by loading at start additional extensions"
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    69
        print ""
d3603b5a1cbc make command line help message for Beremiz more verbose
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1663
diff changeset
    70
        print ""        
1663
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    71
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    72
    def SetCmdOptions(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    73
        self.shortCmdOpts = "hu:e:"
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    74
        self.longCmdOpts = ["help", "updatecheck=", "extend="]
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    75
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    76
    def ProcessOption(self, o, a):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    77
        if o in ("-h", "--help"):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    78
            self.Usage()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    79
            sys.exit()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    80
        if o in ("-u", "--updatecheck"):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    81
            self.updateinfo_url = a
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    82
        if o in ("-e", "--extend"):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    83
            self.extensions.append(a)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    84
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    85
    def ProcessCommandLineArgs(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    86
        self.SetCmdOptions()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    87
        try:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    88
            opts, args = getopt.getopt(sys.argv[1:], self.shortCmdOpts, self.longCmdOpts)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    89
        except getopt.GetoptError:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    90
            # print help information and exit:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    91
            self.Usage()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    92
            sys.exit(2)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    93
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    94
        for o, a in opts:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    95
            self.ProcessOption(o, a)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    96
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    97
        if len(args) > 2:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    98
            self.Usage()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    99
            sys.exit()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   100
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   101
        elif len(args) == 1:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   102
            self.projectOpen = args[0]
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   103
            self.buildpath = None
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   104
        elif len(args) == 2:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   105
            self.projectOpen = args[0]
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   106
            self.buildpath = args[1]
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   107
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   108
    def CreateApplication(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   109
        if os.path.exists("BEREMIZ_DEBUG"):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   110
            __builtin__.__dict__["BMZ_DBG"] = True
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   111
        else :
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   112
            __builtin__.__dict__["BMZ_DBG"] = False
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   113
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   114
        global wxversion, wx
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   115
        import wxversion
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   116
        wxversion.select(['2.8', '3.0'])
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   117
        import wx
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   118
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   119
        if wx.VERSION >= (3, 0, 0):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   120
            self.app = wx.App(redirect=BMZ_DBG)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   121
        else:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   122
            self.app = wx.PySimpleApp(redirect=BMZ_DBG)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   123
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   124
        self.app.SetAppName('beremiz')
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   125
        if wx.VERSION < (3, 0, 0):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   126
            wx.InitAllImageHandlers()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   127
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   128
        self.ShowSplashScreen()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   129
        self.BackgroundInitialization()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   130
        self.app.MainLoop()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   131
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   132
    def BackgroundInitialization(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   133
        self.InitI18n()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   134
        self.CheckUpdates()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   135
        self.LoadExtensions()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   136
        self.ImportModules()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   137
        self.InstallExceptionHandler()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   138
        self.ShowUI()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   139
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   140
    def InitI18n(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   141
        from util.misc import InstallLocalRessources
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   142
        InstallLocalRessources(self.app_dir)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   143
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   144
    def LoadExtensions(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   145
        for extfilename in self.extensions:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   146
            from util.TranslationCatalogs import AddCatalog
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   147
            from util.BitmapLibrary import AddBitmapFolder
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   148
            extension_folder = os.path.split(os.path.realpath(extfilename))[0]
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   149
            sys.path.append(extension_folder)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   150
            AddCatalog(os.path.join(extension_folder, "locale"))
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   151
            AddBitmapFolder(os.path.join(extension_folder, "images"))
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   152
            execfile(extfilename, locals())
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   153
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   154
    def CheckUpdates(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   155
        if self.updateinfo_url is not None:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   156
            updateinfo = _("Fetching %s") % self.updateinfo_url
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   157
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   158
            def updateinfoproc():
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   159
                global updateinfo
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   160
                try :
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   161
                    import urllib2
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   162
                    updateinfo = urllib2.urlopen(self.updateinfo_url,None).read()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   163
                except :
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   164
                    updateinfo = _("update info unavailable.")
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   165
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   166
            from threading import Thread
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   167
            self.splash.SetText(text=updateinfo)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   168
            updateinfoThread = Thread(target=updateinfoproc)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   169
            updateinfoThread.start()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   170
            updateinfoThread.join(2)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   171
            self.splash.SetText(text=updateinfo)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   172
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   173
    def ImportModules(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   174
        global BeremizIDE
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   175
        import BeremizIDE
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   176
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   177
    def InstallExceptionHandler(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   178
        import version
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   179
        import tempfile
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   180
        logpath = tempfile.gettempdir()+os.sep+'Beremiz'
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   181
        BeremizIDE.AddExceptHook(logpath,version.app_version)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   182
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   183
    def ShowUI(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   184
        self.frame = BeremizIDE.Beremiz(None, self.projectOpen, self.buildpath)
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   185
        if self.splash:
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   186
            self.splash.Close()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   187
        self.frame.Show()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   188
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   189
    def Start(self):
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   190
        self.ProcessCommandLineArgs()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   191
        self.CreateApplication()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   192
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   193
if __name__ == '__main__':
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   194
    beremiz = BeremizIDELauncher()
81f6781f7fec rename BeremizIDELauncher.py to Beremiz.py
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   195
    beremiz.Start()