FileBrowserV2PanelView.st
author Claus Gittinger <cg@exept.de>
Wed, 26 Feb 2003 13:40:11 +0100
changeset 4609 303b9b434cda
parent 4360 959719f86629
child 5967 ff5e8356fcb7
permissions -rw-r--r--
do NOT misuse the barHeight variable as isVisible flag !
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
     1
"
321c1729db5b initial checkin
penk
parents:
diff changeset
     2
 COPYRIGHT (c) 2002 by eXept Software AG 
321c1729db5b initial checkin
penk
parents:
diff changeset
     3
	      All Rights Reserved
321c1729db5b initial checkin
penk
parents:
diff changeset
     4
321c1729db5b initial checkin
penk
parents:
diff changeset
     5
 This software is furnished under a license and may be used
321c1729db5b initial checkin
penk
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
321c1729db5b initial checkin
penk
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
321c1729db5b initial checkin
penk
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
321c1729db5b initial checkin
penk
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
321c1729db5b initial checkin
penk
parents:
diff changeset
    10
 hereby transferred.
321c1729db5b initial checkin
penk
parents:
diff changeset
    11
321c1729db5b initial checkin
penk
parents:
diff changeset
    12
321c1729db5b initial checkin
penk
parents:
diff changeset
    13
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    14
321c1729db5b initial checkin
penk
parents:
diff changeset
    15
"{ Package: 'stx:libtool' }"
321c1729db5b initial checkin
penk
parents:
diff changeset
    16
321c1729db5b initial checkin
penk
parents:
diff changeset
    17
VariablePanel subclass:#FileBrowserV2PanelView
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    18
	instanceVariableNames:'whichView viewIsVisible visibilityHolder oldOrigin oldCorner'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    19
	classVariableNames:'BarHeight'
321c1729db5b initial checkin
penk
parents:
diff changeset
    20
	poolDictionaries:''
321c1729db5b initial checkin
penk
parents:
diff changeset
    21
	category:'Interface-Tools-File'
321c1729db5b initial checkin
penk
parents:
diff changeset
    22
!
321c1729db5b initial checkin
penk
parents:
diff changeset
    23
321c1729db5b initial checkin
penk
parents:
diff changeset
    24
!FileBrowserV2PanelView class methodsFor:'documentation'!
321c1729db5b initial checkin
penk
parents:
diff changeset
    25
321c1729db5b initial checkin
penk
parents:
diff changeset
    26
copyright
321c1729db5b initial checkin
penk
parents:
diff changeset
    27
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    28
 COPYRIGHT (c) 2002 by eXept Software AG 
321c1729db5b initial checkin
penk
parents:
diff changeset
    29
	      All Rights Reserved
321c1729db5b initial checkin
penk
parents:
diff changeset
    30
321c1729db5b initial checkin
penk
parents:
diff changeset
    31
 This software is furnished under a license and may be used
321c1729db5b initial checkin
penk
parents:
diff changeset
    32
 only in accordance with the terms of that license and with the
321c1729db5b initial checkin
penk
parents:
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
321c1729db5b initial checkin
penk
parents:
diff changeset
    34
 be provided or otherwise made available to, or used by, any
321c1729db5b initial checkin
penk
parents:
diff changeset
    35
 other person.  No title to or ownership of the software is
321c1729db5b initial checkin
penk
parents:
diff changeset
    36
 hereby transferred.
321c1729db5b initial checkin
penk
parents:
diff changeset
    37
321c1729db5b initial checkin
penk
parents:
diff changeset
    38
321c1729db5b initial checkin
penk
parents:
diff changeset
    39
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    40
!
321c1729db5b initial checkin
penk
parents:
diff changeset
    41
321c1729db5b initial checkin
penk
parents:
diff changeset
    42
documentation
321c1729db5b initial checkin
penk
parents:
diff changeset
    43
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    44
    copy of the Panel from CBrowser , if a better HorizontalPanel and VerticalPanel is available
321c1729db5b initial checkin
penk
parents:
diff changeset
    45
    the new version can be used here
321c1729db5b initial checkin
penk
parents:
diff changeset
    46
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    47
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
    48
321c1729db5b initial checkin
penk
parents:
diff changeset
    49
!FileBrowserV2PanelView methodsFor:'accessing'!
321c1729db5b initial checkin
penk
parents:
diff changeset
    50
321c1729db5b initial checkin
penk
parents:
diff changeset
    51
visible:aState
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    52
    |view1 view2 newVisible newOrigin1 newOrigin2 newCorner1 newCorner2|
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    53
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    54
    newVisible := aState ? true.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    55
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    56
    ((newVisible == self isVisible) or:[subViews size ~~ 2]) ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    57
        ^ self
321c1729db5b initial checkin
penk
parents:
diff changeset
    58
    ].
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    59
    viewIsVisible := newVisible.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    60
321c1729db5b initial checkin
penk
parents:
diff changeset
    61
    view1 := subViews at:1.
321c1729db5b initial checkin
penk
parents:
diff changeset
    62
    view2 := subViews at:2.
321c1729db5b initial checkin
penk
parents:
diff changeset
    63
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    64
    viewIsVisible ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    65
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    66
        MAKE VISIBLE
321c1729db5b initial checkin
penk
parents:
diff changeset
    67
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    68
        view1 origin:0.0@0.0   corner:oldCorner.
321c1729db5b initial checkin
penk
parents:
diff changeset
    69
        view2 origin:oldOrigin corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    70
        self  resizeSubviews.
321c1729db5b initial checkin
penk
parents:
diff changeset
    71
    ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    72
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    73
        MAKE INVISIBLE
321c1729db5b initial checkin
penk
parents:
diff changeset
    74
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    75
        oldCorner := view1 relativeCorner.
321c1729db5b initial checkin
penk
parents:
diff changeset
    76
        oldOrigin := view2 relativeOrigin.
321c1729db5b initial checkin
penk
parents:
diff changeset
    77
321c1729db5b initial checkin
penk
parents:
diff changeset
    78
        orientation == #vertical ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    79
            whichView == #first ifTrue:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    80
                newOrigin1 := 0.0 @ 0.0. newCorner1 := 1.0 @ 0.0.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    81
                newOrigin2 := 0.0 @ 0.0. newCorner2 := view2 corner.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    82
            ] ifFalse:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    83
                newOrigin1 := 0.0 @ 0.0. newCorner1 := 1.0 @ 1.0.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    84
                newOrigin2 := 0.0 @ 1.0. newCorner2 := view2 corner.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    85
            ].
321c1729db5b initial checkin
penk
parents:
diff changeset
    86
        ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    87
            whichView == #first ifTrue:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    88
                newOrigin1 := 0.0 @ 0.0. newCorner1 := 0.0 @ 1.0.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    89
                newOrigin2 := 0.0 @ 0.0. newCorner2 := 1.0 @ 1.0.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    90
            ] ifFalse:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    91
                newOrigin1 := 0.0 @ 0.0. newCorner1 := 1.0 @ 1.0.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    92
                newOrigin2 := 1.0 @ 0.0. newCorner2 := 1.0 @ 1.0.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    93
            ]
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    94
        ].
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    95
        view1 origin:newOrigin1 corner:newCorner1.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    96
        view2 origin:newOrigin2 corner:newCorner2.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    97
    ].
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    98
    visibilityHolder notNil ifTrue:[visibilityHolder value:viewIsVisible]
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    99
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   100
321c1729db5b initial checkin
penk
parents:
diff changeset
   101
whichView
321c1729db5b initial checkin
penk
parents:
diff changeset
   102
    "return the value of the instance variable 'whichView' (automatically generated)"
321c1729db5b initial checkin
penk
parents:
diff changeset
   103
321c1729db5b initial checkin
penk
parents:
diff changeset
   104
    ^ whichView
321c1729db5b initial checkin
penk
parents:
diff changeset
   105
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   106
321c1729db5b initial checkin
penk
parents:
diff changeset
   107
whichView:something
321c1729db5b initial checkin
penk
parents:
diff changeset
   108
    "set the value of the instance variable 'whichView' (automatically generated)"
321c1729db5b initial checkin
penk
parents:
diff changeset
   109
321c1729db5b initial checkin
penk
parents:
diff changeset
   110
    whichView := something.
321c1729db5b initial checkin
penk
parents:
diff changeset
   111
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   112
4360
959719f86629 category change
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
   113
!FileBrowserV2PanelView methodsFor:'accessing-mvc'!
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   114
321c1729db5b initial checkin
penk
parents:
diff changeset
   115
visibilityHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   116
    ^ visibilityHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   117
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   118
321c1729db5b initial checkin
penk
parents:
diff changeset
   119
visibilityHolder:aHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   120
    visibilityHolder removeDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   121
321c1729db5b initial checkin
penk
parents:
diff changeset
   122
    (visibilityHolder := aHolder) notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   123
        visibilityHolder addDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   124
321c1729db5b initial checkin
penk
parents:
diff changeset
   125
        realized ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   126
            self visible:(visibilityHolder value)
321c1729db5b initial checkin
penk
parents:
diff changeset
   127
        ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   128
    ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   129
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   130
321c1729db5b initial checkin
penk
parents:
diff changeset
   131
!FileBrowserV2PanelView methodsFor:'actions'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   132
321c1729db5b initial checkin
penk
parents:
diff changeset
   133
toggleVisibility
321c1729db5b initial checkin
penk
parents:
diff changeset
   134
321c1729db5b initial checkin
penk
parents:
diff changeset
   135
    self visible:(self isVisible not)
321c1729db5b initial checkin
penk
parents:
diff changeset
   136
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   137
321c1729db5b initial checkin
penk
parents:
diff changeset
   138
!FileBrowserV2PanelView methodsFor:'change & update'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   139
321c1729db5b initial checkin
penk
parents:
diff changeset
   140
update:what with:aPara from:chgObj
321c1729db5b initial checkin
penk
parents:
diff changeset
   141
321c1729db5b initial checkin
penk
parents:
diff changeset
   142
    chgObj == visibilityHolder ifTrue:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   143
        self visible:(chgObj value).
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   144
        ^ self.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   145
    ].
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   146
    super update:what with:aPara from:chgObj
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   147
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   148
321c1729db5b initial checkin
penk
parents:
diff changeset
   149
!FileBrowserV2PanelView methodsFor:'initialization'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   150
321c1729db5b initial checkin
penk
parents:
diff changeset
   151
destroy
321c1729db5b initial checkin
penk
parents:
diff changeset
   152
    visibilityHolder removeDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   153
    super destroy
321c1729db5b initial checkin
penk
parents:
diff changeset
   154
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   155
321c1729db5b initial checkin
penk
parents:
diff changeset
   156
initialize
321c1729db5b initial checkin
penk
parents:
diff changeset
   157
    orientation := #vertical.
321c1729db5b initial checkin
penk
parents:
diff changeset
   158
    whichView   := #first.
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   159
    viewIsVisible := true.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   160
    super initialize
321c1729db5b initial checkin
penk
parents:
diff changeset
   161
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   162
321c1729db5b initial checkin
penk
parents:
diff changeset
   163
realize
321c1729db5b initial checkin
penk
parents:
diff changeset
   164
    super realize.
321c1729db5b initial checkin
penk
parents:
diff changeset
   165
321c1729db5b initial checkin
penk
parents:
diff changeset
   166
    visibilityHolder notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   167
        self visible:(visibilityHolder value)
321c1729db5b initial checkin
penk
parents:
diff changeset
   168
    ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   169
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   170
321c1729db5b initial checkin
penk
parents:
diff changeset
   171
!FileBrowserV2PanelView methodsFor:'queries'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   172
321c1729db5b initial checkin
penk
parents:
diff changeset
   173
anyNonRelativeSubviews
321c1729db5b initial checkin
penk
parents:
diff changeset
   174
    "return true, if any of my subviews has no relative origin/extent"
321c1729db5b initial checkin
penk
parents:
diff changeset
   175
321c1729db5b initial checkin
penk
parents:
diff changeset
   176
    "/ cg asking ca: "whats the reason for this ?"
321c1729db5b initial checkin
penk
parents:
diff changeset
   177
    "/ ^ subViews notNil
321c1729db5b initial checkin
penk
parents:
diff changeset
   178
    ^ super anyNonRelativeSubviews.
321c1729db5b initial checkin
penk
parents:
diff changeset
   179
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   180
321c1729db5b initial checkin
penk
parents:
diff changeset
   181
isVisible
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   182
    ^ viewIsVisible 
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   183
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   184
321c1729db5b initial checkin
penk
parents:
diff changeset
   185
specClass
321c1729db5b initial checkin
penk
parents:
diff changeset
   186
    ^ FileBrowserV2UISpecifications panelSpecClass
321c1729db5b initial checkin
penk
parents:
diff changeset
   187
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   188
321c1729db5b initial checkin
penk
parents:
diff changeset
   189
!FileBrowserV2PanelView class methodsFor:'documentation'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   190
321c1729db5b initial checkin
penk
parents:
diff changeset
   191
version
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   192
    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2PanelView.st,v 1.3 2003-02-26 12:40:11 cg Exp $'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   193
! !