ProgressIndicator.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:25:39 +0100
branchjv
changeset 6261 9b7eb7159d29
parent 5425 2dd9705bb79e
child 5726 8d3693fffc3e
permissions -rw-r--r--
Fix loong standing bug with some menus not being translated / resolved This has happened with browser "View" menu when sometimes it had the slice resolved and sometimes not. It turned out that it was because the code disabled resources (and therefore slices) resolution when processing shortcuts, so the menu was created and cached unresolved. This fixes the issue. eXept apparently run into the same problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
claus
parents: 50
diff changeset
     1
"
claus
parents: 50
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
claus
parents: 50
diff changeset
     3
	      All Rights Reserved
claus
parents: 50
diff changeset
     4
claus
parents: 50
diff changeset
     5
 This software is furnished under a license and may be used
claus
parents: 50
diff changeset
     6
 only in accordance with the terms of that license and with the
claus
parents: 50
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
claus
parents: 50
diff changeset
     8
 be provided or otherwise made available to, or used by, any
claus
parents: 50
diff changeset
     9
 other person.  No title to or ownership of the software is
claus
parents: 50
diff changeset
    10
 hereby transferred.
claus
parents: 50
diff changeset
    11
"
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
    12
"{ Package: 'stx:libwidg2' }"
1789
99a33f0b2164 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1740
diff changeset
    13
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
    14
"{ NameSpace: Smalltalk }"
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
    15
50
claus
parents:
diff changeset
    16
View subclass:#ProgressIndicator
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
    17
	instanceVariableNames:'percentage showPercentage fgColor bgColor connectedTop
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    18
		connectedLabel collector finishAction closeTopWhenDone showBusy
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    19
		busyPosition busyDelta busyIndicationProcess'
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    20
	classVariableNames:''
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    21
	poolDictionaries:''
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    22
	category:'Views-Misc'
50
claus
parents:
diff changeset
    23
!
claus
parents:
diff changeset
    24
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
    25
!ProgressIndicator class methodsFor:'documentation'!
50
claus
parents:
diff changeset
    26
62
claus
parents: 50
diff changeset
    27
copyright
claus
parents: 50
diff changeset
    28
"
claus
parents: 50
diff changeset
    29
 COPYRIGHT (c) 1995 by Claus Gittinger
claus
parents: 50
diff changeset
    30
	      All Rights Reserved
claus
parents: 50
diff changeset
    31
claus
parents: 50
diff changeset
    32
 This software is furnished under a license and may be used
claus
parents: 50
diff changeset
    33
 only in accordance with the terms of that license and with the
claus
parents: 50
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
claus
parents: 50
diff changeset
    35
 be provided or otherwise made available to, or used by, any
claus
parents: 50
diff changeset
    36
 other person.  No title to or ownership of the software is
claus
parents: 50
diff changeset
    37
 hereby transferred.
claus
parents: 50
diff changeset
    38
"
claus
parents: 50
diff changeset
    39
!
claus
parents: 50
diff changeset
    40
50
claus
parents:
diff changeset
    41
documentation
claus
parents:
diff changeset
    42
"
claus
parents:
diff changeset
    43
    a view showing a rectangle filled according the percentage value.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    44
    Can be used as a progress indicator a la MSwindows;
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    45
    it can also be configured as a non-percentage busy indication
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    46
    via the showBusyIndication flag (a la netscape).
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    47
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
    48
    Can be used as a widget within an application, or
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
    49
    via the convenient #inBox: instance creation messages,
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
    50
    which shows a progressDisplay in a modalBox, while some
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
    51
    action is performed.
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
    52
    See examples.
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    53
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    54
    [author:]
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
    55
	Claus Gittinger
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    56
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    57
    [see also:]
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
    58
	ActionWaitBox AnimatedLabel
50
claus
parents:
diff changeset
    59
"
claus
parents:
diff changeset
    60
!
claus
parents:
diff changeset
    61
claus
parents:
diff changeset
    62
examples
claus
parents:
diff changeset
    63
"
62
claus
parents: 50
diff changeset
    64
    basic (internal) interface
claus
parents: 50
diff changeset
    65
    (if progress indicator is to be used in a complex box ...):
50
claus
parents:
diff changeset
    66
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    67
    Before you get frustrated - see the convenient-interface examples
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    68
    at the end ;-)
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
    69
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    70
                                                                        [exBegin]
50
claus
parents:
diff changeset
    71
      |top p h|
claus
parents:
diff changeset
    72
62
claus
parents: 50
diff changeset
    73
      top := ModalBox new.
50
claus
parents:
diff changeset
    74
      top extent:300@100.
claus
parents:
diff changeset
    75
      top label:'Progress'.
claus
parents:
diff changeset
    76
      p := ProgressIndicator in:top.
claus
parents:
diff changeset
    77
      p origin:(0.0@0.5) corner:(1.0@0.5).
claus
parents:
diff changeset
    78
      p level:-1.
62
claus
parents: 50
diff changeset
    79
      h := p preferredExtent y.
50
claus
parents:
diff changeset
    80
      p topInset:(h // 2) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    81
        bottomInset:(h // 2) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    82
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    83
        rightInset:5.
50
claus
parents:
diff changeset
    84
claus
parents:
diff changeset
    85
      [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    86
          1 to:100 do:[:val |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    87
              (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    88
              p percentage:val 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    89
          ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    90
          top hide.
62
claus
parents: 50
diff changeset
    91
      ] fork.
claus
parents: 50
diff changeset
    92
      top open.
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    93
                                                                        [exEnd]
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    94
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    95
    as a busy indicator
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
    96
                                                                        [exBegin]
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    97
      |top p h|
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    98
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
    99
      top := ModalBox new.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   100
      top extent:300@100.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   101
      top label:'Busy'.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   102
      p := ProgressIndicator in:top.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   103
      p origin:(0.0@0.5) corner:(1.0@0.5).
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   104
      p level:-1.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   105
      h := p preferredExtent y.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   106
      p topInset:(h // 2) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   107
        bottomInset:(h // 2) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   108
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   109
        rightInset:5.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   110
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   111
      p showBusyIndication:true.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   112
      [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   113
          'do something here ....'.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   114
          (Delay forSeconds:5) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   115
          top hide.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   116
      ] fork.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   117
      top open.
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   118
                                                                        [exEnd]
50
claus
parents:
diff changeset
   119
claus
parents:
diff changeset
   120
    changing colors, turning percentage display off:
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   121
                                                                        [exBegin]
50
claus
parents:
diff changeset
   122
      |top p h|
claus
parents:
diff changeset
   123
claus
parents:
diff changeset
   124
      top := StandardSystemView new.
claus
parents:
diff changeset
   125
      top extent:300@100.
claus
parents:
diff changeset
   126
      top label:'Progress'.
claus
parents:
diff changeset
   127
      p := ProgressIndicator in:top.
claus
parents:
diff changeset
   128
      p origin:(0.0@0.5) corner:(1.0@0.5).
claus
parents:
diff changeset
   129
      p level:-1.
claus
parents:
diff changeset
   130
      p showPercentage:false.
claus
parents:
diff changeset
   131
      p foregroundColor:(Color red).
claus
parents:
diff changeset
   132
      h := 10.
claus
parents:
diff changeset
   133
      p topInset:(h // 2) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   134
        bottomInset:(h // 2) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   135
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   136
        rightInset:5.
50
claus
parents:
diff changeset
   137
      top open.
claus
parents:
diff changeset
   138
      [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   139
          1 to:100 do:[:val |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   140
              (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   141
              p percentage:val 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   142
          ]
50
claus
parents:
diff changeset
   143
      ] fork
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   144
                                                                        [exEnd]
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   145
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   146
    as a busy indicator and percentage display (as in netscape)
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   147
                                                                        [exBegin]
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   148
      |top p h|
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   149
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   150
      top := ModalBox new.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   151
      top extent:300@60.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   152
      top label:'Busy'.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   153
      p := ProgressIndicator in:top.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   154
      p origin:(0.0@0.5) corner:(1.0@0.5).
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   155
      p level:-1.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   156
      p showPercentage:false.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   157
      p backgroundColor:(Color cyan).
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   158
      h := p preferredExtent y.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   159
      p topInset:(h // 3) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   160
        bottomInset:(h // 3) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   161
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   162
        rightInset:5.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   163
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   164
      p showBusyIndication:true.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   165
      [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   166
          top label:'Busy'.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   167
          1 to:100 do:[:i |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   168
            (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   169
          ].
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   170
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   171
          top label:'Percentage'.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   172
          p showBusyIndication:false.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   173
          1 to:100 do:[:i |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   174
            (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   175
            p percentage:i. 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   176
          ].
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   177
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   178
          top hide.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   179
      ] fork.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   180
      top open.
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   181
                                                                        [exEnd]
50
claus
parents:
diff changeset
   182
claus
parents:
diff changeset
   183
    with border (2D look):
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   184
                                                                        [exBegin]
50
claus
parents:
diff changeset
   185
      |top p h|
claus
parents:
diff changeset
   186
claus
parents:
diff changeset
   187
      top := StandardSystemView new.
claus
parents:
diff changeset
   188
      top extent:300@100.
claus
parents:
diff changeset
   189
      top label:'Progress'.
claus
parents:
diff changeset
   190
      p := ProgressIndicator in:top.
claus
parents:
diff changeset
   191
      p origin:(0.0@0.5) corner:(1.0@0.5).
claus
parents:
diff changeset
   192
      p borderWidth:1.
62
claus
parents: 50
diff changeset
   193
      h := p preferredExtent y.
50
claus
parents:
diff changeset
   194
      p topInset:(h // 2) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   195
        bottomInset:(h // 2) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   196
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   197
        rightInset:5.
50
claus
parents:
diff changeset
   198
      top open.
claus
parents:
diff changeset
   199
      [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   200
          1 to:100 do:[:val |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   201
              (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   202
              p percentage:val 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   203
          ]
50
claus
parents:
diff changeset
   204
      ] fork
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   205
                                                                        [exEnd]
50
claus
parents:
diff changeset
   206
claus
parents:
diff changeset
   207
claus
parents:
diff changeset
   208
    getting progress from a model:
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   209
                                                                        [exBegin]
50
claus
parents:
diff changeset
   210
      |model top p h|
claus
parents:
diff changeset
   211
claus
parents:
diff changeset
   212
      model := 0 asValue.
claus
parents:
diff changeset
   213
claus
parents:
diff changeset
   214
      top := StandardSystemView new.
claus
parents:
diff changeset
   215
      top extent:300@100.
claus
parents:
diff changeset
   216
      top label:'Progress'.
claus
parents:
diff changeset
   217
      p := ProgressIndicator in:top.
claus
parents:
diff changeset
   218
      p model:model.
claus
parents:
diff changeset
   219
      p origin:(0.0@0.5) corner:(1.0@0.5).
claus
parents:
diff changeset
   220
      p level:-1.
62
claus
parents: 50
diff changeset
   221
      h := p preferredExtent y.
50
claus
parents:
diff changeset
   222
      p topInset:(h // 2) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   223
        bottomInset:(h // 2) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   224
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   225
        rightInset:5.
50
claus
parents:
diff changeset
   226
      top open.
claus
parents:
diff changeset
   227
claus
parents:
diff changeset
   228
      [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   229
          1 to:100 do:[:val |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   230
              (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   231
              model value:val 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   232
          ]
50
claus
parents:
diff changeset
   233
      ] fork
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   234
                                                                        [exEnd]
50
claus
parents:
diff changeset
   235
62
claus
parents: 50
diff changeset
   236
50
claus
parents:
diff changeset
   237
    concrete example:
claus
parents:
diff changeset
   238
      search all files in the source directory for a string
claus
parents:
diff changeset
   239
      using grep. Show progress while doing so.
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   240
                                                                        [exBegin]
50
claus
parents:
diff changeset
   241
      |top p h names done|
claus
parents:
diff changeset
   242
claus
parents:
diff changeset
   243
      top := StandardSystemView new.
claus
parents:
diff changeset
   244
      top extent:300@100.
claus
parents:
diff changeset
   245
      top label:'Searching ...'.
claus
parents:
diff changeset
   246
      p := ProgressIndicator in:top.
claus
parents:
diff changeset
   247
      p origin:(0.0@0.5) corner:(1.0@0.5).
claus
parents:
diff changeset
   248
      p level:-1.
62
claus
parents: 50
diff changeset
   249
      h := p preferredExtent y.
50
claus
parents:
diff changeset
   250
      p topInset:(h // 2) negated; 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   251
        bottomInset:(h // 2) negated;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   252
        leftInset:5;
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   253
        rightInset:5.
50
claus
parents:
diff changeset
   254
      top openWithPriority:(Processor activePriority + 1).
claus
parents:
diff changeset
   255
claus
parents:
diff changeset
   256
      names := 'source' asFilename directoryContents.
claus
parents:
diff changeset
   257
      done := 0.
claus
parents:
diff changeset
   258
      names do:[:aName |
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   259
        |fn stream line|
50
claus
parents:
diff changeset
   260
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   261
        p percentage:(done / names size * 100).
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   262
        fn := ('source/' , aName) asFilename.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   263
        fn isDirectory ifFalse:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   264
            stream := fn readStream.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   265
            [stream atEnd] whileFalse:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   266
                line := stream nextLine.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   267
                (line findString:'subclass:') ~~ 0 ifTrue:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   268
                    Transcript showCR:line
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   269
                ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   270
            ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   271
            stream close.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   272
        ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   273
        done := done + 1
50
claus
parents:
diff changeset
   274
      ].
claus
parents:
diff changeset
   275
claus
parents:
diff changeset
   276
      top destroy
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   277
                                                                        [exEnd]
62
claus
parents: 50
diff changeset
   278
claus
parents: 50
diff changeset
   279
claus
parents: 50
diff changeset
   280
   using the convenient inBox-interface
claus
parents: 50
diff changeset
   281
claus
parents: 50
diff changeset
   282
   (this creates a box and an activity label and evaluates a block
claus
parents: 50
diff changeset
   283
    to indicate ...)
claus
parents: 50
diff changeset
   284
claus
parents: 50
diff changeset
   285
    basic interface demonstration:
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   286
                                                                        [exBegin]
62
claus
parents: 50
diff changeset
   287
      |p|
claus
parents: 50
diff changeset
   288
claus
parents: 50
diff changeset
   289
      p := ProgressIndicator 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   290
                inBoxWithLabel:'doing something  ...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   291
                abortable:true.
62
claus
parents: 50
diff changeset
   292
      p showProgressOf:
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   293
            [:progressValue :currentAction |
62
claus
parents: 50
diff changeset
   294
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   295
              1 to:100 do:[:val |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   296
                  (Delay forSeconds:0.05) wait.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   297
                  val == 25 ifTrue:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   298
                      currentAction value:'still going ...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   299
                  ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   300
                  val == 50 ifTrue:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   301
                      currentAction value:'halfway through ...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   302
                  ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   303
                  val == 75 ifTrue:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   304
                      currentAction value:'almost finished ...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   305
                  ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   306
                  progressValue value:val 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   307
              ]
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   308
            ]
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   309
                                                                        [exEnd]
62
claus
parents: 50
diff changeset
   310
claus
parents: 50
diff changeset
   311
claus
parents: 50
diff changeset
   312
    above search example using this convenient interface:
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   313
                                                                        [exBegin]
62
claus
parents: 50
diff changeset
   314
      |p|
claus
parents: 50
diff changeset
   315
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   316
      p := ProgressIndicator 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   317
                inBoxWithLabel:'searching files ...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   318
                abortable:false.
62
claus
parents: 50
diff changeset
   319
      p showProgressOf:
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   320
            [:progressValue :currentAction |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   321
                |names nDone|
62
claus
parents: 50
diff changeset
   322
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   323
                names := 'source' asFilename directoryContents.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   324
                nDone := 0.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   325
                names do:[:aName |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   326
                  |fn stream line|
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   327
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   328
                  progressValue value:(nDone / names size * 100).
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   329
                  currentAction value:'searching ' , 'source/' , aName , ' ...'.
62
claus
parents: 50
diff changeset
   330
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   331
                  fn := ('source/' , aName) asFilename.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   332
                  fn isDirectory ifFalse:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   333
                      stream := fn readStream.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   334
                      [stream atEnd] whileFalse:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   335
                          line := stream nextLine.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   336
                          (line findString:'subclass:') ~~ 0 ifTrue:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   337
                              Transcript showCR:line
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   338
                          ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   339
                      ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   340
                      stream close.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   341
                  ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   342
                  nDone := nDone + 1
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   343
                ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   344
            ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   345
                                                                        [exEnd]
62
claus
parents: 50
diff changeset
   346
claus
parents: 50
diff changeset
   347
claus
parents: 50
diff changeset
   348
    a nice example: copying files a la windows ...
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   349
    the following copies all files to /dev/null.
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   350
                                                                        [exBegin]
62
claus
parents: 50
diff changeset
   351
      |p|
claus
parents: 50
diff changeset
   352
claus
parents: 50
diff changeset
   353
      (ProgressIndicator 
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   354
                inBoxWithLabel:'copy files to /dev/null ...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   355
                abortable:true)
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   356
         showProgressOf:
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   357
            [:progressValue :currentAction |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   358
                |files nFiles nDone|
62
claus
parents: 50
diff changeset
   359
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   360
                files := '.' asFilename directoryContents.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   361
                nFiles := files size.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   362
                nDone := 0.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   363
                files do:[:aFileName |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   364
                    |percent|
50
claus
parents:
diff changeset
   365
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   366
                    nDone := nDone + 1.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   367
                    percent := nDone / nFiles * 100.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   368
                    progressValue value:percent. 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   369
                    aFileName asFilename isDirectory ifTrue:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   370
                        Transcript showCR:('skipping ' , aFileName , ' ...'). 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   371
                        currentAction value:('skipping ' , aFileName , ' ...'). 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   372
                    ] ifFalse:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   373
                        Transcript showCR:('copying ' , aFileName , ' ...').
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   374
                        currentAction value:('copying ' , aFileName , ' ...').
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   375
                        Object errorSignal handle:[:ex |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   376
                            self warn:'an error occurred while copying ' , aFileName.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   377
                            ex return
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   378
                        ] do:[
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   379
                            aFileName asFilename copyTo:'/dev/null'.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   380
                        ]
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   381
                    ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   382
                ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   383
            ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   384
                                                                        [exEnd]
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   385
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   386
                                                                        [exBegin]
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   387
        ProgressIndicator 
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   388
            displayBusyIndicator:'Test...'
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   389
            at:(Screen default center)
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   390
            during:[:p |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   391
                p labelWidget label:'bla...'.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   392
                Delay waitForSeconds:0.5.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   393
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   394
                1 to:3 do:[:idx |
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   395
                    Delay waitForSeconds:0.5.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   396
                    p labelWidget label:('bla %1...' bindWith:idx).
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   397
                ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   398
                Delay waitForSeconds:0.5.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   399
                p labelWidget label:'blabla...'.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   400
                Delay waitForSeconds:0.5.
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   401
            ].
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   402
                                                                        [exEnd]
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   403
"
50
claus
parents:
diff changeset
   404
! !
claus
parents:
diff changeset
   405
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   406
!ProgressIndicator class methodsFor:'instance creation'!
62
claus
parents: 50
diff changeset
   407
claus
parents: 50
diff changeset
   408
inBox
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
   409
    "create a topView containing an instance of myself,
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
   410
     for later use with #showProgressOf:"
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
   411
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
   412
    ^ self inBoxWithLabel:'executing ...' abortable:false
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
   413
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
   414
    "Modified: 22.10.1997 / 21:08:37 / cg"
62
claus
parents: 50
diff changeset
   415
!
claus
parents: 50
diff changeset
   416
claus
parents: 50
diff changeset
   417
inBoxWithLabel:aLabel
claus
parents: 50
diff changeset
   418
    "create a topView containing an instance of myself,
claus
parents: 50
diff changeset
   419
     for later use with #showProgressOf:"
claus
parents: 50
diff changeset
   420
claus
parents: 50
diff changeset
   421
    ^ self inBoxWithLabel:aLabel abortable:false 
claus
parents: 50
diff changeset
   422
!
claus
parents: 50
diff changeset
   423
claus
parents: 50
diff changeset
   424
inBoxWithLabel:aLabel abortable:abortable
claus
parents: 50
diff changeset
   425
    "create a topView containing an instance of myself,
claus
parents: 50
diff changeset
   426
     for later use with #showProgressOf:"
claus
parents: 50
diff changeset
   427
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   428
    ^ self
634
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   429
	inBoxWithLabel:aLabel   
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   430
	text:''
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   431
	abortable:abortable
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   432
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   433
    "Modified: 17.7.1996 / 15:14:58 / cg"
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   434
!
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   435
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   436
inBoxWithLabel:aLabel icon:anIcon text:text abortable:abortable view:additionalView closeWhenDone:closeWhenDoneBoolean
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   437
    "create a topView containing an instance of myself,
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   438
     return the new instance, for later use with #showProgressOf:"
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   439
2436
6c0df331b7b1 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 2435
diff changeset
   440
    |top p l y y2|
62
claus
parents: 50
diff changeset
   441
claus
parents: 50
diff changeset
   442
    top := Dialog new.
claus
parents: 50
diff changeset
   443
    top label:aLabel.
claus
parents: 50
diff changeset
   444
    top cursor:(Cursor wait).
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   445
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   446
    y2 := 0.
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   447
    anIcon notNil ifTrue:[
3425
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   448
        y := top yPosition.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   449
        l := top addTextLabel:anIcon.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   450
        l borderWidth:0.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   451
        l adjust:#left.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   452
        l cursor:(Cursor wait).
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   453
        y2 := top yPosition.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   454
        top yPosition:y.
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   455
    ].
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   456
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   457
    l := top addTextLabel:text.
62
claus
parents: 50
diff changeset
   458
    l borderWidth:0.
74
claus
parents: 62
diff changeset
   459
    l adjust:#left.
62
claus
parents: 50
diff changeset
   460
    l cursor:(Cursor wait).
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   461
    anIcon notNil ifTrue: [l leftInset:(anIcon width + 10)].
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   462
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   463
    top yPosition:(top yPosition max:y2).
62
claus
parents: 50
diff changeset
   464
claus
parents: 50
diff changeset
   465
    top addVerticalSpace.
claus
parents: 50
diff changeset
   466
claus
parents: 50
diff changeset
   467
    p := ProgressIndicator new.
3425
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   468
    p extent:(1.0 @ p preferredHeight).
62
claus
parents: 50
diff changeset
   469
    p level:-1.
claus
parents: 50
diff changeset
   470
    p leftInset:5;
claus
parents: 50
diff changeset
   471
      rightInset:5.
claus
parents: 50
diff changeset
   472
    p cursor:(Cursor wait).
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   473
    p closeTopWhenDone:closeWhenDoneBoolean.
62
claus
parents: 50
diff changeset
   474
    p connectToTop:top label:l.
claus
parents: 50
diff changeset
   475
claus
parents: 50
diff changeset
   476
    top addComponent:p.
claus
parents: 50
diff changeset
   477
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   478
    additionalView notNil ifTrue:[
3425
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   479
        top addComponent:additionalView.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   480
        additionalView extent:(1.0 @ additionalView preferredHeight).
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   481
    ].
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   482
62
claus
parents: 50
diff changeset
   483
    abortable ifTrue:[
3425
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   484
        top addVerticalSpace.
20459e327062 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 2931
diff changeset
   485
        top addAbortButton
62
claus
parents: 50
diff changeset
   486
    ].
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   487
    abortable ifFalse:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   488
        "/ top beUndecorated.  -- buggy for now; sets wrong height (caption not included ?)
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   489
        "/ would need the following kludge:
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   490
        "/ top preferredExtent:(top preferredExtent + (0@30)).
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   491
    ].
62
claus
parents: 50
diff changeset
   492
claus
parents: 50
diff changeset
   493
    ^ p
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   494
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   495
    "Created: 17.7.1996 / 15:14:33 / cg"
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
   496
    "Modified: 17.7.1996 / 15:16:58 / cg"
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   497
!
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   498
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   499
inBoxWithLabel:aLabel text:text abortable:abortable
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   500
    "create a topView containing an instance of myself,
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   501
     for later use with #showProgressOf:"
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   502
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   503
    ^ self
634
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   504
	inBoxWithLabel:aLabel 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   505
	text:text 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   506
	abortable:abortable 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   507
	view:nil
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   508
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   509
!
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   510
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   511
inBoxWithLabel:aLabel text:text abortable:abortable view:additionalView
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   512
    "create a topView containing an instance of myself,
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   513
     for later use with #showProgressOf:"
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   514
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   515
    ^ self
634
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   516
	inBoxWithLabel:aLabel 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   517
	text:text 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   518
	abortable:abortable 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   519
	view:additionalView 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   520
	closeWhenDone:true
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   521
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   522
!
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   523
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   524
inBoxWithLabel:aLabel text:text abortable:abortable view:additionalView closeWhenDone:closeWhenDoneBoolean
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   525
    "create a topView containing an instance of myself,
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   526
     for later use with #showProgressOf:"
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   527
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   528
    ^ self
634
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   529
	inBoxWithLabel:aLabel 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   530
	icon:nil
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   531
	text:text 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   532
	abortable:abortable 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   533
	view:additionalView 
cee0d1f706e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 575
diff changeset
   534
	closeWhenDone:closeWhenDoneBoolean
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   535
1681
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   536
!
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   537
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   538
progressOpenOn:progressModel label:aLabel
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   539
    "create and open a progressIndicator dialog window,
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   540
     bit do not open it modal; instead, it is opened modeless
1834
ba170c21ed76 defaultExtent computation fixed
Claus Gittinger <cg@exept.de>
parents: 1789
diff changeset
   541
     and control returns to the caller.
1681
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   542
     The models value is assumed to be 0..1 
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   543
     (which is for compatibility and different from ST/X's percentage use)
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   544
     Added for VW compatibility (RB)."
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   545
4260
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   546
    ^ self progressOpenOn:progressModel title:aLabel label:aLabel
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   547
!
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   548
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   549
progressOpenOn:progressModel title:title label:aLabel
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   550
    "create and open a progressIndicator dialog window,
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   551
     bit do not open it modal; instead, it is opened modeless
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   552
     and control returns to the caller.
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   553
     The models value is assumed to be 0..1 
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   554
     (which is for compatibility and different from ST/X's percentage use)
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   555
     Added for VW compatibility (RB)."
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   556
1681
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   557
    |p ra|
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   558
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   559
    p := self
4260
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   560
            inBoxWithLabel:title 
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   561
            icon:nil
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   562
            text:aLabel
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   563
            abortable:false
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   564
            view:nil
004afeabb49a class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4216
diff changeset
   565
            closeWhenDone:false.
1681
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   566
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   567
    ra := RangeAdaptor on:progressModel start:0 stop:0.01 grid:nil.
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   568
    p model:ra.
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   569
2132
fd5b29a20fe1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2082
diff changeset
   570
    p topView openModeless; waitUntilVisible.
1681
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   571
    ^ p.
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   572
9ef9e8ec0f43 progressOpenOn:label: for VW compatibility
Claus Gittinger <cg@exept.de>
parents: 1463
diff changeset
   573
    "Modified: / 4.2.2000 / 01:25:55 / cg"
62
claus
parents: 50
diff changeset
   574
! !
claus
parents: 50
diff changeset
   575
3999
434665aedfea category of:8 methods
Claus Gittinger <cg@exept.de>
parents: 3970
diff changeset
   576
!ProgressIndicator class methodsFor:'simple public API'!
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   577
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   578
displayBusyIndicator:aLabel abortable:abortable at:aPoint during:aBlock
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   579
    "easy interface - show progress while evaluating aBlock.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   580
     The block is passed the progressIndicator as argument
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   581
     so the block can change the label and/or change the progress value."
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   582
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   583
    ^ self
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   584
        displayBusyIndicator:aLabel 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   585
        message:aLabel
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   586
        abortable:abortable 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   587
        at:aPoint 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   588
        during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   589
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   590
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   591
     ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   592
        displayBusyIndicator:'doobidoobidoo...'
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   593
        abortable:true
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   594
        at:(Screen default center)
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   595
        during:[
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   596
            200 to:400 by:5 do:[:i |
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   597
                Delay waitForSeconds:0.1.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   598
            ]
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   599
        ].
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   600
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   601
     ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   602
        displayBusyIndicator:'doobidoobidoo...'
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   603
        abortable:true
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   604
        at:(Screen default center)
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   605
        during:[
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   606
            Delay waitForSeconds:3.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   607
        ].
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   608
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   609
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   610
    "Modified: / 12-11-2010 / 18:59:45 / cg"
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   611
!
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   612
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   613
displayBusyIndicator:aLabel at:aPoint during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   614
    "easy interface - show progress while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   615
     The block is passed a valueHolder, which is to be set to values from
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   616
     startValue to endValue during the blocks evaluation.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   617
     This is scaled to 0..100% completion.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   618
     Set the valueHolder to nil, to get a busy-indicator"
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   619
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   620
    self
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   621
        displayBusyIndicator:aLabel 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   622
        abortable:false 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   623
        at:aPoint 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   624
        during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   625
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   626
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   627
     ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   628
        displayBusyIndicator:'doobidoobidoo...'
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   629
        at:(Screen default center)
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   630
        during:[
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   631
            200 to:400 by:5 do:[:i |
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   632
                Delay waitForSeconds:0.1.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   633
            ]
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   634
        ].
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   635
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   636
!
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   637
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   638
displayBusyIndicator:aLabel message:messageString abortable:abortable at:aPoint during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   639
    "easy interface - show progress while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   640
     The block is passed the progressIndicator as argument
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   641
     so the block can change the label and/or change the progress value."
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   642
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   643
    |p|
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   644
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   645
    p := self
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   646
            inBoxWithLabel:aLabel 
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   647
            icon:nil
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   648
            text:messageString
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   649
            abortable:abortable
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   650
            view:nil
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   651
            closeWhenDone:true.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   652
4106
94e77b757100 changed: #displayBusyIndicator:message:abortable:at:during:
ab
parents: 4096
diff changeset
   653
    aPoint notNil ifTrue:[
94e77b757100 changed: #displayBusyIndicator:message:abortable:at:during:
ab
parents: 4096
diff changeset
   654
        p topView origin:aPoint
94e77b757100 changed: #displayBusyIndicator:message:abortable:at:during:
ab
parents: 4096
diff changeset
   655
    ].
94e77b757100 changed: #displayBusyIndicator:message:abortable:at:during:
ab
parents: 4096
diff changeset
   656
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   657
    p showBusyIndication:true.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   658
    p showBusyIndicatorDuring:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   659
        CannotReturnError catch:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   660
            aBlock valueWithOptionalArgument:p.    
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   661
        ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   662
    ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   663
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   664
    "
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   665
     ProgressIndicator
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   666
        displayBusyIndicator:'doobidoobidoo...'
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   667
        abortable:true
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   668
        at:(Screen default center)
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   669
        during:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   670
            200 to:400 by:5 do:[:i |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   671
                Delay waitForSeconds:0.1.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   672
            ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   673
        ].
3626
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   674
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   675
     ProgressIndicator
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   676
        displayBusyIndicator:'doobidoobidoo...'
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   677
        abortable:true
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   678
        at:(Screen default center)
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   679
        during:[
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   680
            Delay waitForSeconds:3.
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   681
        ].
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   682
    "
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   683
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   684
    "Created: / 12-11-2010 / 18:59:13 / cg"
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   685
!
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   686
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   687
displayBusyIndicator:aLabel message:messageString at:aPoint during:aBlock
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   688
    "easy interface - show progress while evaluating aBlock.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   689
     The block is passed a valueHolder, which is to be set to values from
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   690
     startValue to endValue during the blocks evaluation.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   691
     This is scaled to 0..100% completion.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   692
     Set the valueHolder to nil, to get a busy-indicator"
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   693
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   694
    self
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   695
        displayBusyIndicator:aLabel
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   696
        message:messageString
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   697
        abortable:false 
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   698
        at:aPoint 
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   699
        during:aBlock
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   700
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   701
    "
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   702
     ProgressIndicator
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   703
        displayBusyIndicator:'doobidoobidoo...'
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   704
        at:(Screen default center)
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   705
        during:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   706
            200 to:400 by:5 do:[:i |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   707
                Delay waitForSeconds:0.1.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   708
            ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   709
        ].
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   710
    "
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   711
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   712
    "Created: / 12-11-2010 / 19:01:12 / cg"
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   713
!
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   714
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   715
displayProgress:aLabel at:aPoint from:startValue to:endValue during:aBlock
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   716
    "easy interface - show progress while evaluating aBlock.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   717
     The block is passed a valueHolder, which is to be set to values from
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   718
     startValue to endValue during the blocks evaluation.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   719
     This is scaled to 0..100% completion.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   720
     Set the valueHolder to nil, to get a busy-indicator"
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   721
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   722
    ^ self
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   723
        displayProgress:aLabel 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   724
        message:aLabel
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   725
        at:aPoint 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   726
        from:startValue 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   727
        to:endValue 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   728
        during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   729
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   730
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   731
     ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   732
        displayProgress:'doobidoobidoo...'
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   733
        at:(Screen default center)
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   734
        from:200 to:400
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   735
        during:[:val |
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   736
            200 to:400 by:5 do:[:i |
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   737
                val value:i.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   738
                Delay waitForSeconds:0.1.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   739
            ]
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   740
        ].
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   741
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   742
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   743
    "Modified: / 12-11-2010 / 19:02:27 / cg"
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   744
!
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   745
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   746
displayProgress:aLabel message:messageString at:aPoint from:startValue to:endValue during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   747
    "easy interface - show progress while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   748
     The block is passed a valueHolder, which is to be set to values from
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   749
     startValue to endValue during the blocks evaluation.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   750
     This is scaled to 0..100% completion.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   751
     Set the valueHolder to nil, to get a busy-indicator"
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   752
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   753
    |p|
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   754
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   755
    p := self
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   756
            inBoxWithLabel:aLabel 
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   757
            icon:nil
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   758
            text:messageString
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   759
            abortable:false
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   760
            view:nil
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   761
            closeWhenDone:true.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   762
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   763
    p showProgressOf:[:progressValue :currentAction |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   764
        |scaler|
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   765
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   766
        scaler := [:scaledValue | 
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   767
                        |newPercentage oldPercentage oldLabel|
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   768
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   769
                        scaledValue isNil ifTrue:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   770
                            p showBusyIndication:true
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   771
                        ] ifFalse:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   772
                            p showBusyIndication:false.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   773
                            oldPercentage := progressValue value.
3827
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   774
                            endValue = startValue ifTrue:[
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   775
                                newPercentage := 0.
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   776
                            ] ifFalse:[
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   777
                                newPercentage := (scaledValue - startValue) / (endValue-startValue) * 100.
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
   778
                            ].
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   779
                            newPercentage ~= oldPercentage ifTrue:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   780
                                progressValue value:newPercentage.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   781
                            ].
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   782
                            oldLabel := currentAction value.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   783
                            oldLabel ~= aLabel ifTrue:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   784
                                currentAction value:aLabel.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   785
                            ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   786
                        ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   787
                  ].
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   788
        CannotReturnError catch:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   789
            aBlock valueWithOptionalArgument:scaler and:p.    
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   790
        ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   791
    ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   792
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   793
    "
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   794
     ProgressIndicator
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   795
        displayProgress:'doobidoobidoo...'
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   796
        at:(Screen default center)
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   797
        from:200 to:400
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   798
        during:[:val |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   799
            200 to:400 by:5 do:[:i |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   800
                val value:i.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   801
                Delay waitForSeconds:0.1.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   802
            ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   803
        ].
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   804
    "
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   805
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   806
    "Created: / 12-11-2010 / 19:01:38 / cg"
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   807
!
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   808
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   809
displayProgressNotifications:aLabel abortable:abortable at:aPointOrNil during:aBlock
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   810
    "easy interface - show progress as provided by progressNotifications
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   811
     while evaluating aBlock.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   812
     The block is passed the progressIndicator as optional argument,
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   813
     however, progressNotifications are handled and update the percentage."
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   814
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   815
    ^ self
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   816
        displayProgressNotifications:aLabel 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   817
        message:aLabel 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   818
        abortable:abortable 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   819
        at:aPointOrNil 
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   820
        during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   821
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   822
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   823
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   824
     ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   825
        displayProgressNotifications:'doobidoobidoo...'
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   826
        abortable:true
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   827
        at:nil
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   828
        during:[
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   829
            200 to:400 by:5 do:[:i |
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   830
                Delay waitForSeconds:0.1.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   831
                ProgressNotification progressPercentage:(i / 4).
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   832
            ]
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   833
        ].
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   834
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   835
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   836
     ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   837
        displayProgressNotifications:'doobidoobidoo...'
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   838
        abortable:true
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   839
        at:nil
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   840
        during:[
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   841
            Delay waitForSeconds:3.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   842
        ].
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   843
    "
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   844
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   845
    "Modified: / 12-11-2010 / 19:03:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   846
!
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   847
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   848
displayProgressNotifications:aLabel message:messageString abortable:abortable at:aPointOrNil during:aBlock
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   849
    "easy interface - show progress as provided by progressNotifications
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   850
     while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   851
     The block is passed the progressIndicator as optional argument,
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   852
     however, progressNotifications are handled and update the percentage."
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   853
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   854
    |p|
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   855
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   856
    p := self
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   857
            inBoxWithLabel:aLabel 
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   858
            icon:nil
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   859
            text:messageString
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   860
            abortable:abortable
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   861
            view:nil
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   862
            closeWhenDone:true.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   863
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   864
    p showBusyIndicatorDuring:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   865
        CannotReturnError catch:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   866
            ProgressNotification handle:[:ex |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   867
                p percentage:ex progressValue.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   868
                ex proceed.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   869
            ] do:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   870
                aBlock valueWithOptionalArgument:p.    
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   871
            ].
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   872
        ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   873
    ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   874
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   875
    "
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   876
     ProgressIndicator
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   877
        displayProgressNotifications:'doobidoobidoo...'
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   878
        abortable:true
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   879
        at:nil
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   880
        during:[
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   881
            200 to:400 by:5 do:[:i |
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   882
                Delay waitForSeconds:0.1.
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   883
                ProgressNotification progressPercentage:(i / 4).
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   884
            ]
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   885
        ].
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   886
    "
3626
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   887
    "
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   888
     ProgressIndicator
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   889
        displayProgressNotifications:'doobidoobidoo...'
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   890
        abortable:true
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   891
        at:nil
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   892
        during:[
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   893
            Delay waitForSeconds:3.
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   894
        ].
b2087f53346e ensure that busyindicator process is terminated
Claus Gittinger <cg@exept.de>
parents: 3581
diff changeset
   895
    "
3967
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   896
Claus Gittinger <cg@exept.de>
parents: 3827
diff changeset
   897
    "Created: / 12-11-2010 / 19:02:43 / cg"
3542
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   898
! !
3e9b8a2186da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3442
diff changeset
   899
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   900
!ProgressIndicator methodsFor:'accessing'!
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   901
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   902
labelWidget
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   903
    ^ connectedLabel
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   904
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   905
    "Created: / 07-11-2011 / 22:01:00 / cg"
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   906
!
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
   907
4261
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   908
model:aValueHolder
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   909
    "set my percentage holder"
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   910
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   911
    super model:aValueHolder.
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   912
    aValueHolder notNil ifTrue:[
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   913
        self percentage:(model perform:aspectMsg)
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   914
    ].
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   915
!
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   916
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   917
percentage:aNumber
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   918
    "set the percentage"
237
ecea4b3a34ce more interfaces
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
   919
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   920
    |newPercentage|
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   921
4261
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   922
    newPercentage := -1.
66f61921bcfb class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4260
diff changeset
   923
    (aNumber notNil and:[aNumber >= 0]) ifTrue:[
2659
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
   924
        newPercentage := ((aNumber max:0) min:100) rounded.
2040
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
   925
    ].
910
5c9592e782fd always repairNow (to make change visible immediately)
Claus Gittinger <cg@exept.de>
parents: 865
diff changeset
   926
    newPercentage ~= percentage ifTrue:[
2659
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
   927
        percentage := newPercentage.
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
   928
        self invalidateRepairNow:true.
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
   929
    ]
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   930
910
5c9592e782fd always repairNow (to make change visible immediately)
Claus Gittinger <cg@exept.de>
parents: 865
diff changeset
   931
    "Modified: / 6.6.1998 / 19:43:56 / cg"
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   932
!
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   933
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   934
showBusyIndication:aBooleanHolder
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   935
    "switch between percentage mode (if false) and busy indication (if true)"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   936
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   937
    aBooleanHolder ~~ showBusy ifTrue:[
3969
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   938
        showBusy notNil ifTrue:[        
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   939
            showBusy removeDependent:self.
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   940
        ].
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   941
        showBusy := aBooleanHolder.
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   942
        showBusy isValueModel ifTrue:[showBusy addDependent:self].
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   943
        (showBusy value) ifTrue:[
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   944
            self startBusyIndicationProcess.
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   945
        ] ifFalse:[
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   946
            self stopBusyIndicationProcess
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   947
        ].
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   948
        shown ifTrue:[self redraw]
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   949
    ].
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
   950
3969
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   951
    "Created: / 21-10-1998 / 17:35:16 / cg"
fa06bc0686ed changed: #showBusyIndication:
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
   952
    "Modified: / 17-11-2010 / 13:43:51 / cg"
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   953
! !
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   954
2404
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   955
!ProgressIndicator methodsFor:'accessing-behavior'!
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   956
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   957
closeTopWhenDone:aBoolean
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   958
    "set/clear the close-topView-when-done flag"
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   959
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   960
    closeTopWhenDone := aBoolean
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   961
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   962
    "Created: 3.9.1996 / 14:22:03 / cg"
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   963
    "Modified: 29.3.1997 / 16:08:19 / cg"
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   964
!
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   965
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   966
finishAction:aBlock 
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   967
    "define an action to be performed when finished"
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   968
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   969
    finishAction := aBlock
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   970
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   971
    "Created: 3.9.1996 / 14:15:15 / cg"
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   972
    "Modified: 29.3.1997 / 16:08:35 / cg"
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   973
! !
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   974
2b7591c982ac category change
Claus Gittinger <cg@exept.de>
parents: 2403
diff changeset
   975
!ProgressIndicator methodsFor:'accessing-look'!
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
   976
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   977
backgroundColor 
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   978
    "return the percentage displays background color"
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   979
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   980
    ^ bgColor
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   981
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   982
!
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   983
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   984
backgroundColor:aColor 
5342
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
   985
    "set the percentage display's background color"
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   986
993
6274668e8262 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 910
diff changeset
   987
    aColor ~= bgColor ifTrue:[
2659
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
   988
        bgColor := aColor.
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
   989
        self invalidateRepairNow:true
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   990
    ].
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   991
5342
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
   992
    "Modified: / 20-07-1998 / 23:32:48 / cg"
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
   993
    "Modified (comment): / 19-11-2016 / 12:22:23 / cg"
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   994
!
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
   995
335
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   996
foregroundColor 
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   997
    "return the percentage displays foreground color"
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   998
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
   999
    ^ fgColor
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1000
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1001
    "Created: 29.3.1997 / 16:12:28 / cg"
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1002
!
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1003
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1004
foregroundColor:aColor 
5342
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
  1005
    "set the percentage display's foreground color"
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1006
993
6274668e8262 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 910
diff changeset
  1007
    aColor ~= fgColor ifTrue:[
2659
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
  1008
        fgColor := aColor.
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
  1009
        self invalidateRepairNow:true
336
5199e2058981 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 335
diff changeset
  1010
    ].
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1011
5342
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
  1012
    "Modified: / 20-07-1998 / 23:27:47 / cg"
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
  1013
    "Modified (comment): / 19-11-2016 / 12:22:29 / cg"
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1014
!
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1015
335
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1016
showPercentage
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1017
    "return the flag controlling if the percentage is to be shown numerically"
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1018
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1019
    ^ showPercentage
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1020
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1021
    "Created: 29.3.1997 / 16:12:39 / cg"
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1022
!
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1023
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1024
showPercentage:aBoolean
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1025
    "set/clear the flag controlling if the percentage is to be shown numerically"
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1026
336
5199e2058981 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 335
diff changeset
  1027
    showPercentage := aBoolean.
2659
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
  1028
    self invalidateRepairNow:true
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1029
910
5c9592e782fd always repairNow (to make change visible immediately)
Claus Gittinger <cg@exept.de>
parents: 865
diff changeset
  1030
    "Modified: / 6.6.1998 / 19:28:44 / cg"
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1031
! !
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1032
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1033
!ProgressIndicator methodsFor:'change & update'!
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1034
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1035
update:aspect with:aParameter from:changedObject
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1036
    "react upon value changes of my model"
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1037
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1038
    (aspect == aspectMsg
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1039
    and:[changedObject == model]) ifTrue:[
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1040
        self percentage:(model perform:aspectMsg).
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1041
        ^ self
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1042
    ].
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1043
    changedObject == showBusy ifTrue:[
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1044
        showBusy value 
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1045
            ifTrue:[self startBusyIndicationProcess]
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1046
            ifFalse:[self stopBusyIndicationProcess].
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1047
        self redraw.
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1048
        ^ self
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1049
    ].
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1050
    ^ super update:aspect with:aParameter from:changedObject
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1051
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1052
    "Modified: / 21-10-1998 / 18:01:52 / cg"
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1053
    "Modified: / 01-11-2006 / 08:40:50 / janfrog"
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1054
! !
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1055
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1056
!ProgressIndicator methodsFor:'drawing'!
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1057
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1058
redraw
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1059
    "redraw the percentage bar and optional percentage string"
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1060
5208
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1061
    |s lx rx sx sy sw m2 m w h doBusy oldClip deviceFont reallyShowPercentage|
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1062
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1063
    self shown ifFalse:[^self].
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1064
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1065
    m := margin + 1.
863
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1066
    m2 := m*2.
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1067
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1068
    w := width - m2.
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1069
    h := height - m2.
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1070
910
5c9592e782fd always repairNow (to make change visible immediately)
Claus Gittinger <cg@exept.de>
parents: 865
diff changeset
  1071
"/    self clear.
863
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1072
2040
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1073
    doBusy := showBusy value.
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1074
    doBusy ifFalse:[
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1075
        percentage value < 0 ifTrue:[
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1076
            self startBusyIndicationProcess.
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1077
            doBusy := true.
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1078
        ].        
2040
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1079
    ].
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1080
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1081
    doBusy ifTrue:[
5425
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1082
        gc paint:bgColor.
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1083
        gc fillRectangleX:m y:m width:w height:h.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1084
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1085
        lx := (w * busyPosition / 100) rounded.
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1086
        rx := (w * (busyPosition + 20) / 100) rounded.
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1087
        rx := rx min:w.
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1088
        lx := lx max:m.
5425
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1089
        gc paint:fgColor.
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1090
        gc fillRectangleX:lx y:m width:(rx - lx) height:h.
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1091
        ^ self
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1092
    ].
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1093
2040
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1094
    self stopBusyIndicationProcess.
702df7addef9 busy indicator when percentage is negative
Claus Gittinger <cg@exept.de>
parents: 1935
diff changeset
  1095
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1096
    rx := (w * percentage / 100) rounded.
5425
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1097
    gc paint:bgColor.
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1098
    gc fillRectangleX:m+rx y:m width:w-rx height:h.
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1099
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1100
    (reallyShowPercentage := showPercentage) ifTrue:[
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1101
        s := percentage printString , ' %'.
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1102
5208
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1103
        deviceFont := gc deviceFont.
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1104
        reallyShowPercentage := self height >= (deviceFont heightOf:s).
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1105
        reallyShowPercentage ifTrue:[
5208
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1106
            sw := deviceFont widthOf:s .
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1107
            sx := (width - sw) // 2.
5208
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1108
            sy := height // 2 + deviceFont descent + 2.
347
3264e5caa799 fixed #fgColor;
Claus Gittinger <cg@exept.de>
parents: 336
diff changeset
  1109
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1110
            rx <= (sx+sw) ifTrue:[
5425
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1111
                gc paint:self blackColor.
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1112
                gc displayString:s x:sx y:sy.
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1113
            ]
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1114
        ]
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1115
    ].
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1116
5425
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1117
    gc paint:fgColor.
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1118
    gc fillRectangleX:m y:m width:rx height:h.
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1119
4709
b9e63b8565c1 class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4511
diff changeset
  1120
    reallyShowPercentage ifTrue:[
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1121
        rx >= sx ifTrue:[
5208
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1122
            oldClip := self clippingBoundsOrNil.
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1123
            self clippingBounds:(m@m corner:rx+1 @ h).
5342
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
  1124
            
5425
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1125
            gc paint:(fgColor contrastingBlackOrWhite).
2dd9705bb79e #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 5342
diff changeset
  1126
            gc displayString:s x:sx y:sy.
5208
355b6f645934 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 5170
diff changeset
  1127
            self clippingBounds:oldClip
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1128
        ]
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1129
    ]
347
3264e5caa799 fixed #fgColor;
Claus Gittinger <cg@exept.de>
parents: 336
diff changeset
  1130
3748
4d72710a919e care for being not shown
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  1131
    "Modified: / 12-12-2006 / 18:26:02 / janfrog"
5342
6546b52e4e65 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 5208
diff changeset
  1132
    "Modified: / 19-11-2016 / 12:27:05 / cg"
863
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1133
!
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1134
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1135
sizeChanged:how
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1136
    super sizeChanged:how.
2659
3af857eb52fb invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 2563
diff changeset
  1137
    self invalidate
863
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1138
a401ecea61a3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 843
diff changeset
  1139
    "Created: / 18.4.1998 / 02:34:37 / cg"
865
5c15ad847ad2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 863
diff changeset
  1140
    "Modified: / 18.4.1998 / 14:09:40 / cg"
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1141
! !
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1142
2501
832cbac295b8 method category rename
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1143
!ProgressIndicator methodsFor:'initialization & release'!
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1144
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1145
destroy
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1146
    busyIndicationProcess notNil ifTrue:[
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
  1147
	self stopBusyIndicationProcess
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1148
    ].
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1149
    super destroy.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1150
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1151
    "Created: / 21.10.1998 / 17:29:58 / cg"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1152
    "Modified: / 21.10.1998 / 17:30:36 / cg"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1153
!
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1154
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1155
initStyle
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1156
    "initialize styleSheet values"
335
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1157
575
9279151db8f5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 574
diff changeset
  1158
    <resource: #style (#'progressIndicator.viewBackground'
2921
1e8c394e895e resource directive
Claus Gittinger <cg@exept.de>
parents: 2878
diff changeset
  1159
                       #'progressIndicator.foregroundColor')>
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1160
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1161
    super initStyle.
335
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1162
347
3264e5caa799 fixed #fgColor;
Claus Gittinger <cg@exept.de>
parents: 336
diff changeset
  1163
    self is3D ifTrue:[
2921
1e8c394e895e resource directive
Claus Gittinger <cg@exept.de>
parents: 2878
diff changeset
  1164
        self level:-1
347
3264e5caa799 fixed #fgColor;
Claus Gittinger <cg@exept.de>
parents: 336
diff changeset
  1165
    ].
3264e5caa799 fixed #fgColor;
Claus Gittinger <cg@exept.de>
parents: 336
diff changeset
  1166
5170
d3b3baffa5d1 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 4998
diff changeset
  1167
    bgColor := styleSheet colorAt:'progressIndicator.viewBackground' default:self whiteColor.
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1168
    fgColor := styleSheet colorAt:'progressIndicator.foregroundColor' default:Color blue.
4998
dc55b3e01957 device access
Claus Gittinger <cg@exept.de>
parents: 4724
diff changeset
  1169
    fgColor := fgColor onDevice:device.
335
6f007bdeae94 resource-tag & access methods.
Claus Gittinger <cg@exept.de>
parents: 334
diff changeset
  1170
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1171
    showPercentage := true.
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1172
!
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1173
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1174
initialize
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
  1175
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1176
    super initialize.
826
d8470e26754d revised for the docu (step 4)
tz
parents: 634
diff changeset
  1177
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1178
    percentage := 0.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1179
    showBusy := false.
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1180
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1181
    "Modified: / 21.10.1998 / 17:33:02 / cg"
1935
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1182
!
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1183
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1184
mapped
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1185
    super mapped.
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1186
    (showBusy value) ifTrue:[
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
  1187
	self startBusyIndicationProcess.
1935
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1188
    ].
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1189
!
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1190
3970
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1191
release
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1192
    super release.
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1193
    showBusy notNil ifTrue:[showBusy removeDependent:self].
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1194
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1195
    "Created: / 17-11-2010 / 13:44:45 / cg"
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1196
!
fd8dd1403069 added: #release
Claus Gittinger <cg@exept.de>
parents: 3969
diff changeset
  1197
1935
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1198
unmapped
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1199
    super unmapped.
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1200
    (showBusy value) ifTrue:[
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
  1201
	self stopBusyIndicationProcess.
1935
a2338e64cf2f terminate/recreate busyIndicator-animation process if unmapped/mapped
frank
parents: 1852
diff changeset
  1202
    ].
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1203
! !
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1204
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1205
!ProgressIndicator methodsFor:'private'!
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1206
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1207
connectToTop:top label:label
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1208
    connectedTop := top.
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1209
    connectedLabel := label
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1210
!
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1211
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1212
startBusyIndicationProcess
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1213
    busyIndicationProcess isNil ifTrue:[
4216
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1214
        busyPosition := 0.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1215
        busyDelta := 3.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1216
        busyIndicationProcess := [
4724
281883681a1e class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4709
diff changeset
  1217
                                    [self realized and:[self topView realized]] whileTrue:[
4216
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1218
                                        Delay waitForSeconds:0.1.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1219
                                        self shown ifTrue:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1220
                                            self updateBusyIndicatorPosition.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1221
                                        ]
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1222
                                    ].
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1223
                                    busyIndicationProcess := nil.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1224
                                 ] fork.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1225
    ].
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1226
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1227
    "Created: / 21.10.1998 / 18:02:35 / cg"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1228
    "Modified: / 21.10.1998 / 18:03:49 / cg"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1229
!
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1230
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1231
stopBusyIndicationProcess
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1232
    busyIndicationProcess notNil ifTrue:[
2563
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
  1233
	busyIndicationProcess terminate.
b04147223487 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
  1234
	busyIndicationProcess := nil
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1235
    ].
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1236
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1237
    "Created: / 21.10.1998 / 17:30:19 / cg"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1238
!
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1239
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1240
updateBusyIndicatorPosition
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1241
    busyPosition := busyPosition + busyDelta.
4216
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1242
    busyPosition >= 95 ifTrue:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1243
        busyPosition := -15.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1244
    ].
4216
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1245
"/    busyPosition >= 80 ifTrue:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1246
"/        busyDelta > 0 ifTrue:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1247
"/            busyDelta := busyDelta negated.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1248
"/        ]
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1249
"/    ] ifFalse:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1250
"/        busyPosition <= 0 ifTrue:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1251
"/            busyDelta < 0 ifTrue:[
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1252
"/                busyDelta := busyDelta negated.
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1253
"/            ]
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1254
"/        ]
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1255
"/    ].
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1256
    self invalidateRepairNow:true
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1257
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1258
    "Created: / 21.10.1998 / 17:33:28 / cg"
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1259
    "Modified: / 21.10.1998 / 17:58:58 / cg"
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1260
! !
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1261
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1262
!ProgressIndicator methodsFor:'queries'!
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1263
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1264
preferredExtent
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1265
    "return my preferred extent"
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1266
3581
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1267
    "/ If I have an explicit preferredExtent..
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1268
    explicitExtent notNil ifTrue:[
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1269
        ^ explicitExtent
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1270
    ].
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1271
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1272
    "/ If I have a cached preferredExtent value..
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1273
    preferredExtent notNil ifTrue:[
3581
3a61a4e2a631 changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1274
        ^ preferredExtent
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1275
    ].
4511
b1a6da90fdc5 class: ProgressIndicator
Stefan Vogel <sv@exept.de>
parents: 4469
diff changeset
  1276
    ^ 100 @ (gc font height + gc font descent + ((margin + 1) * 2))
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1277
574
be7f980eb6dc commentary
Claus Gittinger <cg@exept.de>
parents: 347
diff changeset
  1278
    "Modified: 22.10.1997 / 21:07:17 / cg"
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1279
! !
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1280
62
claus
parents: 50
diff changeset
  1281
!ProgressIndicator methodsFor:'showing progress'!
claus
parents: 50
diff changeset
  1282
4079
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1283
new_showBusyIndicatorDuring:aBlock
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1284
    "show progress, while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1285
     If the receiver has been created with inBox, show the
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1286
     box centered on the screen. If not, the view is assumed to
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1287
     be contained in another view, and no special startup actions
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1288
     are performed.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1289
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1290
     Caveat: cannot (currently) suppress close of the box ..."
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1291
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1292
    |labelValue p|
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1293
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1294
    connectedLabel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1295
        labelValue := (connectedLabel label ? '') asValue.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1296
        connectedLabel 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1297
            model:labelValue;
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1298
            aspect:#value;
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1299
            labelMessage:#value.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1300
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1301
        labelValue := '' asValue.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1302
    ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1303
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1304
    "/ the display process
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1305
    p := [
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1306
            self topView show.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1307
         ] fork.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1308
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1309
    "/ the worker process
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1310
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1311
    [
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
  1312
        aBlock valueWithOptionalArgument:labelValue
4079
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1313
    ] ensure:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1314
        p terminate.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1315
        p := nil.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1316
        self stopBusyIndicationProcess.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1317
        closeTopWhenDone ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1318
            connectedTop sensor pushEvent:(WindowEvent terminateView:connectedTop).
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1319
            connectedTop hide
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1320
        ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1321
        self topView hide.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1322
        finishAction value
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1323
    ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1324
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1325
    "
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1326
      |p|
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1327
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1328
      p := ProgressIndicator inBox.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1329
      p showBusyIndication:true.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1330
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1331
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1332
                1 to:200 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1333
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1334
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1335
                ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1336
            ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1337
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1338
      'it can be reused ...'.  
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1339
      p showBusyIndication:false.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1340
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1341
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1342
                1 to:100 by:5 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1343
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1344
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1345
                ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1346
            ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1347
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1348
    "
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1349
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1350
    "Created: / 14-09-2011 / 18:41:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1351
!
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1352
4078
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1353
new_showProgressOf:aBlock
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1354
    "show progress, while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1355
     If the receiver has been created with inBox, show the
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1356
     box centered on the screen. If not, the view is assumed to
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1357
     be contained in another view, and no special startup actions
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1358
     are performed.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1359
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1360
     The block is passed two arguments, the progressValue,
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1361
     which should be set to the percentage from time-to-time
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1362
     within the block and an action value, which should be set to
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1363
     the currently performed action (a string) from time to time.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1364
     The second valueHolder can be left unchanged.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1365
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1366
     Caveat: cannot (currently) suppress close of the box ..."
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1367
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1368
    |progressValue labelValue p aborted|
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1369
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1370
    progressValue := 0 asValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1371
    aborted := false.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1372
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1373
    connectedLabel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1374
        labelValue := (connectedLabel label ? '') asValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1375
        connectedLabel 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1376
            model:labelValue;
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1377
            aspect:#value;
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1378
            labelMessage:#value.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1379
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1380
        labelValue := '' asValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1381
    ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1382
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1383
    self model:progressValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1384
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1385
    "/ the display process
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1386
    p := [
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1387
            self topView show.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1388
         ] fork.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1389
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1390
"/    WindowGroup windowGroupQuerySignal handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1391
"/        ex proceedWith:self topView windowGroup
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1392
"/    ] do:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1393
        [
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1394
            aBlock value:progressValue value:labelValue
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1395
        ] ensure:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1396
            p terminate.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1397
            p := nil.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1398
            closeTopWhenDone ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1399
                connectedTop sensor pushEvent:(WindowEvent terminateView:connectedTop).
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1400
                connectedTop hide
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1401
            ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1402
            self topView hide.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1403
            finishAction value
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1404
        ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1405
"/    ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1406
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1407
    "
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1408
      |p|
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1409
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1410
      p := ProgressIndicator inBox.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1411
      p showBusyIndication:true.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1412
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1413
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1414
                1 to:200 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1415
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1416
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1417
                ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1418
            ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1419
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1420
      'it can be reused ...'.  
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1421
      p showBusyIndication:false.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1422
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1423
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1424
                1 to:100 by:5 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1425
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1426
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1427
                ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1428
            ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1429
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1430
    "
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1431
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1432
    "Created: / 14-09-2011 / 11:02:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1433
!
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1434
4079
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1435
old_showBusyIndicatorDuring:aBlock
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1436
    "show progress, while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1437
     If the receiver has been created with inBox, show the
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1438
     box centered on the screen. If not, the view is assumed to
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1439
     be contained in another view, and no special startup actions
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1440
     are performed.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1441
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1442
     Caveat: cannot (currently) suppress close of the box ..."
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1443
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1444
    |labelValue p|
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1445
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1446
    connectedLabel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1447
        labelValue := (connectedLabel label ? '') asValue.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1448
        connectedLabel 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1449
            model:labelValue;
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1450
            aspect:#value;
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1451
            labelMessage:#value.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1452
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1453
        labelValue := '' asValue.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1454
    ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1455
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1456
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1457
    "/ the worker process
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1458
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1459
    p := [
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1460
        [
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1461
            WindowGroup windowGroupQuerySignal handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1462
                ex proceedWith:self topView windowGroup
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1463
            ] do:[
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
  1464
                aBlock valueWithOptionalArgument:labelValue
4079
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1465
            ]
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1466
        ] ensure:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1467
            p := nil.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1468
            self stopBusyIndicationProcess.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1469
            closeTopWhenDone ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1470
                connectedTop hide
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1471
            ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1472
            finishAction value.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1473
            
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1474
        ]
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1475
    ] newProcess.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1476
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1477
    Processor activeProcess 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1478
        withHigherPriorityDo:
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1479
            [
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1480
                p resume.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1481
                self topView show.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1482
            ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1483
    p notNil ifTrue:[p terminate].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1484
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1485
    "
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1486
      |p|
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1487
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1488
      p := ProgressIndicator inBox.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1489
      p showBusyIndication:true.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1490
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1491
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1492
                1 to:200 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1493
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1494
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1495
                ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1496
            ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1497
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1498
      'it can be reused ...'.  
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1499
      p showBusyIndication:false.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1500
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1501
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1502
                1 to:100 by:5 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1503
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1504
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1505
                ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1506
            ].
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1507
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1508
    "
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1509
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1510
    "Created: / 14-09-2011 / 18:41:34 / cg"
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1511
!
Claus Gittinger <cg@exept.de>
parents: 4078
diff changeset
  1512
4078
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1513
old_showProgressOf:aBlock
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1514
    "show progress, while evaluating aBlock.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1515
     If the receiver has been created with inBox, show the
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1516
     box centered on the screen. If not, the view is assumed to
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1517
     be contained in another view, and no special startup actions
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1518
     are performed.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1519
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1520
     The block is passed two arguments, the progressValue,
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1521
     which should be set to the percentage from time-to-time
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1522
     within the block and an action value, which should be set to
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1523
     the currently performed action (a string) from time to time.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1524
     The second valueHolder can be left unchanged.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1525
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1526
     Caveat: cannot (currently) suppress close of the box ..."
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1527
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1528
    |progressValue labelValue p aborted|
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1529
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1530
    progressValue := 0 asValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1531
    aborted := false.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1532
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1533
    connectedLabel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1534
        labelValue := (connectedLabel label ? '') asValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1535
        connectedLabel 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1536
            model:labelValue;
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1537
            aspect:#value;
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1538
            labelMessage:#value.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1539
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1540
        labelValue := '' asValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1541
    ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1542
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1543
    self model:progressValue.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1544
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1545
    "/ the worker process
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1546
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1547
    p := [
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1548
        [
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1549
            WindowGroup windowGroupQuerySignal handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1550
                ex proceedWith:self topView windowGroup
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1551
            ] do:[
4469
a4d672240503 AbortSignal -> AbortOperationRequest
Stefan Vogel <sv@exept.de>
parents: 4261
diff changeset
  1552
                AbortOperationRequest handle:[:ex |
4078
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1553
                    aborted := true
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1554
                ] do:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1555
                    aBlock value:progressValue value:labelValue
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1556
                ]
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1557
            ]
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1558
        ] ensure:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1559
            p := nil.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1560
            closeTopWhenDone ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1561
                connectedTop sensor pushEvent:(WindowEvent terminateView:connectedTop).
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1562
                connectedTop hide
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1563
            ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1564
            finishAction value
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1565
        ]
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1566
    ] newProcess.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1567
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1568
    Processor activeProcess 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1569
        withHigherPriorityDo:[
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1570
            p resume.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1571
            self topView show.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1572
        ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1573
    p notNil ifTrue:[p terminate].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1574
    aborted ifTrue:[
4469
a4d672240503 AbortSignal -> AbortOperationRequest
Stefan Vogel <sv@exept.de>
parents: 4261
diff changeset
  1575
        AbortOperationRequest raiseRequest
4078
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1576
    ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1577
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1578
    "
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1579
      |p|
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1580
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1581
      p := ProgressIndicator inBox.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1582
      p showBusyIndication:true.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1583
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1584
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1585
                1 to:200 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1586
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1587
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1588
                ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1589
            ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1590
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1591
      'it can be reused ...'.  
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1592
      p showBusyIndication:false.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1593
      p showProgressOf:
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1594
            [:progressValue :currentAction |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1595
                1 to:100 by:5 do:[:percent |
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1596
                    (Delay forSeconds:0.05) wait.
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1597
                    progressValue value:percent 
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1598
                ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1599
            ].
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1600
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1601
    "
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1602
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1603
    "Modified: / 12-09-2011 / 09:57:03 / cg"
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1604
    "Created: / 14-09-2011 / 11:00:12 / cg"
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1605
!
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1606
2850
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1607
showBusyIndicatorDuring:aBlock
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1608
    "show progress, while evaluating aBlock.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1609
     If the receiver has been created with inBox, show the
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1610
     box centered on the screen. If not, the view is assumed to
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1611
     be contained in another view, and no special startup actions
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1612
     are performed.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1613
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1614
     Caveat: cannot (currently) suppress close of the box ..."
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1615
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1616
    |labelValue p|
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1617
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1618
    connectedLabel notNil ifTrue:[
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1619
        labelValue := (connectedLabel label ? '') asValue.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1620
        connectedLabel 
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1621
            model:labelValue;
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1622
            aspect:#value;
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1623
            labelMessage:#value.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1624
    ] ifFalse:[
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1625
        labelValue := '' asValue.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1626
    ].
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1627
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1628
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1629
    "/ the worker process
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1630
4096
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1631
    p := 
2850
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1632
        [
4096
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1633
            [
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1634
                WindowGroup windowGroupQuerySignal handle:[:ex |
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1635
                    ex proceedWith:self topView windowGroup
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1636
                ] do:[
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1637
                    aBlock valueWithOptionalArgument:labelValue
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1638
                ]
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1639
            ] ensure:[
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1640
                p := nil.
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1641
                self stopBusyIndicationProcess.
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1642
                closeTopWhenDone ifTrue:[
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1643
                    connectedTop hide
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1644
                ].
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1645
                finishAction value.
2850
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1646
            ]
4096
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1647
        ] newProcess.
2850
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1648
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1649
    Processor activeProcess 
2878
6a88c8ffeb14 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2850
diff changeset
  1650
        withHigherPriorityDo:
6a88c8ffeb14 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2850
diff changeset
  1651
            [
6a88c8ffeb14 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2850
diff changeset
  1652
                p resume.
6a88c8ffeb14 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2850
diff changeset
  1653
                self topView show.
6a88c8ffeb14 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2850
diff changeset
  1654
            ].
2850
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1655
    p notNil ifTrue:[p terminate].
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1656
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1657
    "
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1658
      |p|
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1659
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1660
      p := ProgressIndicator inBox.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1661
      p showBusyIndication:true.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1662
      p showProgressOf:
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1663
            [:progressValue :currentAction |
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1664
                1 to:200 do:[:percent |
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1665
                    (Delay forSeconds:0.05) wait.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1666
                    progressValue value:percent 
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1667
                ].
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1668
            ].
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1669
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1670
      'it can be reused ...'.  
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1671
      p showBusyIndication:false.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1672
      p showProgressOf:
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1673
            [:progressValue :currentAction |
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1674
                1 to:100 by:5 do:[:percent |
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1675
                    (Delay forSeconds:0.05) wait.
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1676
                    progressValue value:percent 
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1677
                ].
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1678
            ].
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1679
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1680
    "
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1681
4088
e0f9cfd1cdb4 added: #labelWidget
Claus Gittinger <cg@exept.de>
parents: 4079
diff changeset
  1682
    "Modified: / 07-11-2011 / 21:53:46 / cg"
4096
da15cc568c0a comment/format in: #showBusyIndicatorDuring:
Claus Gittinger <cg@exept.de>
parents: 4088
diff changeset
  1683
    "Modified (format): / 08-01-2012 / 12:00:39 / cg"
2850
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1684
!
4e58a7e9c323 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2837
diff changeset
  1685
62
claus
parents: 50
diff changeset
  1686
showProgressOf:aBlock
claus
parents: 50
diff changeset
  1687
    "show progress, while evaluating aBlock.
claus
parents: 50
diff changeset
  1688
     If the receiver has been created with inBox, show the
claus
parents: 50
diff changeset
  1689
     box centered on the screen. If not, the view is assumed to
claus
parents: 50
diff changeset
  1690
     be contained in another view, and no special startup actions
claus
parents: 50
diff changeset
  1691
     are performed.
claus
parents: 50
diff changeset
  1692
claus
parents: 50
diff changeset
  1693
     The block is passed two arguments, the progressValue,
claus
parents: 50
diff changeset
  1694
     which should be set to the percentage from time-to-time
claus
parents: 50
diff changeset
  1695
     within the block and an action value, which should be set to
claus
parents: 50
diff changeset
  1696
     the currently performed action (a string) from time to time.
claus
parents: 50
diff changeset
  1697
     The second valueHolder can be left unchanged.
claus
parents: 50
diff changeset
  1698
claus
parents: 50
diff changeset
  1699
     Caveat: cannot (currently) suppress close of the box ..."
claus
parents: 50
diff changeset
  1700
4078
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1701
    "/ ^ self old_showProgressOf:aBlock
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1702
    ^ self new_showProgressOf:aBlock
62
claus
parents: 50
diff changeset
  1703
claus
parents: 50
diff changeset
  1704
    "
claus
parents: 50
diff changeset
  1705
      |p|
claus
parents: 50
diff changeset
  1706
claus
parents: 50
diff changeset
  1707
      p := ProgressIndicator inBox.
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1708
      p showBusyIndication:true.
62
claus
parents: 50
diff changeset
  1709
      p showProgressOf:
2837
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1710
            [:progressValue :currentAction |
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1711
                1 to:200 do:[:percent |
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1712
                    (Delay forSeconds:0.05) wait.
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1713
                    progressValue value:percent 
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1714
                ].
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1715
            ].
62
claus
parents: 50
diff changeset
  1716
claus
parents: 50
diff changeset
  1717
      'it can be reused ...'.  
1168
35e46761842f added showBusyIndication mode
Claus Gittinger <cg@exept.de>
parents: 993
diff changeset
  1718
      p showBusyIndication:false.
62
claus
parents: 50
diff changeset
  1719
      p showProgressOf:
2837
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1720
            [:progressValue :currentAction |
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1721
                1 to:100 by:5 do:[:percent |
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1722
                    (Delay forSeconds:0.05) wait.
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1723
                    progressValue value:percent 
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1724
                ].
d788335f2010 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2659
diff changeset
  1725
            ].
62
claus
parents: 50
diff changeset
  1726
claus
parents: 50
diff changeset
  1727
    "
219
44246b9b4288 use new windowGroupQuery for background process
Claus Gittinger <cg@exept.de>
parents: 201
diff changeset
  1728
4078
Claus Gittinger <cg@exept.de>
parents: 4077
diff changeset
  1729
    "Modified: / 14-09-2011 / 17:03:08 / cg"
62
claus
parents: 50
diff changeset
  1730
! !
claus
parents: 50
diff changeset
  1731
334
8af14110efdb comments & category changes
Claus Gittinger <cg@exept.de>
parents: 237
diff changeset
  1732
!ProgressIndicator class methodsFor:'documentation'!
50
claus
parents:
diff changeset
  1733
183
c63a4f284a6d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 86
diff changeset
  1734
version
4998
dc55b3e01957 device access
Claus Gittinger <cg@exept.de>
parents: 4724
diff changeset
  1735
    ^ '$Header$'
3827
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
  1736
!
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
  1737
ec0aed04e61f changed: #displayProgress:at:from:to:during:
Claus Gittinger <cg@exept.de>
parents: 3748
diff changeset
  1738
version_CVS
4998
dc55b3e01957 device access
Claus Gittinger <cg@exept.de>
parents: 4724
diff changeset
  1739
    ^ '$Header$'
50
claus
parents:
diff changeset
  1740
! !
4216
7059be9d898c class: ProgressIndicator
Claus Gittinger <cg@exept.de>
parents: 4127
diff changeset
  1741