FileBrowserV2UISpecifications.st
changeset 3892 321c1729db5b
child 4407 1fbe3b0fbfcf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FileBrowserV2UISpecifications.st	Wed Sep 25 10:00:32 2002 +0200
@@ -0,0 +1,551 @@
+"
+ COPYRIGHT (c) 2002 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.
+
+
+"
+
+"{ Package: 'stx:libtool' }"
+
+Object subclass:#FileBrowserV2UISpecifications
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Interface-Tools-File'
+!
+
+VariablePanelSpec subclass:#PanelSpec
+	instanceVariableNames:'whichView orientation visibility'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:FileBrowserV2UISpecifications
+!
+
+!FileBrowserV2UISpecifications class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2002 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
+"
+    copy of the Panel from CBrowser , if a better HorizontalPanel and VerticalPanel is available
+    the new version can be used here
+"
+! !
+
+!FileBrowserV2UISpecifications class methodsFor:'classAccess'!
+
+panelSpecClass
+
+    ^ PanelSpec
+! !
+
+!FileBrowserV2UISpecifications class methodsFor:'interface specs'!
+
+listSpec
+    "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:FileBrowserV2UISpecifications andSelector:#listSpec
+    "
+
+    <resource: #canvas>
+
+    ^ 
+     #(#FullSpec
+        #name: #listSpec
+        #window: 
+       #(#WindowSpec
+          #label: 'Graphs'
+          #name: 'Graphs'
+          #layout: #(#LayoutFrame 7 0 129 0 441 0 316 0)
+          #level: 0
+          #min: #(#Point 10 10)
+          #max: #(#Point 1280 1024)
+          #bounds: #(#Rectangle 7 129 442 317)
+          #usePreferredExtent: false
+          #returnIsOKInDialog: true
+          #escapeIsCancelInDialog: true
+        )
+        #component: 
+       #(#SpecCollection
+          #collection: #(
+           #(#HierarchicalListViewSpec
+              #name: 'HierarchicalListModel'
+              #layout: #(#LayoutFrame 225 0 7 0 398 0 79 0)
+              #hasHorizontalScrollBar: true
+              #hasVerticalScrollBar: true
+              #miniScrollerHorizontal: true
+              #highlightMode: #line
+            )
+           #(#LabelSpec
+              #label: 'HierarchicalList'
+              #name: 'HierarchicalListLabel'
+              #layout: #(#Point 252 15)
+              #style: #(#FontDescription #helvetica #medium #roman 10)
+              #resizeForLabel: true
+              #adjust: #left
+              #canUIDrag: false
+            )
+           #(#SelectionInListModelViewSpec
+              #name: 'SelectionInListModel'
+              #layout: #(#LayoutFrame 6 0 7 0 179 0 79 0)
+              #hasHorizontalScrollBar: true
+              #hasVerticalScrollBar: true
+              #miniScrollerHorizontal: true
+              #highlightMode: #line
+            )
+           #(#LabelSpec
+              #label: 'SelectionInList'
+              #name: 'SelectionInListLabel'
+              #layout: #(#Point 33 15)
+              #style: #(#FontDescription #helvetica #medium #roman 10)
+              #resizeForLabel: true
+              #adjust: #left
+              #canUIDrag: false
+            )
+           #(#ListModelViewSpec
+              #name: 'ListModel'
+              #layout: #(#LayoutFrame 6 0 100 0 179 0 172 0)
+              #hasHorizontalScrollBar: true
+              #hasVerticalScrollBar: true
+              #miniScrollerHorizontal: true
+            )
+           #(#LabelSpec
+              #label: 'ListModel'
+              #name: 'ListModelLabel'
+              #layout: #(#Point 33 109)
+              #style: #(#FontDescription #helvetica #medium #roman 10)
+              #resizeForLabel: true
+              #adjust: #left
+              #canUIDrag: false
+            )
+           )
+         
+        )
+      )
+!
+
+othersSpec
+    "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:FileBrowserV2UISpecifications andSelector:#othersSpec
+    "
+
+    <resource: #canvas>
+
+    ^ 
+     #(#FullSpec
+        #name: #othersSpec
+        #window: 
+       #(#WindowSpec
+          #label: 'Panel Specs'
+          #name: 'Panel Specs'
+          #layout: #(#LayoutFrame 119 0 66 0 536 0 215 0)
+          #level: 0
+          #min: #(#Point 10 10)
+          #max: #(#Point 1280 1024)
+          #bounds: #(#Rectangle 119 66 537 216)
+          #usePreferredExtent: false
+          #returnIsOKInDialog: true
+          #escapeIsCancelInDialog: true
+        )
+        #component: 
+       #(#SpecCollection
+          #collection: #(
+           #(#LabelSpec
+              #label: 'Wrapper'
+              #name: 'WrapperLabel'
+              #layout: #(#Point 9 6)
+              #style: #(#FontDescription #helvetica #medium #roman 10)
+              #resizeForLabel: true
+              #adjust: #left
+              #canUIDrag: false
+            )
+           #(#'FileBrowserV2UISpecifications::WrapperSpec'
+              #name: 'Wrapper'
+              #layout: #(#LayoutFrame 6 0 26 0 179 0 98 0)
+            )
+           #(#LabelSpec
+              #label: 'Panel'
+              #name: 'PanelLabel'
+              #layout: #(#Point 201 6)
+              #style: #(#FontDescription #helvetica #medium #roman 10)
+              #resizeForLabel: true
+              #adjust: #left
+              #canUIDrag: false
+            )
+
+           #(#'FileBrowserV2UISpecifications::PanelSpec'
+              #name: 'Panel'
+              #layout: #(#LayoutFrame 198 0 26 0 376 0 98 0)
+              #level: 0
+              #whichView: #first
+              #orientation: #vertical
+              #component: 
+             #(#SpecCollection
+                #collection: #(
+                 #(#LabelSpec
+                    #label: 'A'
+                    #name: 'Label1'
+                    #layout: #(#LayoutFrame 0 0.0 0 0.0 0 0.5 0 1.0)
+                    #level: 2
+                    #canUIDrag: false
+                  )
+                 #(#LabelSpec
+                    #label: 'B'
+                    #name: 'Label2'
+                    #layout: #(#LayoutFrame 0 0.5 0 0.0 0 1.0 0 1.0)
+                    #level: 2
+                    #canUIDrag: false
+                  )
+                 )
+               
+              )
+            )
+           )
+         
+        )
+      )
+! !
+
+!FileBrowserV2UISpecifications class methodsFor:'setup'!
+
+setup
+"
+FileBrowserV2UISpecifications setup.
+
+"
+    |listSpec othersSpec|
+
+    UISelectionPanel galleryClass removeUserSpecWithLabel:'Graphs'.
+    UISelectionPanel galleryClass removeUserSpecWithLabel:'Clocks etc.'.
+    UISelectionPanel galleryClass removeUserSpecWithLabel:'Business Graphics'.
+    UISelectionPanel galleryClass removeUserSpecWithLabel:'C-Lists'.
+    UISelectionPanel galleryClass removeUserSpecWithLabel:'C-Others'.
+
+    listSpec := ValueHolder new.
+    listSpec value:(self listSpec).
+
+    UISelectionPanel galleryClass addUserSpecHolder:listSpec
+                label:'C-Lists'.
+
+    othersSpec := ValueHolder new.
+    othersSpec value:(self othersSpec).
+
+    UISelectionPanel galleryClass addUserSpecHolder:othersSpec
+                label:'C-Others'.
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec class methodsFor:'interface - painter'!
+
+addBindingsTo:env for:anInstance channel:aChannel 
+    "add bindings as required to allow the GUI Painter to operate on an instance of me"
+
+    super addBindingsTo:env for:anInstance channel:aChannel.
+
+    self adaptApects:#( visibility ) to:env for:anInstance channel:aChannel converter:#symbolOrNil.
+    self adaptApects:#( whichView orientation ) to:env for:anInstance channel:aChannel.
+
+    env at:#whichViewList put:#( #first #last ) asValue.
+    env at:#orientationList put:#( #horizontal #vertical ) asValue.
+
+
+
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec class methodsFor:'interface - specs'!
+
+detailsEditSpec
+    "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:FileBrowserV2UISpecifications::PanelSpec andSelector:#detailsEditSpec
+    "
+
+    <resource: #canvas>
+
+    ^ 
+     #(#FullSpec
+        #name: #detailsEditSpec
+        #window: 
+       #(#WindowSpec
+          #label: 'Panel Detail Spec'
+          #name: 'Panel Detail Spec'
+          #layout: #(#LayoutFrame 5 0 66 0 442 0 341 0)
+          #level: 0
+          #min: #(#Point 10 10)
+          #max: #(#Point 1160 870)
+          #bounds: #(#Rectangle 5 66 443 342)
+          #usePreferredExtent: false
+          #returnIsOKInDialog: true
+          #escapeIsCancelInDialog: true
+        )
+        #component: 
+       #(#SpecCollection
+          #collection: #(
+           #(#UISubSpecification
+              #name: 'SubSpecification1'
+              #layout: #(#LayoutFrame 1 0 0 0.0 0 1.0 183 0)
+              #majorKey: #ViewSpec
+              #minorKey: #detailsEditSpec
+            )
+           #(#FramedBoxSpec
+              #label: 'Visibility'
+              #name: 'FramedBox1'
+              #layout: #(#LayoutFrame 0 0.0 177 0 0 1.0 261 0)
+              #labelPosition: #topLeft
+              #translateLabel: true
+              #component: 
+             #(#SpecCollection
+                #collection: #(
+                 #(#LabelSpec
+                    #label: 'orientation:'
+                    #name: 'orientation'
+                    #layout: #(#AlignmentOrigin 85 0 13 0 1 0.5)
+                    #activeHelpKey: #borderWidth
+                    #resizeForLabel: true
+                    #adjust: #left
+                  )
+                 #(#ComboListSpec
+                    #name: 'orientationList'
+                    #layout: #(#LayoutFrame 85 0 2 0 194 0 24 0)
+                    #model: #orientation
+                    #comboList: #orientationList
+                    #useIndex: false
+                  )
+                 #(#LabelSpec
+                    #label: 'which:'
+                    #name: 'visibilityOf'
+                    #layout: #(#AlignmentOrigin 248 0 13 0 1 0.5)
+                    #activeHelpKey: #borderWidth
+                    #resizeForLabel: true
+                    #adjust: #left
+                  )
+                 #(#ComboListSpec
+                    #name: 'whichViewList'
+                    #layout: #(#LayoutFrame 247 0 2 0 0 1.0 24 0)
+                    #model: #whichView
+                    #comboList: #whichViewList
+                    #useIndex: false
+                  )
+                 #(#InputFieldSpec
+                    #name: 'visibility'
+                    #layout: #(#LayoutFrame 85 0 29 0 0 1.0 51 0)
+                    #activeHelpKey: #canvas
+                    #model: #visibility
+                    #group: #inputGroup
+                    #acceptChannel: #acceptChannel
+                    #modifiedChannel: #modifiedChannel
+                    #acceptOnPointerLeave: false
+                  )
+                 #(#LabelSpec
+                    #label: 'visibility:'
+                    #name: 'visibilityLabel'
+                    #layout: #(#AlignmentOrigin 85 0 40 0 1 0.5)
+                    #resizeForLabel: true
+                  )
+                 )
+               
+              )
+            )
+           )
+         
+        )
+      )
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec methodsFor:'accessing'!
+
+orientation
+    "return the value of the instance variable 'orientation' (automatically generated)"
+
+    ^ orientation ? #vertical
+!
+
+orientation:something
+    "set the value of the instance variable 'orientation' (automatically generated)"
+    something notNil ifTrue:[
+	orientation := something asSymbol
+    ] ifFalse:[
+	orientation := something.
+    ]
+!
+
+visibility
+    "return the value of the instance variable 'orientation' (automatically generated)"
+
+    ^ visibility
+!
+
+visibility:something
+    "set the value of the instance variable 'visibility' (automatically generated)"
+
+    visibility := something.
+!
+
+whichView
+    "return the value of the instance variable 'whichView' (automatically generated)"
+
+    ^ whichView ? #first
+!
+
+whichView:something
+    "set the value of the instance variable 'whichView' (automatically generated)"
+
+    whichView := something.
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec methodsFor:'building'!
+
+aspectSelectors
+    "add more aspect selectors
+    "
+    |more|
+
+    more := super aspectSelectors.
+    visibility notNil ifTrue:[more add:visibility].
+  ^ more
+
+!
+
+setAttributesIn:aView with:aBuilder
+    "set my attributes to aView
+    "
+    super setAttributesIn:aView with:aBuilder.
+
+    aView        whichView:(self whichView).
+    aView      orientation:(self orientation).
+    aView visibilityHolder:(self getBindingIn:aBuilder binding:visibility).
+
+
+
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec methodsFor:'computation'!
+
+recomputeHandlesIn:aPanel
+    |subs isVertical|
+
+    (subs := aPanel subViews) notNil ifTrue:[
+	isVertical := self isVertical.
+	^ subs 
+	    collect:
+		[:v | |rel|
+		    rel := v relativeCorner. 
+		    isVertical ifTrue:[ rel y] ifFalse:[ rel x ].
+		]
+    ].
+    ^ nil
+!
+
+setLayoutsInLayoutContainer:aPanel
+    |x y subs isVertical|
+
+    ((subs := aPanel subViews) notNil and:[subs size == handles size]) ifTrue:[
+	isVertical := self isVertical.
+	y := x := 0.0.
+	subs keysAndValuesDo:[:i :v|
+	    isVertical ifTrue:[
+		v relativeOrigin:(0.0 @ y).
+		y := handles at:i.
+		v relativeCorner:(1.0 @ y).
+	    ] ifFalse:[
+		v relativeOrigin:(x @ 0.0).
+		x := handles at:i.
+		v relativeCorner:(x @ 1.0).
+	    ]
+	]
+    ]
+!
+
+setupInitialLayoutFor:aView
+    |superView|
+
+    aView geometryLayout:nil.
+
+    (    aView relativeOrigin isNil 
+     or:[aView relativeExtent isNil 
+	 and:[aView relativeCorner isNil]]
+    ) ifTrue:[
+	superView := aView superView.
+
+	self isVertical ifTrue:[
+	    aView corner:0@0.
+	    aView origin:0.0@0.0.
+	    aView extent:1.0@0.3.
+	    superView notNil ifTrue:[
+		superView setupSubviews.
+		superView resizeSubviews.
+	    ]
+	] ifFalse:[
+	    aView origin:0.0@0.0.
+	    aView extent:0.3@1.0.
+	    superView notNil ifTrue:[
+		superView setupSubviews
+	    ]
+	]
+    ]
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec methodsFor:'converting'!
+
+skippedInLiteralEncoding
+    |l|
+
+    l := super skippedInLiteralEncoding asOrderedCollection.
+    visibility isNil ifTrue:[l add:#visibility].
+  ^ l
+! !
+
+!FileBrowserV2UISpecifications::PanelSpec methodsFor:'queries'!
+
+isVertical
+    ^ self orientation == #vertical
+
+!
+
+viewClass
+    "return the corresponding view class of the spec"
+
+    ^ FileBrowserV2PanelView
+! !
+
+!FileBrowserV2UISpecifications class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /cvs/stx/stx/libtool/FileBrowserV2UISpecifications.st,v 1.1 2002-09-25 07:59:55 penk Exp $'
+! !