extensions.st
author fm
Wed, 23 Sep 2009 18:53:30 +0200
changeset 102 61343482b6c7
parent 101 e2b07b2791a3
child 105 433e1cd1f448
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
102
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     1
"{ Package: 'cvut:stx/goodies/libsvn' }"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     2
!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     3
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     4
!ApplicationDefinition class methodsFor:'file templates'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     5
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     6
make_dot_proto
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     7
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     8
^ 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
     9
'# $','Header','$
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    10
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    11
# -------------- no need to change anything below ----------
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    12
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    13
# This makefile generates some standalone demo applications
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    14
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    15
#    make
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    16
#       generates %(APPLICATION)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    17
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    18
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    19
TOP=%(TOP)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    20
INCLUDE_TOP=$(TOP)/..
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    21
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    22
PACKAGE=%(APPLICATION_PACKAGE)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    23
SUBDIRS=
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    24
SUPPRESS_LOCAL_ABBREVS="yes"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    25
NOAUTOLOAD=1
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    26
NOSUBAUTOLOAD=1
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    27
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    28
LOCALINCLUDES=-I$(INCLUDE_TOP)/stx/libbasic %(LOCAL_INCLUDES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    29
LOCALDEFINES=%(LOCAL_DEFINES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    30
GLOBALDEFINES=%(GLOBAL_DEFINES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    31
MAIN_DEFINES=%(MAIN_DEFINES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    32
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    33
RCSSOURCES=Make.proto *.st
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    34
LINKSOURCES=Make.proto *.st
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    35
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    36
DELIVERBINARIES=
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    37
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    38
target: %(BUILD_TARGET) 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    39
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    40
all::   prereq exe
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    41
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    42
exe:    %(APPLICATION) $(REQUIRED_SUPPORT_DIRS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    43
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    44
LIBNAME=%(LIBRARY_NAME)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    45
STCLOCALOPT=''-package=$(PACKAGE)'' -I. -H. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) %(HEADEROUTPUTARG) %(COMMONSYMFLAG) -varPrefix=$(LIBNAME)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    46
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    47
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    48
# ********** OPTIONAL: MODIFY the next line ***
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    49
# additional C-libraries that should be pre-linked with the class-objects
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    50
LD_OBJ_LIBS=%(ADDITIONAL_LINK_LIBRARIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    51
LOCAL_SHARED_LIBS=%(ADDITIONAL_SHARED_LINK_LIBRARIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    52
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    53
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    54
# ********** OPTIONAL: MODIFY the next line ***
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    55
# additional C targets or libraries should be added below
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    56
LOCAL_EXTRA_TARGETS=
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    57
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    58
OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    59
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    60
%(ADDITIONAL_DEFINITIONS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    61
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    62
%(ADDITIONAL_DEFINITIONS_SVN)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    63
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    64
LIBLIST = $(REQUIRED_LIBS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    65
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    66
# required libs:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    67
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    68
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    69
REQUIRED_LIBS=%(REQUIRED_LIBS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    70
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    71
REQUIRED_LIBOBJS=%(REQUIRED_LIBOBJS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    72
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    73
REQUIRED_LINK_LIBOBJS=%(REQUIRED_LINK_LIBOBJS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    74
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    75
REQUIRED_SUPPORT_DIRS=%(REQUIRED_SUPPORT_DIRS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    76
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    77
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    78
%(APPLICATION):   %(STARTUP_CLASSFILENAME).$(O) $(APP_DIRS_TO_MAKE) $(APP_LIBOBJS) $(OBJS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    79
        $(MAKE) %(APPLICATION_TYPE) \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    80
                    TARGET=%(APPLICATION) \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    81
                    APPLICATION_CLASSES="%(STARTUP_CLASSFILENAME)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    82
                    APPLICATION_OBJS="$(OBJS)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    83
                    APPLICATION_LIBLIST="$(REQUIRED_LIBS)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    84
                    APPLICATION_LIBOBJS="$(REQUIRED_LIBOBJS)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    85
                    APPLICATION_LINK_LIBOBJS="$(REQUIRED_LINK_LIBOBJS)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    86
                    STARTUP_CLASS="%(STARTUP_CLASS)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    87
                    STARTUP_SELECTOR="%(STARTUP_SELECTOR)" \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    88
                    MAIN_DEFINES="%(MAIN_DEFINES)"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    89
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    90
# build all prerequisite packages for this package
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    91
prereq:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    92
%(MAKE_PREREQUISITES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    93
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    94
SOURCEFILES: %(APPLICATION)_SOURCES \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    95
        stx_SOURCES
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    96
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    97
%(SOURCE_RULES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    98
%(STX_SOURCE_RULES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
    99
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   100
RESOURCEFILES: %(APPLICATION)_RESOURCES %(APPLICATION)_BITMAPS %(ADDITIONAL_RESOURCE_TARGETS) \
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   101
        stx_RESOURCES stx_STYLES stx_BITMAPS
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   102
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   103
%(RESOURCE_RULES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   104
%(STX_RESOURCE_RULES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   105
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   106
%(PREREQUISITES_LIBS)      
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   107
%(SUBPROJECTS_LIBS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   108
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   109
%(ADDITIONAL_RULES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   110
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   111
%(ADDITIONAL_RULES_SVN)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   112
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   113
clean::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   114
        -rm -f *.so %(APPLICATION).$(O)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   115
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   116
clobber:: clean
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   117
        -rm -f %(APPLICATION) *.img *.sav
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   118
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   119
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   120
%(DEPENDENCIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   121
# ENDMAKEDEPEND --- do not remove this line
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   122
'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   123
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   124
    "Modified: / 09-08-2006 / 16:50:23 / fm"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   125
    "Created: / 29-09-2006 / 23:47:07 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   126
    "Modified: / 24-06-2009 / 21:40:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   127
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   128
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   129
!Change methodsFor:'queries'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   130
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   131
isForGeneratedSubject
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   132
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   133
    Answers true iff subject of this method is somewhat
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   134
    auto-generated by some tool - just like version methods
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   135
    are.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   136
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   137
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   138
    ^ false
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   139
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   140
    "Created: / 08-04-2009 / 09:45:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   141
    "Modified: / 17-08-2009 / 18:55:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   142
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   143
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   144
!Change methodsFor:'queries'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   145
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   146
isMethodPackageChange
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   147
    ^ false
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   148
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   149
    "Created: / 08-04-2009 / 09:00:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   150
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   151
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   152
!ChangeSet methodsFor:'queries'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   153
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   154
changesForPackage:aPackageSymbol
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   155
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   156
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   157
        ChangeSet current changesForPackage:#'stx:goodies/libsvn'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   158
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   159
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   160
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   161
    ^(self select:[:aChange | 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   162
        |removeThis mClass mthd|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   163
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   164
        removeThis := false.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   165
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   166
            mClass := aChange changeClass.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   167
            mClass notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   168
                mthd := mClass compiledMethodAt:(aChange selector).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   169
                mthd isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   170
                    aChange isMethodRemoveChange ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   171
                        removeThis := (mClass package = aPackageSymbol)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   172
                    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   173
                ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   174
                    removeThis := (mthd package = aPackageSymbol)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   175
                ]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   176
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   177
        ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   178
            (aChange isClassChange) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   179
                (aChange changeClass notNil) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   180
                    removeThis := (aChange changeClass package = aPackageSymbol)     
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   181
                ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   182
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   183
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   184
        removeThis
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   185
    ])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   186
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   187
    "Created: / 05-11-2001 / 14:21:17 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   188
    "Modified: / 12-10-2006 / 16:51:27 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   189
    "Modified: / 22-10-2008 / 13:25:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   190
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   191
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   192
!ChangeSet methodsFor:'utilities'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   193
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   194
condenseChanges
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   195
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   196
    | changesToRemove changesToKeep |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   197
    changesToKeep := self class new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   198
    changesToRemove := self class new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   199
    self reverseDo:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   200
        [:change|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   201
        (changesToKeep anySatisfy:[:each|each isForSameAs: change])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   202
            ifTrue:[changesToRemove add: change]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   203
            ifFalse:[changesToKeep add: change]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   204
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   205
    self condenseChanges: changesToRemove.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   206
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   207
    "Created: / 22-10-2008 / 13:05:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   208
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   209
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   210
!ChangeSet methodsFor:'utilities'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   211
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   212
condenseChangesForPackage2:aPackageSymbol
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   213
    "remove more changes for aPackageSymbol
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   214
     This is invoked when a project is checked into the repository."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   215
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   216
    |changesToRemove|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   217
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   218
    changesToRemove := self select:[:aChange | 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   219
        |removeThis mClass mthd|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   220
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   221
        removeThis := false.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   222
        (aChange isMethodChange or:[aChange isMethodRemoveChange]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   223
            mClass := aChange changeClass.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   224
            mClass notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   225
                mthd := mClass compiledMethodAt:(aChange selector).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   226
                mthd isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   227
                    removeThis := (mClass package = aPackageSymbol)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   228
                ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   229
                    removeThis := (mthd package = aPackageSymbol)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   230
                ]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   231
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   232
        ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   233
            (aChange isClassChange) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   234
                (aChange changeClass notNil) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   235
                    removeThis := (aChange changeClass package = aPackageSymbol)     
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   236
                ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   237
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   238
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   239
        removeThis
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   240
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   241
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   242
    self condenseChanges:changesToRemove
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   243
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   244
    "Modified: / 12-10-2006 / 16:51:27 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   245
    "Created: / 09-08-2009 / 14:29:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   246
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   247
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   248
!ChangeSet methodsFor:'utilities'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   249
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   250
diffSetsAgainstImage
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   251
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   252
    |imageChangeSet|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   253
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   254
    imageChangeSet := self class new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   255
    self changedClasses do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   256
        [:class|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   257
        (class isMetaclass or:[class isPrivate]) ifFalse:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   258
            [imageChangeSet addAll:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   259
                (self class fromStream: class source asString readStream)]].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   260
    ^self diffSetsAgainst: imageChangeSet
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   261
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   262
    "Created: / 04-12-2007 / 16:03:28 / janfrog"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   263
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   264
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   265
!ChangeSet class methodsFor:'instance creation'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   266
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   267
forPackage: package
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   268
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   269
    ^self forPackage: package ignoreAutoloaded: false.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   270
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   271
    "Created: / 20-05-2008 / 17:56:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   272
    "Modified: / 12-08-2009 / 14:23:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   273
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   274
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   275
!ChangeSet class methodsFor:'instance creation'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   276
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   277
forPackage: package ignoreAutoloaded: ignoreAutoloaded
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   278
    "build a changeSet for a given package"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   279
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   280
    |changeSet packageClasses packageExtensions|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   281
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   282
    packageClasses := ProjectDefinition searchForClassesWithProject: package.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   283
    packageExtensions := ProjectDefinition searchForExtensionsWithProject: package.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   284
    changeSet := self forExistingMethods: packageExtensions.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   285
    packageClasses do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   286
        [:cls|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   287
        (ignoreAutoloaded not and:[cls isLoaded not])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   288
            ifTrue:[cls autoload].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   289
        cls isLoaded 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   290
            ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   291
                [changeSet addAll:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   292
                    (self 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   293
                        forExistingClass:cls 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   294
                        withExtensions:false 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   295
                        extensionsOnly:false)]].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   296
    ^changeSet
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   297
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   298
    "Created: / 12-08-2009 / 14:22:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   299
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   300
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   301
!Class methodsFor:'accessing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   302
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   303
classFilename
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   304
    "return the name of the file from which the class was compiled.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   305
     If the class was loaded via an explicit load (i.e. from the fileBrowser),
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   306
     this will be an absolute path. Oherwise, it will be a basename only.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   307
     See classBaseFilename for a method which always returns the basename."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   308
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   309
    |owner info fn|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   310
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   311
    (SVN::CompatModeQuery notNil and:[SVN::CompatModeQuery query not])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   312
        ifTrue:[^SVN::Repository containerNameForClass: self].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   313
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   314
    (owner := self owningClass) notNil ifTrue:[^ owner classFilename].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   315
    classFilename notNil 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   316
        ifTrue:[ ^ classFilename ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   317
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   318
    (info := self revisionInfo) notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   319
        fn := info fileName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   320
        fn notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   321
            ^ fn
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   322
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   323
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   324
    ^ (Smalltalk fileNameForClass:self), '.st'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   325
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   326
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   327
     SVN::Repository classFilename
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   328
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   329
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   330
    "Modified: / 22-10-2008 / 20:58:21 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   331
    "Modified: / 13-08-2009 / 16:07:07 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   332
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   333
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   334
!Class methodsFor:'fileOut'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   335
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   336
fileOutAsMethodIn: class selector: selector
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   337
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   338
    ^self fileOutAsMethodIn: class selector: selector category: 'sources'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   339
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   340
    "Created: / 08-04-2009 / 20:58:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   341
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   342
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   343
!Class methodsFor:'accessing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   344
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   345
svnRepository
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   346
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   347
    ^SVN::RepositoryManager repositoryForPackage: self package
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   348
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   349
    "Created: / 19-04-2008 / 18:24:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   350
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   351
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   352
!ClassChange methodsFor:'queries'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   353
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   354
isForMeta
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   355
    ^ (self className endsWith:' class')
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   356
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   357
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   358
!ClassChange methodsFor:'accessing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   359
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   360
nonMetaClassName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   361
    ^ self isForMeta 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   362
        ifTrue:[ self className copyTo:(self className size - 6) ]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   363
        ifFalse:[ self className ]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   364
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   365
    "Created: / 06-11-2008 / 17:26:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   366
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   367
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   368
!Filename methodsFor:'reading-directories'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   369
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   370
directoryContentsAsFilenamesMatching: patternOrCollectionOfThose
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   371
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   372
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   373
        Same as directoryContentsAsFilenames, but returns only files
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   374
        that matches given patterns. This uses String>>matches:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   375
        for pattern matching    
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   376
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   377
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   378
    |names|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   379
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   380
    names := self directoryContentsMatching: patternOrCollectionOfThose .
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   381
    names isNil ifTrue:[^ nil].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   382
    ^ names asOrderedCollection collect:[:entry | self construct:entry].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   383
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   384
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   385
    '/etc' asFilename 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   386
        directoryContentsAsFilenamesMatching: 'pass*'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   387
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   388
    '/etc' asFilename 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   389
            directoryContentsAsFilenamesMatching: #('pass*' 'nsswitch.conf')
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   390
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   391
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   392
    "Created: / 03-06-2009 / 09:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   393
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   394
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   395
!Filename methodsFor:'reading-directories'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   396
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   397
directoryContentsMatching: patternOrCollectionOfThose
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   398
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   399
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   400
        Same as directoryContants, but returns only files
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   401
        that matches given patterns. This uses String>>matches:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   402
        for pattern matching
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   403
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   404
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   405
    | names patterns |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   406
    patterns := patternOrCollectionOfThose isString
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   407
                    ifTrue: [Array with: patternOrCollectionOfThose]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   408
                    ifFalse:[patternOrCollectionOfThose].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   409
    names := self directoryContents.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   410
    names ifNil:[^nil].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   411
    ^names select:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   412
        [:e|patterns anySatisfy:[:pattern|e matches: pattern]]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   413
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   414
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   415
     '/etc' asFilename 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   416
        directoryContentsMatching: 'pass*'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   417
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   418
    '/etc' asFilename 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   419
        directoryContentsMatching: #('pass*' 'nsswitch.conf')
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   420
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   421
    '/etc' asFilename 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   422
        directoryContentsMatching: #('does-not-exists.txt')
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   423
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   424
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   425
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   426
    "Created: / 03-06-2009 / 09:52:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   427
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   428
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   429
!LibraryDefinition class methodsFor:'file templates'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   430
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   431
make_dot_proto
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   432
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   433
^ 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   434
'# $','Header','$
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   435
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   436
# DO NOT EDIT 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   437
# automagically generated from the projectDefinition: ',self name,'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   438
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   439
# Warning: once you modify this file, do not rerun
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   440
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   441
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   442
# The Makefile as generated by this Make.proto supports the following targets:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   443
#    make         - compile all st-files to a classLib
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   444
#    make clean   - clean all temp files
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   445
#    make clobber - clean all
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   446
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   447
# This file contains definitions for Unix based platforms.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   448
# It shares common definitions with the win32-make in Make.spec.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   449
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   450
#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   451
# position (of this package) in directory hierarchy:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   452
# (must point to ST/X top directory, for tools and includes)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   453
TOP=%(TOP)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   454
INCLUDE_TOP=$(TOP)/..
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   455
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   456
# subdirectories where targets are to be made:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   457
SUBDIRS=%(SUBDIRECTORIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   458
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   459
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   460
# subdirectories where Makefiles are to be made:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   461
# (only define if different from SUBDIRS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   462
# ALLSUBDIRS=
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   463
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   464
REQUIRED_SUPPORT_DIRS=%(REQUIRED_SUPPORT_DIRS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   465
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   466
# if your embedded C code requires any system includes, 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   467
# add the path(es) here:, 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   468
# ********** OPTIONAL: MODIFY the next lines ***
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   469
# LOCALINCLUDES=-Ifoo -Ibar
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   470
LOCALINCLUDES=%(LOCAL_INCLUDES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   471
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   472
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   473
# if you need any additional defines for embedded C code, 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   474
# add them here:, 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   475
# ********** OPTIONAL: MODIFY the next lines ***
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   476
# LOCALDEFINES=-Dfoo -Dbar -DDEBUG
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   477
LOCALDEFINES=%(LOCAL_DEFINES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   478
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   479
LIBNAME=%(LIBRARY_NAME)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   480
STCLOCALOPT=''-package=$(PACKAGE)'' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) %(HEADEROUTPUTARG) %(COMMONSYMFLAG) -varPrefix=$(LIBNAME)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   481
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   482
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   483
# ********** OPTIONAL: MODIFY the next line ***
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   484
# additional C-libraries that should be pre-linked with the class-objects
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   485
LD_OBJ_LIBS=%(ADDITIONAL_LINK_LIBRARIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   486
LOCAL_SHARED_LIBS=%(ADDITIONAL_SHARED_LINK_LIBRARIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   487
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   488
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   489
# ********** OPTIONAL: MODIFY the next line ***
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   490
# additional C targets or libraries should be added below
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   491
LOCAL_EXTRA_TARGETS=
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   492
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   493
OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   494
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   495
%(ADDITIONAL_DEFINITIONS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   496
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   497
all:: preMake %(PRIMARY_TARGET) postMake
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   498
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   499
pre_objs:: %(ADDITIONAL_TARGETS) %(ADDITIONAL_TARGETS_SVN)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   500
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   501
%(ADDITIONAL_RULES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   502
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   503
%(ADDITIONAL_RULES_SVN)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   504
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   505
# add more install actions here
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   506
install::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   507
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   508
# add more install actions for aux-files (resources) here
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   509
installAux::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   510
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   511
# add more preMake actions here
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   512
preMake::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   513
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   514
# add more postMake actions here
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   515
postMake:: cleanjunk
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   516
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   517
prereq: $(REQUIRED_SUPPORT_DIRS)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   518
%(MAKE_PREREQUISITES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   519
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   520
cleanjunk::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   521
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   522
clean::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   523
%(TAB)-rm -f *.o *.H
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   524
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   525
clobber:: clean
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   526
%(TAB)-rm -f *.so *.dll
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   527
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   528
',
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   529
"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   530
$(INSTALLBASE)::
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   531
%(TAB)@test -d $@ || mkdir $@
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   532
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   533
$(INSTALLBASE)/packages:: $(INSTALLBASE)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   534
%(TAB)@test -d $@ || mkdir $@
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   535
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   536
$(INSTALLBASE)/packages/$(MODULE):: $(INSTALLBASE)/packages
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   537
%(TAB)@test -d $@ || mkdir $@
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   538
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   539
$(INSTALLBASE)/packages/$(MODULE)/dapasx:: $(INSTALLBASE)/packages/$(MODULE)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   540
%(TAB)@test -d $@ || mkdir $@
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   541
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   542
$(INSTALLBASE)/packages/$(MODULE)/dapasx/interactiver_editor:: $(INSTALLBASE)/packages/$(MODULE)/dapasx
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   543
%(TAB)@test -d $@ || mkdir $@
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   544
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   545
$(INSTALLBASE)/packages/$(MODULE)/$(MODULE_DIR):: $(INSTALLBASE)/packages/$(MODULE)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   546
%(TAB)@test -d $@ || mkdir $@
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   547
"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   548
'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   549
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   550
%(DEPENDENCIES)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   551
# ENDMAKEDEPEND --- do not remove this line
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   552
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   553
'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   554
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   555
    "Created: / 08-08-2006 / 20:45:36 / fm"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   556
    "Modified: / 09-08-2006 / 16:50:23 / fm"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   557
    "Modified: / 14-09-2006 / 15:48:02 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   558
    "Modified: / 24-06-2009 / 21:39:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   559
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   560
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   561
!Method methodsFor:'accessing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   562
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   563
makeSourceFileAbsolute
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   564
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   565
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   566
        Makes a source file reference absolute.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   567
        This is required by SVN, because svn working copy
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   568
        is in package path, so it's existence may corrupt source
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   569
        files.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   570
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   571
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   572
    | fileStream |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   573
    
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   574
    "check whether my source is in external file. If not, this is noop"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   575
    sourcePosition ifNil:[^nil].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   576
    "already absolute"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   577
    source asFilename isAbsolute ifTrue:[^self].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   578
    fileStream := self rawSourceStream.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   579
    fileStream isFileStream ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   580
        [source := fileStream fileName asAbsoluteFilename pathName].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   581
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   582
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   583
        (Method compiledMethodAt:#mclass:)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   584
            makeSourceFileAbsolute
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   585
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   586
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   587
    "Created: / 21-08-2009 / 17:24:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   588
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   589
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   590
!MethodChange methodsFor:'queries'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   591
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   592
isForGeneratedSubject
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   593
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   594
    Answers true iff subject of this method is somewhat
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   595
    auto-generated by some tool - just like version methods
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   596
    are.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   597
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   598
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   599
    ^self isForMeta and: [self selector = #version]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   600
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   601
    "Created: / 17-08-2009 / 18:56:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   602
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   603
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   604
!MethodChange methodsFor:'printing & storing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   605
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   606
printOn:aStream
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   607
    "append a user printed representation of the receiver to aStream.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   608
     The format is suitable for a human - not meant to be read back."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   609
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   610
    aStream 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   611
        nextPutAll:(self className ? 'unnamed'); 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   612
        nextPutAll:'>>'; 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   613
        nextPutAll:(selector ? '?'); 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   614
        nextPutAll:' {'; 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   615
        nextPutAll:(methodCategory ? '?'); 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   616
        nextPutAll:'}'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   617
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   618
    "Modified: / 04-10-2006 / 16:46:01 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   619
    "Modified: / 07-11-2008 / 08:29:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   620
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   621
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   622
!NewLauncher methodsFor:'change & update'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   623
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   624
infoLineTemplate
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   625
    "available values:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   626
        PACKAGE         - the current packageID
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   627
        PACKAGEOREMPTY  - the current packageID or empty if its __NoPackage__
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   628
        IMAGE           - the current snapshot image
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   629
        CVS             - the CVS source repository or empty
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   630
        DB              - the Store source repository DB or empty
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   631
        SVN_WORKING_COPY- the SVN working copy dir or empty
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   632
        NOREPOSITORY    - the tring 'No Repository' empty
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   633
        NS              - the default namespace, or empty (if Smalltalk)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   634
        PROJECTDIR      - the default fileOut directory or empty (if current)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   635
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   636
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   637
    ^ '%(PACKAGEOREMPTY)%(IMAGE)  %(CVS)%(DB)%(SVN_WORKING_COPY)'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   638
    "/ ^ '%(PACKAGEOREMPTY)%(IMAGE)%(CVS)%(DB)%(NOREPOSITORY)%(NS)'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   639
    "/ ^ '%(PACKAGE)%(IMAGE)%(CVS)%(DB)%(NOREPOSITORY)%(NS)%(PROJECTDIR)'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   640
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   641
    "Modified: / 30-09-2008 / 12:45:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   642
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   643
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   644
!NewLauncher methodsFor:'change & update'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   645
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   646
updateInfo
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   647
    "update the infoView from the current project"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   648
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   649
    |project projectName projectDir packageName packageNameOrNil defNameSpace projectInfo
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   650
     cvsRepository storeDB image bindings|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   651
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   652
    (Project notNil and:[(project := Project current) notNil]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   653
        projectName := project name.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   654
        projectDir := project directory.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   655
        packageName := packageNameOrNil := project package.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   656
        defNameSpace := project defaultNameSpace.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   657
        packageNameOrNil = Project noProjectID ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   658
            packageNameOrNil := nil
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   659
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   660
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   661
    defNameSpace isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   662
        defNameSpace := Smalltalk.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   663
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   664
    image := ((ObjectMemory imageName ? 'none') asFilename baseName).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   665
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   666
    SourceCodeManager notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   667
        SourceCodeManager isCVS ifTrue:[                
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   668
            cvsRepository := SourceCodeManager repositoryName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   669
            (cvsRepository notNil and:[cvsRepository startsWith:':pserver:']) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   670
                cvsRepository := cvsRepository copyFrom:':pserver:'size+1.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   671
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   672
        ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   673
            SourceCodeManager isStore ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   674
                storeDB := SourceCodeManager hostAndDBName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   675
            ]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   676
        ]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   677
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   678
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   679
    bindings := Dictionary new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   680
    packageName isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   681
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   682
            at:'PACKAGE'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   683
            put:''.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   684
    ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   685
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   686
            at:'PACKAGE'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   687
            put:((resources string:'Pkg') allBold,':'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   688
                 ,(packageName asText colorizeAllWith:(Color blue darkened)),' ').
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   689
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   690
    packageNameOrNil isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   691
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   692
            at:'PACKAGEOREMPTY'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   693
            put:''.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   694
    ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   695
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   696
            at:'PACKAGEOREMPTY'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   697
            put:((resources string:'Pkg') allBold,':'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   698
                 ,(packageNameOrNil asText colorizeAllWith:(Color blue darkened)),' ').
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   699
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   700
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   701
    bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   702
        at:'IMAGE'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   703
        put:((resources string:'Img') allBold,':'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   704
             ,(image asText colorizeAllWith:(Color blue darkened)),' ').
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   705
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   706
    cvsRepository isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   707
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   708
            at:'CVS'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   709
            put:''
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   710
    ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   711
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   712
            at:'CVS'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   713
            put:((resources string:'CVS') allBold,':'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   714
                 ,(cvsRepository asText colorizeAllWith:(Color blue darkened)),' ').
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   715
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   716
    storeDB isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   717
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   718
            at:'DB'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   719
            put:''.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   720
    ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   721
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   722
            at:'DB'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   723
            put:((resources string:'DB') allBold,':'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   724
                 ,(storeDB asText colorizeAllWith:(Color blue darkened)),' ').
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   725
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   726
    (cvsRepository isNil and:[storeDB isNil]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   727
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   728
            at:'NOREPOSITORY'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   729
            put:' >','No Repository'allBold,'< '.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   730
    ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   731
        bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   732
            at:'NOREPOSITORY'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   733
            put:''.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   734
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   735
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   736
    bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   737
        at:'NS'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   738
        put:( defNameSpace == Smalltalk ifTrue:'' ifFalse:[ '"',defNameSpace name,'" '] ).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   739
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   740
    bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   741
        at:'PROJECTDIR'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   742
        put:((resources string:'Dir') allBold,':'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   743
             , (projectDir contractTo: 30)),' '.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   744
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   745
    SVN::RepositoryManager enabled 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   746
        ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   747
            [bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   748
                at:  'SVN_WORKING_COPY'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   749
                put: ('Working copy' allBold, ': ',
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   750
                        (SVN::RepositoryManager current workingCopyBase asFilename baseName asString colorizeAllWith:(Color blue darkened)))]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   751
        ifFalse:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   752
            [bindings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   753
                at:  'SVN_WORKING_COPY'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   754
                put: ''].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   755
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   756
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   757
    projectInfo := self infoLineTemplate bindWithArguments:bindings.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   758
    self infoLabelHolder value:projectInfo.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   759
    ^projectInfo.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   760
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   761
    "Modified: / 30-09-2008 / 12:46:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   762
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   763
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   764
!ProjectDefinition class methodsFor:'description - compilation'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   765
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   766
additionalRulesSvn_make_dot_proto
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   767
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   768
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   769
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   770
    ^ String streamContents:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   771
        [:s|s 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   772
        nextPutLine:'update-svn-revision:';
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   773
        tab; nextPutLine: 'sed -i -e "s/\"\$$SVN\-Revision:\".*\"\$$\"/\"\$$SVN-Revision:\"''$(shell svnversion -n)''\"\$$\"/g" \';
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   774
        tab; tab; nextPutLine: (self name , '.st');
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   775
        nextPutLine: '.PHONY: update-svn-revision']
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   776
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   777
    "Created: / 24-06-2009 / 21:33:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   778
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   779
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   780
!ProjectDefinition class methodsFor:'description - compilation'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   781
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   782
additionalTargetsSvn_make_dot_proto
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   783
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   784
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   785
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   786
    ^ 'update-svn-revision'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   787
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   788
    "Created: / 24-06-2009 / 21:35:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   789
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   790
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   791
!ProjectDefinition class methodsFor:'private loading'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   792
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   793
loadAllClassesAsAutoloaded:asAutoloaded
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   794
    "load (fileIn) classes that should be present -
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   795
     install as autoloaded classes marked to be autoloaded.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   796
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   797
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   798
     Answer true, if classes have been loaded"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   799
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   800
    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   801
     classesWhichFailedToLoad|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   802
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   803
    platformName := OperatingSystem platformName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   804
    classNamesToLoad := OrderedCollection new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   805
    classNamesToAutoload := OrderedCollection new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   806
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   807
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes | |eachClassnameSym isAutoload cls|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   808
        eachClassnameSym := eachClassname asSymbol.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   809
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   810
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   811
        "no need to (re-)load an existing class, but install if should be loaded"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   812
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   813
        (cls isNil or:[cls isLoaded not and:[isAutoload not]]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   814
            (eachAttributes isEmpty 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   815
             or:[(eachAttributes size == 1 and:[isAutoload])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   816
             or:[eachAttributes includes:platformName]]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   817
                hasClassesToLoad := true.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   818
                isAutoload ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   819
                    classNamesToAutoload add:eachClassnameSym.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   820
                ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   821
                    classNamesToLoad add:eachClassnameSym.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   822
                ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   823
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   824
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   825
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   826
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   827
    hasClassesToLoad ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   828
        loadedClasses := OrderedCollection new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   829
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   830
        "we need the abbreviations, since sometimes there is no 1-to-1 mapping
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   831
         of class name to file name"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   832
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   833
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   834
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   835
        "install autoloaded classes first,
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   836
         some others may depend on them"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   837
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   838
        classNamesToAutoload withIndexDo:[:eachClassName :index|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   839
            ActivityNotification
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   840
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   841
                errorString: 'Autoloading class ', eachClassName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   842
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   843
            Smalltalk
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   844
                installAutoloadedClassNamed:eachClassName 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   845
                category:#autoloaded    "FIXME"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   846
                package:self package 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   847
                revision:nil 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   848
                numClassInstVars:0.     "FIXME"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   849
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   850
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   851
        classesWhichFailedToLoad := OrderedCollection new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   852
        classNamesToLoad withIndexDo:[:eachClassName :index| 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   853
            |cls|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   854
            ActivityNotification
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   855
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   856
                errorString: 'Loading class ', eachClassName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   857
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   858
            Error handle:[:ex |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   859
                "maybe, fileIn failed, because the load order is wrong.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   860
                 Work around this by installing the class as autoloaded and
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   861
                 loading it"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   862
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   863
                classesWhichFailedToLoad add:eachClassName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   864
                Smalltalk
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   865
                    installAutoloadedClassNamed:eachClassName 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   866
                    category:#autoloaded    "FIXME"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   867
                    package:self package 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   868
                    revision:nil 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   869
                    numClassInstVars:0.     "FIXME"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   870
            ] do:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   871
                cls := Smalltalk 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   872
                            fileInClass:eachClassName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   873
                            package:self package
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   874
                            initialize:false
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   875
                            lazy:false
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   876
                            silent:true.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   877
                cls notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   878
                    loadedClasses add:cls
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   879
                ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   880
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   881
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   882
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   883
        classesWhichFailedToLoad do:[:eachClassName |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   884
            (Smalltalk at:eachClassName) autoload.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   885
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   886
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   887
        loadedClasses do:[:eachLoadedClass | 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   888
            "do not initialize, if initialize method is inherited"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   889
            (eachLoadedClass theMetaclass implements:#initialize) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   890
                eachLoadedClass initialize
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   891
            ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   892
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   893
        ^ true.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   894
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   895
    ^ false.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   896
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   897
    "Created: / 17-08-2006 / 01:01:14 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   898
    "Modified: / 26-10-2006 / 12:30:01 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   899
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   900
    "Modified: / 22-08-2009 / 12:00:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   901
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   902
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   903
!ProjectDefinition class methodsFor:'loading'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   904
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   905
loadAsAutoloaded:asAutoloaded    
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   906
    "load the project.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   907
     If asAutoloaded == true, install all new classes as autoloaded.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   908
     Answer true, if new classes have been installed for this package, 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   909
     false if the package's classes have been already present."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   910
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   911
    |newStuffHasBeenLoaded|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   912
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   913
    self projectIsLoaded ifTrue:[^ false].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   914
    thisContext isRecursive ifTrue:[^ false].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   915
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   916
    newStuffHasBeenLoaded := false.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   917
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   918
    (self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   919
        "/ thisContext fullPrintAll.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   920
        Transcript show:'loading '.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   921
        asAutoloaded ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   922
            Transcript show:'as autoloaded '.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   923
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   924
        Transcript showCR:self name.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   925
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   926
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   927
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   928
    self activityNotification:'Executing pre-load action'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   929
    self preLoadAction.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   930
    Class withoutUpdatingChangesDo:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   931
        self activityNotification:'Loading prerequisities'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   932
        self loadPreRequisitesAsAutoloaded:asAutoloaded.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   933
        asAutoloaded ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   934
            self loadClassLibrary.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   935
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   936
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   937
        self activityNotification:'Loading extensions'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   938
        newStuffHasBeenLoaded := newStuffHasBeenLoaded | self loadExtensions.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   939
        self activityNotification:'Loading classes'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   940
        newStuffHasBeenLoaded := newStuffHasBeenLoaded | (self loadAllClassesAsAutoloaded:asAutoloaded).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   941
        self activityNotification:'Loading sub projects'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   942
        self loadSubProjectsAsAutoloaded:asAutoloaded.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   943
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   944
    self activityNotification:'Executing post-load action'.        
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   945
    self postLoadAction.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   946
    self projectIsLoaded:true.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   947
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   948
    ^ newStuffHasBeenLoaded
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   949
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   950
    "Created: / 17-08-2006 / 01:01:41 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   951
    "Modified: / 21-11-2006 / 15:07:09 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   952
    "Modified: / 30-10-2008 / 08:16:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   953
    "Modified: / 22-08-2009 / 12:02:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   954
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   955
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   956
!ProjectDefinition class methodsFor:'mappings'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   957
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   958
make_dot_proto_mappings
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   959
    ^ Dictionary new
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   960
        at: 'TAB' put: ( Character tab asString );
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   961
        at: 'TOP' put: ( self pathToTop_unix );
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   962
        at: 'LIBRARY_NAME' put: ( self libraryName );
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   963
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   964
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_unix);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   965
        at: 'LOCAL_DEFINES' put: self localDefines_unix;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   966
        at: 'GLOBAL_DEFINES' put: self globalDefines_unix;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   967
        at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   968
        at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   969
        at: 'PRIMARY_TARGET' put: (self primaryTarget_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   970
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   971
        at: 'ADDITIONAL_RULES' put: (self additionalRules_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   972
        at: 'ADDITIONAL_RULES_SVN' put: (self additionalRulesSvn_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   973
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   974
        at: 'ADDITIONAL_TARGETS_SVN' put: (self additionalTargetsSvn_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   975
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   976
        at: 'ADDITIONAL_SHARED_LINK_LIBRARIES' put: (self additionalSharedLinkLibraries_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   977
        at: 'DEPENDENCIES' put: (self generateDependencies_unix);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   978
        at: 'MODULE' put: ( self module );  
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   979
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory ); 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   980
        at: 'MODULE_PATH' put: ( self moduleDirectory );
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   981
        at: 'MAKE_PREREQUISITES' put: (self generateRequiredMakePrerequisites_make_dot_proto);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   982
        yourself
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   983
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   984
    "Created: / 09-08-2006 / 11:20:45 / fm"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   985
    "Modified: / 09-08-2006 / 16:44:48 / fm"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   986
    "Modified: / 14-09-2006 / 18:57:52 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   987
    "Modified: / 24-06-2009 / 21:50:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   988
    "Modified: / 22-08-2009 / 12:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   989
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   990
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   991
!ProjectDefinition class methodsFor:'accessing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   992
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   993
packageDirectory
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   994
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   995
    ^Smalltalk packageDirectoryForPackageId: self package
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   996
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   997
    "Created: / 15-06-2009 / 12:01:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   998
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
   999
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1000
!ProjectDefinition class methodsFor:'accessing - svn'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1001
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1002
svnRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1003
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1004
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1005
        Answers SVN revision of given package. The revision is computed
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1006
        as follows:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1007
        1) Look at package directory if there is .svn administration
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1008
           directory. If so, uses SVN to obtain SVN revision & return
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1009
        2) If svnRevisionNr return non-nil, use that as SVN revision & return
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1010
        3) If everything fails, compute maximum from all revision of all 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1011
           classes & extensions
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1012
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1013
    | pkgDir revNr |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1014
    
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1015
    "1)"        
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1016
    pkgDir := self packageDirectory.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1017
    (pkgDir notNil and: [pkgDir exists and: [(pkgDir / '.svn') exists]]) ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1018
        [[revNr := (SVN::InfoCommand new
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1019
                    workingCopy: (SVN::WorkingCopy branch: (SVN::Branch new) path: pkgDir);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1020
                    execute) anyOne revision] 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1021
                        value
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1022
                        "/on: Error do: [revNr := nil]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1023
                        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1024
    revNr ifNotNil:[^SVN::Revision number:revNr].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1025
    "2)"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1026
    "We have to explicitly check for existence of svnRevisionNr,
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1027
     because we don't want to invoke inherited method"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1028
    (self class methodDictionary includesKey: #svnRevisionNr)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1029
        ifTrue:[revNr := self perform:#svnRevisionNr].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1030
    revNr ifNotNil:[^SVN::Revision number:(revNr asString select:[:e|e isDigit])].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1031
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1032
    "3)"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1033
    revNr := (self searchForClassesWithProject: self package)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1034
                inject: 0 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1035
                into:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1036
                    [:rev :cls|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1037
                    rev max: (cls revision ? '0') asNumber].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1038
    ^revNr ~= 0 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1039
        ifTrue: [SVN::Revision number:revNr]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1040
        ifFalse:[SVN::Revision head]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1041
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1042
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1043
        stx_libbasic svnRevision 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1044
        stx_goodies_libsvn svnRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1045
        stx_goodies_libsvn revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1046
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1047
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1048
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1049
    "Created: / 15-06-2009 / 11:54:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1050
    "Modified: / 22-08-2009 / 09:06:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1051
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1052
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1053
!ProjectDefinition class methodsFor:'code generation'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1054
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1055
svnRevisionNr_code: revisionNrOrNil
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1056
    ^ String streamContents:[:s |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1057
        s nextPutLine:'svnRevisionNr'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1058
        s nextPutLine:'    "Return a SVN revision number of myself.'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1059
        s nextPutLine:'     This number is updated after a commit"'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1060
        s cr; 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1061
        nextPutLine:'    ^ "$SVN-Revision:"''', revisionNrOrNil printString , '''"$"'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1062
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1063
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1064
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1065
     self svnRevisionNr_code       
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1066
     stx_libbasic3 svnRevisionNr_code 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1067
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1068
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1069
    "Created: / 16-06-2009 / 12:12:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1070
    "Modified: / 22-08-2009 / 09:05:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1071
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1072
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1073
!Smalltalk class methodsFor:'system management-files'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1074
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1075
fileNameForClass:aClassOrClassName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1076
    "return a actual or expected (or most wanted) filename for aClassOrClassName."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1077
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1078
    |cls nonMetaclass nm nm1 nm2 compatQuery|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1079
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1080
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1081
    compatQuery := Smalltalk classNamed: 'SVN::CompatModeQuery'.        
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1082
    (compatQuery notNil and:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1083
            [compatQuery isLoaded  and:[compatQuery query not]])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1084
        ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1085
        [nm := aClassOrClassName isBehavior
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1086
                    ifTrue:[aClassOrClassName name]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1087
                    ifFalse:[aClassOrClassName].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1088
        nm := nm copyReplaceAll:$: with:$_.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1089
        ^nm].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1090
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1091
    aClassOrClassName isBehavior ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1092
        nonMetaclass := aClassOrClassName theNonMetaclass.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1093
        nm := nonMetaclass getClassFilename.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1094
        nm notNil ifTrue:[^ nm asFilename withoutSuffix baseName].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1095
        nm1 := nonMetaclass name.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1096
        nm2 := nonMetaclass nameWithoutPrefix.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1097
    ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1098
        cls := Smalltalk classNamed:aClassOrClassName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1099
        cls notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1100
            nonMetaclass := cls theNonMetaclass.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1101
            nm := nonMetaclass getClassFilename.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1102
            nm notNil ifTrue:[^ nm asFilename withoutSuffix baseName].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1103
            nm1 := nonMetaclass name.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1104
            nm2 := nonMetaclass nameWithoutPrefix.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1105
        ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1106
            nm1 := aClassOrClassName.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1107
            nm2 := (aClassOrClassName copyFrom:(aClassOrClassName lastIndexOf:$:)+1).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1108
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1109
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1110
    nm1 := nm1 asSymbol.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1111
    nm2 := nm2 asSymbol.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1112
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1113
    CachedAbbreviations notNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1114
        (CachedAbbreviations includesKey:nm1) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1115
            ^ (CachedAbbreviations at:nm1) asFilename baseName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1116
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1117
        (CachedAbbreviations includesKey:nm2) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1118
            ^ (CachedAbbreviations at:nm2) asFilename baseName
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1119
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1120
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1121
    ^ nm1 copyReplaceAll:$: with:$_
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1122
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1123
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1124
     Smalltalk fileNameForClass:#Complex
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1125
     Smalltalk fileNameForClass:'SmallInteger'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1126
     Smalltalk fileNameForClass:'UnixOperatingSystem'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1127
     Smalltalk fileNameForClass:'Launcher'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1128
     Smalltalk fileNameForClass:'SomeUnknownClass'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1129
     Smalltalk fileNameForClass:OSI::FTAMOperation
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1130
     Smalltalk fileNameForClass:'OSI::Foobar'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1131
     Smalltalk fileNameForClass:(Workflow::UnsuccessfulFinishReasons)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1132
     Workflow::UnsuccessfulFinishReasons classFilename
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1133
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1134
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1135
    "Modified: / 06-10-2006 / 16:16:01 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1136
    "Modified: / 15-07-2009 / 20:18:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1137
    "Modified: / 22-08-2009 / 11:57:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1138
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1139
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1140
!Smalltalk class methodsFor:'system management-packages'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1141
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1142
loadPackageWithId:aPackageId asAutoloaded:doLoadAsAutoloaded
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1143
    "make certain, that some particular package is loaded into the system.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1144
     Experimental."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1145
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1146
    |packageDir|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1147
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1148
    packageDir := self packageDirectoryForPackageId:aPackageId.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1149
    packageDir isNil ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1150
        (aPackageId includes:$:) ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1151
            "/ assume stx
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1152
            packageDir := self packageDirectoryForPackageId:('stx:',aPackageId).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1153
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1154
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1155
    (packageDir isNil and: [SVN::RepositoryManager notNil]) ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1156
        [^self loadPackageWithId: aPackageId fromRepositoryAsAutoloaded: doLoadAsAutoloaded].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1157
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1158
    ^ self
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1159
        loadPackageWithId:aPackageId
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1160
        fromDirectory:packageDir
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1161
        asAutoloaded:doLoadAsAutoloaded.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1162
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1163
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1164
     Smalltalk loadPackageWithId:'stx:libbasic'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1165
     Smalltalk loadPackageWithId:'stx:goodies/persistency'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1166
     Smalltalk loadPackageWithId:'exept:ctypes'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1167
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1168
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1169
    "Modified: / 07-12-2006 / 15:04:39 / cg"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1170
    "Modified: / 28-10-2008 / 15:56:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1171
    "Modified: / 22-08-2009 / 11:58:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1172
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1173
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1174
!Smalltalk class methodsFor:'system management-packages'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1175
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1176
loadPackageWithId:aPackageId fromRepositoryAsAutoloaded:doLoadAsAutoloaded  
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1177
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1178
    self
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1179
        loadPackageWithId:aPackageId 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1180
        fromRepositoryAsAutoloaded:doLoadAsAutoloaded  
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1181
        usingRepositoryManager: SVN::RepositoryManager current
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1182
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1183
    "Created: / 28-10-2008 / 15:53:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1184
    "Modified: / 09-04-2009 / 17:20:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1185
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1186
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1187
!Smalltalk class methodsFor:'system management-packages'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1188
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1189
loadPackageWithId:aPackageId fromRepositoryAsAutoloaded:doLoadAsAutoloaded usingRepositoryManager: manager  
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1190
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1191
    | retval loadBlock |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1192
    loadBlock :=
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1193
        [| repo packageDir |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1194
        repo := manager repositoryForPackage: aPackageId.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1195
        retval := (repo notNil and:[repo exists]) 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1196
            ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1197
                [repo workingCopy checkout.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1198
                packageDir := self packageDirectoryForPackageId:aPackageId.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1199
                self
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1200
                    loadPackageWithId:aPackageId
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1201
                    fromDirectory:packageDir
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1202
                    asAutoloaded:doLoadAsAutoloaded]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1203
            ifFalse:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1204
                [false]].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1205
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1206
    (Query query == true)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1207
        ifTrue:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1208
            [loadBlock value]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1209
        ifFalse:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1210
            [Query answer: true do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1211
                [SVN::ProgressDialog 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1212
                    openOn: loadBlock 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1213
                    title: ' Loading...'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1214
                    subtitle: aPackageId asText allItalic]].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1215
    ^retval
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1216
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1217
    "Created: / 09-04-2009 / 17:20:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1218
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1219
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1220
!TimestampChange methodsFor:'applying'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1221
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1222
apply
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1223
    "apply the change"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1224
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1225
    "Nothing to do"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1226
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1227
    "Created: / 06-11-2008 / 08:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1228
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1229
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1230
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-class'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1231
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1232
classMenuSubversionCommit
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1233
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1234
    | classesPerPackage |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1235
    classesPerPackage := Dictionary new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1236
    self selectedClasses value do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1237
        [:class|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1238
        (classesPerPackage at: class theNonMetaclass package ifAbsentPut:[Set new])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1239
            add: class theNonMetaclass].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1240
    classesPerPackage keysAndValuesDo:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1241
        [:package :classes| | repo |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1242
        repo := SVN::RepositoryManager repositoryForPackage:package.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1243
        SVN::CommitWizard new
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1244
                task: (repo workingCopy commitTask
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1245
                        classes: classes;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1246
                        extensionMethods: #()
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1247
                        yourself);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1248
                open]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1249
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1250
    "Modified: / 16-06-2009 / 21:05:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1251
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1252
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1253
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-class'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1254
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1255
classMenuSubversionCompareImageWithRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1256
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1257
    | cls branch revisionLog revision |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1258
    cls := self theSingleSelectedClass theNonMetaclass.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1259
    branch := cls theNonMetaclass svnRepository branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1260
    revisionLog := branch log: cls.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1261
    revision := SVN::RevisionSelectionDialog openOn: revisionLog.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1262
    self classMenuSubversionCompareImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1263
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1264
    "Created: / 19-04-2008 / 18:38:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1265
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1266
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1267
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-class'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1268
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1269
classMenuSubversionCompareImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1270
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1271
    | cls branch  diffSet |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1272
    revision ifNil:[^self].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1273
    cls := self theSingleSelectedClass theNonMetaclass.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1274
    branch := cls theNonMetaclass svnRepository branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1275
    SVN::ProgressDialog 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1276
        openOn:[diffSet := branch diffSetForClass: cls betweenImageAndRevision: revision]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1277
        title: 'Creating diffset for class ', cls fullName asText allItalic
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1278
        subtitle:   
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1279
            ('Package: ' , branch package asText allItalic ,
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1280
             ' Revision ' , revision asString).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1281
    Tools::SmalltalkDiffTool 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1282
        openOnDiffSet:diffSet 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1283
        labelA: 'Image' 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1284
        labelB: 'r',revision printString
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1285
        title: 'Differences of ',cls fullName,' between image and revision ',revision printString.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1286
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1287
    "Created: / 19-04-2008 / 18:54:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1288
    "Modified: / 09-08-2009 / 14:14:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1289
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1290
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1291
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-class'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1292
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1293
classMenuSubversionCompareImageWithRevisionHead
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1294
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1295
    self classMenuSubversionCompareImageWithRevision: SVN::Revision head
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1296
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1297
    "Created: / 19-04-2008 / 18:56:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1298
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1299
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1300
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-class'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1301
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1302
classMenuSubversionUpdate
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1303
    "automatically generated by UIEditor ..."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1304
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1305
    "*** the code below performs no action"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1306
    "*** (except for some feedback on the Transcript)"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1307
    "*** Please change as required and accept in the browser."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1308
    "*** (and replace this comment by something more useful ;-)"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1309
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1310
    "action to be added ..."
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1311
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1312
    Transcript showCR:self class name, ': action for #classMenuSubversionUpdate ...'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1313
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1314
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1315
!Tools::NewSystemBrowser methodsFor:'menus-dynamic'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1316
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1317
projectMenuSubversionBranches
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1318
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1319
    <resource: #programMenu >
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1320
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1321
    | menu repository |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1322
    menu := Menu new.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1323
    repository := self selectedProjectSubversionRepository.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1324
    repository branches do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1325
        [:branch|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1326
        menu addItem:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1327
            (MenuItem new
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1328
                label: branch name;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1329
                choiceValue: branch;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1330
                choice:(repository workingCopy branch);
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1331
                enabled:(repository workingCopy branch) = branch;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1332
                yourself)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1333
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1334
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1335
    ^menu
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1336
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1337
    "Created: / 19-04-2008 / 11:06:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1338
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1339
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1340
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1341
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1342
projectMenuSubversionBrowseWorkingCopy
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1343
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1344
    self selectedProjects value do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1345
        [:package|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1346
        | pkg repo |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1347
        pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1348
        repo := (SVN::RepositoryManager repositoryForPackage: pkg) .
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1349
        FileBrowserV2 openOn: repo workingCopy path]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1350
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1351
    "Created: / 09-04-2009 / 13:19:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1352
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1353
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1354
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1355
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1356
projectMenuSubversionCommit
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1357
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1358
    self selectedProjects value do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1359
        [:package|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1360
        | repo |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1361
        repo := SVN::RepositoryManager repositoryForPackage:package.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1362
        SVN::CommitWizard new
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1363
            task: repo workingCopy commitTask;
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1364
            open]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1365
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1366
    "Created: / 01-04-2008 / 19:02:42 / janfrog"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1367
    "Modified: / 16-08-2009 / 19:17:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1368
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1369
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1370
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1371
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1372
projectMenuSubversionCommitMode
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1373
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1374
    ^(PluggableAdaptor on: self theSingleSelectedProject)
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1375
        getBlock:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1376
            [:prjHolder| | wc |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1377
            wc := SVN::RepositoryManager workingCopyForPackage: self theSingleSelectedProject value.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1378
            wc ifNotNil:[wc commitMode] ifNil:[nil]]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1379
        putBlock:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1380
            [:prjHolder :value| | wc |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1381
            wc := SVN::RepositoryManager workingCopyForPackage: self theSingleSelectedProject value.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1382
            wc ifNotNil:[wc commitMode:value]]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1383
        updateBlock:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1384
            [:prjHolder :aspect :value|true].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1385
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1386
    "Created: / 13-08-2009 / 15:05:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1387
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1388
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1389
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1390
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1391
projectMenuSubversionCompareExtensionsInImageWithRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1392
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1393
    | pkg branch revisionLog revision  |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1394
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1395
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1396
    revisionLog := branch log:(branch repository containerNameForExtensions).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1397
    revision := SVN::RevisionSelectionDialog openOn: revisionLog.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1398
    self projectMenuSubversionCompareExtensionsInImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1399
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1400
    "Created: / 19-04-2008 / 19:13:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1401
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1402
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1403
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1404
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1405
projectMenuSubversionCompareExtensionsInImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1406
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1407
    | pkg diffSet  branch|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1408
    revision ifNil:[^self].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1409
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1410
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1411
    SVN::ProgressDialog 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1412
        openOn:[diffSet := branch diffSetForExtensionsBetweenImageAndRevision: revision.]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1413
        title: 'Creating diffset for extensions'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1414
        subtitle:   
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1415
            ('Package: ' , branch package asText allItalic ,
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1416
             ' Revision ' , revision asString).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1417
    Tools::SmalltalkDiffTool 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1418
        openOnDiffSet:diffSet 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1419
        labelA: 'Image' 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1420
        labelB: 'r',revision printString
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1421
        title: 'Differences of extensions for ',pkg,' between image and revision ',revision printString.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1422
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1423
    "Created: / 19-04-2008 / 19:13:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1424
    "Modified: / 09-08-2009 / 14:14:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1425
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1426
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1427
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1428
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1429
projectMenuSubversionCompareImageWithRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1430
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1431
    | pkg branch revisionLog revision  |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1432
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1433
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1434
    revisionLog := branch log:'.'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1435
    revision := SVN::RevisionSelectionDialog openOn: revisionLog.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1436
    self projectMenuSubversionCompareImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1437
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1438
    "Created: / 20-05-2008 / 18:09:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1439
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1440
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1441
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1442
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1443
projectMenuSubversionCompareImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1444
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1445
    | pkg diffSet  branch|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1446
    revision ifNil:[^self].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1447
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1448
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1449
    SVN::ProgressDialog 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1450
        openOn:[diffSet := branch diffSetBetweenImageAndRevision: revision]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1451
        title: 'Creating diffset'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1452
        subtitle:   
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1453
            ('Package: ' , branch package asText allItalic ,
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1454
             ' Revision ' , revision asString).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1455
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1456
    Tools::SmalltalkDiffTool 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1457
        openOnDiffSet:diffSet 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1458
        labelA: 'Image' 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1459
        labelB: 'r',revision printString
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1460
        title: 'Differences for ',pkg,' between image and revision ',revision printString.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1461
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1462
    "Created: / 20-05-2008 / 18:09:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1463
    "Modified: / 09-08-2009 / 14:14:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1464
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1465
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1466
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1467
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1468
projectMenuSubversionCompareImageWithRevisionHEAD
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1469
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1470
    self projectMenuSubversionCompareImageWithRevision: SVN::Revision head
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1471
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1472
    "Created: / 20-05-2008 / 18:10:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1473
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1474
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1475
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1476
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1477
projectMenuSubversionLoadRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1478
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1479
    ^self projectMenuSubversionLoadRevision: nil
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1480
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1481
    "Created: / 22-10-2008 / 11:49:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1482
    "Modified: / 09-04-2009 / 09:38:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1483
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1484
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1485
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1486
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1487
projectMenuSubversionLoadRevision: aRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1488
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1489
    self selectedProjects value do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1490
        [:package|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1491
        | pkg task |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1492
        pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1493
        task := (SVN::RepositoryManager repositoryForPackage: pkg) updateTask.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1494
        task revision: aRevision.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1495
        SVN::UpdateWizard openOn: task]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1496
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1497
    "Created: / 09-04-2009 / 09:38:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1498
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1499
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1500
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1501
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1502
projectMenuSubversionMergeImageWithRevision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1503
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1504
    | pkg branch revisionLog revision  |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1505
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1506
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1507
    revisionLog := branch log:'.'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1508
    revision := SVN::RevisionSelectionDialog openOn: revisionLog.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1509
    self projectMenuSubversionMergeImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1510
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1511
    "Created: / 20-05-2008 / 23:41:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1512
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1513
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1514
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1515
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1516
projectMenuSubversionMergeImageWithRevision: revision
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1517
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1518
    | pkg diffSet  branch|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1519
    revision ifNil:[^self].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1520
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1521
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1522
    SVN::ProgressDialog 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1523
        openOn:[diffSet := branch diffSetBetweenImageAndRevision: revision]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1524
        title: 'Creating diffset'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1525
        subtitle:   
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1526
            ('Package: ' , branch package asText allItalic ,
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1527
             ' Revision ' , revision asString).
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1528
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1529
    Tools::SmalltalkMergeTool 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1530
        openOnDiffSet:diffSet 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1531
        labelA: 'Image' 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1532
        labelB: 'r',revision printString
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1533
        title: 'Merge ',pkg,' revision ',revision printString, ' into image'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1534
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1535
    "Created: / 20-05-2008 / 23:44:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1536
    "Modified: / 09-08-2009 / 14:15:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1537
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1538
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1539
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1540
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1541
projectMenuSubversionMergeImageWithRevisionHEAD
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1542
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1543
    self projectMenuSubversionMergeImageWithRevision: SVN::Revision head
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1544
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1545
    "Created: / 20-05-2008 / 23:44:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1546
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1547
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1548
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1549
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1550
projectMenuSubversionRemoveWorkingCopy
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1551
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1552
    self selectedProjects value do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1553
        [:package|
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1554
        | pkg repo |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1555
        pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1556
        repo := (SVN::RepositoryManager repositoryForPackage: pkg) .
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1557
        repo workingCopy path asFilename recursiveRemove]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1558
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1559
    "Created: / 09-04-2009 / 13:19:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1560
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1561
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1562
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1563
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1564
projectMenuSubversionShowRevisionLog
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1565
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1566
     | pkg branch revisionLog revision  |
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1567
    pkg := self theSingleSelectedProject.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1568
    branch := (SVN::RepositoryManager repositoryForPackage: pkg) branch.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1569
    revisionLog := branch log:'.'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1570
    revision := SVN::RevisionLogBrowser openOn: revisionLog.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1571
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1572
    "Created: / 21-05-2008 / 09:37:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1573
    "Modified: / 21-10-2008 / 19:52:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1574
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1575
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1576
!Tools::NewSystemBrowser methodsFor:'menu actions-subversion-project'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1577
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1578
projectMenuSubversionUpdate
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1579
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1580
    ^self projectMenuSubversionLoadRevision: SVN::Revision head
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1581
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1582
    "Created: / 22-10-2008 / 11:49:35 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1583
    "Modified: / 09-04-2009 / 09:38:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1584
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1585
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1586
!Tools::NewSystemBrowser methodsFor:'private-helpers'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1587
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1588
selectedProjectSubversionRepository
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1589
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1590
    self selectedProjects value size ~= 1 ifTrue:[^nil].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1591
    ^SVN::RepositoryManager repositoryForPackage: self selectedProjects value anyOne.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1592
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1593
    "Created: / 19-04-2008 / 11:09:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1594
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1595
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1596
!URL methodsFor:'queries'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1597
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1598
isValidSvnRepositoryUrl
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1599
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1600
    ^#('file' 'http' 'https' 'svn' 'svn+ssh')
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1601
        includes: self method
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1602
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1603
    "Created: / 16-08-2009 / 16:39:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1604
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1605
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1606
!URL methodsFor:'printing & storing'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1607
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1608
printOn: aStream 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1609
    method notNil ifTrue: [
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1610
        aStream nextPutAll: method; nextPut: $:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1611
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1612
    aStream nextPutAll: '//'.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1613
    host notNil ifTrue: [
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1614
        aStream nextPutAll: host
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1615
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1616
    port notNil ifTrue: [
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1617
        aStream nextPut: $:; nextPutAll: port printString
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1618
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1619
    path notNil ifTrue: [
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1620
        aStream nextPutAll: path
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1621
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1622
    (otherPart notNil and: [self hasPostData not]) ifTrue:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1623
        self hasFragmentPart ifTrue: [
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1624
            aStream nextPut: $#
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1625
        ] ifFalse:[
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1626
            aStream nextPut: $?
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1627
        ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1628
        aStream nextPutAll: otherPart
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1629
    ].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1630
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1631
    "Modified: / 19-08-2009 / 13:14:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1632
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1633
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1634
!UserPreferences methodsFor:'accessing - subversion'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1635
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1636
svnConfigurations
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1637
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1638
    ^(self at:#'libsvn.configurations' ifAbsent:#())
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1639
        collect:[:cfg|cfg decodeAsLiteralArray]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1640
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1641
    "Created: / 03-10-2008 / 11:14:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1642
    "Modified: / 19-08-2009 / 12:08:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1643
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1644
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1645
!UserPreferences methodsFor:'accessing - subversion'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1646
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1647
svnConfigurations: aCollection
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1648
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1649
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1650
        UserPreferences current svnConfigurations: #()  
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1651
    "
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1652
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1653
    SVN::RepositoryManager allInstances do:
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1654
        [:e|e configurations: aCollection].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1655
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1656
    ^self 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1657
        at: #'libsvn.configurations'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1658
        put: (aCollection asArray collect:[:cfg|cfg literalArrayEncoding])
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1659
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1660
    "Created: / 03-10-2008 / 11:14:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1661
    "Modified: / 19-08-2009 / 12:09:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1662
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1663
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1664
!UserPreferences methodsFor:'accessing - subversion'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1665
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1666
svnEnabled
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1667
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1668
    ^self at:#svnEnabled ifAbsent:[true]
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1669
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1670
    "Created: / 03-10-2008 / 11:11:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1671
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1672
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1673
!UserPreferences methodsFor:'accessing - subversion'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1674
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1675
svnEnabled: aBoolean
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1676
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1677
    ^self at:#svnEnabled put: aBoolean
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1678
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1679
    "Created: / 03-10-2008 / 11:13:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1680
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1681
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1682
!UserPreferences methodsFor:'accessing - subversion'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1683
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1684
svnVerbose
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1685
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1686
    ^self at:#svnVerbose ifAbsent: false
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1687
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1688
    "Created: / 19-03-2009 / 14:00:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1689
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1690
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1691
!UserPreferences methodsFor:'accessing - subversion'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1692
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1693
svnVerbose: aBoolean
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1694
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1695
    ^self at:#svnVerbose put: aBoolean
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1696
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1697
    "Created: / 19-03-2009 / 13:59:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1698
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1699
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1700
!XML::NodeSet methodsFor:'navigation'!
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1701
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1702
@ attributeName 
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1703
    "XPath like processing - if singleton set, answer an value of
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1704
    atribute named attributeName, error otherwise.
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1705
    This method is used in libsvn"
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1706
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1707
    self size = 1 ifTrue:[^self first @ attributeName].
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1708
    self error:'More than one element in node set'
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1709
! !
61343482b6c7 *** empty log message ***
fm
parents: 101
diff changeset
  1710