| 1 |
<html xmlns:o="urn:schemas-microsoft-com:office:office" |
<html xmlns:v="urn:schemas-microsoft-com:vml" |
| 2 |
|
xmlns:o="urn:schemas-microsoft-com:office:office" |
| 3 |
xmlns:w="urn:schemas-microsoft-com:office:word" |
xmlns:w="urn:schemas-microsoft-com:office:word" |
| 4 |
|
xmlns:st1="urn:schemas-microsoft-com:office:smarttags" |
| 5 |
xmlns="http://www.w3.org/TR/REC-html40"> |
xmlns="http://www.w3.org/TR/REC-html40"> |
| 6 |
|
|
| 7 |
<head> |
<head> |
| 11 |
<meta name=Originator content="Microsoft Word 10"> |
<meta name=Originator content="Microsoft Word 10"> |
| 12 |
<link rel=File-List href="undo-redo%20support_files/filelist.xml"> |
<link rel=File-List href="undo-redo%20support_files/filelist.xml"> |
| 13 |
<title>Undo/redo support in Eclipse</title> |
<title>Undo/redo support in Eclipse</title> |
| 14 |
|
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags" |
| 15 |
|
name="date"/> |
| 16 |
<!--[if gte mso 9]><xml> |
<!--[if gte mso 9]><xml> |
| 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>2</o:Revision> |
<o:Revision>2</o:Revision> |
| 21 |
<o:TotalTime>4244</o:TotalTime> |
<o:TotalTime>4237</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-11-09T00:31:00Z</o:Created> |
<o:Created>2004-11-09T19:14:00Z</o:Created> |
| 24 |
<o:LastSaved>2004-11-09T00:31:00Z</o:LastSaved> |
<o:LastSaved>2004-11-09T19:14:00Z</o:LastSaved> |
| 25 |
<o:Pages>1</o:Pages> |
<o:Pages>1</o:Pages> |
| 26 |
<o:Words>6200</o:Words> |
<o:Words>6221</o:Words> |
| 27 |
<o:Characters>35342</o:Characters> |
<o:Characters>35461</o:Characters> |
| 28 |
<o:Company>IBM</o:Company> |
<o:Company>IBM</o:Company> |
| 29 |
<o:Lines>294</o:Lines> |
<o:Lines>295</o:Lines> |
| 30 |
<o:Paragraphs>82</o:Paragraphs> |
<o:Paragraphs>83</o:Paragraphs> |
| 31 |
<o:CharactersWithSpaces>41460</o:CharactersWithSpaces> |
<o:CharactersWithSpaces>41599</o:CharactersWithSpaces> |
| 32 |
<o:Version>10.6626</o:Version> |
<o:Version>10.6626</o:Version> |
| 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> |
<w:SpellingState>Clean</w:SpellingState> |
|
<w:GrammarState>Clean</w:GrammarState> |
|
| 37 |
<w:Compatibility> |
<w:Compatibility> |
| 38 |
<w:BreakWrappedTables/> |
<w:BreakWrappedTables/> |
| 39 |
<w:SnapToGridInCell/> |
<w:SnapToGridInCell/> |
| 42 |
</w:Compatibility> |
</w:Compatibility> |
| 43 |
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> |
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> |
| 44 |
</w:WordDocument> |
</w:WordDocument> |
| 45 |
</xml><![endif]--> |
</xml><![endif]--><!--[if !mso]><object |
| 46 |
|
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object> |
| 47 |
|
<style> |
| 48 |
|
st1\:*{behavior:url(#ieooui) } |
| 49 |
|
</style> |
| 50 |
|
<![endif]--> |
| 51 |
<style> |
<style> |
| 52 |
<!-- |
<!-- |
| 53 |
/* Font Definitions */ |
/* Font Definitions */ |
| 145 |
font-size:12.0pt; |
font-size:12.0pt; |
| 146 |
font-family:"Times New Roman"; |
font-family:"Times New Roman"; |
| 147 |
mso-fareast-font-family:"Times New Roman";} |
mso-fareast-font-family:"Times New Roman";} |
| 148 |
|
a:link, span.MsoHyperlink |
| 149 |
|
{color:#0000EE; |
| 150 |
|
text-decoration:underline; |
| 151 |
|
text-underline:single;} |
| 152 |
|
a:visited, span.MsoHyperlinkFollowed |
| 153 |
|
{color:purple; |
| 154 |
|
text-decoration:underline; |
| 155 |
|
text-underline:single;} |
| 156 |
span.SpellE |
span.SpellE |
| 157 |
{mso-style-name:""; |
{mso-style-name:""; |
| 158 |
mso-spl-e:yes;} |
mso-spl-e:yes;} |
|
span.GramE |
|
|
{mso-style-name:""; |
|
|
mso-gram-e:yes;} |
|
| 159 |
@page Section1 |
@page Section1 |
| 160 |
{size:8.5in 11.0in; |
{size:8.5in 11.0in; |
| 161 |
margin:1.0in .75in .5in 1.0in; |
margin:1.0in .75in .5in 1.0in; |
| 557 |
<![endif]--> |
<![endif]--> |
| 558 |
</head> |
</head> |
| 559 |
|
|
| 560 |
<body lang=EN-US style='tab-interval:.5in'> |
<body lang=EN-US link="#0000EE" vlink=purple style='tab-interval:.5in'> |
| 561 |
|
|
| 562 |
<div class=Section1> |
<div class=Section1> |
| 563 |
|
|
| 564 |
<h1>Generalized Undo Support in Eclipse</h1> |
<h1>Generalized Undo Support in Eclipse</h1> |
| 565 |
|
|
| 566 |
|
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Last |
| 567 |
|
updated:<span style='mso-spacerun:yes'> </span></span><st1:date Month="11" |
| 568 |
|
Day="9" Year="2004"><span style='font-size:10.0pt;font-family:Arial'>Nov 9, |
| 569 |
|
2004</span></st1:date><span style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
| 570 |
|
|
| 571 |
|
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Status:<span |
| 572 |
|
style='mso-spacerun:yes'> </span>Under investigation (see bug </span><a |
| 573 |
|
href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37716">37716</a>)<span |
| 574 |
|
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
| 575 |
|
|
| 576 |
<h2>Problem Description<o:p></o:p></h2> |
<h2>Problem Description<o:p></o:p></h2> |
| 577 |
|
|
| 578 |
<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 |
| 606 |
font-family:"Courier New";mso-fareast-font-family:"Courier New"'><span |
font-family:"Courier New";mso-fareast-font-family:"Courier New"'><span |
| 607 |
style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> |
style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> |
| 608 |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>Is |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>Is |
| 609 |
<span class=GramE>undo</span> strictly linear?<o:p></o:p></span></p> |
undo strictly linear?<o:p></o:p></span></p> |
| 610 |
|
|
| 611 |
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l21 level2 lfo1; |
<p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;mso-list:l21 level2 lfo1; |
| 612 |
tab-stops:list 1.0in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 1.0in'><![if !supportLists]><span style='font-size:10.0pt; |
| 642 |
implementation of a centralized undo mechanism should be straightforward, it |
implementation of a centralized undo mechanism should be straightforward, it |
| 643 |
has not been provided in previous releases due to problems in defining the |
has not been provided in previous releases due to problems in defining the |
| 644 |
proper undo semantics across different plug-ins.<span |
proper undo semantics across different plug-ins.<span |
| 645 |
style='mso-spacerun:yes'> </span>The challenge in defining consistent, |
style='mso-spacerun:yes'> </span>The challenge in defining consistent, predictable |
| 646 |
predictable undo semantics can best be understood by looking at the two |
undo semantics can best be understood by looking at the two different undo |
| 647 |
different undo models provided in the R3.0.1 release of the base Eclipse SDK.<span |
models provided in the R3.0.1 release of the base Eclipse SDK.<span |
| 648 |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 649 |
|
|
| 650 |
<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> |
| 695 |
<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> |
| 696 |
|
|
| 697 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The context |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The context |
| 698 |
for an operation helps determine where the undo for that operation is available.<span |
for an operation helps determine where the undo for that operation is |
| 699 |
style='mso-spacerun:yes'> </span>When the contexts for different operations |
available.<span style='mso-spacerun:yes'> </span>When the contexts for different |
| 700 |
are completely separate, the semantics for undoing an operation from either |
operations are completely separate, the semantics for undoing an operation from |
| 701 |
context are easily understood.<span style='mso-spacerun:yes'> </span>Undoing an |
either context are easily understood.<span style='mso-spacerun:yes'> |
| 702 |
operation from one context does not affect the operation history from the other |
</span>Undoing an operation from one context does not affect the operation |
| 703 |
context. <o:p></o:p></span></p> |
history from the other context. <o:p></o:p></span></p> |
| 704 |
|
|
| 705 |
<h3>Undo scopes </h3> |
<h3>Undo scopes </h3> |
| 706 |
|
|
| 812 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Examining |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Examining |
| 813 |
scenarios and the desired behavior shows that any one (or more) of the three |
scenarios and the desired behavior shows that any one (or more) of the three |
| 814 |
alternatives are desirable at different times, depending on what the user is |
alternatives are desirable at different times, depending on what the user is |
| 815 |
trying to achieve.<span style='mso-spacerun:yes'> </span>Appendix A collects various |
trying to achieve.<span style='mso-spacerun:yes'> </span>Appendix A collects |
| 816 |
<span class=SpellE>refactoring</span> and edit scenarios to help demonstrate |
various <span class=SpellE>refactoring</span> and edit scenarios to help |
| 817 |
the challenge.<o:p></o:p></span></p> |
demonstrate the challenge.<o:p></o:p></span></p> |
| 818 |
|
|
| 819 |
<h3>Linear vs. selective undo<o:p></o:p></h3> |
<h3>Linear vs. selective undo<o:p></o:p></h3> |
| 820 |
|
|
| 994 |
|
|
| 995 |
<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> |
| 996 |
|
|
| 997 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 998 |
style='font-size:10.0pt;font-family:Arial'>public</span></span><span |
font-family:Arial'>public interface <span class=SpellE>IOperation</span> {<o:p></o:p></span></p> |
|
style='font-size:10.0pt;font-family:Arial'> interface <span class=SpellE>IOperation</span> |
|
|
{<o:p></o:p></span></p> |
|
| 999 |
|
|
| 1000 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1001 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void <span class=SpellE>addContext</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>addContext</span>(<span |
|
| 1002 |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
| 1003 |
add the context to the operation’s contexts<o:p></o:p></span></p> |
add the context to the operation’s contexts<o:p></o:p></span></p> |
| 1004 |
|
|
| 1005 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
| 1006 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>boolean</span></span></span><span |
style='font-size:10.0pt;font-family:Arial'>boolean</span></span><span |
| 1007 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>hasContext</span>(<span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>hasContext</span>(<span |
| 1008 |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>//answer |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>//answer |
| 1009 |
whether the receiver’s contexts contain the context<o:p></o:p></span></p> |
whether the receiver’s contexts contain the context<o:p></o:p></span></p> |
| 1010 |
|
|
| 1011 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1012 |
font-family:Arial'>List <span class=SpellE><span class=GramE>getContexts</span></span><span |
font-family:Arial'>List <span class=SpellE>getContexts</span>();<span |
| 1013 |
class=GramE>(</span>);<span style='mso-tab-count:1'> </span>// |
style='mso-tab-count:1'> </span>// answer |
| 1014 |
answer the list of contexts assigned to the receiver.<o:p></o:p></span></p> |
the list of contexts assigned to the receiver.<o:p></o:p></span></p> |
| 1015 |
|
|
| 1016 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
| 1017 |
style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
| 1018 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>canExecute</span>();<span |
|
class=GramE>canExecute</span></span><span class=GramE>(</span>);<span |
|
| 1019 |
style='mso-tab-count:1'> </span>// answer whether |
style='mso-tab-count:1'> </span>// answer whether |
| 1020 |
the receiver can be executed<o:p></o:p></span></p> |
the receiver can be executed<o:p></o:p></span></p> |
| 1021 |
|
|
| 1022 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
| 1023 |
style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
| 1024 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>canRedo</span>();<span |
|
class=GramE>canRedo</span></span><span class=GramE>(</span>);<span |
|
| 1025 |
style='mso-tab-count:1'> </span>// answer |
style='mso-tab-count:1'> </span>// answer |
| 1026 |
whether the receiver can be redone<o:p></o:p></span></p> |
whether the receiver can be redone<o:p></o:p></span></p> |
| 1027 |
|
|
| 1028 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=SpellE><span |
| 1029 |
style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
| 1030 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>canUndo</span>();<span |
|
class=GramE>canUndo</span></span><span class=GramE>(</span>);<span |
|
| 1031 |
style='mso-tab-count:1'> </span>// answer |
style='mso-tab-count:1'> </span>// answer |
| 1032 |
whether the receiver can be undone<o:p></o:p></span></p> |
whether the receiver can be undone<o:p></o:p></span></p> |
| 1033 |
|
|
| 1034 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1035 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void execute(<span class=SpellE>IProgressMonitor</span>);<span |
|
style='font-size:10.0pt;font-family:Arial'> execute(<span class=SpellE>IProgressMonitor</span>);<span |
|
| 1036 |
style='mso-tab-count:1'> </span>// execute the operation <o:p></o:p></span></p> |
style='mso-tab-count:1'> </span>// execute the operation <o:p></o:p></span></p> |
| 1037 |
|
|
| 1038 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1039 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void redo(<span class=SpellE>IProgressMonitor</span>);<span |
|
style='font-size:10.0pt;font-family:Arial'> redo(<span class=SpellE>IProgressMonitor</span>);<span |
|
| 1040 |
style='mso-tab-count:1'> </span>// redo the operation<o:p></o:p></span></p> |
style='mso-tab-count:1'> </span>// redo the operation<o:p></o:p></span></p> |
| 1041 |
|
|
| 1042 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1043 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void undo(<span class=SpellE>IProgressMonitor</span>);<span |
|
style='font-size:10.0pt;font-family:Arial'> undo(<span class=SpellE>IProgressMonitor</span>);<span |
|
| 1044 |
style='mso-tab-count:1'> </span>// undo the operation<o:p></o:p></span></p> |
style='mso-tab-count:1'> </span>// undo the operation<o:p></o:p></span></p> |
| 1045 |
|
|
| 1046 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1047 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void dispose();<span style='mso-tab-count:1'> </span>// |
| 1048 |
style='font-size:10.0pt;font-family:Arial'> dispose();<span style='mso-tab-count: |
the operation is no longer needed<o:p></o:p></span></p> |
|
1'> </span>// the operation is no |
|
|
longer needed<o:p></o:p></span></p> |
|
| 1049 |
|
|
| 1050 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1051 |
font-family:Arial'>String <span class=SpellE><span class=GramE>getLabel</span></span><span |
font-family:Arial'>String <span class=SpellE>getLabel</span>();<span |
| 1052 |
class=GramE>(</span>);<span style='mso-tab-count:1'> </span>// |
style='mso-tab-count:1'> </span>// provide |
| 1053 |
provide a label to name this operation for the user<o:p></o:p></span></p> |
a label to name this operation for the user<o:p></o:p></span></p> |
| 1054 |
|
|
| 1055 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1056 |
font-family:Arial'>String <span class=SpellE><span class=GramE>getDescription</span></span><span |
font-family:Arial'>String <span class=SpellE>getDescription</span>();<span |
| 1057 |
class=GramE>(</span>);<span style='mso-tab-count:1'> </span>// |
style='mso-tab-count:1'> </span>// provide a |
| 1058 |
provide a description of this operation for the user<o:p></o:p></span></p> |
description of this operation for the user<o:p></o:p></span></p> |
| 1059 |
|
|
| 1060 |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
<p class=MsoNormal style='tab-stops:.5in 189.0pt'><span style='font-size:10.0pt; |
| 1061 |
font-family:Arial'>}<o:p></o:p></span></p> |
font-family:Arial'>}<o:p></o:p></span></p> |
| 1064 |
style='mso-tab-count:1'> </span><o:p></o:p></span></p> |
style='mso-tab-count:1'> </span><o:p></o:p></span></p> |
| 1065 |
|
|
| 1066 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1067 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>public</span></span><span |
style='font-size:10.0pt;font-family:Arial'>public interface <span class=SpellE>IOperationHistory</span> |
|
style='font-size:10.0pt;font-family:Arial'> interface <span class=SpellE>IOperationHistory</span> |
|
| 1068 |
{<o:p></o:p></span></p> |
{<o:p></o:p></span></p> |
| 1069 |
|
|
| 1070 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1071 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void add(<span class=SpellE>IOperation</span>);<span |
|
style='font-size:10.0pt;font-family:Arial'> add(<span class=SpellE>IOperation</span>);<span |
|
| 1072 |
style='mso-tab-count:1'> </span>// add |
style='mso-tab-count:1'> </span>// add |
| 1073 |
the specified operation to the history<o:p></o:p></span></p> |
the specified operation to the history<o:p></o:p></span></p> |
| 1074 |
|
|
| 1075 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1076 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void redo(<span class=SpellE>IOperationContext</span>, |
|
style='font-size:10.0pt;font-family:Arial'> redo(<span class=SpellE>IOperationContext</span>, |
|
| 1077 |
<span class=SpellE>IProgressMonitor</span>);<o:p></o:p></span></p> |
<span class=SpellE>IProgressMonitor</span>);<o:p></o:p></span></p> |
| 1078 |
|
|
| 1079 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1081 |
perform the redo operation for the given context<o:p></o:p></span></p> |
perform the redo operation for the given context<o:p></o:p></span></p> |
| 1082 |
|
|
| 1083 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1084 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void undo(<span class=SpellE>IOperationContext</span>, |
|
style='font-size:10.0pt;font-family:Arial'> undo(<span class=SpellE>IOperationContext</span>, |
|
| 1085 |
<span class=SpellE>IProgressMonitor</span>);<o:p></o:p></span></p> |
<span class=SpellE>IProgressMonitor</span>);<o:p></o:p></span></p> |
| 1086 |
|
|
| 1087 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1090 |
|
|
| 1091 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1092 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
| 1093 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>canRedoIn</span>(<span |
|
class=GramE>canRedoIn</span></span><span class=GramE>(</span><span |
|
| 1094 |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
| 1095 |
answer whether redo is available in the given context<o:p></o:p></span></p> |
answer whether redo is available in the given context<o:p></o:p></span></p> |
| 1096 |
|
|
| 1097 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1098 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IStatus</span></span><span |
| 1099 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>canUndoIn</span>(<span |
|
class=GramE>canUndoIn</span></span><span class=GramE>(</span><span |
|
| 1100 |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
| 1101 |
answer whether undo is available in the given context<o:p></o:p></span></p> |
answer whether undo is available in the given context<o:p></o:p></span></p> |
| 1102 |
|
|
| 1103 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1104 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void <span class=SpellE>addOperationHistoryListener</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>addOperationHistoryListener</span>(<span |
|
| 1105 |
class=SpellE>IOperationHistoryListener</span>);<o:p></o:p></span></p> |
class=SpellE>IOperationHistoryListener</span>);<o:p></o:p></span></p> |
| 1106 |
|
|
| 1107 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1109 |
add a listener for changes to the operation history<o:p></o:p></span></p> |
add a listener for changes to the operation history<o:p></o:p></span></p> |
| 1110 |
|
|
| 1111 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1112 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void <span class=SpellE>removeOperationHistoryListener</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>removeOperationHistoryListener</span>(<span |
|
| 1113 |
class=SpellE>IOperationHistoryListener</span>);<o:p></o:p></span></p> |
class=SpellE>IOperationHistoryListener</span>);<o:p></o:p></span></p> |
| 1114 |
|
|
| 1115 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1118 |
|
|
| 1119 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1120 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
| 1121 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>getRedoFor</span>(<span |
|
class=GramE>getRedoFor</span></span><span class=GramE>(</span><span |
|
| 1122 |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
| 1123 |
get the redo operation for the given context<o:p></o:p></span></p> |
get the redo operation for the given context<o:p></o:p></span></p> |
| 1124 |
|
|
| 1125 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1126 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
| 1127 |
style='font-size:10.0pt;font-family:Arial'> [] <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> [] <span class=SpellE>getRedoHistoryFor</span>(<span |
|
class=GramE>getRedoHistoryFor</span></span><span class=GramE>(</span><span |
|
| 1128 |
class=SpellE>IOperationContext</span>);<span style='mso-spacerun:yes'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-spacerun:yes'> </span>// |
| 1129 |
answer the redo history list for the given context<o:p></o:p></span></p> |
answer the redo history list for the given context<o:p></o:p></span></p> |
| 1130 |
|
|
| 1131 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1132 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
| 1133 |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>getUndoFor</span>(<span |
|
class=GramE>getUndoFor</span></span><span class=GramE>(</span><span |
|
| 1134 |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-tab-count:1'> </span>// |
| 1135 |
answer the undo operation for the given context<o:p></o:p></span></p> |
answer the undo operation for the given context<o:p></o:p></span></p> |
| 1136 |
|
|
| 1137 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1138 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>IOperation</span></span><span |
| 1139 |
style='font-size:10.0pt;font-family:Arial'> [] <span class=SpellE><span |
style='font-size:10.0pt;font-family:Arial'> [] <span class=SpellE>getUndoHistoryFor</span>(<span |
|
class=GramE>getUndoHistoryFor</span></span><span class=GramE>(</span><span |
|
| 1140 |
class=SpellE>IOperationContext</span>);<span style='mso-spacerun:yes'> </span>// |
class=SpellE>IOperationContext</span>);<span style='mso-spacerun:yes'> </span>// |
| 1141 |
answer the undo history list for the given context<o:p></o:p></span></p> |
answer the undo history list for the given context<o:p></o:p></span></p> |
| 1142 |
|
|
| 1143 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1144 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void <span class=SpellE>disposeAll</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>disposeAll</span>(<span |
|
| 1145 |
class=SpellE>IOperationContext</span>);<o:p></o:p></span></p> |
class=SpellE>IOperationContext</span>);<o:p></o:p></span></p> |
| 1146 |
|
|
| 1147 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1154 |
determine how to handle operations that have additional contexts.<o:p></o:p></span></p> |
determine how to handle operations that have additional contexts.<o:p></o:p></span></p> |
| 1155 |
|
|
| 1156 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1157 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
style='font-size:10.0pt;font-family:Arial'>void <span class=SpellE>setLimit</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>setLimit</span>(<span |
|
| 1158 |
class=SpellE>int</span>);<o:p></o:p></span></p> |
class=SpellE>int</span>);<o:p></o:p></span></p> |
| 1159 |
|
|
| 1160 |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
<p class=MsoNormal style='tab-stops:.5in .75in 207.0pt 3.5in 297.0pt 4.75in'><span |
| 1172 |
<p class=MsoNormal style='tab-stops:.75in 207.0pt'><span style='font-size:10.0pt; |
<p class=MsoNormal style='tab-stops:.75in 207.0pt'><span style='font-size:10.0pt; |
| 1173 |
font-family:Arial'><o:p> </o:p></span></p> |
font-family:Arial'><o:p> </o:p></span></p> |
| 1174 |
|
|
| 1175 |
<p class=MsoNormal style='tab-stops:207.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:207.0pt'><span style='font-size:10.0pt; |
| 1176 |
style='font-size:10.0pt;font-family:Arial'>public</span></span><span |
font-family:Arial'>public interface <span class=SpellE>IOperationHistoryListener</span> |
|
style='font-size:10.0pt;font-family:Arial'> interface <span class=SpellE>IOperationHistoryListener</span> |
|
| 1177 |
{<o:p></o:p></span></p> |
{<o:p></o:p></span></p> |
| 1178 |
|
|
| 1179 |
<p class=MsoNormal style='tab-stops:207.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:207.0pt'><span style='font-size:10.0pt; |
| 1180 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void <span class=SpellE>operationAdded</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>operationAdded</span>(<span |
|
| 1181 |
class=SpellE>IOperation</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperation</span>);<span style='mso-tab-count:1'> </span>// |
| 1182 |
an operation has been added to the history<o:p></o:p></span></p> |
an operation has been added to the history<o:p></o:p></span></p> |
| 1183 |
|
|
| 1184 |
<p class=MsoNormal style='tab-stops:207.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:207.0pt'><span style='font-size:10.0pt; |
| 1185 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void <span class=SpellE>aboutToUndo</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>aboutToUndo</span>(<span |
|
| 1186 |
class=SpellE>IOperation</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperation</span>);<span style='mso-tab-count:1'> </span>// |
| 1187 |
the operation is about to be undone<o:p></o:p></span></p> |
the operation is about to be undone<o:p></o:p></span></p> |
| 1188 |
|
|
| 1189 |
<p class=MsoNormal style='tab-stops:207.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:207.0pt'><span style='font-size:10.0pt; |
| 1190 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void undone(<span class=SpellE>IOperation</span>);<span |
|
style='font-size:10.0pt;font-family:Arial'> undone(<span class=SpellE>IOperation</span>);<span |
|
| 1191 |
style='mso-tab-count:1'> </span>// the |
style='mso-tab-count:1'> </span>// the |
| 1192 |
operation was undone<o:p></o:p></span></p> |
operation was undone<o:p></o:p></span></p> |
| 1193 |
|
|
| 1194 |
<p class=MsoNormal style='tab-stops:207.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:207.0pt'><span style='font-size:10.0pt; |
| 1195 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void <span class=SpellE>aboutToRedo</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>aboutToRedo</span>(<span |
|
| 1196 |
class=SpellE>IOperation</span>);<span style='mso-tab-count:1'> </span>// |
class=SpellE>IOperation</span>);<span style='mso-tab-count:1'> </span>// |
| 1197 |
the operation is about to be redone<o:p></o:p></span></p> |
the operation is about to be redone<o:p></o:p></span></p> |
| 1198 |
|
|
| 1199 |
<p class=MsoNormal style='tab-stops:207.0pt'><span class=GramE><span |
<p class=MsoNormal style='tab-stops:207.0pt'><span style='font-size:10.0pt; |
| 1200 |
style='font-size:10.0pt;font-family:Arial'>void</span></span><span |
font-family:Arial'>void redone(<span class=SpellE>IOperation</span>);<span |
|
style='font-size:10.0pt;font-family:Arial'> redone(<span class=SpellE>IOperation</span>);<span |
|
| 1201 |
style='mso-tab-count:1'> </span>// the |
style='mso-tab-count:1'> </span>// the |
| 1202 |
operation was redone<o:p></o:p></span></p> |
operation was redone<o:p></o:p></span></p> |
| 1203 |
|
|
| 1206 |
|
|
| 1207 |
<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> |
| 1208 |
|
|
| 1209 |
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>public |
|
Arial'>public</span></span><span style='font-size:10.0pt;font-family:Arial'> |
|
| 1210 |
interface <span class=SpellE>IOperationContext</span> {<o:p></o:p></span></p> |
interface <span class=SpellE>IOperationContext</span> {<o:p></o:p></span></p> |
| 1211 |
|
|
| 1212 |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1213 |
Arial'>IOperationApproval</span></span><span style='font-size:10.0pt; |
Arial'>IOperationApproval</span></span><span style='font-size:10.0pt; |
| 1214 |
font-family:Arial'> <span class=SpellE><span class=GramE>getOperationApproval</span></span><span |
font-family:Arial'> <span class=SpellE>getOperationApproval</span>();<o:p></o:p></span></p> |
|
class=GramE>(</span>);<o:p></o:p></span></p> |
|
| 1215 |
|
|
| 1216 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>String <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>String <span |
| 1217 |
class=SpellE><span class=GramE>getDescription</span></span><span class=GramE>(</span>);<o:p></o:p></span></p> |
class=SpellE>getDescription</span>();<o:p></o:p></span></p> |
| 1218 |
|
|
| 1219 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>String <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>String <span |
| 1220 |
class=SpellE><span class=GramE>getLabel</span></span><span class=GramE>(</span>);<o:p></o:p></span></p> |
class=SpellE>getLabel</span>();<o:p></o:p></span></p> |
| 1221 |
|
|
| 1222 |
<p class=MsoNormal><span class=SpellE><span class=GramE><span style='font-size: |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1223 |
10.0pt;font-family:Arial'>boolean</span></span></span><span style='font-size: |
Arial'>boolean</span></span><span style='font-size:10.0pt;font-family:Arial'> |
| 1224 |
10.0pt;font-family:Arial'> equals(<span class=SpellE>IOperationContext</span>);<o:p></o:p></span></p> |
equals(<span class=SpellE>IOperationContext</span>);<o:p></o:p></span></p> |
| 1225 |
|
|
| 1226 |
<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> |
| 1227 |
|
|
| 1228 |
<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> |
| 1229 |
|
|
| 1230 |
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>public |
|
Arial'>public</span></span><span style='font-size:10.0pt;font-family:Arial'> |
|
| 1231 |
interface <span class=SpellE>IOperationApproval</span> {<o:p></o:p></span></p> |
interface <span class=SpellE>IOperationApproval</span> {<o:p></o:p></span></p> |
| 1232 |
|
|
| 1233 |
<p class=MsoNormal><span class=SpellE><span class=GramE><span style='font-size: |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1234 |
10.0pt;font-family:Arial'>boolean</span></span></span><span style='font-size: |
Arial'>boolean</span></span><span style='font-size:10.0pt;font-family:Arial'> <span |
| 1235 |
10.0pt;font-family:Arial'> <span class=SpellE>proceedUndoing</span>(<span |
class=SpellE>proceedUndoing</span>(<span class=SpellE>IOperation</span>);<o:p></o:p></span></p> |
| 1236 |
class=SpellE>IOperation</span>);<o:p></o:p></span></p> |
|
| 1237 |
|
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1238 |
<p class=MsoNormal><span class=SpellE><span class=GramE><span style='font-size: |
Arial'>boolean</span></span><span style='font-size:10.0pt;font-family:Arial'> <span |
| 1239 |
10.0pt;font-family:Arial'>boolean</span></span></span><span style='font-size: |
class=SpellE>proceedRedoing</span>(<span class=SpellE>IOperation</span>);<o:p></o:p></span></p> |
|
10.0pt;font-family:Arial'> <span class=SpellE>proceedRedoing</span>(<span |
|
|
class=SpellE>IOperation</span>);<o:p></o:p></span></p> |
|
| 1240 |
|
|
| 1241 |
<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> |
| 1242 |
|
|
| 1342 |
operation triggered in the editor is the most recent operation that has the |
operation triggered in the editor is the most recent operation that has the |
| 1343 |
workspace context, but it also contains context “A.”<span |
workspace context, but it also contains context “A.”<span |
| 1344 |
style='mso-spacerun:yes'> </span>Since subsequent operations in the history |
style='mso-spacerun:yes'> </span>Since subsequent operations in the history |
| 1345 |
also have context “A,<span class=GramE>”,</span> the <span class=SpellE>IOperationApproval</span> |
also have context “A,”, the <span class=SpellE>IOperationApproval</span> for |
| 1346 |
for context “A” is consulted as to whether the undo should proceed.<span |
context “A” is consulted as to whether the undo should proceed.<span |
| 1347 |
style='mso-spacerun:yes'> </span>The <span class=SpellE><span class=GramE>IOperationApproval</span></span><span |
style='mso-spacerun:yes'> </span>The <span class=SpellE>IOperationApproval</span> |
| 1348 |
class=GramE> <span style='mso-spacerun:yes'> </span>supplied</span> by context |
<span style='mso-spacerun:yes'> </span>supplied by context “A” could do one of |
| 1349 |
“A” could do one of the following:<o:p></o:p></span></p> |
the following:<o:p></o:p></span></p> |
| 1350 |
|
|
| 1351 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1352 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1353 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
| 1354 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1355 |
</span></span></span><![endif]><span class=GramE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>allow |
| 1356 |
font-family:Arial'>allow</span></span><span style='font-size:10.0pt;font-family: |
the undo to proceed, leaving the local changes to “A” in the undo history.<o:p></o:p></span></p> |
|
Arial'> the undo to proceed, leaving the local changes to “A” in the undo |
|
|
history.<o:p></o:p></span></p> |
|
| 1357 |
|
|
| 1358 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1359 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1360 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
| 1361 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1362 |
</span></span></span><![endif]><span class=GramE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>quietly |
| 1363 |
font-family:Arial'>quietly</span></span><span style='font-size:10.0pt; |
undo the subsequent local changes to “A” and then allow the original undo to |
| 1364 |
font-family:Arial'> undo the subsequent local changes to “A” and then allow the |
proceed.<o:p></o:p></span></p> |
|
original undo to proceed.<o:p></o:p></span></p> |
|
| 1365 |
|
|
| 1366 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1367 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1368 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
| 1369 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1370 |
</span></span></span><![endif]><span class=GramE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>switch |
| 1371 |
font-family:Arial'>switch</span></span><span style='font-size:10.0pt; |
to the editor and non-quietly undo the local changes to “A” before allowing the |
| 1372 |
font-family:Arial'> to the editor and non-quietly undo the local changes to “A” |
original undo to proceed.<o:p></o:p></span></p> |
|
before allowing the original undo to proceed.<o:p></o:p></span></p> |
|
| 1373 |
|
|
| 1374 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1375 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1376 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
| 1377 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1378 |
</span></span></span><![endif]><span class=GramE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>prompt |
| 1379 |
font-family:Arial'>prompt</span></span><span style='font-size:10.0pt; |
the user for the preferred action.<o:p></o:p></span></p> |
|
font-family:Arial'> the user for the preferred action.<o:p></o:p></span></p> |
|
| 1380 |
|
|
| 1381 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1382 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1383 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
| 1384 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1385 |
</span></span></span><![endif]><span class=GramE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>provide |
| 1386 |
font-family:Arial'>provide</span></span><span style='font-size:10.0pt; |
a user preference that drives the behavior of the scenario.<o:p></o:p></span></p> |
|
font-family:Arial'> a user preference that drives the behavior of the scenario.<o:p></o:p></span></p> |
|
| 1387 |
|
|
| 1388 |
<h4>Workbench IDE undo contexts<o:p></o:p></h4> |
<h4>Workbench IDE undo contexts<o:p></o:p></h4> |
| 1389 |
|
|
| 1402 |
</span>Additional actions that affect the workspace (such as delete and |
</span>Additional actions that affect the workspace (such as delete and |
| 1403 |
create resources) would use this context.<span style='mso-spacerun:yes'> |
create resources) would use this context.<span style='mso-spacerun:yes'> |
| 1404 |
</span>Views that manipulate the workspace, such as the navigator and |
</span>Views that manipulate the workspace, such as the navigator and |
| 1405 |
package explorer, will use this context when creating operations and querying |
package explorer, will use this context when creating operations and |
| 1406 |
for the current “undo operation.”<span style='mso-spacerun:yes'> |
querying for the current “undo operation.”<span style='mso-spacerun:yes'> |
| 1407 |
</span>Views or editors that may be affected by workspace operations can |
</span>Views or editors that may be affected by workspace operations can |
| 1408 |
add a listener to the operation history and add their context as needed to |
add a listener to the operation history and add their context as needed to |
| 1409 |
operations that have been added to the history.<span |
operations that have been added to the history.<span |
| 1445 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1446 |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>Any |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>Any |
| 1447 |
additional contexts required by the SDK (Team?<span style='mso-spacerun:yes'> |
additional contexts required by the SDK (Team?<span style='mso-spacerun:yes'> |
| 1448 |
</span>Debug?) <span class=GramE>must</span> be defined.<o:p></o:p></span></p> |
</span>Debug?) must be defined.<o:p></o:p></span></p> |
| 1449 |
|
|
| 1450 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1451 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1496 |
|
|
| 1497 |
<h5>Minimal support</h5> |
<h5>Minimal support</h5> |
| 1498 |
|
|
| 1499 |
<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 Edit>Undo |
| 1500 |
Edit>Undo and Edit>Redo commands should be retargeted by most of the |
and Edit>Redo commands should be retargeted by most of the major views (list |
| 1501 |
major views (list of views TBD).<span style='mso-spacerun:yes'> </span>If a |
of views TBD).<span style='mso-spacerun:yes'> </span>If a view retargets |
| 1502 |
view retargets Undo/Redo, then it knows what operation contexts it supports, |
Undo/Redo, then it knows what operation contexts it supports, and it uses these |
| 1503 |
and it uses these contexts to retrieve the available undo operation.<o:p></o:p></span></p> |
contexts to retrieve the available undo operation.<o:p></o:p></span></p> |
| 1504 |
|
|
| 1505 |
<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> |
| 1506 |
|
|
| 1509 |
|
|
| 1510 |
<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 |
| 1511 |
style='mso-tab-count:1'> </span><span class=SpellE>IStatus</span> |
style='mso-tab-count:1'> </span><span class=SpellE>IStatus</span> |
| 1512 |
status = <span class=SpellE><span class=GramE>operationHistory.canUndoIn</span></span><span |
status = <span class=SpellE>operationHistory.canUndoIn</span>(<span |
| 1513 |
class=GramE>(</span><span class=SpellE>myContext</span>);<o:p></o:p></span></p> |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
| 1514 |
|
|
| 1515 |
<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 |
| 1516 |
style='mso-tab-count:1'> </span>// up to the active part to define |
style='mso-tab-count:1'> </span>// up to the active part to define |
| 1522 |
for the undo action should be appended with a description of the operation.<o:p></o:p></span></p> |
for the undo action should be appended with a description of the operation.<o:p></o:p></span></p> |
| 1523 |
|
|
| 1524 |
<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 |
| 1525 |
style='mso-tab-count:1'> </span><span class=SpellE><span |
style='mso-tab-count:1'> </span><span class=SpellE>operationToUndo</span> |
| 1526 |
class=GramE>operationToUndo</span></span> = <span class=SpellE>operationHistory.getUndoFor</span>(<span |
= <span class=SpellE>operationHistory.getUndoFor</span>(<span class=SpellE>myContext</span>);<o:p></o:p></span></p> |
|
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
|
| 1527 |
|
|
| 1528 |
<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 |
| 1529 |
style='mso-tab-count:1'> </span><span class=GramE>label</span> = |
style='mso-tab-count:1'> </span>label = “Undo “+ <span class=SpellE>operationToUndo.label</span>();<o:p></o:p></span></p> |
|
“Undo “+ <span class=SpellE>operationToUndo.label</span>();<o:p></o:p></span></p> |
|
| 1530 |
|
|
| 1531 |
<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> |
| 1532 |
|
|
| 1536 |
context.<o:p></o:p></span></p> |
context.<o:p></o:p></span></p> |
| 1537 |
|
|
| 1538 |
<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 |
| 1539 |
style='mso-tab-count:1'> </span><span class=SpellE><span |
style='mso-tab-count:1'> </span><span class=SpellE>operationHistory.getUndoHistoryFor</span>(<span |
|
class=GramE>operationHistory.getUndoHistoryFor</span></span><span class=GramE>(</span><span |
|
| 1540 |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
| 1541 |
|
|
| 1542 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The drop |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The drop |
| 1605 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1606 |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
font-family:Arial;mso-fareast-font-family:Arial'><span style='mso-list:Ignore'>-<span |
| 1607 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 1608 |
</span></span></span><![endif]><span class=GramE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>provide |
| 1609 |
font-family:Arial'>provide</span></span><span style='font-size:10.0pt; |
a user preference that drives the behavior of the scenario.<o:p></o:p></span></p> |
|
font-family:Arial'> a user preference that drives the behavior of the scenario.<o:p></o:p></span></p> |
|
| 1610 |
|
|
| 1611 |
<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> |
| 1612 |
|
|
| 1619 |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1620 |
style='font-size:10.0pt;font-family:Arial'>Scenario #2</span></b><span |
style='font-size:10.0pt;font-family:Arial'>Scenario #2</span></b><span |
| 1621 |
style='font-size:10.0pt;font-family:Arial'>:<span style='mso-spacerun:yes'> |
style='font-size:10.0pt;font-family:Arial'>:<span style='mso-spacerun:yes'> |
| 1622 |
</span>Editor <span class=GramE>undo</span> triggers a non-local operation<o:p></o:p></span></p> |
</span>Editor undo triggers a non-local operation<o:p></o:p></span></p> |
| 1623 |
|
|
| 1624 |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l21 level1 lfo1; |
| 1625 |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list .5in'><![if !supportLists]><span style='font-size:10.0pt; |
| 1671 |
|
|
| 1672 |
<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> |
| 1673 |
|
|
| 1674 |
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The<span |
| 1675 |
Arial'>The<span style='mso-spacerun:yes'> </span>solution</span></span><span |
style='mso-spacerun:yes'> </span>solution for this scenario will be prototyped |
| 1676 |
style='font-size:10.0pt;font-family:Arial'> for this scenario will be |
and may involve both a warning and subsequent preference.<span |
|
prototyped and may involve both a warning and subsequent preference.<span |
|
| 1677 |
style='mso-spacerun:yes'> </span>For example, a prompt could provide the label |
style='mso-spacerun:yes'> </span>For example, a prompt could provide the label |
| 1678 |
and description of the operation and warn that it affects other views.<span |
and description of the operation and warn that it affects other views.<span |
| 1679 |
style='mso-spacerun:yes'> </span>The user could choose whether to proceed, and |
style='mso-spacerun:yes'> </span>The user could choose whether to proceed, and |
| 1709 |
|
|
| 1710 |
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt; |
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt; |
| 1711 |
font-family:Arial'><span style='mso-tab-count:1'> </span><span |
font-family:Arial'><span style='mso-tab-count:1'> </span><span |
| 1712 |
class=SpellE><span class=GramE>operationHistory.getUndoHistoryFor</span></span><span |
class=SpellE>operationHistory.getUndoHistoryFor</span>(<span class=SpellE>myContext</span>);<o:p></o:p></span></p> |
|
class=GramE>(</span><span class=SpellE>myContext</span>);<o:p></o:p></span></p> |
|
| 1713 |
|
|
| 1714 |
<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> |
| 1715 |
|
|
| 1740 |
<h4><span class=SpellE>JFace</span> Text</h4> |
<h4><span class=SpellE>JFace</span> Text</h4> |
| 1741 |
|
|
| 1742 |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1743 |
Arial'>JFace</span></span><span style='font-size:10.0pt;font-family:Arial'> |
Arial'>JFace</span></span><span style='font-size:10.0pt;font-family:Arial'> text |
| 1744 |
text currently has API for retrieving an <span class=SpellE>IUndoManager</span> |
currently has API for retrieving an <span class=SpellE>IUndoManager</span> from |
| 1745 |
from a text viewer.<span style='mso-spacerun:yes'> </span>The undo manager is |
a text viewer.<span style='mso-spacerun:yes'> </span>The undo manager is |
| 1746 |
connected to a text viewer and watches the changes that happen in the |
connected to a text viewer and watches the changes that happen in the |
| 1747 |
viewer.<span style='mso-spacerun:yes'> </span>As editing actions occurs, |
viewer.<span style='mso-spacerun:yes'> </span>As editing actions occurs, |
| 1748 |
commands (<span class=SpellE>TextCommand</span>) are created and then |
commands (<span class=SpellE>TextCommand</span>) are created and then |
| 1756 |
style='mso-spacerun:yes'> </span>The mapping from <span class=SpellE>IOperation</span> |
style='mso-spacerun:yes'> </span>The mapping from <span class=SpellE>IOperation</span> |
| 1757 |
to <span class=SpellE>TextCommand</span> protocol is straightforward.<span |
to <span class=SpellE>TextCommand</span> protocol is straightforward.<span |
| 1758 |
style='mso-spacerun:yes'> </span>Currently the <span class=SpellE>TextCommand</span> |
style='mso-spacerun:yes'> </span>Currently the <span class=SpellE>TextCommand</span> |
| 1759 |
directly pushes itself onto a local command stack of a viewer when a set of |
directly pushes itself onto a local command stack of a viewer when a set of pending |
| 1760 |
pending changes are committed.<span style='mso-spacerun:yes'> </span>Instead, it |
changes are committed.<span style='mso-spacerun:yes'> </span>Instead, it would |
| 1761 |
would need to set its context to one appropriate for the text viewer and add |
need to set its context to one appropriate for the text viewer and add itself |
| 1762 |
itself to the workbench operation history.<span style='mso-spacerun:yes'> |
to the workbench operation history.<span style='mso-spacerun:yes'> </span><span |
| 1763 |
</span><span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 1764 |
|
|
| 1765 |
<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> |
| 1766 |
|
|
| 1768 |
Arial'>IUndoManager</span></span><span style='font-size:10.0pt;font-family: |
Arial'>IUndoManager</span></span><span style='font-size:10.0pt;font-family: |
| 1769 |
Arial'> API could be mapped as follows:<o:p></o:p></span></p> |
Arial'> API could be mapped as follows:<o:p></o:p></span></p> |
| 1770 |
|
|
| 1771 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1772 |
style='font-size:10.0pt;font-family:Arial'>connect(</span></b></span><span |
style='font-size:10.0pt;font-family:Arial'>connect(<span class=SpellE>ITextViewer</span>) |
| 1773 |
class=SpellE><b style='mso-bidi-font-weight:normal'><span style='font-size: |
<o:p></o:p></span></b></p> |
|
10.0pt;font-family:Arial'>ITextViewer</span></b></span><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>) <o:p></o:p></span></b></p> |
|
| 1774 |
|
|
| 1775 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Creates a |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Creates a |
| 1776 |
context (<span class=SpellE>myContext</span>) appropriate for representing this |
context (<span class=SpellE>myContext</span>) appropriate for representing this |
| 1777 |
document’s operations<o:p></o:p></span></p> |
document’s operations<o:p></o:p></span></p> |
| 1778 |
|
|
| 1779 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1780 |
style='font-size:10.0pt;font-family:Arial'>disconnect(</span></b></span><span |
style='font-size:10.0pt;font-family:Arial'>disconnect(<span class=SpellE>ITextViewer</span>) |
| 1781 |
class=SpellE><b style='mso-bidi-font-weight:normal'><span style='font-size: |
<o:p></o:p></span></b></p> |
|
10.0pt;font-family:Arial'>ITextViewer</span></b></span><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>) <o:p></o:p></span></b></p> |
|
| 1782 |
|
|
| 1783 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Performs |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Performs |
| 1784 |
necessary disconnect behavior and clears the operation history of operations involving |
necessary disconnect behavior and clears the operation history of operations involving |
| 1785 |
the viewer.<o:p></o:p></span></p> |
the viewer.<o:p></o:p></span></p> |
| 1786 |
|
|
| 1787 |
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span |
<p class=MsoNormal style='margin-left:.5in'><span class=SpellE><span |
| 1788 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>operationHistory.disposeAll</span></span></span><span |
style='font-size:10.0pt;font-family:Arial'>operationHistory.disposeAll</span></span><span |
| 1789 |
class=GramE><span style='font-size:10.0pt;font-family:Arial'>(</span></span><span |
style='font-size:10.0pt;font-family:Arial'>(<span class=SpellE>myContext</span>);<o:p></o:p></span></p> |
| 1790 |
class=SpellE><span style='font-size:10.0pt;font-family:Arial'>myContext</span></span><span |
|
| 1791 |
style='font-size:10.0pt;font-family:Arial'>);<o:p></o:p></span></p> |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 1792 |
|
style='font-size:10.0pt;font-family:Arial'>beginCompoundChange</span></b></span><b |
| 1793 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 1794 |
normal'><span style='font-size:10.0pt;font-family:Arial'>beginCompoundChange</span></b></span></span><span |
Arial'>() <o:p></o:p></span></b></p> |
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
|
|
style='font-size:10.0pt;font-family:Arial'> <o:p></o:p></span></b></p> |
|
| 1795 |
|
|
| 1796 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Creates a <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Creates a <span |
| 1797 |
class=SpellE>CompoundOperation</span> and stores subsequent <span class=SpellE>TextCommands</span> |
class=SpellE>CompoundOperation</span> and stores subsequent <span class=SpellE>TextCommands</span> |
| 1798 |
in this operation.<o:p></o:p></span></p> |
in this operation.<o:p></o:p></span></p> |
| 1799 |
|
|
| 1800 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 1801 |
normal'><span style='font-size:10.0pt;font-family:Arial'>endCompoundChange</span></b></span></span><b |
style='font-size:10.0pt;font-family:Arial'>endCompoundChange</span></b></span><b |
| 1802 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 1803 |
Arial'><o:p></o:p></span></b></p> |
Arial'><o:p></o:p></span></b></p> |
| 1804 |
|
|
| 1805 |
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Adds the current |
| 1806 |
Arial'>Adds the current compound operation to the operation history.</span></span><span |
compound operation to the operation history.<o:p></o:p></span></p> |
|
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
|
| 1807 |
|
|
| 1808 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1809 |
style='font-size:10.0pt;font-family:Arial'>reset()</span></b></span><b |
style='font-size:10.0pt;font-family:Arial'>reset()<o:p></o:p></span></b></p> |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
|
Arial'><o:p></o:p></span></b></p> |
|
| 1810 |
|
|
| 1811 |
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Clears the operation |
| 1812 |
Arial'>Clears the operation history of operations involving the viewer.</span></span><span |
history of operations involving the viewer.<o:p></o:p></span></p> |
|
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p> |
|
| 1813 |
|
|
| 1814 |
<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 |
| 1815 |
style='mso-tab-count:1'> </span><span class=SpellE><span |
style='mso-tab-count:1'> </span><span class=SpellE>operationHistory.disposeAll</span>(<span |
|
class=GramE>operationHistory.disposeAll</span></span><span class=GramE>(</span><span |
|
| 1816 |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
| 1817 |
|
|
| 1818 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 1819 |
normal'><span style='font-size:10.0pt;font-family:Arial'>setMaximumUndoLevel</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>setMaximumUndoLevel</span></b></span><b |
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>(</span></b></span><span class=SpellE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>int</span></b></span><b |
|
| 1820 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 1821 |
Arial'>) – TBD<o:p></o:p></span></b></p> |
Arial'>(<span class=SpellE>int</span>) – TBD<o:p></o:p></span></b></p> |
| 1822 |
|
|
| 1823 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1824 |
style='font-size:10.0pt;font-family:Arial'>undoable()</span></b></span><b |
style='font-size:10.0pt;font-family:Arial'>undoable() <o:p></o:p></span></b></p> |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
|
Arial'> <o:p></o:p></span></b></p> |
|
| 1825 |
|
|
| 1826 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps as |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps as |
| 1827 |
follows:<o:p></o:p></span></p> |
follows:<o:p></o:p></span></p> |
| 1828 |
|
|
| 1829 |
<p class=MsoNormal style='text-indent:.5in'><span class=GramE><span |
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt; |
| 1830 |
style='font-size:10.0pt;font-family:Arial'>status</span></span><span |
font-family:Arial'>status = <span class=SpellE>operationHistory.canUndoIn</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> = <span class=SpellE>operationHistory.canUndoIn</span>(<span |
|
| 1831 |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
| 1832 |
|
|
| 1833 |
<p class=MsoNormal style='text-indent:.5in'><span class=GramE><span |
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt; |
| 1834 |
style='font-size:10.0pt;font-family:Arial'>return</span></span><span |
font-family:Arial'>return <span class=SpellE>status.isOK</span>();<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>status.isOK</span>();<span |
|
| 1835 |
style='mso-spacerun:yes'> </span>// may require further checking of other |
style='mso-spacerun:yes'> </span>// may require further checking of other |
| 1836 |
cases<o:p></o:p></span></p> |
cases<o:p></o:p></span></p> |
| 1837 |
|
|
| 1838 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 1839 |
normal'><span style='font-size:10.0pt;font-family:Arial'>redoable</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>redoable</span></b></span><b |
| 1840 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 1841 |
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
Arial'>() <o:p></o:p></span></b></p> |
|
style='font-size:10.0pt;font-family:Arial'> <o:p></o:p></span></b></p> |
|
| 1842 |
|
|
| 1843 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps as |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps as |
| 1844 |
follows:<o:p></o:p></span></p> |
follows:<o:p></o:p></span></p> |
| 1845 |
|
|
| 1846 |
<p class=MsoNormal style='text-indent:.5in'><span class=GramE><span |
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt; |
| 1847 |
style='font-size:10.0pt;font-family:Arial'>status</span></span><span |
font-family:Arial'>status = <span class=SpellE>operationHistory.canRedoIn</span>(<span |
|
style='font-size:10.0pt;font-family:Arial'> = <span class=SpellE>operationHistory.canRedoIn</span>(<span |
|
| 1848 |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
class=SpellE>myContext</span>);<o:p></o:p></span></p> |
| 1849 |
|
|
| 1850 |
<p class=MsoNormal style='text-indent:.5in'><span class=GramE><span |
<p class=MsoNormal style='text-indent:.5in'><span style='font-size:10.0pt; |
| 1851 |
style='font-size:10.0pt;font-family:Arial'>return</span></span><span |
font-family:Arial'>return <span class=SpellE>status.isOK</span>();<span |
|
style='font-size:10.0pt;font-family:Arial'> <span class=SpellE>status.isOK</span>();<span |
|
| 1852 |
style='mso-spacerun:yes'> </span>// may require further checking of other |
style='mso-spacerun:yes'> </span>// may require further checking of other |
| 1853 |
cases<o:p></o:p></span></p> |
cases<o:p></o:p></span></p> |
| 1854 |
|
|
| 1855 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1856 |
style='font-size:10.0pt;font-family:Arial'>undo()</span></b></span><b |
style='font-size:10.0pt;font-family:Arial'>undo()<o:p></o:p></span></b></p> |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
|
Arial'><o:p></o:p></span></b></p> |
|
| 1857 |
|
|
| 1858 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Use <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Use <span |
| 1859 |
class=SpellE><span class=GramE>operationHistory.performUndoFor</span></span><span |
class=SpellE>operationHistory.performUndoFor</span>(<span class=SpellE>myContext</span>) |
| 1860 |
class=GramE>(</span><span class=SpellE>myContext</span>) instead of managing |
instead of managing its own stack.<o:p></o:p></span></p> |
|
its own stack.<o:p></o:p></span></p> |
|
| 1861 |
|
|
| 1862 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 1863 |
style='font-size:10.0pt;font-family:Arial'>redo()</span></b></span><b |
style='font-size:10.0pt;font-family:Arial'>redo()<o:p></o:p></span></b></p> |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
|
Arial'><o:p></o:p></span></b></p> |
|
| 1864 |
|
|
| 1865 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Use <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Use <span |
| 1866 |
class=SpellE><span class=GramE>operationHistory.performRedoFor</span></span><span |
class=SpellE>operationHistory.performRedoFor</span>(<span class=SpellE>myContext</span>) |
| 1867 |
class=GramE>(</span><span class=SpellE>myContext</span>) instead of managing |
instead of managing its own stack.<o:p></o:p></span></p> |
|
its own stack.<o:p></o:p></span></p> |
|
| 1868 |
|
|
| 1869 |
<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> |
| 1870 |
|
|
| 1924 |
|
|
| 1925 |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1926 |
Arial'>Refactoring</span></span><span style='font-size:10.0pt;font-family:Arial'> |
Arial'>Refactoring</span></span><span style='font-size:10.0pt;font-family:Arial'> |
| 1927 |
undo is currently implemented with change objects<span class=GramE>,<span |
undo is currently implemented with change objects,<span |
| 1928 |
style='mso-spacerun:yes'> </span>Change</span> objects record workspace |
style='mso-spacerun:yes'> </span>Change objects record workspace changes |
| 1929 |
changes initiated by <span class=SpellE>refactoring</span> operations.<span |
initiated by <span class=SpellE>refactoring</span> operations.<span |
| 1930 |
style='mso-spacerun:yes'> </span>When a <span class=SpellE>refactoring</span> |
style='mso-spacerun:yes'> </span>When a <span class=SpellE>refactoring</span> |
| 1931 |
change is performed, it can optionally return another change that could be used |
change is performed, it can optionally return another change that could be used |
| 1932 |
to undo the change just executed.<span style='mso-spacerun:yes'> </span>The |
to undo the change just executed.<span style='mso-spacerun:yes'> </span>The |
| 1962 |
<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> |
| 1963 |
|
|
| 1964 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Protocol is |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Protocol is |
| 1965 |
also provided to return the object modified by a change (<span class=SpellE><span |
also provided to return the object modified by a change (<span class=SpellE>getModifiedElement</span>()).<o:p></o:p></span></p> |
|
class=GramE>getModifiedElement</span></span><span class=GramE>(</span>)).<o:p></o:p></span></p> |
|
| 1966 |
|
|
| 1967 |
<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> |
| 1968 |
|
|
| 1977 |
|
|
| 1978 |
<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> |
| 1979 |
|
|
| 1980 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 1981 |
normal'><span style='font-size:10.0pt;font-family:Arial'>getModifiedElement</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>getModifiedElement</span></b></span><b |
| 1982 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 1983 |
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
Arial'>() <o:p></o:p></span></b></p> |
| 1984 |
style='font-size:10.0pt;font-family:Arial'> <o:p></o:p></span></b></p> |
|
| 1985 |
|
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 1986 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
style='font-size:10.0pt;font-family:Arial'>getAdapter</span></b></span><b |
| 1987 |
normal'><span style='font-size:10.0pt;font-family:Arial'>getAdapter</span></b></span></span><span |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 1988 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
Arial'>(Class)<o:p></o:p></span></b></p> |
|
font-family:Arial'>(</span></b></span><b style='mso-bidi-font-weight:normal'><span |
|
|
style='font-size:10.0pt;font-family:Arial'>Class)<o:p></o:p></span></b></p> |
|
| 1989 |
|
|
| 1990 |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 1991 |
Arial'>Refactoring</span></span><span style='font-size:10.0pt;font-family:Arial'> |
Arial'>Refactoring</span></span><span style='font-size:10.0pt;font-family:Arial'> |
| 1997 |
might in fact be suitable for all workspace-affecting operations.<span |
might in fact be suitable for all workspace-affecting operations.<span |
| 1998 |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 1999 |
|
|
| 2000 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2001 |
normal'><span style='font-size:10.0pt;font-family:Arial'>getParent</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>getParent</span></b></span><b |
| 2002 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2003 |
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
Arial'>()<o:p></o:p></span></b></p> |
| 2004 |
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p> |
|
| 2005 |
|
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2006 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
style='font-size:10.0pt;font-family:Arial'>setParent</span></b></span><b |
|
normal'><span style='font-size:10.0pt;font-family:Arial'>setParent</span></b></span></span><span |
|
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>(</span></b></span><b style='mso-bidi-font-weight:normal'><span |
|
|
style='font-size:10.0pt;font-family:Arial'>Change)<o:p></o:p></span></b></p> |
|
|
|
|
|
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>isEnabled</span></b></span></span><span |
|
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
|
|
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p> |
|
|
|
|
|
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>setEnabled</span></b></span></span><span |
|
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>(</span></b></span><span class=SpellE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>boolean</span></b></span><b |
|
| 2007 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2008 |
Arial'>)<o:p></o:p></span></b></p> |
Arial'>(Change)<o:p></o:p></span></b></p> |
| 2009 |
|
|
| 2010 |
|
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2011 |
|
style='font-size:10.0pt;font-family:Arial'>isEnabled</span></b></span><b |
| 2012 |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2013 |
|
Arial'>()<o:p></o:p></span></b></p> |
| 2014 |
|
|
| 2015 |
|
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2016 |
|
style='font-size:10.0pt;font-family:Arial'>setEnabled</span></b></span><b |
| 2017 |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2018 |
|
Arial'>(<span class=SpellE>boolean</span>)<o:p></o:p></span></b></p> |
| 2019 |
|
|
| 2020 |
<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 |
| 2021 |
associated fields and protocol can be defined in an abstract class. <o:p></o:p></span></p> |
associated fields and protocol can be defined in an abstract class. <o:p></o:p></span></p> |
| 2022 |
|
|
| 2023 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2024 |
normal'><span style='font-size:10.0pt;font-family:Arial'>initializeValidationData</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>initializeValidationData</span></b></span><b |
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>(</span></b></span><span class=SpellE><span |
|
|
style='font-size:10.0pt;font-family:Arial'>IProgressMonitor</span></span><b |
|
| 2025 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2026 |
Arial'>)<o:p></o:p></span></b></p> |
Arial'>(</span></b><span class=SpellE><span style='font-size:10.0pt;font-family: |
| 2027 |
|
Arial'>IProgressMonitor</span></span><b style='mso-bidi-font-weight:normal'><span |
| 2028 |
|
style='font-size:10.0pt;font-family:Arial'>)<o:p></o:p></span></b></p> |
| 2029 |
|
|
| 2030 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>This hook |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>This hook |
| 2031 |
allows changes to cache local validation data, or to hook up listeners to the |
allows changes to cache local validation data, or to hook up listeners to the |
| 2033 |
style='mso-spacerun:yes'> </span>This protocol could be provided in the |
style='mso-spacerun:yes'> </span>This protocol could be provided in the |
| 2034 |
abstract <span class=SpellE>refactoring</span> class. <o:p></o:p></span></p> |
abstract <span class=SpellE>refactoring</span> class. <o:p></o:p></span></p> |
| 2035 |
|
|
| 2036 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 2037 |
style='font-size:10.0pt;font-family:Arial'>dispose()</span></b></span><b |
style='font-size:10.0pt;font-family:Arial'>dispose()<o:p></o:p></span></b></p> |
| 2038 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
| 2039 |
Arial'><o:p></o:p></span></b></p> |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps |
| 2040 |
|
directly.<o:p></o:p></span></p> |
| 2041 |
|
|
| 2042 |
<p class=MsoNormal><span class=GramE><span style='font-size:10.0pt;font-family: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2043 |
Arial'>Maps directly.</span></span><span style='font-size:10.0pt;font-family: |
style='font-size:10.0pt;font-family:Arial'>getName</span></b></span><b |
| 2044 |
Arial'><o:p></o:p></span></p> |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2045 |
|
Arial'>()<o:p></o:p></span></b></p> |
|
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>getName</span></b></span></span><span |
|
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
|
|
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p> |
|
| 2046 |
|
|
| 2047 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps to <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps to <span |
| 2048 |
class=SpellE>operation.getLabel</span><o:p></o:p></span></p> |
class=SpellE>operation.getLabel</span><o:p></o:p></span></p> |
| 2049 |
|
|
| 2050 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2051 |
normal'><span style='font-size:10.0pt;font-family:Arial'>isValid</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>isValid</span></b></span><b |
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>(</span></b></span><span class=SpellE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>IProgressMonitor</span></b></span><b |
|
| 2052 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2053 |
Arial'>)<o:p></o:p></span></b></p> |
Arial'>(<span class=SpellE>IProgressMonitor</span>)<o:p></o:p></span></b></p> |
| 2054 |
|
|
| 2055 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps to <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps to <span |
| 2056 |
class=SpellE><span class=GramE>canUndo</span></span><span class=GramE>(</span>), |
class=SpellE>canUndo</span>(), <span class=SpellE>canRedo</span>(), and <span |
| 2057 |
<span class=SpellE>canRedo</span>(), and <span class=SpellE>canExecute</span>().<span |
class=SpellE>canExecute</span>().<span style='mso-spacerun:yes'> </span>See |
| 2058 |
style='mso-spacerun:yes'> </span>See discussion below.<o:p></o:p></span></p> |
discussion below.<o:p></o:p></span></p> |
| 2059 |
|
|
| 2060 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 2061 |
style='font-size:10.0pt;font-family:Arial'>perform(</span></b></span><span |
style='font-size:10.0pt;font-family:Arial'>perform(<span class=SpellE>IProgressMonitor</span>)<o:p></o:p></span></b></p> |
|
class=SpellE><b style='mso-bidi-font-weight:normal'><span style='font-size: |
|
|
10.0pt;font-family:Arial'>IProgressMonitor</span></b></span><b |
|
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
|
Arial'>)<o:p></o:p></span></b></p> |
|
| 2062 |
|
|
| 2063 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps to <span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Maps to undo(<span |
| 2064 |
class=GramE>undo(</span><span class=SpellE>IProgressMonitor</span>), redo(<span |
class=SpellE>IProgressMonitor</span>), redo(<span class=SpellE>IProgressMonitor</span>) |
| 2065 |
class=SpellE>IProgressMonitor</span>) and <span class=SpellE>canExecute</span>(<span |
and <span class=SpellE>canExecute</span>(<span class=SpellE>IProgressMonitor</span>).<span |
| 2066 |
class=SpellE>IProgressMonitor</span>).<span style='mso-spacerun:yes'> |
style='mso-spacerun:yes'> </span>See discussion below.<o:p></o:p></span></p> |
|
</span>See discussion below.<o:p></o:p></span></p> |
|
| 2067 |
|
|
| 2068 |
<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> |
| 2069 |
|
|
| 2075 |
style='font:7.0pt "Times New Roman"'> |
style='font:7.0pt "Times New Roman"'> |
| 2076 |
</span></span></span><![endif]><span class=SpellE><span style='font-size:10.0pt; |
</span></span></span><![endif]><span class=SpellE><span style='font-size:10.0pt; |
| 2077 |
font-family:Arial'>Refactoring</span></span><span style='font-size:10.0pt; |
font-family:Arial'>Refactoring</span></span><span style='font-size:10.0pt; |
| 2078 |
font-family:Arial'> change objects do not support direct <span class=GramE>undo(</span>) |
font-family:Arial'> change objects do not support direct undo() or redo().<span |
| 2079 |
or redo().<span style='mso-spacerun:yes'> </span>Rather, a change that |
style='mso-spacerun:yes'> </span>Rather, a change that supports undo() returns |
| 2080 |
supports <span class=GramE>undo(</span>) returns a new change that “undoes” it |
a new change that “undoes” it whenever it is executed.<span |
| 2081 |
whenever it is executed.<span style='mso-spacerun:yes'> </span>The code for <span |
style='mso-spacerun:yes'> </span>The code for <span class=SpellE>refactoring</span> |
| 2082 |
class=SpellE>refactoring</span> changes would have to be <span class=SpellE>refactored</span> |
changes would have to be <span class=SpellE>refactored</span> in one of these |
| 2083 |
in one of these ways:<o:p></o:p></span></p> |
ways:<o:p></o:p></span></p> |
| 2084 |
|
|
| 2085 |
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;mso-list:l17 level2 lfo20; |
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;mso-list:l17 level2 lfo20; |
| 2086 |
tab-stops:list 1.25in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 1.25in'><![if !supportLists]><span style='font-size:10.0pt; |
| 2087 |
font-family:"Courier New";mso-fareast-font-family:"Courier New"'><span |
font-family:"Courier New";mso-fareast-font-family:"Courier New"'><span |
| 2088 |
style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> |
style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'> |
| 2089 |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>Eliminate |
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:Arial'>Eliminate |
| 2090 |
the creation of the undo change and move this work into an <span class=GramE>undo(</span>) |
the creation of the undo change and move this work into an undo() method.<o:p></o:p></span></p> |
|
method.<o:p></o:p></span></p> |
|
| 2091 |
|
|
| 2092 |
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;mso-list:l17 level2 lfo20; |
<p class=MsoNormal style='margin-left:1.25in;text-indent:-.25in;mso-list:l17 level2 lfo20; |
| 2093 |
tab-stops:list 1.25in'><![if !supportLists]><span style='font-size:10.0pt; |
tab-stops:list 1.25in'><![if !supportLists]><span style='font-size:10.0pt; |
| 2116 |
|
|
| 2117 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>It is |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>It is |
| 2118 |
likely that many views and editors in the workbench IDE will be aware of this special |
likely that many views and editors in the workbench IDE will be aware of this special |
| 2119 |
kind of <span class=SpellE>IOperation</span>. <span |
kind of <span class=SpellE>IOperation</span>.<span style='mso-spacerun:yes'> |
| 2120 |
style='mso-spacerun:yes'> </span>An additional interface, <span class=SpellE>IWorkspaceOperation</span>, |
</span>An additional interface, <span class=SpellE>IWorkspaceOperation</span>, |
| 2121 |
may evolve as <span class=SpellE>refactoring</span> changes are adapted to the |
may evolve as <span class=SpellE>refactoring</span> changes are adapted to the |
| 2122 |
new operations framework.<span style='mso-spacerun:yes'> </span>Patterns |
new operations framework.<span style='mso-spacerun:yes'> </span>Patterns |
| 2123 |
surrounding the workspace operation will develop, particularly involving |
surrounding the workspace operation will develop, particularly involving |
| 2154 |
|
|
| 2155 |
<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> |
| 2156 |
|
|
| 2157 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2158 |
normal'><span style='font-size:10.0pt;font-family:Arial'>isDirty</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>isDirty</span></b></span><b |
| 2159 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2160 |
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
Arial'>()<o:p></o:p></span></b></p> |
| 2161 |
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p> |
|
| 2162 |
|
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2163 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
style='font-size:10.0pt;font-family:Arial'>markSaveLocation</span></b></span><b |
| 2164 |
normal'><span style='font-size:10.0pt;font-family:Arial'>markSaveLocation</span></b></span></span><span |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2165 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
Arial'>()<o:p></o:p></span></b></p> |
|
font-family:Arial'>()</span></b></span><b style='mso-bidi-font-weight:normal'><span |
|
|
style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p> |
|
| 2166 |
|
|
| 2167 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>GEF |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>GEF |
| 2168 |
supports a marker (<span class=SpellE>saveLocation</span>) that becomes dirty |
supports a marker (<span class=SpellE>saveLocation</span>) that becomes dirty |
| 2171 |
the new framework, then GEF might have to mark the location inside its own |
the new framework, then GEF might have to mark the location inside its own |
| 2172 |
commands or using a dummy marker command.<o:p></o:p></span></p> |
commands or using a dummy marker command.<o:p></o:p></span></p> |
| 2173 |
|
|
| 2174 |
<p class=MsoNormal><span class=GramE><b style='mso-bidi-font-weight:normal'><span |
<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span |
| 2175 |
style='font-size:10.0pt;font-family:Arial'>execute(</span></b></span><b |
style='font-size:10.0pt;font-family:Arial'>execute(Command)<o:p></o:p></span></b></p> |
|
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
|
|
Arial'>Command)<o:p></o:p></span></b></p> |
|
| 2176 |
|
|
| 2177 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The GEF |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>The GEF |
| 2178 |
command stack executes commands on behalf of the client and adds them to the |
command stack executes commands on behalf of the client and adds them to the |
| 2179 |
stack, while the operation history does not do the execution on behalf of the |
stack, while the operation history does not do the execution on behalf of the |
| 2180 |
client.<span style='mso-spacerun:yes'> </span>GEF clients that create GEF |
client.<span style='mso-spacerun:yes'> </span>GEF clients that create GEF |
| 2181 |
commands would alter the pattern “<span class=SpellE><span class=GramE>commandStack.execute</span></span><span |
commands would alter the pattern “<span class=SpellE>commandStack.execute</span>(<span |
| 2182 |
class=GramE>(</span><span class=SpellE>someCommand</span>)” to instead use “<span |
class=SpellE>someCommand</span>)” to instead use “<span class=SpellE>someCommand.execute</span>(null); |
| 2183 |
class=SpellE>someCommand.execute</span>(null); <span class=SpellE>operationHistory.add</span>(<span |
<span class=SpellE>operationHistory.add</span>(<span class=SpellE>someCommand</span>)”<span |
| 2184 |
class=SpellE>someCommand</span>)”<span style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span><o:p></o:p></span></p> |
| 2185 |
|
|
| 2186 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2187 |
normal'><span style='font-size:10.0pt;font-family:Arial'>addCommandStackListener</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>addCommandStackListener</span></b></span><b |
|
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
|
|
font-family:Arial'>(</span></b></span><span class=SpellE><b style='mso-bidi-font-weight: |
|
|
normal'><span style='font-size:10.0pt;font-family:Arial'>CommandStackListener</span></b></span><b |
|
| 2188 |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2189 |
Arial'>)<o:p></o:p></span></b></p> |
Arial'>(<span class=SpellE>CommandStackListener</span>)<o:p></o:p></span></b></p> |
| 2190 |
|
|
| 2191 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>GEF is |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>GEF is |
| 2192 |
evolving its <span class=SpellE>CommandListener</span> interface in R3.1 to |
evolving its <span class=SpellE>CommandListener</span> interface in R3.1 to |
| 2204 |
|
|
| 2205 |
<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> |
| 2206 |
|
|
| 2207 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2208 |
normal'><span style='font-size:10.0pt;font-family:Arial'>getResult</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>getResult</span></b></span><b |
| 2209 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2210 |
font-family:Arial'>(</span></b></span><b style='mso-bidi-font-weight:normal'><span |
Arial'>();<o:p></o:p></span></b></p> |
|
style='font-size:10.0pt;font-family:Arial'>);<o:p></o:p></span></b></p> |
|
| 2211 |
|
|
| 2212 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>This method |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>This method |
| 2213 |
answers the result of command execution when the command is in certain |
answers the result of command execution when the command is in certain |
| 2217 |
style='mso-spacerun:yes'> </span>This protocol could then be provided in the |
style='mso-spacerun:yes'> </span>This protocol could then be provided in the |
| 2218 |
EMF operations.<o:p></o:p></span></p> |
EMF operations.<o:p></o:p></span></p> |
| 2219 |
|
|
| 2220 |
<p class=MsoNormal><span class=SpellE><span class=GramE><b style='mso-bidi-font-weight: |
<p class=MsoNormal><span class=SpellE><b style='mso-bidi-font-weight:normal'><span |
| 2221 |
normal'><span style='font-size:10.0pt;font-family:Arial'>getAffectedObjects</span></b></span></span><span |
style='font-size:10.0pt;font-family:Arial'>getAffectedObjects</span></b></span><b |
| 2222 |
class=GramE><b style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt; |
style='mso-bidi-font-weight:normal'><span style='font-size:10.0pt;font-family: |
| 2223 |
font-family:Arial'>(</span></b></span><b style='mso-bidi-font-weight:normal'><span |
Arial'>();<o:p></o:p></span></b></p> |
|
style='font-size:10.0pt;font-family:Arial'>);<o:p></o:p></span></b></p> |
|
| 2224 |
|
|
| 2225 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>This method |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>This method |
| 2226 |
is used to highlight the appropriate objects in a view to show what the EMF command |
is used to highlight the appropriate objects in a view to show what the EMF command |
| 2304 |
|
|
| 2305 |
<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> |
| 2306 |
|
|
| 2307 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Proposal Outcome:<span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Proposal |
| 2308 |
style='mso-spacerun:yes'> </span>Desired Outcome.<span |
Outcome:<span style='mso-spacerun:yes'> </span>Desired Outcome.<span |
| 2309 |
style='mso-spacerun:yes'> </span>(Unrelated <span class=SpellE>refactoring</span> |
style='mso-spacerun:yes'> </span>(Unrelated <span class=SpellE>refactoring</span> |
| 2310 |
operation did not have the editor’s context).<span style='mso-spacerun:yes'> |
operation did not have the editor’s context).<span style='mso-spacerun:yes'> |
| 2311 |
</span><o:p></o:p></span></p> |
</span><o:p></o:p></span></p> |
| 2378 |
<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 |
| 2379 |
style='mso-tab-count:1'> </span><o:p></o:p></span></p> |
style='mso-tab-count:1'> </span><o:p></o:p></span></p> |
| 2380 |
|
|
| 2381 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Desired Outcome:<span |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Desired |
| 2382 |
style='mso-spacerun:yes'> </span>At this point, the user needs information |
Outcome:<span style='mso-spacerun:yes'> </span>At this point, the user needs |
| 2383 |
that helps explain the disappearance of the typo.<span |
information that helps explain the disappearance of the typo.<span |
| 2384 |
style='mso-spacerun:yes'> </span>In this case, there are two helpful options:<o:p></o:p></span></p> |
style='mso-spacerun:yes'> </span>In this case, there are two helpful options:<o:p></o:p></span></p> |
| 2385 |
|
|
| 2386 |
<ol style='margin-top:0in' start=1 type=1> |
<ol style='margin-top:0in' start=1 type=1> |
| 2392 |
style='mso-spacerun:yes'> </span>The user then selects “Redo,” having |
style='mso-spacerun:yes'> </span>The user then selects “Redo,” having |
| 2393 |
been satisfied that the typo was corrected by the <span class=SpellE>refactoring</span> |
been satisfied that the typo was corrected by the <span class=SpellE>refactoring</span> |
| 2394 |
operation.<span style='mso-spacerun:yes'> </span>This operation is |
operation.<span style='mso-spacerun:yes'> </span>This operation is |
| 2395 |
somewhat “<span class=GramE>heavyweight</span>,” but one could argue that |
somewhat “heavyweight,” but one could argue that it’s the more expected |
| 2396 |
it’s the more expected outcome.<o:p></o:p></span></li> |
outcome.<o:p></o:p></span></li> |
| 2397 |
<li class=MsoNormal style='mso-list:l16 level1 lfo5;tab-stops:list .5in'><span |
<li class=MsoNormal style='mso-list:l16 level1 lfo5;tab-stops:list .5in'><span |
| 2398 |
style='font-size:10.0pt;font-family:Arial'>The text edit caused by the <span |
style='font-size:10.0pt;font-family:Arial'>The text edit caused by the <span |
| 2399 |
class=SpellE>refactoring</span> is undone, exposing the typo and, in |
class=SpellE>refactoring</span> is undone, exposing the typo and, in |
| 2431 |
rename the method.<span style='mso-spacerun:yes'> </span>The <span |
rename the method.<span style='mso-spacerun:yes'> </span>The <span |
| 2432 |
class=SpellE>refactor</span> causes references to be updated in other |
class=SpellE>refactor</span> causes references to be updated in other |
| 2433 |
files.<span style='mso-spacerun:yes'> </span>The user then decides that the |
files.<span style='mso-spacerun:yes'> </span>The user then decides that the |
| 2434 |
rename was not appropriate.<span style='mso-spacerun:yes'> </span>The user |
rename was not appropriate.<span style='mso-spacerun:yes'> </span>The user selects |
| 2435 |
selects Edit>Undo.<o:p></o:p></span></p> |
Edit>Undo.<o:p></o:p></span></p> |
| 2436 |
|
|
| 2437 |
<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 |
| 2438 |
style='mso-tab-count:1'> </span><o:p></o:p></span></p> |
style='mso-tab-count:1'> </span><o:p></o:p></span></p> |
| 2484 |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Desired |
<p class=MsoNormal><span style='font-size:10.0pt;font-family:Arial'>Desired |
| 2485 |
Outcome:<span style='mso-spacerun:yes'> </span>The most recent editing changes |
Outcome:<span style='mso-spacerun:yes'> </span>The most recent editing changes |
| 2486 |
to the <span class=SpellE>javadoc</span> are undone.<span |
to the <span class=SpellE>javadoc</span> are undone.<span |
| 2487 |
style='mso-spacerun:yes'> </span>The user can continue selecting “Undo” until the |
style='mso-spacerun:yes'> </span>The user can continue selecting “Undo” until |
| 2488 |
<span class=SpellE>refactoring</span> operation is undone, updating all of the |
the <span class=SpellE>refactoring</span> operation is undone, updating all of |
| 2489 |
references. <o:p></o:p></span></p> |
the references. <o:p></o:p></span></p> |
| 2490 |
|
|
| 2491 |
<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> |
| 2492 |
|
|
| 2544 |
outcome:<span style='mso-spacerun:yes'> </span>This can be implemented in |
outcome:<span style='mso-spacerun:yes'> </span>This can be implemented in |
| 2545 |
different ways with <span class=SpellE>IOperationApproval</span>.<span |
different ways with <span class=SpellE>IOperationApproval</span>.<span |
| 2546 |
style='mso-spacerun:yes'> </span>The operation history would notice that the |
style='mso-spacerun:yes'> </span>The operation history would notice that the |
| 2547 |
chosen operation has context “A” and that later changes for “<span class=GramE>A</span>” |
chosen operation has context “A” and that later changes for “A” are in the |
| 2548 |
are in the history.<span style='mso-spacerun:yes'> </span>The <span |
history.<span style='mso-spacerun:yes'> </span>The <span class=SpellE>IOperationApproval</span> |
| 2549 |
class=SpellE>IOperationApproval</span> assigned to context “A” could prompt the |
assigned to context “A” could prompt the user as to whether to undo the more |
| 2550 |
user as to whether to undo the more recent changes in “A.”<o:p></o:p></span></p> |
recent changes in “A.”<o:p></o:p></span></p> |
| 2551 |
|
|
| 2552 |
<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt; |
<p class=MsoNormal style='text-align:justify'><span style='font-size:10.0pt; |
| 2553 |
font-family:Arial'><o:p> </o:p></span></p> |
font-family:Arial'><o:p> </o:p></span></p> |
| 2573 |
issues in a multi-user model.<span style='mso-spacerun:yes'> |
issues in a multi-user model.<span style='mso-spacerun:yes'> |
| 2574 |
</span>Collaborating users may expect a global undo scope while users working |
</span>Collaborating users may expect a global undo scope while users working |
| 2575 |
in separate contexts may not.<span style='mso-spacerun:yes'> </span>Users may |
in separate contexts may not.<span style='mso-spacerun:yes'> </span>Users may |
| 2576 |
be moving between collaboration and separation in a single work session, and |
be moving between collaboration and separation in a single work session, and the |
| 2577 |
the system cannot detect which is the case.<span style='mso-spacerun:yes'> |
system cannot detect which is the case.<span style='mso-spacerun:yes'> |
| 2578 |
</span>Undo implementations in these systems typically keep track of the user |
</span>Undo implementations in these systems typically keep track of the user |
| 2579 |
who initiated the operation within a global history and filter the history |
who initiated the operation within a global history and filter the history |
| 2580 |
appropriately.<span style='mso-spacerun:yes'> </span>Potential conflicts are |
appropriately.<span style='mso-spacerun:yes'> </span>Potential conflicts are |