MIMETypeIconLibrary.st
author Claus Gittinger <cg@exept.de>
Tue, 18 Mar 2014 16:14:17 +0100
changeset 3314 552383bb5952
parent 3159 68fc64f31a95
child 3325 29992c54c3db
permissions -rw-r--r--
class: ActiveHelpView comment/format in: #for:onDevice:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2035
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     1
"
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     2
 COPYRIGHT (c) 2004 by eXept Software AG
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     3
              All Rights Reserved
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     4
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     5
 This software is furnished under a license and may be used
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     6
 only in accordance with the terms of that license and with the
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     8
 be provided or otherwise made available to, or used by, any
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
     9
 other person.  No title to or ownership of the software is
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    10
 hereby transferred.
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    11
"
1863
15710a9d0dde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1862
diff changeset
    12
"{ Package: 'stx:libview2' }"
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    13
1865
Claus Gittinger <cg@exept.de>
parents: 1863
diff changeset
    14
Object subclass:#MIMETypeIconLibrary
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    15
	instanceVariableNames:''
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
    16
	classVariableNames:'Icons MatchedIcons'
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    17
	poolDictionaries:''
1875
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
    18
	category:'Interface-Smalltalk'
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    19
!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    20
2035
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    21
!MIMETypeIconLibrary class methodsFor:'documentation'!
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    22
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    23
copyright
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    24
"
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    25
 COPYRIGHT (c) 2004 by eXept Software AG
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    26
              All Rights Reserved
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    27
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    28
 This software is furnished under a license and may be used
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    29
 only in accordance with the terms of that license and with the
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    31
 be provided or otherwise made available to, or used by, any
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    32
 other person.  No title to or ownership of the software is
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    33
 hereby transferred.
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    34
"
8678c3d21507 copyright
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
    35
! !
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    36
1865
Claus Gittinger <cg@exept.de>
parents: 1863
diff changeset
    37
!MIMETypeIconLibrary class methodsFor:'initialization'!
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    38
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    39
initialize
2359
283d81512850 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2065
diff changeset
    40
    "/ now done lazily, when the first icon is asked for
1875
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
    41
    "/ self initializeIcons
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    42
!
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    43
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    44
initializeIcons
1876
efbef37f8dce threadsafe
Claus Gittinger <cg@exept.de>
parents: 1875
diff changeset
    45
    |icons matchedIcons defaults resources addMapping fileNameToImageMap|
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    46
1876
efbef37f8dce threadsafe
Claus Gittinger <cg@exept.de>
parents: 1875
diff changeset
    47
    icons := Dictionary new.
efbef37f8dce threadsafe
Claus Gittinger <cg@exept.de>
parents: 1875
diff changeset
    48
    matchedIcons := OrderedCollection new.
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    49
    fileNameToImageMap := Dictionary new.
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    50
2847
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
    51
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    52
    defaults := Dictionary new.
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    53
    #(
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    54
        "/ internal-type to icon mappings.
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    55
        #directory             'tiny_yellow_dir.xpm'            
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    56
        #directoryOpen         'tiny_yellow_dir_open.xpm'       
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    57
        #directoryLocked       'tiny_yellow_dir_locked.xpm'     
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    58
        #directoryLink         'tiny_yellow_dir_link.xpm'       
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    59
        #directoryNetwork      'tiny_yellow_dir_network.xpm'    
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    60
        #file                  'tiny_file_plain.xpm'            
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    61
        #fileLink              'tiny_file_link.xpm'             
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    62
        #fileLocked            'tiny_file_lock.xpm'             
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    63
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    64
        #executableFile        'tiny_file_exec.xpm'             
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    65
        #deviceFile            'tiny_file_device.xpm'           
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    66
        #binaryFile            'tiny_file_binary.xpm'           
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    67
        #specialFile           'tiny_file_special.xpm'          
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    68
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    69
        #addOnLocked           'tiny_addOn_lock.xpm'            
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    70
        #addOnLinked           'tiny_addOn_link.xpm'            
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    71
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    72
        #directoryGray         'tiny_yellow_dir_gray.xpm'       
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
    73
        #directoryOpenGray     'tiny_yellow_dir_open_gray.xpm'  
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    74
1875
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
    75
        "/ these are soon obsolete
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
    76
        #imageFile             'tiny_file_pix.xpm'              
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
    77
        #textFile              'tiny_file_text.xpm'             
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
    78
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    79
        "/ mime-type to icon mappings.
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    80
        'image/*'                                       'tiny_file_pix.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    81
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    82
        "/ misc text ...
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    83
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    84
        'text/html'                                     'tiny_file_html.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    85
"/        'text/plain'                                    'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    86
        'text/*'                                        'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    87
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    88
        'application/postscript'                        'tiny_file_postscript.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    89
        'application/pdf'                               'tiny_file_pdf.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    90
        'application/rtf'                               'tiny_file_rtf.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    91
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    92
        "/ video formats ...
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    93
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    94
"/        'video/x-sgi-movie'                             'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    95
"/        'video/x-msvideo'                               'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    96
"/        'video/quicktime'                               'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    97
"/        'video/x-mpeg2'                                 'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    98
"/        'video/mpeg'                                    'tiny_file_movie.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
    99
        'video/*'                                       'tiny_file_movie2.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   100
        'application/vnd.rn-realmedia'                  'tiny_file_movie2.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   101
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   102
        "/ audio formats ...
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   103
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   104
"/        'audio/x-pn-realaudio'                          'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   105
"/        'audio/x-mpeg'                                  'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   106
"/        'audio/x-mp3'                                   'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   107
"/        'audio/x-wav'                                   'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   108
"/        'audio/x-aiff'                                  'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   109
"/        'audio/basic'                                   'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   110
"/        'audio/x-shockwave-flash'                       'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   111
        'audio/*'                                       'tiny_file_sound.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   112
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   113
        "/ misc stuff
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   114
        'application/winword'                           'tiny_file_text.xpm'
2359
283d81512850 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2065
diff changeset
   115
        'application/x-waltop-digital-notepad'          'tiny_file_digital_notepad.xpm'
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   116
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   117
        "/ binary formats
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   118
        'application/binary'                            'tiny_file_binary.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   119
        'application/library'                           'tiny_file_binary.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   120
        'application/shared-library'                    'tiny_file_binary.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   121
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   122
        "/ progr. languages
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   123
        'application/x-smalltalk-source'                'tiny_file_st.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   124
        'application/x-smalltalk-source-sif'            'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   125
        'application/x-c-source'                        'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   126
        'application/x-c-header'                        'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   127
        'application/x-cpp-source'                      'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   128
        'application/x-javascript'                      'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   129
        'application/x-java-source'                     'tiny_file_java.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   130
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   131
        'application/x-sh'                              'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   132
        'application/x-csh'                             'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   133
        'application/x-tcl'                             'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   134
        'application/x-perl'                            'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   135
        'application/x-make'                            'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   136
        'application/x-batch-script'                    'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   137
        'application/x-asn1-source'                     'tiny_file_text.xpm'
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   138
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   139
        "/ compressors / archivers
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   140
        'application/x-tar'                             'tiny_file_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   141
        'application/x-gtar'                            'tiny_file_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   142
        'application/x-tar-compressed'                  'tiny_file_compressed_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   143
        'application/x-zip-compressed'                  'tiny_file_compressed_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   144
        'application/x-gzip-compressed'                 'tiny_file_compressed_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   145
        'application/x-cpio'                            'tiny_file_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   146
        'application/x-shar'                            'tiny_file_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   147
        'application/java-archive'                      'tiny_file_archive.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   148
2847
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
   149
        'application/x-expecco-testsuite'               'tiny_file_ets.gif'
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
   150
        'application/x-expecco-logfile'                 'tiny_file_elf.gif'
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
   151
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   152
        '*'                                             'tiny_file_plain.xpm'
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   153
     ) pairWiseDo:[:fileTypeOrMimeTypePattern :baseName |
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   154
        defaults at:fileTypeOrMimeTypePattern put:baseName.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   155
    ].
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   156
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   157
    addMapping := [:key :baseNameOrName |
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   158
        |fileName image|
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   159
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   160
        baseNameOrName notNil ifTrue:[
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   161
            image := fileNameToImageMap at:baseNameOrName ifAbsent:nil.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   162
            image isNil ifTrue:[
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   163
                image := Smalltalk imageFromFileNamed:baseNameOrName forClass:self.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   164
                image isNil ifTrue:[
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   165
                    fileName := 'bitmaps/xpmBitmaps/document_images/' , baseNameOrName.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   166
                    image := Smalltalk imageFromFileNamed:fileName forClass:self.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   167
                ].
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   168
            ].
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   169
            fileNameToImageMap at:baseNameOrName put:image.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   170
            key includesMatchCharacters ifTrue:[
1877
c0fd68badf2d threadsafe
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   171
                matchedIcons add:(key -> image).
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   172
            ] ifFalse:[    
1877
c0fd68badf2d threadsafe
Claus Gittinger <cg@exept.de>
parents: 1876
diff changeset
   173
                icons at:key put:image.
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   174
            ]
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   175
        ]
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   176
    ].
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   177
1956
7bfc5c973c1b classResources now understood by all classes
Claus Gittinger <cg@exept.de>
parents: 1877
diff changeset
   178
    resources := self classResources.
7bfc5c973c1b classResources now understood by all classes
Claus Gittinger <cg@exept.de>
parents: 1877
diff changeset
   179
1869
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   180
    "all mappings from the resource file"
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   181
    resources keysAndValuesDo:addMapping.
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   182
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   183
    "missing mappings from above defaults"
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   184
    defaults keysAndValuesDo:[:key :baseName |
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   185
        (resources includesKey:key) ifFalse:[
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   186
            addMapping value:key value:baseName
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   187
        ].
c6800c75b7d0 resource file handling cleaned up
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
   188
    ].
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   189
1876
efbef37f8dce threadsafe
Claus Gittinger <cg@exept.de>
parents: 1875
diff changeset
   190
    Icons := icons.
efbef37f8dce threadsafe
Claus Gittinger <cg@exept.de>
parents: 1875
diff changeset
   191
    MatchedIcons := matchedIcons.
efbef37f8dce threadsafe
Claus Gittinger <cg@exept.de>
parents: 1875
diff changeset
   192
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   193
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   194
     self initializeIcons
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   195
    "
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   196
! !
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   197
1865
Claus Gittinger <cg@exept.de>
parents: 1863
diff changeset
   198
!MIMETypeIconLibrary class methodsFor:'accessing'!
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   199
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   200
fileTypeIconKeyFor:aFilename
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   201
    |info|
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   202
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   203
    info := aFilename linkInfo.
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   204
    info isNil ifTrue:[
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   205
        ^ nil.
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   206
    ].
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   207
    info isSymbolicLink ifTrue:[
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   208
        ^ #symbolicLink.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   209
    ].
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   210
    info isDirectory ifTrue:[
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   211
        ^ #directory.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   212
    ].
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   213
    info isSpecialFile ifTrue:[
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   214
        ^ #specialFile.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   215
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   216
    aFilename isExecutableProgram ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   217
        ^ #executableFile
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   218
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   219
    ^ #file.
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   220
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   221
    "
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   222
     self fileTypeIconKeyFor:'/foo/bar' asFilename 
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   223
     self fileTypeIconKeyFor:'/tmp' asFilename 
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   224
     self fileTypeIconKeyFor:'/dev/null' asFilename 
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   225
     self fileTypeIconKeyFor:'Makefile' asFilename 
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   226
     self fileTypeIconKeyFor:'/usr/bin/make' asFilename 
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   227
    "
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   228
!
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   229
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   230
iconForKey:mimeTypeOrKey
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   231
1875
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   232
    ^ self icons at:mimeTypeOrKey ifAbsent:nil.
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   233
!
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   234
1860
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   235
iconForKeyMatching:mimeTypeOrKey
1b1ac79d73e9 icon separate from the FileBrowser
penk
parents: 1859
diff changeset
   236
1861
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   237
    |icn assoc|
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   238
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   239
    icn := self iconForKey:mimeTypeOrKey.
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   240
    icn notNil ifTrue:[^icn].
2065
0b1f3120a544 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2035
diff changeset
   241
    assoc := self iconForMatchKey:mimeTypeOrKey.
1861
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   242
    assoc notNil ifTrue:[^ assoc value].
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   243
    ^ nil.
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   244
!
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   245
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   246
iconForMatchKey:matchKey
72fa6acc0d62 mime type icons separated from the FileBrowser
penk
parents: 1860
diff changeset
   247
1875
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   248
    ^ self matchedIcons detect:[:assoc | assoc key match:matchKey] ifNone:nil.
1862
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   249
!
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   250
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   251
iconKeyForFile:aFilenameArg
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   252
    "given a fileName, return an appropriate icon"
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   253
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   254
    |aFilename fileType mimeType suffix|
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   255
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   256
    aFilename := aFilenameArg.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   257
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   258
    aFilenameArg isFilename ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   259
        fileType := self fileTypeIconKeyFor:aFilename.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   260
    ] ifFalse:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   261
        fileType := #file
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   262
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   263
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   264
    (fileType == #directory) ifFalse:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   265
        suffix := aFilename suffix.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   266
        (suffix = 'bak' or:[suffix = 'sav']) ifTrue:[
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   267
            aFilename := aFilename withoutSuffix.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   268
        ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   269
        mimeType := MIMETypes mimeTypeForFilename:aFilename.
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   270
    ].
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   271
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   272
    ^ (mimeType ? fileType).
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   273
!
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   274
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   275
iconKeyForRemoteDirectory:aFilenameArg
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   276
    "given a fileName, return an appropriate icon"
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   277
9b48ee153f4b mime type icons separated from the FileBrowser
penk
parents: 1861
diff changeset
   278
    ^ #directoryNetwork
1875
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   279
!
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   280
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   281
icons
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   282
    Icons isNil ifTrue:[
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   283
        self initializeIcons
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   284
    ].
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   285
    ^ Icons
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   286
!
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   287
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   288
matchedIcons
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   289
    MatchedIcons isNil ifTrue:[
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   290
        self initializeIcons
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   291
    ].
8d2f35d8c1f2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1872
diff changeset
   292
    ^ MatchedIcons
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   293
! !
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   294
1865
Claus Gittinger <cg@exept.de>
parents: 1863
diff changeset
   295
!MIMETypeIconLibrary class methodsFor:'documentation'!
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   296
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   297
version
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   298
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypeIconLibrary.st,v 1.17 2013-05-15 17:29:27 stefan Exp $'
2847
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
   299
!
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
   300
82b42231b3c6 changed: #initializeIcons - support ets and elf files
ca
parents: 2359
diff changeset
   301
version_CVS
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   302
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypeIconLibrary.st,v 1.17 2013-05-15 17:29:27 stefan Exp $'
1859
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   303
! !
ec5e2e788ae0 initial checkin
penk
parents:
diff changeset
   304
3159
68fc64f31a95 class: MIMETypeIconLibrary
Stefan Vogel <sv@exept.de>
parents: 2847
diff changeset
   305
1865
Claus Gittinger <cg@exept.de>
parents: 1863
diff changeset
   306
MIMETypeIconLibrary initialize!