GraphColumnViewSpec.st
author Claus Gittinger <cg@exept.de>
Fri, 29 May 1998 21:33:22 +0200
changeset 905 26d56c258014
parent 789 c2401c3c9e29
child 1203 ef8f7ce856d4
permissions -rw-r--r--
*** empty log message ***

"
 COPYRIGHT (c) 1998 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"



MenuComponentSpec subclass:#GraphColumnViewSpec
	instanceVariableNames:'listHolder references referenceSelector showGrid showDefaultMenu
		level borderWidth zoomY windowSize graphOriginX
		scrollUpdatesOriginX'
	classVariableNames:''
	poolDictionaries:''
	category:'Interface-Support-UI-Specs'
!

!GraphColumnViewSpec class methodsFor:'documentation'!

copyright
"
 COPYRIGHT (c) 1998 by eXept Software AG
              All Rights Reserved

 This software is furnished under a license and may be used
 only in accordance with the terms of that license and with the
 inclusion of the above copyright notice.   This software may not
 be provided or otherwise made available to, or used by, any
 other person.  No title to or ownership of the software is
 hereby transferred.
"


!

documentation
"
    Not normally used by applications.

    [author:]
        Claus Atzkern

    [see also:]
        UIBuilder
        UIPainter
"



! !

!GraphColumnViewSpec class methodsFor:'class initialization'!

initialize
    "add an entry for my new components to the UIPainters 
     userDef gallery"

    UISelectionPanel userClass
        addUserSpecHolder:[self graphSpec]
        label:'Graphs'

    "
     self initialize
    "


!

removeFromSystem
    "remove myself - this implies deinstallation from the UIGallery"

    UISelectionPanel userClass removeUserSpecWithLabel:'Graphs'.
    ^ super removeFromSystem.

! !

!GraphColumnViewSpec class methodsFor:'interface - painter'!

addBindingsTo:env for:inst channel:aChannel 

    super addBindingsTo:env for:inst channel:aChannel.

    self 
        adaptApects:
                    #(  
                        showGrid
                        showDefaultMenu
                        scrollUpdatesOriginX
                     )
        to:env 
        for:inst 
        channel:aChannel.

    self 
        adaptApects:
                    #(  
                        zoomY
                        windowSize
                        graphOriginX
                        references
                        referenceSelector
                     )
        to:env 
        for:inst 
        channel:aChannel
        converter:#symbolOrNil.

    self 
        adaptApects:
                    #(  
                        level
                        borderWidth
                     )
        to:env 
        for:inst 
        channel:aChannel
        converter:#numberOrNil.
! !

!GraphColumnViewSpec class methodsFor:'interface gallery'!

graphSpec
    "this window spec was automatically generated by the ST/X UIPainter"

    "do not manually edit this - the painter/builder may not be able to
     handle the specification if its corrupted."

    "
     UIPainter new openOnClass:self andSelector:#graphSpec
     self new openInterface:#graphSpec
    "

    <resource: #canvas>

    ^

       #(#FullSpec
          #'window:' 
           #(#WindowSpec
              #'name:' 'Views'
              #'layout:' #(#LayoutFrame 212 0 194 0 691 0 422 0)
              #'label:' 'Views'
              #'min:' #(#Point 10 10)
              #'max:' #(#Point 1280 1024)
              #'bounds:' #(#Rectangle 212 194 692 423)
              #'usePreferredExtent:' false
          )
          #'component:' 
           #(#SpecCollection
              #'collection:' 
               #(
                 #(#GraphColumnView2DSpec
                    #'name:' '2D Graph'
                    #'layout:' #(#LayoutFrame 15 0 10 0 180 0 90 0)
                    #'showGrid:' true
                    #'gridX:' 2
                    #'gridY:' 2
                )
                 #(#LabelSpec
                    #'name:' '2D Graph Label'
                    #'layout:' #(#Point 15 96)
                    #'label:' 'Graph Column View 2D'
                    #'style:' #(#FontDescription #helvetica #medium #roman #'10')
                    #'adjust:' #left
                    #'resizeForLabel:' true
                    #'canUIDrag:' false
                )
                 #(#GraphColumnView3DSpec
                    #'name:' '3D Graph'
                    #'layout:' #(#LayoutFrame 206 0 10 0 371 0 90 0)
                    #'showGrid:' true
                )
                 #(#LabelSpec
                    #'name:' '3D Graph Label'
                    #'layout:' #(#Point 206 96)
                    #'label:' 'Graph Column View 3D'
                    #'style:' #(#FontDescription #helvetica #medium #roman #'10')
                    #'adjust:' #left
                    #'resizeForLabel:' true
                    #'canUIDrag:' false
                )
              )
          )
      )


! !

!GraphColumnViewSpec class methodsFor:'interface specs'!

basicsEditSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:GraphColumnViewSpec andSelector:#basicsEditSpec
     GraphColumnViewSpec new openInterface:#basicsEditSpec
    "

    <resource: #canvas>

    ^
     
       #(#FullSpec
          #window: 
           #(#WindowSpec
              #name: 'Graph 2D Basic'
              #layout: #(#LayoutFrame 133 0 173 0 444 0 497 0)
              #label: 'Graph 2D Basic'
              #min: #(#Point 10 10)
              #max: #(#Point 1160 870)
              #bounds: #(#Rectangle 133 173 445 498)
              #usePreferredExtent: false
          )
          #component: 
           #(#SpecCollection
              #collection: 
               #(
                 #(#LabelSpec
                    #name: 'nameLabel'
                    #layout: #(#AlignmentOrigin 73 0 31 0 1 0.5)
                    #label: 'ID:'
                    #adjust: #right
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'nameField'
                    #layout: #(#LayoutFrame 75 0 20 0 -2 1.0 45 0)
                    #activeHelpKey: #id
                    #model: #name
                )
                 #(#LabelSpec
                    #name: 'modelLabel'
                    #layout: #(#AlignmentOrigin 73 0 60 0 1 0.5)
                    #label: 'Model:'
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'modelField'
                    #layout: #(#LayoutFrame 75 0 49 0 -2 1 74 0)
                    #activeHelpKey: #model
                    #tabable: true
                    #model: #model
                )
                 #(#LabelSpec
                    #name: 'referencesLabel'
                    #layout: #(#AlignmentOrigin 168 0 90 0 1 0.5)
                    #label: 'References:'
                    #adjust: #left
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'referencesField'
                    #layout: #(#LayoutFrame 171 0 80 0 -2 1.0 102 0)
                    #model: #references
                )
                 #(#LabelSpec
                    #name: 'referencesSelLabel'
                    #layout: #(#AlignmentOrigin 168 0 116 0 1 0.5)
                    #label: 'Access Selector:'
                    #adjust: #left
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'referencesSelField'
                    #layout: #(#LayoutFrame 171 0 106 0 -2 1.0 128 0)
                    #model: #referenceSelector
                )
                 #(#UISubSpecification
                    #name: 'menuSubSpec'
                    #layout: #(#LayoutFrame 0 0.0 144 0 0 1.0 263 0)
                    #majorKey: #UISpecification
                    #minorKey: #menuSubSpec
                )
                 #(#CheckBoxSpec
                    #name: 'showDefaultMenu'
                    #layout: #(#AlignmentOrigin 97 0 280 0 0 0.5)
                    #model: #showDefaultMenu
                    #label: 'Default Menu'
                )
              )
          )
      )

    "Modified: / 29.5.1998 / 21:27:30 / cg"
!

subDetailsEditSpec
    "This resource specification was automatically generated
     by the UIPainter of ST/X."

    "Do not manually edit this!! If it is corrupted,
     the UIPainter may not be able to read the specification."

    "
     UIPainter new openOnClass:GraphColumnViewSpec andSelector:#subDetailsEditSpec
     GraphColumnViewSpec new openInterface:#subDetailsEditSpec
    "

    <resource: #canvas>

    ^
     
       #(#FullSpec
          #window: 
           #(#WindowSpec
              #name: 'Graph 2D Detail'
              #layout: #(#LayoutFrame 83 0 79 0 465 0 301 0)
              #label: 'Graph 2D Detail'
              #min: #(#Point 10 10)
              #max: #(#Point 1160 870)
              #bounds: #(#Rectangle 83 79 466 302)
              #usePreferredExtent: false
          )
          #component: 
           #(#SpecCollection
              #collection: 
               #(
                 #(#LabelSpec
                    #name: 'borderWidthLabel'
                    #layout: #(#AlignmentOrigin 157 0 35 0 1 0.5)
                    #label: 'Border Width:'
                    #adjust: #left
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'borderWidthField'
                    #layout: #(#LayoutFrame 161 0 24 0 197 0 46 0)
                    #activeHelpKey: #borderWidth
                    #tabable: true
                    #model: #borderWidth
                )
                 #(#LabelSpec
                    #name: 'levelLabel'
                    #layout: #(#AlignmentOrigin 157 0 58 0 1 0.5)
                    #label: 'Level:'
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'levelField'
                    #layout: #(#LayoutFrame 161 0 48 0 197 0 70 0)
                    #activeHelpKey: #level
                    #tabable: true
                    #model: #level
                )
                 #(#LabelSpec
                    #name: 'windowSizeLabel'
                    #layout: #(#AlignmentOrigin 157 0 149 0 1 0.5)
                    #label: 'Window Size:'
                    #adjust: #left
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'windowSizeField'
                    #layout: #(#LayoutFrame 161 0 139 0 -2 1.0 161 0)
                    #model: #windowSize
                )
                 #(#LabelSpec
                    #name: 'zoomYLabel'
                    #layout: #(#AlignmentOrigin 157 0 173 0 1 0.5)
                    #label: 'Zoom-Y Factor:'
                    #adjust: #left
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'zoomYField'
                    #layout: #(#LayoutFrame 161 0 163 0 -2 1.0 185 0)
                    #model: #zoomY
                )
                 #(#LabelSpec
                    #name: 'graphOriginXLabel'
                    #layout: #(#AlignmentOrigin 157 0 91 0 1 0.5)
                    #label: 'Origin X'
                    #adjust: #left
                    #resizeForLabel: true
                )
                 #(#InputFieldSpec
                    #name: 'graphOriginXField'
                    #layout: #(#LayoutFrame 161 0 81 0 -2 1.0 103 0)
                    #model: #graphOriginX
                )
                 #(#CheckBoxSpec
                    #name: 'scrollUpdatesOriginX'
                    #layout: #(#AlignmentOrigin 158 0 117 0 0 0.5)
                    #model: #scrollUpdatesOriginX
                    #label: 'Scroll updates X-Origin'
                )
              )
          )
      )

    "Modified: / 29.5.1998 / 21:32:09 / cg"
! !

!GraphColumnViewSpec methodsFor:'accessing'!

borderWidth
    "return the value of the instance variable 'borderWidth' (automatically generated)"

    ^ borderWidth ? 0
!

borderWidth:something
    "set the value of the instance variable 'borderWidth' (automatically generated)"

    borderWidth := something.!

graphOriginX
    "return the value of the instance variable 'graphOriginX' (automatically generated)"

    ^ graphOriginX!

graphOriginX:something
    "set the value of the instance variable 'graphOriginX' (automatically generated)"

    graphOriginX := something.!

level
    "return the value of the instance variable 'level' (automatically generated)"

    ^ level ? 0
!

level:something
    "set the value of the instance variable 'level' (automatically generated)"

    level := something.!

listHolder
    "return the value of the instance variable 'listHolder' (automatically generated)"

    ^ listHolder!

listHolder:something
    "set the value of the instance variable 'listHolder' (automatically generated)"

    listHolder := something.!

referenceSelector
    "return the value of the instance variable 'referenceSelector' (automatically generated)"

    ^ referenceSelector!

referenceSelector:something
    "set the value of the instance variable 'referenceSelector' (automatically generated)"

    referenceSelector := something.!

references
    "return the value of the instance variable 'references' (automatically generated)"

    ^ references
!

references:something
    "set the value of the instance variable 'references' (automatically generated)"

    references := something.
!

scrollUpdatesOriginX
    "return the value of the instance variable 'scrollUpdatesOriginX' (automatically generated)"

    ^ scrollUpdatesOriginX ? false
!

scrollUpdatesOriginX:something
    "set the value of the instance variable 'scrollUpdatesOriginX' (automatically generated)"

    scrollUpdatesOriginX := something.
!

showDefaultMenu
    "return the value of the instance variable 'showDefaultMenu' (automatically generated)"

    ^ showDefaultMenu ? false
!

showDefaultMenu:something
    "set the value of the instance variable 'showDefaultMenu' (automatically generated)"

    showDefaultMenu := something.!

showGrid
    "return the value of the instance variable 'showGrid' (automatically generated)"

    ^ showGrid ? false
!

showGrid:something
    "set the value of the instance variable 'showGrid' (automatically generated)"

    showGrid := something.!

windowSize
    "return the value of the instance variable 'windowSize' (automatically generated)"

    ^ windowSize!

windowSize:something
    "set the value of the instance variable 'windowSize' (automatically generated)"

    windowSize := something.!

zoomY
    "return the value of the instance variable 'zoomY' (automatically generated)"

    ^ zoomY!

zoomY:something
    "set the value of the instance variable 'zoomY' (automatically generated)"

    zoomY := something.! !

!GraphColumnViewSpec methodsFor:'building'!

aspectSelectors
    "add more aspect selectors
    "
    |more|

    more := super aspectSelectors.

    windowSize   notNil ifTrue:[more add:windowSize].
    graphOriginX notNil ifTrue:[more add:graphOriginX].
    references   notNil ifTrue:[more add:references].
    zoomY        notNil ifTrue:[more add:zoomY].

  ^ more
!

createViewFor:aBuilder in:aView
    "low level create - no attributes are set.
    "
    aBuilder isEditing ifFalse:[
        ^ super createViewFor:aBuilder in:aView
    ].
    ^ GraphColumnView in:aView

!

setAttributesIn:aView with:aBuilder

    super setAttributesIn:aView with:aBuilder.

    aView level:(self level).
    aView showGrid:(self showGrid).
    aView scrollUpdatesOriginX:(self scrollUpdatesOriginX).
    aView showDefaultMenu:(self showDefaultMenu).

    aView borderWidth:(self borderWidth).

    aBuilder isEditing ifFalse:[
        windowSize notNil ifTrue:[
            aView windowSizeHolder:(self getBindingIn:aBuilder binding:windowSize)
        ].

        graphOriginX notNil ifTrue:[
            aView graphOriginXHolder:(self getBindingIn:aBuilder binding:graphOriginX)
        ].

        referenceSelector notNil ifTrue:[
            aView referenceSelector:referenceSelector
        ].

        references notNil ifTrue:[
            aView referenceHolder:(self getBindingIn:aBuilder binding:references)
        ].

        zoomY notNil ifTrue:[
            aView zoomYHolder:(self getBindingIn:aBuilder binding:zoomY)
        ].

        self setModelAttributeIn:aView with:aBuilder.
        self setMenuIn:aView with:aBuilder.
    ]
! !

!GraphColumnViewSpec methodsFor:'converting'!

skippedInLiteralEncoding
    "define the inst-slots which are skiped when generating a literalArrayEncoding"

    |l|

    l := super skippedInLiteralEncoding asOrderedCollection.

    zoomY             isNil ifTrue:[l add:#zoomY].
    windowSize        isNil ifTrue:[l add:#windowSize].
    graphOriginX      isNil ifTrue:[l add:#graphOriginX].
    references        isNil ifTrue:[l add:#references].
    referenceSelector isNil ifTrue:[l add:#referenceSelector].

    self showGrid ifFalse:[
        l add:#showGrid
    ].

    self scrollUpdatesOriginX ifFalse:[
        l add:#scrollUpdatesOriginX
    ].

    (self showDefaultMenu and:[menu isNil]) ifFalse:[
        l add:#showDefaultMenu
    ].        

    self level       == 0 ifTrue:[ l add:#level ].
    self borderWidth == 0 ifTrue:[ l add:#borderWidth ].

  ^ l




! !

!GraphColumnViewSpec methodsFor:'parsing a view'!

fromView:aView callBack:aBlock

    showGrid             := aView showGrid.
    showDefaultMenu      := aView showDefaultMenu.
    level                := aView level.
    borderWidth          := aView borderWidth.
    scrollUpdatesOriginX := aView scrollUpdatesOriginX.

    super fromView:aView callBack:aBlock


! !

!GraphColumnViewSpec methodsFor:'queries'!

defaultModelClassFor:someAspect
    "used by the UIPainters aspectGenerator
    "
    ^ someAspect == model ifTrue:[List] ifFalse:[ValueHolder]
! !

!GraphColumnViewSpec class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libwidg2/GraphColumnViewSpec.st,v 1.7 1998-05-29 19:33:22 cg Exp $'
! !
GraphColumnViewSpec initialize!