Project

General

Profile

« Previous | Next » 

Revision 288109a7

Added by Patrick Plitzner over 5 years ago

ref #6806 Add isDirty() to IE4SavablePart + extract dirty check to util

View differences:

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