Cairo__AbstractViewer.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 25 Feb 2016 20:55:41 +0000
changeset 50 239120c68187
child 52 5a800f51a584
permissions -rw-r--r--
Added classes with examples and example viewers * Cairo::Examples1 (and viewer Cairo::Examples1Viewer) contains some examples of using Cairo API for drawing. * Cairo::Examples2 (and viewer Cairo::Examples2Viewer) contains examples of using CairoGraphicsContext. The viewer application show result of the drawing on both native DeviceGraphicsContext and CairoGraphicsContext so one can easily compare results. Cairo should give better results.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/libcairo' }"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Cairo }"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
ApplicationModel subclass:#AbstractViewer
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'workspace exampleCodeHolder exampleMethodHolder'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Cairo-Examples'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!AbstractViewer class methodsFor:'interface specs'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
previewSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    "This resource specification was automatically generated
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
     by the UIPainter of ST/X."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    "Do not manually edit this!! If it is corrupted,
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
     the UIPainter may not be able to read the specification."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    "
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
     UIPainter new openOnClass:Cairo::AbstractViewer andSelector:#previewSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
     Cairo::AbstractViewer new openInterface:#previewSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    "
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    <resource: #canvas>
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    ^ 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    #(FullSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
       name: 'previewSpec'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
       window: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
      (WindowSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
         label: 'Preview'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
         name: 'Preview'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
         min: (Point 10 10)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
         bounds: (Rectangle 0 0 619 380)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
       )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
       component: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
      (SpecCollection
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
         collection: (
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
          (NonScrollableArbitraryComponentSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
             name: 'NonScrollableArbitraryComponent1'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
             component: PluggableView
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
             postBuildCallback: postBuildOutput:
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
           )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
          )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
        
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
       )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
     )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
windowSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    "This resource specification was automatically generated
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
     by the UIPainter of ST/X."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    "Do not manually edit this!! If it is corrupted,
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
     the UIPainter may not be able to read the specification."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    "
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
     UIPainter new openOnClass:Cairo::AbstractViewer andSelector:#windowSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
     Cairo::AbstractViewer new openInterface:#windowSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
     Cairo::AbstractViewer open
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    "
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    <resource: #canvas>
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    ^ 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    #(FullSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
       name: windowSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
       window: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
      (WindowSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
         label: 'Cairo Examples'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
         name: 'Cairo Examples'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
         min: (Point 10 10)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
         bounds: (Rectangle 0 0 619 380)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
         menu: windowMenu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
       )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
       component: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
      (SpecCollection
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
         collection: (
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
          (VariableHorizontalPanelSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
             name: 'VariableHorizontalPanel1'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
             layout: (LayoutFrame 0 0 0 0 0 1 0 1)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
             showHandle: true
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
             snapMode: both
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
             component: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
            (SpecCollection
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
               collection: (
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
                (TextEditorSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
                   name: 'TextEditor1'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
                   model: exampleCodeHolder
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
                   hasHorizontalScrollBar: false
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
                   hasVerticalScrollBar: false
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
                   hasKeyboardFocusInitially: false
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
                   viewClassName: 'Tools::CodeView2'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
                   postBuildCallback: postBuildWorkspace:
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
                 )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
                (UISubSpecification
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
                   name: 'Preview'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
                   minorKey: previewSpec
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
                 )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
                )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
              
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
             )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
             handles: (Any 0.5 1.0)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
           )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
          )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
        
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
       )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
     )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
!AbstractViewer class methodsFor:'menu specs'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
windowMenu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    "This resource specification was automatically generated
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
     by the MenuEditor of ST/X."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
    "Do not manually edit this!! If it is corrupted,
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
     the MenuEditor may not be able to read the specification."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    "
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
     MenuEditor new openOnClass:Cairo::Examples andSelector:#windowMenu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
     (Menu new fromLiteralArrayEncoding:(Cairo::Examples windowMenu)) startUp
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    "
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
    <resource: #menu>
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
    ^ 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
     #(Menu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
        (
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
         (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
            label: 'File'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
            submenu: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
           (Menu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
              (
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
               (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
                  label: 'Exit'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
                  itemValue: closeRequest
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
                )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
               )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
              nil
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
              nil
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
            )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
          )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
         (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
            label: 'Edit'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
            submenu: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
           (Menu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
              (
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
               (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
                  label: 'Cut'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
                  itemValue: cutSelection
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
                )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
               (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
                  label: 'Copy'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
                  itemValue: copySelection
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
                )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
               (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
                  label: 'Paste'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
                  itemValue: paste
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
                )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
               )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
              nil
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
              nil
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
            )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
          )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
         (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
            label: 'Examples'
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
            submenuChannel: menuExamples
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
          )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
         )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
        nil
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
        nil
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
      )
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    "Modified: / 26-02-2016 / 22:39:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
!AbstractViewer methodsFor:'aspects'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
exampleCodeHolder
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
    "return/create the 'exampleCodeHolder' value holder (automatically generated)"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    exampleCodeHolder isNil ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
        exampleCodeHolder := ValueHolder new.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
        exampleCodeHolder addDependent:self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
    ^ exampleCodeHolder
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
exampleCodeHolder:something
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    "set the 'exampleCodeHolder' value holder (automatically generated)"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    |oldValue newValue|
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
    exampleCodeHolder notNil ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
        oldValue := exampleCodeHolder value.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
        exampleCodeHolder removeDependent:self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    exampleCodeHolder := something.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    exampleCodeHolder notNil ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
        exampleCodeHolder addDependent:self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
    newValue := exampleCodeHolder value.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
    oldValue ~~ newValue ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
        self update:#value with:newValue from:exampleCodeHolder.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
exampleMethodHolder
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    "return/create the 'exampleMethodHolder' value holder (automatically generated)"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
    exampleMethodHolder isNil ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
        exampleMethodHolder := ValueHolder new.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
        exampleMethodHolder addDependent:self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    ^ exampleMethodHolder
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
exampleMethodHolder:something
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    "set the 'exampleMethodHolder' value holder (automatically generated)"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    |oldValue newValue|
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    exampleMethodHolder notNil ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
        oldValue := exampleMethodHolder value.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
        exampleMethodHolder removeDependent:self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    exampleMethodHolder := something.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
    exampleMethodHolder notNil ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
        exampleMethodHolder addDependent:self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
    newValue := exampleMethodHolder value.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
    oldValue ~~ newValue ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
        self update:#value with:newValue from:exampleMethodHolder.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
!AbstractViewer methodsFor:'change & update'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
update:something with:aParameter from:changedObject
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
    "Invoked when an object that I depend upon sends a change notification."
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
    "stub code automatically generated - please change as required"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
    changedObject == exampleCodeHolder ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
         self updateAfterExampleCodeChanged.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
         ^ self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
    changedObject == exampleMethodHolder ifTrue:[
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
         self updateAfterExampleMethodChanged.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
         ^ self.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
    super update:something with:aParameter from:changedObject
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
    "Modified: / 26-02-2016 / 21:32:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
updateAfterExampleCodeChanged
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
    | code method |
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
    code := exampleCodeHolder value.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
    code notEmptyOrNil ifTrue:[ 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
        method := Compiler compile:( 'redrawOn: ',self exampleMethodParameterName,' ', code)  forClass: nil install: false.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
        method notNil ifTrue:[   
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
            method source: code asString string.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
        ].  
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
    self exampleMethodHolder value: method
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
    "Created: / 26-02-2016 / 21:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
    "Modified: / 27-02-2016 / 08:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
updateAfterExampleMethodChanged
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
    "Created: / 26-02-2016 / 21:32:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
!AbstractViewer methodsFor:'hooks'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
postBuildWorkspace:aCodeView2
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
    <resource: #uiCallback>
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
    workspace := aCodeView2.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
    workspace language: SmalltalkLanguage instance.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
    workspace codeAspect: SyntaxHighlighter codeAspectStatements
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
    "Modified: / 26-02-2016 / 22:43:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   294
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   295
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   296
!AbstractViewer methodsFor:'menu'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   297
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   298
menuExamples
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   299
    self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   300
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   301
    "Created: / 26-02-2016 / 22:36:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
    "Modified: / 27-02-2016 / 08:56:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
menuExamplesFromClass: aClass
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
    | examples |
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
    examples := aClass testSelectors collect:[:each | aClass lookupMethodFor: each ].    
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
    examples sort: [ :a :b | (a annotationsAt: #example: orAt: #example:category:) first arguments first 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   310
                                < (b annotationsAt: #example: orAt: #example:category:) first arguments first ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   311
    ^ self menuExamplesFromMethods: examples
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   312
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
    "Created: / 26-02-2016 / 22:34:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   314
    "Modified: / 27-02-2016 / 09:04:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   315
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   316
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   317
menuExamplesFromMethods: methods
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   318
    | menu |
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   319
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   320
    menu := Menu new.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
    methods do:[:method | 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
        menu addItem: (MenuItem
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
                        label: (method annotationsAt: #example: orAt: #example:category:) first arguments first
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
                        itemValue: #menuExampleShowMethod: 
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   325
                        argument: method)
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   326
    ].
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
    ^ menu
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
    "Created: / 26-02-2016 / 22:35:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
!AbstractViewer methodsFor:'menu actions'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
menuExampleShow: code
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   335
    self exampleCodeHolder value: code.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   336
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
    "Created: / 26-02-2016 / 22:27:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   338
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   339
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   340
menuExampleShowBrowser
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   341
    self halt.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   343
    "Created: / 26-02-2016 / 22:30:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
menuExampleShowMethod: method
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   347
    | source |
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   348
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   349
    source := method source asStringCollection.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
    source := source copyFrom: 2.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   351
    source := source asString.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   352
    self menuExampleShow: source.
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   353
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   354
    "Created: / 26-02-2016 / 22:28:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   355
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
!AbstractViewer methodsFor:'private'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
redraw:view using: method
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   360
    self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   361
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   362
    "Created: / 26-02-2016 / 21:40:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
redraw:view using: method with: gc
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
    method notNil ifTrue:[    
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
        method valueWithReceiver:nil arguments:(Array with: gc).    
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
    ]
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
    "Created: / 26-02-2016 / 21:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
redraw:arg1 usingMethod:arg2
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
    "raise an error: must be redefined in concrete subclass(es)"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
    ^ self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
redrawUsingCode:aString
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
    ^ self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
    "Modified (comment): / 26-02-2016 / 21:23:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
redrawUsingMethod:aString
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
    ^ self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
    "Created: / 26-02-2016 / 21:23:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   391
!AbstractViewer methodsFor:'private - templates'!
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
exampleMethodParameterName
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
    ^ self subclassResponsibility
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   396
    "Created: / 26-02-2016 / 21:34:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   397
! !
239120c68187 Added classes with examples and example viewers
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398