Revision 288109a7
Added by Patrick Plitzner over 5 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java | ||
---|---|---|
314 | 314 |
dirty.setDirty(false); |
315 | 315 |
} |
316 | 316 |
|
317 |
@Override |
|
318 |
public boolean isDirty() { |
|
319 |
return dirty.isDirty(); |
|
320 |
} |
|
321 |
|
|
317 | 322 |
@PreDestroy |
318 | 323 |
public void dispose() { |
319 | 324 |
if (conversation != null) { |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/character/CharacterEditor.java | ||
---|---|---|
257 | 257 |
dirty.setDirty(false); |
258 | 258 |
} |
259 | 259 |
|
260 |
@Override |
|
261 |
public boolean isDirty() { |
|
262 |
return dirty.isDirty(); |
|
263 |
} |
|
264 |
|
|
260 | 265 |
@PreDestroy |
261 | 266 |
public void dispose(){ |
262 | 267 |
if(conversation!=null){ |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixPart.java | ||
---|---|---|
195 | 195 |
CdmStore.getService(IDescriptionService.class).merge(wrapper.getDescription()); |
196 | 196 |
} |
197 | 197 |
|
198 |
@Override |
|
199 |
public boolean isDirty() { |
|
200 |
return dirty.isDirty(); |
|
201 |
} |
|
202 |
|
|
198 | 203 |
@Focus |
199 | 204 |
public void setFocus(){ |
200 | 205 |
if(conversation!=null){ |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermDropAdapterE4.java | ||
---|---|---|
48 | 48 |
|
49 | 49 |
@Override |
50 | 50 |
public boolean performDrop(Object data) { |
51 |
if(editor.checkDirty()){
|
|
51 |
if(StoreUtil.checkDirty(editor)){
|
|
52 | 52 |
return false; |
53 | 53 |
} |
54 | 54 |
AbstractTermDto target = (AbstractTermDto) getCurrentTarget();//can be vocab |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/DefinedTermEditorE4.java | ||
---|---|---|
25 | 25 |
import org.eclipse.e4.ui.services.EMenuService; |
26 | 26 |
import org.eclipse.e4.ui.workbench.modeling.EPartService; |
27 | 27 |
import org.eclipse.e4.ui.workbench.modeling.ESelectionService; |
28 |
import org.eclipse.jface.dialogs.MessageDialog; |
|
29 | 28 |
import org.eclipse.jface.util.LocalSelectionTransfer; |
30 | 29 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
31 | 30 |
import org.eclipse.jface.viewers.StructuredSelection; |
... | ... | |
54 | 53 |
import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput; |
55 | 54 |
import eu.etaxonomy.taxeditor.event.EventUtility; |
56 | 55 |
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants; |
57 |
import eu.etaxonomy.taxeditor.l10n.Messages; |
|
58 | 56 |
import eu.etaxonomy.taxeditor.model.IContextListener; |
59 | 57 |
import eu.etaxonomy.taxeditor.model.IDirtyMarkable; |
60 | 58 |
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails; |
... | ... | |
160 | 158 |
thisPart.setLabel(input.getName()); |
161 | 159 |
} |
162 | 160 |
|
163 |
/** |
|
164 |
* Checks the dirty flag and, if set, prompts the user to optionally save |
|
165 |
* the editor |
|
166 |
* |
|
167 |
* @return <code>false</code> if the editor is not dirty anymore, either |
|
168 |
* because it wasn't beforehand or because it has been saved. |
|
169 |
* <code>true</code> otherwise |
|
170 |
*/ |
|
171 |
public boolean checkDirty(){ |
|
172 |
if (isDirty()){ |
|
173 |
boolean proceed = MessageDialog.openQuestion(null, |
|
174 |
Messages.DefinedTermEditorE4_SAVE_TITLE, Messages.DefinedTermEditorE4_SAVE_MESSAGE); |
|
175 |
if (proceed) { |
|
176 |
save(null); |
|
177 |
return false; |
|
178 |
} |
|
179 |
else{ |
|
180 |
return true; |
|
181 |
} |
|
182 |
} |
|
183 |
else{ |
|
184 |
return false; |
|
185 |
} |
|
186 |
} |
|
187 |
|
|
188 | 161 |
@Override |
189 | 162 |
@Persist |
190 | 163 |
public void save(IProgressMonitor monitor) { |
... | ... | |
204 | 177 |
EventUtility.postEvent(WorkbenchEventConstants.REFRESH_SUPPLEMENTAL, true); |
205 | 178 |
} |
206 | 179 |
|
207 |
public boolean isDirty() { |
|
180 |
@Override |
|
181 |
public boolean isDirty() { |
|
208 | 182 |
return dirty.isDirty(); |
209 | 183 |
} |
210 | 184 |
|
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/CreateDefinedTermHandlerE4.java | ||
---|---|---|
44 | 44 |
@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection, MHandledMenuItem menuItem, |
45 | 45 |
UISynchronize sync) { |
46 | 46 |
DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) activePart.getObject(); |
47 |
if(termEditor.checkDirty()){
|
|
47 |
if(StoreUtil.checkDirty(termEditor)){
|
|
48 | 48 |
return; |
49 | 49 |
} |
50 | 50 |
boolean addTermAsKindOf = |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/CreateTermVocabularyHandlerE4.java | ||
---|---|---|
36 | 36 |
MMenuItem menuItem, |
37 | 37 |
UISynchronize sync) { |
38 | 38 |
DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) activePart.getObject(); |
39 |
if(termEditor.checkDirty()){
|
|
39 |
if(StoreUtil.checkDirty(termEditor)){
|
|
40 | 40 |
return; |
41 | 41 |
} |
42 | 42 |
String label = menuItem.getLocalizedLabel(); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/e4/handler/DeleteTermBaseHandlerE4.java | ||
---|---|---|
44 | 44 |
@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection, MMenuItem menuItem, |
45 | 45 |
UISynchronize sync) { |
46 | 46 |
DefinedTermEditorE4 termEditor = (DefinedTermEditorE4) activePart.getObject(); |
47 |
if(termEditor.checkDirty()){
|
|
47 |
if(StoreUtil.checkDirty(termEditor)){
|
|
48 | 48 |
return; |
49 | 49 |
} |
50 | 50 |
String label = menuItem.getLocalizedLabel(); |
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/StoreUtil.java | ||
---|---|---|
14 | 14 |
import org.eclipse.core.commands.operations.IOperationHistory; |
15 | 15 |
import org.eclipse.core.commands.operations.IUndoContext; |
16 | 16 |
import org.eclipse.jface.action.IStatusLineManager; |
17 |
import org.eclipse.jface.dialogs.MessageDialog; |
|
17 | 18 |
import org.eclipse.swt.widgets.Composite; |
18 | 19 |
import org.eclipse.ui.forms.widgets.ScrolledForm; |
19 | 20 |
|
20 | 21 |
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; |
21 | 22 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
23 |
import eu.etaxonomy.taxeditor.l10n.Messages; |
|
22 | 24 |
import eu.etaxonomy.taxeditor.model.AbstractUtility; |
23 | 25 |
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer; |
24 | 26 |
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin; |
25 | 27 |
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; |
28 |
import eu.etaxonomy.taxeditor.workbench.part.IE4SavablePart; |
|
26 | 29 |
|
27 | 30 |
/** |
28 | 31 |
* <p>StoreUtil class.</p> |
... | ... | |
138 | 141 |
return sectionClass.getCanonicalName()+";"+entity.getClass().getCanonicalName(); |
139 | 142 |
} |
140 | 143 |
|
144 |
/** |
|
145 |
* Checks the dirty flag and, if set, prompts the user to optionally save |
|
146 |
* the editor |
|
147 |
* |
|
148 |
* @return <code>false</code> if the editor is not dirty anymore, either |
|
149 |
* because it wasn't beforehand or because it has been saved. |
|
150 |
* <code>true</code> otherwise |
|
151 |
*/ |
|
152 |
public static boolean checkDirty(IE4SavablePart editor){ |
|
153 |
if (editor.isDirty()){ |
|
154 |
boolean proceed = MessageDialog.openQuestion(null, |
|
155 |
Messages.DefinedTermEditorE4_SAVE_TITLE, Messages.DefinedTermEditorE4_SAVE_MESSAGE); |
|
156 |
if (proceed) { |
|
157 |
editor.save(null); |
|
158 |
return false; |
|
159 |
} |
|
160 |
else{ |
|
161 |
return true; |
|
162 |
} |
|
163 |
} |
|
164 |
else{ |
|
165 |
return false; |
|
166 |
} |
|
167 |
} |
|
141 | 168 |
} |
eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/part/IE4SavablePart.java | ||
---|---|---|
31 | 31 |
* @param monitor the progress monitor for long running save actions |
32 | 32 |
*/ |
33 | 33 |
public void save(IProgressMonitor monitor); |
34 |
|
|
35 |
/** |
|
36 |
* Return the dirty state of the part |
|
37 |
* @return <code>true</code> if part has unsaved changes, <code>false</code> otherwise |
|
38 |
*/ |
|
39 |
public boolean isDirty(); |
|
34 | 40 |
} |
Also available in: Unified diff
ref #6806 Add isDirty() to IE4SavablePart + extract dirty check to util