Repository: openmeetings Updated Branches: refs/heads/master 80f03e4b8 -> df7f854c1
no jira: code is optimized Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/df7f854c Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/df7f854c Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/df7f854c Branch: refs/heads/master Commit: df7f854c181e3269ce023acdf1bba394607f6d83 Parents: 80f03e4 Author: Maxim Solodovnik <[email protected]> Authored: Sun Nov 5 23:45:51 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Sun Nov 5 23:46:19 2017 +0700 ---------------------------------------------------------------------- .../openmeetings/web/room/wb/WbPanel.java | 38 ++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/df7f854c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java index 79eae47..fb3d537 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java @@ -44,6 +44,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.TreeMap; import java.util.UUID; import java.util.function.Consumer; @@ -189,15 +190,7 @@ public class WbPanel extends AbstractWbPanel { } } Whiteboards wbs = WhiteboardCache.get(roomId, langId); - for (Entry<Long, Whiteboard> entry : WhiteboardCache.list(roomId, langId)) { - Whiteboard wb = entry.getValue(); - sb.append(new StringBuilder("WbArea.create(").append(getAddWbJson(wb)).append(");")); - JSONArray arr = new JSONArray(); - for (JSONObject o : wb.list()) { - arr.put(addFileUrl(wbs.getUid(), o)); - } - sb.append("WbArea.load(").append(getObjWbJson(entry.getKey(), arr).toString(new NullStringer())).append(");"); - } + loadWhiteboards(sb, rp.getClient(), wbs, WhiteboardCache.list(roomId, langId)); JSONObject wbj = getWbJson(wbs.getActiveWb()); sb.append("WbArea.activateWb(").append(wbj).append(");"); Whiteboard wb = wbs.get(wbs.getActiveWb()); @@ -487,11 +480,11 @@ public class WbPanel extends AbstractWbPanel { return role; } - private JSONObject addFileUrl(String ruid, JSONObject _file) { - return addFileUrl(ruid, _file, null); + private static JSONObject addFileUrl(Client cl, String ruid, JSONObject _file) { + return addFileUrl(cl, ruid, _file, null); } - private JSONObject addFileUrl(String ruid, JSONObject _file, Consumer<BaseFileItem> consumer) { + private static JSONObject addFileUrl(Client cl, String ruid, JSONObject _file, Consumer<BaseFileItem> consumer) { try { final long fid = _file.optLong(ATTR_FILE_ID, -1); if (fid > 0) { @@ -502,7 +495,7 @@ public class WbPanel extends AbstractWbPanel { if (consumer != null) { consumer.accept(fi); } - return WbWebSocketHelper.addFileUrl(ruid, _file, fi, rp.getClient()); + return WbWebSocketHelper.addFileUrl(ruid, _file, fi, cl); } } } catch (Exception e) { @@ -564,7 +557,7 @@ public class WbPanel extends AbstractWbPanel { JSONArray arr = getArray(new JSONObject(new JSONTokener(br)), o -> { wb.put(o.getString("uid"), o); updated[0] = true; - return addFileUrl(wbs.getUid(), o, _f -> updateWbSize(wb, _f)); + return addFileUrl(rp.getClient(), wbs.getUid(), o, _f -> updateWbSize(wb, _f)); }); if (updated[0]) { WhiteboardCache.update(roomId, wb); @@ -663,4 +656,21 @@ public class WbPanel extends AbstractWbPanel { f = getBean(FileItemDao.class).update(f); return wb.save(f.getFile().toPath()); } + + public static StringBuilder loadWhiteboards(Client cl, Whiteboards wbs, Set<Entry<Long, Whiteboard>> boardSet) { + return loadWhiteboards(new StringBuilder(), cl, wbs, boardSet); + } + + private static StringBuilder loadWhiteboards(StringBuilder sb, Client cl, Whiteboards wbs, Set<Entry<Long, Whiteboard>> boardSet) { + for (Entry<Long, Whiteboard> entry : boardSet) { + Whiteboard wb = entry.getValue(); + sb.append(new StringBuilder("WbArea.create(").append(getAddWbJson(wb)).append(");")); + JSONArray arr = new JSONArray(); + for (JSONObject o : wb.list()) { + arr.put(addFileUrl(cl, wbs.getUid(), o)); + } + sb.append("WbArea.load(").append(getObjWbJson(entry.getKey(), arr).toString(new NullStringer())).append(");"); + } + return sb; + } }
