Repository: openmeetings
Updated Branches:
  refs/heads/master 7d80d7712 -> 568c47ac6


[OPENMEETINGS-1639] Load is implemented


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/568c47ac
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/568c47ac
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/568c47ac

Branch: refs/heads/master
Commit: 568c47ac6249f832d629b988f22cae5fefb383db
Parents: 7d80d77
Author: Maxim Solodovnik <[email protected]>
Authored: Sun Jul 2 00:19:04 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Sun Jul 2 00:19:04 2017 +0700

----------------------------------------------------------------------
 .../core/data/file/FileProcessor.java           |  5 +--
 .../openmeetings/db/dto/room/Whiteboard.java    | 15 +++-----
 .../apache/openmeetings/util/NullStringer.java  | 39 ++++++++++++++++++++
 .../web/room/RoomResourceReference.java         |  2 +-
 .../openmeetings/web/room/wb/WbPanel.java       | 38 ++++++-------------
 .../org/apache/openmeetings/web/room/wb/wb.js   |  3 ++
 6 files changed, 62 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
index 8c4b620..8ae3e6c 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
@@ -98,9 +98,6 @@ public class FileProcessor {
                        }
                        f.setHash(hash);
 
-                       f = fileDao.update(f);
-                       log.debug("fileId: " + f.getId());
-
                        File file = f.getFile(ext);
                        log.debug("writing file to: " + file);
                        if (!file.getParentFile().exists() && 
!file.getParentFile().mkdirs()) {
@@ -130,6 +127,8 @@ public class FileProcessor {
                                        result.addItem("processVideo " + i++, 
returnMap);
                                }
                        }
+                       f = fileDao.update(f);
+                       log.debug("fileId: " + f.getId());
 
                        // has to happen at the end, otherwise it will be 
overwritten
                        //cause the variable is new initialized

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
index a11a800..be67d0e 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.dto.room;
 
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-
 import java.util.Collections;
 import java.util.Date;
 import java.util.LinkedHashMap;
@@ -27,13 +25,11 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
+import org.apache.openmeetings.util.NullStringer;
 
 import com.github.openjson.JSONObject;
 
 public class Whiteboard {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(Whiteboard.class, webAppRootKey);
        private long id;
        private Integer x = 0;
        private Integer y = 0;
@@ -42,7 +38,6 @@ public class Whiteboard {
        private Map<String, JSONObject> roomItems = 
Collections.synchronizedMap(new LinkedHashMap<>());
        private Date created = new Date();
        private int slide = 0;
-       private int zIndex = 1;
        private String name;
 
        public Whiteboard() {}
@@ -101,10 +96,8 @@ public class Whiteboard {
 
        public void clear() {
                roomItems.clear();
-               zIndex = 1;
        }
 
-       //getter is required, otherwise roomItems are not available in red5
        public Map<String, JSONObject> getRoomItems() {
                return roomItems;
        }
@@ -143,11 +136,13 @@ public class Whiteboard {
 
        public JSONObject toJson() {
                //deep-copy
-               JSONObject json = new JSONObject(new 
JSONObject(this).toString());
+               JSONObject json = new JSONObject(new 
JSONObject(this).toString(new NullStringer()));
                json.remove("id"); //filtering
                JSONObject items = json.getJSONObject("roomItems");
                for (String uid : items.keySet()) {
-                       items.getJSONObject(uid).remove("_src"); //filtering
+                       JSONObject o = items.getJSONObject(uid);
+                       o.remove("_src");
+                       o.remove("src"); //filtering
                }
                return json;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
new file mode 100644
index 0000000..04a8d7c
--- /dev/null
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import java.util.Map.Entry;
+
+import com.github.openjson.JSONStringer;
+
+public class NullStringer extends JSONStringer {
+       public NullStringer() {
+               super();
+       }
+
+       public NullStringer(int indent) {
+               //super(indent); FIXME TODO uncomment
+               super();
+       }
+
+       @Override
+       public JSONStringer entry(Entry<String, Object> entry) {
+               return this.key(entry.getKey()).value(entry.getValue());
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index a8d98a6..c4fd8bf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
@@ -105,7 +105,7 @@ public class RoomResourceReference extends 
FileItemResourceReference<FileExplore
                Whiteboards wbs = 
getBean(WhiteboardCache.class).get(c.getRoomId());
                if (!Strings.isEmpty(wuid) && !Strings.isEmpty(ruid) && 
ruid.equals(wbs.getUid())) {
                        for (Entry<Long, Whiteboard> e : 
wbs.getWhiteboards().entrySet()) {
-                               JSONObject file = 
e.getValue().getRoomItems().get(wuid);
+                               JSONObject file = e.getValue().get(wuid);
                                if (file != null && 
f.getId().equals(file.optLong("fileId"))) {
                                        return f; // item IS on WB
                                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/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 e9b9aec..e70e410 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
@@ -46,6 +46,7 @@ import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.util.NullStringer;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.common.NameDialog;
@@ -76,7 +77,6 @@ import org.slf4j.Logger;
 
 import com.github.openjson.JSONArray;
 import com.github.openjson.JSONObject;
-import com.github.openjson.JSONStringer;
 import com.github.openjson.JSONTokener;
 
 public class WbPanel extends Panel {
@@ -105,6 +105,7 @@ public class WbPanel extends Panel {
                , clearAll
                , clearSlide
                , save
+               , load
        }
        private final AbstractDefaultAjaxBehavior wbAction = new 
AbstractDefaultAjaxBehavior() {
                private static final long serialVersionUID = 1L;
@@ -242,7 +243,7 @@ public class WbPanel extends Panel {
                        f.setName(getModelObject());
                        f = getBean(FileExplorerItemDao.class).update(f);
                        try (BufferedWriter writer = 
Files.newBufferedWriter(f.getFile().toPath())) {
-                               writer.write(wb.toJson().toString(2));
+                               writer.write(wb.toJson().toString(new 
NullStringer(2)));
                        } catch (IOException e) {
                                error("Unexpected error while saving WB: " + 
e.getMessage());
                                target.add(feedback);
@@ -302,7 +303,7 @@ public class WbPanel extends Panel {
                                        .append(getAddWbJson(entry.getKey(), 
entry.getValue().getName()).toString())
                                        .append(");"));
                        JSONArray arr = new JSONArray();
-                       for (Entry<String, JSONObject> wbEntry : 
entry.getValue().getRoomItems().entrySet()) {
+                       for (Entry<String, JSONObject> wbEntry : 
entry.getValue().entrySet()) {
                                JSONObject o = wbEntry.getValue();
                                arr.put(addFileUrl(wbs.getUid(), o));
                        }
@@ -415,19 +416,14 @@ public class WbPanel extends Panel {
                                        File f = fi.getFile();
                                        if (f.exists() && f.isFile()) {
                                                try (BufferedReader br = 
Files.newBufferedReader(f.toPath())) {
-                                                       JSONObject wbo = new 
JSONObject(new JSONTokener(br));
-                                                       
/*WebSocketHelper.sendRoom(
-                                                                       roomId
-                                                                       , new 
JSONObject().put("type", "wb")
-                                                                       , null
-                                                                       , (o, 
c) -> {
-                                                                               
        return o.put("func", String.format("WbArea.%s(%s);"
-                                                                               
                        , Action.createObj.name()
-                                                                               
                        , getObjWbJson(wb.getId(), addFileUrl(ruid, file, fi, 
c)).toString())
-                                                                               
                ).toString();
-                                                                               
}
-                                                                       );*/
-                                               } catch (IOException e) {
+                                                       JSONObject items = new 
JSONObject(new JSONTokener(br)).getJSONObject("roomItems");
+                                                       JSONArray arr = new 
JSONArray();
+                                                       for (String uid : 
items.keySet()) {
+                                                               JSONObject o = 
items.getJSONObject(uid);
+                                                               
arr.put(addFileUrl(wbs.getUid(), o));
+                                                       }
+                                                       sendWbAll(Action.load, 
getObjWbJson(wb.getId(), arr));
+                                               } catch (Exception e) {
                                                        log.error("Unexpected 
error while loading WB", e);
                                                }
                                        }
@@ -470,14 +466,4 @@ public class WbPanel extends Panel {
                        }
                }
        }
-
-       //FIXME TODO openjson 1.0.2
-       //private static class ObjectStringer
-
-       private static class NullStringer extends JSONStringer {
-               @Override
-               public JSONStringer entry(Entry<String, Object> entry) {
-                       return this.key(entry.getKey()).value(entry.getValue());
-               }
-       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
index cf86951..6c8a7be 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
@@ -200,8 +200,11 @@ var ShapeBase = function(wb) {
 var Text = function(wb, s) {
        var text = ShapeBase(wb);
        text.obj = null;
+       text.fill.color = '#000000';
        text.stroke.width = 1;
+       text.stroke.color = '#000000';
        text.style = {bold: false, italic: false};
+       //TODO font size, background color
 
        text.mouseDown = function(o) {
                var canvas = this;

Reply via email to