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
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