FileBrowserV2PanelView.st
author Claus Gittinger <cg@exept.de>
Mon, 14 Feb 2011 18:16:36 +0100
branchinitialV
changeset 9777 82d9e1236f1f
parent 5967 ff5e8356fcb7
child 12123 4bde08cebd48
child 17325 9c71e321f4f6
permissions -rw-r--r--
checkin from stx browser
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
5967
ff5e8356fcb7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
    46
ff5e8356fcb7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
    47
    [Author:]
ff5e8356fcb7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
    48
        Christian Penk
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    49
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    50
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
    51
321c1729db5b initial checkin
penk
parents:
diff changeset
    52
!FileBrowserV2PanelView methodsFor:'accessing'!
321c1729db5b initial checkin
penk
parents:
diff changeset
    53
321c1729db5b initial checkin
penk
parents:
diff changeset
    54
visible:aState
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    55
    |view1 view2 newVisible newOrigin1 newOrigin2 newCorner1 newCorner2|
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    56
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    57
    newVisible := aState ? true.
3892
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
    ((newVisible == self isVisible) or:[subViews size ~~ 2]) ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    60
        ^ self
321c1729db5b initial checkin
penk
parents:
diff changeset
    61
    ].
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    62
    viewIsVisible := newVisible.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    63
321c1729db5b initial checkin
penk
parents:
diff changeset
    64
    view1 := subViews at:1.
321c1729db5b initial checkin
penk
parents:
diff changeset
    65
    view2 := subViews at:2.
321c1729db5b initial checkin
penk
parents:
diff changeset
    66
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    67
    viewIsVisible ifTrue:[
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    68
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    69
        MAKE VISIBLE
321c1729db5b initial checkin
penk
parents:
diff changeset
    70
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    71
        view1 origin:0.0@0.0   corner:oldCorner.
321c1729db5b initial checkin
penk
parents:
diff changeset
    72
        view2 origin:oldOrigin corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    73
        self  resizeSubviews.
321c1729db5b initial checkin
penk
parents:
diff changeset
    74
    ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    75
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    76
        MAKE INVISIBLE
321c1729db5b initial checkin
penk
parents:
diff changeset
    77
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    78
        oldCorner := view1 relativeCorner.
321c1729db5b initial checkin
penk
parents:
diff changeset
    79
        oldOrigin := view2 relativeOrigin.
321c1729db5b initial checkin
penk
parents:
diff changeset
    80
321c1729db5b initial checkin
penk
parents:
diff changeset
    81
        orientation == #vertical ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    82
            whichView == #first ifTrue:[
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 @ 0.0.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    84
                newOrigin2 := 0.0 @ 0.0. newCorner2 := view2 corner.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    85
            ] ifFalse:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    86
                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
    87
                newOrigin2 := 0.0 @ 1.0. newCorner2 := view2 corner.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    88
            ].
321c1729db5b initial checkin
penk
parents:
diff changeset
    89
        ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    90
            whichView == #first ifTrue:[
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 := 0.0 @ 1.0.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    92
                newOrigin2 := 0.0 @ 0.0. newCorner2 := 1.0 @ 1.0.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    93
            ] ifFalse:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    94
                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
    95
                newOrigin2 := 1.0 @ 0.0. newCorner2 := 1.0 @ 1.0.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
    96
            ]
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    97
        ].
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    98
        view1 origin:newOrigin1 corner:newCorner1.
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
    99
        view2 origin:newOrigin2 corner:newCorner2.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   100
    ].
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   101
    visibilityHolder notNil ifTrue:[visibilityHolder value:viewIsVisible]
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   102
!
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
    "return the value of the instance variable 'whichView' (automatically generated)"
321c1729db5b initial checkin
penk
parents:
diff changeset
   106
321c1729db5b initial checkin
penk
parents:
diff changeset
   107
    ^ whichView
321c1729db5b initial checkin
penk
parents:
diff changeset
   108
!
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
    "set the value of the instance variable 'whichView' (automatically generated)"
321c1729db5b initial checkin
penk
parents:
diff changeset
   112
321c1729db5b initial checkin
penk
parents:
diff changeset
   113
    whichView := something.
321c1729db5b initial checkin
penk
parents:
diff changeset
   114
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   115
4360
959719f86629 category change
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
   116
!FileBrowserV2PanelView methodsFor:'accessing-mvc'!
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   117
321c1729db5b initial checkin
penk
parents:
diff changeset
   118
visibilityHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   119
    ^ visibilityHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   120
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   121
321c1729db5b initial checkin
penk
parents:
diff changeset
   122
visibilityHolder:aHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   123
    visibilityHolder removeDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   124
321c1729db5b initial checkin
penk
parents:
diff changeset
   125
    (visibilityHolder := aHolder) notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   126
        visibilityHolder addDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   127
321c1729db5b initial checkin
penk
parents:
diff changeset
   128
        realized ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   129
            self visible:(visibilityHolder value)
321c1729db5b initial checkin
penk
parents:
diff changeset
   130
        ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   131
    ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   132
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   133
321c1729db5b initial checkin
penk
parents:
diff changeset
   134
!FileBrowserV2PanelView methodsFor:'actions'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   135
321c1729db5b initial checkin
penk
parents:
diff changeset
   136
toggleVisibility
321c1729db5b initial checkin
penk
parents:
diff changeset
   137
321c1729db5b initial checkin
penk
parents:
diff changeset
   138
    self visible:(self isVisible not)
321c1729db5b initial checkin
penk
parents:
diff changeset
   139
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   140
321c1729db5b initial checkin
penk
parents:
diff changeset
   141
!FileBrowserV2PanelView methodsFor:'change & update'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   142
321c1729db5b initial checkin
penk
parents:
diff changeset
   143
update:what with:aPara from:chgObj
321c1729db5b initial checkin
penk
parents:
diff changeset
   144
321c1729db5b initial checkin
penk
parents:
diff changeset
   145
    chgObj == visibilityHolder ifTrue:[
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   146
        self visible:(chgObj value).
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   147
        ^ self.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   148
    ].
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   149
    super update:what with:aPara from:chgObj
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   150
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   151
321c1729db5b initial checkin
penk
parents:
diff changeset
   152
!FileBrowserV2PanelView methodsFor:'initialization'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   153
321c1729db5b initial checkin
penk
parents:
diff changeset
   154
destroy
321c1729db5b initial checkin
penk
parents:
diff changeset
   155
    visibilityHolder removeDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   156
    super destroy
321c1729db5b initial checkin
penk
parents:
diff changeset
   157
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   158
321c1729db5b initial checkin
penk
parents:
diff changeset
   159
initialize
321c1729db5b initial checkin
penk
parents:
diff changeset
   160
    orientation := #vertical.
321c1729db5b initial checkin
penk
parents:
diff changeset
   161
    whichView   := #first.
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   162
    viewIsVisible := true.
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   163
    super initialize
321c1729db5b initial checkin
penk
parents:
diff changeset
   164
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   165
321c1729db5b initial checkin
penk
parents:
diff changeset
   166
realize
321c1729db5b initial checkin
penk
parents:
diff changeset
   167
    super realize.
321c1729db5b initial checkin
penk
parents:
diff changeset
   168
321c1729db5b initial checkin
penk
parents:
diff changeset
   169
    visibilityHolder notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   170
        self visible:(visibilityHolder value)
321c1729db5b initial checkin
penk
parents:
diff changeset
   171
    ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   172
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   173
321c1729db5b initial checkin
penk
parents:
diff changeset
   174
!FileBrowserV2PanelView methodsFor:'queries'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   175
321c1729db5b initial checkin
penk
parents:
diff changeset
   176
anyNonRelativeSubviews
321c1729db5b initial checkin
penk
parents:
diff changeset
   177
    "return true, if any of my subviews has no relative origin/extent"
321c1729db5b initial checkin
penk
parents:
diff changeset
   178
321c1729db5b initial checkin
penk
parents:
diff changeset
   179
    "/ cg asking ca: "whats the reason for this ?"
321c1729db5b initial checkin
penk
parents:
diff changeset
   180
    "/ ^ subViews notNil
321c1729db5b initial checkin
penk
parents:
diff changeset
   181
    ^ super anyNonRelativeSubviews.
321c1729db5b initial checkin
penk
parents:
diff changeset
   182
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   183
321c1729db5b initial checkin
penk
parents:
diff changeset
   184
isVisible
4609
303b9b434cda do NOT misuse the barHeight variable as isVisible flag !
Claus Gittinger <cg@exept.de>
parents: 4360
diff changeset
   185
    ^ viewIsVisible 
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   186
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   187
321c1729db5b initial checkin
penk
parents:
diff changeset
   188
specClass
321c1729db5b initial checkin
penk
parents:
diff changeset
   189
    ^ FileBrowserV2UISpecifications panelSpecClass
321c1729db5b initial checkin
penk
parents:
diff changeset
   190
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   191
321c1729db5b initial checkin
penk
parents:
diff changeset
   192
!FileBrowserV2PanelView class methodsFor:'documentation'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   193
321c1729db5b initial checkin
penk
parents:
diff changeset
   194
version
5967
ff5e8356fcb7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
   195
    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2PanelView.st,v 1.4 2004-08-04 17:59:43 cg Exp $'
3892
321c1729db5b initial checkin
penk
parents:
diff changeset
   196
! !