Revision: 3799
Author:   seba.wagner
Date:     Sat Jun 11 00:57:08 2011
Log: Fixes: Multi-Whiteboard + Loading of stored drawings into Multi-Whiteboard
http://code.google.com/p/openmeetings/source/detail?r=3799

Modified:
/trunk/singlewebapp/WebContent/WEB-INF/red5-services/fileservice.service.xml
 /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml
/trunk/singlewebapp/WebContent/openmeetings/base/hibernate/hibRtmpConnection.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebar.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/eventRoomSidebar.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx /trunk/singlewebapp/WebContent/openmeetings/modules/conference/whiteboard/base/remoteWhiteboard.lzx /trunk/singlewebapp/WebContent/openmeetings/plugins/conference/whiteboard/fixedFileExplorerWhiteboardPanel.lzx /trunk/singlewebapp/server/red5/webapps/openmeetings/WEB-INF/red5-services/fileservice.service.xml /trunk/singlewebapp/src/app/org/openmeetings/app/conference/whiteboard/WhiteboardManagement.java /trunk/singlewebapp/src/app/org/openmeetings/app/remote/ConferenceLibrary.java

=======================================
--- /trunk/singlewebapp/WebContent/WEB-INF/red5-services/fileservice.service.xml Mon Oct 12 05:52:02 2009 +++ /trunk/singlewebapp/WebContent/WEB-INF/red5-services/fileservice.service.xml Sat Jun 11 00:57:08 2011
@@ -9,7 +9,8 @@

     <!-- Class for Methods which can be invoked by the client -->
     <bean id="fileservice.service"
-        class="org.openmeetings.app.remote.ConferenceLibrary"
-        />
+        class="org.openmeetings.app.remote.ConferenceLibrary" >
+ <property name="clientListManager" ref="openmeetings.ClientListManager" />
+    </bean>

 </beans>
=======================================
--- /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml Fri Apr 15 04:58:38 2011 +++ /trunk/singlewebapp/WebContent/conf/hibernate.cfg.xml Sat Jun 11 00:57:08 2011
@@ -10,7 +10,7 @@

                <!-- User  / Password -->
                <property name="connection.username">root</property>
-               <property name="connection.password"></property>
+               <property name="connection.password">admin</property>

                <!-- Database Settings -->
                <property 
name="connection.driver_class">com.mysql.jdbc.Driver</property>
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/base/hibernate/hibRtmpConnection.lzx Tue Jun 7 03:24:12 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/base/hibernate/hibRtmpConnection.lzx Sat Jun 11 00:57:08 2011
@@ -1081,6 +1081,16 @@
             </handler>
         </netRemoteCallHib>

+ <netRemoteCallHib name="loadWmlToWhiteboardById" funcname="loadWmlToWhiteboardById">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+ if ($debug) Debug.write("sendVarsToWhiteboardById : ",value); + canvas._drawarea.parent.parent.parent.loadWmlToWhiteboardById(value);
+                ]]>
+            </handler>
+        </netRemoteCallHib>
+
         <!--
             Adds this User to the List of current Moderators
          -->
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebar.lzx Fri Apr 15 04:58:38 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebar.lzx Sat Jun 11 00:57:08 2011
@@ -77,8 +77,8 @@

     </view>

-    <fileExplorer name="_files" y="36" width="$once{ parent.width-12 }"
-               height="${ parent.height-36 }" visibility="hidden" />
+    <fileExplorer name="_files" y="16" width="$once{ parent.width-12 }"
+               height="${ parent.height-16 }" visibility="hidden" />

<participents name="_videocontainer" y="36" userNewVideoContainer="true" width="$once{ parent.width-10 }" height="${ parent.height-36 }" />
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/eventRoomSidebar.lzx Wed Apr 20 05:32:18 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/eventRoomSidebar.lzx Sat Jun 11 00:57:08 2011
@@ -93,8 +93,8 @@

     </view>

-    <fileExplorer name="_files" y="36" width="$once{ parent.width-12 }"
-               height="${ parent.height-36 }" visibility="hidden" />
+    <fileExplorer name="_files" y="16" width="$once{ parent.width-12 }"
+               height="${ parent.height-16 }" visibility="hidden" />

<eventUserList name="_videocontainer" y="36" listType="$once{ parent.listType }"
                           userNewVideoContainer="true" width="$once{ 
parent.width-10 }"
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx Wed Apr 20 05:32:18 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx Sat Jun 11 00:57:08 2011
@@ -93,8 +93,8 @@

     </view>

-    <fileExplorer name="_files" y="36" width="$once{ parent.width-12 }"
-               height="${ parent.height-36 }" visibility="hidden" />
+    <fileExplorer name="_files" y="16" width="$once{ parent.width-12 }"
+               height="${ parent.height-16 }" visibility="hidden" />

     <restrictedUserList name="_videocontainer" y="36"
                           userNewVideoContainer="true" width="$once{ 
parent.width-10 }"
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/conference/whiteboard/base/remoteWhiteboard.lzx Wed Jun 8 06:54:38 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/conference/whiteboard/base/remoteWhiteboard.lzx Sat Jun 11 00:57:08 2011
@@ -80,7 +80,7 @@
                ]]>
        </method>

-       <method name="loadSvedObjectList" args="objList">
+       <method name="loadSavedObjectList" args="objList">
         <![CDATA[

             var tempArray = new Array();
@@ -135,7 +135,9 @@
         if ($debug) Debug.write("loadWMLFile: ",itemObj);

this.loadWMLFile.setAttribute('fileExplorerItemId', itemObj.fileExplorerItemId);
-
+
+ if ($debug) Debug.write("prepareLoadWMLFile 1: ",parent.parent.whiteboardId);
+
         this.loadWMLFile.doCall();
     </method>

@@ -146,16 +148,22 @@
<netparam><method name="getValue">return canvas.sessionId;</method></netparam> <netparam><method name="getValue">return hib.currentroomid;</method></netparam> <netparam><method name="getValue">return parent.fileExplorerItemId;</method></netparam> + <netparam><method name="getValue">return parent.parent.parent.parent.whiteboardId;</method></netparam>
         <handler name="ondata" args="value">
             <![CDATA[
                 //The onResult-Handler will be called be the rtmpconnection
                 if ($debug) Debug.write("loadWMLFile: ",value);
-                canvas._drawarea.clearAll();
-                parent.loadSvedObjectList(value);
+                //canvas._drawarea.clearAll();
+                //parent.loadSavedObjectList(value);

             ]]>
         </handler>
     </netRemoteCallHib>
+
+    <method name="loadWmlToWhiteboardById" args="roomItems">
+       this.clearRemote();
+       this.loadSavedObjectList(roomItems);
+    </method>

<netRemoteCallHib name="startNewSyncprocess" funcname="whiteboardservice.startNewSyncprocess"
         remotecontext="$once{ canvas.thishib }" >
=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/plugins/conference/whiteboard/fixedFileExplorerWhiteboardPanel.lzx Tue Apr 19 02:36:23 2011 +++ /trunk/singlewebapp/WebContent/openmeetings/plugins/conference/whiteboard/fixedFileExplorerWhiteboardPanel.lzx Sat Jun 11 00:57:08 2011
@@ -206,6 +206,16 @@
                        return;
                }
        }
+    </method>
+
+    <method name="loadWmlToWhiteboardById" args="obj">
+        if ($debug) Debug.write("loadWmlToWhiteboardById :: ",obj);
+        for (var eg in this.subviews) {
+            if (obj.id == this.subviews[eg].whiteboardId) {
+ this.subviews[eg]._drawareaMask._drawarea.loadWmlToWhiteboardById(obj.roomitems);
+                return;
+            }
+        }
     </method>

     <method name="activateWhiteboard" args="obj">
=======================================
--- /trunk/singlewebapp/server/red5/webapps/openmeetings/WEB-INF/red5-services/fileservice.service.xml Tue Jan 5 08:27:13 2010 +++ /trunk/singlewebapp/server/red5/webapps/openmeetings/WEB-INF/red5-services/fileservice.service.xml Sat Jun 11 00:57:08 2011
@@ -9,7 +9,7 @@

     <!-- Class for Methods which can be invoked by the client -->
     <bean id="fileservice.service"
-        class="org.openmeetings.app.remote.ConferenceLibrary"
-        />
-
+        class="org.openmeetings.app.remote.ConferenceLibrary">
+ <property name="clientListManager" ref="openmeetings.ClientListManager" />
+    </bean>
 </beans>
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/conference/whiteboard/WhiteboardManagement.java Tue Jun 7 03:24:12 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/conference/whiteboard/WhiteboardManagement.java Sat Jun 11 00:57:08 2011
@@ -254,9 +254,13 @@

                        //Date dateOfEvent = (Date) whiteboardObj.get(1);
                        String action = whiteboardObj.get(2).toString();
-                       List actionObject = (List) whiteboardObj.get(3);

                        log.debug("action: "+action);
+                       log.debug("actionObject: "+whiteboardObj.get(3));
+
+                       List actionObject = (List) whiteboardObj.get(3);
+
+

                        if (action.equals("moveMap")){
WhiteboardObject whiteboardObject = WhiteBoardObjectListManagerById.getInstance().getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id, whiteBoardId);
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/remote/ConferenceLibrary.java Wed Jun 8 06:54:38 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/remote/ConferenceLibrary.java Sat Jun 11 00:57:08 2011
@@ -8,13 +8,19 @@
 import java.io.OutputStream;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Set;

 import org.openmeetings.app.conference.files.FileExplorerObject;
+import org.openmeetings.app.conference.whiteboard.WhiteboardManagement;
 import org.openmeetings.app.data.basic.AuthLevelmanagement;
 import org.openmeetings.app.data.basic.Sessionmanagement;
 import org.openmeetings.app.data.basic.files.FilesObject;
@@ -38,6 +44,9 @@
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
 import org.red5.server.api.Red5;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.api.service.IServiceCapableConnection;
 import org.slf4j.Logger;

 /**
@@ -45,7 +54,7 @@
  * @author swagner
  *
  */
-public class ConferenceLibrary {
+public class ConferenceLibrary implements IPendingServiceCallback {

     private static final Logger log = Red5LoggerFactory.getLogger(
ConferenceLibrary.class, ScopeApplicationAdapter.webAppRootKey);
@@ -729,13 +738,21 @@
         return -1L;
     }

- public ArrayList loadWmlObject(String SID, Long room_id, Long fileExplorerItemId) { + public void loadWmlObject(String SID, Long room_id, Long fileExplorerItemId, Long whiteboardId) {
         try {
Long users_id = Sessionmanagement.getInstance().checkSession(SID); Long user_level = Usermanagement.getInstance().getUserLevelByID(
                     users_id);

if (AuthLevelmanagement.getInstance().checkUserLevel(user_level)) {
+
+               IConnection current = Red5.getConnectionLocal();
+ RoomClient currentClient = this.clientListManager.getClientByStreamId(current.getClient().getId());
+
+                       if (currentClient == null) {
+                               return;
+                       }
+
                 String roomName = room_id.toString();
                 String current_dir = ScopeApplicationAdapter.webAppPath
+ File.separatorChar + "upload" + File.separatorChar;
@@ -743,13 +760,57 @@

FileExplorerItem fileExplorerItem = FileExplorerItemDaoImpl.getInstance().getFileExplorerItemsById(fileExplorerItemId);

- return LibraryWmlLoader.getInstance().loadWmlFile(current_dir,
-                               fileExplorerItem.getWmlFilePath());
+ ArrayList roomItems = LibraryWmlLoader.getInstance().loadWmlFile(current_dir,
+                                                                               
                fileExplorerItem.getWmlFilePath());
+
+                Map whiteboardObjClear = new HashMap();
+                whiteboardObjClear.put(2, "clear");
+                whiteboardObjClear.put(3, null);
+
+ WhiteboardManagement.getInstance().addWhiteBoardObjectById(room_id, whiteboardObjClear, whiteboardId);
+
+
+                for (int k=0;k<roomItems.size();k++) {
+
+                       ArrayList actionObject = (ArrayList) roomItems.get(k);
+
+                       Map whiteboardObj = new HashMap();
+                       whiteboardObj.put(2, "draw");
+                       whiteboardObj.put(3, actionObject);
+
+ WhiteboardManagement.getInstance().addWhiteBoardObjectById(room_id, whiteboardObj, whiteboardId);
+
+                }
+
+
+ Map<String,Object> sendObject = new HashMap<String,Object>();
+                       sendObject.put("id", whiteboardId);
+                       sendObject.put("roomitems", roomItems);
+
+                       //Notify all Clients of that Scope (Room)
+ Collection<Set<IConnection>> conCollection = current.getScope().getConnections();
+                       for (Set<IConnection> conset : conCollection) {
+                               for (IConnection conn : conset) {
+                                       if (conn != null) {
+                                               if (conn instanceof 
IServiceCapableConnection) {
+ RoomClient rcl = this.clientListManager.getClientByStreamId(conn.getClient().getId()); + if ((rcl == null) || (rcl.getIsScreenClient() != null && rcl.getIsScreenClient())) {
+                                                       continue;
+                                               } else {
+                                                               
//log.debug("*..*idremote: " + rcl.getStreamid());
+ //log.debug("*..* sendVars room_id IS EQUAL: " + currentClient.getStreamid() + " asd " + rcl.getStreamid() + " IS eq? " +currentClient.getStreamid().equals(rcl.getStreamid())); + ((IServiceCapableConnection) conn).invoke("loadWmlToWhiteboardById", new Object[] { sendObject },this); + //log.debug("sending sendVarsToWhiteboard to " + conn + " rcl " + rcl);
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+
             }
         } catch (Exception err) {
             log.error("[loadWmlObject] ", err);
         }
-        return null;
     }

public ArrayList loadChartObject(String SID, Long room_id, String fileName) {
@@ -1091,5 +1152,10 @@
             log.error("[copyfile]", e);
         }
     }
+
+       public void resultReceived(IPendingServiceCall arg0) {
+               // TODO Auto-generated method stub
+
+       }

 }

--
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.

Reply via email to