Revision 50c9c090
Added by Patrick Plitzner almost 5 years ago
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
ref #8335 Store character matrix table state as DB preference