FileBrowserV2PanelView.st
author penk
Wed, 25 Sep 2002 10:00:32 +0200
changeset 3892 321c1729db5b
child 4360 959719f86629
permissions -rw-r--r--
initial checkin
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
321c1729db5b initial checkin
penk
parents:
diff changeset
    18
	instanceVariableNames:'whichView visibilityHolder oldOrigin oldCorner'
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
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    45
    copy of the Panel from CBrowser , if a better HorizontalPanel and VerticalPanel is available
321c1729db5b initial checkin
penk
parents:
diff changeset
    46
    the new version can be used here
321c1729db5b initial checkin
penk
parents:
diff changeset
    47
"
321c1729db5b initial checkin
penk
parents:
diff changeset
    48
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
    49
321c1729db5b initial checkin
penk
parents:
diff changeset
    50
!FileBrowserV2PanelView methodsFor:'accessing'!
321c1729db5b initial checkin
penk
parents:
diff changeset
    51
321c1729db5b initial checkin
penk
parents:
diff changeset
    52
visible:aState
321c1729db5b initial checkin
penk
parents:
diff changeset
    53
    |view1 view2 state|
321c1729db5b initial checkin
penk
parents:
diff changeset
    54
321c1729db5b initial checkin
penk
parents:
diff changeset
    55
    state := aState ? true.
321c1729db5b initial checkin
penk
parents:
diff changeset
    56
321c1729db5b initial checkin
penk
parents:
diff changeset
    57
    (state == self isVisible or:[subViews size ~~ 2]) ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    58
        ^ self
321c1729db5b initial checkin
penk
parents:
diff changeset
    59
    ].
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
321c1729db5b initial checkin
penk
parents:
diff changeset
    64
    state ifTrue:[
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
        barHeight := BarHeight.
321c1729db5b initial checkin
penk
parents:
diff changeset
    69
        view1 origin:0.0@0.0   corner:oldCorner.
321c1729db5b initial checkin
penk
parents:
diff changeset
    70
        view2 origin:oldOrigin corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    71
        self  resizeSubviews.
321c1729db5b initial checkin
penk
parents:
diff changeset
    72
    ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    73
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    74
        MAKE INVISIBLE
321c1729db5b initial checkin
penk
parents:
diff changeset
    75
        "
321c1729db5b initial checkin
penk
parents:
diff changeset
    76
        BarHeight := barHeight.
321c1729db5b initial checkin
penk
parents:
diff changeset
    77
        barHeight := 0.
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:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    83
                view1 origin:0.0@0.0 corner:1.0@0.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    84
                view2 origin:0.0@0.0 corner:(view2 corner).
321c1729db5b initial checkin
penk
parents:
diff changeset
    85
            ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    86
                view1 origin:0.0@0.0 corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    87
                view2 origin:0.0@1.0 corner:(view2 corner).
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:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    91
                view1 origin:0.0@0.0 corner:0.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    92
                view2 origin:0.0@0.0 corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    93
            ] ifFalse:[
321c1729db5b initial checkin
penk
parents:
diff changeset
    94
                view1 origin:0.0@0.0 corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    95
                view2 origin:1.0@0.0 corner:1.0@1.0.
321c1729db5b initial checkin
penk
parents:
diff changeset
    96
            ]
321c1729db5b initial checkin
penk
parents:
diff changeset
    97
        ]
321c1729db5b initial checkin
penk
parents:
diff changeset
    98
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
    99
    visibilityHolder notNil ifTrue:[visibilityHolder value:state]
321c1729db5b initial checkin
penk
parents:
diff changeset
   100
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   101
321c1729db5b initial checkin
penk
parents:
diff changeset
   102
whichView
321c1729db5b initial checkin
penk
parents:
diff changeset
   103
    "return the value of the instance variable 'whichView' (automatically generated)"
321c1729db5b initial checkin
penk
parents:
diff changeset
   104
321c1729db5b initial checkin
penk
parents:
diff changeset
   105
    ^ whichView
321c1729db5b initial checkin
penk
parents:
diff changeset
   106
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   107
321c1729db5b initial checkin
penk
parents:
diff changeset
   108
whichView:something
321c1729db5b initial checkin
penk
parents:
diff changeset
   109
    "set the value of the instance variable 'whichView' (automatically generated)"
321c1729db5b initial checkin
penk
parents:
diff changeset
   110
321c1729db5b initial checkin
penk
parents:
diff changeset
   111
    whichView := something.
321c1729db5b initial checkin
penk
parents:
diff changeset
   112
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   113
321c1729db5b initial checkin
penk
parents:
diff changeset
   114
!FileBrowserV2PanelView methodsFor:'accessing mvc'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   115
321c1729db5b initial checkin
penk
parents:
diff changeset
   116
visibilityHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   117
    ^ visibilityHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   118
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   119
321c1729db5b initial checkin
penk
parents:
diff changeset
   120
visibilityHolder:aHolder
321c1729db5b initial checkin
penk
parents:
diff changeset
   121
    visibilityHolder removeDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   122
321c1729db5b initial checkin
penk
parents:
diff changeset
   123
    (visibilityHolder := aHolder) notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   124
        visibilityHolder addDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   125
321c1729db5b initial checkin
penk
parents:
diff changeset
   126
        realized ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   127
            self visible:(visibilityHolder value)
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
321c1729db5b initial checkin
penk
parents:
diff changeset
   132
!FileBrowserV2PanelView methodsFor:'actions'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   133
321c1729db5b initial checkin
penk
parents:
diff changeset
   134
toggleVisibility
321c1729db5b initial checkin
penk
parents:
diff changeset
   135
321c1729db5b initial checkin
penk
parents:
diff changeset
   136
    self visible:(self isVisible not)
321c1729db5b initial checkin
penk
parents:
diff changeset
   137
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   138
321c1729db5b initial checkin
penk
parents:
diff changeset
   139
!FileBrowserV2PanelView methodsFor:'change & update'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   140
321c1729db5b initial checkin
penk
parents:
diff changeset
   141
update:what with:aPara from:chgObj
321c1729db5b initial checkin
penk
parents:
diff changeset
   142
321c1729db5b initial checkin
penk
parents:
diff changeset
   143
    chgObj == visibilityHolder ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   144
	^ self visible:(chgObj value)
321c1729db5b initial checkin
penk
parents:
diff changeset
   145
    ].
321c1729db5b initial checkin
penk
parents:
diff changeset
   146
    ^ super update:what with:aPara from:chgObj
321c1729db5b initial checkin
penk
parents:
diff changeset
   147
321c1729db5b initial checkin
penk
parents:
diff changeset
   148
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   149
321c1729db5b initial checkin
penk
parents:
diff changeset
   150
!FileBrowserV2PanelView methodsFor:'initialization'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   151
321c1729db5b initial checkin
penk
parents:
diff changeset
   152
destroy
321c1729db5b initial checkin
penk
parents:
diff changeset
   153
    visibilityHolder removeDependent:self.
321c1729db5b initial checkin
penk
parents:
diff changeset
   154
    super destroy
321c1729db5b initial checkin
penk
parents:
diff changeset
   155
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   156
321c1729db5b initial checkin
penk
parents:
diff changeset
   157
initialize
321c1729db5b initial checkin
penk
parents:
diff changeset
   158
    orientation := #vertical.
321c1729db5b initial checkin
penk
parents:
diff changeset
   159
    whichView   := #first.
321c1729db5b initial checkin
penk
parents:
diff changeset
   160
321c1729db5b initial checkin
penk
parents:
diff changeset
   161
    super initialize
321c1729db5b initial checkin
penk
parents:
diff changeset
   162
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   163
321c1729db5b initial checkin
penk
parents:
diff changeset
   164
realize
321c1729db5b initial checkin
penk
parents:
diff changeset
   165
    super realize.
321c1729db5b initial checkin
penk
parents:
diff changeset
   166
321c1729db5b initial checkin
penk
parents:
diff changeset
   167
    visibilityHolder notNil ifTrue:[
321c1729db5b initial checkin
penk
parents:
diff changeset
   168
        self visible:(visibilityHolder value)
321c1729db5b initial checkin
penk
parents:
diff changeset
   169
    ]
321c1729db5b initial checkin
penk
parents:
diff changeset
   170
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   171
321c1729db5b initial checkin
penk
parents:
diff changeset
   172
!FileBrowserV2PanelView methodsFor:'queries'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   173
321c1729db5b initial checkin
penk
parents:
diff changeset
   174
anyNonRelativeSubviews
321c1729db5b initial checkin
penk
parents:
diff changeset
   175
    "return true, if any of my subviews has no relative origin/extent"
321c1729db5b initial checkin
penk
parents:
diff changeset
   176
321c1729db5b initial checkin
penk
parents:
diff changeset
   177
    "/ cg asking ca: "whats the reason for this ?"
321c1729db5b initial checkin
penk
parents:
diff changeset
   178
    "/ ^ subViews notNil
321c1729db5b initial checkin
penk
parents:
diff changeset
   179
    ^ super anyNonRelativeSubviews.
321c1729db5b initial checkin
penk
parents:
diff changeset
   180
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   181
321c1729db5b initial checkin
penk
parents:
diff changeset
   182
isVisible
321c1729db5b initial checkin
penk
parents:
diff changeset
   183
    ^ barHeight ~~ 0
321c1729db5b initial checkin
penk
parents:
diff changeset
   184
!
321c1729db5b initial checkin
penk
parents:
diff changeset
   185
321c1729db5b initial checkin
penk
parents:
diff changeset
   186
specClass
321c1729db5b initial checkin
penk
parents:
diff changeset
   187
    ^ FileBrowserV2UISpecifications panelSpecClass
321c1729db5b initial checkin
penk
parents:
diff changeset
   188
! !
321c1729db5b initial checkin
penk
parents:
diff changeset
   189
321c1729db5b initial checkin
penk
parents:
diff changeset
   190
!FileBrowserV2PanelView class methodsFor:'documentation'!
321c1729db5b initial checkin
penk
parents:
diff changeset
   191
321c1729db5b initial checkin
penk
parents:
diff changeset
   192
version
321c1729db5b initial checkin
penk
parents:
diff changeset
   193
    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2PanelView.st,v 1.1 2002-09-25 07:58:30 penk Exp $'
321c1729db5b initial checkin
penk
parents:
diff changeset
   194
! !