Issue #427 initial role based event handling
Change-Id: I73d4df3f09c7cfa60025142ec5a4dccdad4423bb Former-commit-id:e76039c56e
[formerlybac31f3613
] [formerly4d7a53c583
] [formerly619d19e24c
[formerly4d7a53c583
[formerly b752ced02d726771a6e11a9982967a892d2e55f3]]] Former-commit-id:619d19e24c
Former-commit-id: 4440838cbe883a84c237cc8d0f49c75f814df106 [formerly62b16fef0d
] Former-commit-id:998c9df260
This commit is contained in:
parent
c442754471
commit
0e9194429e
10 changed files with 354 additions and 51 deletions
|
@ -131,4 +131,13 @@
|
||||||
</command>
|
</command>
|
||||||
</menuContribution>
|
</menuContribution>
|
||||||
</extension>
|
</extension>
|
||||||
|
<extension
|
||||||
|
point="org.eclipse.ui.editors">
|
||||||
|
<editor
|
||||||
|
class="com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditor"
|
||||||
|
default="true"
|
||||||
|
id="com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditor"
|
||||||
|
name="Map">
|
||||||
|
</editor>
|
||||||
|
</extension>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
|
@ -104,7 +104,8 @@ public class EditorSetup {
|
||||||
return se;
|
return se;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void createEditor(SharedEditor sharedEditor) {
|
public static CollaborationEditor createEditor(SharedEditor sharedEditor) {
|
||||||
|
CollaborationEditor editor = null;
|
||||||
AbstractRenderableDisplay[] displays = new AbstractRenderableDisplay[1];
|
AbstractRenderableDisplay[] displays = new AbstractRenderableDisplay[1];
|
||||||
try {
|
try {
|
||||||
// TODO make it work with any IDescriptor and
|
// TODO make it work with any IDescriptor and
|
||||||
|
@ -133,12 +134,12 @@ public class EditorSetup {
|
||||||
disp.setExtent(extent);
|
disp.setExtent(extent);
|
||||||
|
|
||||||
displays[0] = disp;
|
displays[0] = disp;
|
||||||
UiUtil.createEditor(CollaborationEditor.EDITOR_ID, displays);
|
editor = (CollaborationEditor) UiUtil.createEditor(
|
||||||
|
CollaborationEditor.EDITOR_ID, displays);
|
||||||
} catch (VizException e) {
|
} catch (VizException e) {
|
||||||
// TODO Auto-generated catch block. Please revise as appropriate.
|
|
||||||
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
||||||
}
|
}
|
||||||
|
return editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO delete
|
// TODO delete
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.geotools.coverage.grid.GeneralGridGeometry;
|
||||||
import com.raytheon.uf.common.serialization.ISerializableObject;
|
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||||
import com.raytheon.uf.common.serialization.adapters.GridGeometryAdapter;
|
import com.raytheon.uf.common.serialization.adapters.GridGeometryAdapter;
|
||||||
import com.raytheon.uf.common.serialization.adapters.JTSEnvelopeAdapter;
|
import com.raytheon.uf.common.serialization.adapters.JTSEnvelopeAdapter;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IInitData;
|
||||||
import com.raytheon.uf.viz.core.drawables.ResourcePair;
|
import com.raytheon.uf.viz.core.drawables.ResourcePair;
|
||||||
import com.vividsolutions.jts.geom.Envelope;
|
import com.vividsolutions.jts.geom.Envelope;
|
||||||
|
|
||||||
|
@ -55,7 +56,7 @@ import com.vividsolutions.jts.geom.Envelope;
|
||||||
|
|
||||||
@XmlAccessorType(XmlAccessType.NONE)
|
@XmlAccessorType(XmlAccessType.NONE)
|
||||||
@XmlRootElement
|
@XmlRootElement
|
||||||
public class SharedEditor implements ISerializableObject {
|
public class SharedEditor implements ISerializableObject, IInitData {
|
||||||
|
|
||||||
/** The geometry of the descriptor */
|
/** The geometry of the descriptor */
|
||||||
private GeneralGridGeometry geometry;
|
private GeneralGridGeometry geometry;
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.collaboration.ui.role;
|
||||||
|
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.provider.session.VenueSession;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO Add Description
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Mar 26, 2012 njensen Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author njensen
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public abstract class AbstractRoleEventController implements
|
||||||
|
IRoleEventController {
|
||||||
|
|
||||||
|
protected VenueSession session;
|
||||||
|
|
||||||
|
protected AbstractRoleEventController(VenueSession session) {
|
||||||
|
this.session = session;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startup() {
|
||||||
|
session.registerEventHandler(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown() {
|
||||||
|
session.unRegisterEventHandler(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,82 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.collaboration.ui.role;
|
||||||
|
|
||||||
|
import com.google.common.eventbus.Subscribe;
|
||||||
|
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||||
|
import com.raytheon.uf.common.status.UFStatus;
|
||||||
|
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.identity.CollaborationException;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.ParticipantEventType;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.provider.event.VenueParticipantEvent;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.provider.session.VenueSession;
|
||||||
|
import com.raytheon.uf.viz.collaboration.ui.editor.EditorSetup;
|
||||||
|
import com.raytheon.uf.viz.collaboration.ui.editor.SharedEditor;
|
||||||
|
import com.raytheon.viz.ui.VizWorkbenchManager;
|
||||||
|
import com.raytheon.viz.ui.editor.AbstractEditor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the events of a session that are specific to the Data Provider role.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Mar 26, 2012 njensen Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author njensen
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class DataProviderEventController extends AbstractRoleEventController {
|
||||||
|
|
||||||
|
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||||
|
.getHandler(DataProviderEventController.class);
|
||||||
|
|
||||||
|
private VenueSession session;
|
||||||
|
|
||||||
|
public DataProviderEventController(VenueSession session) {
|
||||||
|
super(session);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void participantChanged(VenueParticipantEvent event) {
|
||||||
|
if (event.getEventType().equals(ParticipantEventType.ARRIVED)) {
|
||||||
|
// TODO instead of going to active editor, should get ones
|
||||||
|
// specifically shared with this session
|
||||||
|
AbstractEditor editor = (AbstractEditor) VizWorkbenchManager
|
||||||
|
.getInstance().getActiveEditor();
|
||||||
|
SharedEditor se = EditorSetup.extractSharedEditor(editor);
|
||||||
|
try {
|
||||||
|
session.sendInitData(event.getParticipant(), se);
|
||||||
|
} catch (CollaborationException e) {
|
||||||
|
statusHandler.handle(Priority.PROBLEM,
|
||||||
|
"Error sending initialization data to new participant "
|
||||||
|
+ event.getParticipant().getName(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.collaboration.ui.role;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO Add Description
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Mar 26, 2012 njensen Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author njensen
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface IRoleEventController {
|
||||||
|
|
||||||
|
public void startup();
|
||||||
|
|
||||||
|
public void shutdown();
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.collaboration.ui.role;
|
||||||
|
|
||||||
|
import com.google.common.eventbus.Subscribe;
|
||||||
|
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||||
|
import com.raytheon.uf.common.status.UFStatus;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IInitData;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.provider.session.VenueSession;
|
||||||
|
import com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditor;
|
||||||
|
import com.raytheon.uf.viz.collaboration.ui.editor.EditorSetup;
|
||||||
|
import com.raytheon.uf.viz.collaboration.ui.editor.SharedEditor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles the events of a session that are specific to the Participant role.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Mar 26, 2012 njensen Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author njensen
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ParticipantEventController extends AbstractRoleEventController {
|
||||||
|
|
||||||
|
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||||
|
.getHandler(ParticipantEventController.class);
|
||||||
|
|
||||||
|
public ParticipantEventController(VenueSession session) {
|
||||||
|
super(session);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void initDataArrived(IInitData initData) {
|
||||||
|
if (initData instanceof SharedEditor) {
|
||||||
|
SharedEditor se = (SharedEditor) initData;
|
||||||
|
CollaborationEditor editor = EditorSetup.createEditor(se);
|
||||||
|
// TODO need to send the editor somewhere so it can be tied to the
|
||||||
|
// session for the link to editor capability
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -21,6 +21,7 @@ package com.raytheon.uf.viz.collaboration.comm.identity;
|
||||||
|
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.IEventPublisher;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IEventPublisher;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IInitData;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.IRenderable;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IRenderable;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID;
|
import com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.user.IQualifiedID;
|
import com.raytheon.uf.viz.collaboration.comm.identity.user.IQualifiedID;
|
||||||
|
@ -38,8 +39,7 @@ import com.raytheon.uf.viz.collaboration.comm.identity.user.ParticipantRole;
|
||||||
* venue.</li>
|
* venue.</li>
|
||||||
* <li><strong>TextMessage</strong> : Text messages send between users. Meant to
|
* <li><strong>TextMessage</strong> : Text messages send between users. Meant to
|
||||||
* be displayed as conversation.</li>
|
* be displayed as conversation.</li>
|
||||||
* <li><strong>IDisplayEvent</strong> : These messages are CAVE to CAVE
|
* <li><strong>IDisplayEvent</strong> : These messages are CAVE to CAVE events</li>
|
||||||
* events</li>
|
|
||||||
* <li><strong>IRenderable</strong> : These messages are CAVE to CAVE
|
* <li><strong>IRenderable</strong> : These messages are CAVE to CAVE
|
||||||
* display......</li>
|
* display......</li>
|
||||||
*
|
*
|
||||||
|
@ -61,33 +61,35 @@ import com.raytheon.uf.viz.collaboration.comm.identity.user.ParticipantRole;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public interface ISharedDisplaySession extends IEventPublisher {
|
public interface ISharedDisplaySession extends IEventPublisher {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a single initialization object to a participant who has joined an
|
* Send a single initialization object to a participant who has joined an
|
||||||
* in-progress collaboration session.
|
* in-progress collaboration session.
|
||||||
*
|
*
|
||||||
* @param participant
|
* @param participant
|
||||||
* @param initData
|
* @param initData
|
||||||
*/
|
*/
|
||||||
void sendInitData(IChatID participant, Object initData) throws CollaborationException;
|
void sendInitData(IChatID participant, IInitData initData)
|
||||||
|
throws CollaborationException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param event
|
* @param event
|
||||||
*/
|
*/
|
||||||
void sendEvent(IDisplayEvent event) throws CollaborationException;
|
void sendEvent(IDisplayEvent event) throws CollaborationException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void sendRenderableObject(IRenderable renderable) throws CollaborationException;
|
void sendRenderableObject(IRenderable renderable)
|
||||||
|
throws CollaborationException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IChatID getCurrentDataProvider();
|
IChatID getCurrentDataProvider();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
|
@ -100,22 +102,24 @@ public interface ISharedDisplaySession extends IEventPublisher {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
boolean hasRole(ParticipantRole role);
|
boolean hasRole(ParticipantRole role);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IQualifiedID getUserID();
|
IQualifiedID getUserID();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the connection status of the session.
|
* Gets the connection status of the session.
|
||||||
|
*
|
||||||
* @return The connection status.
|
* @return The connection status.
|
||||||
*/
|
*/
|
||||||
boolean isConnected();
|
boolean isConnected();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the session identifier.
|
* Get the session identifier.
|
||||||
* @return The session identifier.
|
*
|
||||||
|
* @return The session identifier.
|
||||||
*/
|
*/
|
||||||
String getSessionId();
|
String getSessionId();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licensing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.viz.collaboration.comm.identity.event;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO Add Description
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Mar 26, 2012 njensen Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author njensen
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface IInitData {
|
||||||
|
|
||||||
|
}
|
|
@ -20,24 +20,19 @@
|
||||||
package com.raytheon.uf.viz.collaboration.comm.provider.session;
|
package com.raytheon.uf.viz.collaboration.comm.provider.session;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.eclipse.ecf.core.IContainer;
|
import org.eclipse.ecf.core.IContainer;
|
||||||
import org.eclipse.ecf.core.identity.ID;
|
import org.eclipse.ecf.core.identity.ID;
|
||||||
import org.eclipse.ecf.core.identity.IDFactory;
|
import org.eclipse.ecf.core.identity.IDFactory;
|
||||||
import org.eclipse.ecf.core.identity.Namespace;
|
|
||||||
import org.eclipse.ecf.core.user.IUser;
|
import org.eclipse.ecf.core.user.IUser;
|
||||||
import org.eclipse.ecf.core.util.ECFException;
|
import org.eclipse.ecf.core.util.ECFException;
|
||||||
import org.eclipse.ecf.presence.IIMMessageEvent;
|
import org.eclipse.ecf.presence.IIMMessageEvent;
|
||||||
import org.eclipse.ecf.presence.IIMMessageListener;
|
import org.eclipse.ecf.presence.IIMMessageListener;
|
||||||
import org.eclipse.ecf.presence.IPresenceContainerAdapter;
|
|
||||||
import org.eclipse.ecf.presence.IPresenceSender;
|
|
||||||
import org.eclipse.ecf.presence.chatroom.IChatRoomContainer;
|
import org.eclipse.ecf.presence.chatroom.IChatRoomContainer;
|
||||||
import org.eclipse.ecf.presence.chatroom.IChatRoomInfo;
|
import org.eclipse.ecf.presence.chatroom.IChatRoomInfo;
|
||||||
import org.eclipse.ecf.presence.chatroom.IChatRoomInvitationSender;
|
import org.eclipse.ecf.presence.chatroom.IChatRoomInvitationSender;
|
||||||
|
@ -46,7 +41,6 @@ import org.eclipse.ecf.presence.chatroom.IChatRoomMessage;
|
||||||
import org.eclipse.ecf.presence.chatroom.IChatRoomMessageEvent;
|
import org.eclipse.ecf.presence.chatroom.IChatRoomMessageEvent;
|
||||||
import org.eclipse.ecf.presence.chatroom.IChatRoomMessageSender;
|
import org.eclipse.ecf.presence.chatroom.IChatRoomMessageSender;
|
||||||
import org.eclipse.ecf.presence.chatroom.IChatRoomParticipantListener;
|
import org.eclipse.ecf.presence.chatroom.IChatRoomParticipantListener;
|
||||||
import org.eclipse.ecf.presence.im.IChatMessage;
|
|
||||||
import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID;
|
import org.eclipse.ecf.provider.xmpp.identity.XMPPRoomID;
|
||||||
|
|
||||||
import com.google.common.eventbus.EventBus;
|
import com.google.common.eventbus.EventBus;
|
||||||
|
@ -57,6 +51,7 @@ import com.raytheon.uf.viz.collaboration.comm.identity.IPresence;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession;
|
import com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.IVenueSession;
|
import com.raytheon.uf.viz.collaboration.comm.identity.IVenueSession;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
|
||||||
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IInitData;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.IRenderable;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IRenderable;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.IVenueParticipantEvent;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.IVenueParticipantEvent;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.event.ParticipantEventType;
|
import com.raytheon.uf.viz.collaboration.comm.identity.event.ParticipantEventType;
|
||||||
|
@ -65,7 +60,6 @@ import com.raytheon.uf.viz.collaboration.comm.identity.listener.IInvitation;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IMessageFilter;
|
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IMessageFilter;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IMessageListener;
|
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IMessageListener;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IPresenceListener;
|
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IPresenceListener;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.listener.IVenueParticipantListener;
|
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID;
|
import com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.user.IQualifiedID;
|
import com.raytheon.uf.viz.collaboration.comm.identity.user.IQualifiedID;
|
||||||
import com.raytheon.uf.viz.collaboration.comm.identity.user.IVenueParticipant;
|
import com.raytheon.uf.viz.collaboration.comm.identity.user.IVenueParticipant;
|
||||||
|
@ -231,22 +225,23 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
} finally {
|
} finally {
|
||||||
initListeners();
|
initListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable r = new Runnable() {
|
Runnable r = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for(int i = 0;i < 10;i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
|
|
||||||
IRenderable r = new TestObject("Test1");
|
IRenderable r = new TestObject("Test1");
|
||||||
((TestObject) r).setValue(i);
|
((TestObject) r).setValue(i);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
System.out.println("Sending renderable " + i);
|
System.out.println("Sending renderable " + i);
|
||||||
sendRenderableObject(r);
|
sendRenderableObject(r);
|
||||||
if(i == 5) {
|
if (i == 5) {
|
||||||
sendTextMessage(Tools.marshallData("This is a text message as a String"));
|
sendTextMessage(Tools
|
||||||
|
.marshallData("This is a text message as a String"));
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (CollaborationException ce) {
|
} catch (CollaborationException ce) {
|
||||||
ce.printStackTrace();
|
ce.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -259,18 +254,20 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
};
|
};
|
||||||
Thread t = new Thread(r);
|
Thread t = new Thread(r);
|
||||||
t.start();
|
t.start();
|
||||||
|
|
||||||
registerEventHandler(this);
|
registerEventHandler(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void handle(IRenderable renderable) {
|
public void handle(IRenderable renderable) {
|
||||||
System.out.println("IRenderable " + renderable.getClass().getName() + " was received");
|
System.out.println("IRenderable " + renderable.getClass().getName()
|
||||||
|
+ " was received");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void handle(IDisplayEvent event) {
|
public void handle(IDisplayEvent event) {
|
||||||
System.out.println("IDisplayEvent " + event.getClass().getName() + " was received");
|
System.out.println("IDisplayEvent " + event.getClass().getName()
|
||||||
|
+ " was received");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
|
@ -280,9 +277,10 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void handle(IVenueParticipantEvent event) {
|
public void handle(IVenueParticipantEvent event) {
|
||||||
System.out.println("IVenueParticipantEvent " + event.getEventType() + " was received");
|
System.out.println("IVenueParticipantEvent " + event.getEventType()
|
||||||
|
+ " was received");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @throws ECFException
|
* @throws ECFException
|
||||||
|
@ -630,18 +628,10 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
// ISharedDisplaySession
|
// ISharedDisplaySession
|
||||||
// ***************************
|
// ***************************
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param
|
|
||||||
* @param
|
|
||||||
* @throws CollaborationException
|
|
||||||
* @see com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession#sendInitData(com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID,
|
|
||||||
* java.lang.Object)
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void sendInitData(
|
public void sendInitData(
|
||||||
com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID participant,
|
com.raytheon.uf.viz.collaboration.comm.identity.user.IChatID participant,
|
||||||
Object initData) throws CollaborationException {
|
IInitData initData) throws CollaborationException {
|
||||||
|
|
||||||
PeerToPeerChat session = null;
|
PeerToPeerChat session = null;
|
||||||
session = getP2PSession();
|
session = getP2PSession();
|
||||||
|
@ -663,7 +653,7 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
public void sendEvent(IDisplayEvent event) throws CollaborationException {
|
public void sendEvent(IDisplayEvent event) throws CollaborationException {
|
||||||
if (event != null) {
|
if (event != null) {
|
||||||
String message = Tools.marshallData(event);
|
String message = Tools.marshallData(event);
|
||||||
if(message != null) {
|
if (message != null) {
|
||||||
sendTextMessage(message);
|
sendTextMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -679,7 +669,7 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
throws CollaborationException {
|
throws CollaborationException {
|
||||||
if (renderable != null) {
|
if (renderable != null) {
|
||||||
String message = Tools.marshallData(renderable);
|
String message = Tools.marshallData(renderable);
|
||||||
if(message != null) {
|
if (message != null) {
|
||||||
sendTextMessage(message);
|
sendTextMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -687,7 +677,8 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the identification of the user who is the DataProvider.
|
* Get the identification of the user who is the DataProvider.
|
||||||
* @return The DataProvider user identification.
|
*
|
||||||
|
* @return The DataProvider user identification.
|
||||||
* @see com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession#getCurrentDataProvider()
|
* @see com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession#getCurrentDataProvider()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@ -697,6 +688,7 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the identification of the user who is the Session Leader.
|
* Get the identification of the user who is the Session Leader.
|
||||||
|
*
|
||||||
* @return The Session Leader user identification.
|
* @return The Session Leader user identification.
|
||||||
* @see com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession#getCurrentSessionLeader()
|
* @see com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession#getCurrentSessionLeader()
|
||||||
*/
|
*/
|
||||||
|
@ -773,10 +765,10 @@ public class VenueSession extends BaseSession implements IVenueSession,
|
||||||
Object o = null;
|
Object o = null;
|
||||||
try {
|
try {
|
||||||
o = Tools.unMarshallData(body);
|
o = Tools.unMarshallData(body);
|
||||||
if(o != null) {
|
if (o != null) {
|
||||||
getEventPublisher().post(o);
|
getEventPublisher().post(o);
|
||||||
}
|
}
|
||||||
} catch(CollaborationException ce) {
|
} catch (CollaborationException ce) {
|
||||||
// TODO : more robust!!
|
// TODO : more robust!!
|
||||||
ce.printStackTrace();
|
ce.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue