StataScriptEditorMain.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 17 Mar 2015 04:34:49 +0000
changeset 1 7bfafe79fa34
parent 0 da028ec9cc07
permissions -rw-r--r--
Minor UI fixes * Fixed About box * Added "Documentation" and "Report Problem" menu entries * Better file open handling * Nicer window labeling
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:statascripteditor' }"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
StandaloneStartup subclass:#StataScriptEditorMain
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'Stata Script Editor'
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!StataScriptEditorMain class methodsFor:'constants & defaults'!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
applicationRegistryPath
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    "the key under which this application stores its process ID in the registry
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
     as a collection of path-components.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
     i.e. if #('foo' 'bar' 'baz') is returned here, the current applications ID will be stored
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
     in HKEY_CURRENT_USER\Software\foo\bar\baz\CurrentID.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
     (would also be used as a relative path for a temporary lock file under unix).
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
     Used to detect if another instance of this application is already running."
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    ^ #('stx' 'StataScriptEditor')
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
applicationUUID
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
    "answer an application-specific unique uuid.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
     This is used as the name of some exclusive OS-resource, which is used to find out,
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
     if another instance of this application is already running.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
     Under win32, a mutex is used; under unix, an exclusive file in the tempDir could be used.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
     If redefined, please return a real UUID (i.e. UUID fromString:'.....') and not a string or 
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
     similar possibly conflicting identifier.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
     You can paste a fresh worldwide unique id via the editor's more-misc-paste UUID menuFunction."
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    ^ UUID fromString:'9cae6e80-ad00-11e4-9cc7-606720e43e2c' 
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
! !
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!StataScriptEditorMain class methodsFor:'defaults'!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
allowDebugOption
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "enable/disable the --debug startup option.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
     Can be redefined in subclasses to enable it"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    ^ true
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    "Created: / 12-03-2015 / 02:28:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
suppressRCFileReading
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    "enable/disable the rc-file reading (and also the --rcFileName option).
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
     If suppressed, there is no chance to interfere with the startup.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     Can be redefined in subclasses to disable it"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    ^ true
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "Created: / 12-03-2015 / 02:28:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
! !
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
!StataScriptEditorMain class methodsFor:'startup'!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
main:argv
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    "main entry; argv is the array of command arguments (as array of words from space-separated command line).
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
     Parse arguments, and proceed to the real work function"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    "/ do not exit here; caller will go into event loop when returning
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    Smalltalk openDisplay.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    StataScriptEditor open
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    "Modified: / 12-03-2015 / 03:16:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
realMain:args
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    "opens the application"
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    StataScriptEditor open
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
usage
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    Stderr nextPutLine:'usage: ',self applicationName,' [options...]'.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    Stderr nextPutLine:'  -h .................. output this message'.
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    Smalltalk isStandAloneApp ifTrue:[ Smalltalk exit:1 ].
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
! !
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
!StataScriptEditorMain class methodsFor:'documentation'!
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
version_HG
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    ^ '$Changeset: <not expanded> $'
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
! !
da028ec9cc07 Initial commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92