| 17 |
<o:DocumentProperties> |
<o:DocumentProperties> |
| 18 |
<o:Author>IBM_USER</o:Author> |
<o:Author>IBM_USER</o:Author> |
| 19 |
<o:LastAuthor>IBM_USER</o:LastAuthor> |
<o:LastAuthor>IBM_USER</o:LastAuthor> |
| 20 |
<o:Revision>7</o:Revision> |
<o:Revision>8</o:Revision> |
| 21 |
<o:TotalTime>4518</o:TotalTime> |
<o:TotalTime>4519</o:TotalTime> |
| 22 |
<o:LastPrinted>2004-11-08T17:14:00Z</o:LastPrinted> |
<o:LastPrinted>2004-11-08T17:14:00Z</o:LastPrinted> |
| 23 |
<o:Created>2004-12-20T21:30:00Z</o:Created> |
<o:Created>2004-12-20T21:30:00Z</o:Created> |
| 24 |
<o:LastSaved>2004-12-20T21:50:00Z</o:LastSaved> |
<o:LastSaved>2004-12-20T22:54:00Z</o:LastSaved> |
| 25 |
<o:Pages>1</o:Pages> |
<o:Pages>1</o:Pages> |
| 26 |
<o:Words>6341</o:Words> |
<o:Words>6341</o:Words> |
| 27 |
<o:Characters>36147</o:Characters> |
<o:Characters>36147</o:Characters> |
| 33 |
</o:DocumentProperties> |
</o:DocumentProperties> |
| 34 |
</xml><![endif]--><!--[if gte mso 9]><xml> |
</xml><![endif]--><!--[if gte mso 9]><xml> |
| 35 |
<w:WordDocument> |
<w:WordDocument> |
| 36 |
|
<w:SpellingState>Clean</w:SpellingState> |
| 37 |
|
<w:GrammarState>Clean</w:GrammarState> |
| 38 |
<w:Compatibility> |
<w:Compatibility> |
| 39 |
<w:BreakWrappedTables/> |
<w:BreakWrappedTables/> |
| 40 |
<w:SnapToGridInCell/> |
<w:SnapToGridInCell/> |
| 167 |
font-size:10.0pt; |
font-size:10.0pt; |
| 168 |
font-family:"Courier New"; |
font-family:"Courier New"; |
| 169 |
mso-fareast-font-family:"Times New Roman";} |
mso-fareast-font-family:"Times New Roman";} |
| 170 |
|
span.SpellE |
| 171 |
|
{mso-style-name:""; |
| 172 |
|
mso-spl-e:yes;} |
| 173 |
|
span.GramE |
| 174 |
|
{mso-style-name:""; |
| 175 |
|
mso-gram-e:yes;} |
| 176 |
@page Section1 |
@page Section1 |
| 177 |
{size:8.5in 11.0in; |
{size:8.5in 11.0in; |
| 178 |
margin:1.0in .75in .5in 1.0in; |
margin:1.0in .75in .5in 1.0in; |
| 183 |
{page:Section1;} |
{page:Section1;} |
| 184 |
/* List Definitions */ |
/* List Definitions */ |
| 185 |
@list l0 |
@list l0 |
|
{mso-list-id:306130254; |
|
|
mso-list-template-ids:-1505884488;} |
|
|
@list l0:level1 |
|
|
{mso-level-number-format:bullet; |
|
|
mso-level-text:\F0B7; |
|
|
mso-level-tab-stop:.5in; |
|
|
mso-level-number-position:left; |
|
|
text-indent:-.25in; |
|
|
mso-ansi-font-size:10.0pt; |
|
|
font-family:Symbol;} |
|
|
@list l1 |
|
|
{mso-list-id:322004125; |
|
|
mso-list-template-ids:933166844;} |
|
|
@list l2 |
|
| 186 |
{mso-list-id:347761159; |
{mso-list-id:347761159; |
| 187 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 188 |
mso-list-template-ids:-1680017606 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
mso-list-template-ids:-1680017606 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| 189 |
@list l2:level1 |
@list l0:level1 |
| 190 |
{mso-level-number-format:bullet; |
{mso-level-number-format:bullet; |
| 191 |
mso-level-text:\F0B7; |
mso-level-text:\F0B7; |
| 192 |
mso-level-tab-stop:.5in; |
mso-level-tab-stop:.5in; |
| 193 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 194 |
text-indent:-.25in; |
text-indent:-.25in; |
| 195 |
font-family:Symbol;} |
font-family:Symbol;} |
| 196 |
@list l2:level2 |
@list l0:level2 |
| 197 |
{mso-level-tab-stop:1.0in; |
{mso-level-tab-stop:1.0in; |
| 198 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 199 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 200 |
@list l2:level3 |
@list l0:level3 |
| 201 |
{mso-level-tab-stop:1.5in; |
{mso-level-tab-stop:1.5in; |
| 202 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 203 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 204 |
@list l2:level4 |
@list l0:level4 |
| 205 |
{mso-level-tab-stop:2.0in; |
{mso-level-tab-stop:2.0in; |
| 206 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 207 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 208 |
@list l2:level5 |
@list l0:level5 |
| 209 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 210 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 211 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 212 |
@list l2:level6 |
@list l0:level6 |
| 213 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 214 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 215 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 216 |
@list l2:level7 |
@list l0:level7 |
| 217 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 218 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 219 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 220 |
@list l2:level8 |
@list l0:level8 |
| 221 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 222 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 223 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 224 |
@list l2:level9 |
@list l0:level9 |
| 225 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 226 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 227 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 228 |
@list l3 |
@list l1 |
| 229 |
|
{mso-list-id:364596818; |
| 230 |
|
mso-list-template-ids:-488625314;} |
| 231 |
|
@list l1:level1 |
| 232 |
|
{mso-level-number-format:bullet; |
| 233 |
|
mso-level-text:\F0B7; |
| 234 |
|
mso-level-tab-stop:.5in; |
| 235 |
|
mso-level-number-position:left; |
| 236 |
|
text-indent:-.25in; |
| 237 |
|
mso-ansi-font-size:10.0pt; |
| 238 |
|
font-family:Symbol;} |
| 239 |
|
@list l2 |
| 240 |
{mso-list-id:604456885; |
{mso-list-id:604456885; |
| 241 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 242 |
mso-list-template-ids:1734899956 67698703 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
mso-list-template-ids:1734899956 67698703 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| 243 |
@list l3:level1 |
@list l2:level1 |
| 244 |
{mso-level-tab-stop:.5in; |
{mso-level-tab-stop:.5in; |
| 245 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 246 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 247 |
@list l3:level2 |
@list l2:level2 |
| 248 |
{mso-level-number-format:bullet; |
{mso-level-number-format:bullet; |
| 249 |
mso-level-text:o; |
mso-level-text:o; |
| 250 |
mso-level-tab-stop:1.0in; |
mso-level-tab-stop:1.0in; |
| 251 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 252 |
text-indent:-.25in; |
text-indent:-.25in; |
| 253 |
font-family:"Courier New";} |
font-family:"Courier New";} |
| 254 |
@list l3:level3 |
@list l2:level3 |
| 255 |
{mso-level-number-format:bullet; |
{mso-level-number-format:bullet; |
| 256 |
mso-level-text:\F0A7; |
mso-level-text:\F0A7; |
| 257 |
mso-level-tab-stop:1.5in; |
mso-level-tab-stop:1.5in; |
| 258 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 259 |
text-indent:-.25in; |
text-indent:-.25in; |
| 260 |
font-family:Wingdings;} |
font-family:Wingdings;} |
| 261 |
@list l3:level4 |
@list l2:level4 |
| 262 |
{mso-level-number-format:bullet; |
{mso-level-number-format:bullet; |
| 263 |
mso-level-text:\F0B7; |
mso-level-text:\F0B7; |
| 264 |
mso-level-tab-stop:2.0in; |
mso-level-tab-stop:2.0in; |
| 265 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 266 |
text-indent:-.25in; |
text-indent:-.25in; |
| 267 |
font-family:Symbol;} |
font-family:Symbol;} |
| 268 |
@list l3:level5 |
@list l2:level5 |
| 269 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 270 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 271 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 272 |
@list l3:level6 |
@list l2:level6 |
| 273 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 274 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 275 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 276 |
@list l3:level7 |
@list l2:level7 |
| 277 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 278 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 279 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 280 |
@list l3:level8 |
@list l2:level8 |
| 281 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 282 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 283 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 284 |
@list l3:level9 |
@list l2:level9 |
| 285 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 286 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 287 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 288 |
@list l4 |
@list l3 |
| 289 |
{mso-list-id:798038152; |
{mso-list-id:798038152; |
| 290 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 291 |
mso-list-template-ids:-2087438622 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
mso-list-template-ids:-2087438622 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
| 292 |
@list l4:level1 |
@list l3:level1 |
| 293 |
{mso-level-tab-stop:39.0pt; |
{mso-level-tab-stop:39.0pt; |
| 294 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 295 |
margin-left:39.0pt; |
margin-left:39.0pt; |
| 296 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 297 |
@list l4:level2 |
@list l3:level2 |
| 298 |
{mso-level-tab-stop:1.0in; |
{mso-level-tab-stop:1.0in; |
| 299 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 300 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 301 |
@list l4:level3 |
@list l3:level3 |
| 302 |
{mso-level-tab-stop:1.5in; |
{mso-level-tab-stop:1.5in; |
| 303 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 304 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 305 |
@list l4:level4 |
@list l3:level4 |
| 306 |
{mso-level-tab-stop:2.0in; |
{mso-level-tab-stop:2.0in; |
| 307 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 308 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 309 |
@list l4:level5 |
@list l3:level5 |
| 310 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 311 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 312 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 313 |
@list l4:level6 |
@list l3:level6 |
| 314 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 315 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 316 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 317 |
@list l4:level7 |
@list l3:level7 |
| 318 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 319 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 320 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 321 |
@list l4:level8 |
@list l3:level8 |
| 322 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 323 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 324 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 325 |
@list l4:level9 |
@list l3:level9 |
| 326 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 327 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 328 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 329 |
@list l5 |
@list l4 |
| 330 |
{mso-list-id:1085106306; |
{mso-list-id:1085106306; |
| 331 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 332 |
mso-list-template-ids:1015583604 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
mso-list-template-ids:1015583604 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
| 333 |
@list l5:level1 |
@list l4:level1 |
| 334 |
{mso-level-tab-stop:.5in; |
{mso-level-tab-stop:.5in; |
| 335 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 336 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 337 |
@list l5:level2 |
@list l4:level2 |
| 338 |
{mso-level-tab-stop:1.0in; |
{mso-level-tab-stop:1.0in; |
| 339 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 340 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 341 |
@list l5:level3 |
@list l4:level3 |
| 342 |
{mso-level-tab-stop:1.5in; |
{mso-level-tab-stop:1.5in; |
| 343 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 344 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 345 |
@list l5:level4 |
@list l4:level4 |
| 346 |
{mso-level-tab-stop:2.0in; |
{mso-level-tab-stop:2.0in; |
| 347 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 348 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 349 |
@list l5:level5 |
@list l4:level5 |
| 350 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 351 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 352 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 353 |
@list l5:level6 |
@list l4:level6 |
| 354 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 355 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 356 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 357 |
@list l5:level7 |
@list l4:level7 |
| 358 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 359 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 360 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 361 |
@list l5:level8 |
@list l4:level8 |
| 362 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 363 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 364 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 365 |
@list l5:level9 |
@list l4:level9 |
| 366 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 367 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 368 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 369 |
|
@list l5 |
| 370 |
|
{mso-list-id:1167818358; |
| 371 |
|
mso-list-template-ids:-1827253532;} |
| 372 |
@list l6 |
@list l6 |
| 373 |
|
{mso-list-id:1292246357; |
| 374 |
|
mso-list-template-ids:24384264;} |
| 375 |
|
@list l7 |
| 376 |
{mso-list-id:1478297229; |
{mso-list-id:1478297229; |
| 377 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 378 |
mso-list-template-ids:-438127954 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
mso-list-template-ids:-438127954 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} |
| 379 |
@list l6:level1 |
@list l7:level1 |
| 380 |
{mso-level-number-format:bullet; |
{mso-level-number-format:bullet; |
| 381 |
mso-level-text:\F0B7; |
mso-level-text:\F0B7; |
| 382 |
mso-level-tab-stop:.5in; |
mso-level-tab-stop:.5in; |
| 383 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 384 |
text-indent:-.25in; |
text-indent:-.25in; |
| 385 |
font-family:Symbol;} |
font-family:Symbol;} |
| 386 |
@list l6:level2 |
@list l7:level2 |
| 387 |
{mso-level-tab-stop:1.0in; |
{mso-level-tab-stop:1.0in; |
| 388 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 389 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 390 |
@list l6:level3 |
@list l7:level3 |
| 391 |
{mso-level-tab-stop:1.5in; |
{mso-level-tab-stop:1.5in; |
| 392 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 393 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 394 |
@list l6:level4 |
@list l7:level4 |
| 395 |
{mso-level-tab-stop:2.0in; |
{mso-level-tab-stop:2.0in; |
| 396 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 397 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 398 |
@list l6:level5 |
@list l7:level5 |
| 399 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 400 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 401 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 402 |
@list l6:level6 |
@list l7:level6 |
| 403 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 404 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 405 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 406 |
@list l6:level7 |
@list l7:level7 |
| 407 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 408 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 409 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 410 |
@list l6:level8 |
@list l7:level8 |
| 411 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 412 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 413 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 414 |
@list l6:level9 |
@list l7:level9 |
| 415 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 416 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 417 |
text-indent:-.25in;} |
text-indent:-.25in;} |
|
@list l7 |
|
|
{mso-list-id:1644238654; |
|
|
mso-list-template-ids:-1891084734;} |
|
| 418 |
@list l8 |
@list l8 |
| 419 |
|
{mso-list-id:1631007561; |
| 420 |
|
mso-list-template-ids:1365561448;} |
| 421 |
|
@list l8:level1 |
| 422 |
|
{mso-level-number-format:bullet; |
| 423 |
|
mso-level-text:\F0B7; |
| 424 |
|
mso-level-tab-stop:.5in; |
| 425 |
|
mso-level-number-position:left; |
| 426 |
|
text-indent:-.25in; |
| 427 |
|
mso-ansi-font-size:10.0pt; |
| 428 |
|
font-family:Symbol;} |
| 429 |
|
@list l9 |
| 430 |
{mso-list-id:1723091313; |
{mso-list-id:1723091313; |
| 431 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 432 |
mso-list-template-ids:-1797201838 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
mso-list-template-ids:-1797201838 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
| 433 |
@list l8:level1 |
@list l9:level1 |
| 434 |
{mso-level-tab-stop:.5in; |
{mso-level-tab-stop:.5in; |
| 435 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 436 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 437 |
@list l8:level2 |
@list l9:level2 |
| 438 |
{mso-level-tab-stop:1.0in; |
{mso-level-tab-stop:1.0in; |
| 439 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 440 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 441 |
@list l8:level3 |
@list l9:level3 |
| 442 |
{mso-level-tab-stop:1.5in; |
{mso-level-tab-stop:1.5in; |
| 443 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 444 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 445 |
@list l8:level4 |
@list l9:level4 |
| 446 |
{mso-level-tab-stop:2.0in; |
{mso-level-tab-stop:2.0in; |
| 447 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 448 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 449 |
@list l8:level5 |
@list l9:level5 |
| 450 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 451 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 452 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 453 |
@list l8:level6 |
@list l9:level6 |
| 454 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 455 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 456 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 457 |
@list l8:level7 |
@list l9:level7 |
| 458 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 459 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 460 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 461 |
@list l8:level8 |
@list l9:level8 |
| 462 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 463 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 464 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 465 |
@list l8:level9 |
@list l9:level9 |
| 466 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 467 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 468 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 469 |
@list l9 |
@list l10 |
| 470 |
{mso-list-id:1731031428; |
{mso-list-id:1731031428; |
| 471 |
mso-list-type:hybrid; |
mso-list-type:hybrid; |
| 472 |
mso-list-template-ids:1886447558 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
mso-list-template-ids:1886447558 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} |
| 473 |
@list l9:level1 |
@list l10:level1 |
| 474 |
{mso-level-tab-stop:39.0pt; |
{mso-level-tab-stop:39.0pt; |
| 475 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 476 |
margin-left:39.0pt; |
margin-left:39.0pt; |
| 477 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 478 |
@list l9:level2 |
@list l10:level2 |
| 479 |
{mso-level-tab-stop:1.0in; |
{mso-level-tab-stop:1.0in; |
| 480 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 481 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 482 |
@list l9:level3 |
@list l10:level3 |
| 483 |
{mso-level-tab-stop:1.5in; |
{mso-level-tab-stop:1.5in; |
| 484 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 485 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 486 |
@list l9:level4 |
@list l10:level4 |
| 487 |
{mso-level-tab-stop:2.0in; |
{mso-level-tab-stop:2.0in; |
| 488 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 489 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 490 |
@list l9:level5 |
@list l10:level5 |
| 491 |
{mso-level-tab-stop:2.5in; |
{mso-level-tab-stop:2.5in; |
| 492 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 493 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 494 |
@list l9:level6 |
@list l10:level6 |
| 495 |
{mso-level-tab-stop:3.0in; |
{mso-level-tab-stop:3.0in; |
| 496 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 497 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 498 |
@list l9:level7 |
@list l10:level7 |
| 499 |
{mso-level-tab-stop:3.5in; |
{mso-level-tab-stop:3.5in; |
| 500 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 501 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 502 |
@list l9:level8 |
@list l10:level8 |
| 503 |
{mso-level-tab-stop:4.0in; |
{mso-level-tab-stop:4.0in; |
| 504 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 505 |
text-indent:-.25in;} |
text-indent:-.25in;} |
| 506 |
@list l9:level9 |
@list l10:level9 |
| 507 |
{mso-level-tab-stop:4.5in; |
{mso-level-tab-stop:4.5in; |
| 508 |
mso-level-number-position:left; |
mso-level-number-position:left; |
| 509 |
text-indent:-.25in;} |
text-indent:-.25in;} |
|
@list l10 |
|
|
{mso-list-id:1830093817; |
|
|
mso-list-template-ids:672403872;} |
|
| 510 |
@list l11 |
@list l11 |
| 511 |
{mso-list-id:1943487606; |
{mso-list-id:1917208525; |
| 512 |
mso-list-template-ids:1313531012;} |
mso-list-template-ids:2040176132;} |
|
@list l11:level1 |
|
|
{mso-level-number-format:bullet; |
|
|
mso-level-text:\F0B7; |
|
|
mso-level-tab-stop:.5in; |
|
|
mso-level-number-position:left; |
|
|
text-indent:-.25in; |
|
|
mso-ansi-font-size:10.0pt; |
|
|
font-family:Symbol;} |
|
| 513 |
ol |
ol |
| 514 |
{margin-bottom:0in;} |
{margin-bottom:0in;} |
| 515 |
ul |
ul |
| 542 |
<h1>Generalized Undo Support in Eclipse</h1> |
<h1>Generalized Undo Support in Eclipse</h1> |
| 543 |
|
|
| 544 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Last |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Last |
| 545 |
updated:<span style='mso-spacerun:yes'> </span></span><st1:date Month="12" |
updated:<span style='mso-spacerun:yes'> </span></span><st1:date Year="2004" |
| 546 |
Day="17" Year="2004"><span style='font-size:10.0pt;font-family:Arial'>Dec. 17, |
Day="17" Month="12"><span style='font-size:10.0pt;font-family:Arial'>Dec. 17, |
| 547 |
2004</span></st1:date><span style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
2004</span></st1:date><span style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
| 548 |
|
|
| 549 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Status:<span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Status:<span |
| 550 |
style='mso-spacerun:yes'> </span>Proposal <o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span>Proposal <o:p></o:p></span></p> |
| 551 |
|
|
| 552 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>(see also </span><a |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>(<span |
| 553 |
|
class=GramE>see</span> also </span><a |
| 554 |
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37716">37716</a>)<span |
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37716">37716</a>)<span |
| 555 |
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
| 556 |
|
|
| 557 |
<h2>Problem Description</h2> |
<h2>Problem Description</h2> |
| 558 |
|
|
| 559 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>In R3.0.1 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>In R3.0.1 of |
| 560 |
of the Eclipse SDK, there is no generalized support for undoing user |
the Eclipse SDK, there is no generalized support for undoing user actions.<span |
| 561 |
actions.<span style='mso-spacerun:yes'> </span>Each plug-in is left to |
style='mso-spacerun:yes'> </span>Each plug-in is left to implement its own |
| 562 |
implement its own strategy for undo, if at all.<span style='mso-spacerun:yes'> |
strategy for undo, if at all.<span style='mso-spacerun:yes'> </span>This |
| 563 |
</span>This approach can cause problems for both Eclipse users and plug-in |
approach can cause problems for both Eclipse users and plug-in developers:<o:p></o:p></span></p> |
|
developers:<o:p></o:p></span></p> |
|
| 564 |
|
|
| 565 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><span |
| 566 |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 567 |
|
|
| 568 |
<ul style='margin-top:0in' type=disc> |
<ul style='margin-top:0in' type=disc> |
| 569 |
<li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list .5in'><span |
| 570 |
style='font-size:10.0pt;font-family:Arial'>Undo and redo actions appear in |
style='font-size:10.0pt;font-family:Arial'>Undo and redo actions appear in |
| 571 |
different menus, causing user confusion and UI clutter<o:p></o:p></span></li> |
different menus, causing user confusion and UI clutter<o:p></o:p></span></li> |
| 572 |
<li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list .5in'><span |
| 573 |
style='font-size:10.0pt;font-family:Arial'>Undo and redo implementations |
style='font-size:10.0pt;font-family:Arial'>Undo and redo implementations |
| 574 |
may have different semantics.<o:p></o:p></span></li> |
may have different semantics.<o:p></o:p></span></li> |
| 575 |
<li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l0 level1 lfo3;tab-stops:list .5in'><span |
| 576 |
style='font-size:10.0pt;font-family:Arial'>Plug-ins that depend on other |
style='font-size:10.0pt;font-family:Arial'>Plug-ins that depend on other |
| 577 |
plug-ins which implement their own undo strategy are forced to choose |
plug-ins which implement their own undo strategy are forced to choose |
| 578 |
between different implementations and possibly write integration code to |
between different implementations and possibly write integration code to |
| 597 |
|
|
| 598 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The |
| 599 |
proposed framework defines an interface for describing work, called an |
proposed framework defines an interface for describing work, called an |
| 600 |
“operation” (IOperation), that can be executed, undone, and redone.<span |
“operation” (<span class=SpellE>IOperation</span>), that can be executed, |
| 601 |
style='mso-spacerun:yes'> </span>Operations are created, executed, and added |
undone, and redone.<span style='mso-spacerun:yes'> </span>Operations are |
| 602 |
to an operations history (IOperationHistory).<span style='mso-spacerun:yes'> |
created, executed, and added to an operations history (<span class=SpellE>IOperationHistory</span>).<span |
| 603 |
</span>Operations which are comprised of distinct steps are represented as |
style='mso-spacerun:yes'> </span>Operations which are comprised of distinct |
| 604 |
compound operations.<span style='mso-spacerun:yes'> </span>Compound operations |
steps are represented as compound operations.<span style='mso-spacerun:yes'> |
| 605 |
must be executed, undone, or redone as a unit, and can never be partially |
</span>Compound operations must be executed, undone, or redone as a unit, and |
| 606 |
undone.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
can never be partially undone.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 607 |
|
|
| 608 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 609 |
|
|
| 610 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Operations |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Operations |
| 611 |
can be assigned one or more contexts (IOperationContext) to which they |
can be assigned one or more contexts (<span class=SpellE>IOperationContext</span>) |
| 612 |
apply.<span style='mso-spacerun:yes'> </span>An operation<span |
to which they apply.<span style='mso-spacerun:yes'> </span>An operation<span |
| 613 |
style='mso-spacerun:yes'> </span>context describes the context in which the |
style='mso-spacerun:yes'> </span>context describes the context in which the |
| 614 |
user is working when an operation is performed, undone, or redone.<span |
user is working when an operation is performed, undone, or redone.<span |
| 615 |
style='mso-spacerun:yes'> </span>Contexts can be used by workbench parts to |
style='mso-spacerun:yes'> </span>Contexts can be used by workbench parts to |
| 636 |
|
|
| 637 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 638 |
|
|
| 639 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l9 level1 lfo5; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l10 level1 lfo5; |
| 640 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 641 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.<span |
| 642 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 646 |
the editor can assign its context to the operation before adding it to the |
the editor can assign its context to the operation before adding it to the |
| 647 |
history.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
history.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 648 |
|
|
| 649 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l9 level1 lfo5; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l10 level1 lfo5; |
| 650 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 651 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>2.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>2.<span |
| 652 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 684 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 685 |
|
|
| 686 |
<ol style='margin-top:0in' start=1 type=1> |
<ol style='margin-top:0in' start=1 type=1> |
| 687 |
<li class=MsoNormal style='mso-list:l8 level1 lfo8;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'><span |
| 688 |
style='font-size:10.0pt;font-family:Arial'>Existing command/undo |
style='font-size:10.0pt;font-family:Arial'>Existing command/undo frameworks |
| 689 |
frameworks can implement the IOperation interface on their existing |
can implement the <span class=SpellE>IOperation</span> interface on their |
| 690 |
command objects, while still maintaining their individual strategies for |
existing command objects, while still maintaining their individual |
| 691 |
managing undo stacks or histories.<span style='mso-spacerun:yes'> |
strategies for managing undo stacks or histories.<span |
| 692 |
</span>If there is a substantial investment in an existing model-based |
style='mso-spacerun:yes'> </span>If there is a substantial investment in |
| 693 |
operation or command framework, wrappers could be used to map IOperation |
an existing model-based operation or command framework, wrappers could be |
| 694 |
protocol to the existing protocol.<span style='mso-spacerun:yes'> |
used to map <span class=SpellE>IOperation</span> protocol to the existing |
| 695 |
</span>The commands/operations need not be assigned a context or added to |
protocol.<span style='mso-spacerun:yes'> </span>The commands/operations |
| 696 |
a common operation history.<span style='mso-spacerun:yes'> </span>This |
need not be assigned a context or added to a common operation |
| 697 |
level of integration allows command hierarchies built in different |
history.<span style='mso-spacerun:yes'> </span>This level of integration |
| 698 |
frameworks to be treated the same by plug-ins that depend upon these different |
allows command hierarchies built in different frameworks to be treated the |
| 699 |
frameworks.<span style='mso-spacerun:yes'> </span>Clients of existing |
same by plug-ins that depend upon these different frameworks.<span |
| 700 |
command frameworks may then use the workbench operation history, assign |
style='mso-spacerun:yes'> </span>Clients of existing command frameworks |
| 701 |
contexts to operations as needed, and even add operations to the history, |
may then use the workbench operation history, assign contexts to |
| 702 |
while still using commands built on earlier frameworks.<o:p></o:p></span></li> |
operations as needed, and even add operations to the history, while still |
| 703 |
<li class=MsoNormal style='mso-list:l8 level1 lfo8;tab-stops:list .5in'><span |
using commands built on earlier frameworks.<o:p></o:p></span></li> |
| 704 |
|
<li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'><span |
| 705 |
style='font-size:10.0pt;font-family:Arial'>Existing command/undo |
style='font-size:10.0pt;font-family:Arial'>Existing command/undo |
| 706 |
frameworks may use the listener interfaces provided by the operations |
frameworks may use the listener interfaces provided by the operations |
| 707 |
history to listen for operations that are of interest.<span |
history to listen for operations that are of interest.<span |
| 711 |
integration allows views and editors to appear more tightly integrated |
integration allows views and editors to appear more tightly integrated |
| 712 |
with the operations framework, since workbench operations of interest can |
with the operations framework, since workbench operations of interest can |
| 713 |
be undone or redone from private undo implementations.<o:p></o:p></span></li> |
be undone or redone from private undo implementations.<o:p></o:p></span></li> |
| 714 |
<li class=MsoNormal style='mso-list:l8 level1 lfo8;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l9 level1 lfo8;tab-stops:list .5in'><span |
| 715 |
style='font-size:10.0pt;font-family:Arial'>Full integration is achieved by |
style='font-size:10.0pt;font-family:Arial'>Full integration is achieved by |
| 716 |
using the workbench operation history to record the undo and redo history |
using the workbench operation history to record the undo and redo history |
| 717 |
as operations occur.<span style='mso-spacerun:yes'> </span>Once all |
as operations occur.<span style='mso-spacerun:yes'> </span>Once all |
| 723 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 724 |
|
|
| 725 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Framework |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Framework |
| 726 |
interfaces will be defined in the org.eclipse.core.operations package.<span |
interfaces will be defined in the <span class=SpellE>org.eclipse.core.operations</span> |
| 727 |
style='mso-spacerun:yes'> </span>This package will be contained in a plug-in |
package.<span style='mso-spacerun:yes'> </span>This package will be contained |
| 728 |
that has no dependencies on the Eclipse runtime, so that raw JFace users may |
in a plug-in that has no dependencies on the Eclipse runtime, so that raw <span |
| 729 |
make use of it.<span style='mso-spacerun:yes'> </span>(The exact plug-in |
class=SpellE>JFace</span> users may make use of it.<span |
| 730 |
containing the framework package is not defined at this time, as these packages |
style='mso-spacerun:yes'> </span>(The exact plug-in containing the framework |
| 731 |
may be combined with other packages that provide similar headless |
package is not defined at this time, as these packages may be combined with |
| 732 |
infrastructure.)<o:p></o:p></span></p> |
other packages that provide similar headless infrastructure.)<o:p></o:p></span></p> |
| 733 |
|
|
| 734 |
<h2>Framework interfaces</h2> |
<h2>Framework interfaces</h2> |
| 735 |
|
|
| 736 |
<h3>IOperation</h3> |
<h3><span class=SpellE>IOperation</span></h3> |
| 737 |
|
|
| 738 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>IOperation |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 739 |
|
Arial'>IOperation</span></span><span style='font-size:10.0pt;font-family:Arial'> |
| 740 |
defines an operation that can be executed, undone, and redone.<span |
defines an operation that can be executed, undone, and redone.<span |
| 741 |
style='mso-spacerun:yes'> </span>Operations typically have fully defined parameters. |
style='mso-spacerun:yes'> </span>Operations typically have fully defined |
| 742 |
That is, they are usually created after the user has been queried for any input |
parameters. That is, they are usually created after the user has been queried |
| 743 |
needed to define the operation.<o:p></o:p></span></p> |
for any input needed to define the operation.<o:p></o:p></span></p> |
| 744 |
|
|
| 745 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 746 |
|
|
| 752 |
|
|
| 753 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 754 |
|
|
| 755 |
<pre>public void addContext(IOperationContext context)</pre> |
<pre>public void <span class=SpellE>addContext</span>(<span class=SpellE>IOperationContext</span> context)</pre> |
| 756 |
|
|
| 757 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
| 758 |
the specified context to the operation. If the context is already present, do |
the specified context to the operation. If the context is already present, do |
| 764 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>context</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>context</span></code><span |
| 765 |
style='font-size:10.0pt'> - - the context to be added<o:p></o:p></span></p> |
style='font-size:10.0pt'> - - the context to be added<o:p></o:p></span></p> |
| 766 |
|
|
| 767 |
<pre><a name="removeContext(org.eclipse.core.operation"></a>public void removeContext(IOperationContext context)</pre> |
<pre><a name="removeContext(org.eclipse.core.operation"></a>public void <span |
| 768 |
|
class=SpellE>removeContext</span>(<span class=SpellE>IOperationContext</span> context)</pre> |
| 769 |
|
|
| 770 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
| 771 |
the specified context from the operation. This method has no effect if the |
the specified context from the operation. This method has no effect if the |
| 777 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>context</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>context</span></code><span |
| 778 |
style='font-size:10.0pt'> - - the context to be removed<o:p></o:p></span></p> |
style='font-size:10.0pt'> - - the context to be removed<o:p></o:p></span></p> |
| 779 |
|
|
| 780 |
<pre><a name="hasContext(org.eclipse.core.operations.I"></a>public boolean <b>hasContext</b>(IOperationContext context)</pre> |
<pre><a name="hasContext(org.eclipse.core.operations.I"></a>public <span |
| 781 |
|
class=SpellE>boolean</span> <span class=SpellE><b>hasContext</b></span>(<span |
| 782 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 783 |
|
|
| 784 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 785 |
whether the operation has the specified context. <o:p></o:p></span></p> |
whether the operation has the specified context. <o:p></o:p></span></p> |
| 798 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 799 |
it is not.<o:p></o:p></span></p> |
it is not.<o:p></o:p></span></p> |
| 800 |
|
|
| 801 |
<pre><a name="getContexts()"></a>public IOperationContext [] <b>getContexts</b>()</pre> |
<pre><a name="getContexts()"></a>public <span class=SpellE>IOperationContext</span> [] <span |
| 802 |
|
class=SpellE><b>getContexts</b></span>()</pre> |
| 803 |
|
|
| 804 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 805 |
the array of contexts that have been assigned to the operation. <o:p></o:p></span></p> |
the array of contexts that have been assigned to the operation. <o:p></o:p></span></p> |
| 807 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 808 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 809 |
|
|
| 810 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the array |
| 811 |
array of contexts<o:p></o:p></span></p> |
of contexts<o:p></o:p></span></p> |
| 812 |
|
|
| 813 |
<pre><a name="canExecute()"></a>public boolean <b>canExecute</b>()</pre> |
<pre><a name="canExecute()"></a>public <span class=SpellE>boolean</span> <span |
| 814 |
|
class=SpellE><b>canExecute</b></span>()</pre> |
| 815 |
|
|
| 816 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 817 |
whether the operation can be executed in its current state. <o:p></o:p></span></p> |
whether the operation can be executed in its current state. <o:p></o:p></span></p> |
| 824 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
| 825 |
otherwise.<o:p></o:p></span></p> |
otherwise.<o:p></o:p></span></p> |
| 826 |
|
|
| 827 |
<pre><a name="canRedo()"></a>public boolean <b>canRedo</b>()</pre> |
<pre><a name="canRedo()"></a>public <span class=SpellE>boolean</span> <span |
| 828 |
|
class=SpellE><b>canRedo</b></span>()</pre> |
| 829 |
|
|
| 830 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 831 |
whether the operation can be redone in its current state. <o:p></o:p></span></p> |
whether the operation can be redone in its current state. <o:p></o:p></span></p> |
| 838 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
| 839 |
otherwise.<o:p></o:p></span></p> |
otherwise.<o:p></o:p></span></p> |
| 840 |
|
|
| 841 |
<pre><a name="canUndo()"></a>public boolean <b>canUndo</b>()</pre> |
<pre><a name="canUndo()"></a>public <span class=SpellE>boolean</span> <span |
| 842 |
|
class=SpellE><b>canUndo</b></span>()</pre> |
| 843 |
|
|
| 844 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 845 |
whether the operation can be undone in its current state. <o:p></o:p></span></p> |
whether the operation can be undone in its current state. <o:p></o:p></span></p> |
| 852 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
| 853 |
otherwise.<o:p></o:p></span></p> |
otherwise.<o:p></o:p></span></p> |
| 854 |
|
|
| 855 |
<pre><a name="execute(org.eclipse.core.runtime.IProgre"></a>public org.eclipse.core.runtime.IStatus <b>execute</b>(org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre><a name="execute(org.eclipse.core.runtime.IProgre"></a>public <span |
| 856 |
|
class=SpellE>org.eclipse.core.runtime.IStatus</span> <b>execute</b>(<span |
| 857 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 858 |
|
|
| 859 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Execute |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Execute |
| 860 |
the operation. This method should only be called the first time that an |
the operation. This method should only be called the first time that an |
| 869 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 870 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 871 |
|
|
| 872 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 873 |
IStatus of the execution. The status severity should be set to </span><code><span |
class=SpellE>IStatus</span> of the execution. The status severity should be set |
| 874 |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'> if the |
to </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 875 |
operation was successful, and </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
style='font-size:10.0pt'> if the operation was successful, and </span><code><span |
| 876 |
style='font-size:10.0pt'> if it was not. Any other status is assumed to |
style='font-size:10.0pt'>ERROR</span></code><span style='font-size:10.0pt'> if |
| 877 |
represent an incompletion of the execution.<o:p></o:p></span></p> |
it was not. Any other status is assumed to represent an incompletion of the |
| 878 |
|
execution.<o:p></o:p></span></p> |
| 879 |
<pre><a name="redo(org.eclipse.core.runtime.IProgressM"></a>public org.eclipse.core.runtime.IStatus <b>redo</b>(org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
|
| 880 |
|
<pre><a name="redo(org.eclipse.core.runtime.IProgressM"></a>public <span |
| 881 |
|
class=SpellE>org.eclipse.core.runtime.IStatus</span> <b>redo</b>(<span |
| 882 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 883 |
|
|
| 884 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Redo |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Redo |
| 885 |
the operation. This method should only be called after an operation has been |
the operation. This method should only be called after an operation has been |
| 894 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 895 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 896 |
|
|
| 897 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 898 |
IStatus of the redo. The status severity should be set to </span><code><span |
class=SpellE>IStatus</span> of the redo. The status severity should be set to </span><code><span |
| 899 |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'> if the |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'> if the |
| 900 |
redo was successful, and </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
redo was successful, and </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
| 901 |
style='font-size:10.0pt'> if it was not. Any other status is assumed to |
style='font-size:10.0pt'> if it was not. Any other status is assumed to |
| 902 |
represent an incompletion of the redo.<o:p></o:p></span></p> |
represent an incompletion of the redo.<o:p></o:p></span></p> |
| 903 |
|
|
| 904 |
<pre>public org.eclipse.core.runtime.IStatus <b>undo</b>(org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <b>undo</b>(<span |
| 905 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 906 |
|
|
| 907 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Undo |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Undo |
| 908 |
the operation. This method should only be called after an operation has been |
the operation. This method should only be called after an operation has been |
| 917 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 918 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 919 |
|
|
| 920 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 921 |
IStatus of the undo. The status severity should be set to </span><code><span |
class=SpellE>IStatus</span> of the undo. The status severity should be set to </span><code><span |
| 922 |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'> if the |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'> if the |
| 923 |
redo was successful, and </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
redo was successful, and </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
| 924 |
style='font-size:10.0pt'> if it was not. Any other status is assumed to |
style='font-size:10.0pt'> if it was not. Any other status is assumed to |
| 928 |
|
|
| 929 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Dispose |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Dispose |
| 930 |
of the operation. This method is used when the operation is no longer kept in |
of the operation. This method is used when the operation is no longer kept in |
| 931 |
the history. Implementers of this method typically unregister any listeners. <o:p></o:p></span></p> |
the history. Implementers of this method typically <span class=SpellE>unregister</span> |
| 932 |
|
any listeners. <o:p></o:p></span></p> |
| 933 |
|
|
| 934 |
<pre>public java.lang.String <b>getLabel</b>()</pre> |
<pre>public <span class=SpellE>java.lang.String</span> <span class=SpellE><b>getLabel</b></span>()</pre> |
| 935 |
|
|
| 936 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 937 |
the label that should be used to show the name of the operation to the user. |
the label that should be used to show the name of the operation to the user. |
| 944 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 945 |
label<o:p></o:p></span></p> |
label<o:p></o:p></span></p> |
| 946 |
|
|
| 947 |
<pre>public java.lang.String <b>getDescription</b>()</pre> |
<pre>public <span class=SpellE>java.lang.String</span> <span class=SpellE><b>getDescription</b></span>()</pre> |
| 948 |
|
|
| 949 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 950 |
the description that should be used to further describe this operation to the |
the description that should be used to further describe this operation to the |
| 957 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 958 |
description<o:p></o:p></span></p> |
description<o:p></o:p></span></p> |
| 959 |
|
|
| 960 |
<h3>IOperationHistory</h3> |
<h3><span class=SpellE>IOperationHistory</span></h3> |
| 961 |
|
|
| 962 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>IOperationHistory |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 963 |
tracks a history of operations that can be undone or redone. Operations are |
Arial'>IOperationHistory</span></span><span style='font-size:10.0pt;font-family: |
| 964 |
added to the history once they have been initially executed. Clients may choose |
Arial'> tracks a history of operations that can be undone or redone. Operations |
| 965 |
whether to have the operations history perform the initial execution or simply |
are added to the history once they have been initially executed. Clients may |
| 966 |
add the operation to the history. Once operations are added to the history, the |
choose whether to have the operations history perform the initial execution or |
| 967 |
methods canRedo() and canUndo() are used to determine whether there is an |
simply add the operation to the history. Once operations are added to the |
| 968 |
|
history, the methods <span class=SpellE>canRedo</span>() and <span |
| 969 |
|
class=SpellE>canUndo</span>() are used to determine whether there is an |
| 970 |
operation available for undo and redo in a given operation context.<span |
operation available for undo and redo in a given operation context.<span |
| 971 |
style='mso-spacerun:yes'> </span>The context-based protocol implies that there |
style='mso-spacerun:yes'> </span>The context-based protocol implies that there |
| 972 |
is only one operation that can be undone or redone at a given time in a given |
is only one operation that can be undone or redone at a given time in a given |
| 983 |
protocol allows direct undo and redo of a specified operation, regardless of |
protocol allows direct undo and redo of a specified operation, regardless of |
| 984 |
its position in the history. When a more flexible undo model is supported, |
its position in the history. When a more flexible undo model is supported, |
| 985 |
these methods can be implemented to undo and redo directly specified |
these methods can be implemented to undo and redo directly specified |
| 986 |
operations. If an implementer of IOperationHistory does not allow direct undo |
operations. If an implementer of <span class=SpellE>IOperationHistory</span> |
| 987 |
and redo, these methods can return a status indicating that it is not allowed.<o:p></o:p></span></p> |
does not allow direct undo and redo, these methods can return a status |
| 988 |
|
indicating that it is not allowed.<o:p></o:p></span></p> |
| 989 |
|
|
| 990 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 991 |
|
|
| 992 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Listeners |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Listeners (<span |
| 993 |
(IOperationHistoryListener) can listen for notifications about changes in the |
class=SpellE>IOperationHistoryListener</span>) can listen for notifications |
| 994 |
history (operations added or removed), and for notification before and after |
about changes in the history (operations added or removed), and for |
| 995 |
any operation is executed, undone or redone. Notification of operation |
notification before and after any operation is executed, undone or redone. |
| 996 |
execution only occurs when clients direct the history to execute the operation. |
Notification of operation execution only occurs when clients direct the history |
| 997 |
If the operation is added after it is executed, there can be no notification of |
to execute the operation. If the operation is added after it is executed, there |
| 998 |
its execution.<o:p></o:p></span></p> |
can be no notification of its execution.<o:p></o:p></span></p> |
| 999 |
|
|
| 1000 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1001 |
|
|
| 1002 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>IOperationApprover |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1003 |
defines an interface for approving an undo or redo before it occurs. This is |
Arial'>IOperationApprover</span></span><span style='font-size:10.0pt; |
| 1004 |
useful for injecting policy-decisions into the model - whether direct undo and |
font-family:Arial'> defines an interface for approving an undo or redo before |
| 1005 |
redo are supported, or warning the user about certain kinds of operations. It |
it occurs. This is useful for injecting policy-decisions into the model - |
| 1006 |
can also be used when objects have state related to the operation and need to |
whether direct undo and redo are supported, or warning the user about certain |
| 1007 |
determine whether an undo or redo will cause any conflicts with their local |
kinds of operations. It can also be used when objects have state related to the |
| 1008 |
state.<o:p></o:p></span></p> |
operation and need to determine whether an undo or redo will cause any |
| 1009 |
|
conflicts with their local state.<o:p></o:p></span></p> |
| 1010 |
|
|
| 1011 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1012 |
|
|
| 1013 |
<pre>public void <b>add</b>(IOperation operation)</pre> |
<pre>public void <b>add</b>(<span class=SpellE>IOperation</span> operation)</pre> |
| 1014 |
|
|
| 1015 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
| 1016 |
the specified operation to the history without executing it. The operation |
the specified operation to the history without executing it. The operation should |
| 1017 |
should have already been executed by the time it is added to the history. |
have already been executed by the time it is added to the history. Listeners |
| 1018 |
Listeners will be notified that the operation was added to the history. <o:p></o:p></span></p> |
will be notified that the operation was added to the history. <o:p></o:p></span></p> |
| 1019 |
|
|
| 1020 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1021 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1023 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>operation</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>operation</span></code><span |
| 1024 |
style='font-size:10.0pt'> - - the operation to be added to the history<o:p></o:p></span></p> |
style='font-size:10.0pt'> - - the operation to be added to the history<o:p></o:p></span></p> |
| 1025 |
|
|
| 1026 |
<pre>public org.eclipse.core.runtime.IStatus <b>execute</b>(IOperation operation,</pre><pre><span style='mso-spacerun:yes'> </span>org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <b>execute</b>(<span |
| 1027 |
|
class=SpellE>IOperation</span> operation,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1028 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 1029 |
|
|
| 1030 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Execute |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Execute |
| 1031 |
the specified operation and add it to the operations history if successful. This |
the specified operation and add it to the operations history if successful. |
| 1032 |
method is used by clients who wish operation history listeners to receive |
This method is used by clients who wish operation history listeners to receive |
| 1033 |
notifications before and after the execution of the operation. Listeners will |
notifications before and after the execution of the operation. Listeners will |
| 1034 |
be notified before ( </span><code><span style='font-size:10.0pt'>aboutToExecute</span></code><span |
be notified before ( </span><span class=SpellE><code><span style='font-size: |
| 1035 |
style='font-size:10.0pt'>) and after (</span><code><span style='font-size:10.0pt'>done</span></code><span |
10.0pt'>aboutToExecute</span></code></span><span style='font-size:10.0pt'>) and |
| 1036 |
style='font-size:10.0pt'> or </span><code><span style='font-size:10.0pt'>operationNotOK</span></code><span |
after (</span><code><span style='font-size:10.0pt'>done</span></code><span |
| 1037 |
|
style='font-size:10.0pt'> or </span><span class=SpellE><code><span |
| 1038 |
|
style='font-size:10.0pt'>operationNotOK</span></code></span><span |
| 1039 |
style='font-size:10.0pt'>). If the operation successfully executes, an |
style='font-size:10.0pt'>). If the operation successfully executes, an |
| 1040 |
additional notification that the operation has been added to the history (</span><code><span |
additional notification that the operation has been added to the history (</span><span |
| 1041 |
style='font-size:10.0pt'>operationAdded</span></code><span style='font-size: |
class=SpellE><code><span style='font-size:10.0pt'>operationAdded</span></code></span><span |
| 1042 |
10.0pt'>) will be sent. <o:p></o:p></span></p> |
style='font-size:10.0pt'>) will be sent. <o:p></o:p></span></p> |
| 1043 |
|
|
| 1044 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1045 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1051 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1052 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1053 |
|
|
| 1054 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1055 |
IStatus indicating whether the execution succeeded. The severity code in the |
class=SpellE>IStatus</span> indicating whether the execution succeeded. The |
| 1056 |
returned status describes whether the operation succeeded and whether it was |
severity code in the returned status describes whether the operation succeeded |
| 1057 |
added to the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
and whether it was added to the history. </span><code><span style='font-size: |
| 1058 |
style='font-size:10.0pt'> severity indicates that the execute operation was |
10.0pt'>OK</span></code><span style='font-size:10.0pt'> severity indicates that |
| 1059 |
successful and that the operation has been added to the history. Listeners will |
the execute operation was successful and that the operation has been added to |
| 1060 |
receive the </span><code><span style='font-size:10.0pt'>done</span></code><span |
the history. Listeners will receive the </span><code><span style='font-size: |
| 1061 |
style='font-size:10.0pt'> notification. </span><code><span style='font-size: |
10.0pt'>done</span></code><span style='font-size:10.0pt'> notification. </span><code><span |
| 1062 |
10.0pt'>CANCEL</span></code><span style='font-size:10.0pt'> severity indicates |
style='font-size:10.0pt'>CANCEL</span></code><span style='font-size:10.0pt'> |
| 1063 |
that the user cancelled the operation and that the operation was not added to |
severity indicates that the user cancelled the operation and that the operation |
| 1064 |
the history. </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
was not added to the history. </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
| 1065 |
style='font-size:10.0pt'> severity indicates that the operation did not |
style='font-size:10.0pt'> severity indicates that the operation did not |
| 1066 |
successfully execute and that it was not added to the history. Any other |
successfully execute and that it was not added to the history. Any other severity |
| 1067 |
severity code is not specifically interpreted by the history, and the operation |
code is not specifically interpreted by the history, and the operation will not |
| 1068 |
will not be added to the history. For all severities other than </span><code><span |
be added to the history. For all severities other than </span><code><span |
| 1069 |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'>, |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'>, |
| 1070 |
listeners will receive the </span><code><span style='font-size:10.0pt'>operationNotOK</span></code><span |
listeners will receive the </span><span class=SpellE><code><span |
| 1071 |
|
style='font-size:10.0pt'>operationNotOK</span></code></span><span |
| 1072 |
style='font-size:10.0pt'> notification instead of the </span><code><span |
style='font-size:10.0pt'> notification instead of the </span><code><span |
| 1073 |
style='font-size:10.0pt'>done</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>done</span></code><span style='font-size:10.0pt'> |
| 1074 |
notification.<o:p></o:p></span></p> |
notification.<o:p></o:p></span></p> |
| 1075 |
|
|
| 1076 |
<pre>public void <b>remove</b>(IOperation operation)</pre> |
<pre>public void <b>remove</b>(<span class=SpellE>IOperation</span> operation)</pre> |
| 1077 |
|
|
| 1078 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
| 1079 |
the specified operation from the history. Listeners will be notified of the |
the specified operation from the history. Listeners will be notified of the |
| 1086 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>operation</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>operation</span></code><span |
| 1087 |
style='font-size:10.0pt'> - - the operation to be removed from the history<o:p></o:p></span></p> |
style='font-size:10.0pt'> - - the operation to be removed from the history<o:p></o:p></span></p> |
| 1088 |
|
|
| 1089 |
<pre>public org.eclipse.core.runtime.IStatus <b>redo</b>(IOperationContext context,</pre><pre><span style='mso-spacerun:yes'> </span>org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <b>redo</b>(<span |
| 1090 |
|
class=SpellE>IOperationContext</span> context,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1091 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 1092 |
|
|
| 1093 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Redo |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Redo |
| 1094 |
the most recently undone operation in the given context <o:p></o:p></span></p> |
the most recently undone operation in the given context <o:p></o:p></span></p> |
| 1107 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1108 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1109 |
|
|
| 1110 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1111 |
IStatus indicating whether the redo succeeded. The severity code in the |
class=SpellE>IStatus</span> indicating whether the redo succeeded. The severity |
| 1112 |
returned status describes whether the operation succeeded and whether it |
code in the returned status describes whether the operation succeeded and |
| 1113 |
remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
whether it remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1114 |
style='font-size:10.0pt'> severity indicates that the redo operation was |
style='font-size:10.0pt'> severity indicates that the redo operation was |
| 1115 |
successful and that the operation has been placed on the undo history. |
successful and that the operation has been placed on the undo history. Listeners |
| 1116 |
Listeners will receive the </span><code><span style='font-size:10.0pt'>redone</span></code><span |
will receive the </span><code><span style='font-size:10.0pt'>redone</span></code><span |
| 1117 |
style='font-size:10.0pt'> notification. </span><code><span style='font-size: |
style='font-size:10.0pt'> notification. </span><code><span style='font-size: |
| 1118 |
10.0pt'>CANCEL</span></code><span style='font-size:10.0pt'> severity indicates |
10.0pt'>CANCEL</span></code><span style='font-size:10.0pt'> severity indicates |
| 1119 |
that the user cancelled the operation and that the operation remains in the |
that the user cancelled the operation and that the operation remains in the |
| 1124 |
is not specifically interpreted by the history, and is simply passed back to |
is not specifically interpreted by the history, and is simply passed back to |
| 1125 |
the caller. For all severities other than </span><code><span style='font-size: |
the caller. For all severities other than </span><code><span style='font-size: |
| 1126 |
10.0pt'>OK</span></code><span style='font-size:10.0pt'>, listeners will receive |
10.0pt'>OK</span></code><span style='font-size:10.0pt'>, listeners will receive |
| 1127 |
the </span><code><span style='font-size:10.0pt'>operationNotOK</span></code><span |
the </span><span class=SpellE><code><span style='font-size:10.0pt'>operationNotOK</span></code></span><span |
| 1128 |
style='font-size:10.0pt'> notification instead of the </span><code><span |
style='font-size:10.0pt'> notification instead of the </span><code><span |
| 1129 |
style='font-size:10.0pt'>redone</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>redone</span></code><span style='font-size:10.0pt'> |
| 1130 |
notification.<o:p></o:p></span></p> |
notification.<o:p></o:p></span></p> |
| 1131 |
|
|
| 1132 |
<pre>public org.eclipse.core.runtime.IStatus <b>redoOperation</b>(IOperation operation,</pre><pre><span style='mso-spacerun:yes'> </span>org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <span |
| 1133 |
|
class=SpellE><b>redoOperation</b></span>(<span class=SpellE>IOperation</span> operation,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1134 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 1135 |
|
|
| 1136 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Redo |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Redo |
| 1137 |
the specified operation <o:p></o:p></span></p> |
the specified operation <o:p></o:p></span></p> |
| 1149 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1150 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1151 |
|
|
| 1152 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1153 |
IStatus indicating whether the redo succeeded. The severity code in the |
class=SpellE>IStatus</span> indicating whether the redo succeeded. The severity |
| 1154 |
returned status describes whether the operation succeeded and whether it |
code in the returned status describes whether the operation succeeded and |
| 1155 |
remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
whether it remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1156 |
style='font-size:10.0pt'> severity indicates that the redo operation was |
style='font-size:10.0pt'> severity indicates that the redo operation was |
| 1157 |
successful and that the operation has been placed on the undo history. |
successful and that the operation has been placed on the undo history. |
| 1158 |
Listeners will receive the </span><code><span style='font-size:10.0pt'>redone</span></code><span |
Listeners will receive the </span><code><span style='font-size:10.0pt'>redone</span></code><span |
| 1166 |
severity code is not interpreted by the history, and is simply passed back to |
severity code is not interpreted by the history, and is simply passed back to |
| 1167 |
the caller. For all severities other than </span><code><span style='font-size: |
the caller. For all severities other than </span><code><span style='font-size: |
| 1168 |
10.0pt'>OK</span></code><span style='font-size:10.0pt'>, listeners will receive |
10.0pt'>OK</span></code><span style='font-size:10.0pt'>, listeners will receive |
| 1169 |
the </span><code><span style='font-size:10.0pt'>operationNotOK</span></code><span |
the </span><span class=SpellE><code><span style='font-size:10.0pt'>operationNotOK</span></code></span><span |
| 1170 |
style='font-size:10.0pt'> notification instead of the </span><code><span |
style='font-size:10.0pt'> notification instead of the </span><code><span |
| 1171 |
style='font-size:10.0pt'>redone</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>redone</span></code><span style='font-size:10.0pt'> |
| 1172 |
notification.<o:p></o:p></span></p> |
notification.<o:p></o:p></span></p> |
| 1173 |
|
|
| 1174 |
<pre>public org.eclipse.core.runtime.IStatus <b>undo</b>(IOperationContext context,</pre><pre><span style='mso-spacerun:yes'> </span>org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <b>undo</b>(<span |
| 1175 |
|
class=SpellE>IOperationContext</span> context,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1176 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 1177 |
|
|
| 1178 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Undo |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Undo |
| 1179 |
the most recently undone operation in the given context <o:p></o:p></span></p> |
the most recently undone operation in the given context <o:p></o:p></span></p> |
| 1192 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1193 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1194 |
|
|
| 1195 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1196 |
IStatus indicating whether the undo succeeded. The severity code in the |
class=SpellE>IStatus</span> indicating whether the undo succeeded. The severity |
| 1197 |
returned status describes whether the operation succeeded and whether it |
code in the returned status describes whether the operation succeeded and |
| 1198 |
remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
whether it remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1199 |
style='font-size:10.0pt'> severity indicates that the undo operation was |
style='font-size:10.0pt'> severity indicates that the undo operation was |
| 1200 |
successful and that the operation has been placed on the redo history. |
successful and that the operation has been placed on the redo history. |
| 1201 |
Listeners will receive the </span><code><span style='font-size:10.0pt'>undone</span></code><span |
Listeners will receive the </span><code><span style='font-size:10.0pt'>undone</span></code><span |
| 1208 |
will be notified that the operation was removed. Any other severity code is not |
will be notified that the operation was removed. Any other severity code is not |
| 1209 |
interpreted by the history, and is simply passed back to the caller. For all |
interpreted by the history, and is simply passed back to the caller. For all |
| 1210 |
severities other than </span><code><span style='font-size:10.0pt'>OK</span></code><span |
severities other than </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1211 |
style='font-size:10.0pt'>, listeners will receive the </span><code><span |
style='font-size:10.0pt'>, listeners will receive the </span><span |
| 1212 |
style='font-size:10.0pt'>operationNotOK</span></code><span style='font-size: |
class=SpellE><code><span style='font-size:10.0pt'>operationNotOK</span></code></span><span |
| 1213 |
10.0pt'> notification instead of the </span><code><span style='font-size:10.0pt'>undone</span></code><span |
style='font-size:10.0pt'> notification instead of the </span><code><span |
| 1214 |
style='font-size:10.0pt'> notification.<o:p></o:p></span></p> |
style='font-size:10.0pt'>undone</span></code><span style='font-size:10.0pt'> |
| 1215 |
|
notification.<o:p></o:p></span></p> |
| 1216 |
|
|
| 1217 |
<pre>public org.eclipse.core.runtime.IStatus <b>undoOperation</b>(IOperation operation,</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>org.eclipse.core.runtime.IProgressMonitor monitor)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <span |
| 1218 |
|
class=SpellE><b>undoOperation</b></span>(<span class=SpellE>IOperation</span> operation,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1219 |
|
class=SpellE>org.eclipse.core.runtime.IProgressMonitor</span> monitor)</pre> |
| 1220 |
|
|
| 1221 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Undo |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Undo |
| 1222 |
the specified operation <o:p></o:p></span></p> |
the specified operation <o:p></o:p></span></p> |
| 1234 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1235 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1236 |
|
|
| 1237 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1238 |
IStatus indicating whether the undo succeeded. The severity code in the |
class=SpellE>IStatus</span> indicating whether the undo succeeded. The severity |
| 1239 |
returned status describes whether the operation succeeded and whether it |
code in the returned status describes whether the operation succeeded and |
| 1240 |
remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
whether it remains in the history. </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1241 |
style='font-size:10.0pt'> severity indicates that the undo operation was |
style='font-size:10.0pt'> severity indicates that the undo operation was |
| 1242 |
successful and that the operation has been placed on the redo history. |
successful and that the operation has been placed on the redo history. |
| 1243 |
Listeners will receive the </span><code><span style='font-size:10.0pt'>undone</span></code><span |
Listeners will receive the </span><code><span style='font-size:10.0pt'>undone</span></code><span |
| 1245 |
10.0pt'>CANCEL</span></code><span style='font-size:10.0pt'> severity indicates |
10.0pt'>CANCEL</span></code><span style='font-size:10.0pt'> severity indicates |
| 1246 |
that the user cancelled the operation and that the operation remains in the |
that the user cancelled the operation and that the operation remains in the |
| 1247 |
undo history. </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
undo history. </span><code><span style='font-size:10.0pt'>ERROR</span></code><span |
| 1248 |
style='font-size:10.0pt'> severity indicates that the operation could not |
style='font-size:10.0pt'> severity indicates that the operation could not successfully |
| 1249 |
successfully be undone. The operation will remain at its current location in |
be undone. The operation will remain at its current location in the history, |
| 1250 |
the history, and callers must explicitly remove it if desired. Any other |
and callers must explicitly remove it if desired. Any other severity code is |
| 1251 |
severity code is not interpreted by the history, and is simply passed back to |
not interpreted by the history, and is simply passed back to the caller. For |
| 1252 |
the caller. For all severities other than </span><code><span style='font-size: |
all severities other than </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1253 |
10.0pt'>OK</span></code><span style='font-size:10.0pt'>, listeners will receive |
style='font-size:10.0pt'>, listeners will receive the </span><span |
| 1254 |
the </span><code><span style='font-size:10.0pt'>operationNotOK</span></code><span |
class=SpellE><code><span style='font-size:10.0pt'>operationNotOK</span></code></span><span |
| 1255 |
style='font-size:10.0pt'> notification instead of the </span><code><span |
style='font-size:10.0pt'> notification instead of the </span><code><span |
| 1256 |
style='font-size:10.0pt'>undone</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>undone</span></code><span style='font-size:10.0pt'> |
| 1257 |
notification.<o:p></o:p></span></p> |
notification.<o:p></o:p></span></p> |
| 1258 |
|
|
| 1259 |
<pre>public boolean <b>canRedo</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>canRedo</b></span>(<span |
| 1260 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 1261 |
|
|
| 1262 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1263 |
whether there is a redoable operation available in the given context. <o:p></o:p></span></p> |
whether there is a <span class=SpellE>redoable</span> operation available in |
| 1264 |
|
the given context. <o:p></o:p></span></p> |
| 1265 |
|
|
| 1266 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1267 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1274 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1275 |
|
|
| 1276 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>true</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>true</span></code><span |
| 1277 |
style='font-size:10.0pt'> if there is a redoable operation, </span><code><span |
style='font-size:10.0pt'> if there is a <span class=SpellE>redoable</span> |
| 1278 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
operation, </span><code><span style='font-size:10.0pt'>false</span></code><span |
| 1279 |
otherwise.<o:p></o:p></span></p> |
style='font-size:10.0pt'> otherwise.<o:p></o:p></span></p> |
| 1280 |
|
|
| 1281 |
<pre>public boolean <b>canUndo</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>canUndo</b></span>(<span |
| 1282 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 1283 |
|
|
| 1284 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1285 |
whether there is an undoable operation available in the given context <o:p></o:p></span></p> |
whether there is an undoable operation available in the given context <o:p></o:p></span></p> |
| 1299 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> |
| 1300 |
otherwise.<o:p></o:p></span></p> |
otherwise.<o:p></o:p></span></p> |
| 1301 |
|
|
| 1302 |
<pre>public void <b>addOperationApprover</b>(IOperationApprover approver)</pre> |
<pre>public void <span class=SpellE><b>addOperationApprover</b></span>(<span |
| 1303 |
|
class=SpellE>IOperationApprover</span> approver)</pre> |
| 1304 |
|
|
| 1305 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add the |
| 1306 |
the specified approver to the operation history. <o:p></o:p></span></p> |
specified approver to the operation history. <o:p></o:p></span></p> |
| 1307 |
|
|
| 1308 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1309 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1310 |
|
|
| 1311 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>approver</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>approver</span></code><span |
| 1312 |
style='font-size:10.0pt'> - - the IOperationApprover that will be consulted |
style='font-size:10.0pt'> - - the <span class=SpellE>IOperationApprover</span> |
| 1313 |
before any operation in the history is undone or redone<o:p></o:p></span></p> |
that will be consulted before any operation in the history is undone or redone<o:p></o:p></span></p> |
| 1314 |
|
|
| 1315 |
<pre>public void <b>addOperationHistoryListener</b>(IOperationHistoryListener listener)</pre> |
<pre>public void <span class=SpellE><b>addOperationHistoryListener</b></span>(<span |
| 1316 |
|
class=SpellE>IOperationHistoryListener</span> listener)</pre> |
| 1317 |
|
|
| 1318 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Add |
| 1319 |
the specified listener to the operation history. <o:p></o:p></span></p> |
the specified listener to the operation history. <o:p></o:p></span></p> |
| 1322 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1323 |
|
|
| 1324 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>listener</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>listener</span></code><span |
| 1325 |
style='font-size:10.0pt'> - - the IOperationHistoryListener to receive |
style='font-size:10.0pt'> - - the <span class=SpellE>IOperationHistoryListener</span> |
| 1326 |
notifications about changes in the history or operations that are executed, |
to receive notifications about changes in the history or operations that are |
| 1327 |
undone, or redone<o:p></o:p></span></p> |
executed, undone, or redone<o:p></o:p></span></p> |
| 1328 |
|
|
| 1329 |
<pre>public void <b>removeOperationApprover</b>(IOperationApprover approver)</pre> |
<pre>public void <span class=SpellE><b>removeOperationApprover</b></span>(<span |
| 1330 |
|
class=SpellE>IOperationApprover</span> approver)</pre> |
| 1331 |
|
|
| 1332 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
| 1333 |
the specified operation approver from the operation history. <o:p></o:p></span></p> |
the specified operation approver from the operation history. <o:p></o:p></span></p> |
| 1336 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1337 |
|
|
| 1338 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>approver</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>approver</span></code><span |
| 1339 |
style='font-size:10.0pt'> - - the IOperationApprover to be removed<o:p></o:p></span></p> |
style='font-size:10.0pt'> - - the <span class=SpellE>IOperationApprover</span> |
| 1340 |
|
to be removed<o:p></o:p></span></p> |
| 1341 |
|
|
| 1342 |
<pre>public void <b>removeOperationHistoryListener</b>(IOperationHistoryListener listener)</pre> |
<pre>public void <span class=SpellE><b>removeOperationHistoryListener</b></span>(<span |
| 1343 |
|
class=SpellE>IOperationHistoryListener</span> listener)</pre> |
| 1344 |
|
|
| 1345 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Remove |
| 1346 |
the specified listener from the operation history. <o:p></o:p></span></p> |
the specified listener from the operation history. <o:p></o:p></span></p> |
| 1349 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1350 |
|
|
| 1351 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>listener</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>listener</span></code><span |
| 1352 |
style='font-size:10.0pt'> - - The IOperationHistoryListener to be removed<o:p></o:p></span></p> |
style='font-size:10.0pt'> - - The <span class=SpellE>IOperationHistoryListener</span> |
| 1353 |
|
to be removed<o:p></o:p></span></p> |
| 1354 |
|
|
| 1355 |
<pre>public IOperation <b>getRedoOperation</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>IOperation</span> <span class=SpellE><b>getRedoOperation</b></span>(<span |
| 1356 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 1357 |
|
|
| 1358 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
| 1359 |
the operation that will next be redone in the given context. This method is |
the operation that will next be redone in the given context. This method is |
| 1374 |
operation to be redone or </span><code><span style='font-size:10.0pt'>null</span></code><span |
operation to be redone or </span><code><span style='font-size:10.0pt'>null</span></code><span |
| 1375 |
style='font-size:10.0pt'> if there is no valid operation available.<o:p></o:p></span></p> |
style='font-size:10.0pt'> if there is no valid operation available.<o:p></o:p></span></p> |
| 1376 |
|
|
| 1377 |
<pre>public IOperation [] <b>getRedoHistory</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>IOperation</span> [] <span class=SpellE><b>getRedoHistory</b></span>(<span |
| 1378 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 1379 |
|
|
| 1380 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
| 1381 |
the array of operations in the redo history for a given context. The operations |
the array of operations in the redo history for a given context. The operations |
| 1395 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 1396 |
array of operations in the history<o:p></o:p></span></p> |
array of operations in the history<o:p></o:p></span></p> |
| 1397 |
|
|
| 1398 |
<pre>public IOperation <b>getUndoOperation</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>IOperation</span> <span class=SpellE><b>getUndoOperation</b></span>(<span |
| 1399 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 1400 |
|
|
| 1401 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
| 1402 |
operation that will next be undone in the given context. This method is used to |
the operation that will next be undone in the given context. This method is |
| 1403 |
retrieve the label or description as needed for the "Undo" menu. <o:p></o:p></span></p> |
used to retrieve the label or description as needed for the "Undo" |
| 1404 |
|
menu. <o:p></o:p></span></p> |
| 1405 |
|
|
| 1406 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1407 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1413 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1414 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1415 |
|
|
| 1416 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the operation |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 1417 |
to be undone or </span><code><span style='font-size:10.0pt'>null</span></code><span |
operation to be undone or </span><code><span style='font-size:10.0pt'>null</span></code><span |
| 1418 |
style='font-size:10.0pt'> if there is no operation available.<o:p></o:p></span></p> |
style='font-size:10.0pt'> if there is no operation available.<o:p></o:p></span></p> |
| 1419 |
|
|
| 1420 |
<pre>public IOperation [] <b>getUndoHistory</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>IOperation</span> [] <span class=SpellE><b>getUndoHistory</b></span>(<span |
| 1421 |
|
class=SpellE>IOperationContext</span> context)</pre> |
| 1422 |
|
|
| 1423 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
| 1424 |
the array of operations that can be undone in the specified context. The |
the array of operations that can be undone in the specified context. The |
| 1438 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 1439 |
array of operations in the history<o:p></o:p></span></p> |
array of operations in the history<o:p></o:p></span></p> |
| 1440 |
|
|
| 1441 |
<pre>public void <b>dispose</b>(IOperationContext context,</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>boolean flushUndo,</pre><pre><span style='mso-spacerun:yes'> </span>boolean flushRedo)</pre> |
<pre>public void <b>dispose</b>(<span class=SpellE>IOperationContext</span> context,</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span><span |
| 1442 |
|
class=SpellE>boolean</span> <span class=SpellE>flushUndo</span>,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1443 |
|
class=SpellE>boolean</span> <span class=SpellE>flushRedo</span>)</pre> |
| 1444 |
|
|
| 1445 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Dispose |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Dispose |
| 1446 |
of the specified context in the history. All operations that have only the |
of the specified context in the history. All operations that have only the |
| 1454 |
style='font-size:10.0pt'> - - the context to be disposed, or null if all |
style='font-size:10.0pt'> - - the context to be disposed, or null if all |
| 1455 |
contexts are to be disposed <o:p></o:p></span></p> |
contexts are to be disposed <o:p></o:p></span></p> |
| 1456 |
|
|
| 1457 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>flushUndo</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><code><span |
| 1458 |
style='font-size:10.0pt'> - - </span><code><span style='font-size:10.0pt'>true</span></code><span |
style='font-size:10.0pt'>flushUndo</span></code></span><span style='font-size: |
| 1459 |
|
10.0pt'> - - </span><code><span style='font-size:10.0pt'>true</span></code><span |
| 1460 |
style='font-size:10.0pt'> if the context should be flushed from the undo |
style='font-size:10.0pt'> if the context should be flushed from the undo |
| 1461 |
history, </span><code><span style='font-size:10.0pt'>false</span></code><span |
history, </span><code><span style='font-size:10.0pt'>false</span></code><span |
| 1462 |
style='font-size:10.0pt'> if it should not <o:p></o:p></span></p> |
style='font-size:10.0pt'> if it should not <o:p></o:p></span></p> |
| 1463 |
|
|
| 1464 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>flushRedo</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><code><span |
| 1465 |
style='font-size:10.0pt'> - - </span><code><span style='font-size:10.0pt'>true</span></code><span |
style='font-size:10.0pt'>flushRedo</span></code></span><span style='font-size: |
| 1466 |
|
10.0pt'> - - </span><code><span style='font-size:10.0pt'>true</span></code><span |
| 1467 |
style='font-size:10.0pt'> if the context should be flushed from the redo |
style='font-size:10.0pt'> if the context should be flushed from the redo |
| 1468 |
history, </span><code><span style='font-size:10.0pt'>false</span></code><span |
history, </span><code><span style='font-size:10.0pt'>false</span></code><span |
| 1469 |
style='font-size:10.0pt'> if it should not.<o:p></o:p></span></p> |
style='font-size:10.0pt'> if it should not.<o:p></o:p></span></p> |
| 1470 |
|
|
| 1471 |
<pre>public int <b>getLimit</b>()</pre> |
<pre>public <span class=SpellE>int</span> <span class=SpellE><b>getLimit</b></span>()</pre> |
| 1472 |
|
|
| 1473 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1474 |
the specified limit on the undo and redo history. <o:p></o:p></span></p> |
the specified limit on the undo and redo history. <o:p></o:p></span></p> |
| 1478 |
|
|
| 1479 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>limit<o:p></o:p></span></p> |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>limit<o:p></o:p></span></p> |
| 1480 |
|
|
| 1481 |
<pre>public void <b>setLimit</b>(int limit)</pre> |
<pre>public void <span class=SpellE><b>setLimit</b></span>(<span class=SpellE>int</span> limit)</pre> |
| 1482 |
|
|
| 1483 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Set |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Set |
| 1484 |
the limit on the undo and redo history. <o:p></o:p></span></p> |
the limit on the undo and redo history. <o:p></o:p></span></p> |
| 1490 |
style='font-size:10.0pt'> - - the maximum number of operations that should be |
style='font-size:10.0pt'> - - the maximum number of operations that should be |
| 1491 |
kept in the history<o:p></o:p></span></p> |
kept in the history<o:p></o:p></span></p> |
| 1492 |
|
|
| 1493 |
<h3>IOperationContext</h3> |
<h3><span class=SpellE>IOperationContext</span></h3> |
| 1494 |
|
|
| 1495 |
<pre>public java.lang.String <b>getLabel</b>()</pre> |
<pre>public <span class=SpellE>java.lang.String</span> <span class=SpellE><b>getLabel</b></span>()</pre> |
| 1496 |
|
|
| 1497 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
| 1498 |
the label that should be used to describe the context in any views. Contexts may |
the label that should be used to describe the context in any views. Contexts |
| 1499 |
be shown when filtered operation histories are shown to the user. <o:p></o:p></span></p> |
may be shown when filtered operation histories are shown to the user. <o:p></o:p></span></p> |
| 1500 |
|
|
| 1501 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1502 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1504 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 1505 |
label for the context.<o:p></o:p></span></p> |
label for the context.<o:p></o:p></span></p> |
| 1506 |
|
|
| 1507 |
<pre>public IContextOperationApprover <b>getOperationApprover</b>()</pre> |
<pre>public <span class=SpellE>IContextOperationApprover</span> <span |
| 1508 |
|
class=SpellE><b>getOperationApprover</b></span>()</pre> |
| 1509 |
|
|
| 1510 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Get |
| 1511 |
the operation approver that is used to approve undo or redo operations |
the operation approver that is used to approve undo or redo operations |
| 1518 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
| 1519 |
operation approver for the context.<o:p></o:p></span></p> |
operation approver for the context.<o:p></o:p></span></p> |
| 1520 |
|
|
| 1521 |
<pre>public boolean <b>acceptOperation</b>(IOperation operation)</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>acceptOperation</b></span>(<span |
| 1522 |
|
class=SpellE>IOperation</span> operation)</pre> |
| 1523 |
|
|
| 1524 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1525 |
a boolean that indicates whether this context should be assigned to the specified |
a <span class=SpellE>boolean</span> that indicates whether this context should |
| 1526 |
operation. This method should be overridden by contexts that have complex rules |
be assigned to the specified operation. This method should be overridden by |
| 1527 |
for whether they should be assigned to an operation. Simple contexts generally |
contexts that have complex rules for whether they should be assigned to an |
| 1528 |
answer true. <o:p></o:p></span></p> |
operation. Simple contexts generally answer true. <o:p></o:p></span></p> |
| 1529 |
|
|
| 1530 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1531 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1532 |
|
|
| 1533 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a <span |
| 1534 |
boolean indicating whether this context should be assigned to the operation.<o:p></o:p></span></p> |
class=SpellE>boolean</span> indicating whether this context should be assigned |
| 1535 |
|
to the operation.<o:p></o:p></span></p> |
| 1536 |
|
|
| 1537 |
<pre>public boolean <b>equals</b>(IOperationContext context)</pre> |
<pre>public <span class=SpellE>boolean</span> <b>equals</b>(<span class=SpellE>IOperationContext</span> context)</pre> |
| 1538 |
|
|
| 1539 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1540 |
whether this context is equal to the specified context. <o:p></o:p></span></p> |
whether this context is equal to the specified context. <o:p></o:p></span></p> |
| 1555 |
|
|
| 1556 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1557 |
|
|
| 1558 |
<h3>IOperationApprover</h3> |
<h3><span class=SpellE>IOperationApprover</span></h3> |
| 1559 |
|
|
| 1560 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>IOperationApprover |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1561 |
defines an interface for approving the undo or redo of a particular operation |
Arial'>IOperationApprover</span></span><span style='font-size:10.0pt; |
| 1562 |
within an operation history. Operations that are candidates for undo or redo |
font-family:Arial'> defines an interface for approving the undo or redo of a |
| 1563 |
have already been validated against their current state and according to the |
particular operation within an operation history. Operations that are |
| 1564 |
rules of the history.<o:p></o:p></span></p> |
candidates for undo or redo have already been validated against their current |
| 1565 |
|
state and according to the rules of the history.<o:p></o:p></span></p> |
| 1566 |
|
|
| 1567 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1568 |
|
|
| 1569 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>By the time |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>By the time |
| 1570 |
an IOperationApprover is consulted, the undo has already been requested. |
an <span class=SpellE>IOperationApprover</span> is consulted, the undo has |
| 1571 |
Approvers should true if the operation should proceed, and false if it should |
already been requested. Approvers should true if the operation should proceed, |
| 1572 |
not. When an operation is rejected, it is expected that the object rejecting |
and false if it should not. When an operation is rejected, it is expected that |
| 1573 |
the operation has already consulted the user if necessary or otherwise provided |
the object rejecting the operation has already consulted the user if necessary |
| 1574 |
any necessary information to the user about the rejection.<o:p></o:p></span></p> |
or otherwise provided any necessary information to the user about the |
| 1575 |
|
rejection.<o:p></o:p></span></p> |
| 1576 |
<pre>public org.eclipse.core.runtime.IStatus <b>proceedUndoing</b>(IOperation operation, IOperationHistory history)</pre> |
|
| 1577 |
|
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <span |
| 1578 |
|
class=SpellE><b>proceedUndoing</b></span>(<span class=SpellE>IOperation</span> operation, <span |
| 1579 |
|
class=SpellE>IOperationHistory</span> history)</pre> |
| 1580 |
|
|
| 1581 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1582 |
a status indicating whether the specified operation should be undone. Any |
a status indicating whether the specified operation should be undone. Any |
| 1583 |
status that does not have severity </span><code><span style='font-size:10.0pt'>IStatus.OK</span></code><span |
status that does not have severity </span><span class=SpellE><code><span |
| 1584 |
style='font-size:10.0pt'> will not be approved. Implementers should not assume |
style='font-size:10.0pt'>IStatus.OK</span></code></span><span style='font-size: |
| 1585 |
that the undo will be performed when the status is </span><code><span |
10.0pt'> will not be approved. Implementers should not assume that the undo |
| 1586 |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'>, since |
will be performed when the status is </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1587 |
other operation approvers can veto the undo. <o:p></o:p></span></p> |
style='font-size:10.0pt'>, since other operation approvers can veto the undo. <o:p></o:p></span></p> |
| 1588 |
|
|
| 1589 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1590 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1598 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1599 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1600 |
|
|
| 1601 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1602 |
IStatus describing whether the operation is approved. The undo will not proceed |
class=SpellE>IStatus</span> describing whether the operation is approved. The |
| 1603 |
if the status severity is not </span><code><span style='font-size:10.0pt'>OK</span></code><span |
undo will not proceed if the status severity is not </span><code><span |
| 1604 |
style='font-size:10.0pt'>, and the caller requesting the undo will be returned |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'>, and |
| 1605 |
the status that caused the rejection. Any other status severities will not be |
the caller requesting the undo will be returned the status that caused the |
| 1606 |
interpreted by the history.<o:p></o:p></span></p> |
rejection. Any other status severities will not be interpreted by the history.<o:p></o:p></span></p> |
| 1607 |
|
|
| 1608 |
<pre>public org.eclipse.core.runtime.IStatus <b>proceedRedoing</b>(IOperation operation, IOperationHistory history)</pre> |
<pre>public <span class=SpellE>org.eclipse.core.runtime.IStatus</span> <span |
| 1609 |
|
class=SpellE><b>proceedRedoing</b></span>(<span class=SpellE>IOperation</span> operation, <span |
| 1610 |
|
class=SpellE>IOperationHistory</span> history)</pre> |
| 1611 |
|
|
| 1612 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Return |
| 1613 |
a status indicating whether the specified operation should be redone. Any |
a status indicating whether the specified operation should be redone. Any |
| 1614 |
status that does not have severity </span><code><span style='font-size:10.0pt'>IStatus.OK</span></code><span |
status that does not have severity </span><span class=SpellE><code><span |
| 1615 |
style='font-size:10.0pt'> will not be approved. Implementers should not assume |
style='font-size:10.0pt'>IStatus.OK</span></code></span><span style='font-size: |
| 1616 |
that the redo will be performed when the status is </span><code><span |
10.0pt'> will not be approved. Implementers should not assume that the redo |
| 1617 |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'>, since |
will be performed when the status is </span><code><span style='font-size:10.0pt'>OK</span></code><span |
| 1618 |
other operation approvers may veto the redo. <o:p></o:p></span></p> |
style='font-size:10.0pt'>, since other operation approvers may veto the redo. <o:p></o:p></span></p> |
| 1619 |
|
|
| 1620 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1621 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1629 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1630 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1631 |
|
|
| 1632 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>the <span |
| 1633 |
IStatus describing whether the operation is approved. The redo will not proceed |
class=SpellE>IStatus</span> describing whether the operation is approved. The |
| 1634 |
if the status severity is no </span><code><span style='font-size:10.0pt'>OK</span></code><span |
redo will not proceed if the status severity is no </span><code><span |
| 1635 |
style='font-size:10.0pt'>, and the caller requesting the redo will be returned |
style='font-size:10.0pt'>OK</span></code><span style='font-size:10.0pt'>, and |
| 1636 |
the status that caused the rejection. Any other status severities will not be |
the caller requesting the redo will be returned the status that caused the |
| 1637 |
interpreted by the history.<o:p></o:p></span></p> |
rejection. Any other status severities will not be interpreted by the history.<o:p></o:p></span></p> |
| 1638 |
|
|
| 1639 |
<h3>IOperationHistoryListener</h3> |
<h3><span class=SpellE>IOperationHistoryListener</span></h3> |
| 1640 |
|
|
| 1641 |
<pre>public void <b>historyNotification</b>(OperationHistoryEvent event)</pre> |
<pre>public void <span class=SpellE><b>historyNotification</b></span>(<span |
| 1642 |
|
class=SpellE>OperationHistoryEvent</span> event)</pre> |
| 1643 |
|
|
| 1644 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Something |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Something |
| 1645 |
of note has happened in the IOperationHistory. Listeners should check the |
of note has happened in the <span class=SpellE>IOperationHistory</span>. |
| 1646 |
supplied event for details. <o:p></o:p></span></p> |
Listeners should check the supplied event for details. <o:p></o:p></span></p> |
| 1647 |
|
|
| 1648 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Parameters:</span></b><span |
| 1649 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1650 |
|
|
| 1651 |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>event</span></code><span |
<p class=MsoNormal style='margin-left:.5in'><code><span style='font-size:10.0pt'>event</span></code><span |
| 1652 |
style='font-size:10.0pt'> - - the OperationHistoryEvent that describes the |
style='font-size:10.0pt'> - - the <span class=SpellE>OperationHistoryEvent</span> |
| 1653 |
particular notification.<o:p></o:p></span></p> |
that describes the particular notification.<o:p></o:p></span></p> |
| 1654 |
|
|
| 1655 |
<h3>OperationHistoryEvent</h3> |
<h3><span class=SpellE>OperationHistoryEvent</span></h3> |
| 1656 |
|
|
| 1657 |
<pre>public IOperationHistory <b>history</b></pre><pre><o:p> </o:p></pre><pre>public IOperation <b>operation</b></pre><pre><o:p> </o:p></pre><pre>public boolean <b>operationAdded</b>()</pre> |
<pre>public <span class=SpellE>IOperationHistory</span> <b>history</b></pre><pre><o:p> </o:p></pre><pre>public <span |
| 1658 |
|
class=SpellE>IOperation</span> <b>operation</b></pre><pre><o:p> </o:p></pre><pre>public <span |
| 1659 |
|
class=SpellE>boolean</span> <span class=SpellE><b>operationAdded</b></span>()</pre> |
| 1660 |
|
|
| 1661 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1662 |
whether or not an operation was added to the history. Listeners typically use |
whether or not an operation was added to the history. Listeners typically use |
| 1671 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1672 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1673 |
|
|
| 1674 |
<pre>public boolean <b>operationRemoved</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>operationRemoved</b></span>()</pre> |
| 1675 |
|
|
| 1676 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1677 |
whether or not an operation was removed from the history. Listeners typically |
whether or not an operation was removed from the history. Listeners typically |
| 1685 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1686 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1687 |
|
|
| 1688 |
<pre>public boolean <b>aboutToExecute</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>aboutToExecute</b></span>()</pre> |
| 1689 |
|
|
| 1690 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1691 |
whether or not an operation is about to execute. Listeners should prepare for |
whether or not an operation is about to execute. Listeners should prepare for the |
| 1692 |
the execution as appropriate. Listeners will receive a done notification if the |
execution as appropriate. Listeners will receive a done notification if the |
| 1693 |
operation is successful, or an operationNotCompleted notification if the |
operation is successful, or an <span class=SpellE>operationNotCompleted</span> |
| 1694 |
execution is cancelled or otherwise fails. This notification is only received |
notification if the execution is cancelled or otherwise fails. This |
| 1695 |
for those operations executed by the operation history. Operations that are |
notification is only received for those operations executed by the operation |
| 1696 |
added to the history after execution do not trigger these notifications. If the |
history. Operations that are added to the history after execution do not |
| 1697 |
operation successfully executes, clients will also receive a notification that |
trigger these notifications. If the operation successfully executes, clients |
| 1698 |
it has been added to the history. <o:p></o:p></span></p> |
will also receive a notification that it has been added to the history. <o:p></o:p></span></p> |
| 1699 |
|
|
| 1700 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1701 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1705 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1706 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1707 |
|
|
| 1708 |
<pre>public boolean <b>aboutToUndo</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>aboutToUndo</b></span>()</pre> |
| 1709 |
|
|
| 1710 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1711 |
whether or not an operation is about to be undone. Listeners should prepare for |
whether or not an operation is about to be undone. Listeners should prepare for |
| 1712 |
the undo as appropriate. Listeners will receive an undone notification if the |
the undo as appropriate. Listeners will receive an undone notification if the operation |
| 1713 |
operation is successful, or an operationNotCompleted notification if the undo |
is successful, or an <span class=SpellE>operationNotCompleted</span> |
| 1714 |
is cancelled or otherwise fails. <o:p></o:p></span></p> |
notification if the undo is cancelled or otherwise fails. <o:p></o:p></span></p> |
| 1715 |
|
|
| 1716 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1717 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1721 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1722 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1723 |
|
|
| 1724 |
<pre>public boolean <b>aboutToRedo</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>aboutToRedo</b></span>()</pre> |
| 1725 |
|
|
| 1726 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1727 |
whether or not an operation is about to be redone. Listeners should prepare for |
whether or not an operation is about to be redone. Listeners should prepare for |
| 1728 |
the redo as appropriate. Listeners will receive a redone notification if the |
the redo as appropriate. Listeners will receive a redone notification if the |
| 1729 |
operation is successful, or an operationNotCompleted notification if the redo |
operation is successful, or an <span class=SpellE>operationNotCompleted</span> |
| 1730 |
is cancelled or otherwise fails. <o:p></o:p></span></p> |
notification if the redo is cancelled or otherwise fails. <o:p></o:p></span></p> |
| 1731 |
|
|
| 1732 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1733 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1737 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1738 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1739 |
|
|
| 1740 |
<pre>public boolean <b>done</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <b>done</b>()</pre> |
| 1741 |
|
|
| 1742 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1743 |
whether or not an operation was initially done. Listeners can take appropriate |
whether or not an operation was initially done. Listeners can take appropriate |
| 1744 |
action, such as revealing any relevant state in the UI. This notification is |
action, such as revealing any relevant state in the UI. This notification is |
| 1745 |
only received for those operations executed by the operation history. Operations |
only received for those operations executed by the operation history. |
| 1746 |
that are added to the history after execution do not trigger this notification. |
Operations that are added to the history after execution do not trigger this |
| 1747 |
Clients will also receive a notification that the operation has been added to |
notification. Clients will also receive a notification that the operation has |
| 1748 |
the history. <o:p></o:p></span></p> |
been added to the history. <o:p></o:p></span></p> |
| 1749 |
|
|
| 1750 |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
<p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:10.0pt'>Returns:</span></b><span |
| 1751 |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
style='font-size:10.0pt'> <o:p></o:p></span></p> |
| 1755 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1756 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1757 |
|
|
| 1758 |
<pre>public boolean <b>undone</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <b>undone</b>()</pre> |
| 1759 |
|
|
| 1760 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1761 |
whether or not an operation was undone. Listeners can take appropriate action, |
whether or not an operation was undone. Listeners can take appropriate action, |
| 1769 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1770 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1771 |
|
|
| 1772 |
<pre>public boolean <b>redone</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <b>redone</b>()</pre> |
| 1773 |
|
|
| 1774 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1775 |
whether or not an operation was redone. Listeners can take appropriate action, |
whether or not an operation was redone. Listeners can take appropriate action, |
| 1783 |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
style='font-size:10.0pt'>false</span></code><span style='font-size:10.0pt'> if |
| 1784 |
not.<o:p></o:p></span></p> |
not.<o:p></o:p></span></p> |
| 1785 |
|
|
| 1786 |
<pre>public boolean <b>operationNotOK</b>()</pre> |
<pre>public <span class=SpellE>boolean</span> <span class=SpellE><b>operationNotOK</b></span>()</pre> |
| 1787 |
|
|
| 1788 |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>Returns |
| 1789 |
whether or not an operation was attempted and not successful. Listeners |
whether or not an operation was attempted and not successful. Listeners |
| 1805 |
|
|
| 1806 |
<h2>UI Support Classes<span style='font-size:10.0pt'><o:p></o:p></span></h2> |
<h2>UI Support Classes<span style='font-size:10.0pt'><o:p></o:p></span></h2> |
| 1807 |
|
|
| 1808 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Additional support |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Additional |
| 1809 |
classes will be provided in the package org.eclipse.ui.operations.<span |
support classes will be provided in the package <span class=SpellE>org.eclipse.ui.operations</span>.<span |
| 1810 |
style='mso-spacerun:yes'> </span>These classes handle policy decisions about |
style='mso-spacerun:yes'> </span>These classes handle policy decisions about |
| 1811 |
the undo model to be used by the workbench.<span style='mso-spacerun:yes'> |
the undo model to be used by the workbench.<span style='mso-spacerun:yes'> |
| 1812 |
</span>Access to the undo and redo commands, as well as the operations history, |
</span>Access to the undo and redo commands, as well as the operations history, |
| 1843 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1844 |
|
|
| 1845 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Operations |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Operations |
| 1846 |
that are assigned the workspace context will implement a subinterface, |
that are assigned the workspace context will implement a <span class=SpellE>subinterface</span>, |
| 1847 |
IWorkspaceOperation.<span style='mso-spacerun:yes'> </span>IWorkspaceOperation |
<span class=SpellE>IWorkspaceOperation</span>.<span style='mso-spacerun:yes'> |
| 1848 |
adds protocol to access the model elements manipulated by an operation |
</span><span class=SpellE>IWorkspaceOperation</span> adds protocol to access |
| 1849 |
(getElements()), so that listeners can decide if the workspace operation |
the model elements manipulated by an operation (<span class=SpellE>getElements</span>()), |
| 1850 |
affects their model.<span style='mso-spacerun:yes'> </span>This protocol is |
so that listeners can decide if the workspace operation affects their |
| 1851 |
not generalized to IOperation.<span style='mso-spacerun:yes'> </span>Prior |
model.<span style='mso-spacerun:yes'> </span>This protocol is not generalized |
| 1852 |
experience with model-based operation frameworks has shown that there needs to |
to <span class=SpellE>IOperation</span>.<span style='mso-spacerun:yes'> |
| 1853 |
be a very specific contract regarding how and when validation is performed, |
</span>Prior experience with model-based operation frameworks has shown that |
| 1854 |
what underlying model listeners are used to validate the operation, and whether |
there needs to be a very specific contract regarding how and when validation is |
| 1855 |
operations history notifications or internal model notifications are used to |
performed, what underlying model listeners are used to validate the operation, |
| 1856 |
maintain the validity of the operation and the undo stack.<span |
and whether operations history notifications or internal model notifications |
| 1857 |
style='mso-spacerun:yes'> </span>These details for IWorkspaceOperation will |
are used to maintain the validity of the operation and the undo stack.<span |
| 1858 |
evolve as more workbench operations are created. <o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span>These details for <span class=SpellE>IWorkspaceOperation</span> |
| 1859 |
|
will evolve as more workbench operations are created. <o:p></o:p></span></p> |
| 1860 |
|
|
| 1861 |
<h3>UndoHandler and RedoHandler</h3> |
<h3><span class=SpellE>UndoHandler</span> and <span class=SpellE>RedoHandler</span></h3> |
| 1862 |
|
|
| 1863 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The |
| 1864 |
Edit>Undo and Edit>Redo commands should be handled by any parts that wish |
Edit>Undo and Edit>Redo commands should be handled by any parts that wish |
| 1869 |
are responsible for the following:<o:p></o:p></span></p> |
are responsible for the following:<o:p></o:p></span></p> |
| 1870 |
|
|
| 1871 |
<ul style='margin-top:0in' type=disc> |
<ul style='margin-top:0in' type=disc> |
| 1872 |
<li class=MsoNormal style='mso-list:l6 level1 lfo11;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l7 level1 lfo11;tab-stops:list .5in'><span |
| 1873 |
style='font-size:10.0pt;font-family:Arial'>Undo and Redo commands will be |
style='font-size:10.0pt;font-family:Arial'>Undo and Redo commands will be |
| 1874 |
enabled based on the status of the history.<o:p></o:p></span></li> |
enabled based on the status of the history.<o:p></o:p></span></li> |
| 1875 |
<li class=MsoNormal style='mso-list:l6 level1 lfo11;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l7 level1 lfo11;tab-stops:list .5in'><span |
| 1876 |
style='font-size:10.0pt;font-family:Arial'>The Undo and Redo commands will |
style='font-size:10.0pt;font-family:Arial'>The Undo and Redo commands will |
| 1877 |
be appended with the label of the operation for the handler’s context.<o:p></o:p></span></li> |
be appended with the label of the operation for the handler’s context.<o:p></o:p></span></li> |
| 1878 |
<li class=MsoNormal style='mso-list:l6 level1 lfo11;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l7 level1 lfo11;tab-stops:list .5in'><span |
| 1879 |
style='font-size:10.0pt;font-family:Arial'>The undo and redo history will |
style='font-size:10.0pt;font-family:Arial'>The undo and redo history will |
| 1880 |
be flushed for the handler’s context whenever the most recent operation in |
be flushed for the handler’s context whenever the most recent operation in |
| 1881 |
the history is invalid.<span style='mso-spacerun:yes'> </span>This |
the history is invalid.<span style='mso-spacerun:yes'> </span>This |
| 1900 |
<h3>Operation Approvers</h3> |
<h3>Operation Approvers</h3> |
| 1901 |
|
|
| 1902 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The |
| 1903 |
workbench will provide and install an IOperationApprover that consults the |
workbench will provide and install an <span class=SpellE>IOperationApprover</span> |
| 1904 |
contexts of an operation to determine whether undo or redo should proceed.<span |
that consults the contexts of an operation to determine whether undo or redo |
| 1905 |
style='mso-spacerun:yes'> </span>The policy is described as follows:<o:p></o:p></span></p> |
should proceed.<span style='mso-spacerun:yes'> </span>The policy is described |
| 1906 |
|
as follows:<o:p></o:p></span></p> |
| 1907 |
|
|
| 1908 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1909 |
|
|
| 1922 |
example will help explain this.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
example will help explain this.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 1923 |
|
|
| 1924 |
<ol style='margin-top:0in' start=1 type=1> |
<ol style='margin-top:0in' start=1 type=1> |
| 1925 |
<li class=MsoNormal style='mso-list:l3 level1 lfo14;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l2 level1 lfo14;tab-stops:list .5in'><span |
| 1926 |
style='font-size:10.0pt;font-family:Arial'>The user makes local edits in |
style='font-size:10.0pt;font-family:Arial'>The user makes local edits in |
| 1927 |
editor A.<o:p></o:p></span></li> |
editor A.<o:p></o:p></span></li> |
| 1928 |
<li class=MsoNormal style='mso-list:l3 level1 lfo14;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l2 level1 lfo14;tab-stops:list .5in'><span |
| 1929 |
style='font-size:10.0pt;font-family:Arial'>The user initiates a |
style='font-size:10.0pt;font-family:Arial'>The user initiates a |
| 1930 |
refactoring operation whose context is “A” and “workspace.”<o:p></o:p></span></li> |
refactoring operation whose context is “A” and “workspace.”<o:p></o:p></span></li> |
| 1931 |
<li class=MsoNormal style='mso-list:l3 level1 lfo14;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l2 level1 lfo14;tab-stops:list .5in'><span |
| 1932 |
style='font-size:10.0pt;font-family:Arial'>The user makes additional local |
style='font-size:10.0pt;font-family:Arial'>The user makes additional local |
| 1933 |
edits to editor A.<o:p></o:p></span></li> |
edits to editor A.<o:p></o:p></span></li> |
| 1934 |
<li class=MsoNormal style='mso-list:l3 level1 lfo14;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l2 level1 lfo14;tab-stops:list .5in'><span |
| 1935 |
style='font-size:10.0pt;font-family:Arial'>The user goes to the navigator |
style='font-size:10.0pt;font-family:Arial'>The user goes to the navigator |
| 1936 |
and selects Undo.<o:p></o:p></span></li> |
and selects Undo.<o:p></o:p></span></li> |
| 1937 |
</ol> |
</ol> |
| 1938 |
|
|
| 1939 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1940 |
|
|
| 1941 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>In the proposed |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>In the |
| 1942 |
implementation, the navigator requests an undo for the workspace context.<span |
proposed implementation, the navigator requests an undo for the workspace |
| 1943 |
style='mso-spacerun:yes'> </span>The refactoring operation triggered in the |
context.<span style='mso-spacerun:yes'> </span>The refactoring operation |
| 1944 |
editor is the most recent operation that has the workspace context, but it also |
triggered in the editor is the most recent operation that has the workspace |
| 1945 |
contains context “A.”<span style='mso-spacerun:yes'> </span>Since subsequent |
context, but it also contains context “A.”<span style='mso-spacerun:yes'> |
| 1946 |
operations in the history also have context “A,”, the operation will not be |
</span>Since subsequent operations in the history also have context “A,”, the |
| 1947 |
allowed.<span style='mso-spacerun:yes'> </span>An explanation will be provided |
operation will not be allowed.<span style='mso-spacerun:yes'> </span>An |
| 1948 |
to the user after the fact:<span style='mso-spacerun:yes'> </span>“Cannot undo |
explanation will be provided to the user after the fact:<span |
| 1949 |
the refactoring operation because there have been subsequent changes to |
style='mso-spacerun:yes'> </span>“Cannot undo the refactoring operation |
| 1950 |
A.”<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
because there have been subsequent changes to A.”<span |
| 1951 |
|
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 1952 |
|
|
| 1953 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1954 |
|
|
| 1974 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Converting |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Converting |
| 1975 |
an existing action to use operations is straightforward, apart from |
an existing action to use operations is straightforward, apart from |
| 1976 |
implementing the undo and redo behavior for the action.<span |
implementing the undo and redo behavior for the action.<span |
| 1977 |
style='mso-spacerun:yes'> </span>The run() or runWithEvent method inside the |
style='mso-spacerun:yes'> </span>The run() or <span class=SpellE>runWithEvent</span> |
| 1978 |
action should create an operation, execute it, and add it to the operations |
method inside the action should create an operation, execute it, and add it to |
| 1979 |
history, rather than run the code inside the method.<span |
the operations history, rather than run the code inside the method.<span |
| 1980 |
style='mso-spacerun:yes'> </span>The following code shows the existing run() |
style='mso-spacerun:yes'> </span>The following code shows the existing run() |
| 1981 |
method in the EditorAction of the readme tool example |
method in the <span class=SpellE>EditorAction</span> of the <span class=SpellE>readme</span> |
| 1982 |
(org.eclipse.ui.examples.readmetool):<o:p></o:p></span></p> |
tool example (<span class=SpellE>org.eclipse.ui.examples.readmetool</span>):<o:p></o:p></span></p> |
| 1983 |
|
|
| 1984 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 1985 |
|
|
| 1986 |
<pre>public void run() {</pre><pre><span style='mso-spacerun:yes'> </span>String editorName = MessageUtil.getString("Empty_Editor_Name"); </pre><pre><span style='mso-spacerun:yes'> </span>if (activeEditor != null)</pre><pre><span style='mso-spacerun:yes'> </span>editorName = activeEditor.getTitle();</pre><pre><span style='mso-spacerun:yes'> </span>MessageDialog</pre><pre><span style='mso-spacerun:yes'> </span>.openInformation(</pre><pre><span style='mso-spacerun:yes'> </span>shell,</pre><pre><span style='mso-spacerun:yes'> </span>MessageUtil.getString("Readme_Editor"), </pre><pre><span style='mso-spacerun:yes'> </span>MessageUtil.format("ReadmeEditorActionExecuted", </pre><pre><span |
<pre>public void run() {</pre><pre><span style='mso-spacerun:yes'> </span>String <span |
| 1987 |
style='mso-tab-count:4'> </span>new Object[] { getText(), editorName })); </pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span |
class=SpellE>editorName</span> = <span class=SpellE>MessageUtil.getString</span>("<span |
| 1988 |
|
class=SpellE>Empty_Editor_Name</span>"); </pre><pre><span style='mso-spacerun:yes'> </span>if (<span |
| 1989 |
|
class=SpellE>activeEditor</span> != null)</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span><span |
| 1990 |
|
class=SpellE>editorName</span> = <span class=SpellE>activeEditor.getTitle</span>();</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1991 |
|
class=SpellE>MessageDialog</span></pre><pre><span style='mso-spacerun:yes'> </span>.<span |
| 1992 |
|
class=SpellE>openInformation</span>(</pre><pre><span style='mso-spacerun:yes'> </span>shell,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1993 |
|
class=SpellE>MessageUtil.getString</span>("<span class=SpellE>Readme_Editor</span>"), </pre><pre><span style='mso-spacerun:yes'> </span><span |
| 1994 |
|
class=SpellE>MessageUtil.format</span>("<span class=SpellE>ReadmeEditorActionExecuted</span>", </pre><pre><span |
| 1995 |
|
style='mso-tab-count:4'> </span>new Object[] { <span |
| 1996 |
|
class=SpellE>getText</span>(), <span class=SpellE>editorName</span> })); </pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span |
| 1997 |
style='font-family:Arial'>Using operations, the run method simplifies:<o:p></o:p></span></pre><pre><span |
style='font-family:Arial'>Using operations, the run method simplifies:<o:p></o:p></span></pre><pre><span |
| 1998 |
style='font-family:Arial'><o:p> </o:p></span></pre><pre><span style='mso-spacerun:yes'> </span>public void run() {</pre><pre><span style='mso-spacerun:yes'> </span>String editorName = MessageUtil.getString("Empty_Editor_Name"); </pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>if (activeEditor != null)</pre><pre><span style='mso-spacerun:yes'> </span>editorName = activeEditor.getTitle();</pre><pre><span style='mso-spacerun:yes'> </span>// create the operation</pre><pre><span style='mso-spacerun:yes'> </span>IOperation operation = new EditorOperation(</pre><pre><span |
style='font-family:Arial'><o:p> </o:p></span></pre><pre><span style='mso-spacerun:yes'> </span>public void run() {</pre><pre><span style='mso-spacerun:yes'> </span>String <span |
| 1999 |
style='mso-tab-count:2'> </span>getText(),shell, editorName);</pre><pre><span style='mso-spacerun:yes'> </span>// execute (and add to the history)</pre><pre><span style='mso-spacerun:yes'> </span>history.execute(operation, null);</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span |
class=SpellE>editorName</span> = <span class=SpellE>MessageUtil.getString</span>("<span |
| 2000 |
|
class=SpellE>Empty_Editor_Name</span>"); </pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>if (<span |
| 2001 |
|
class=SpellE>activeEditor</span> != null)</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2002 |
|
class=SpellE>editorName</span> = <span class=SpellE>activeEditor.getTitle</span>();</pre><pre><span style='mso-spacerun:yes'> </span>// create the operation</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2003 |
|
class=SpellE>IOperation</span> operation = new <span class=SpellE>EditorOperation</span>(</pre><pre><span |
| 2004 |
|
style='mso-tab-count:2'> </span><span class=SpellE>getText</span>(),shell, <span |
| 2005 |
|
class=SpellE>editorName</span>);</pre><pre><span style='mso-spacerun:yes'> </span>// execute (and add to the history)</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span><span |
| 2006 |
|
class=SpellE>history.execute</span>(operation, null);</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span |
| 2007 |
style='font-family:Arial'>The operation encapsulates the old run behavior, as well as the undo and redo for the operation:<o:p></o:p></span></pre><pre><span |
style='font-family:Arial'>The operation encapsulates the old run behavior, as well as the undo and redo for the operation:<o:p></o:p></span></pre><pre><span |
| 2008 |
style='font-family:Arial'><o:p> </o:p></span></pre><pre>class EditorOperation extends AbstractOperation {</pre><pre><span style='mso-spacerun:yes'> </span>Shell fShell;</pre><pre><span style='mso-spacerun:yes'> </span>String fEditorName;</pre><pre><span style='mso-spacerun:yes'> </span>public EditorOperation(String label, Shell shell, String editorName) {</pre><pre><span style='mso-spacerun:yes'> </span>super(label);</pre><pre><span style='mso-spacerun:yes'> </span>fShell = shell;</pre><pre><span style='mso-spacerun:yes'> </span>fEditorName = editorName;</pre><pre><span style='mso-spacerun:yes'> </span></pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>public IStatus execute(IProgressMonitor monitor) {</pre><pre><span style='mso-spacerun:yes'> </span>MessageDialog.openInformation(</pre><pre><span style='mso-spacerun:yes'> </span>fShell,</pre><pre><span style='mso-spacerun:yes'> </span>MessageUtil.getString("Readme_Editor"), </pre><pre><span style='mso-spacerun:yes'> </span>MessageUtil.format("ReadmeEditorActionExecuted", </pre><pre><span |
style='font-family:Arial'><o:p> </o:p></span></pre><pre>class <span |
| 2009 |
style='mso-tab-count:3'> </span>new Object[] { getLabel(), fEditorName }));<span style='mso-spacerun:yes'> </span></pre><pre><span style='mso-spacerun:yes'> </span>return Status.OK_STATUS;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>public IStatus undo(IProgressMonitor monitor) {</pre><pre><span style='mso-spacerun:yes'> </span>// implement the undo here</pre><pre><span style='mso-spacerun:yes'> </span>return Status.OK_STATUS;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>public IStatus redo(IProgressMonitor monitor) {</pre><pre><span style='mso-spacerun:yes'> </span>// implement the redo here</pre><pre><span style='mso-spacerun:yes'> </span>return Status.OK_STATUS;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><o:p> </o:p></pre><pre><span |
class=SpellE>EditorOperation</span> extends <span class=SpellE>AbstractOperation</span> {</pre><pre><span style='mso-spacerun:yes'> </span>Shell <span |
| 2010 |
style='font-family:Arial'>If an IHandler is provided for a command instead of using actions, the execute method of the handler is mapped similarly to the run method in an action:<o:p></o:p></span></pre><pre><span |
class=SpellE>fShell</span>;</pre><pre><span style='mso-spacerun:yes'> </span>String <span |
| 2011 |
style='font-family:Arial'><o:p> </o:p></span></pre><pre><span style='mso-spacerun:yes'> </span>public Object execute(Map params) throws ExecutionException {</pre><pre><span style='mso-spacerun:yes'> </span>try {</pre><pre><span |
class=SpellE>fEditorName</span>;</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span>public <span |
| 2012 |
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>IEditorPart activeEditor = params.get("ACTIVE_EDITOR");</pre><pre><span |
class=SpellE>EditorOperation</span>(String label, Shell <span class=SpellE>shell</span>, String <span |
| 2013 |
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>Shell shell = params.get("SHELL");</pre><pre><span |
class=SpellE>editorName</span>) {</pre><pre><span style='mso-spacerun:yes'> </span>super(label);</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2014 |
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>String label = params.get("NAME");</pre><pre><span |
class=SpellE>fShell</span> = shell;</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2015 |
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>String editorName = MessageUtil.getString("Empty_Editor_Name"); </pre><pre><span style='mso-spacerun:yes'> </span>if (activeEditor != null)</pre><pre><span style='mso-spacerun:yes'> </span>editorName = activeEditor.getTitle();</pre><pre><span style='mso-spacerun:yes'> </span>// create the operation</pre><pre><span style='mso-spacerun:yes'> </span>IOperation operation =new EditorOperation(label, shell, editorName);</pre><pre><o:p> </o:p></pre><pre><span style='mso-spacerun:yes'> </span>// execute (and add to the history)</pre><pre><span style='mso-spacerun:yes'> </span>history.execute(operation, null);</pre><pre><span style='mso-spacerun:yes'> </span>} catch (Exception e) {</pre><pre><span style='mso-spacerun:yes'> </span>throw new ExecutionException(</pre><pre><span style='mso-spacerun:yes'> </span>"While executing the operation, an exception occurred", e); </pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>return null;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span |
class=SpellE>fEditorName</span> = <span class=SpellE>editorName</span>;</pre><pre><span style='mso-spacerun:yes'> </span></pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>public <span |
| 2016 |
style='font-family:Arial'><o:p> </o:p></span></pre><pre><span |
class=SpellE>IStatus</span> execute(<span class=SpellE>IProgressMonitor</span> monitor) {</pre><pre><span style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'> </span><span |
| 2017 |
style='font-family:Arial'>When an action launches a wizard. then the operation is typically created as part of processing the “Finish” button in the wizard.<span style='mso-spacerun:yes'> </span>Some restructuring may be required.<span style='mso-spacerun:yes'> </span>For example, wizards are often implemented in hierarchies and make use of convenience methods in the wizard hierarchy.<span style='mso-spacerun:yes'> </span>Some of these methods may have to move to a corresponding hierarchy of operations.</span> </pre> |
class=SpellE>MessageDialog.openInformation</span>(</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2018 |
|
class=SpellE>fShell</span>,</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2019 |
|
class=SpellE>MessageUtil.getString</span>("<span class=SpellE>Readme_Editor</span>"), </pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2020 |
|
class=SpellE>MessageUtil.format</span>("<span class=SpellE>ReadmeEditorActionExecuted</span>", </pre><pre><span |
| 2021 |
|
style='mso-tab-count:3'> </span>new Object[] { <span |
| 2022 |
|
class=SpellE>getLabel</span>(), <span class=SpellE>fEditorName</span> }));<span style='mso-spacerun:yes'> </span></pre><pre><span style='mso-spacerun:yes'> </span>return <span |
| 2023 |
|
class=SpellE>Status.OK_STATUS</span>;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>public <span |
| 2024 |
|
class=SpellE>IStatus</span> undo(<span class=SpellE>IProgressMonitor</span> monitor) {</pre><pre><span style='mso-spacerun:yes'> </span>// implement the undo here</pre><pre><span style='mso-spacerun:yes'> </span>return <span |
| 2025 |
|
class=SpellE>Status.OK_STATUS</span>;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>public <span |
| 2026 |
|
class=SpellE>IStatus</span> redo(<span class=SpellE>IProgressMonitor</span> monitor) {</pre><pre><span style='mso-spacerun:yes'> </span>// implement the redo here</pre><pre><span style='mso-spacerun:yes'> </span>return <span |
| 2027 |
|
class=SpellE>Status.OK_STATUS</span>;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><o:p> </o:p></pre><pre><span |
| 2028 |
|
style='font-family:Arial'>If an <span class=SpellE>IHandler</span> is provided for a command instead of using actions, the execute method of the handler is mapped similarly to the run method in an action:<o:p></o:p></span></pre><pre><span |
| 2029 |
|
style='font-family:Arial'><o:p> </o:p></span></pre><pre><span style='mso-spacerun:yes'> </span>public Object execute(Map <span |
| 2030 |
|
class=SpellE>params</span>) throws <span class=SpellE>ExecutionException</span> {</pre><pre><span style='mso-spacerun:yes'> </span>try {</pre><pre><span |
| 2031 |
|
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span><span |
| 2032 |
|
class=SpellE>IEditorPart</span> <span class=SpellE>activeEditor</span> = <span |
| 2033 |
|
class=SpellE>params.get</span>("ACTIVE_EDITOR");</pre><pre><span |
| 2034 |
|
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>Shell <span |
| 2035 |
|
class=SpellE>shell</span> = <span class=SpellE>params.get</span>("SHELL");</pre><pre><span |
| 2036 |
|
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>String label = <span |
| 2037 |
|
class=SpellE>params.get</span>("NAME");</pre><pre><span |
| 2038 |
|
style='mso-tab-count:1'> </span><span style='mso-spacerun:yes'> </span>String <span |
| 2039 |
|
class=SpellE>editorName</span> = <span class=SpellE>MessageUtil.getString</span>("<span |
| 2040 |
|
class=SpellE>Empty_Editor_Name</span>"); </pre><pre><span style='mso-spacerun:yes'> </span>if (<span |
| 2041 |
|
class=SpellE>activeEditor</span> != null)</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2042 |
|
class=SpellE>editorName</span> = <span class=SpellE>activeEditor.getTitle</span>();</pre><pre><span style='mso-spacerun:yes'> </span>// create the operation</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2043 |
|
class=SpellE>IOperation</span> operation =new <span class=SpellE>EditorOperation</span>(label, shell, <span |
| 2044 |
|
class=SpellE>editorName</span>);</pre><pre><o:p> </o:p></pre><pre><span style='mso-spacerun:yes'> </span>// execute (and add to the history)</pre><pre><span style='mso-spacerun:yes'> </span><span |
| 2045 |
|
class=SpellE>history.execute</span>(operation, null);</pre><pre><span style='mso-spacerun:yes'> </span>} catch (Exception e) {</pre><pre><span style='mso-spacerun:yes'> </span>throw new <span |
| 2046 |
|
class=SpellE>ExecutionException</span>(</pre><pre><span style='mso-spacerun:yes'> </span>"While executing the operation, an exception occurred", e); </pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span style='mso-spacerun:yes'> </span>return null;</pre><pre><span style='mso-spacerun:yes'> </span>}</pre><pre><span |
| 2047 |
|
style='font-family:Arial'><o:p> </o:p></span></pre> |
| 2048 |
|
|
| 2049 |
|
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
| 2050 |
|
Arial'>When an action launches a wizard.</span></span><span style='font-size: |
| 2051 |
|
10.0pt;font-family:Arial'> <span class=GramE>then</span> the operation is |
| 2052 |
|
typically created as part of processing the “Finish” button in the wizard.<span |
| 2053 |
|
style='mso-spacerun:yes'> </span>Some restructuring may be required.<span |
| 2054 |
|
style='mso-spacerun:yes'> </span>For example, wizards are often implemented in |
| 2055 |
|
hierarchies and make use of convenience methods in the wizard hierarchy.<span |
| 2056 |
|
style='mso-spacerun:yes'> </span>Some of these methods may have to move to a |
| 2057 |
|
corresponding hierarchy of operations. <o:p></o:p></span></p> |
| 2058 |
|
|
| 2059 |
<h3>Refactoring example:<span style='mso-spacerun:yes'> </span>mapping |
<h3>Refactoring example:<span style='mso-spacerun:yes'> </span>mapping |
| 2060 |
existing protocol to IOperation</h3> |
existing protocol to <span class=SpellE>IOperation</span></h3> |
| 2061 |
|
|
| 2062 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>In the |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>In the current |
| 2063 |
current SDK implementation, org.eclipse.ltk.core.refactoring provides an undo |
SDK implementation, <span class=SpellE>org.eclipse.ltk.core.refactoring</span> |
| 2064 |
framework for undoing refactoring operations.<span style='mso-spacerun:yes'> |
provides an undo framework for undoing refactoring operations.<span |
| 2065 |
</span>This framework is based on the notion of “Change” objects.<span |
style='mso-spacerun:yes'> </span>This framework is based on the notion of |
| 2066 |
style='mso-spacerun:yes'> </span>Change objects that can be undone are |
“Change” objects.<span style='mso-spacerun:yes'> </span>Change objects that |
| 2067 |
responsible for returning the undo version of a change when they are |
can be undone are responsible for returning the undo version of a change when |
| 2068 |
executed.<span style='mso-spacerun:yes'> </span>An undo stack is maintained by |
they are executed.<span style='mso-spacerun:yes'> </span>An undo stack is |
| 2069 |
an internal undo manager.<span style='mso-spacerun:yes'> </span>This undo |
maintained by an internal undo manager.<span style='mso-spacerun:yes'> |
| 2070 |
manager invalidates the history whenever an unknown workspace change |
</span>This undo manager invalidates the history whenever an unknown workspace |
| 2071 |
occurs.<span style='mso-spacerun:yes'> </span>Undo-aware objects send signals |
change occurs.<span style='mso-spacerun:yes'> </span>Undo-aware objects send |
| 2072 |
to the undo manager as they perform operations, so that the undo manager will |
signals to the undo manager as they perform operations, so that the undo |
| 2073 |
not invalidate the history.<o:p></o:p></span></p> |
manager will not invalidate the history.<o:p></o:p></span></p> |
| 2074 |
|
|
| 2075 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 2076 |
|
|
| 2078 |
integrated the refactoring change framework with the operations framework as |
integrated the refactoring change framework with the operations framework as |
| 2079 |
follows:<o:p></o:p></span></p> |
follows:<o:p></o:p></span></p> |
| 2080 |
|
|
| 2081 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l4 level1 lfo16; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l3 level1 lfo16; |
| 2082 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 2083 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>1.<span |
| 2084 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 2085 |
style='font-size:10.0pt;font-family:Arial'>The change objects were wrappered |
style='font-size:10.0pt;font-family:Arial'>The change objects were <span |
| 2086 |
with a class that implements IOperation (and IWorkspaceOperation) and maps the |
class=SpellE>wrappered</span> with a class that implements <span class=SpellE>IOperation</span> |
| 2087 |
operation protocol to the Change protocol.<o:p></o:p></span></p> |
(and <span class=SpellE>IWorkspaceOperation</span>) and maps the operation |
| 2088 |
|
protocol to the Change protocol.<o:p></o:p></span></p> |
| 2089 |
|
|
| 2090 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l4 level1 lfo16; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l3 level1 lfo16; |
| 2091 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 2092 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>2.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>2.<span |
| 2093 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 2095 |
replaced with an alternate implementation that uses the operations history to |
replaced with an alternate implementation that uses the operations history to |
| 2096 |
maintain the undo and redo history.<o:p></o:p></span></p> |
maintain the undo and redo history.<o:p></o:p></span></p> |
| 2097 |
|
|
| 2098 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l4 level1 lfo16; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l3 level1 lfo16; |
| 2099 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 2100 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>3.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>3.<span |
| 2101 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 2102 |
style='font-size:10.0pt;font-family:Arial'>The workspace listener and |
style='font-size:10.0pt;font-family:Arial'>The workspace listener and validation |
| 2103 |
validation strategy used in the Change framework was maintained since the |
strategy used in the Change framework was maintained since the timing of the |
| 2104 |
timing of the notifications was critical.<span style='mso-spacerun:yes'> |
notifications was critical.<span style='mso-spacerun:yes'> </span>Additional |
| 2105 |
</span>Additional integration work could be done to use the operations history |
integration work could be done to use the operations history listeners for the |
| 2106 |
listeners for the same purpose, or to change the validation strategy as more |
same purpose, or to change the validation strategy as more workspace operations |
| 2107 |
workspace operations are supported outside of refactoring.<o:p></o:p></span></p> |
are supported outside of refactoring.<o:p></o:p></span></p> |
| 2108 |
|
|
| 2109 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l4 level1 lfo16; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l3 level1 lfo16; |
| 2110 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 2111 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>4.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>4.<span |
| 2112 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 2116 |
affected by the workspace operation and determine whether another context |
affected by the workspace operation and determine whether another context |
| 2117 |
should be assigned to the operation.<o:p></o:p></span></p> |
should be assigned to the operation.<o:p></o:p></span></p> |
| 2118 |
|
|
| 2119 |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l4 level1 lfo16; |
<p class=MsoNormal style='margin-left:39.0pt;text-indent:-.25in;mso-list:l3 level1 lfo16; |
| 2120 |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 39.0pt'><![if !supportLists]><span style='font-size:10.0pt; |
| 2121 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>5.<span |
| 2122 |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><span |
| 2124 |
undone and redone from any view or editor that installed the undo and redo |
undone and redone from any view or editor that installed the undo and redo |
| 2125 |
handlers on the workspace context.<o:p></o:p></span></p> |
handlers on the workspace context.<o:p></o:p></span></p> |
| 2126 |
|
|
| 2127 |
<h3>Text editor example:<span style='mso-spacerun:yes'> </span>implementing |
<h3>Text editor example:<span style='mso-spacerun:yes'> </span>implementing <span |
| 2128 |
IOperation in preexisting commands</h3> |
class=SpellE>IOperation</span> in preexisting commands</h3> |
| 2129 |
|
|
| 2130 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The JFace |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The <span |
| 2131 |
text framework supports undo and redo of text editing operations.<span |
class=SpellE>JFace</span> text framework supports undo and redo of text editing |
| 2132 |
style='mso-spacerun:yes'> </span>This implementation relies on private undo |
operations.<span style='mso-spacerun:yes'> </span>This implementation relies |
| 2133 |
stacks that are maintained by each editor.<span style='mso-spacerun:yes'> |
on private undo stacks that are maintained by each editor.<span |
| 2134 |
</span>The JFace IUndoManager listens to text changes coming from the |
style='mso-spacerun:yes'> </span>The <span class=SpellE>JFace</span> <span |
| 2135 |
underlying widget, and builds a TextCommand for each undoable edit.<span |
class=SpellE>IUndoManager</span> listens to text changes coming from the |
| 2136 |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
underlying widget, and builds a <span class=SpellE>TextCommand</span> for each |
| 2137 |
|
undoable edit.<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 2138 |
|
|
| 2139 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></p> |
| 2140 |
|
|
| 2141 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>A prototype |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>A prototype |
| 2142 |
integrated the text undo in JFace with the operations framework as follows:<o:p></o:p></span></p> |
integrated the text undo in <span class=SpellE>JFace</span> with the operations |
| 2143 |
|
framework as follows:<o:p></o:p></span></p> |
| 2144 |
|
|
| 2145 |
<ol style='margin-top:0in' start=1 type=1> |
<ol style='margin-top:0in' start=1 type=1> |
| 2146 |
<li class=MsoNormal style='mso-list:l5 level1 lfo19;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l4 level1 lfo19;tab-stops:list .5in'><span |
| 2147 |
style='font-size:10.0pt;font-family:Arial'>The existing TextCommand was |
style='font-size:10.0pt;font-family:Arial'>The existing <span |
| 2148 |
altered to implement the IOperation interface.<o:p></o:p></span></li> |
class=SpellE>TextCommand</span> was altered to implement the <span |
| 2149 |
<li class=MsoNormal style='mso-list:l5 level1 lfo19;tab-stops:list .5in'><span |
class=SpellE>IOperation</span> interface.<o:p></o:p></span></li> |
| 2150 |
|
<li class=MsoNormal style='mso-list:l4 level1 lfo19;tab-stops:list .5in'><span |
| 2151 |
style='font-size:10.0pt;font-family:Arial'>Specialized contexts (one |
style='font-size:10.0pt;font-family:Arial'>Specialized contexts (one |
| 2152 |
instance for each text editor) are assigned to the operations.<o:p></o:p></span></li> |
instance for each text editor) are assigned to the operations.<o:p></o:p></span></li> |
| 2153 |
<li class=MsoNormal style='mso-list:l5 level1 lfo19;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l4 level1 lfo19;tab-stops:list .5in'><span |
| 2154 |
style='font-size:10.0pt;font-family:Arial'>The existing UndoManager was |
style='font-size:10.0pt;font-family:Arial'>The existing <span |
| 2155 |
replaced with an alternate implementation that added text commands to the |
class=SpellE>UndoManager</span> was replaced with an alternate |
| 2156 |
operations history instead of a local stack, and used the operation |
implementation that added text commands to the operations history instead |
| 2157 |
history protocol when handling undo and redo commands.<o:p></o:p></span></li> |
of a local stack, and used the operation history protocol when handling |
| 2158 |
<li class=MsoNormal style='mso-list:l5 level1 lfo19;tab-stops:list .5in'><span |
undo and redo commands.<o:p></o:p></span></li> |
| 2159 |
|
<li class=MsoNormal style='mso-list:l4 level1 lfo19;tab-stops:list .5in'><span |
| 2160 |
style='font-size:10.0pt;font-family:Arial'>The undo manager installs a |
style='font-size:10.0pt;font-family:Arial'>The undo manager installs a |
| 2161 |
listener on the history to monitor new operations that are added to the |
listener on the history to monitor new operations that are added to the |
| 2162 |
history.<o:p></o:p></span></li> |
history.<o:p></o:p></span></li> |
| 2163 |
<li class=MsoNormal style='mso-list:l5 level1 lfo19;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l4 level1 lfo19;tab-stops:list .5in'><span |
| 2164 |
style='font-size:10.0pt;font-family:Arial'>When an “outside” operation is |
style='font-size:10.0pt;font-family:Arial'>When an “outside” operation is |
| 2165 |
added to the history, the undo manager consults the editor’s operation |
added to the history, the undo manager consults the editor’s operation |
| 2166 |
context to see if the outside operation is relevant.<span |
context to see if the outside operation is relevant.<span |