### Eclipse Workspace Patch 1.0
#P org.sophie2.main.app.commons
|
|
|
6 | 6 | import org.sophie2.base.dialogs.DialogManager; |
7 | 7 | import org.sophie2.base.model.resources.r4.LocationPrefix; |
8 | 8 | import org.sophie2.base.model.resources.r4.ResourceRefR4; |
9 | | import org.sophie2.base.model.resources.r4.access.AccessOptions; |
10 | 9 | import org.sophie2.base.model.resources.r4.access.BaseResourceAccess; |
11 | 10 | import org.sophie2.base.model.resources.r4.access.ResourceAccess; |
12 | 11 | import org.sophie2.base.model.resources.r4.access.ResourceLocator; |
… |
… |
|
98 | 97 | ((StoredResourceAccess) access).save(null); |
99 | 98 | } else { |
100 | 99 | StoredResourceAccess fileAccess = (StoredResourceAccess) locator.create( |
101 | | fileRef, AccessOptions.DEFAULT_ACCESS_OPTIONS.modifyViewId(), |
102 | | ((BaseResourceAccess) bookDocView.getAccess()).cloneHeadRevision()); |
| 100 | fileRef, access.getAccessOptions(), |
| 101 | ((BaseResourceAccess) bookDocView.getAccess()).getTopRevision()); |
103 | 102 | if (fileAccess == null) { |
104 | 103 | DialogUtils.showErrorDialog(bookDocView.swingComponent().get(), |
105 | 104 | "The resource at "+ fileRef + " is currently in use.", |
106 | 105 | "Could not save book"); |
107 | 106 | return false; |
108 | 107 | } |
109 | | access.close(); |
110 | 108 | fileAccess.save(null); |
111 | 109 | bookDocView.reopen(fileAccess); |
| 110 | access.close(); |
112 | 111 | } |
113 | 112 | |
114 | 113 | } catch (IOException e) { |
#P org.sophie2.main.app.menus
|
|
|
12 | 12 | import org.sophie2.base.model.book.BookH; |
13 | 13 | import org.sophie2.base.model.book.resource.r4.BookR4; |
14 | 14 | import org.sophie2.base.model.resources.r4.ResourceRefR4; |
15 | | import org.sophie2.base.model.resources.r4.access.AccessOptions; |
| 15 | import org.sophie2.base.model.resources.r4.access.BaseResourceAccess; |
| 16 | import org.sophie2.base.model.resources.r4.access.ResourceAccess; |
16 | 17 | import org.sophie2.base.model.resources.r4.access.StoredResourceAccess; |
17 | 18 | import org.sophie2.base.model.resources.r4.changes.AutoAction; |
18 | 19 | import org.sophie2.base.model.resources.r4.changes.ResourceChanger; |
… |
… |
|
191 | 192 | fileName = FileDialogInput.appendFileExtension( |
192 | 193 | new File(fileName), FileDialogInput.BOOK_FILTER).getName(); |
193 | 194 | File file = FileEntryManager.get().getWritableFileEntry(fileName); |
194 | | |
| 195 | ResourceAccess access = bookDocView.getAccess(); |
195 | 196 | AppMainWindow mainWindow = AppViewUtil.findMainWindow(bookDocView); |
196 | | StoredResourceAccess fileAccess = (StoredResourceAccess) mainWindow.locator().get().create( |
197 | | ResourceRefR4.make(file), AccessOptions.DEFAULT_ACCESS_OPTIONS.modifyViewId(), |
198 | | bookDocView.getAccess().getHead()); |
199 | | |
| 197 | StoredResourceAccess fileAccess = |
| 198 | (StoredResourceAccess) mainWindow.locator().get().create( |
| 199 | ResourceRefR4.make(file), access.getAccessOptions(), |
| 200 | ((BaseResourceAccess)access).getTopRevision()); |
200 | 201 | try { |
201 | 202 | fileAccess.save(null); |
202 | 203 | bookDocView.reopen(fileAccess); |
| 204 | access.close(); |
203 | 205 | BookTemplateHelper.get().bookTemplates().add(new BookTemplate(fileAccess)); |
204 | 206 | } catch (IOException e) { |
205 | 207 | DialogUtils.showExceptionDialog(bookDocView.swingComponent().get(), |
#P org.sophie2.base.model.resources.r4
|
|
|
6 | 6 | import org.sophie2.base.model.resources.r4.model.LocalResourceRevision; |
7 | 7 | import org.sophie2.base.model.resources.r4.model.ResourceModel; |
8 | 8 | import org.sophie2.base.model.resources.r4.model.ResourceRevision; |
| 9 | import org.sophie2.base.model.resources.r4.model.RevisionId; |
| 10 | import org.sophie2.base.model.resources.r4.resources.ResourceR4; |
9 | 11 | |
10 | 12 | |
11 | 13 | /** |
… |
… |
|
77 | 79 | } |
78 | 80 | return LocalResourceRevision.getInitialRevision(copyModel); |
79 | 81 | } |
| 82 | |
| 83 | /** |
| 84 | * Method that gets head revision for this access. It checks if the |
| 85 | * access location is "." and if it is not makes initial |
| 86 | * revision of the accessed resource as top one. For example |
| 87 | * when saving a server book to the |
| 88 | * |
| 89 | * @return Top head revision for the resource of this access. |
| 90 | */ |
| 91 | public ResourceRevision getTopRevision() { |
| 92 | if (ResourceRefR4.CURRENT_REF.equals(this.location)) { |
| 93 | return getHead(); |
| 94 | } |
| 95 | ResourceRevision head = getHead(); |
| 96 | RootKey key = ResourceR4.KEY_CHILDREN.sub(this.location); |
| 97 | ResourceModel model = head.getModel().getSubModel(key); |
| 98 | RevisionId id = head.getId(); |
| 99 | return new LocalResourceRevision(null, null, null, model, id); |
| 100 | } |
80 | 101 | |
81 | 102 | /** |
82 | 103 | * Closes this access. |