Browse Source

Improve initial state.

- Pass in ID
- Don't burst the full backbuffer
pull/478/head
Chris Smith 7 years ago
parent
commit
5de188319c

+ 4
- 2
ui_web2/src/main/java/com/dmdirc/addons/ui_web2/InitialStateProducer.java View File

@@ -22,7 +22,7 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_web2;
24 24
 
25
-import com.dmdirc.addons.ui_web2.serialisers.BackBufferSerializer;
25
+import com.dmdirc.addons.ui_web2.serialisers.BackBufferSimpleSerializer;
26 26
 import com.dmdirc.addons.ui_web2.serialisers.WindowModelSerialiser;
27 27
 import com.dmdirc.interfaces.WindowModel;
28 28
 import com.dmdirc.ui.WindowManager;
@@ -50,7 +50,7 @@ public class InitialStateProducer {
50 50
             final WindowModelSerialiser windowSerialiser) {
51 51
         serialiser = new GsonBuilder()
52 52
                 .registerTypeHierarchyAdapter(WindowModel.class, windowSerialiser)
53
-                .registerTypeAdapter(BackBuffer.class, new BackBufferSerializer())
53
+                .registerTypeAdapter(BackBuffer.class, new BackBufferSimpleSerializer())
54 54
                 .create();
55 55
         this.windowManager = windowManager;
56 56
     }
@@ -60,6 +60,7 @@ public class InitialStateProducer {
60 60
         return serialiser.toJson(state);
61 61
     }
62 62
 
63
+    /** Class to serialize and pass to the client with initial state. */
63 64
     private static class InitialState {
64 65
 
65 66
         private final Collection<WindowModel> windows;
@@ -71,6 +72,7 @@ public class InitialStateProducer {
71 72
         public Collection<WindowModel> getWindows() {
72 73
             return Collections.unmodifiableCollection(windows);
73 74
         }
75
+
74 76
     }
75 77
 
76 78
 }

+ 1
- 2
ui_web2/src/main/java/com/dmdirc/addons/ui_web2/serialisers/BackBufferSerializer.java View File

@@ -38,8 +38,7 @@ import java.lang.reflect.Type;
38 38
 public class BackBufferSerializer implements JsonSerializer<BackBuffer> {
39 39
 
40 40
     @Override
41
-    public JsonElement serialize(final BackBuffer src, final Type typeOfSrc,
42
-            final JsonSerializationContext context) {
41
+    public JsonElement serialize(final BackBuffer src, final Type typeOfSrc, final JsonSerializationContext context) {
43 42
         final JsonArray res = new JsonArray();
44 43
         final IRCDocument document = src.getDocument();
45 44
         for (int i = 0; i < document.getNumLines(); i++) {

+ 24
- 0
ui_web2/src/main/java/com/dmdirc/addons/ui_web2/serialisers/BackBufferSimpleSerializer.java View File

@@ -0,0 +1,24 @@
1
+package com.dmdirc.addons.ui_web2.serialisers;
2
+
3
+import com.dmdirc.ui.messages.BackBuffer;
4
+
5
+import com.google.gson.JsonElement;
6
+import com.google.gson.JsonObject;
7
+import com.google.gson.JsonSerializationContext;
8
+import com.google.gson.JsonSerializer;
9
+
10
+import java.lang.reflect.Type;
11
+
12
+/**
13
+ * Serializes a {@link BackBuffer} without including the full content.
14
+ */
15
+public class BackBufferSimpleSerializer implements JsonSerializer<BackBuffer> {
16
+
17
+    @Override
18
+    public JsonElement serialize(final BackBuffer src, final Type typeOfSrc, final JsonSerializationContext context) {
19
+        final JsonObject res = new JsonObject();
20
+        res.addProperty("lines", src.getDocument().getNumLines());
21
+        return res;
22
+    }
23
+
24
+}

+ 2
- 2
ui_web2/src/main/java/com/dmdirc/addons/ui_web2/serialisers/WindowModelSerialiser.java View File

@@ -47,9 +47,9 @@ public class WindowModelSerialiser implements JsonSerializer<WindowModel> {
47 47
     }
48 48
 
49 49
     @Override
50
-    public JsonElement serialize(final WindowModel src, final Type typeOfSrc,
51
-            final JsonSerializationContext context) {
50
+    public JsonElement serialize(final WindowModel src, final Type typeOfSrc, final JsonSerializationContext context) {
52 51
         final JsonObject res = new JsonObject();
52
+        res.addProperty("id", src.getId());
53 53
         res.addProperty("name", src.getName());
54 54
         res.addProperty("icon", src.getIcon());
55 55
         res.addProperty("title", src.getTitle());

Loading…
Cancel
Save