Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardBarMenu.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardBarMenu.lzx?rev=1771605&r1=1771604&r2=1771605&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardBarMenu.lzx (original) +++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardBarMenu.lzx Sun Nov 27 16:49:18 2016 @@ -9,7 +9,7 @@ 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 @@ -21,7 +21,7 @@ <library> <class name="whiteboardBarMenu" extends="view" width="${ parent.width }" x="0" y="21" - height="20" layout="axis:x;spacing:1;inset:2" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }"> + height="20" layout="axis:x;spacing:1;inset:2" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }"> <switch> <when property="$as3"> <passthrough> @@ -29,88 +29,84 @@ </passthrough> </when> </switch> - - <attribute name="staticwidth" type="number" value="120" /> - <attribute name="currentBtn" value="null" /> - - <method name="getCurrentSize"> - <![CDATA[ - if ( ((this.subviews.length+1)*(this.staticwidth+1)) <= this.width) { - return this.staticwidth; - } else { - var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length+1)); - for (var i=0;i<this.subviews.length;i++) { - this.subviews[i].setAttribute('width',newwidth); - } - return newwidth; - } - ]]> - </method> - - <handler name="onwidth"> - <![CDATA[ - if ( ((this.subviews.length)*(this.staticwidth+1)) <= this.width) { - for (var i=0;i<this.subviews.length;i++) { - this.subviews[i].setAttribute('width',this.staticwidth); - } - } else { - var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length)); - for (var i=0;i<this.subviews.length;i++) { - this.subviews[i].setAttribute('width',newwidth); - } - } - ]]> - </handler> - - <method name="removeObject" args="btn"> - var whiteboardId = btn.objRef.whiteboardId; - this.removeObjectSynced(btn); - parent.sendRemoveWindow(whiteboardId); - </method> - - <method name="removeObjectSynced" args="btn"> - <![CDATA[ - var removeCurrent = this.currentBtn == btn; - btn.objRef.destroy(); - btn.destroy(); - if (this.subviews.length == 0) { - setWhiteboardId(-1);//no WB - } else if (removeCurrent) { - this.sendActiveWindowSynced(this.subviews[this.subviews.length-1]); - } - parent.addNewItemButton.updatePosition(); - ]]> - </method> - - - <method name="sendActiveWindow" args="btn,win"> - if ($debug) Debug.write("sendActiveWindow: ",btn,win); - this.sendActiveWindowSynced(btn); - this.currentBtn.objRef.sendActiveWindow(); - </method> + <attribute name="staticwidth" type="number" value="120" /> + <attribute name="currentBtn" value="null" /> + + <method name="getCurrentSize"> + <![CDATA[ + if ( ((this.subviews.length+1)*(this.staticwidth+1)) <= this.width) { + return this.staticwidth; + } else { + var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length+1)); + for (var i=0;i<this.subviews.length;i++) { + this.subviews[i].setAttribute('width',newwidth); + } + return newwidth; + } + ]]> + </method> + + <handler name="onwidth"> + <![CDATA[ + if ( ((this.subviews.length)*(this.staticwidth+1)) <= this.width) { + for (var i=0;i<this.subviews.length;i++) { + this.subviews[i].setAttribute('width',this.staticwidth); + } + } else { + var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length)); + for (var i=0;i<this.subviews.length;i++) { + this.subviews[i].setAttribute('width',newwidth); + } + } + ]]> + </handler> + + <method name="removeObject" args="btn"> + var whiteboardId = btn.objRef.whiteboardId; + this.removeObjectSynced(btn); + parent.sendRemoveWindow(whiteboardId); + </method> + + <method name="removeObjectSynced" args="btn"> + <![CDATA[ + var removeCurrent = this.currentBtn == btn; + btn.objRef.destroy(); + btn.destroy(); + if (this.subviews.length == 0) { + setWhiteboardId(-1);//no WB + } else if (removeCurrent) { + this.sendActiveWindowSynced(this.subviews[this.subviews.length-1]); + } + parent.addNewItemButton.updatePosition(); + ]]> + </method> + + <method name="sendActiveWindow" args="btn,win"> + if ($debug) Debug.write("sendActiveWindow: ",btn,win); + this.sendActiveWindowSynced(btn); + this.currentBtn.objRef.sendActiveWindow(); + </method> <method name="setWhiteboardId" args="wbId"> ExternalInterface.call("setActiveWbId", wbId); </method> - - <method name="sendActiveWindowSynced" args="btn"> - <![CDATA[ - if (this.currentBtn != null){ - this.currentBtn.isactive = false; - if (this.currentBtn._minimizebtn_mo != null) this.currentBtn._minimizebtn_mo.setAttribute('visible', false); - if (this.currentBtn._minimizebtn_dn != null) this.currentBtn._minimizebtn_dn.setAttribute('visible', false); - } - this.currentBtn = btn; - this.currentBtn.objRef.setAttribute("visible", true); - this.currentBtn.objRef.bringToFront(); - //if ($debug) Debug.warn("sendActiveWindowSynced: ", this.currentBtn.objRef.whiteboardId); - setWhiteboardId(this.currentBtn.objRef.whiteboardId); - this.currentBtn._minimizebtn_mo.setAttribute('visible', false); - this.currentBtn._minimizebtn_dn.setAttribute('visible', true); - this.currentBtn.isactive = true; - ]]> - </method> - + + <method name="sendActiveWindowSynced" args="btn"> + <![CDATA[ + if (this.currentBtn != null){ + this.currentBtn.isactive=false; + if (this.currentBtn._minimizebtn_mo != null) this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden'); + if (this.currentBtn._minimizebtn_dn != null) this.currentBtn._minimizebtn_dn.setAttribute('visibility','hidden'); + } + this.currentBtn = btn; + this.currentBtn.objRef.setAttribute("visibility","visible"); + this.currentBtn.objRef.bringToFront(); + //if ($debug) Debug.write("sendActiveWindow2: ",this.currentBtn); + this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden'); + this.currentBtn._minimizebtn_dn.setAttribute('visibility','visible'); + this.currentBtn.isactive=true; + ]]> + </method> </class> </library>
Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardMiniButton.lzx URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardMiniButton.lzx?rev=1771605&r1=1771604&r2=1771605&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardMiniButton.lzx (original) +++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/whiteboard/whiteboardMiniButton.lzx Sun Nov 27 16:49:18 2016 @@ -60,17 +60,17 @@ <method name="calcTextWidth"> <![CDATA[ - if (this.isHidden) { - return; - } - //if ($debug) Debug.write(this, this._text, this._text.getTextWidth()); - if (this._text.getTextWidth() > (this.width-24)) { - this._long.setAttribute('visibility','visible'); - this._text.setAttribute('width',this.width-26); - } else { - this._long.setAttribute('visibility','hidden'); - this._text.setAttribute('width',this.width-18); - } + if (this.isHidden) { + return; + } + //if ($debug) Debug.write(this, this._text, this._text.getTextWidth()); + if (this._text.getTextWidth() > (this.width-24)) { + this._long.setAttribute('visibility','visible'); + this._text.setAttribute('width',this.width-26); + } else { + this._long.setAttribute('visibility','hidden'); + this._text.setAttribute('width',this.width-18); + } ]]> </method> @@ -79,37 +79,7 @@ if (this.isHidden) { return; } - if (this.isactive && canvas.ismoderator) { - var tWidth = this._text.width; - var _y = this._text.getAttributeRelative("y", canvas); - var _x = this._text.getAttributeRelative("x", canvas); - - var t = new lz.dynamicFileName(canvas, { - text: this._text.text - , refObj: this - , width: tWidth + 10 - , onBlurFunc: function () { - if ($debug) Debug.write("WB blur:: ", objRef); - canvas.thishib._nc.call( - "whiteboardservice.rename" - , new Responder( - function ():void { - if ($debug) Debug.write("WB blur:: complete"); - t.destroy(); - }, function ():void { - if ($debug) Debug.write("WB blur:: error"); - t.destroy() - }) - , objRef.whiteboardId - , t.text - ); - } - , x: _x - , y: _y - }); - lz.Focus.setFocus(t, true); - lz.ModeManager.makeModal(t); - } + rename(); this._minimizebtn_mo.setAttribute('visibility','visible'); this._minimizebtn_dn.setAttribute('visibility','hidden'); if ($debug) Debug.write(" :: onclick :: "); @@ -168,7 +138,47 @@ <view name="_minimizebtn_dn" width="${ parent.width-2 }" height="16" bgcolor="black" opacity="0.3" visibility="hidden" x="1" y="1" /> - <text text="${ parent.btnName }" fgcolor="0xFFFFFF" resize="false" x="1" fontsize="10" name="_text" /> + <text text="${ parent.btnName }" fgcolor="0xFFFFFF" resize="false" x="1" fontsize="10" name="_text"> + <contextmenu> + <contextmenuitem caption="$once{ canvas.getLabelName(711) }" onselect="this.parent.parent.parent.rename()" /> + </contextmenu> + </text> + + <method name="rename"> + <![CDATA[ + if (this.isactive && canvas.ismoderator) { + var tWidth = this._text.width; + var _y = this._text.getAttributeRelative("y", canvas); + var _x = this._text.getAttributeRelative("x", canvas); + + var t = new lz.dynamicFileName(canvas, { + text: this._text.text + , refObj: this + , width: tWidth + 10 + , onBlurFunc: function () { + if ($debug) Debug.write("WB blur:: ", objRef); + canvas.thishib._nc.call( + "whiteboardservice.rename" + , new Responder( + function ():void { + if ($debug) Debug.write("WB blur:: complete"); + t.destroy(); + }, function ():void { + if ($debug) Debug.write("WB blur:: error"); + t.destroy() + }) + , objRef.whiteboardId + , t.text + ); + } + , x: _x + , y: _y + }); + lz.Focus.setFocus(t, true); + lz.ModeManager.makeModal(t); + } + ]]> + </method> <view y="1" x="${ parent.width-18 }" name="_close" resource="btn_presenter_close" Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteBoardObjectListManagerById.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteBoardObjectListManagerById.java?rev=1771605&r1=1771604&r2=1771605&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteBoardObjectListManagerById.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/whiteboard/WhiteBoardObjectListManagerById.java Sun Nov 27 16:49:18 2016 @@ -33,15 +33,15 @@ import org.apache.openmeetings.db.dto.ro */ public class WhiteBoardObjectListManagerById { private Map<Long, WhiteboardObjectList> whiteBoardObjectList = new ConcurrentHashMap<>(); - + private volatile AtomicLong whiteboardId = new AtomicLong(0); - - public long getNewWhiteboardId(Long roomId) throws Exception { + + public long getNewWhiteboardId(Long roomId, String name) throws Exception { long wbId = whiteboardId.getAndIncrement(); - setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, new WhiteboardObject(), wbId); + setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, new WhiteboardObject(name), wbId); return wbId; } - + /* * Room items a Whiteboard */ @@ -54,7 +54,7 @@ public class WhiteBoardObjectListManager return whiteboardObjectList; } } - + public WhiteboardObject getWhiteBoardObjectListByRoomIdAndWhiteboard(Long roomId, Long whiteBoardId){ WhiteboardObjectList whiteboardObjectList = getWhiteBoardObjectListByRoomId(roomId); WhiteboardObject whiteboardObjects = whiteboardObjectList.getWhiteboardObjects().get(whiteBoardId); @@ -63,16 +63,15 @@ public class WhiteBoardObjectListManager } return whiteboardObjects; } - + /* * Whiteboard Object List * */ - public void setWhiteBoardObjectListRoomObj(Long roomId, WhiteboardObjectList whiteboardObjectList){ whiteBoardObjectList.put(roomId, whiteboardObjectList); } - + public void setWhiteBoardObjectListRoomObjAndWhiteboardId(Long roomId, WhiteboardObject whiteboardObjects, long whiteBoardId) { WhiteboardObjectList whiteboardObjectList = getWhiteBoardObjectListByRoomId(roomId); whiteboardObjects.setWhiteBoardId(whiteBoardId); Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java?rev=1771605&r1=1771604&r2=1771605&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java Sun Nov 27 16:49:18 2016 @@ -26,6 +26,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; @@ -33,6 +34,7 @@ import org.apache.commons.collections4.C import org.apache.openmeetings.core.data.whiteboard.WhiteBoardObjectListManagerById; import org.apache.openmeetings.core.data.whiteboard.WhiteBoardObjectSyncManager; import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter; +import org.apache.openmeetings.db.dao.label.LabelDao; import org.apache.openmeetings.db.dao.server.ISessionManager; import org.apache.openmeetings.db.dao.server.SessiondataDao; import org.apache.openmeetings.db.dao.user.UserDao; @@ -41,7 +43,6 @@ import org.apache.openmeetings.db.dto.ro import org.apache.openmeetings.db.dto.room.WhiteboardObjectList; import org.apache.openmeetings.db.dto.room.WhiteboardSyncLockObject; import org.apache.openmeetings.db.entity.room.Client; -import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.util.OmFileHelper; import org.red5.logging.Red5LoggerFactory; @@ -63,7 +64,7 @@ public class WhiteBoardService implement @Autowired private UserDao userDao; @Autowired - private ScopeApplicationAdapter scopeApplicationAdapter; + private ScopeApplicationAdapter scopeAdapter; @Autowired private ISessionManager sessionManager; @Autowired @@ -72,21 +73,23 @@ public class WhiteBoardService implement private WhiteBoardObjectListManagerById wbListManagerById; @Autowired private SessiondataDao sessionDao; + @Autowired + private LabelDao labelDao; - public Long getNewWhiteboardId() { + public boolean getNewWhiteboardId(String name) { try { IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); Client currentClient = sessionManager.getClientByStreamId(streamid, null); Long roomId = currentClient.getRoomId(); - Long whiteBoardId = wbListManagerById.getNewWhiteboardId(roomId); - - return whiteBoardId; - } catch (Exception err) { - log.error("[deleteWhiteboard]", err); + Long whiteBoardId = wbListManagerById.getNewWhiteboardId(roomId, name); + scopeAdapter.sendMessageAll(Arrays.asList("newWhiteboard", whiteBoardId, name)); + } catch (Exception e) { + log.error("[getNewWhiteboardId]", e); + return false; } - return null; + return true; } public boolean deleteWhiteboard(Long whiteBoardId) { @@ -112,7 +115,8 @@ public class WhiteBoardService implement return false; } - public WhiteboardObjectList getRoomItemsBy() { + public Map<Long, WhiteboardObject> getRoomItemsBy() { + Map<Long, WhiteboardObject> result = new LinkedHashMap<>(); try { IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); @@ -123,23 +127,37 @@ public class WhiteBoardService implement WhiteboardObjectList whiteboardObjectList = wbListManagerById.getWhiteBoardObjectListByRoomId(roomId); if (whiteboardObjectList.getWhiteboardObjects().size() == 0) { - Long whiteBoardId = wbListManagerById.getNewWhiteboardId(roomId); - - wbListManagerById.setWhiteBoardObjectListRoomObjAndWhiteboardId(roomId, new WhiteboardObject(), whiteBoardId); - + wbListManagerById.getNewWhiteboardId(roomId, labelDao.getString("615", userDao.get(currentClient.getUserId()).getLanguageId())); log.debug("Init New Room List"); - whiteboardObjectList = wbListManagerById.getWhiteBoardObjectListByRoomId(roomId); } - return whiteboardObjectList; + whiteboardObjectList.getWhiteboardObjects().entrySet().stream() + .sorted(Map.Entry.<Long, WhiteboardObject>comparingByKey().reversed()) + .forEachOrdered(x -> result.put(x.getKey(), x.getValue())); } catch (Exception err) { log.error("[getRoomItemsBy]", err); } - return null; + return result; } - public void rename(Long wbId, String name) { - // + public boolean rename(Long wbId, String name) { + try { + IConnection current = Red5.getConnectionLocal(); + String streamid = current.getClient().getId(); + Client currentClient = sessionManager.getClientByStreamId(streamid, null); + Long roomId = currentClient.getRoomId(); + + WhiteboardObjectList whiteboardObjectList = wbListManagerById.getWhiteBoardObjectListByRoomId(roomId); + WhiteboardObject wb = whiteboardObjectList.getWhiteboardObjects().get(wbId); + wb.setName(name); + + log.debug(" :: rename whiteBoard :: id = {}, name = {}", wbId, name); + scopeAdapter.sendMessageAll(Arrays.asList("renameWhiteboard", wbId, name)); + } catch (Exception err) { + log.error("[rename]", err); + return false; + } + return true; } /** @@ -170,7 +188,7 @@ public class WhiteBoardService implement HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>(); newMessage.put(0, "updateDrawStatus"); newMessage.put(1, rcl); - scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true); + scopeAdapter.sendMessageWithClientWithSyncObject(newMessage, true); return true; } } @@ -199,7 +217,7 @@ public class WhiteBoardService implement HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>(); newMessage.put(0, "updateDrawStatus"); newMessage.put(1, rcl); - scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true); + scopeAdapter.sendMessageWithClientWithSyncObject(newMessage, true); return true; } } @@ -228,7 +246,7 @@ public class WhiteBoardService implement HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>(); newMessage.put(0, "updateDrawStatus"); newMessage.put(1, rcl); - scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true); + scopeAdapter.sendMessageWithClientWithSyncObject(newMessage, true); return true; } } @@ -258,7 +276,7 @@ public class WhiteBoardService implement HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>(); newMessage.put(0, "updateGiveAudioStatus"); newMessage.put(1, rcl); - scopeApplicationAdapter.sendMessageWithClientWithSyncObject(newMessage, true); + scopeAdapter.sendMessageWithClientWithSyncObject(newMessage, true); return true; } } @@ -290,7 +308,7 @@ public class WhiteBoardService implement wbListManager.setWhiteBoardSyncListByRoomid(roomId, syncListRoom); //Sync to clients - scopeApplicationAdapter.sendMessageToCurrentScope("sendSyncFlag", wSyncLockObject, true); + scopeAdapter.sendMessageToCurrentScope("sendSyncFlag", wSyncLockObject, true); return wSyncLockObject; } catch (Exception err) { @@ -324,7 +342,7 @@ public class WhiteBoardService implement int numberOfInitial = getNumberOfInitialLoaders(syncListRoom); if (numberOfInitial == 0) { - scopeApplicationAdapter.sendMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, true); + scopeAdapter.sendMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, true); } else { return; } @@ -370,7 +388,7 @@ public class WhiteBoardService implement // Do only send the Token to show the Loading Splash for the // initial-Request that starts the loading if (isStarting) { - scopeApplicationAdapter.sendMessageToCurrentScope("sendObjectSyncFlag", wSyncLockObject, true); + scopeAdapter.sendMessageToCurrentScope("sendObjectSyncFlag", wSyncLockObject, true); } } catch (Exception err) { log.error("[startNewObjectSyncProcess]", err); @@ -407,7 +425,7 @@ public class WhiteBoardService implement log.debug("sendCompletedImagesSyncEvent numberOfInitial: " + numberOfInitial); if (numberOfInitial == 0) { - scopeApplicationAdapter.sendMessageToCurrentScope("sendObjectSyncCompleteFlag", wSyncLockObject, true); + scopeAdapter.sendMessageToCurrentScope("sendObjectSyncCompleteFlag", wSyncLockObject, true); return 1; } else { return -4; @@ -444,7 +462,7 @@ public class WhiteBoardService implement log.debug("scope " + scope); if (numberOfInitial == 0 && scope != null) { - scopeApplicationAdapter.sendMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, false); + scopeAdapter.sendMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, false); } // Check Image Loaders @@ -460,7 +478,7 @@ public class WhiteBoardService implement int numberOfImageLoaders = wbListManager.getWhiteBoardObjectSyncListByRoomid(roomId).size(); if (numberOfImageLoaders == 0 && scope != null) { - scopeApplicationAdapter.sendMessageToCurrentScope("sendImagesSyncCompleteFlag", new Object[] { "remove" }, true); + scopeAdapter.sendMessageToCurrentScope("sendImagesSyncCompleteFlag", new Object[] { "remove" }, true); } } } catch (Exception err) { Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java?rev=1771605&r1=1771604&r2=1771605&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java Sun Nov 27 16:49:18 2016 @@ -44,6 +44,10 @@ public class WhiteboardObject { public WhiteboardObject() {} + public WhiteboardObject(String name) { + this.name = name; + } + public long getWhiteBoardId() { return whiteBoardId; }
