Project

General

Profile

« Previous | Next » 

Revision 50c9c090

Added by Patrick Plitzner almost 5 years ago

ref #8335 Store character matrix table state as DB preference

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.FileOutputStream;
12 11
import java.io.IOException;
12
import java.io.StringWriter;
13 13
import java.util.Arrays;
14 14
import java.util.Collection;
15 15
import java.util.Collections;
......
37 37
import org.eclipse.swt.widgets.Composite;
38 38
import org.eclipse.swt.widgets.Label;
39 39

  
40
import eu.etaxonomy.cdm.api.application.ICdmRepository;
40 41
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
41 42
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
42 43
import eu.etaxonomy.cdm.api.service.IDescriptionService;
43 44
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
45
import eu.etaxonomy.cdm.api.service.IPreferenceService;
44 46
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
45
import eu.etaxonomy.cdm.model.term.TermType;
46 47
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
48
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
49
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
47 50
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
51
import eu.etaxonomy.cdm.model.term.TermType;
48 52
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
49 53
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
50 54
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
51 55
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
52 56
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
53 57
import eu.etaxonomy.taxeditor.model.MessagingUtils;
58
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
54 59
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
55 60
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
56 61
import eu.etaxonomy.taxeditor.store.CdmStore;
......
214 219
        }
215 220
        dirty.setDirty(false);
216 221
        if(matrix.getNatTableState()!=null){
217
            try (FileOutputStream tableStateStream =
218
                    new FileOutputStream(matrix.getStatePropertiesFile())) {
219
                matrix.getNatTableState().store(tableStateStream, null);
220
            } catch (IOException ioe) {
221
                ioe.printStackTrace();
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);
222 234
            }
223 235
        }
224 236
    }
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CharacterMatrixToolbar.java
8 8
*/
9 9
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix;
10 10

  
11
import java.io.File;
12
import java.io.FileInputStream;
13 11
import java.io.IOException;
12
import java.io.StringReader;
14 13
import java.util.Collection;
15 14
import java.util.Properties;
16 15
import java.util.function.Consumer;
......
39 38
import org.eclipse.swt.widgets.Composite;
40 39
import org.eclipse.swt.widgets.Label;
41 40

  
41
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
42
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
42 43
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
43 44
import eu.etaxonomy.taxeditor.model.ImageResources;
44 45
import eu.etaxonomy.taxeditor.model.MessagingUtils;
46
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
45 47

  
46 48
/**
47 49
 * @author pplitzner
......
167 169
         */
168 170
        natTableState = new Properties();
169 171
        //load persisted state
170
        File statePropertiesFile = matrix.getStatePropertiesFile();
171
        FileInputStream inputStream;
172 172
        try {
173
            inputStream = new FileInputStream(statePropertiesFile);
174
            natTableState.load(inputStream);
175
        } catch (IOException e) {
176
            MessagingUtils.info("No initial state properties file found for character matrix"); //$NON-NLS-1$
173

  
174
            CdmPreference preference = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CharacterMatrixTableState);
175
            if(preference!=null){
176
                natTableState.load(new StringReader(preference.getValue()));
177
            }
178
        } catch (IOException e1) {
179
            MessagingUtils.error(getClass(), e1);
177 180
        }
178 181

  
179 182
        // create a combobox for showing the available view states

Also available in: Unified diff