AbstractDesktop.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 20:55:17 +0200
changeset 24417 03b083548da2
parent 21901 26386984b417
permissions -rw-r--r--
#REFACTORING by exept class: Smalltalk class changed: #recursiveInstallAutoloadedClassesFrom:rememberIn:maxLevels:noAutoload:packageTop:showSplashInLevels: Transcript showCR:(... bindWith:...) -> Transcript showCR:... with:...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
     1
"
5178d47926ea initial checkin
vrany
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
5178d47926ea initial checkin
vrany
parents:
diff changeset
     3
              All Rights Reserved
5178d47926ea initial checkin
vrany
parents:
diff changeset
     4
5178d47926ea initial checkin
vrany
parents:
diff changeset
     5
 This software is furnished under a license and may be used
5178d47926ea initial checkin
vrany
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
5178d47926ea initial checkin
vrany
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
5178d47926ea initial checkin
vrany
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
5178d47926ea initial checkin
vrany
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
5178d47926ea initial checkin
vrany
parents:
diff changeset
    10
 hereby transferred.
5178d47926ea initial checkin
vrany
parents:
diff changeset
    11
"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    13
21901
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
    14
"{ NameSpace: Smalltalk }"
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
    15
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
    16
Object subclass:#AbstractDesktop
5178d47926ea initial checkin
vrany
parents:
diff changeset
    17
	instanceVariableNames:''
5178d47926ea initial checkin
vrany
parents:
diff changeset
    18
	classVariableNames:'Current'
5178d47926ea initial checkin
vrany
parents:
diff changeset
    19
	poolDictionaries:''
5178d47926ea initial checkin
vrany
parents:
diff changeset
    20
	category:'System-Desktop'
5178d47926ea initial checkin
vrany
parents:
diff changeset
    21
!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    22
5178d47926ea initial checkin
vrany
parents:
diff changeset
    23
!AbstractDesktop class methodsFor:'documentation'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    24
5178d47926ea initial checkin
vrany
parents:
diff changeset
    25
copyright
5178d47926ea initial checkin
vrany
parents:
diff changeset
    26
"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    27
 COPYRIGHT (c) 2006 by eXept Software AG
5178d47926ea initial checkin
vrany
parents:
diff changeset
    28
              All Rights Reserved
5178d47926ea initial checkin
vrany
parents:
diff changeset
    29
5178d47926ea initial checkin
vrany
parents:
diff changeset
    30
 This software is furnished under a license and may be used
5178d47926ea initial checkin
vrany
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
5178d47926ea initial checkin
vrany
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
5178d47926ea initial checkin
vrany
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
5178d47926ea initial checkin
vrany
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
5178d47926ea initial checkin
vrany
parents:
diff changeset
    35
 hereby transferred.
5178d47926ea initial checkin
vrany
parents:
diff changeset
    36
"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    37
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
    38
5178d47926ea initial checkin
vrany
parents:
diff changeset
    39
!AbstractDesktop class methodsFor:'initialization'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    40
5178d47926ea initial checkin
vrany
parents:
diff changeset
    41
initialize
5178d47926ea initial checkin
vrany
parents:
diff changeset
    42
5178d47926ea initial checkin
vrany
parents:
diff changeset
    43
    "
5178d47926ea initial checkin
vrany
parents:
diff changeset
    44
        self initialize. 
5178d47926ea initial checkin
vrany
parents:
diff changeset
    45
        Desktop
5178d47926ea initial checkin
vrany
parents:
diff changeset
    46
    "
5178d47926ea initial checkin
vrany
parents:
diff changeset
    47
5178d47926ea initial checkin
vrany
parents:
diff changeset
    48
    Current := nil.
5178d47926ea initial checkin
vrany
parents:
diff changeset
    49
    Smalltalk at: #Desktop put:self current
5178d47926ea initial checkin
vrany
parents:
diff changeset
    50
5178d47926ea initial checkin
vrany
parents:
diff changeset
    51
    "Created: / 11-08-2009 / 17:09:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    52
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
    53
5178d47926ea initial checkin
vrany
parents:
diff changeset
    54
!AbstractDesktop class methodsFor:'instance creation'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    55
5178d47926ea initial checkin
vrany
parents:
diff changeset
    56
new
5178d47926ea initial checkin
vrany
parents:
diff changeset
    57
    ^ self basicNew initialize.
5178d47926ea initial checkin
vrany
parents:
diff changeset
    58
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
    59
5178d47926ea initial checkin
vrany
parents:
diff changeset
    60
!AbstractDesktop class methodsFor:'accessing'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    61
5178d47926ea initial checkin
vrany
parents:
diff changeset
    62
best
5178d47926ea initial checkin
vrany
parents:
diff changeset
    63
5178d47926ea initial checkin
vrany
parents:
diff changeset
    64
    "
5178d47926ea initial checkin
vrany
parents:
diff changeset
    65
        AbstractDesktop best 
5178d47926ea initial checkin
vrany
parents:
diff changeset
    66
    "
5178d47926ea initial checkin
vrany
parents:
diff changeset
    67
5178d47926ea initial checkin
vrany
parents:
diff changeset
    68
    (self allSubclasses asSortedCollection: [:a :b|a priority > b priority])
5178d47926ea initial checkin
vrany
parents:
diff changeset
    69
        do:[:cls|cls isAvailable ifTrue:[^cls new]].
5178d47926ea initial checkin
vrany
parents:
diff changeset
    70
    ^nil "maybe error?"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    71
5178d47926ea initial checkin
vrany
parents:
diff changeset
    72
    "Created: / 11-08-2009 / 17:09:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    73
    "Modified: / 28-06-2011 / 11:50:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    74
!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    75
5178d47926ea initial checkin
vrany
parents:
diff changeset
    76
current
5178d47926ea initial checkin
vrany
parents:
diff changeset
    77
21901
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
    78
    Current isNil ifTrue: [Current := self best].
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
    79
    ^Current
5178d47926ea initial checkin
vrany
parents:
diff changeset
    80
5178d47926ea initial checkin
vrany
parents:
diff changeset
    81
    "Created: / 11-08-2009 / 17:08:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
21901
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
    82
    "Modified: / 22-06-2017 / 12:57:47 / cg"
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
    83
!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    84
5178d47926ea initial checkin
vrany
parents:
diff changeset
    85
priority
5178d47926ea initial checkin
vrany
parents:
diff changeset
    86
5178d47926ea initial checkin
vrany
parents:
diff changeset
    87
    "The higher numbers a checked first"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    88
5178d47926ea initial checkin
vrany
parents:
diff changeset
    89
    self subclassResponsibility
5178d47926ea initial checkin
vrany
parents:
diff changeset
    90
5178d47926ea initial checkin
vrany
parents:
diff changeset
    91
    "Created: / 11-08-2009 / 16:38:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    92
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
    93
5178d47926ea initial checkin
vrany
parents:
diff changeset
    94
!AbstractDesktop class methodsFor:'testing'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
    95
5178d47926ea initial checkin
vrany
parents:
diff changeset
    96
isAvailable
5178d47926ea initial checkin
vrany
parents:
diff changeset
    97
5178d47926ea initial checkin
vrany
parents:
diff changeset
    98
    "Returns true if this desktop is available on this computer"
5178d47926ea initial checkin
vrany
parents:
diff changeset
    99
5178d47926ea initial checkin
vrany
parents:
diff changeset
   100
    self subclassResponsibility
5178d47926ea initial checkin
vrany
parents:
diff changeset
   101
5178d47926ea initial checkin
vrany
parents:
diff changeset
   102
    "Created: / 11-08-2009 / 16:38:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
   103
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
   104
5178d47926ea initial checkin
vrany
parents:
diff changeset
   105
!AbstractDesktop methodsFor:'operations'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
   106
5178d47926ea initial checkin
vrany
parents:
diff changeset
   107
edit: filenames
5178d47926ea initial checkin
vrany
parents:
diff changeset
   108
5178d47926ea initial checkin
vrany
parents:
diff changeset
   109
    "
5178d47926ea initial checkin
vrany
parents:
diff changeset
   110
        Opens desktop's preferred editor on given filenames.
5178d47926ea initial checkin
vrany
parents:
diff changeset
   111
5178d47926ea initial checkin
vrany
parents:
diff changeset
   112
        filenames - a String or Filename or collection of those.
5178d47926ea initial checkin
vrany
parents:
diff changeset
   113
    "
5178d47926ea initial checkin
vrany
parents:
diff changeset
   114
5178d47926ea initial checkin
vrany
parents:
diff changeset
   115
    | files |
5178d47926ea initial checkin
vrany
parents:
diff changeset
   116
    files := self toArrayOfFilenames: filenames.
5178d47926ea initial checkin
vrany
parents:
diff changeset
   117
5178d47926ea initial checkin
vrany
parents:
diff changeset
   118
    "Created: / 11-08-2009 / 17:31:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
   119
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
   120
5178d47926ea initial checkin
vrany
parents:
diff changeset
   121
!AbstractDesktop methodsFor:'utilities'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
   122
5178d47926ea initial checkin
vrany
parents:
diff changeset
   123
toArrayOfFilenames: filenameOrCollectionOfThose
5178d47926ea initial checkin
vrany
parents:
diff changeset
   124
5178d47926ea initial checkin
vrany
parents:
diff changeset
   125
    ^(filenameOrCollectionOfThose isCollection 
5178d47926ea initial checkin
vrany
parents:
diff changeset
   126
        and:[filenameOrCollectionOfThose isString not])
5178d47926ea initial checkin
vrany
parents:
diff changeset
   127
            ifTrue:[filenameOrCollectionOfThose collect:[:e|e asFilename]]
5178d47926ea initial checkin
vrany
parents:
diff changeset
   128
            ifFalse:[Array with:filenameOrCollectionOfThose asFilename]
5178d47926ea initial checkin
vrany
parents:
diff changeset
   129
5178d47926ea initial checkin
vrany
parents:
diff changeset
   130
    "Created: / 11-08-2009 / 17:28:24 / Jan Vrany <vranyj1@fel.cvut.cz>"
5178d47926ea initial checkin
vrany
parents:
diff changeset
   131
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
   132
5178d47926ea initial checkin
vrany
parents:
diff changeset
   133
!AbstractDesktop class methodsFor:'documentation'!
5178d47926ea initial checkin
vrany
parents:
diff changeset
   134
5178d47926ea initial checkin
vrany
parents:
diff changeset
   135
version_CVS
21901
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
   136
    ^ '$Header$'
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
   137
!
5178d47926ea initial checkin
vrany
parents:
diff changeset
   138
5178d47926ea initial checkin
vrany
parents:
diff changeset
   139
version_SVN
21901
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
   140
    ^ '$ Id: AbstractDesktop.st 10517 2010-04-26 18:26:38Z vranyj1  $'
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
   141
! !
5178d47926ea initial checkin
vrany
parents:
diff changeset
   142
21901
26386984b417 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 13392
diff changeset
   143
13392
5178d47926ea initial checkin
vrany
parents:
diff changeset
   144
AbstractDesktop initialize!