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