UIObjectView.st
author ca
Tue, 25 Feb 1997 14:15:56 +0100
changeset 59 0a2b2ff030a0
parent 58 668eb9eae2ac
child 60 7542ab7fbbfe
permissions -rw-r--r--
so far ...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
54
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     1
Object subclass:#Transaction
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     2
	instanceVariableNames:'type text actions'
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     3
	classVariableNames:''
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     4
	poolDictionaries:''
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     5
	privateIn:UIObjectView::UndoHistory
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     6
!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     7
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     8
!UIObjectView::UndoHistory::Transaction class methodsFor:'instance creation'!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
     9
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    10
type:aType text:aTextOrNil
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    11
    ^ self new type:aType text:aTextOrNil
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    12
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    13
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    14
! !
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    15
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    16
!UIObjectView::UndoHistory::Transaction methodsFor:'accessing'!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    17
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    18
asString
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    19
    "returns printable string
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    20
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    21
    |string|
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    22
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    23
    string := type asString.
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    24
59
0a2b2ff030a0 so far ...
ca
parents: 58
diff changeset
    25
    text notNil ifTrue:[^ string, '    ', text ]
54
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    26
               ifFalse:[^ string ]
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    27
!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    28
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    29
text
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    30
    "returns text or nil assigned to transition
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    31
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    32
    ^ text
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    33
!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    34
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    35
type
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    36
    "returns type assigned to transition
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    37
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    38
    ^ type
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    39
!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    40
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    41
type:aType
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    42
    "change type assigned to transition
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    43
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    44
    type := aType
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    45
! !
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    46
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    47
!UIObjectView::UndoHistory::Transaction methodsFor:'add & undo'!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    48
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    49
add:anUndoBlock
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    50
    "add an undo action to the transition
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    51
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    52
    actions isNil ifTrue:[
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    53
        actions := anUndoBlock
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    54
    ] ifFalse:[
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    55
        actions isCollection ifFalse:[
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    56
            |temp|
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    57
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    58
            temp := OrderedCollection new.
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    59
            temp add:actions.
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    60
            actions := temp.
47
5e4319953a0b *** empty log message ***
ca
parents: 44
diff changeset
    61
        ].
54
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    62
        actions add:anUndoBlock.
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    63
    ]
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    64
!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    65
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    66
undo
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    67
    "undo transition
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    68
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    69
    actions notNil ifTrue:[
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    70
        actions isCollection ifFalse:[
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    71
            actions value
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    72
        ] ifTrue:[
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    73
            actions reverseDo:[:anUndoBlock| anUndoBlock value ]
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    74
        ]
47
5e4319953a0b *** empty log message ***
ca
parents: 44
diff changeset
    75
    ]
54
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    76
! !
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    77
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    78
!UIObjectView::UndoHistory::Transaction methodsFor:'initialization'!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    79
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    80
type:aType text:aTextOrNil
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    81
    "initialize transition
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    82
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    83
    type := aType.
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    84
    text := aTextOrNil.
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    85
! !
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    86
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    87
!UIObjectView::UndoHistory::Transaction methodsFor:'testing'!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    88
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    89
isEmpty
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    90
    "returns true if no undo action is registered
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    91
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    92
    ^ actions isNil
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    93
!
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    94
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    95
notEmpty
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    96
    "returns true if any undo action is registered
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    97
    "
d0b5a33e6df0 *** empty log message ***
ca
parents: 52
diff changeset
    98
    ^ actions notNil
47
5e4319953a0b *** empty log message ***
ca
parents: 44
diff changeset
    99
! !
5e4319953a0b *** empty log message ***
ca
parents: 44
diff changeset
   100