Revision 44837 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchParameters.java

View differences:

DefaultSearchParameters.java
5 5
 */
6 6
package org.gvsig.fmap.dal.swing.impl.searchpanel;
7 7

  
8
import java.io.ByteArrayInputStream;
8 9
import java.io.ByteArrayOutputStream;
10
import java.io.InputStream;
9 11
import java.util.ArrayList;
10 12
import java.util.HashMap;
11 13
import java.util.List;
......
13 15
import javax.json.Json;
14 16
import javax.json.JsonObject;
15 17
import javax.json.JsonObjectBuilder;
18
import javax.json.JsonReader;
16 19
import javax.json.JsonWriter;
17 20
import org.gvsig.expressionevaluator.Expression;
18 21
import org.gvsig.fmap.dal.feature.FeatureQuery;
......
81 84
            DynStruct definition = manager.addDefinition(DefaultSearchParameters.class,
82 85
                    "DefaultSearchParameters", "DefaultSearchParameters persistence definition", null, null);
83 86
            definition.addDynFieldList("resultColumnNames").setClassOfItems(String.class);
84
            definition.addDynFieldMap("values").setClassOfItems(JsonObject.class);
87
            definition.addDynFieldMap("values").setClassOfItems(String.class);
85 88
            definition.addDynFieldObject("query").setClassOfValue(FeatureQuery.class).setMandatory(false);
86 89
            definition.addDynFieldString("name").setClassOfValue(String.class);
87 90
        }
......
90 93
    @Override
91 94
    public void saveToState(PersistentState state) throws PersistenceException {
92 95
        state.set("resultColumnNames", this.resultColumnNames);
93
        state.set("values", this.values);
96
        HashMap<String, String> valuesMap = new HashMap<>();
97
        for (String key : this.values.keySet()) {
98
            JsonObject value = this.values.get(key);
99
            valuesMap.put(key, value.toString());
100
        }
101
        state.set("values", valuesMap);
94 102
        state.set("query", this.query);
95 103
        state.set("name", this.name);
96 104
    }
......
98 106
    @Override
99 107
    public void loadFromState(PersistentState state) throws PersistenceException {
100 108
        this.resultColumnNames = state.getList("resultColumnNames");
101
        this.values = state.getMap("values");
109
        Map<String, String> valuesState = state.getMap("values");
110
        HashMap<String, JsonObject> valuesMap = new HashMap<>();
111

  
112
        for (String key : valuesState.keySet()) {
113
            String value = valuesState.get(key);
114
             InputStream targetStream = new ByteArrayInputStream(value.getBytes());
115
            JsonReader reader = Json.createReader(targetStream);
116
            JsonObject jsonObject = reader.readObject();
117
            valuesMap.put(key, jsonObject);
118
        }
119
        
120
        this.values = valuesMap;
102 121
        this.query = (FeatureQuery) state.get("query");
103 122
        this.name = state.getString("name");
104 123
    }

Also available in: Unified diff