Issue #244 Tied CollaboratonEditor to the view.
Change-Id: I67b9b2f9f1a71f1f131584cdb138c54788cac165 Former-commit-id: fd9eb8cbf048ce03bce27c4d1249596f5649d2a7
This commit is contained in:
parent
95d8d85fd0
commit
d001287c94
2 changed files with 61 additions and 10 deletions
|
@ -34,10 +34,13 @@ 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.ISharedDisplaySession;
|
||||
import com.raytheon.uf.viz.collaboration.comm.identity.IVenueSession;
|
||||
import com.raytheon.uf.viz.collaboration.comm.provider.session.SessionManager;
|
||||
import com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditor;
|
||||
import com.raytheon.uf.viz.collaboration.ui.login.LoginData;
|
||||
import com.raytheon.uf.viz.collaboration.ui.login.LoginDialog;
|
||||
import com.raytheon.uf.viz.collaboration.ui.role.AbstractRoleEventController;
|
||||
import com.raytheon.uf.viz.core.VizApp;
|
||||
|
||||
/**
|
||||
|
@ -85,6 +88,10 @@ public class CollaborationDataManager {
|
|||
*/
|
||||
Map<String, IVenueSession> sessionsMap;
|
||||
|
||||
Map<String, AbstractRoleEventController> displaySessionsMap;
|
||||
|
||||
Map<String, CollaborationEditor> editorsMap;
|
||||
|
||||
public static CollaborationDataManager getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new CollaborationDataManager();
|
||||
|
@ -96,11 +103,11 @@ public class CollaborationDataManager {
|
|||
* Converts the venu's Id into a string that usable for a view's secondary
|
||||
* ID. This is the used as the key in the session Map.
|
||||
*
|
||||
* @param venuId
|
||||
* @param venueId
|
||||
* @return sessionId
|
||||
*/
|
||||
public String venuIdToSessionId(String venuId) {
|
||||
return venuId.replace(':', ';');
|
||||
public String venueIdToSessionId(String venueId) {
|
||||
return venueId.replace(':', ';');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -109,6 +116,7 @@ public class CollaborationDataManager {
|
|||
private CollaborationDataManager() {
|
||||
usersMap = new HashMap<String, DataUser>();
|
||||
sessionsMap = new HashMap<String, IVenueSession>();
|
||||
// displaySessionsMap = new HashMap<String, ISharedDisplaySession>();
|
||||
}
|
||||
|
||||
public String getLoginId() {
|
||||
|
@ -124,6 +132,24 @@ public class CollaborationDataManager {
|
|||
return usersMap.get(id);
|
||||
}
|
||||
|
||||
public AbstractRoleEventController getDisplaySession(String sessonId) {
|
||||
return displaySessionsMap.get(sessonId);
|
||||
}
|
||||
|
||||
public void setDisplaySession(String sessionId,
|
||||
AbstractRoleEventController controller) {
|
||||
displaySessionsMap.put(sessionId, controller);
|
||||
}
|
||||
|
||||
public void editorCreated(String venueId, CollaborationEditor editor) {
|
||||
String sessionId = venueIdToSessionId(venueId);
|
||||
editorsMap.put(sessionId, editor);
|
||||
}
|
||||
|
||||
public CollaborationEditor getEditor(String sessionId) {
|
||||
return editorsMap.get(sessionId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the session manager and if needed the user/password.
|
||||
*
|
||||
|
@ -245,6 +271,11 @@ public class CollaborationDataManager {
|
|||
IVenueSession session = sessionsMap.get(sessionId);
|
||||
if (session != null) {
|
||||
sessionsMap.remove(sessionId);
|
||||
AbstractRoleEventController controller = displaySessionsMap
|
||||
.remove(sessionId);
|
||||
if (controller != null) {
|
||||
controller.shutdown();
|
||||
}
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
@ -265,11 +296,14 @@ public class CollaborationDataManager {
|
|||
String sessionId = null;
|
||||
try {
|
||||
session = manager.createCollaborationVenue(venue, subject);
|
||||
sessionId = venuIdToSessionId(session.getVenue().getInfo()
|
||||
sessionId = venueIdToSessionId(session.getVenue().getInfo()
|
||||
.getVenueID());
|
||||
// TODO throw an exception if unable to make connection?
|
||||
if (session.isConnected()) {
|
||||
ISharedDisplaySession displaySession = session
|
||||
.spawnSharedDisplaySession();
|
||||
sessionsMap.put(sessionId, session);
|
||||
// TODO set displaySession's data provider and session leader.
|
||||
}
|
||||
} catch (CollaborationException e) {
|
||||
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
||||
|
@ -291,7 +325,10 @@ public class CollaborationDataManager {
|
|||
IVenueSession session = null;
|
||||
try {
|
||||
session = getSessionManager().joinCollaborationVenue(venueName);
|
||||
ISharedDisplaySession displaySession = session
|
||||
.spawnSharedDisplaySession();
|
||||
sessionsMap.put(sessionId, session);
|
||||
// displaySessionsMap.put(sessionId, displaySession);
|
||||
} catch (CollaborationException e) {
|
||||
// TODO Auto-generated catch block. Please revise as
|
||||
// appropriate.
|
||||
|
|
|
@ -72,12 +72,15 @@ import com.raytheon.uf.viz.collaboration.comm.identity.roster.IRosterEntry;
|
|||
import com.raytheon.uf.viz.collaboration.comm.identity.roster.IRosterGroup;
|
||||
import com.raytheon.uf.viz.collaboration.comm.identity.roster.IRosterManager;
|
||||
import com.raytheon.uf.viz.collaboration.comm.provider.session.SessionManager;
|
||||
import com.raytheon.uf.viz.collaboration.comm.provider.session.VenueSession;
|
||||
import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager;
|
||||
import com.raytheon.uf.viz.collaboration.data.CollaborationGroup;
|
||||
import com.raytheon.uf.viz.collaboration.data.CollaborationNode;
|
||||
import com.raytheon.uf.viz.collaboration.data.CollaborationUser;
|
||||
import com.raytheon.uf.viz.collaboration.data.LoginUser;
|
||||
import com.raytheon.uf.viz.collaboration.data.SessionGroup;
|
||||
import com.raytheon.uf.viz.collaboration.ui.role.DataProviderEventController;
|
||||
import com.raytheon.uf.viz.collaboration.ui.role.ParticipantEventController;
|
||||
import com.raytheon.uf.viz.collaboration.ui.session.AbstractSessionView;
|
||||
import com.raytheon.uf.viz.collaboration.ui.session.CollaborationSessionView;
|
||||
import com.raytheon.uf.viz.collaboration.ui.session.PeerToPeerView;
|
||||
|
@ -504,9 +507,14 @@ public class CollaborationGroupView extends ViewPart {
|
|||
private void createCollaborationView(CreateSessionData result) {
|
||||
String sessionId = null;
|
||||
try {
|
||||
sessionId = CollaborationDataManager.getInstance()
|
||||
.createCollaborationSession(result.getName(),
|
||||
result.getSubject());
|
||||
CollaborationDataManager manager = CollaborationDataManager
|
||||
.getInstance();
|
||||
sessionId = manager.createCollaborationSession(result.getName(),
|
||||
result.getSubject());
|
||||
DataProviderEventController controller = new DataProviderEventController(
|
||||
(VenueSession) manager.getSession(sessionId));
|
||||
controller.startup();
|
||||
manager.setDisplaySession(sessionId, controller);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
|
@ -587,8 +595,14 @@ public class CollaborationGroupView extends ViewPart {
|
|||
if (node instanceof SessionGroup) {
|
||||
SessionGroup sg = (SessionGroup) node;
|
||||
System.out.println("Join: " + sg.getId());
|
||||
String sessionId = CollaborationDataManager.getInstance()
|
||||
.joinCollaborationSession(sg.getText(), sg.getId());
|
||||
CollaborationDataManager manager = CollaborationDataManager
|
||||
.getInstance();
|
||||
String sessionId = manager.joinCollaborationSession(
|
||||
sg.getText(), sg.getId());
|
||||
ParticipantEventController controller = new ParticipantEventController(
|
||||
(VenueSession) manager.getSession(sessionId));
|
||||
manager.setDisplaySession(sessionId, controller);
|
||||
controller.startup();
|
||||
try {
|
||||
IViewPart part = PlatformUI
|
||||
.getWorkbench()
|
||||
|
@ -793,7 +807,7 @@ public class CollaborationGroupView extends ViewPart {
|
|||
.getInstance().getSessionManager().getVenueInfo();
|
||||
for (IVenueInfo venu : venuList) {
|
||||
SessionGroup gp = new SessionGroup(CollaborationDataManager
|
||||
.getInstance().venuIdToSessionId(venu.getVenueID()));
|
||||
.getInstance().venueIdToSessionId(venu.getVenueID()));
|
||||
gp.setText(venu.getVenueName());
|
||||
|
||||
if (venu.getParticipantCount() > 0) {
|
||||
|
|
Loading…
Add table
Reference in a new issue