MCVersionInspector.st
author Claus Gittinger <cg@exept.de>
Sat, 01 Sep 2018 17:33:15 +0200
changeset 1092 8d0ea96a3d72
parent 788 f10fad47819b
permissions -rw-r--r--
initial checkin class: MCFileTreeFileSystemUtils class: MCFileTreeFileSystemUtils class added:17 methods
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
132
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCTool subclass:#MCVersionInspector
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'version'
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
702
73d4a33705d9 category change
Claus Gittinger <cg@exept.de>
parents: 132
diff changeset
     7
	category:'SCM-Monticello-UI'
132
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
788
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    10
!MCVersionInspector class methodsFor:'documentation'!
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    11
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    12
documentation
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    13
"
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    14
    I am a tool that visually represents an MCVersion.
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    15
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    16
    While I can be opened on anMCVersion, you've probably seen me most often
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    17
    after saving a package in the Monticello Browser.
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    18
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    19
    I have buttons to perform common version-related actions - like browsing,
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    20
    loading, and viewing changes. In my main text area, I display the following
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    21
    information about my version - name, author, timestamp, UUID, ancestors and
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    22
    log message.    
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    23
"
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
    24
! !
132
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!MCVersionInspector methodsFor:'as yet unclassified'!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
adopt
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	(self confirm:
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
'Modifying ancestry can be dangerous unless you know
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
what you are doing.  Are you sure you want to adopt
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
',self version info name, ' as an ancestor of your working copy?')
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
		ifTrue: [self version adopt]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
browse
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
	self version browse
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
changes
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
	(MCPatchBrowser forPatch: self version changes)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
		showLabelled: 'Changes from ', self version info name
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
diff
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
	| ancestorVersion |
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	self pickAncestor ifNotNilDo:
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
		[:ancestor |
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
		ancestorVersion _ self version workingCopy repositoryGroup versionWithInfo: ancestor.
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
		(self version asDiffAgainst: ancestorVersion) open]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
hasVersion
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
	^version notNil
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
history
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
	(MCVersionHistoryBrowser new ancestry: self versionInfo) show
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
load
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	Cursor wait showWhile: [self version load]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
merge
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
	self version merge
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
save
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
	self pickRepository ifNotNilDo:
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
		[:ea |
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
		ea storeVersion: self version]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
summary
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^self hasVersion
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
		ifTrue: [ self versionSummary ]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
		ifFalse: [ String new ]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
version
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
	^ version
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
version: aVersion
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
	version _ aVersion
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
versionInfo
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
	^ self version info
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
versionSummary
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
	^ self version summary
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
! !
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!MCVersionInspector methodsFor:'morphic ui'!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
buttonSpecs
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
       ^ #((Browse browse 'Browse this version' hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
               (History history 'Browse the history of this version' hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
               (Changes changes 'Browse the changes this version would make to the
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
image' hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
               (Load load 'Load this version into the image' hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
               (Merge merge 'Merge this version into the image' hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
               (Adopt adopt 'Adopt this version as an ancestor of your working copy'
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
               (Copy save 'Copy this version to another repository' hasVersion)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
               (Diff diff 'Create an equivalent version based on an earlier release'
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
hasVersion))
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
defaultExtent
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	^ 400@200
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
defaultLabel
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
	^ 'Version: ', self version info name
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
pickAncestor
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	| index versions |
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
	versions _ self version info breadthFirstAncestors.
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
	index _ (PopUpMenu labelArray: (versions collect: [:ea | ea name]))
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
				startUpWithCaption: 'Ancestor:'.
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
	^ index = 0 ifFalse: [versions at: index]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
pickRepository
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
	| index |
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
	index _ (PopUpMenu labelArray: (self repositories collect: [:ea | ea description]))
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
				startUpWithCaption: 'Repository:'.
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
	^ index = 0 ifFalse: [self repositories at: index]
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
repositories
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
	^ MCRepositoryGroup default repositories
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
widgetSpecs
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
	^ #(
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
		((buttonRow) (0 0 1 0) (0 0 0 30))
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
		((textMorph: summary) (0 0 1 1) (0 30 0 0))
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
		)
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
! !
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!MCVersionInspector class methodsFor:'documentation'!
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
version
788
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
   150
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionInspector.st,v 1.3 2013-05-15 10:49:35 cg Exp $'
132
10598f65948b initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
! !
788
f10fad47819b class: MCVersionInspector
Claus Gittinger <cg@exept.de>
parents: 702
diff changeset
   152