.. | .. |
---|
282 | 282 | client = inClient; |
---|
283 | 283 | copy = client; |
---|
284 | 284 | |
---|
| 285 | + if (copy.versions == null) |
---|
| 286 | + { |
---|
| 287 | + copy.versions = new byte[100][]; |
---|
| 288 | + copy.versionindex = -1; |
---|
| 289 | + } |
---|
| 290 | + |
---|
285 | 291 | // "this" is not called: SetupUI2(objEditor); |
---|
286 | 292 | } |
---|
287 | 293 | |
---|
.. | .. |
---|
295 | 301 | client = inClient; |
---|
296 | 302 | copy = client; |
---|
297 | 303 | |
---|
| 304 | + if (copy.versions == null) |
---|
| 305 | + { |
---|
| 306 | + copy.versions = new byte[100][]; |
---|
| 307 | + copy.versionindex = -1; |
---|
| 308 | + } |
---|
| 309 | + |
---|
298 | 310 | SetupUI2(callee.GetEditor()); |
---|
299 | 311 | } |
---|
300 | 312 | |
---|
.. | .. |
---|
327 | 339 | copy = localCopy; |
---|
328 | 340 | copy.editWindow = this; |
---|
329 | 341 | |
---|
| 342 | + if (copy.versions == null) |
---|
| 343 | + { |
---|
| 344 | + copy.versions = new byte[100][]; |
---|
| 345 | + copy.versionindex = -1; |
---|
| 346 | + } |
---|
| 347 | + |
---|
330 | 348 | SetupMenu(); |
---|
331 | 349 | |
---|
332 | 350 | //SetupName(objEditor); // new |
---|
.. | .. |
---|
3731 | 3749 | cButton replaceButton; |
---|
3732 | 3750 | cButton redoButton; |
---|
3733 | 3751 | |
---|
| 3752 | + boolean muteSlider; |
---|
| 3753 | + |
---|
| 3754 | + int VersionCount() |
---|
| 3755 | + { |
---|
| 3756 | + int count = 0; |
---|
| 3757 | + |
---|
| 3758 | + for (int i = copy.versions.length; --i >= 0;) |
---|
| 3759 | + { |
---|
| 3760 | + if (copy.versions[i] != null) |
---|
| 3761 | + count++; |
---|
| 3762 | + } |
---|
| 3763 | + |
---|
| 3764 | + return count; |
---|
| 3765 | + } |
---|
| 3766 | + |
---|
3734 | 3767 | void SetUndoStates() |
---|
3735 | 3768 | { |
---|
3736 | 3769 | cRadio tab = GetCurrentTab(); |
---|
3737 | 3770 | |
---|
3738 | 3771 | restoreButton.setEnabled(copy.versionindex != -1); |
---|
3739 | 3772 | replaceButton.setEnabled(copy.versionindex != -1); |
---|
| 3773 | + |
---|
3740 | 3774 | undoButton.setEnabled(copy.versionindex > 0); |
---|
3741 | 3775 | redoButton.setEnabled(copy.versions[copy.versionindex + 1] != null); |
---|
| 3776 | + |
---|
| 3777 | + muteSlider = true; |
---|
| 3778 | + versionSlider.setMaximum(VersionCount() - 1); |
---|
| 3779 | + versionSlider.setInteger(copy.versionindex); |
---|
| 3780 | + muteSlider = false; |
---|
3742 | 3781 | } |
---|
3743 | 3782 | |
---|
3744 | 3783 | public boolean Undo() |
---|
3745 | 3784 | { |
---|
| 3785 | + // Option? |
---|
| 3786 | + Replace(); |
---|
| 3787 | + |
---|
3746 | 3788 | System.err.println("Undo"); |
---|
3747 | 3789 | |
---|
3748 | 3790 | cRadio tab = GetCurrentTab(); |
---|
.. | .. |
---|
3809 | 3851 | |
---|
3810 | 3852 | public void Redo() |
---|
3811 | 3853 | { |
---|
| 3854 | + // Option? |
---|
| 3855 | + Replace(); |
---|
| 3856 | + |
---|
3812 | 3857 | cRadio tab = GetCurrentTab(); |
---|
3813 | 3858 | |
---|
3814 | 3859 | if (copy.versions[copy.versionindex + 1] == null) |
---|
.. | .. |
---|
4118 | 4163 | //copy.Touch(); |
---|
4119 | 4164 | } |
---|
4120 | 4165 | |
---|
4121 | | - cNumberSlider versionField; |
---|
| 4166 | + cNumberSlider versionSlider; |
---|
4122 | 4167 | |
---|
4123 | 4168 | public void stateChanged(ChangeEvent e) |
---|
4124 | 4169 | { |
---|
4125 | 4170 | // assert(false); |
---|
4126 | | - if (e.getSource() == versionField) |
---|
| 4171 | + if (e.getSource() == versionSlider) |
---|
4127 | 4172 | { |
---|
4128 | | - int version = versionField.getInteger(); |
---|
| 4173 | + if (muteSlider) |
---|
| 4174 | + return; |
---|
| 4175 | + |
---|
| 4176 | + int version = versionSlider.getInteger(); |
---|
4129 | 4177 | |
---|
4130 | 4178 | if (copy.versions[version] != null) |
---|
4131 | 4179 | { |
---|
.. | .. |
---|
4857 | 4905 | copy.versions = readobj.versions; |
---|
4858 | 4906 | copy.versionindex = readobj.versionindex; |
---|
4859 | 4907 | |
---|
4860 | | - SetUndoStates(); |
---|
| 4908 | + if (copy.versions == null) |
---|
| 4909 | + { |
---|
| 4910 | + copy.versions = new byte[100][]; |
---|
| 4911 | + copy.versionindex = -1; |
---|
| 4912 | + } |
---|
| 4913 | + |
---|
| 4914 | + //? SetUndoStates(); |
---|
4861 | 4915 | |
---|
4862 | 4916 | ResetModel(); |
---|
4863 | 4917 | copy.HardTouch(); // recompile? |
---|