Project

General

Profile

« Previous | Next » 

Revision ce524345

Added by Patrick Plitzner almost 5 years ago

ref #8335 Persist table state when dialog is closed

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixPart.java
8 8
 */
9 9
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
10 10

  
11
import java.io.IOException;
12
import java.io.StringWriter;
13 11
import java.util.Arrays;
14 12
import java.util.Collection;
15 13
import java.util.Collections;
......
37 35
import org.eclipse.swt.widgets.Composite;
38 36
import org.eclipse.swt.widgets.Label;
39 37

  
40
import eu.etaxonomy.cdm.api.application.ICdmRepository;
41 38
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
42 39
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
43 40
import eu.etaxonomy.cdm.api.service.IDescriptionService;
44 41
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
45
import eu.etaxonomy.cdm.api.service.IPreferenceService;
46 42
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
47 43
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
48
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
49
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
50 44
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
51 45
import eu.etaxonomy.cdm.model.term.TermType;
52 46
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
......
55 49
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
56 50
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
57 51
import eu.etaxonomy.taxeditor.model.MessagingUtils;
58
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
59 52
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
60 53
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
61 54
import eu.etaxonomy.taxeditor.store.CdmStore;
......
218 211
            cdmEntitySession = null;
219 212
        }
220 213
        dirty.setDirty(false);
221
        if(matrix.getNatTableState()!=null){
222
            StringWriter writer = new StringWriter();
223
            try {
224
                matrix.getNatTableState().store(writer, null);
225
                ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
226
                if (controller != null){
227
                    IPreferenceService service = controller.getPreferenceService();
228
                    CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CharacterMatrixTableState, writer.toString());
229
                    service.set(pref);
230
                    PreferencesUtil.updateDBPreferences();
231
                }
232
            } catch (IOException e) {
233
                MessagingUtils.error(getClass(), e);
234
            }
235
        }
236 214
    }
237 215

  
238 216
    @Override
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixToolbar.java
10 10

  
11 11
import java.io.IOException;
12 12
import java.io.StringReader;
13
import java.io.StringWriter;
13 14
import java.util.Collection;
14 15
import java.util.Properties;
15 16
import java.util.function.Consumer;
......
18 19
import org.eclipse.jface.viewers.ArrayContentProvider;
19 20
import org.eclipse.jface.viewers.ComboViewer;
20 21
import org.eclipse.jface.viewers.LabelProvider;
22
import org.eclipse.nebula.widgets.nattable.NatTable;
21 23
import org.eclipse.nebula.widgets.nattable.command.VisualRefreshCommand;
22 24
import org.eclipse.nebula.widgets.nattable.export.command.ExportCommand;
23 25
import org.eclipse.nebula.widgets.nattable.persistence.PersistenceHelper;
......
39 41
import org.eclipse.swt.widgets.Composite;
40 42
import org.eclipse.swt.widgets.Label;
41 43

  
44
import eu.etaxonomy.cdm.api.application.ICdmRepository;
45
import eu.etaxonomy.cdm.api.service.IPreferenceService;
42 46
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
43 47
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
44 48
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
45 49
import eu.etaxonomy.taxeditor.model.ImageResources;
46 50
import eu.etaxonomy.taxeditor.model.MessagingUtils;
47 51
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
52
import eu.etaxonomy.taxeditor.store.CdmStore;
48 53

  
49 54
/**
50 55
 * @author pplitzner
......
228 233
        btnManageState.addSelectionListener(new SelectionAdapter() {
229 234
            @Override
230 235
            public void widgetSelected(SelectionEvent e) {
236
                getNatTableState().remove(NatTable.INITIAL_PAINT_COMPLETE_FLAG);
231 237
                matrix.getNatTable().doCommand(new DisplayPersistenceDialogCommand(matrix.getNatTable()));
232 238
                Object activeConfig = natTableState.get(PersistenceDialog.ACTIVE_VIEW_CONFIGURATION_KEY);
233 239
                if(activeConfig!=null){
234 240
                    selectStateItem(comboStates, activeConfig.toString());
235 241
                }
242
                persistTableState();
236 243
            }
237 244
        });
238 245

  
......
260 267

  
261 268
    }
262 269

  
270
    private void persistTableState() {
271
        if(matrix.getNatTableState()!=null){
272
            StringWriter writer = new StringWriter();
273
            try {
274
                matrix.getNatTableState().store(writer, null);
275
                ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
276
                if (controller != null){
277
                    IPreferenceService service = controller.getPreferenceService();
278
                    CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CharacterMatrixTableState, writer.toString());
279
                    service.set(pref);
280
                    PreferencesUtil.updateDBPreferences();
281
                }
282
            } catch (IOException e) {
283
                MessagingUtils.error(getClass(), e);
284
            }
285
        }
286
    }
287

  
263 288
    private void selectStateItem(ComboViewer comboStates, String stateName){
264 289
        String[] items = comboStates.getCombo().getItems();
265 290
        for(int i=0;i<items.length;i++){

Also available in: Unified diff