VDBRegisterListApplication.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 21 Sep 2019 18:31:45 +0100
changeset 185 bb863cb24c1a
parent 151 bc7626f46210
child 211 2bf7c99e6efa
permissions -rw-r--r--
Do not try to raise transcript window if `Transcript` is not graphical ...but - for instance - a `StdOut` or `StdErr`.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
jv:vdb - Visual / VM Debugger
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2015-now Jan Vrany
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
"{ Package: 'jv:vdb' }"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
"{ NameSpace: Smalltalk }"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
VDBAbstractTreeApplication subclass:#VDBRegisterListApplication
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
	instanceVariableNames:'registerListHolder selectedRegisterHolder'
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	classVariableNames:''
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	poolDictionaries:''
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	category:'VDB-UI-Others'
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!VDBRegisterListApplication class methodsFor:'documentation'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
copyright
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
jv:vdb - Visual / VM Debugger
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
Copyright (C) 2015-now Jan Vrany
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
This software is licensed under 'Creative Commons Attribution-NonCommercial 4.0 International License'
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
You may find a full license text in LICENSE.txt or at http://creativecommons.org/licenses/by-nc/4.0/
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!VDBRegisterListApplication class methodsFor:'accessing'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
115
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 112
diff changeset
    35
defaultWindowTitle
0dd989ce3ae7 Cleanup default window titles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 112
diff changeset
    36
    ^ self resources string:'Registers'
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "Created: / 11-07-2017 / 16:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
112
d293d117e978 Add register view to frame details application (`VDBFrameApplication`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 110
diff changeset
    39
    "Modified: / 01-10-2018 / 12:08:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!VDBRegisterListApplication class methodsFor:'interface specs'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
columnsSpec
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    "This resource specification was automatically generated
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
     by the DataSetBuilder of ST/X."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Do not manually edit this!! If it is corrupted,
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
     the DataSetBuilder may not be able to read the specification."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    "
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     DataSetBuilder new openOnClass:VDBFrameApplication andSelector:#columnsSpec
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    "
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    <resource: #tableColumns>
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    ^#(
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
      (DataSetColumnSpec
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
         label: 'Value'
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
         labelAlignment: left
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
         labelButtonType: Button
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
         width: 1.0
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
         height: heightOfFirstRow
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
         menuFromApplication: false
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
         printSelector: value
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
         backgroundSelector: backgroundColor
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
         showRowSeparator: false
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
         showColSeparator: false
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
       )
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
      )
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!VDBRegisterListApplication class methodsFor:'plugIn spec'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
aspectSelectors
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "This resource specification was automatically generated
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
     by the UIPainter of ST/X."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    "Do not manually edit this. If it is corrupted,
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
     the UIPainter may not be able to read the specification."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    "Return a description of exported aspects;
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
     these can be connected to aspects of an embedding application
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
     (if this app is embedded in a subCanvas)."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
    ^ #(
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
        #debuggerHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
        #registerListHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
        #selectedRegisterHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
      ).
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    "Modified: / 27-09-2018 / 20:32:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
!VDBRegisterListApplication class methodsFor:'startup-web applications'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
initialPageSpec
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    "this is only required for web-applications"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    ^ self shouldImplement
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
pageSpecs
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    "this is only required for web-applications"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
    ^ self shouldImplement
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!VDBRegisterListApplication methodsFor:'aspects'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
backgroundColorFor: aVDBRegisterPresenter
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    ^ aVDBRegisterPresenter register hasChanged
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
        ifTrue:[ Color yellow lighter lighter ]
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
        ifFalse:[ nil ]
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    "Created: / 01-02-2018 / 09:08:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    "Modified: / 27-09-2018 / 20:41:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
registerListHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
    "return/create the 'variableObjectListHolder' value holder (automatically generated)"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    registerListHolder isNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
        registerListHolder := ValueHolder with: #().
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
        registerListHolder addDependent:self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
    ^ registerListHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
    "Created: / 27-09-2018 / 20:31:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
registerListHolder:something
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
    "set the 'variableObjectListHolder' value holder (automatically generated)"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    |oldValue newValue|
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    registerListHolder notNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
        oldValue := registerListHolder value.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
        registerListHolder removeDependent:self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    registerListHolder := something.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
    registerListHolder notNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
        registerListHolder addDependent:self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    newValue := registerListHolder value.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
    oldValue ~~ newValue ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
        self update:#value with:newValue from:registerListHolder.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    "Created: / 27-09-2018 / 20:31:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
selectedRegisterHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    "return/create the 'selectedVariableHolder' value holder (automatically generated)"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
    
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
    selectedRegisterHolder isNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
        selectedRegisterHolder := ValueHolder new.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
        selectedRegisterHolder addDependent:self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
    ^ selectedRegisterHolder
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    "Created: / 27-09-2018 / 20:31:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
selectedRegisterHolder:something 
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    "set the 'selectedVariableHolder' value holder (automatically generated)"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    | oldValue  newValue |
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
    selectedRegisterHolder notNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
        oldValue := selectedRegisterHolder value.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
        selectedRegisterHolder removeDependent:self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    selectedRegisterHolder := something.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    selectedRegisterHolder notNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
        selectedRegisterHolder addDependent:self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    newValue := selectedRegisterHolder value.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    oldValue ~~ newValue ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
        self 
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
            update:#value
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
            with:newValue
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
            from:selectedRegisterHolder.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    "Created: / 27-09-2018 / 20:31:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
!VDBRegisterListApplication methodsFor:'change & update'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
update:aspect with:param from:sender
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
    "Invoked when an object that I depend upon sends a change notification."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    sender == registerListHolder ifTrue:[ 
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   196
         self enqueueDelayedUpdateContents.
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
         ^ self.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    super update:aspect with:param from:sender
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
151
bc7626f46210 Performance: do not update contents of windows when not needed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   201
    "Modified: / 14-02-2019 / 16:31:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
!VDBRegisterListApplication methodsFor:'change & update-delayed'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
delayedUpdateInternalList
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    | registers registerPs |
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    registers := self registerListHolder value ? #().
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    registerPs := registers collect:[ :reg | VDBRegisterPresenter new setRegister: reg ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
    self internalListHolder root 
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
        children: registerPs;
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
        expand.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
    "Modified: / 28-09-2018 / 06:50:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
delayedUpdateSelection
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    | internalSelection |
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    internalSelection := self internalSelectionHolder value.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    internalSelection notNil ifTrue:[
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
        self selectedRegisterHolder value: internalSelection register
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    ] ifFalse:[ 
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
        self selectedRegisterHolder value: nil
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    ].
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    "Modified: / 27-09-2018 / 21:08:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
!VDBRegisterListApplication methodsFor:'drag & drop'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
dropObjects:aCollectionOfDropObjects
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
    "drop manager wants to drop.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
     This is ony sent, if #canDrop: returned true.
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
     Must be redefined in order for drop to work."
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
    ^ self shouldImplement
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
!VDBRegisterListApplication methodsFor:'event handling'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
onStoppedEvent: aGDBStoppedEvent
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    self enqueueDelayedInvalidateInternalList
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
    "Created: / 01-02-2018 / 23:14:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
!VDBRegisterListApplication methodsFor:'initialization & release'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
subscribe   
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
    "Register for debugger events. To be overrided by subclasses"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
    debugger announcer
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
        when: GDBStoppedEvent               send: #onStoppedEvent: to: self
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
    "Created: / 01-02-2018 / 23:07:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
!VDBRegisterListApplication class methodsFor:'documentation'!
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
version_HG
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
    ^ '$Changeset: <not expanded> $'
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
! !
7150377a44e1 UI: add register view
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266