VDBSourceApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 08 Jun 2017 13:43:34 +0100
changeset 44 41cc5a7840fe
parent 40 d766d4c854a2
child 49 2ec7f7ed9242
permissions -rw-r--r--
Debugger UI improvements * fixed exec-button enablements in main debugger UI * improved thread group (inferior) presentation to show whether it has finished or it has been terminated prematurely. * added option to flush event log in log view * added option to enable frame filters and pretty printing for VDB UI (i.e, when enabled VDB shows pretty printed values and frames in backtrace list view and frame view * use code font in both hacktrace view and frame view (code font is likely non-proportional and this makes things easier to read when pretty printer / frame decorator formats additional info in "columns" * doubleclick on variable copies the value to clipboard
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:vdb' }"
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
40
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20
diff changeset
     3
"{ NameSpace: Smalltalk }"
d766d4c854a2 Cleanup in debugger and inferior console applications to catch up changes in `jv:libgdbs`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20
diff changeset
     4
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
VDBAbstractApplication subclass:#VDBSourceApplication
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
     6
	instanceVariableNames:'frameHolder sourceFileHolder sourceStringHolder sourceView'
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
     9
	category:'VDB-UI-Source'
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    12
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!VDBSourceApplication class methodsFor:'interface specs'!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
windowSpec
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    "This resource specification was automatically generated
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
     by the UIPainter of ST/X."
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    "Do not manually edit this!! If it is corrupted,
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
     the UIPainter may not be able to read the specification."
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    "
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
     UIPainter new openOnClass:VDBSourceApplication andSelector:#windowSpec
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
     VDBSourceApplication new openInterface:#windowSpec
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
     VDBSourceApplication open
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    <resource: #canvas>
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    ^ 
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    #(FullSpec
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
       name: windowSpec
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
       window: 
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
      (WindowSpec
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
         label: 'Source View'
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
         name: 'Source View'
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
         min: (Point 10 10)
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
         bounds: (Rectangle 0 0 300 300)
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
       )
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
       component: 
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
      (SpecCollection
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
         collection: (
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    43
          (NonScrollableArbitraryComponentSpec
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
             name: 'SourceView'
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
             model: sourceStringHolder
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    47
             component: sourceView
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
           )
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
          )
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
        
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
       )
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     )
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
! !
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
!VDBSourceApplication class methodsFor:'plugIn spec'!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
aspectSelectors
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    "This resource specification was automatically generated
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
     by the UIPainter of ST/X."
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    "Do not manually edit this. If it is corrupted,
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
     the UIPainter may not be able to read the specification."
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "Return a description of exported aspects;
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
     these can be connected to aspects of an embedding application
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
     (if this app is embedded in a subCanvas)."
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    ^ #(
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
        #debuggerHolder
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    70
        #frameHolder
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
      ).
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
! !
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
!VDBSourceApplication methodsFor:'aspects'!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    77
frameHolder
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    78
    "return/create the 'frameHolder' value holder (automatically generated)"
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    80
    frameHolder isNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    81
        frameHolder := ValueHolder new.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    82
        frameHolder addDependent:self.
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    ].
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    84
    ^ frameHolder
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    87
frameHolder:something
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    88
    "set the 'frameHolder' value holder (automatically generated)"
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    89
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    90
    |oldValue newValue|
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    91
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    92
    frameHolder notNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    93
        oldValue := frameHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    94
        frameHolder removeDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    95
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    96
    frameHolder := something.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    97
    frameHolder notNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    98
        frameHolder addDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
    99
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   100
    newValue := frameHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   101
    oldValue ~~ newValue ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   102
        self update:#value with:newValue from:frameHolder.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   103
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   104
!
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   105
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   106
sourceFileHolder
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   107
    "return/create the 'sourceFileHolder' value holder (automatically generated)"
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   109
    sourceFileHolder isNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   110
        sourceFileHolder := ValueHolder new.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   111
        sourceFileHolder addDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   112
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   113
    ^ sourceFileHolder
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   114
!
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   115
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   116
sourceFileHolder:something
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   117
    "set the 'sourceFileHolder' value holder (automatically generated)"
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   118
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   119
    |oldValue newValue|
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   120
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   121
    sourceFileHolder notNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   122
        oldValue := sourceFileHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   123
        sourceFileHolder removeDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   124
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   125
    sourceFileHolder := something.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   126
    sourceFileHolder notNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   127
        sourceFileHolder addDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   128
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   129
    newValue := sourceFileHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   130
    oldValue ~~ newValue ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   131
        self update:#value with:newValue from:sourceFileHolder.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   132
    ].
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
!
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
sourceStringHolder
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   136
    "return/create the 'sourceStringHolder' value holder (automatically generated)"
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    sourceStringHolder isNil ifTrue:[
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   139
        sourceStringHolder := ValueHolder new.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   140
        sourceStringHolder addDependent:self.
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    ].
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    ^ sourceStringHolder
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   143
!
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   145
sourceStringHolder:something
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   146
    "set the 'sourceStringHolder' value holder (automatically generated)"
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   147
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   148
    |oldValue newValue|
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   149
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   150
    sourceStringHolder notNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   151
        oldValue := sourceStringHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   152
        sourceStringHolder removeDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   153
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   154
    sourceStringHolder := something.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   155
    sourceStringHolder notNil ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   156
        sourceStringHolder addDependent:self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   157
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   158
    newValue := sourceStringHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   159
    oldValue ~~ newValue ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   160
        self update:#value with:newValue from:sourceStringHolder.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   161
    ].
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   162
!
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   163
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   164
sourceView
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   165
    sourceView isNil ifTrue:[ 
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   166
        sourceView := Tools::CodeView2 new.
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   167
        sourceView readOnly: true.
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   168
        sourceView services: #()        
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   169
    ].
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   170
    ^ sourceView
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   171
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   172
    "Created: / 21-09-2014 / 01:42:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   173
! !
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   174
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   175
!VDBSourceApplication methodsFor:'change & update'!
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   176
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   177
update:aspect with:param from:sender
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   178
    "Invoked when an object that I depend upon sends a change notification."
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   179
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   180
    sender == frameHolder ifTrue:[ 
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   181
        | frame |
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   182
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   183
        frame := frameHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   184
        frame notNil ifTrue:[ 
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   185
            | line |
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   186
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   187
            self sourceFileHolder value: frame file.
17
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   188
            line := frame line.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   189
            line notNil ifTrue:[  
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   190
                sourceView selectLine: line.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   191
                sourceView makeSelectionVisible.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   192
            ]
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   193
        ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   194
        ^ self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   195
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   196
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   197
    sender == sourceFileHolder ifTrue:[
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   198
        | file source |
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   199
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   200
        source := nil.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   201
        file := sourceFileHolder value.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   202
        file notNil ifTrue:[ 
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   203
            file := file asFilename.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   204
            file exists ifTrue:[ 
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   205
                source := file contents asString.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   206
            ]
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   207
        ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   208
        self sourceStringHolder value: source.  
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   209
        ^ self.
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   210
    ].
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   211
    super update:aspect with:param from:sender
c5ee4ea44165 Some more work on source displaying
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16
diff changeset
   212
44
41cc5a7840fe Debugger UI improvements
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 40
diff changeset
   213
    "Modified: / 11-06-2017 / 20:57:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
! !
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   216
!VDBSourceApplication class methodsFor:'documentation'!
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   218
version_HG
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
20
f323725d7b18 Fix in source view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   220
    ^ '$Changeset: <not expanded> $'
16
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
! !
fc1898815ab6 Temporary commit: some more work on displaying source code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222