~hilaire-fernandes/drgeo/trunk

« back to all changes in this revision

Viewing changes to src/DrGeoII-Polymorph/DrGFileDialog.class.st

  • Committer: Hilaire Fernandes
  • Date: 2017-11-15 13:17:03 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20171115131703-pz09obavthi53ebt
DrGeo code under Tonel file format

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"
 
2
A DrGFileDialogWindow is filebrowser to keep sketch the old way.
 
3
 
 
4
"
 
5
Class {
 
6
        #name : #DrGFileDialog,
 
7
        #superclass : #FileDialogWindow,
 
8
        #category : #'DrGeoII-Polymorph'
 
9
}
 
10
 
 
11
{ #category : #'as yet unclassified' }
 
12
DrGFileDialog >> newPreviewMorph [
 
13
        "Answer a new preview morph."
 
14
        | aMorph |
 
15
        aMorph := super newPreviewMorph.
 
16
        self previewType == #drgeo ifTrue: [aMorph := self newImagePreviewMorph].
 
17
        ^ aMorph.
 
18
]
 
19
 
 
20
{ #category : #'as yet unclassified' }
 
21
DrGFileDialog >> previewSize [
 
22
        | aSize |
 
23
        aSize := super previewSize.
 
24
        self previewType == #drgeo ifTrue: [aSize := DrGeo previewSize].
 
25
        ^ aSize
 
26
]
 
27
 
 
28
{ #category : #'as yet unclassified' }
 
29
DrGFileDialog >> updateDrGeoPreview [
 
30
        | str aDrgeo |
 
31
        str := self openSelectedFile.
 
32
        str ifNil: [^self]. 
 
33
        [[aDrgeo := (DrGeoXml new loadOnlyFigureFrom: str for: #service) first.
 
34
          aDrgeo view openInWorld; delete]
 
35
                on: Error do: []]
 
36
                ensure: [str close].
 
37
        self previewMorph
 
38
                image: (aDrgeo ifNil: [Form extent: 1@1] ifNotNil: [ |aForm  |
 
39
                        aForm := (Form extent: aDrgeo area extent depth: 32) fillWhite .
 
40
                        aDrgeo area owner fullDrawOn: aForm getCanvas.
 
41
                        aForm])
 
42
                size: DrGeo previewSize.
 
43
]
 
44
 
 
45
{ #category : #'as yet unclassified' }
 
46
DrGFileDialog >> updatePreview [
 
47
        super updatePreview.
 
48
        self previewType == #drgeo ifTrue: [self updateDrGeoPreview]
 
49
        
 
50
]