MIMETypes.st
author Claus Gittinger <cg@exept.de>
Tue, 18 Mar 2014 16:14:17 +0100
changeset 3314 552383bb5952
parent 3295 c430566c334c
child 3322 78576b7fa8c5
permissions -rw-r--r--
class: ActiveHelpView comment/format in: #for:onDevice:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG 
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
     3
	      All Rights Reserved
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
1410
faf04ef6892b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1364
diff changeset
    12
"{ Package: 'stx:libview2' }"
faf04ef6892b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1364
diff changeset
    13
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
Object subclass:#MIMETypes
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    15
	instanceVariableNames:''
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
    16
	classVariableNames:'TypeToImageReaderClassMapping TypeToCommentStringMapping
1979
0612875a95c1 acroread command from registry (win32)
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
    17
		TypeToFileSuffixMapping TypeToViewerApplicationMapping
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
    18
		SuffixToCommentStringMapping FileSuffixToTypeMapping
1979
0612875a95c1 acroread command from registry (win32)
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
    19
		FilenameToTypeMapping FileSuffixToImageReaderClassMapping
0612875a95c1 acroread command from registry (win32)
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
    20
		CharSetToFontMapping LastSuffix LastType
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
    21
		DefaultCommandPerMIMEPerOS DefaultPrintCommandPerMIMEPerOS
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
    22
		TypeToParenthesisSpecMapping SuffixToParenthesisSpecMapping'
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    23
	poolDictionaries:''
1800
817b8ce39da7 category
Claus Gittinger <cg@exept.de>
parents: 1783
diff changeset
    24
	category:'Net-Communication-Support'
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    25
!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    26
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    27
String variableByteSubclass:#MIMEType
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    28
	instanceVariableNames:''
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    29
	classVariableNames:'CachedTypes'
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    30
	poolDictionaries:''
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    31
	privateIn:MIMETypes
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!MIMETypes class methodsFor:'documentation'!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
copyright
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
"
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 COPYRIGHT (c) 1997 by eXept Software AG 
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
    39
	      All Rights Reserved
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 This software is furnished under a license and may be used
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 only in accordance with the terms of that license and with the
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
 be provided or otherwise made available to, or used by, any
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
 other person.  No title to or ownership of the software is
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
 hereby transferred.
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
"
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
documentation
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
"
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    just a place to keep MIME information
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    (avoid spreading things at many places)
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    57
    MIMETypes is abstract and functional.
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    58
    Actually, in some OperatingSystems, this information may
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    59
    be found in some config files (or registries).
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    60
    Therefore, this class may have to be extended to support this
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    61
    and fetch the information from there eventually.
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    62
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    [author:]
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
        Claus Gittinger
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
"
1311
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    66
!
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    67
2486
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    68
examples
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    69
"
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
    70
                                                                            [exBegin]
3210
784ada4aa13b class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
    71
    MIMETypes mimeTypeFromString:'text/plain' 
784ada4aa13b class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
    72
                                                                            [exEnd]
784ada4aa13b class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
    73
                                                                            [exBegin]
2487
eaa224da42fa mimeType: x-expecco-testsuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2486
diff changeset
    74
    MIMETypes mimeTypeFromString:'application/x-expecco-testsuite' 
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
    75
                                                                            [exEnd]
2486
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    76
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
    77
                                                                            [exBegin]
2486
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    78
    MIMETypes mimeTypeForSuffix:'gif'     
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
    79
    MIMETypes mimeTypeForSuffix:'ets'
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
    80
    MIMETypes mimeTypeForSuffix:'xlsx'
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
    81
                                                                            [exEnd]
2486
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    82
"
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    83
!
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
    84
1311
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    85
knownTypes
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    86
"
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    87
    simply a reminder for me ...
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    88
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    89
    application         mime                            file extentsions
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    90
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    91
        powerpoint      application/ms-powerpoint       .pot, .ppz, .ppt, .pps, 
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    92
                        application/mspowerpoint        
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    93
                        application/vnd.ms-powerpoint   
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    94
                        application/x-mspowerpoint
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    95
1312
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
    96
        shockwave       application/x-shockwave-flash   .swf     
1311
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    97
1312
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
    98
        futuresplash    application/futuresplash        .spl
1311
Claus Gittinger <cg@exept.de>
parents: 1300
diff changeset
    99
"
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!MIMETypes class methodsFor:'initialization'!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   104
initialize
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   105
    "initialize wellKnown facts"
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   106
    
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   107
    MIMEType initialize. "must be initialized first"
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   108
    LastSuffix := LastType := nil.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   109
    self initializeFileNameToMimeTypeMapping.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   110
    self initializeImageReaderMappings.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   111
    self initializeCommentStringMappings.
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   112
    self initializeParenthesisSpecMappings.
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   113
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   114
    "
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
   115
     self initialize
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
   116
    "
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
   117
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   118
    "Modified: / 10-04-2007 / 15:16:44 / cg"
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
   119
    "Modified (comment): / 29-11-2011 / 19:11:51 / cg"
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   120
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   121
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   122
initializeCommentStringMappings
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   123
    TypeToCommentStringMapping := Dictionary new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   124
    SuffixToCommentStringMapping := Dictionary new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   125
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   126
    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   127
        at:'application/x-make'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   128
        put:#('#' (nil nil)).           "/ '#' for EOL comments only
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   129
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   130
    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   131
        at:'application/x-sh'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   132
        put:#('#' (nil nil)).           "/ '#' for EOL comments only
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   133
2489
b891d96fd496 elf extension: x-expecco-logfile
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   134
    #('text/html' 'text/xml' 
b891d96fd496 elf extension: x-expecco-logfile
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   135
      'application/xml' 
b891d96fd496 elf extension: x-expecco-logfile
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   136
      'application/x-expecco-testsuite'
b891d96fd496 elf extension: x-expecco-logfile
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   137
      'application/x-expecco-logfile'
b891d96fd496 elf extension: x-expecco-logfile
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   138
    )
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   139
    do:[:eachXMLType |
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   140
        TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   141
            at:eachXMLType
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   142
            put:#(nil ('<!!-- ' ' -->')). "/ '<!!-- ... -->' delimited comments only
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   143
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   144
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   145
    TypeToCommentStringMapping 
2055
501740104b75 css-comments
Claus Gittinger <cg@exept.de>
parents: 2048
diff changeset
   146
        at:'text/css'
501740104b75 css-comments
Claus Gittinger <cg@exept.de>
parents: 2048
diff changeset
   147
        put:#('//' ('/*' '*/')).          
501740104b75 css-comments
Claus Gittinger <cg@exept.de>
parents: 2048
diff changeset
   148
501740104b75 css-comments
Claus Gittinger <cg@exept.de>
parents: 2048
diff changeset
   149
    TypeToCommentStringMapping 
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   150
        at:'application/x-batch-script'
2937
67ef44218dc0 changed: #initializeCommentStringMappings
Claus Gittinger <cg@exept.de>
parents: 2924
diff changeset
   151
        put:#('@REM ' '@rem ' 'REM ' 'rem ' (nil nil)).         "/ 'rem ' for EOL comments only
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   152
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   153
    "/ the following is ST/X specific
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   154
    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   155
        at:'application/x-smalltalk-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   156
        put:#('"/' ('"' '"')).           "/ '"/ ' for EOL; ".." for delimited comments
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   157
2055
501740104b75 css-comments
Claus Gittinger <cg@exept.de>
parents: 2048
diff changeset
   158
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   159
    "/ this is for standard smalltalk
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   160
"/    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   161
"/        at:'application/x-smalltalk-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   162
"/        put:#(nil ('"' '"')).            "/ ".." for delimited comments only
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   163
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   164
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   165
    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   166
        at:'application/x-pascal-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   167
        put:#(nil ('{' '}')).           "/ '{'..'}' for delimited comments
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   168
2055
501740104b75 css-comments
Claus Gittinger <cg@exept.de>
parents: 2048
diff changeset
   169
2048
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   170
"/    "/ the following is k&r
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   171
"/    TypeToCommentStringMapping 
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   172
"/        at:'application/x-c-source'
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   173
"/        put:#(nil ('/*' '*/')).          "/ '/*'..'*/' for delimited comments
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   174
    "/ this is ANSI-c
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   175
    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   176
        at:'application/x-c-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   177
        put:#('//' ('/*' '*/')).          
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   178
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   179
    TypeToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   180
        at:'application/x-cpp-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   181
        put:#('//' ('/*' '*/')).          
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   182
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   183
    TypeToCommentStringMapping 
2479
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   184
        at:'application/x-csharp-source'
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   185
        put:#('//' ('/*' '*/')).          
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   186
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   187
    TypeToCommentStringMapping 
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   188
        at:'application/x-java-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   189
        put:#('//' ('/*' '*/')).          
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   190
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   191
    TypeToCommentStringMapping 
2048
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   192
        at:'application/x-javascript'
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   193
        put:#('//' ('/*' '*/')).          
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   194
dbb361dd9c5f comment strings for javascript files
Claus Gittinger <cg@exept.de>
parents: 2028
diff changeset
   195
    TypeToCommentStringMapping 
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   196
        at:'application/x-lisp-source'
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   197
        put:#(';' (nil nil)).           "/ '#' for EOL comments only
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   198
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   199
    TypeToCommentStringMapping 
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   200
        at:'application/x-asn1-source'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   201
        put:#('--' ('--' '--')).          
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   202
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   203
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   204
    "/ st/x support files
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   205
    SuffixToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   206
        at:'style'
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   207
        put:#(';' (nil nil)).          
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   208
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   209
    SuffixToCommentStringMapping 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   210
        at:'rs'
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   211
        put:#(';' (nil nil)).
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   212
2937
67ef44218dc0 changed: #initializeCommentStringMappings
Claus Gittinger <cg@exept.de>
parents: 2924
diff changeset
   213
    "Modified: / 06-09-2011 / 10:46:27 / cg"
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   214
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   215
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   216
initializeDefaultCommands
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   217
    "TODO: move this to OS"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   218
3253
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   219
    |unixCommands win32Commands unixPrintCommands win32PrintCommands listToTry|
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   220
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   221
    DefaultCommandPerMIMEPerOS := Dictionary new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   222
    DefaultCommandPerMIMEPerOS at:#unix  put:(unixCommands := Dictionary new).
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   223
    DefaultCommandPerMIMEPerOS at:#win32 put:(win32Commands := Dictionary new).
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   224
3187
6708c6aacc39 class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3113
diff changeset
   225
    unixCommands at:'application/x-tar-compressed' put:'tar tvf -'.
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   226
2141
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   227
    OperatingSystem isMSWINDOWSlike ifFalse:[ |cmd|
3253
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   228
        OperatingSystem isOSXlike ifTrue:[
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   229
            listToTry := #( '/Applications/Safari.app/Contents/MacOS/Safari' )
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   230
        ] ifFalse:[
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   231
            listToTry := #('firefox' 'chrome' 'chromium' 'konqueror' 'opera')
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   232
        ].
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   233
        cmd := listToTry
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   234
                    detect:[:aCmd| (OperatingSystem pathOfCommand:aCmd) notEmptyOrNil ]
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   235
                    ifNone:nil.
2141
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   236
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   237
        cmd notNil ifTrue:[
2142
d9537c2a5c64 support konqueror as html browser
ca
parents: 2141
diff changeset
   238
            unixCommands at:'text/html' put:(cmd, ' "%1"')       
2141
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   239
        ].
3187
6708c6aacc39 class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3113
diff changeset
   240
3253
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   241
        OperatingSystem isOSXlike ifTrue:[
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   242
            listToTry := #( '/Applications/Preview.app/Contents/MacOS/Preview' )
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   243
        ] ifFalse:[
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   244
            listToTry := #('acroread' 'okular' 'evince' 'kpdf' 'xpdf')
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   245
        ].
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   246
        cmd := listToTry
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   247
                    detect:[:aCmd| (OperatingSystem pathOfCommand:aCmd) notEmptyOrNil ]
32a605517d3d class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   248
                    ifNone:nil.
3187
6708c6aacc39 class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3113
diff changeset
   249
6708c6aacc39 class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3113
diff changeset
   250
        cmd notNil ifTrue:[
6708c6aacc39 class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3113
diff changeset
   251
            unixCommands at:'application/pdf' put:(cmd, ' "%1"')       
6708c6aacc39 class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3113
diff changeset
   252
        ].
2141
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   253
    ].
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   254
8decb5cd7766 support html browser under unix
ca
parents: 2118
diff changeset
   255
2116
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   256
    DefaultPrintCommandPerMIMEPerOS := Dictionary new.
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   257
    DefaultPrintCommandPerMIMEPerOS at:#unix  put:(unixPrintCommands := Dictionary new).
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   258
    DefaultPrintCommandPerMIMEPerOS at:#win32 put:(win32PrintCommands := Dictionary new).
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   259
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   260
    "/ if you have a good (intelligent) spooler ;-)
2904
bb555534881e changed: #initializeDefaultCommands
Stefan Vogel <sv@exept.de>
parents: 2892
diff changeset
   261
    unixPrintCommands at:'application/pdf'         put:'lpr "%1"'.
2116
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   262
    "/ if not, you may need more...
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   263
    "/ unixPrintCommands at:'application/pdf'         put:'pdfToPS %1 | lpr'.
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
   264
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   265
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   266
     self initializeDefaultCommands
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   267
    "
1979
0612875a95c1 acroread command from registry (win32)
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   268
0612875a95c1 acroread command from registry (win32)
Claus Gittinger <cg@exept.de>
parents: 1925
diff changeset
   269
    "Modified: / 12-05-2004 / 11:43:23 / cg"
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   270
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   271
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   272
initializeFileNameToMimeTypeMapping
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   273
    "initialize wellKnown facts"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   274
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   275
    |types|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   276
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   277
    FileSuffixToTypeMapping isNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   278
        FileSuffixToTypeMapping := Dictionary new
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   279
    ].
1887
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   280
    TypeToFileSuffixMapping isNil ifTrue:[
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   281
        TypeToFileSuffixMapping := Dictionary new
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   282
    ].
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   283
    FilenameToTypeMapping isNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   284
        FilenameToTypeMapping := Dictionary new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   285
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   286
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   287
    types := OrderedCollection new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   288
    types addAll:self textTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   289
    types addAll:self imageTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   290
    types addAll:self videoTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   291
    types addAll:self audioTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   292
    types addAll:self applicationTypeList.
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   293
    types addAll:self osSpecificTypeList.
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   294
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   295
    types pairWiseDo:[:suff :typeString|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   296
        |type|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   297
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   298
        type := MIMEType fromString:typeString.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   299
        suff isArray ifTrue:[
1887
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   300
            suff do:[:s | FileSuffixToTypeMapping at:s put:type].
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   301
            TypeToFileSuffixMapping at:type put:suff first.
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   302
        ] ifFalse:[
1887
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   303
            FileSuffixToTypeMapping at:suff put:type.
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   304
            TypeToFileSuffixMapping at:type put:suff.
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   305
        ].
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   306
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   307
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   308
    self miscFilenameList pairWiseDo:[:nm :typeString|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   309
        |type|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   310
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   311
        type := MIMEType fromString:typeString.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   312
        nm isArray ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   313
            nm do:[:s | FilenameToTypeMapping at:s put:type]
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   314
        ] ifFalse:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   315
            FilenameToTypeMapping at:nm put:type
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   316
        ]
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   317
    ].
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   318
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   319
    "
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   320
     self initializeFileNameToMimeTypeMapping
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   321
    "
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   322
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   323
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   324
initializeImageReaderMappings
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   325
    |rdr|
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   326
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   327
    FileSuffixToImageReaderClassMapping isNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   328
        FileSuffixToImageReaderClassMapping := Dictionary new
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   329
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   330
    "MIME" TypeToImageReaderClassMapping isNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   331
        TypeToImageReaderClassMapping := Dictionary new
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   332
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   333
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   334
    "/ setup mimeType to image reader class mapping ...
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   335
    TypeToImageReaderClassMapping at:'image/jpeg' put:JPEGReader.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   336
    TypeToImageReaderClassMapping at:'image/gif'  put:GIFReader.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   337
    TypeToImageReaderClassMapping at:'image/tiff' put:TIFFReader.
2710
29d76b5bb816 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2588
diff changeset
   338
    TypeToImageReaderClassMapping at:'image/png'  put:PNGReader.
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   339
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   340
    "/ setup suffix to image reader class mapping ...
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   341
    FileSuffixToImageReaderClassMapping at:'jpg'  put:JPEGReader.
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   342
    FileSuffixToImageReaderClassMapping at:'jpeg' put:JPEGReader.
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   343
    FileSuffixToImageReaderClassMapping at:'gif'  put:GIFReader.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   344
    FileSuffixToImageReaderClassMapping at:'tif'  put:TIFFReader.
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   345
    FileSuffixToImageReaderClassMapping at:'tiff' put:TIFFReader.
2710
29d76b5bb816 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2588
diff changeset
   346
    FileSuffixToImageReaderClassMapping at:'png'  put:PNGReader.
2570
a089fc8372f1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2535
diff changeset
   347
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   348
    "/ some 'used-to-be-optional' readers
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   349
    (rdr := Smalltalk at:#WindowsIconReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   350
        TypeToImageReaderClassMapping       at:'image/bmp'      put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   351
        TypeToImageReaderClassMapping       at:'image/x-MS-bmp' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   352
        TypeToImageReaderClassMapping       at:'image/x-MS-ico' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   353
        FileSuffixToImageReaderClassMapping at:'bmp'            put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   354
        FileSuffixToImageReaderClassMapping at:'ico'            put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   355
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   356
    (rdr := Smalltalk at:#XBMReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   357
        TypeToImageReaderClassMapping       at:'image/x-xbitmap' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   358
        FileSuffixToImageReaderClassMapping at:'xbm'             put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   359
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   360
    (rdr := Smalltalk at:#XPMReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   361
        TypeToImageReaderClassMapping       at:'image/x-xpixmap' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   362
        FileSuffixToImageReaderClassMapping at:'pm'              put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   363
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   364
    (rdr := Smalltalk at:#PBMReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   365
        TypeToImageReaderClassMapping       at:'image/x-portable-pixmap'  put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   366
        TypeToImageReaderClassMapping       at:'image/x-portable-bitmap'  put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   367
        TypeToImageReaderClassMapping       at:'image/x-portable-graymap' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   368
        TypeToImageReaderClassMapping       at:'image/x-portable-anymap'  put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   369
        FileSuffixToImageReaderClassMapping at:'ppm'                      put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   370
        FileSuffixToImageReaderClassMapping at:'pbm'                      put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   371
        FileSuffixToImageReaderClassMapping at:'pgm'                      put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   372
        FileSuffixToImageReaderClassMapping at:'pnm'                      put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   373
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   374
    (rdr := Smalltalk at:#PCXReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   375
        TypeToImageReaderClassMapping       at:'image/x-pcx' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   376
        FileSuffixToImageReaderClassMapping at:'pcx'         put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   377
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   378
    (rdr := Smalltalk at:#TargaReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   379
        TypeToImageReaderClassMapping       at:'image/x-targa' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   380
        FileSuffixToImageReaderClassMapping at:'tga'           put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   381
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   382
    (rdr := Smalltalk at:#XWDReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   383
        TypeToImageReaderClassMapping       at:'image/x-xwindowdump' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   384
        TypeToImageReaderClassMapping       at:'image/x-windowdump'  put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   385
        FileSuffixToImageReaderClassMapping at:'xwd'                 put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   386
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   387
    (rdr := Smalltalk at:#BlitImageReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   388
        TypeToImageReaderClassMapping       at:'image/x-blitimage' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   389
        FileSuffixToImageReaderClassMapping at:'48x48x1'           put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   390
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   391
    (rdr := Smalltalk at:#IrisRGBReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   392
        TypeToImageReaderClassMapping       at:'image/x-rgb' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   393
        FileSuffixToImageReaderClassMapping at:'rgb'         put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   394
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   395
    (rdr := Smalltalk at:#SunRasterReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   396
        TypeToImageReaderClassMapping       at:'image/x-sunraster' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   397
        FileSuffixToImageReaderClassMapping at:'im8'               put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   398
        FileSuffixToImageReaderClassMapping at:'icon'              put:rdr.
2570
a089fc8372f1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2535
diff changeset
   399
    ].
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   400
    (rdr := Smalltalk at:#ST80FormReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   401
        TypeToImageReaderClassMapping       at:'image/x-st80-form' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   402
        FileSuffixToImageReaderClassMapping at:'form'              put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   403
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   404
    (rdr := Smalltalk at:#FaceReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   405
        TypeToImageReaderClassMapping       at:'image/x-face' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   406
        FileSuffixToImageReaderClassMapping at:'face'         put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   407
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   408
    (rdr := Smalltalk at:#PCDReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   409
        TypeToImageReaderClassMapping       at:'image/x-photo-cd' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   410
        FileSuffixToImageReaderClassMapping at:'pcd'              put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   411
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   412
    (rdr := Smalltalk at:#CMURasterReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   413
        TypeToImageReaderClassMapping       at:'image/x-cmu-raster' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   414
        FileSuffixToImageReaderClassMapping at:'ras'                put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   415
    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   416
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   417
    "/ movie formats - experimantal and not yet complete / finished / delivered
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   418
"/    (rdr := Smalltalk at:#FLIReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   419
"/        TypeToImageReaderClassMapping       at:'video/x-fli' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   420
"/        FileSuffixToImageReaderClassMapping at:'fli'         put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   421
"/    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   422
"/    (rdr := Smalltalk at:#AVIReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   423
"/        TypeToImageReaderClassMapping       at:'video/x-msvideo' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   424
"/        FileSuffixToImageReaderClassMapping at:'avi'             put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   425
"/    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   426
"/    (rdr := Smalltalk at:#AVIReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   427
"/        TypeToImageReaderClassMapping       at:'video/x-msvideo' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   428
"/        FileSuffixToImageReaderClassMapping at:'avi'             put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   429
"/    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   430
"/    (rdr := Smalltalk at:#QuickTimeReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   431
"/        TypeToImageReaderClassMapping       at:'video/quicktime' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   432
"/        FileSuffixToImageReaderClassMapping at:'qt'              put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   433
"/        FileSuffixToImageReaderClassMapping at:'mov'             put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   434
"/        FileSuffixToImageReaderClassMapping at:'moov'            put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   435
"/    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   436
"/    (rdr := Smalltalk at:#MPEG2Reader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   437
"/        TypeToImageReaderClassMapping       at:'video/x-mpeg2' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   438
"/        FileSuffixToImageReaderClassMapping at:'mpg2'          put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   439
"/        FileSuffixToImageReaderClassMapping at:'mpv2'          put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   440
"/        FileSuffixToImageReaderClassMapping at:'mp2v'          put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   441
"/        FileSuffixToImageReaderClassMapping at:'mp2'           put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   442
"/    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   443
"/    (rdr := Smalltalk at:#MPEGReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   444
"/        TypeToImageReaderClassMapping       at:'video/mpeg' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   445
"/        FileSuffixToImageReaderClassMapping at:'mpg'        put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   446
"/        FileSuffixToImageReaderClassMapping at:'mpeg'       put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   447
"/        FileSuffixToImageReaderClassMapping at:'mpe'        put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   448
"/        FileSuffixToImageReaderClassMapping at:'mpv'        put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   449
"/        FileSuffixToImageReaderClassMapping at:'vps'        put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   450
"/        FileSuffixToImageReaderClassMapping at:'mpegv'      put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   451
"/    ].
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   452
"/    (rdr := Smalltalk at:#SGIMovieReader) notNil ifTrue:[
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   453
"/        TypeToImageReaderClassMapping       at:'video/x-sgi-movie' put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   454
"/        FileSuffixToImageReaderClassMapping at:'movie'             put:rdr.
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   455
"/    ].
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   456
!
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   457
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   458
initializeParenthesisSpecMappings
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   459
    |spec|
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   460
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   461
    TypeToParenthesisSpecMapping := Dictionary new.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   462
    SuffixToParenthesisSpecMapping := Dictionary new.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   463
    
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   464
    "/ ST/X spec
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   465
    
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   466
    spec := IdentityDictionary new.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   467
    spec at:#open put:#( $( $[ ${ ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   468
    spec at:#close put:#( $) $] $} ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   469
    spec at:#ignore put:#( $' $" '$[' '$]' '${' '$)' ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   470
    spec at:#eolComment put:'"/'.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   471
    TypeToParenthesisSpecMapping at:'application/x-smalltalk-source' put:spec.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   472
    
2479
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   473
    "/ XML & HTML
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   474
    
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   475
    spec := IdentityDictionary new.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   476
    spec at:#open put:#( $< ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   477
    spec at:#close put:#( $> ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   478
    spec at:#ignore put:#( $' $" '$[' '$]' '${' '$)' ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   479
    #( 'text/html' 'text/xml' 'application/xml' ) do:[:eachXMLType | 
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   480
        TypeToParenthesisSpecMapping at:eachXMLType put:spec
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   481
    ].
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   482
    
2479
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   483
    "/ ANSI-c, Java, C#
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   484
    
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   485
    spec := IdentityDictionary new.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   486
    spec at:#open put:#( $( $[ ${ ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   487
    spec at:#close put:#( $) $] $} ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   488
    spec at:#ignore put:#( $' $" ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   489
    spec at:#eolComment put:'//'.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   490
    TypeToParenthesisSpecMapping at:'application/x-c-source' put:spec.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   491
    TypeToParenthesisSpecMapping at:'application/x-cpp-source' put:spec.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   492
    TypeToParenthesisSpecMapping at:'application/x-csharp-source' put:spec.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   493
    TypeToParenthesisSpecMapping at:'application/x-java-source' put:spec.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   494
    TypeToParenthesisSpecMapping at:'application/x-javascript' put:spec.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   495
    
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   496
    "/ Lisp
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   497
    
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   498
    spec := IdentityDictionary new.
3039
1a8ca229615f class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3020
diff changeset
   499
    spec at:#open put:#( $( $[ ).
1a8ca229615f class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3020
diff changeset
   500
    spec at:#close put:#( $) $] ).
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   501
    spec at:#ignore put:#( $" ).
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   502
    spec at:#eolComment put:';'.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   503
    TypeToParenthesisSpecMapping at:'application/x-lisp-source' put:spec.
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   504
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   505
    "Created: / 10-04-2007 / 15:16:37 / cg"
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   506
! !
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   507
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   508
!MIMETypes class methodsFor:'initialization-lists'!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   509
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   510
applicationCompressorsAndArchiveTypeList
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   511
    ^ #(
1890
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   512
        'tar'                       'application/x-tar'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   513
        'gtar'                      'application/x-gtar'
1891
1b53c21c64c5 tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1890
diff changeset
   514
        ('tgz' 'tar.gz')            'application/x-tar-gzip-compressed'   "/ 'application/x-tar-compressed'
1b53c21c64c5 tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1890
diff changeset
   515
        ('tar.bz2')                 'application/x-tar-bzip2-compressed'
1890
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   516
        'zip'                       'application/x-zip-compressed'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   517
        'bz2'                       'application/x-bzip2-compressed'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   518
        ('gz' 'z')                  'application/x-gzip-compressed'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   519
        'cpio'                      'application/x-cpio'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   520
        'shar'                      'application/x-shar'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   521
        'jar'                       'application/java-archive'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   522
        'sar'                       'application/x-squeak-archive'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   523
        'sit'                       'application/x-stuffit'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   524
        'hqx'                       'application/mac-binhex40'
ccf118af49ce tar.bz2 suffix
Claus Gittinger <cg@exept.de>
parents: 1889
diff changeset
   525
        'cpt'                       'application/mac-compactpro'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   526
    )
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   527
!
645
97e83ab4d246 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 643
diff changeset
   528
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   529
applicationMiscTypeList
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   530
    "misc applications"
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   531
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   532
    ^ #(
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   533
        ('a' 'o' 'obj' )                        'application/binary'
2968
bcd13537812b changed: #applicationMiscTypeList
sr
parents: 2942
diff changeset
   534
        ('lic')                                 'application/license'
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   535
        ('dll' 'so')                            'application/shared-library'
2486
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
   536
42063a7fc3db mimeType: x-expecco-testSuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2479
diff changeset
   537
        ('ets')                                 'application/x-expecco-testsuite'
3104
39607bbc7c1d class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3039
diff changeset
   538
        ('etr')                                 'application/x-expecco-testrepository'
2489
b891d96fd496 elf extension: x-expecco-logfile
Claus Gittinger <cg@exept.de>
parents: 2487
diff changeset
   539
        ('elf')                                 'application/x-expecco-logfile'
2886
22b48a4da285 comment/format in: #initializeFileNameToMimeTypeMapping
sr
parents: 2830
diff changeset
   540
        ('expeccolicense')                      'application/x-expecco-license'
2888
a0bd24f746c0 changed: #applicationMiscTypeList
sr
parents: 2886
diff changeset
   541
        ('expeccopatch')                        'application/x-expecco-patch'
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   542
    )
2886
22b48a4da285 comment/format in: #initializeFileNameToMimeTypeMapping
sr
parents: 2830
diff changeset
   543
2968
bcd13537812b changed: #applicationMiscTypeList
sr
parents: 2942
diff changeset
   544
    "Modified: / 03-11-2011 / 10:42:28 / sr"
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   545
!
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   546
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   547
applicationProgLangTypeList
3020
3f9c74ff0975 changed: #applicationProgLangTypeList
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
   548
    "applications for programming languages"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 663
diff changeset
   549
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   550
    ^ #(
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   551
        ('st' 'cls' 'rc')            'application/x-smalltalk-source'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   552
        'sif'                        'application/x-smalltalk-source-sif'
1668
070264d3a087 added dolphin package
Claus Gittinger <cg@exept.de>
parents: 1666
diff changeset
   553
        'pac'                        'application/x-smalltalk-dolphin-package'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   554
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   555
        'sts'                        'application/x-squeak-source'
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   556
        'pr'                         'application/x-squeak-project'
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   557
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   558
        'c'                          'application/x-c-source'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   559
        ('cc' 'cpp')                 'application/x-cpp-source'
2479
40a05c259915 c# mime type
Claus Gittinger <cg@exept.de>
parents: 2432
diff changeset
   560
        'cs'                         'application/x-csharp-source'
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   561
        ('h' 'hi')                   'application/x-c-header'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   562
        ('js' 'mocha')               'application/x-javascript'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   563
        ('java' 'jav')               'application/x-java-source'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   564
        'sh'                         'application/x-sh'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   565
        'csh'                        'application/x-csh'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   566
        'tcl'                        'application/x-tcl'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   567
        'pl'                         'application/x-perl'
3020
3f9c74ff0975 changed: #applicationProgLangTypeList
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
   568
        'dart'                       'application/x-dart'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   569
        'mak'                        'application/x-make'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   570
        'bat'                        'application/x-batch-script'
3008
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   571
        ('asn1' 'x409' 'gdmo' 'gdm') 'application/x-asn1-source'
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   572
2912
f3466ea0810b changed: #applicationProgLangTypeList
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   573
        ('lisp' 'lsp' 'scm' 'ss' 
f3466ea0810b changed: #applicationProgLangTypeList
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   574
         'arc' 'cl' 'brg')           'application/x-lisp-source'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   575
    )
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
   576
3020
3f9c74ff0975 changed: #applicationProgLangTypeList
Claus Gittinger <cg@exept.de>
parents: 3014
diff changeset
   577
    "Modified (comment): / 21-08-2012 / 20:55:13 / cg"
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   578
!
1561
942de18a3e3e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1560
diff changeset
   579
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   580
applicationTextTypeList
1606
158c10a36736 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1604
diff changeset
   581
    "text applications"
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   582
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   583
    ^ #(
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   584
        ('ps' 'eps')                 'application/postscript'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   585
        "/ 'ai'                         'application/postscript'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   586
        'pdf'                        'application/pdf'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   587
        'rtf'                        'application/rtf'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   588
        "/ 'rtf'                        'text/rtf'            ????
3008
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   589
        'ics'                        'text/calendar'
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   590
        'doc'                        'application/ms-word-document'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   591
        "/ 'doc'                        'application/winword'
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   592
        'swf'                        'application/x-shockwave-flash'
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   593
        ('ppt' 'ppz' 'pot' 'pps')    'application/mspowerpoint'
2028
5d67d14ad4a0 slk type added
Michael Beyl <mb@exept.de>
parents: 2024
diff changeset
   594
        'xls'                        'application/x-excel'   
5d67d14ad4a0 slk type added
Michael Beyl <mb@exept.de>
parents: 2024
diff changeset
   595
        'slk'                        'application/vnd.ms-excel'
2911
7afaf1fdae8b comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
   596
        'txt'                        'text/plain'
2970
8b91ec204044 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 2968
diff changeset
   597
        'xlsx'                       'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   598
    )
2911
7afaf1fdae8b comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
   599
3008
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   600
    "Modified: / 26-05-2012 / 15:27:30 / cg"
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   601
!
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   602
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   603
applicationTypeList
1606
158c10a36736 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1604
diff changeset
   604
    "applications"
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   605
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   606
    |typeList|                            
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   607
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   608
    typeList := OrderedCollection new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   609
    typeList addAll:self applicationProgLangTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   610
    typeList addAll:self applicationTextTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   611
    typeList addAll:self applicationCompressorsAndArchiveTypeList.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   612
    typeList addAll:self applicationMiscTypeList.
1616
f07466809515 add binary file extensions
penk
parents: 1612
diff changeset
   613
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   614
    ^ typeList
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   615
!
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   616
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   617
audioTypeList
1606
158c10a36736 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1604
diff changeset
   618
    "audio formats ..."
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   619
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   620
    ^ #(
1720
cca50de2e8e4 change x-png to png
penk
parents: 1716
diff changeset
   621
        ('au' 'snd')            'audio/basic'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   622
        ('ra')                  'audio/x-realaudio'
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   623
        ('ram' 'rm')            'audio/x-pn-realaudio'
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   624
"/ cg: see unixSpecific / windowsSpecific
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   625
"/        'rpm'                   'audio/x-pn-realaudio-plugin'
3008
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   626
        ('mpa' 'mpega' 'mpga')  'audio/mpeg'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   627
        "/ 'mp3'                   'audio/x-mp3'
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   628
        ('mp3' 'mp2')           'audio/mpeg'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   629
        'wav'                   'audio/x-wav'
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   630
        ('aif' 'aiff' 'aifc')   'audio/x-aiff'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   631
        ('midi' 'mid')          'audio/midi'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   632
    )
3008
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   633
aadfac4bdc84 changed:
Claus Gittinger <cg@exept.de>
parents: 2970
diff changeset
   634
    "Modified: / 26-05-2012 / 15:23:45 / cg"
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   635
!
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   636
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   637
imageTypeList
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   638
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   639
    ^ #(
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   640
        "/ image formats ...
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   641
1216
26fe79e724d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1188
diff changeset
   642
        ('jpg' 'jpeg')  'image/jpeg'
1188
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   643
        'gif'           'image/gif'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   644
        ('tif' 'tiff')  'image/tiff'
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   645
        ('xbm' 'bm')    'image/x-xbitmap'
1188
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   646
        'xpm'           'image/x-xpixmap'
1720
cca50de2e8e4 change x-png to png
penk
parents: 1716
diff changeset
   647
        'png'           'image/png'
1188
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   648
        'pcd'           'image/x-photo-cd'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   649
        'bmp'           'image/x-MS-bmp'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   650
        'rgb'           'image/x-rgb'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   651
        'ppm'           'image/x-portable-pixmap'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   652
        'pgm'           'image/x-portable-graymap'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   653
        'pbm'           'image/x-portable-bitmap'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   654
        'pnm'           'image/x-portable-anymap'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   655
        'xwd'           'image/x-xwindowdump'
bea6424548e3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1180
diff changeset
   656
        'ras'           'image/x-cmu-raster'
1216
26fe79e724d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1188
diff changeset
   657
        'tga'           'image/x-targa'
2020
d5c5d7928433 add 'image/x-ico' for *.ico files
penk
parents: 1981
diff changeset
   658
        'ico'           'image/x-ico'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   659
    ) 
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   660
!
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   661
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   662
miscFilenameList
3104
39607bbc7c1d class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3039
diff changeset
   663
    "other formats (not by suffix, but by fileName instead) ..."
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   664
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   665
    ^ #(
2113
65cbfeee886d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
   666
        ('makefile' 'make.proto' 'make.spec' 'nt.mak')  'application/x-make'
2830
2945a046a7f5 changed: #miscFilenameList
Claus Gittinger <cg@exept.de>
parents: 2820
diff changeset
   667
        ('exe' 'bin' 'com')                             'application/octet-stream'
2113
65cbfeee886d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
   668
        ('class')                                       'application/octet-stream'
2375
723e3325bad1 top file format
Claus Gittinger <cg@exept.de>
parents: 2298
diff changeset
   669
        ('top')                                         'application/x-waltop-digital-notepad'
1609
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   670
    )
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   671
!
090ee7aa4cab *** empty log message ***
penk
parents: 1606
diff changeset
   672
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   673
osSpecificTypeList
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   674
    OperatingSystem isMSWINDOWSlike ifTrue:[
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   675
        ^ self windowsSpecificTypeList
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   676
    ].
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   677
    ^ self unixSpecificTypeList
2023
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   678
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   679
"
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   680
    self osSpecificTypeList
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   681
"
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   682
!
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   683
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   684
textTypeList
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   685
   "/ misc text ...
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   686
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   687
    ^ #(
1887
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   688
        ('html' 'htm' 'shtml')  'text/html'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   689
        ('txt' 'text')          'text/plain'
1680
d34932ed0e86 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1668
diff changeset
   690
        'xml'                   'text/xml'
1777
5879ec563fc1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1775
diff changeset
   691
        'css'                   'text/css'
2432
8dcb56eb1e89 csv icon
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
   692
        'csv'                   'text/csv'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   693
    )
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   694
!
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   695
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   696
unixSpecificTypeList
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   697
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   698
    ^ #(
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   699
"/ cg: RPM is 'audio/x-pn-realaudio-plugin' for WIN32
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   700
"/     and 'application/x-rpm' for Unix
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   701
        'rpm'                   'application/x-rpm'
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   702
    )
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   703
!
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   704
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   705
videoTypeList
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   706
    "/ video formats ...
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   707
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   708
    ^ #(
1720
cca50de2e8e4 change x-png to png
penk
parents: 1716
diff changeset
   709
        ('qt' 'mov' 'moov')                'video/quicktime'
cca50de2e8e4 change x-png to png
penk
parents: 1716
diff changeset
   710
        ('mpv' 'mpegv' 'mpg' 'mpeg' 'mpe') 'video/mpeg'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   711
        'movie'                            'video/x-sgi-movie'
1820
7817c4809af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1819
diff changeset
   712
        ('avi' 'wmv' 'asf')                'video/x-msvideo'
1604
0c678133dc4b new class for mimeType instances
penk
parents: 1593
diff changeset
   713
        ('mpv2' 'mp2v' 'mp2' 'mpeg2')      'video/x-mpeg2'
1680
d34932ed0e86 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1668
diff changeset
   714
        'rm'                               'application/vnd.rn-realmedia'
d34932ed0e86 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1668
diff changeset
   715
        'rv'                               'video/x-pn-realvideo'
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
   716
        'fli'                              'video/x-fli'
1778
6a019cc68896 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1777
diff changeset
   717
   )
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   718
!
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   719
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   720
windowsSpecificTypeList
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   721
    ^ #(
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   722
"/ cg: RPM is 'audio/x-pn-realaudio-plugin' for WIN32
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   723
"/     and 'application/x-rpm' for Unix
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   724
        'rpm'                   'audio/x-pn-realaudio-plugin'
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   725
    )
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   726
! !
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   728
!MIMETypes class methodsFor:'obsolete'!
1489
9e339e123bfa commentStrings: added ifUnknown-argument
tm
parents: 1475
diff changeset
   729
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   730
defaultCommandForMimeType:mimeType
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   731
    <resource: #obsolete>
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   732
    self obsoleteMethodWarning:'use #defaultCommandTemplateToOpenMimeType:'.
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   733
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   734
    ^ self defaultCommandTemplateToOpenMimeType:mimeType
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   735
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   736
    "
2758
66e62ceecb67 comment/format in: #defaultCommandForMimeType:
Claus Gittinger <cg@exept.de>
parents: 2724
diff changeset
   737
     MIMETypes defaultCommandTemplateToOpenMimeType:'application/pdf' 
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   738
    "
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   739
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   740
    "Created: / 12-05-2004 / 11:09:22 / cg"
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   741
    "Modified: / 12-05-2004 / 11:16:53 / cg"
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   742
!
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
   743
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   744
fontForCharset:aCharSetName
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   745
    "return the font-encoding for an iso-charset"
1489
9e339e123bfa commentStrings: added ifUnknown-argument
tm
parents: 1475
diff changeset
   746
1981
52b15b1e90b6 Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 1979
diff changeset
   747
    <resource:#obsolete>
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   748
    self obsoleteMethodWarning:'use FontDescription >> fontNamePatternForCharset:'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   749
    ^ FontDescription fontNamePatternForCharset:aCharSetName.
1489
9e339e123bfa commentStrings: added ifUnknown-argument
tm
parents: 1475
diff changeset
   750
9e339e123bfa commentStrings: added ifUnknown-argument
tm
parents: 1475
diff changeset
   751
    "
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   752
     MIMETypes fontForCharset:'iso2022-jp'       
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   753
     MIMETypes fontForCharset:'euc-jp'     
1472
bef5798d367d comment strings
Claus Gittinger <cg@exept.de>
parents: 1411
diff changeset
   754
    "
bef5798d367d comment strings
Claus Gittinger <cg@exept.de>
parents: 1411
diff changeset
   755
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   756
    "Modified: / 1.8.1998 / 17:00:57 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   757
! !
1472
bef5798d367d comment strings
Claus Gittinger <cg@exept.de>
parents: 1411
diff changeset
   758
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
   759
!MIMETypes class methodsFor:'queries'!
1472
bef5798d367d comment strings
Claus Gittinger <cg@exept.de>
parents: 1411
diff changeset
   760
647
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   761
defineImageType:mimeType suffix:aSuffix reader:aReaderClass
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   762
    "register an image reader."
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   763
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   764
    aSuffix notNil ifTrue:[
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   765
        self imageReaderForSuffix:aSuffix put:aReaderClass.
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   766
    ].
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   767
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   768
    mimeType notNil ifTrue:[
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   769
        self imageReaderForType:mimeType put:aReaderClass
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   770
    ].
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   771
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   772
    (aSuffix notNil and:[mimeType notNil]) ifTrue:[
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   773
        self mimeTypeForSuffix:aSuffix put:mimeType
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   774
    ].
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   775
!
6f26c76aa0c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
   776
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   777
fileSuffixToImageReaderMapping
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   778
    "return the suffix-to-imageReader mapping"
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   779
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
    ^ FileSuffixToImageReaderClassMapping ? #()
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   782
    "Modified: / 1.8.1998 / 17:00:11 / cg"
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   783
!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   785
imageFileSuffixes
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   786
    "return a collection with known file suffixes"
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   787
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   788
    FileSuffixToImageReaderClassMapping isNil ifTrue:[^ #()].
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   789
    ^ FileSuffixToImageReaderClassMapping keys
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   790
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   791
    "Created: / 30.6.1997 / 22:04:48 / cg"
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   792
    "Modified: / 1.8.1998 / 17:01:26 / cg"
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
3014
e6d9a204da08 comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 3012
diff changeset
   795
mimeTypeForFilename:filenameOrString
1272
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   796
    "given a filename, return the mime-type or nil, if unknown"
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   797
1780
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   798
    |type filename lcFilename suff suff2|
1272
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   799
3014
e6d9a204da08 comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 3012
diff changeset
   800
    filename := filenameOrString asFilename.
1474
bd86cf0c1a84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1473
diff changeset
   801
bd86cf0c1a84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1473
diff changeset
   802
    lcFilename := filename baseName asLowercase.
1272
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   803
    type := FilenameToTypeMapping at:lcFilename ifAbsent:nil.
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   804
    type isNil ifTrue:[
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   805
        "/ allow for fallback ...
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   806
        type := OperatingSystem mimeTypeForFilename:lcFilename.
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   807
        "/ the special value #unknown is returned as nil;
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   808
        "/ this avoids constant retry if a mimeType is not known in
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   809
        "/ the OS.
1275
cf421c7dfeec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1274
diff changeset
   810
"/        type isNil ifTrue:[
cf421c7dfeec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1274
diff changeset
   811
"/            FilenameToTypeMapping at:lcFilename put:#unknown
cf421c7dfeec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1274
diff changeset
   812
"/        ].
1272
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   813
    ].
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   814
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   815
    type == #unknown ifTrue:[
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   816
        type := nil.
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   817
    ].
1273
7a52d4bcdb10 filenames mime query falls back to suffix query.
Claus Gittinger <cg@exept.de>
parents: 1272
diff changeset
   818
7a52d4bcdb10 filenames mime query falls back to suffix query.
Claus Gittinger <cg@exept.de>
parents: 1272
diff changeset
   819
    type isNil ifTrue:[
1473
876caa979b7e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
   820
        suff := filename suffix.
1273
7a52d4bcdb10 filenames mime query falls back to suffix query.
Claus Gittinger <cg@exept.de>
parents: 1272
diff changeset
   821
        suff size ~~ 0 ifTrue:[
1780
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   822
            "/ sigh - special code for multiple-suffices...
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   823
            "/ .tar.gz -> tgz
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   824
            suff2 := filename withoutSuffix suffix.
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   825
            suff2 size > 0 ifTrue:[
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   826
                type := self mimeTypeForSuffix:(suff2 , '.' , suff).
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   827
            ].
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   828
            type isNil ifTrue:[
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   829
                type := self mimeTypeForSuffix:suff
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   830
            ].
1273
7a52d4bcdb10 filenames mime query falls back to suffix query.
Claus Gittinger <cg@exept.de>
parents: 1272
diff changeset
   831
        ]
7a52d4bcdb10 filenames mime query falls back to suffix query.
Claus Gittinger <cg@exept.de>
parents: 1272
diff changeset
   832
    ].
7a52d4bcdb10 filenames mime query falls back to suffix query.
Claus Gittinger <cg@exept.de>
parents: 1272
diff changeset
   833
1272
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   834
    ^ type
1780
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   835
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   836
    "
2820
98e9403031ad comment/format
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   837
     MIMETypes mimeTypeForFilename:'typeinst.dvi'      
98e9403031ad comment/format
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   838
     MIMETypes mimeTypeForFilename:'foo.tar'
98e9403031ad comment/format
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   839
     MIMETypes mimeTypeForFilename:'foo.tgz'
98e9403031ad comment/format
Claus Gittinger <cg@exept.de>
parents: 2758
diff changeset
   840
     MIMETypes mimeTypeForFilename:'foo.tar.gz'
2911
7afaf1fdae8b comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
   841
     MIMETypes mimeTypeForFilename:'foo.txt'   
1780
ba94d562efe8 support double-suffix such as '.tar.gz'
Claus Gittinger <cg@exept.de>
parents: 1779
diff changeset
   842
    "
2911
7afaf1fdae8b comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
   843
7afaf1fdae8b comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 2904
diff changeset
   844
    "Modified: / 10-05-2011 / 11:55:18 / cg"
3014
e6d9a204da08 comment/format in: #mimeTypeForFilename:
Claus Gittinger <cg@exept.de>
parents: 3012
diff changeset
   845
    "Modified (format): / 28-07-2012 / 09:39:15 / cg"
1272
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   846
!
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   847
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   848
mimeTypeForFilename:filename put:mimeType
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   849
    "register a mime type for a filename"
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   850
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   851
    FilenameToTypeMapping isNil ifTrue:[
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   852
        FilenameToTypeMapping := Dictionary new
91ba4078b690 additional mime table for filenames without suffix.
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
   853
    ].
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
   854
    FilenameToTypeMapping at:filename put:(MIMEType fromString:mimeType asLowercase)
1611
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   855
!
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   856
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   857
mimeTypeForSuffix:suffix
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   858
    "given a file suffix, return the mime-type"
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   859
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   860
    |type lcSuffix|
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   861
1837
penk
parents: 1820
diff changeset
   862
    suffix = LastSuffix ifTrue:[
penk
parents: 1820
diff changeset
   863
        ^ LastType
penk
parents: 1820
diff changeset
   864
    ].
penk
parents: 1820
diff changeset
   865
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   866
    lcSuffix := suffix asLowercase.
1837
penk
parents: 1820
diff changeset
   867
    type := FileSuffixToTypeMapping at:lcSuffix ifAbsent:nil.
penk
parents: 1820
diff changeset
   868
    type isNil ifTrue:[
penk
parents: 1820
diff changeset
   869
        "/ allow for fallback ...
penk
parents: 1820
diff changeset
   870
        type := OperatingSystem mimeTypeForSuffix:lcSuffix.
penk
parents: 1820
diff changeset
   871
        "/ the special value #unknown is returned as nil;
penk
parents: 1820
diff changeset
   872
        "/ this avoids constant retry if a mimeType is not known in the OS.
penk
parents: 1820
diff changeset
   873
penk
parents: 1820
diff changeset
   874
        type := type ? #unknown.
penk
parents: 1820
diff changeset
   875
        FileSuffixToTypeMapping at:lcSuffix put:type.
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   876
    ].
1837
penk
parents: 1820
diff changeset
   877
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   878
    type == #unknown ifTrue:[
1837
penk
parents: 1820
diff changeset
   879
        type := nil.
1180
c3309b30d14f code cleanup & added mimeType aquire fallBack via OS
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   880
    ].
1840
19123ded64e3 mime Types have to MIMEType instance
penk
parents: 1837
diff changeset
   881
    type notNil ifTrue:[
19123ded64e3 mime Types have to MIMEType instance
penk
parents: 1837
diff changeset
   882
        LastSuffix := suffix.
19123ded64e3 mime Types have to MIMEType instance
penk
parents: 1837
diff changeset
   883
        LastType := MIMEType fromString:type.
19123ded64e3 mime Types have to MIMEType instance
penk
parents: 1837
diff changeset
   884
        ^ LastType
19123ded64e3 mime Types have to MIMEType instance
penk
parents: 1837
diff changeset
   885
    ].
1841
b7ff9829e4b3 return value should be undefined if type isNil
penk
parents: 1840
diff changeset
   886
    ^ type
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   887
1666
2fe4fb7be12c added xml type
Claus Gittinger <cg@exept.de>
parents: 1616
diff changeset
   888
    "
1840
19123ded64e3 mime Types have to MIMEType instance
penk
parents: 1837
diff changeset
   889
     self mimeTypeForSuffix:'gif'     
1888
ef0f346b8f43 rpm suffix is RPM-package under unix (realplayer under windows)
Claus Gittinger <cg@exept.de>
parents: 1887
diff changeset
   890
     self mimeTypeForSuffix:'rpm'     
2891
9aee109c1c1c changed:
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   891
     self mimeTypeForSuffix:'zip'     
1666
2fe4fb7be12c added xml type
Claus Gittinger <cg@exept.de>
parents: 1616
diff changeset
   892
    "
2fe4fb7be12c added xml type
Claus Gittinger <cg@exept.de>
parents: 1616
diff changeset
   893
2891
9aee109c1c1c changed:
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   894
    "Created: / 30-06-1997 / 21:55:51 / cg"
9aee109c1c1c changed:
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   895
    "Modified: / 14-02-2011 / 17:14:34 / cg"
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   896
!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   897
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   898
mimeTypeForSuffix:suffix put:mimeType
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   899
    "register a mime type for a file suffix"
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   900
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   901
    FileSuffixToTypeMapping isNil ifTrue:[
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   902
        FileSuffixToTypeMapping := Dictionary new
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   903
    ].
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   904
    FileSuffixToTypeMapping at:suffix put:mimeType asLowercase
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   905
1021
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   906
    "Created: / 30.6.1997 / 21:56:20 / cg"
004c324dc31a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   907
    "Modified: / 1.8.1998 / 17:03:18 / cg"
1593
4bf2544435a9 add class getter method for FileSuffixToTypemapping
penk
parents: 1561
diff changeset
   908
!
4bf2544435a9 add class getter method for FileSuffixToTypemapping
penk
parents: 1561
diff changeset
   909
4bf2544435a9 add class getter method for FileSuffixToTypemapping
penk
parents: 1561
diff changeset
   910
mimeTypeForSuffixMapping
4bf2544435a9 add class getter method for FileSuffixToTypemapping
penk
parents: 1561
diff changeset
   911
4bf2544435a9 add class getter method for FileSuffixToTypemapping
penk
parents: 1561
diff changeset
   912
    ^ FileSuffixToTypeMapping
1611
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   913
!
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   914
2023
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   915
mimeTypeFromString:mimeTypeString
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   916
    "given a mime-type for a string"
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   917
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   918
     ^ MIMEType fromString:mimeTypeString
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   919
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   920
    "
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   921
     self mimeTypeFromString:'image/gif' 
2487
eaa224da42fa mimeType: x-expecco-testsuite (extension: ets)
Claus Gittinger <cg@exept.de>
parents: 2486
diff changeset
   922
     self mimeTypeFromString:'application/x-expecco-testsuite' 
2023
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   923
    "
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   924
!
70c535a959be *** empty log message ***
penk
parents: 2020
diff changeset
   925
1611
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   926
mimeTypeOfContents:filename
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   927
    "given a filename, scan the contents, return the mime-type or nil, if unknown"
5804b7d63ee8 checkin from browser
penk
parents: 1610
diff changeset
   928
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
   929
    |typeString|
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
   930
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
   931
    typeString := filename mimeTypeOfContents.
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
   932
    typeString isNil ifTrue:[^ nil].
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
   933
    ^ MIMEType fromString:typeString.
1887
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   934
!
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
   935
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   936
mimeTypeOfData:someData
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   937
    "this tries to guess the mime type of contents of someData.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   938
     Returns nil, if unknown.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   939
     This is done using some heuristics, and may need some improvement"
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   940
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   941
    |buffer lcBuffer size idx idx2|
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   942
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
   943
    someData isEmptyOrNil ifTrue:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
   944
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
   945
    size := 2048 min:someData size.
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   946
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   947
    "/ read some data from the file ...
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
   948
    buffer := (someData copyTo:size) asString.
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   949
    lcBuffer := buffer asLowercase.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   950
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   951
    (idx := lcBuffer findString:'mimetype:') ~~ 0 ifTrue:[
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   952
        idx := idx + 'mimetype:' size.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   953
        idx := lcBuffer indexOfNonSeparatorStartingAt:idx.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   954
        idx2 := lcBuffer indexOfSeparatorStartingAt:idx.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   955
        idx2 > idx ifTrue:[
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
   956
            ^ MIMEType fromString:(lcBuffer copyFrom:idx to:idx2-1)
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   957
        ].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   958
    ].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   959
2924
808feaad1bb3 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   960
    "/ real starters
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   961
    #(
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   962
        ( #[16r4C 16r00 16r00 16r00 16r01 16r14 16r02 16r00 16r00 16r00 16r00 16r00 16rC0 16r00 16r00 16r00 16r00 16r00 16r00 16r46] 
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   963
                #'application/x-ms-shortcut' )
2924
808feaad1bb3 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   964
        ( 'ITOLITLS' 
808feaad1bb3 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   965
                #'application/x-ms-reader' )
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   966
        ( 'WALTOP' 
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   967
                #'application/x-waltop-digital-notepad' )
2892
3da4b1884487 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2891
diff changeset
   968
        ('PK'                       
3da4b1884487 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2891
diff changeset
   969
                #'application/x-zip-compressed')
3113
f05de9a7a26c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3104
diff changeset
   970
        ('<?xml'                       
f05de9a7a26c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3104
diff changeset
   971
                #'text/xml')
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   972
     ) pairsDo:[:pattern :what |
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   973
        |patternString|
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   974
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   975
        patternString := pattern asString.
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   976
        (buffer startsWith:patternString) ifTrue:[
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
   977
            ^ MIMEType fromString:what
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   978
        ]
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   979
    ].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   980
2924
808feaad1bb3 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   981
    "/ somewhere near the beginning
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   982
    #(
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   983
            ('<body:'                   #'text/html')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   984
            ('%!!ps-adobe'               #'application/postscript')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   985
            ('%PDF-'                    #'application/pdf')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   986
            ('#!! /bin/sh'               #'application/x-sh')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   987
            ('#!!/bin/sh'                #'application/x-sh')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   988
            "/ ('#!! /bin/bash'              'application/x-bash')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   989
            "/ ('#!!/bin/bash'               'application/x-bash')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   990
3113
f05de9a7a26c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3104
diff changeset
   991
            ('---- encoding: '          #'application/x-smalltalk-source')
f05de9a7a26c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3104
diff changeset
   992
            ('---- timestamp '          #'application/x-smalltalk-source')
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   993
            ('from dolphin'             #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   994
            ('from visualworks'         #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   995
            ('categoriesforclass'       #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   996
            ('methodsfor!!'              #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   997
            ('subclass:'                #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   998
            ('methodsfor:'              #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
   999
            ('interchangeversion:'      #'application/x-smalltalk-source-sif')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1000
            ('subclass:'                #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1001
            ('methodsfor:'              #'application/x-smalltalk-source')
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1002
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1003
    ) pairsDo:[:pattern :what | 
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1004
        (lcBuffer findString:pattern) ~~ 0 ifTrue:[
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
  1005
            ^ MIMEType fromString:what
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1006
        ]
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1007
    ].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1008
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1009
    (idx := lcBuffer findString:'<h') ~~ 0 ifTrue:[
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1010
        ((lcBuffer continuesWith:'<head' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1011
        or:[(lcBuffer continuesWith:'<html' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1012
        or:[(lcBuffer continuesWith:'<h1' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1013
        or:[(lcBuffer continuesWith:'<h2' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1014
        or:[(lcBuffer continuesWith:'<h3' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1015
        or:[(lcBuffer continuesWith:'<h4' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1016
        or:[(lcBuffer continuesWith:'<h5' startingAt:idx)
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1017
        or:[(lcBuffer continuesWith:'<h6' startingAt:idx)]]]]]]])
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1018
        ifTrue:[
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
  1019
            ^ MIMEType fromString:'text/html'
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1020
        ]
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1021
    ].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1022
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1023
    [size ~~ 0 and:[(buffer at:size) isPrintable]] whileTrue:[size := size - 1].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1024
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1025
    size == 0 ifTrue:[
2583
Claus Gittinger <cg@exept.de>
parents: 2582
diff changeset
  1026
        ^ MIMEType fromString:'text/plain'
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1027
    ].
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1028
    ^ nil
2891
9aee109c1c1c changed:
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  1029
2924
808feaad1bb3 changed: #mimeTypeOfData:
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1030
    "Modified: / 12-07-2011 / 19:08:17 / cg"
2582
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1031
!
298203fdb64d mime type detection from conents moved from fileName to here
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1032
1887
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1033
suffixForMimeType:mimeType
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1034
    "given a file suffix, return the mime-type"
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1035
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1036
    ^ TypeToFileSuffixMapping at:mimeType ifAbsent:nil
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1037
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1038
    "
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1039
     self suffixForMimeType:(MIMEType fromString:'image/gif')     
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1040
    "
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1041
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1042
    "Created: / 30.6.1997 / 21:55:51 / cg"
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1043
    "Modified: / 23.12.1999 / 22:30:55 / cg"
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1044
!
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1045
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1046
suffixForMimeTypeString:mimeTypeString
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1047
    "given a file suffix, return the mime-type"
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1048
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1049
     ^ self suffixForMimeType:(MIMEType fromString:mimeTypeString) 
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1050
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1051
    "
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1052
     self suffixForMimeTypeString:'image/gif' 
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1053
    "
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1054
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1055
    "Created: / 30.6.1997 / 21:55:51 / cg"
ae19bd933dbd add suffixForMimeType acces
penk
parents: 1864
diff changeset
  1056
    "Modified: / 23.12.1999 / 22:30:55 / cg"
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1057
! !
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1058
2116
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1059
!MIMETypes class methodsFor:'queries-applications'!
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1060
2117
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1061
defaultCommandPerMIME
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1062
    "returns the collection which is used to map MIME-type to command-templates."
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1063
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1064
    "TODO: move this to OS/UserPreferences"
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1065
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1066
    DefaultCommandPerMIMEPerOS isNil ifTrue:[
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1067
        self initializeDefaultCommands
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1068
    ].
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1069
    OperatingSystem isUNIXlike ifTrue:[
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1070
        ^ DefaultCommandPerMIMEPerOS at:#unix
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1071
    ].
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1072
    ^ DefaultCommandPerMIMEPerOS at:#win32
2942
693d381bc775 comment/format in: #defaultCommandPerMIME
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  1073
693d381bc775 comment/format in: #defaultCommandPerMIME
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  1074
    "
693d381bc775 comment/format in: #defaultCommandPerMIME
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  1075
     MIMETypes defaultCommandPerMIME
693d381bc775 comment/format in: #defaultCommandPerMIME
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  1076
    "
693d381bc775 comment/format in: #defaultCommandPerMIME
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  1077
693d381bc775 comment/format in: #defaultCommandPerMIME
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  1078
    "Modified (comment): / 16-09-2011 / 16:20:12 / cg"
2117
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1079
!
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1080
2116
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1081
defaultCommandTemplateToOpenMimeType:mimeType
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1082
    |cmd|
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1083
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1084
    cmd := self defaultCommandPerMIME at:mimeType ifAbsent:nil.
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1085
    cmd isNil ifTrue:[
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1086
        OperatingSystem isMSWINDOWSlike ifTrue:[
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1087
            cmd := Win32OperatingSystem::RegistryEntry commandTemplateToOpenMimeType:mimeType
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1088
        ].
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1089
    ].
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1090
    ^ cmd
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1091
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1092
    "
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1093
     MIMETypes defaultCommandTemplateToOpenMimeType:'application/pdf'
2118
b41112f6c76e commandTemplate stuff
Claus Gittinger <cg@exept.de>
parents: 2117
diff changeset
  1094
     MIMETypes defaultCommandTemplateToOpenMimeType:'text/html'
2116
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1095
    "
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1096
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1097
    "Created: / 12-05-2004 / 11:09:22 / cg"
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1098
    "Modified: / 12-05-2004 / 11:16:53 / cg"
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1099
!
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1100
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1101
defaultCommandTemplateToPrintMimeType:mimeType
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1102
    |cmd|
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1103
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1104
    cmd := self defaultPrintCommandPerMIME at:mimeType ifAbsent:nil.
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1105
    cmd isNil ifTrue:[
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1106
        OperatingSystem isMSWINDOWSlike ifTrue:[
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1107
            cmd := Win32OperatingSystem::RegistryEntry commandTemplateToPrintMimeType:mimeType
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1108
        ].
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1109
    ].
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1110
    ^ cmd
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1111
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1112
    "
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1113
     MIMETypes defaultCommandTemplateToPrintMimeType:'application/pdf'
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1114
    "
2117
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1115
!
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1116
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1117
defaultPrintCommandPerMIME
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1118
    "returns the collection which is used to map MIME-type to printing command-templates."
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1119
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1120
    "TODO: move this to OS/UserPreferences"
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1121
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1122
    DefaultPrintCommandPerMIMEPerOS isNil ifTrue:[
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1123
        self initializeDefaultCommands
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1124
    ].
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1125
    OperatingSystem isUNIXlike ifTrue:[
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1126
        ^ DefaultPrintCommandPerMIMEPerOS at:#unix
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1127
    ].
84ad717d243e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2116
diff changeset
  1128
    ^ DefaultPrintCommandPerMIMEPerOS at:#win32
2116
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1129
! !
edc0a8f8ff26 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2113
diff changeset
  1130
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1131
!MIMETypes class methodsFor:'queries-image formats'!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1132
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1133
imageReaderClasses
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1134
    "return a collection of registered image reader classes"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1135
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1136
    |setOfClasses|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1137
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1138
    setOfClasses := IdentitySet new.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1139
    FileSuffixToImageReaderClassMapping notNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1140
        FileSuffixToImageReaderClassMapping keysAndValuesDo:[:suff :cls |
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1141
            setOfClasses add:cls
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1142
        ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1143
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1144
    TypeToImageReaderClassMapping notNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1145
        TypeToImageReaderClassMapping keysAndValuesDo:[:suff :cls |
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1146
            setOfClasses add:cls
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1147
        ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1148
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1149
    ^ setOfClasses
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1150
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1151
    "Created: / 30.6.1997 / 22:03:42 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1152
    "Modified: / 1.8.1998 / 16:59:52 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1153
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1154
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1155
imageReaderForSuffix:aSuffix
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1156
    "given a file suffix, return an approriate image reader class"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1157
2724
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1158
    FileSuffixToImageReaderClassMapping isNil ifTrue:[
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1159
        self initializeImageReaderMappings
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1160
    ].
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1161
    ^ FileSuffixToImageReaderClassMapping at:aSuffix asLowercase ifAbsent:nil
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1162
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1163
    "Created: / 30.6.1997 / 21:59:11 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1164
    "Modified: / 1.8.1998 / 17:01:58 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1165
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1166
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1167
imageReaderForSuffix:aSuffix put:aReaderClass
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1168
    "register an image reader for a file suffix"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1169
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1170
    FileSuffixToImageReaderClassMapping isNil ifTrue:[
2724
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1171
        self initializeImageReaderMappings
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1172
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1173
    FileSuffixToImageReaderClassMapping at:aSuffix asLowercase put:aReaderClass
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1174
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1175
    "Created: / 30.6.1997 / 21:59:43 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1176
    "Modified: / 1.8.1998 / 17:02:14 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1177
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1178
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1179
imageReaderForType:mimeTypeString
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1180
    "given a mime-type, return an approriate image reader class"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1181
2724
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1182
    TypeToImageReaderClassMapping isNil ifTrue:[
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1183
        self initializeImageReaderMappings
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1184
    ].
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1185
    ^ TypeToImageReaderClassMapping at:mimeTypeString asLowercase ifAbsent:nil
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1186
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1187
    "Created: / 30.6.1997 / 21:56:01 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1188
    "Modified: / 1.8.1998 / 17:02:28 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1189
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1190
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1191
imageReaderForType:mimeTypeString put:aReaderClass
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1192
    "register an image reader for a mime-type"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1193
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1194
    TypeToImageReaderClassMapping isNil ifTrue:[
2724
8e834e62dbbc Initialize when querying for image type and not yet initialized
Stefan Vogel <sv@exept.de>
parents: 2710
diff changeset
  1195
        self initializeImageReaderMappings
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1196
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1197
    TypeToImageReaderClassMapping at:mimeTypeString asLowercase put:aReaderClass
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1198
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1199
    "Created: / 30.6.1997 / 21:56:11 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1200
    "Modified: / 1.8.1998 / 17:02:40 / cg"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1201
! !
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1202
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1203
!MIMETypes class methodsFor:'queries-language syntax'!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1204
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1205
commentStringsForFilename:aFilename
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1206
    "return a useful comment definition; heuristics for now.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1207
     The returned value is an array of 2 elements;
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1208
     the first is the end-of-line comment string (or nil);
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1209
     the second an array of opening/closing delimiters (or an array of nils)"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1210
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1211
     |mime|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1212
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1213
     mime := MIMETypes mimeTypeForFilename:aFilename.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1214
     ^ self commentStringsForMimeType:mime suffix:(aFilename asFilename suffix)
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1215
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1216
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1217
     MIMETypes commentStringsForFilename:'Makefile'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1218
     MIMETypes commentStringsForFilename:'Object.st'. 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1219
     MIMETypes commentStringsForFilename:'Foo.java'. 
1925
9f5e4568529f comment
Claus Gittinger <cg@exept.de>
parents: 1891
diff changeset
  1220
     MIMETypes commentStringsForFilename:'Foo.html'. 
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1221
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1222
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1223
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1224
commentStringsForFilename:aFilename ifUnknown:alternativeBlockReturningCommentString
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1225
    "return a useful comment definition; heuristics for now.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1226
     The returned value is an array of 2 elements;
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1227
     the first is the end-of-line comment string (or nil);
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1228
     the second an array of opening/closing delimiters (or an array of nils)"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1229
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1230
     |mime|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1231
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1232
     mime := MIMETypes mimeTypeForFilename:aFilename.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1233
     ^ self commentStringsForMimeType:mime suffix:(aFilename asFilename suffix) ifUnknown:alternativeBlockReturningCommentString
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1234
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1235
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1236
     MIMETypes commentStringsForFilename:'Makefile'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1237
     MIMETypes commentStringsForFilename:'Object.st'. 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1238
     MIMETypes commentStringsForFilename:'Foo.java'. 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1239
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1240
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1241
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1242
commentStringsForMimeType:mime suffix:suff
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1243
    "return a useful comment definition; heuristics for now.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1244
     The returned value is an array of 2 elements;
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1245
     the first is the end-of-line comment string (or nil);
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1246
     the second an array of opening/closing delimiters (or an array of nils)"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1247
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1248
    ^ self
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1249
        commentStringsForMimeType:mime suffix:suff 
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1250
        ifUnknown: #(';' (nil nil))  
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1251
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1252
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1253
     |mime|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1254
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1255
     mime := MIMETypes mimeTypeForFilename:'Makefile'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1256
     MIMETypes commentStringsForMimeType:mime suffix:nil.     
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1257
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1258
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1259
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1260
     |mime|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1261
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1262
     mime := MIMETypes mimeTypeForFilename:'Object.st'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1263
     MIMETypes commentStringsForMimeType:mime suffix:nil.    
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1264
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1265
!
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1266
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1267
commentStringsForMimeType:mime suffix:suff ifUnknown:alternativeBlockReturningCommentString
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1268
    "return a useful comment definition; heuristics for now.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1269
     The returned value is an array of 2 elements;
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1270
     the first is the end-of-line comment string (or nil);
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1271
     the second an array of opening/closing delimiters (or an array of nils)"
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1272
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1273
    |commentSpec|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1274
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1275
    commentSpec := TypeToCommentStringMapping at:mime ifAbsent:nil.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1276
    commentSpec notNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1277
        ^ commentSpec
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1278
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1279
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1280
    commentSpec := SuffixToCommentStringMapping at:suff ifAbsent:nil.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1281
    commentSpec notNil ifTrue:[
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1282
        ^ commentSpec
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1283
    ].
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1284
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1285
    ^ alternativeBlockReturningCommentString value
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1286
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1287
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1288
     |mime|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1289
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1290
     mime := MIMETypes mimeTypeForFilename:'Makefile'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1291
     MIMETypes commentStringsForMimeType:mime suffix:nil.     
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1292
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1293
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1294
    "
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1295
     |mime|
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1296
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1297
     mime := MIMETypes mimeTypeForFilename:'Object.st'.
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1298
     MIMETypes commentStringsForMimeType:mime suffix:nil.    
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1299
    "
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1300
!
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1301
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1302
parenthesisSpecForFilename:aFilename
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1303
    "return a useful parentesis spec; heuristics for now.
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1304
     The returned value is a dictionary to be used as parentesis spec in an editor"
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1305
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1306
     |mime|
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1307
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1308
     mime := MIMETypes mimeTypeForFilename:aFilename.
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1309
     ^ self parenthesisSpecForMimeType:mime suffix:(aFilename asFilename suffix)
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1310
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1311
    "
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1312
     MIMETypes parenthesisSpecForFilename:'Object.st'. 
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1313
     MIMETypes parenthesisSpecForFilename:'Foo.java'. 
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1314
     MIMETypes parenthesisSpecForFilename:'Foo.html'. 
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1315
     MIMETypes parenthesisSpecForFilename:'Foo.lsp'. 
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1316
    "
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1317
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1318
    "Created: / 10-04-2007 / 15:18:41 / cg"
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1319
!
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1320
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1321
parenthesisSpecForFilename:aFilename ifUnknown:alternative
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1322
     |mime|
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1323
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1324
     mime := MIMETypes mimeTypeForFilename:aFilename.
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1325
     ^ self parenthesisSpecForMimeType:mime suffix:(aFilename asFilename suffix) ifUnknown:alternative
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1326
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1327
    "Created: / 10-04-2007 / 15:26:20 / cg"
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1328
!
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1329
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1330
parenthesisSpecForMimeType:mime suffix:suff
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1331
    ^ self
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1332
        parenthesisSpecForMimeType:mime suffix:suff 
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1333
        ifUnknown: nil
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1334
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1335
    "Created: / 10-04-2007 / 15:19:39 / cg"
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1336
!
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1337
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1338
parenthesisSpecForMimeType:mime suffix:suff ifUnknown:alternativeValue
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1339
    |spec|
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1340
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1341
    spec := TypeToParenthesisSpecMapping at:mime ifAbsent:nil.
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1342
    spec notNil ifTrue:[
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1343
        ^ spec
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1344
    ].
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1345
2491
831417cc1e5b Change bas spelling: parentesis to good spellinge parenthesis
Stefan Vogel <sv@exept.de>
parents: 2490
diff changeset
  1346
    spec := SuffixToParenthesisSpecMapping at:suff ifAbsent:nil.
2298
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1347
    spec notNil ifTrue:[
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1348
        ^ spec
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1349
    ].
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1350
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1351
    ^ alternativeValue value
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1352
2d09f75ee005 parentesis spec
Claus Gittinger <cg@exept.de>
parents: 2142
diff changeset
  1353
    "Created: / 10-04-2007 / 15:20:38 / cg"
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1354
! !
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1355
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1356
!MIMETypes::MIMEType class methodsFor:'documentation'!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1357
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1358
documentation
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1359
"
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1360
    like a string, but knows that it represents a mimeType.
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1361
"
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1362
! !
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1363
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1364
!MIMETypes::MIMEType class methodsFor:'instance creation'!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1365
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1366
fromString:aString
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1367
    |cachedType newType|
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1368
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1369
    aString class == self ifTrue:[^ aString].
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1370
3011
f2af94d78383 delay initialization of cachedTypes
Claus Gittinger <cg@exept.de>
parents: 3008
diff changeset
  1371
    CachedTypes isNil ifTrue:[
3012
af9c31ac2fc1 make it a real dictionary
Claus Gittinger <cg@exept.de>
parents: 3011
diff changeset
  1372
        CachedTypes := Dictionary new:100.
3011
f2af94d78383 delay initialization of cachedTypes
Claus Gittinger <cg@exept.de>
parents: 3008
diff changeset
  1373
    ].
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1374
    cachedType := CachedTypes at:aString ifAbsent:nil.
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1375
    cachedType notNil ifTrue:[^ cachedType].
3011
f2af94d78383 delay initialization of cachedTypes
Claus Gittinger <cg@exept.de>
parents: 3008
diff changeset
  1376
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1377
    newType := aString copy changeClassTo:self.
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1378
    CachedTypes at:aString put:newType.
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1379
    ^ newType
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1380
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1381
    "
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1382
     self fromString:'text/html'
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1383
    "
3011
f2af94d78383 delay initialization of cachedTypes
Claus Gittinger <cg@exept.de>
parents: 3008
diff changeset
  1384
3012
af9c31ac2fc1 make it a real dictionary
Claus Gittinger <cg@exept.de>
parents: 3011
diff changeset
  1385
    "Modified: / 20-07-2012 / 17:36:31 / cg"
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1386
! !
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1387
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1388
!MIMETypes::MIMEType methodsFor:'queries'!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1389
1693
4055b361abe9 isArchiv -> isArchive
Claus Gittinger <cg@exept.de>
parents: 1691
diff changeset
  1390
isArchive
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1391
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1392
    "return true, if I represent an archive type (such as zip or tar)"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1393
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1394
    ^ self isArchiveType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1395
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1396
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1397
isArchiveType
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1398
    "return true, if I represent an archive type (such as zip or tar)"
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1399
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1400
    |archivTypes|
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1401
1729
5d1b74b8d264 refactored
Claus Gittinger <cg@exept.de>
parents: 1720
diff changeset
  1402
    archivTypes := MIMETypes applicationCompressorsAndArchiveTypeList.
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1403
    archivTypes pairWiseDo:[: ext : type |
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1404
        self = type ifTrue:[ ^ true].
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1405
    ].
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1406
    ^ false
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1407
!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1408
2024
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1409
isBinary
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1410
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1411
    "return true, if I represent a binary (non-text) type"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1412
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1413
    ^ self isBinaryType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1414
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1415
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1416
isBinaryType
2024
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1417
    "return true, if I represent a binary (non-text) type"
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1418
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1419
    ^ self isTextType not
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1420
!
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1421
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1422
isHtml
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1423
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1424
    "return true, if I represent the html text type"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1425
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1426
    ^ self isHtmlType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1427
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1428
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1429
isHtmlType
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1430
    "return true, if I represent the html text type"
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1431
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1432
    ^ (self = 'text/html')
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1433
!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1434
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1435
isImage
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1436
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1437
    "return true, if I represent an image type (such as gif or jpg)"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1438
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1439
    ^ self isImageType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1440
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1441
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1442
isImageType
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1443
    "return true, if I represent an image type (such as gif or jpg)"
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1444
1693
4055b361abe9 isArchiv -> isArchive
Claus Gittinger <cg@exept.de>
parents: 1691
diff changeset
  1445
    ^ (self startsWith:'image/')
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1446
!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1447
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1448
isPdf
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1449
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1450
    "return true, if I represent the pdf type"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1451
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1452
    ^ self isPdfType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1453
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1454
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1455
isPdfType
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1456
    "return true, if I represent the pdf type"
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1457
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1458
    ^ (self = 'application/pdf')
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1459
!
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1460
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1461
isSmalltalkSource
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1462
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1463
    "return true, if I represent the smalltalk sourcecode type"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1464
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1465
    ^ self isSmalltalkSourceType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1466
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1467
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1468
isSmalltalkSourceType
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1469
    "return true, if I represent the smalltalk sourcecode type"
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1470
1612
4c7893f943a8 *** empty log message ***
penk
parents: 1611
diff changeset
  1471
    ^ (self = 'application/x-smalltalk-source')
1783
faf721f692ae *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1780
diff changeset
  1472
!
faf721f692ae *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1780
diff changeset
  1473
2024
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1474
isTextType
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1475
    "return true, if I represent some text type"
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1476
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1477
    ^ self startsWith:'text/'
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1478
!
eb5838c72cc7 isBinary added
penk
parents: 2023
diff changeset
  1479
1783
faf721f692ae *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1780
diff changeset
  1480
isXml
3260
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1481
    <resource: #obsolete>
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1482
    "return true, if I represent the xml text type"
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1483
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1484
    ^ self isXmlType
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1485
!
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1486
cefd4c99843e class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3253
diff changeset
  1487
isXmlType
1864
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1488
    "return true, if I represent the xml text type"
c21ec6c1635e comments
Claus Gittinger <cg@exept.de>
parents: 1841
diff changeset
  1489
1783
faf721f692ae *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1780
diff changeset
  1490
    ^ (self = 'text/xml')
2490
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1491
!
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1492
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1493
suffix
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1494
    ^ MIMETypes suffixForMimeType:self
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1495
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1496
    "
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1497
       (MIMETypes mimeTypeFromString:'application/x-expecco-testsuite') suffix 
9bcc1b3fd7e0 MIMEType>>#suffix
Stefan Vogel <sv@exept.de>
parents: 2489
diff changeset
  1498
    "
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1499
! !
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1500
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1501
!MIMETypes class methodsFor:'documentation'!
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1502
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1503
version
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
  1504
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypes.st,v 1.132 2014-02-28 15:31:25 cg Exp $'
2758
66e62ceecb67 comment/format in: #defaultCommandForMimeType:
Claus Gittinger <cg@exept.de>
parents: 2724
diff changeset
  1505
!
66e62ceecb67 comment/format in: #defaultCommandForMimeType:
Claus Gittinger <cg@exept.de>
parents: 2724
diff changeset
  1506
66e62ceecb67 comment/format in: #defaultCommandForMimeType:
Claus Gittinger <cg@exept.de>
parents: 2724
diff changeset
  1507
version_CVS
3295
c430566c334c class: MIMETypes
Claus Gittinger <cg@exept.de>
parents: 3260
diff changeset
  1508
    ^ '$Header: /cvs/stx/stx/libview2/MIMETypes.st,v 1.132 2014-02-28 15:31:25 cg Exp $'
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1509
! !
1666
2fe4fb7be12c added xml type
Claus Gittinger <cg@exept.de>
parents: 1616
diff changeset
  1510
3104
39607bbc7c1d class: MIMETypes
Stefan Vogel <sv@exept.de>
parents: 3039
diff changeset
  1511
643
f3bd12eb1008 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1512
MIMETypes initialize!