Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix config storage #316

Merged
merged 3 commits into from
Jun 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- ![IO] Fix parsing of .ods files [#309](https://github.com/jdemetra/jdplus-main/issues/309)
- ![UI] Fix default toolbar and menu [#311](https://github.com/jdemetra/jdplus-main/issues/311)
- ![UI] Fix slow dialog box when opening a file [#313](https://github.com/jdemetra/jdplus-main/issues/313)
- ![UI] Fix option show-provider-nodes cannot be reset between sessions [#292](https://github.com/jdemetra/jdplus-main/issues/292)

### Changed

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public void setConfig(@NonNull Config config){
}

@Override
public Config getConfig(){
public @NonNull Config getConfig(){
return coreConverter.doForward(core);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import jdplus.toolkit.desktop.plugin.beans.BeanHandler;
import jdplus.toolkit.desktop.plugin.properties.NodePropertySetBuilder;
import jdplus.toolkit.desktop.plugin.properties.PropertySheetDialogBuilder;
import lombok.NonNull;
import nbbrd.io.text.BooleanProperty;
import nbbrd.io.text.Formatter;
import nbbrd.io.text.Parser;
Expand Down Expand Up @@ -77,17 +78,17 @@ public AbstractOutputNode createNodeFor(Object properties) {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return configurator.getConfig(this);
}

@Override
public void setConfig(Config config) throws IllegalArgumentException {
public void setConfig(@NonNull Config config) throws IllegalArgumentException {
configurator.setConfig(this, config);
}

@Override
public Config editConfig(Config config) throws IllegalArgumentException {
public @NonNull Config editConfig(@NonNull Config config) throws IllegalArgumentException {
return configurator.editConfig(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import jdplus.toolkit.desktop.plugin.beans.BeanHandler;
import jdplus.toolkit.desktop.plugin.properties.NodePropertySetBuilder;
import jdplus.toolkit.desktop.plugin.properties.PropertySheetDialogBuilder;
import lombok.NonNull;
import nbbrd.io.text.BooleanProperty;
import nbbrd.io.text.Formatter;
import nbbrd.io.text.Parser;
Expand Down Expand Up @@ -77,17 +78,17 @@ public AbstractOutputNode createNodeFor(Object properties) {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return configurator.getConfig(this);
}

@Override
public void setConfig(Config config) throws IllegalArgumentException {
public void setConfig(@NonNull Config config) throws IllegalArgumentException {
configurator.setConfig(this, config);
}

@Override
public Config editConfig(Config config) throws IllegalArgumentException {
public @NonNull Config editConfig(@NonNull Config config) throws IllegalArgumentException {
return configurator.editConfig(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import jdplus.toolkit.desktop.plugin.beans.BeanHandler;
import jdplus.toolkit.desktop.plugin.properties.NodePropertySetBuilder;
import jdplus.toolkit.desktop.plugin.properties.PropertySheetDialogBuilder;
import lombok.NonNull;
import nbbrd.io.text.BooleanProperty;
import nbbrd.io.text.Formatter;
import nbbrd.io.text.Parser;
Expand Down Expand Up @@ -78,17 +79,17 @@ public AbstractOutputNode createNodeFor(Object properties) {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return configurator.getConfig(this);
}

@Override
public void setConfig(Config config) throws IllegalArgumentException {
public void setConfig(@NonNull Config config) throws IllegalArgumentException {
configurator.setConfig(this, config);
}

@Override
public Config editConfig(Config config) throws IllegalArgumentException {
public @NonNull Config editConfig(@NonNull Config config) throws IllegalArgumentException {
return configurator.editConfig(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ public void setSelectedSeriesFields(List<String> fields) {
private static final String DOMAIN = DemetraSaUI.class.getName(), NAME = "demetra-sa", VERSION = "3.0.0";

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
Config.Builder b = Config.builder(DOMAIN, NAME, VERSION);
SPECTRAL_LAST_YEARS_CONFIG.set(b::parameter, getSpectralLastYears());
SEASONALITY_LENGTH_CONFIG.set(b::parameter, getSeasonalityLength());
Expand All @@ -186,7 +186,7 @@ public Config getConfig() {
}

@Override
public void setConfig(Config config) {
public void setConfig(@NonNull Config config) {
Config.checkDomain(config, DOMAIN);
setSpectralLastYears(SPECTRAL_LAST_YEARS_CONFIG.get(config::getParameter));
setSeasonalityLength(SEASONALITY_LENGTH_CONFIG.get(config::getParameter));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,34 @@
/*
* Copyright 2013 National Bank of Belgium
*
* Licensed under the EUPL, Version 1.1 or – as soon they will be approved
* Licensed under the EUPL, Version 1.1 or – as soon they will be approved
* by the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* http://ec.europa.eu/idabc/eupl
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*/
package jdplus.sa.desktop.plugin.util;

import jdplus.toolkit.desktop.plugin.Config;
import jdplus.sa.desktop.plugin.output.OutputFactoryBuddies;
import jdplus.sa.desktop.plugin.l2fprod.SaInterventionVariableDescriptor;
import jdplus.sa.desktop.plugin.l2fprod.SaInterventionVariablesEditor;
import jdplus.sa.desktop.plugin.l2fprod.SaTsVariableDescriptor;
import jdplus.sa.desktop.plugin.l2fprod.SaTsVariableDescriptorsEditor;
import jdplus.sa.desktop.plugin.output.OutputFactoryBuddies;
import jdplus.sa.desktop.plugin.ui.DemetraSaUI;
import jdplus.toolkit.desktop.plugin.ui.properties.l2fprod.ArrayRenderer;
import jdplus.toolkit.desktop.plugin.ui.properties.l2fprod.CustomPropertyEditorRegistry;
import jdplus.toolkit.desktop.plugin.ui.properties.l2fprod.CustomPropertyRendererFactory;
import jdplus.toolkit.desktop.plugin.util.InstallerStep;

import static jdplus.toolkit.desktop.plugin.util.InstallerStep.tryGet;
import java.util.prefs.BackingStoreException;

import org.openide.modules.ModuleInstall;

import java.util.prefs.Preferences;
import org.openide.util.Exceptions;

public final class Installer extends ModuleInstall {

Expand All @@ -60,51 +54,31 @@ private static final class DemetraSaOptionsStep extends InstallerStep {

@Override
public void restore() {
DemetraSaUI ui = DemetraSaUI.get();
tryGet(prefs).ifPresent(ui::setConfig);
load(prefs, DemetraSaUI.get());
}

@Override
public void close() {
DemetraSaUI ui = DemetraSaUI.get();
put(prefs, ui.getConfig());
try {
prefs.flush();
} catch (BackingStoreException ex) {
Exceptions.printStackTrace(ex);
}
store(prefs, DemetraSaUI.get());
}
}

private static final class SaOutputStep extends InstallerStep {

final Preferences prefs = prefs().node("outputs");
private static final class SaOutputStep extends InstallerStep {

private final Preferences outputs = prefs().node("outputs");

@Override
public void restore() {
OutputFactoryBuddies.getInstance().getFactories().forEach(buddy->{
Preferences nprefs = prefs.node(buddy.getDisplayName());
tryGet(nprefs).ifPresent(buddy::setConfig);
});
OutputFactoryBuddies.getInstance().getFactories()
.forEach(buddy -> load(outputs.node(buddy.getDisplayName()), buddy));
}

@Override
public void close() {
OutputFactoryBuddies.getInstance().getFactories().forEach(buddy->{
Config config = buddy.getConfig();
if (config != null){
Preferences nprefs = prefs.node(buddy.getDisplayName());
put(nprefs, config);
try {
nprefs.flush();
} catch (BackingStoreException ex) {
Exceptions.printStackTrace(ex);
}
}
});
OutputFactoryBuddies.getInstance().getFactories()
.forEach(buddy -> store(outputs.node(buddy.getDisplayName()), buddy));
}
}



private static final class PropertiesStep extends InstallerStep {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import jdplus.toolkit.desktop.plugin.beans.BeanConfigurator;
import jdplus.toolkit.desktop.plugin.beans.BeanHandler;
import jdplus.toolkit.desktop.plugin.datatransfer.DataTransferSpi;
import lombok.NonNull;
import org.openide.util.ImageUtilities;
import org.openide.util.lookup.ServiceProvider;
import org.openide.util.lookup.ServiceProviders;
Expand Down Expand Up @@ -79,17 +80,17 @@ public DataFlavor getDataFlavor() {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return configurator.getConfig(this);
}

@Override
public void setConfig(Config config) {
public void setConfig(@NonNull Config config) {
configurator.setConfig(this, config);
}

@Override
public Config editConfig(Config config) {
public @NonNull Config editConfig(@NonNull Config config) {
return configurator.editConfig(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import jdplus.toolkit.desktop.plugin.beans.BeanConfigurator;
import jdplus.toolkit.desktop.plugin.beans.BeanHandler;
import jdplus.toolkit.desktop.plugin.datatransfer.DataTransferSpi;
import lombok.NonNull;
import org.openide.util.ImageUtilities;
import org.openide.util.lookup.ServiceProvider;
import org.openide.util.lookup.ServiceProviders;
Expand Down Expand Up @@ -84,17 +85,17 @@ public DataFlavor getDataFlavor() {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return configurator.getConfig(this);
}

@Override
public void setConfig(Config config) {
public void setConfig(@NonNull Config config) {
configurator.setConfig(this, config);
}

@Override
public Config editConfig(Config config) {
public @NonNull Config editConfig(@NonNull Config config) {
return configurator.editConfig(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import jdplus.toolkit.desktop.plugin.properties.NodePropertySetBuilder;
import ec.util.spreadsheet.Book;
import ec.util.spreadsheet.helpers.ArraySheet;
import lombok.NonNull;
import nbbrd.design.swing.OnAnyThread;
import nbbrd.design.swing.OnEDT;
import java.io.File;
Expand Down Expand Up @@ -187,12 +188,12 @@ public Sheet asSheet() {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return PERSISTENCE.loadConfig(this);
}

@Override
public void setConfig(Config config) throws IllegalArgumentException {
public void setConfig(@NonNull Config config) throws IllegalArgumentException {
PERSISTENCE.storeConfig(this, config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import jdplus.toolkit.desktop.plugin.beans.BeanHandler;
import jdplus.toolkit.desktop.plugin.properties.NodePropertySetBuilder;
import jdplus.toolkit.desktop.plugin.properties.PropertySheetDialogBuilder;
import lombok.NonNull;
import nbbrd.io.text.BooleanProperty;
import nbbrd.io.text.Formatter;
import nbbrd.io.text.Parser;
Expand Down Expand Up @@ -72,17 +73,17 @@ public AbstractOutputNode createNodeFor(Object properties) {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return configurator.getConfig(this);
}

@Override
public void setConfig(Config config) throws IllegalArgumentException {
public void setConfig(@NonNull Config config) throws IllegalArgumentException {
configurator.setConfig(this, config);
}

@Override
public Config editConfig(Config config) throws IllegalArgumentException {
public @NonNull Config editConfig(@NonNull Config config) throws IllegalArgumentException {
return configurator.editConfig(config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import jdplus.toolkit.desktop.plugin.NamedServiceSupport;
import jdplus.toolkit.desktop.plugin.Persistable;
import jdplus.toolkit.desktop.plugin.datatransfer.ts.TxtDataTransfer;
import lombok.NonNull;
import nbbrd.design.swing.OnAnyThread;
import nbbrd.design.swing.OnEDT;
import internal.text.base.api.TxtFileFilter;
Expand Down Expand Up @@ -131,12 +132,12 @@ public Sheet asSheet() {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return PERSISTENCE.loadConfig(this);
}

@Override
public void setConfig(Config config) throws IllegalArgumentException {
public void setConfig(@NonNull Config config) throws IllegalArgumentException {
PERSISTENCE.storeConfig(this, config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,12 @@ public void setBatchPriority(ThreadPriority batchPriority) {
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return PERSISTENCE.loadConfig(this);
}

@Override
public void setConfig(Config config) {
public void setConfig(@NonNull Config config) {
PERSISTENCE.storeConfig(this, config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,12 @@ public void setPrespecifiedOutliersEditor(OutlierDescriptorsEditor.Prespecificie
}

@Override
public Config getConfig() {
public @NonNull Config getConfig() {
return PERSISTENCE.loadConfig(this);
}

@Override
public void setConfig(Config config) {
public void setConfig(@NonNull Config config) {
PERSISTENCE.storeConfig(this, config);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void setConfig(@NonNull R resource, @NonNull Config config) throws Illega
}

@Override
public Config editConfig(Config config) throws IllegalArgumentException {
public @NonNull Config editConfig(@NonNull Config config) throws IllegalArgumentException {
B bean = converter.doBackward(config);
if (editor.editBean(bean, Exceptions::printStackTrace)) {
return converter.doForward(bean);
Expand Down
Loading
Loading