Update ControlButtonData.java

This commit is contained in:
ShirosakiMio 2024-02-20 12:18:37 +08:00
parent f9838248f0
commit f9a66a385b
1 changed files with 6 additions and 2 deletions

View File

@ -178,7 +178,7 @@ public class ControlButtonData implements Cloneable, Observable, CustomControl {
obj.addProperty("id", src.getId());
obj.addProperty("text", src.getText());
obj.add("style", gson.toJsonTree(src.getStyle()).getAsJsonObject());
obj.addProperty("style", src.getStyle().getName());
obj.add("baseInfo", gson.toJsonTree(src.getBaseInfo()).getAsJsonObject());
obj.add("event", gson.toJsonTree(src.getEvent()).getAsJsonObject());
@ -195,7 +195,11 @@ public class ControlButtonData implements Cloneable, Observable, CustomControl {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
data.setText(Optional.ofNullable(obj.get("text")).map(JsonElement::getAsString).orElse(""));
data.setStyle(gson.fromJson(Optional.ofNullable(obj.get("style")).map(JsonElement::getAsJsonObject).orElse(gson.toJsonTree(ControlButtonStyle.DEFAULT_BUTTON_STYLE).getAsJsonObject()), new TypeToken<ControlButtonStyle>(){}.getType()));
if (obj.get("style").toString().contains("{")) {
data.setStyle(gson.fromJson(Optional.ofNullable(obj.get("style")).map(JsonElement::getAsJsonObject).orElse(gson.toJsonTree(ControlButtonStyle.DEFAULT_BUTTON_STYLE).getAsJsonObject()), new TypeToken<ControlButtonStyle>() {}.getType()));
} else {
data.setStyle(Optional.ofNullable(ButtonStyles.findStyleByName(obj.get("style").getAsString())).orElse(ControlButtonStyle.DEFAULT_BUTTON_STYLE));
}
data.setBaseInfo(gson.fromJson(Optional.ofNullable(obj.get("baseInfo")).map(JsonElement::getAsJsonObject).orElse(gson.toJsonTree(new BaseInfoData()).getAsJsonObject()), new TypeToken<BaseInfoData>(){}.getType()));
data.setEvent(gson.fromJson(Optional.ofNullable(obj.get("event")).map(JsonElement::getAsJsonObject).orElse(gson.toJsonTree(new ButtonEventData()).getAsJsonObject()), new TypeToken<ButtonEventData>(){}.getType()));