SimpleDialog.st
author Claus Gittinger <cg@exept.de>
Sat, 08 Aug 1998 13:42:06 +0200
changeset 1035 308004d24f3d
parent 978 cd056a68d67a
child 1053 0d77637f9d45
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1996 by eXept Software AG
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
ApplicationModel subclass:#SimpleDialog
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
    15
	instanceVariableNames:'accept cancel close escapeIsCancel postBuildBlock postOpenBlock
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
    16
		preBuildBlock closeAllowedChannel'
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	classVariableNames:''
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	poolDictionaries:''
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	category:'Interface-Framework'
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!SimpleDialog class methodsFor:'documentation'!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
copyright
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
 COPYRIGHT (c) 1996 by eXept Software AG
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
              All Rights Reserved
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 This software is furnished under a license and may be used
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 only in accordance with the terms of that license and with the
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 be provided or otherwise made available to, or used by, any
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 other person.  No title to or ownership of the software is
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 hereby transferred.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    Since many ST-80 classes are subclasses of SompleDialog, this class
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    is provided here to allow easier porting of ST-80 code.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    It does not (currently) provide much functionality and is NOT
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    compatible to the corresponding ST80 class; therefore, manual
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    changes have to be made to get those applications to run under ST/X.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    (but at least, this enables you to fileIn that code and have a superclass
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
     for them)
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    However, as time goes by, ST/X applications may be converted to use the
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    ApplicationModel / SimpleDialog framework as well.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    Notice: this class was implemented using protocol information
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    from alpha testers and PD code - it may not be complete or compatible to
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    the corresponding ST-80 class. If you encounter any incompatibilities,
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    please forward a note to the ST/X team.
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    [author:]
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
        Claus Gittinger
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    [see also:]
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
        StandardSystemView
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
        WindowGroup DeviceWorkstation DialogBox
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
! !
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
906
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    69
!SimpleDialog class methodsFor:'queries'!
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    70
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    71
isVisualStartable
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    72
    "returns whether this application class can be started via #open"
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    73
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    74
    self == SimpleDialog ifTrue:[^false].
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    75
    ^super isVisualStartable
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    76
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    77
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    78
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    79
! !
732822b19bc3 isVisualStartable
tz
parents: 905
diff changeset
    80
976
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    81
!SimpleDialog methodsFor:'Refactoring Browser'!
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    82
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    83
addMultiList: model lines: maxLines validation: valid
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    84
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    85
	| height layout field grid font scrollW max fullMax |
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    86
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    87
	height := builder window displayBox height.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    88
	layout := LayoutFrame new.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    89
	layout leftOffset: 16.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    90
	layout rightFraction: 1 offset: -16.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    91
	layout topOffset: height.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    92
	field := SequenceViewSpec model: model menu: nil layout: layout.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    93
	field multipleSelections: true.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    94
	builder add: field.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    95
	builder wrapper widget controller setDispatcher:
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    96
		(UIDispatcher new doubleClick: [valid value ifTrue: [accept value: true]]).
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    97
	"builder wrapper widget setValidTargetIndex: model selectionIndex."
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    98
	scrollW := builder wrapper decorator scrollerComponent.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
    99
	scrollW preferredBoundsBlock:
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   100
				[:sw | | rect |
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   101
				rect := sw component preferredBounds
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   102
						translatedBy: sw translation.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   103
				rect height: maxLines*sw scrollGrid y.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   104
				rect].
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   105
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   106
	font := builder wrapper widget textStyle defaultFont.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   107
	font := Screen default defaultFontPolicy findFont: font.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   108
	max := model list inject: 0 into: [:i :str | i max: str size].
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   109
		"Instead of exactly measuring every string, we
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   110
		assume that $o will be a fairly representative
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   111
		character.  Actually, $o will probably be wider
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   112
		than the average, but this will usually be OK."
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   113
	max := (font widthOf: $o) * max.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   114
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   115
		"Don't let the dialog get too wide."
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   116
	fullMax := 350.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   117
	max > fullMax
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   118
		ifTrue:
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   119
			[max := fullMax.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   120
			builder wrapper decorator useHorizontalScrollBar.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   121
			builder wrapper widget measureWidth: true].
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   122
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   123
	grid := builder wrapper preferredBounds height.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   124
	layout bottomOffset: height+grid.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   125
	self addGap: grid.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   126
	self minWidth: max + 48.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   127
	^builder wrapper!
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   128
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   129
chooseMultiple: messageString fromList: list values: listValues buttons: buttons values: buttonValues lines: maxLines cancel: cancelBlock 
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   130
	^self
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   131
		chooseMultiple: messageString
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   132
		fromList: list
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   133
		values: listValues
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   134
		buttons: buttons
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   135
		values: buttonValues
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   136
		lines: maxLines
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   137
		cancel: cancelBlock
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   138
		for: nil!
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   139
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   140
chooseMultiple: messageString fromList: list values: listValues buttons: buttons values: buttonValues lines: maxLines cancel: cancelBlock for: aVisualOrNil
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   141
	"Ask the user a question.  Let the user pick from a row of buttons made up
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   142
	to match the labels collection.  Return the response from the corresponding
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   143
	item from the values collection."
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   144
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   145
	"aVisualOrNil, if not nil, may be either a VisualPart or a
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   146
	ScheduledWindow.  It controls the look and feel and color choices
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   147
	used by the dialog, and supplies the dialog's master window, which
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   148
	is used by some window systems to create a visual connection between
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   149
	the dialog and the window that created it."
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   150
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   151
	"SimpleDialog new
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   152
		chooseMultiple: 'Which one do you want?'
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   153
		fromList: #('first' 'second' 'third' 'fourth') values: #(1 2 3 4)
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   154
		buttons: #() values: #()
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   155
		lines: 8
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   156
		cancel: [#noChoice]
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   157
		for: Dialog defaultParentWindow"
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   158
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   159
	| result spec okValue sequence wrappers listW |
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   160
	wrappers := OrderedCollection new.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   161
	result := ValueHolder new.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   162
	sequence := MultiSelectionInList new.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   163
	sequence list: list.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   164
	spec := (self class interfaceSpecFor: #emptySpec).
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   165
	okValue := Object new.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   166
	self initializeBuilderFor: aVisualOrNil.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   167
	builder add: spec window.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   168
	builder add: spec component.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   169
	self initializeWindowFor: aVisualOrNil.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   170
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   171
	self setInitialGap.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   172
	self addMessage: messageString centered: false.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   173
	self addGap: 8.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   174
	listW := self
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   175
			addMultiList: sequence
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   176
			lines: (maxLines min: list size+2)
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   177
			validation: [true].
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   178
	self addGap: 4.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   179
	wrappers add: (self addOK: [sequence selectionIndex ~= 0]).
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   180
	buttons isEmpty
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   181
		ifFalse:
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   182
			[self addGap: 4.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   183
			wrappers add: (self addDivider).
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   184
			self addGap: 4.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   185
			wrappers add:
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   186
					(self addLabels: buttons
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   187
						values: buttonValues
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   188
						default: okValue
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   189
						storeInto: result
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   190
						takeKeyboard: true
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   191
						equalize: true)].
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   192
	self addGap: 6.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   193
	self bottomAlignLowerEdge: listW.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   194
	self bottomAlign: wrappers.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   195
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   196
	self preOpen.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   197
	builder openDialogWithExtent: builder window displayBox extent.
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   198
	^accept value
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   199
		ifTrue: [sequence selectionIndexes collect: [:each | listValues at: each]]
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   200
		ifFalse: [cancel value ifTrue: [cancelBlock value] ifFalse: [result value]]! !
dd0045c9fdd7 must create the builder ... (sigh)
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
   201
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   202
!SimpleDialog methodsFor:'accessing'!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   203
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   204
accept
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   205
    "return the valueholder which gets set by the accept button.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   206
     Also, when this valueHolder gets a true stuffed into it, the
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   207
     dialog is closed."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   208
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   209
    ^ accept
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   210
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   211
    "Modified: / 20.5.1998 / 20:51:05 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   212
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   213
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   214
bindings
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   215
    "return my builders bindings"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   216
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   217
    ^ builder bindings
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   218
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   219
    "Modified: / 20.5.1998 / 20:51:15 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   220
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   221
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   222
cancel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   223
    "return the valueholder which gets set by the cancel button.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   224
     Also, when this valueHolder gets a true stuffed into it, the
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   225
     dialog is closed."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   226
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   227
    ^ cancel
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   228
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   229
    "Modified: / 20.5.1998 / 20:51:02 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   230
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   231
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   232
closeAllowedChannel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   233
    "return the value-provider which controls if close is allowed.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   234
     This is initialized to true."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   235
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   236
    ^ closeAllowedChannel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   237
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   238
    "Created: / 20.5.1998 / 21:52:32 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   239
    "Modified: / 20.5.1998 / 21:53:18 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   240
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   241
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   242
closeAllowedChannel:aValueHolderOrBlock
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   243
    "set a value-provider which controls if close is allowed."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   244
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   245
    ^ closeAllowedChannel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   246
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   247
    "Created: / 20.5.1998 / 21:52:53 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   248
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   249
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   250
closeChannel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   251
    "return the closeChannel; If a true is stuffed into this valueHolder,
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   252
     I will close myself."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   253
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   254
    ^ close
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   255
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   256
    "Modified: / 20.5.1998 / 20:52:29 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   257
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   258
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   259
escapeIsCancel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   260
    "return the escapeIsCancel setting"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   261
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   262
    ^ escapeIsCancel
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   263
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   264
    "Modified: / 20.5.1998 / 20:52:44 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   265
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   266
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   267
escapeIsCancel:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   268
    "set/clear the escapeIsCancel option.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   269
     If on, an ESC-key will be treated like a cancel action."
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   270
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   271
    escapeIsCancel := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   272
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   273
    "Modified: / 20.5.1998 / 20:53:23 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   274
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   275
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   276
postBuildBlock:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   277
    "set postBuildBlock; if non-nil, this is evaluated after the build process"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   278
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   279
    postBuildBlock := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   280
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   281
    "Modified: / 20.5.1998 / 20:54:06 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   282
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   283
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   284
postOpenBlock:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   285
    "set the postBuildBlock; if non-nil, this is evaluated after the view is opened"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   286
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   287
    postOpenBlock := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   288
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   289
    "Modified: / 20.5.1998 / 20:54:23 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   290
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   291
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   292
preBuildBlock:something
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   293
    "set the preBuildBlock; if non-nil, this is evaluated before the view is constructed"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   294
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   295
    preBuildBlock := something.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   296
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   297
    "Modified: / 20.5.1998 / 20:54:41 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   298
!
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   299
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   300
source:anApplication
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   301
    "define the application which provides resources, aspects etc."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   302
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   303
    builder source:anApplication
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   304
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   305
    "Modified: / 20.5.1998 / 20:55:07 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   306
! !
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   307
481
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   308
!SimpleDialog methodsFor:'accessing - window'!
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   309
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   310
minWidth:nPixels
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   311
    |w box |
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   312
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   313
    w := builder window width.
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   314
    builder window width:(w max:nPixels).
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   315
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   316
"/    box := builder window displayBox.
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   317
"/    box width: (box width max: nPixels).
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   318
"/    builder window displayBox: box
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   319
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   320
    "Modified: 3.3.1997 / 21:56:27 / cg"
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   321
! !
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   322
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   323
!SimpleDialog methodsFor:'events'!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   324
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   325
closeAccept
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   326
    "accept was pressed. close the dialog"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   327
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   328
    self requestForWindowClose ifTrue:[
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   329
        self closeWindow
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   330
    ]
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   331
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   332
    "Modified: 17.6.1997 / 14:10:23 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   333
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   334
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   335
closeCancel
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   336
    "cancel was pressed. close the dialog"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   337
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   338
    self requestForWindowClose ifTrue:[
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   339
        self closeWindow
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   340
    ]
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   341
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   342
    "Modified: 17.6.1997 / 14:10:29 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   343
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   344
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   345
closeWindow
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   346
    "close the dialog"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   347
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   348
    self closeChannel value:true.
903
b9e0882bd2f4 checkin from browser
tz
parents: 902
diff changeset
   349
    "/ must destroy - otherwise there is no #release to
b9e0882bd2f4 checkin from browser
tz
parents: 902
diff changeset
   350
    "/ the  controllers (onChangeSend-dependency problem)
902
4851101e5b8c checkin from browser
tz
parents: 766
diff changeset
   351
    builder window destroy. "/ hide
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   352
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   353
    "Modified: 17.6.1997 / 14:10:38 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   354
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   355
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   356
requestForWindowClose
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   357
    "the dialog is about to be closed - this method is ivoked and may
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   358
     return false to suppress the close.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   359
     Here the value of closeAllowedChannel is returned, which is
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   360
     set to true initially.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   361
     You may redefined this in a special dialog, and/or provide a boolden
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   362
     valueHolder or a boolean block via the #closeAllowedChannel: method."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   363
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   364
    ^ closeAllowedChannel value
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   365
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   366
    "Modified: / 20.5.1998 / 21:52:25 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   367
! !
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   368
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   369
!SimpleDialog methodsFor:'forced actions'!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   370
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   371
doAccept
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   372
    "force accept"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   373
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   374
    accept value:true
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   375
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   376
    "Created: / 18.10.1997 / 05:18:09 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   377
    "Modified: / 20.5.1998 / 21:53:35 / cg"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   378
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   379
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   380
doCancel
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   381
    "force cancel"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   382
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   383
    cancel value:true
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   384
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   385
    "Created: / 18.10.1997 / 05:18:22 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   386
    "Modified: / 20.5.1998 / 21:53:40 / cg"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   387
! !
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   388
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   389
!SimpleDialog methodsFor:'initialization'!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   390
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   391
initialize
935
ccb6caad1da0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   392
    accept := (ValueHolder with:false).
ccb6caad1da0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   393
    close := (ValueHolder with:false).
ccb6caad1da0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 932
diff changeset
   394
    cancel := (ValueHolder with:false).
978
cd056a68d67a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   395
    self createBuilder.
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   396
    builder aspectAt:#accept put:accept.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   397
    builder aspectAt:#close put:close.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   398
    builder aspectAt:#cancel put:cancel.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   399
    escapeIsCancel := true.
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   400
    closeAllowedChannel := true
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   401
978
cd056a68d67a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   402
    "Modified: / 19.6.1998 / 03:35:48 / cg"
476
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   403
!
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   404
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   405
initializeBuilderFor:aView 
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   406
    aView notNil ifTrue:[
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   407
        builder window:aView.
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   408
    ]
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   409
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   410
    "Created: 3.3.1997 / 16:23:04 / cg"
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   411
!
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   412
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   413
initializeWindowFor:aView
679
0f94c493751c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 605
diff changeset
   414
    |v|
476
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   415
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   416
    (v := aView) isNil ifTrue:[
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   417
        v := ModalBox new.
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   418
    ].
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   419
481
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   420
    builder setupWindowFor:v.
476
628766c580c3 added dummy #initializeBuilderFor: and #initializeWindowFor:
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   421
481
02d1db5d428a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 476
diff changeset
   422
    "Modified: 3.3.1997 / 20:39:46 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   423
! !
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   424
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   425
!SimpleDialog methodsFor:'interface opening'!
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   426
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   427
allButOpenFrom:aSpec
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   428
    "create my views but do not open the main window"
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   429
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   430
    super allButOpenFrom:aSpec.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   431
    self preOpen
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   432
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   433
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   434
openFor:anApplication interface:aSelector
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   435
    "open the dialog for some appModel from a given spec;
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   436
     Return true if accepted, false if canceled"
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   437
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   438
    ^ self openFor:anApplication interface:aSelector withBindings:nil
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   439
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   440
    "Modified: 28.2.1997 / 16:22:08 / cg"
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   441
!
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   442
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   443
openFor:anApplication interface:aSelector withBindings:bindings
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   444
    "open the dialog for some appModel from a given specSymbol;
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   445
     the application must provide an interfaceSpec for that symbol.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   446
     The bindings argument may provide overwriting bindings for the
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   447
     dialog.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   448
     Return true if accepted, false if canceled"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   449
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   450
    ^ self
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   451
        openFor:anApplication 
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   452
        interfaceSpec:(anApplication class interfaceSpecFor:aSelector)
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   453
        withBindings:bindings
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   454
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   455
    "Modified: 18.10.1997 / 04:43:13 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   456
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   457
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   458
openFor:anApplication interfaceSpec:aSpec withBindings:bindings
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   459
    "open the dialog for some appModel from a given spec;
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   460
     the bindings argument may provide overwriting bindings for the
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   461
     dialog.
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   462
     Return true if accepted, false if canceled"
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   463
464
25e6380399c6 allow additional bindings to be passed with #openDialogInterface
Claus Gittinger <cg@exept.de>
parents: 462
diff changeset
   464
    builder addBindings:bindings.
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   465
    self source:anApplication.
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   466
    ^ self openFrom:aSpec
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   467
465
5df2fbe7275a comments
Claus Gittinger <cg@exept.de>
parents: 464
diff changeset
   468
    "Modified: 28.2.1997 / 16:22:00 / cg"
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   469
    "Created: 18.10.1997 / 04:41:29 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   470
!
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   471
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   472
openFor:anApplication spec:aSpec withBindings:bindings
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   473
    "open the dialog for some appModel from a given spec.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   474
     The bindings argument may provide overwriting bindings for the
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   475
     dialog.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   476
     Return true if accepted, false if canceled"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   477
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   478
    ^ self
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   479
        openFor:anApplication 
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   480
        interfaceSpec:aSpec
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   481
        withBindings:bindings
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   482
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   483
    "Modified: / 18.10.1997 / 04:43:13 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   484
    "Created: / 20.5.1998 / 20:28:29 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   485
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   486
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   487
openFrom:anInterfaceSpec
466
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   488
    "open the dialog from a given spec;
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   489
     return true if accepted, false if canceled"
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   490
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   491
    self allButOpenFrom:anInterfaceSpec.
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   492
    self openDialog.
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   493
    ^ accept value
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   494
466
784ed480f4eb comments
Claus Gittinger <cg@exept.de>
parents: 465
diff changeset
   495
    "Modified: 28.2.1997 / 16:40:36 / cg"
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   496
!
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   497
713
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   498
postBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   499
    "this is sent after the dialogs widgets have been created
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   500
     (but before the dialog is opened).
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   501
     If a postBuildBlock was set, evaluate it here."
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   502
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   503
    postBuildBlock notNil ifTrue:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   504
        postBuildBlock numArgs == 0 ifTrue:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   505
            postBuildBlock value
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   506
        ] ifFalse:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   507
            postBuildBlock value:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   508
        ]
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   509
    ].
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   510
    super postBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   511
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   512
    "Created: 18.10.1997 / 05:17:12 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   513
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   514
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   515
postOpenWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   516
    "this is sent after the dialogs main window is opened.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   517
     If a postOpenBlock was set, evaluate it here."
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   518
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   519
    postOpenBlock notNil ifTrue:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   520
        postOpenBlock numArgs == 0 ifTrue:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   521
            postOpenBlock value
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   522
        ] ifFalse:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   523
            postOpenBlock value:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   524
        ]
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   525
    ].
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   526
    super postOpenWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   527
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   528
    "Created: 18.10.1997 / 05:15:48 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   529
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   530
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   531
preBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   532
    "this is sent before the dialogs widgets are created.
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   533
     If a preBuildBlock was set, evaluate it here."
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   534
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   535
    preBuildBlock notNil ifTrue:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   536
        preBuildBlock numArgs == 0 ifTrue:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   537
            preBuildBlock value
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   538
        ] ifFalse:[
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   539
            preBuildBlock value:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   540
        ]
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   541
    ].
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   542
    super preBuildWith:aBuilder
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   543
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   544
    "Created: 18.10.1997 / 15:02:27 / cg"
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   545
!
548898fdd1dc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 679
diff changeset
   546
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   547
preOpen
605
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   548
    "arrange for #closeAccept & #closeCancel to be invoked when
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   549
     either accept or close is triggered
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   550
     (usually the models of corresponding buttons)"
9e9445252e25 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 485
diff changeset
   551
431
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   552
    accept onChangeSend:#closeAccept to:self.
99a2737206a6 checkin from browser
ca
parents: 429
diff changeset
   553
    cancel onChangeSend:#closeCancel to:self.
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   554
    close  onChangeSend:#closeWindow to:self.
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   555
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   556
    "Modified: / 20.5.1998 / 20:49:26 / cg"
429
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   557
! !
3311c88f2a0e dialog opening stuff
ca
parents: 366
diff changeset
   558
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
!SimpleDialog methodsFor:'queries'!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
defaultWindowType
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
    "SimpleDialogs come up modal, by default"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
    ^ #dialog
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
    "Modified: 14.2.1997 / 22:17:20 / cg"
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
! !
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
766
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   569
!SimpleDialog methodsFor:'startup'!
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   570
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   571
openInterface:aSymbol
766
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   572
    "open a standard interface.
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   573
     Redefned to return the accept value instead of the builder."
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   574
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   575
    super openInterfaceModal:aSymbol.
766
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   576
    ^ accept value.
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   577
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   578
    "Created: / 23.1.1998 / 18:19:57 / cg"
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   579
    "Modified: / 20.5.1998 / 20:21:28 / cg"
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   580
!
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   581
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   582
openSpec:aWindowSpec
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   583
    "open a window spec.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   584
     Redefned to open modal and to return the accept value instead 
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   585
     of the builder."
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   586
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   587
    super openSpecModal:aWindowSpec.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   588
    ^ accept value.
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   589
905
f2a0bb5b147c default for SimpleDialogs is to open modal
Claus Gittinger <cg@exept.de>
parents: 903
diff changeset
   590
    "Modified: / 22.4.1998 / 11:59:05 / cg"
932
f7b0ce4cc1d1 allow opening an interface by spec.
Claus Gittinger <cg@exept.de>
parents: 906
diff changeset
   591
    "Created: / 20.5.1998 / 20:21:17 / cg"
766
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   592
! !
67d7a6bc6780 simpledialog open - returns the accept-value
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
   593
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   594
!SimpleDialog class methodsFor:'documentation'!
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   595
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   596
version
978
cd056a68d67a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 976
diff changeset
   597
    ^ '$Header: /cvs/stx/stx/libview2/SimpleDialog.st,v 1.22 1998-06-19 01:36:40 cg Exp $'
366
bde54cb70d97 intitial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
! !