File: wb_source_control_providers.py

package info (click to toggle)
svn-workbench 1.6.2-2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 1,936 kB
  • sloc: python: 14,970; sh: 87; makefile: 48; ansic: 9
file content (124 lines) | stat: -rw-r--r-- 4,367 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
'''
 ====================================================================
 Copyright (c) 2003-2006 Barry A Scott.  All rights reserved.

 This software is licensed as described in the file LICENSE.txt,
 which you should have received as part of this distribution.

 ====================================================================

    wb_source_control_providers.py

'''
import wb_exceptions

_source_code_providers = {}


def hasProvider( name ):
    return _source_code_providers.has_key( name )

def getProvider( name ):
    return _source_code_providers[ name ]

def registerProvider( provider ):
    _source_code_providers[ provider.name ] = provider

def getProviderAboutStrings():
    about_string = ''
    for provider in _source_code_providers.values():
        about_string += provider.getAboutString()

    return about_string

class Provider:
    def __init__( self, name ):
        self.name = name

    def getProjectInfo( self, app, parent ):
        raise wb_exceptions.InternalError( 'getProjectInfo not implemented' )

    def getProjectTreeItem( self, app, project_info ):
        raise wb_exceptions.InternalError( 'getProjectTreeItem not implemented' )

    def getListHandler( self, app, list_panel, project_info ):
        raise wb_exceptions.InternalError( 'getListHandler not implemented' )

    def getAboutString( self ):
        raise wb_exceptions.InternalError( 'getAboutString not implemented' )

class ProjectInfo:
    def __init__( self, app, parent, provider_name ):
        self.app = app
        self.parent = parent
        self.provider_name = provider_name
        self.project_name = None
        self.new_file_template_dir = ''
        self.menu_name = None
        self.menu_folder = ''
        self.menu_folder2 = ''
        self.menu_folder3 = ''
        self.use_background_colour = False
        self.background_colour = (255,255,255)

    def init( self, project_name, **kws ):
        self.project_name = project_name

    def isChild( self, pi ):
        # return tree if pi is a child of this pi
        raise wb_exceptions.InternalError( 'isChild not implemented' )

    def setBackgroundColour( self, use, colour ):
        self.use_background_colour = use
        self.background_colour = colour


    def readPreferences( self, get_option ):
        if get_option.has( 'new_file_template_dir' ):
            self.new_file_template_dir = get_option.getstr( 'new_file_template_dir' )

        if get_option.has( 'menu_folder' ):
            self.menu_folder = get_option.getstr( 'menu_folder' )

        if get_option.has( 'menu_folder2' ):
            self.menu_folder2 = get_option.getstr( 'menu_folder2' )

        if get_option.has( 'menu_folder3' ):
            self.menu_folder3 = get_option.getstr( 'menu_folder3' )

        if get_option.has( 'menu_name' ):
            self.menu_name = get_option.getstr( 'menu_name' )

        if get_option.has( 'background_colour_red' ):
            self.background_colour =    (get_option.getint( 'background_colour_red' )
                                        ,get_option.getint( 'background_colour_green' )
                                        ,get_option.getint( 'background_colour_blue' ))

        else:
            self.background_colour = (255,255,255)

        if get_option.has( 'use_background_colour' ):
            self.use_background_colour = get_option.getbool( 'use_background_colour' )

        else:
            self.use_background_colour = False

    def writePreferences( self, pref_dict ):
        pref_dict[ 'provider' ] = self.provider_name
        pref_dict[ 'name' ] = self.project_name

        if self.new_file_template_dir not in [None,'']:
            pref_dict[ 'new_file_template_dir' ] = self.new_file_template_dir

        if self.menu_name is not None:
            pref_dict[ 'menu_name' ] = self.menu_name

        pref_dict[ 'menu_folder' ] = self.menu_folder
        pref_dict[ 'menu_folder2' ] = self.menu_folder2
        pref_dict[ 'menu_folder3' ] = self.menu_folder3

        if self.use_background_colour:
            pref_dict[ 'use_background_colour' ] = self.use_background_colour
            pref_dict[ 'background_colour_red' ] = self.background_colour[0]
            pref_dict[ 'background_colour_green' ] = self.background_colour[1]
            pref_dict[ 'background_colour_blue' ] = self.background_colour[2]