Issue #429 working telestration collaboration capabilities

Former-commit-id: 86e2f1a7ad [formerly 3c2fcc59d0] [formerly 86e2f1a7ad [formerly 3c2fcc59d0] [formerly c27a3cf672 [formerly f1c9552a757e7d194e31ed9786cb358c53e631b7]]]
Former-commit-id: c27a3cf672
Former-commit-id: a7544fadf9 [formerly 28df06150e]
Former-commit-id: 64ef004e78
This commit is contained in:
Matt Nash 2012-04-04 11:23:34 -05:00
parent d5bf79f20d
commit 0e37e6938f
15 changed files with 384 additions and 151 deletions

View file

@ -22,6 +22,7 @@ package com.raytheon.uf.viz.collaboration.ui.role;
import com.google.common.eventbus.Subscribe; import com.google.common.eventbus.Subscribe;
import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
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.event.IInitData; import com.raytheon.uf.viz.collaboration.comm.identity.event.IInitData;
import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager; import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager;
@ -29,9 +30,13 @@ import com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditor;
import com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditorInputHandler; import com.raytheon.uf.viz.collaboration.ui.editor.CollaborationEditorInputHandler;
import com.raytheon.uf.viz.collaboration.ui.editor.EditorSetup; import com.raytheon.uf.viz.collaboration.ui.editor.EditorSetup;
import com.raytheon.uf.viz.collaboration.ui.editor.SharedEditor; import com.raytheon.uf.viz.collaboration.ui.editor.SharedEditor;
import com.raytheon.uf.viz.collaboration.ui.telestrator.CollaborationPathDrawingResourceData;
import com.raytheon.uf.viz.collaboration.ui.telestrator.CollaborationPathToolbar;
import com.raytheon.uf.viz.core.VizApp; import com.raytheon.uf.viz.core.VizApp;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.rsc.IInputHandler.InputPriority; import com.raytheon.uf.viz.core.rsc.IInputHandler.InputPriority;
import com.raytheon.uf.viz.drawing.PathToolbar; import com.raytheon.uf.viz.core.rsc.LoadProperties;
import com.raytheon.uf.viz.drawing.PathDrawingResourceData;
/** /**
* Handles the events of a session that are specific to the Participant role. * Handles the events of a session that are specific to the Participant role.
@ -74,6 +79,23 @@ public class ParticipantEventController extends AbstractRoleEventController {
InputPriority.SYSTEM_RESOURCE); InputPriority.SYSTEM_RESOURCE);
CollaborationDataManager.getInstance().editorCreated( CollaborationDataManager.getInstance().editorCreated(
session.getSessionId(), editor); session.getSessionId(), editor);
// activate the drawing tool by default for participants
PathDrawingResourceData data = new CollaborationPathDrawingResourceData();
try {
editor.getActiveDisplayPane()
.getDescriptor()
.getResourceList()
.add(data.construct(new LoadProperties(),
editor.getActiveDisplayPane()
.getDescriptor()));
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
}
// PathDrawingTool tool = new
// CollaborationPathDrawingTool();
// tool.activate();
} }
}); });
@ -90,13 +112,13 @@ public class ParticipantEventController extends AbstractRoleEventController {
@Override @Override
public void startup() { public void startup() {
super.startup(); super.startup();
VizApp.runAsync(new Runnable() { // VizApp.runAsync(new Runnable() {
@Override // @Override
public void run() { // public void run() {
PathToolbar toolbar = PathToolbar.getToolbar(); // PathToolbar toolbar = CollaborationPathToolbar.getToolbar();
toolbar.open(); // toolbar.open();
} // }
}); // });
} }
/* /*
@ -109,6 +131,6 @@ public class ParticipantEventController extends AbstractRoleEventController {
@Override @Override
public void shutdown() { public void shutdown() {
super.shutdown(); super.shutdown();
PathToolbar.getToolbar().close(); CollaborationPathToolbar.getToolbar().close();
} }
} }

View file

@ -20,9 +20,11 @@
package com.raytheon.uf.viz.collaboration.ui.role; package com.raytheon.uf.viz.collaboration.ui.role;
import com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession; import com.raytheon.uf.viz.collaboration.comm.identity.ISharedDisplaySession;
import com.raytheon.uf.viz.collaboration.ui.telestrator.CollaborationPathDrawingTool;
import com.raytheon.uf.viz.collaboration.ui.telestrator.CollaborationPathToolbar; import com.raytheon.uf.viz.collaboration.ui.telestrator.CollaborationPathToolbar;
import com.raytheon.uf.viz.core.VizApp; import com.raytheon.uf.viz.core.VizApp;
import com.raytheon.uf.viz.drawing.PathToolbar; import com.raytheon.uf.viz.drawing.PathToolbar;
import com.raytheon.uf.viz.drawing.tools.PathDrawingTool;
/** /**
* TODO Add Description * TODO Add Description
@ -63,6 +65,11 @@ public class SessionLeaderEventController extends AbstractRoleEventController {
VizApp.runAsync(new Runnable() { VizApp.runAsync(new Runnable() {
@Override @Override
public void run() { public void run() {
// activate the drawing tool by default for the session leader
PathDrawingTool tool = new CollaborationPathDrawingTool();
tool.activate();
// open the path drawing toolbar
PathToolbar toolbar = CollaborationPathToolbar.getToolbar(); PathToolbar toolbar = CollaborationPathToolbar.getToolbar();
toolbar.open(); toolbar.open();
} }

View file

@ -19,15 +19,23 @@
**/ **/
package com.raytheon.uf.viz.collaboration.ui.telestrator; package com.raytheon.uf.viz.collaboration.ui.telestrator;
import java.util.Arrays; import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import com.google.common.eventbus.Subscribe;
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.identity.IVenueSession;
import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager; import com.raytheon.uf.viz.collaboration.data.CollaborationDataManager;
import com.raytheon.uf.viz.collaboration.ui.telestrator.event.ClearDrawingEvent;
import com.raytheon.uf.viz.collaboration.ui.telestrator.event.CollaborationDrawingEvent;
import com.raytheon.uf.viz.core.IGraphicsTarget; import com.raytheon.uf.viz.core.IGraphicsTarget;
import com.raytheon.uf.viz.core.drawables.IWireframeShape; import com.raytheon.uf.viz.core.drawables.IWireframeShape;
import com.raytheon.uf.viz.core.drawables.PaintProperties; import com.raytheon.uf.viz.core.drawables.PaintProperties;
@ -37,6 +45,9 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability; import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability;
import com.raytheon.uf.viz.drawing.DrawingLayer; import com.raytheon.uf.viz.drawing.DrawingLayer;
import com.raytheon.uf.viz.drawing.PathDrawingResourceData; import com.raytheon.uf.viz.drawing.PathDrawingResourceData;
import com.raytheon.viz.ui.EditorUtil;
import com.raytheon.viz.ui.editor.AbstractEditor;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.LineString;
/** /**
@ -59,7 +70,11 @@ import com.vividsolutions.jts.geom.LineString;
public class CollaborationDrawingLayer extends DrawingLayer { public class CollaborationDrawingLayer extends DrawingLayer {
private Multimap<Color, IWireframeShape> collaboratorShapes; private Multimap<RGB, IWireframeShape> collaboratorShapes;
private List<IWireframeShape> deletedCollaboratorShapes;
private RGB officialColor = null;
/** /**
* @param data * @param data
@ -68,6 +83,48 @@ public class CollaborationDrawingLayer extends DrawingLayer {
public CollaborationDrawingLayer(PathDrawingResourceData data, public CollaborationDrawingLayer(PathDrawingResourceData data,
LoadProperties props) { LoadProperties props) {
super(data, props); super(data, props);
AbstractEditor editor = EditorUtil
.getActiveEditorAs(AbstractEditor.class);
CollaborationDataManager mgr = CollaborationDataManager.getInstance();
for (String str : mgr.getSessions().keySet()) {
if (editor.equals(mgr.getEditor(str))) {
mgr.getSession(str).registerEventHandler(this);
break;
}
}
}
@Subscribe
public void handle(IDisplayEvent event) {
if (event instanceof ClearDrawingEvent) {
resetTemp();
disposeInternal();
issueRefresh();
} else if (event instanceof CollaborationDrawingEvent) {
CollaborationDrawingEvent collEvent = (CollaborationDrawingEvent) event;
addCollaborationShape(collEvent.getGeom(),
getCapability(ColorableCapability.class).getColor());
}
}
/*
* (non-Javadoc)
*
* @see com.raytheon.uf.viz.drawing.DrawingLayer#reset()
*/
@Override
public void reset() {
super.reset();
ClearDrawingEvent event = new ClearDrawingEvent();
Map<String, IVenueSession> sessions = CollaborationDataManager
.getInstance().getSessions();
for (String str : sessions.keySet()) {
try {
((ISharedDisplaySession) sessions.get(str)).sendEvent(event);
} catch (CollaborationException e) {
e.printStackTrace();
}
}
} }
/* /*
@ -81,7 +138,13 @@ public class CollaborationDrawingLayer extends DrawingLayer {
protected void initInternal(IGraphicsTarget target) throws VizException { protected void initInternal(IGraphicsTarget target) throws VizException {
super.initInternal(target); super.initInternal(target);
this.collaboratorShapes = HashMultimap.create(); this.collaboratorShapes = HashMultimap.create();
getCapabilities().removeCapability(ColorableCapability.class); this.collaboratorShapes = Multimaps
.synchronizedMultimap(this.collaboratorShapes);
this.deletedCollaboratorShapes = new ArrayList<IWireframeShape>();
TelestratorColorManager colorManager = TelestratorColorManager
.getColorManager();
officialColor = colorManager.getColorFromUser(CollaborationDataManager
.getInstance().getLoginId());
} }
/* /*
@ -99,14 +162,33 @@ public class CollaborationDrawingLayer extends DrawingLayer {
OutlineCapability outline = getCapability(OutlineCapability.class); OutlineCapability outline = getCapability(OutlineCapability.class);
// paint the shapes that come over from others // paint the shapes that come over from others
for (Color color : collaboratorShapes.keySet()) { synchronized (collaboratorShapes) {
for (IWireframeShape sh : collaboratorShapes.get(color)) { for (RGB color : collaboratorShapes.keySet()) {
target.drawWireframeShape(sh, color.getRGB(), for (IWireframeShape sh : collaboratorShapes.get(color)) {
outline.getOutlineWidth(), outline.getLineStyle()); target.drawWireframeShape(sh, color,
outline.getOutlineWidth(), outline.getLineStyle());
}
} }
} }
} }
public void addCollaborationShape(Geometry geom, RGB color) {
IWireframeShape shape = target.createWireframeShape(false,
getDescriptor());
drawTempLinePrimitive(geom, shape);
synchronized (collaboratorShapes) {
collaboratorShapes.put(color, shape);
}
issueRefresh();
}
public void removeCollaborationShape(Geometry geom, RGB color) {
synchronized (collaboratorShapes) {
// deletedCollaboratorShapes.
// collaboratorShapes.remove(geom, color);
}
}
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
@ -115,10 +197,18 @@ public class CollaborationDrawingLayer extends DrawingLayer {
@Override @Override
protected void disposeInternal() { protected void disposeInternal() {
super.disposeInternal(); super.disposeInternal();
for (IWireframeShape shape : collaboratorShapes.values()) { synchronized (collaboratorShapes) {
for (IWireframeShape shape : collaboratorShapes.values()) {
shape.dispose();
}
}
for (IWireframeShape shape : deletedCollaboratorShapes) {
shape.dispose(); shape.dispose();
} }
collaboratorShapes.clear(); collaboratorShapes.clear();
deletedCollaboratorShapes.clear();
} }
/* /*
@ -131,21 +221,36 @@ public class CollaborationDrawingLayer extends DrawingLayer {
@Override @Override
public void finalizeLine(LineString line, String uuid) { public void finalizeLine(LineString line, String uuid) {
super.finalizeLine(line, uuid); super.finalizeLine(line, uuid);
sendDrawEvent(line);
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.viz.drawing.DrawingLayer#addTempDrawLine(com.vividsolutions
* .jts.geom.LineString)
*/
@Override
public void addTempDrawLine(LineString line) {
super.addTempDrawLine(line);
// sendDrawEvent(line);
}
private void sendDrawEvent(LineString line) {
Map<String, IVenueSession> sessions = CollaborationDataManager Map<String, IVenueSession> sessions = CollaborationDataManager
.getInstance().getSessions(); .getInstance().getSessions();
CollaborationDrawingEvent tObject = new CollaborationDrawingEvent(line,
TelestratorLine tObject = new TelestratorLine(); officialColor);
// set the coordinates of the TransferLine
tObject.setCoordinates(Arrays.asList(line.getCoordinates()));
// get the color of the user here, before sending it off // get the color of the user here, before sending it off
tObject.setColor(null); AbstractEditor editor = EditorUtil
// for (String str : sessions.keySet()) { .getActiveEditorAs(AbstractEditor.class);
// try { for (String str : sessions.keySet()) {
// ((ISharedDisplaySession) sessions.get(str)).sendEvent(tObject); try {
// } catch (CollaborationException e) { ((ISharedDisplaySession) sessions.get(str)).sendEvent(tObject);
// e.printStackTrace(); } catch (CollaborationException e) {
// } e.printStackTrace();
// } }
}
} }
} }

View file

@ -19,6 +19,8 @@
**/ **/
package com.raytheon.uf.viz.collaboration.ui.telestrator; package com.raytheon.uf.viz.collaboration.ui.telestrator;
import javax.xml.bind.annotation.XmlElement;
import com.raytheon.uf.viz.core.drawables.IDescriptor; import com.raytheon.uf.viz.core.drawables.IDescriptor;
import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.rsc.LoadProperties; import com.raytheon.uf.viz.core.rsc.LoadProperties;
@ -81,6 +83,6 @@ public class CollaborationPathDrawingResourceData extends
*/ */
@Override @Override
public void setClassT(String classT) { public void setClassT(String classT) {
System.out.println("setClassT");
} }
} }

View file

@ -0,0 +1,98 @@
/**
* 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.telestrator;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.swt.graphics.RGB;
import com.raytheon.viz.core.ColorUtil;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 3, 2012 mnash Initial creation
*
* </pre>
*
* @author mnash
* @version 1.0
*/
public class TelestratorColorManager {
private Map<String, RGB> colors;
private static TelestratorColorManager colorManager = null;
private static RGB[] rgbPresets = null;
public static TelestratorColorManager getColorManager() {
if (colorManager == null) {
colorManager = new TelestratorColorManager();
rgbPresets = ColorUtil.getResourceColorPresets();
}
return colorManager;
}
/**
*
*/
private TelestratorColorManager() {
if (colors == null) {
colors = new HashMap<String, RGB>();
}
}
/**
* @return the colors
*/
public Map<String, RGB> getColors() {
return colors;
}
/**
* Add a user with a new color value
*
* @param user
*/
public void addUser(String user) {
int count = colors.size();
if (rgbPresets.length <= colors.size()) {
count = rgbPresets.length % colors.size();
}
colors.put(user, rgbPresets[count]);
}
public RGB getColorFromUser(String user) {
if (colors.get(user) == null) {
addUser(user);
}
return colors.get(user);
}
}

View file

@ -1,81 +0,0 @@
/**
* 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.telestrator;
import java.util.List;
import org.eclipse.swt.graphics.Color;
import com.vividsolutions.jts.geom.Coordinate;
/**
* A line for the telestrator
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 26, 2012 mnash Initial creation
*
* </pre>
*
* @author mnash
* @version 1.0
*/
public class TelestratorLine extends TelestratorObject {
// the color of the shape to be drawn
private Color color;
// the coordinates to be converted into a wireframe shape
private List<Coordinate> coordinates;
/**
* @param color
* the color to set
*/
public void setColor(Color color) {
this.color = color;
}
/**
* @return the color
*/
public Color getColor() {
return color;
}
/**
* @param coordinates
* the coordinates to set
*/
public void setCoordinates(List<Coordinate> coordinates) {
this.coordinates = coordinates;
}
/**
* @return the coordinates
*/
public List<Coordinate> getCoordinates() {
return coordinates;
}
}

View file

@ -17,9 +17,11 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for * See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information. * further licensing information.
**/ **/
package com.raytheon.uf.viz.collaboration.ui.telestrator; package com.raytheon.uf.viz.collaboration.ui.telestrator.event;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
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.drawing.events.DrawingEvent;
/** /**
* TODO Add Description * TODO Add Description
@ -30,7 +32,7 @@ import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
* *
* Date Ticket# Engineer Description * Date Ticket# Engineer Description
* ------------ ---------- ----------- -------------------------- * ------------ ---------- ----------- --------------------------
* Mar 26, 2012 mnash Initial creation * Apr 4, 2012 mnash Initial creation
* *
* </pre> * </pre>
* *
@ -38,6 +40,7 @@ import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
* @version 1.0 * @version 1.0
*/ */
public class TelestratorObject implements IDisplayEvent { @DynamicSerialize
public class ClearDrawingEvent extends DrawingEvent implements IDisplayEvent {
} }

View file

@ -0,0 +1,95 @@
/**
* 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.telestrator.event;
import org.eclipse.swt.graphics.RGB;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
import com.raytheon.uf.viz.collaboration.comm.identity.event.IDisplayEvent;
import com.raytheon.uf.viz.drawing.events.DrawingEvent;
import com.vividsolutions.jts.geom.Geometry;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 3, 2012 mnash Initial creation
*
* </pre>
*
* @author mnash
* @version 1.0
*/
@DynamicSerialize
public class CollaborationDrawingEvent extends DrawingEvent implements
IDisplayEvent {
@DynamicSerializeElement
private Geometry geom;
// @DynamicSerializeElement
// private RGB color;
public CollaborationDrawingEvent() {
}
public CollaborationDrawingEvent(Geometry geom, RGB color) {
this.geom = geom;
// this.color = color;
}
// /**
// * @return the color
// */
// public RGB getColor() {
// return color;
// }
//
// /**
// * @param color
// * the color to set
// */
// public void setColor(RGB color) {
// this.color = color;
// }
/**
* @return the geom
*/
public Geometry getGeom() {
return geom;
}
/**
* @param geom
* the geom to set
*/
public void setGeom(Geometry geom) {
this.geom = geom;
}
}

View file

@ -49,7 +49,7 @@ import com.raytheon.uf.viz.collaboration.comm.identity.IPresence;
public abstract class Tools { public abstract class Tools {
public static final String TAG_INVITE = "[[INVITEID#"; public static final String TAG_INVITE = "[[INVITEID#";
public static final String TAG_INVITE_ID = TAG_INVITE + "%s]]%s"; public static final String TAG_INVITE_ID = TAG_INVITE + "%s]]%s";
public static final String PROP_SESSION_ID = "sessionId"; public static final String PROP_SESSION_ID = "sessionId";
@ -329,7 +329,7 @@ public abstract class Tools {
sb.append(ENV_THRIFT); sb.append(ENV_THRIFT);
} catch (SerializationException e) { } catch (SerializationException e) {
throw new CollaborationException( throw new CollaborationException(
"[THRIFT] Could not serialize object"); "[THRIFT] Could not serialize object", e);
} }
break; break;
} }
@ -342,7 +342,7 @@ public abstract class Tools {
} }
} catch (JAXBException je) { } catch (JAXBException je) {
throw new CollaborationException( throw new CollaborationException(
"[JAXB] Could not serialize object"); "[JAXB] Could not serialize object", je);
} }
break; break;
} }
@ -389,7 +389,7 @@ public abstract class Tools {
unMarshalledData = SerializationUtil.transformFromThrift(b); unMarshalledData = SerializationUtil.transformFromThrift(b);
} catch (SerializationException e) { } catch (SerializationException e) {
throw new CollaborationException( throw new CollaborationException(
"Could not deserialize object"); "Could not deserialize object", e);
} }
} else if (data.startsWith(ENV_JAXB)) { } else if (data.startsWith(ENV_JAXB)) {
String s = data.substring(ENV_JAXB.length()); String s = data.substring(ENV_JAXB.length());
@ -397,7 +397,7 @@ public abstract class Tools {
unMarshalledData = SerializationUtil.unmarshalFromXml(s); unMarshalledData = SerializationUtil.unmarshalFromXml(s);
} catch (JAXBException je) { } catch (JAXBException je) {
throw new CollaborationException( throw new CollaborationException(
"[JAXB] Could not deserialize object"); "[JAXB] Could not deserialize object", je);
} }
} else if (data.startsWith(ENV_STRING)) { } else if (data.startsWith(ENV_STRING)) {
unMarshalledData = data.substring(ENV_STRING.length()); unMarshalledData = data.substring(ENV_STRING.length());

View file

@ -4,6 +4,7 @@ Bundle-Name: Drawing
Bundle-SymbolicName: com.raytheon.uf.viz.drawing;singleton:=true Bundle-SymbolicName: com.raytheon.uf.viz.drawing;singleton:=true
Bundle-Version: 1.0.0.qualifier Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.raytheon.uf.viz.drawing.Activator Bundle-Activator: com.raytheon.uf.viz.drawing.Activator
Eclipse-RegisterBuddy: com.raytheon.uf.viz.core
Bundle-Vendor: RAYTHEON Bundle-Vendor: RAYTHEON
Require-Bundle: org.eclipse.ui, Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime, org.eclipse.core.runtime,

View file

@ -163,7 +163,7 @@ public class DrawingLayer extends
* @param shape * @param shape
* @param wShape * @param wShape
*/ */
private void drawTempLinePrimitive(Geometry shape, IWireframeShape wShape) { protected void drawTempLinePrimitive(Geometry shape, IWireframeShape wShape) {
LineString line = (LineString) shape; LineString line = (LineString) shape;
int pts = line.getNumPoints(); int pts = line.getNumPoints();
@ -214,7 +214,9 @@ public class DrawingLayer extends
public void finalizeLine(LineString line, String uuid) { public void finalizeLine(LineString line, String uuid) {
tempWireframeShape.compile(); tempWireframeShape.compile();
wireframeShapes.put(line, tempWireframeShape); wireframeShapes.put(line, tempWireframeShape);
DrawingEvent event = new DrawingEvent(line, null);
// this will update the toolbar if necessary
DrawingEvent event = new DrawingEvent();
eventBus.post(event); eventBus.post(event);
} }

View file

@ -58,7 +58,7 @@ public class RedoAddAction extends AbstractHandler {
if (pair.getResource() instanceof DrawingLayer) { if (pair.getResource() instanceof DrawingLayer) {
((DrawingLayer) pair.getResource()).redoAdd(); ((DrawingLayer) pair.getResource()).redoAdd();
((DrawingLayer) pair.getResource()).getEventBus().post( ((DrawingLayer) pair.getResource()).getEventBus().post(
new DrawingEvent(null, null)); new DrawingEvent());
break; break;
} }
} }

View file

@ -57,7 +57,7 @@ public class UndoAddAction extends AbstractHandler {
if (pair.getResource() instanceof DrawingLayer) { if (pair.getResource() instanceof DrawingLayer) {
((DrawingLayer) pair.getResource()).undoAdd(); ((DrawingLayer) pair.getResource()).undoAdd();
((DrawingLayer) pair.getResource()).getEventBus().post( ((DrawingLayer) pair.getResource()).getEventBus().post(
new DrawingEvent(null, null)); new DrawingEvent());
break; break;
} }
} }

View file

@ -19,8 +19,8 @@
**/ **/
package com.raytheon.uf.viz.drawing.events; package com.raytheon.uf.viz.drawing.events;
import com.raytheon.viz.ui.editor.AbstractEditor; import com.raytheon.uf.common.serialization.ISerializableObject;
import com.vividsolutions.jts.geom.Geometry; import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
/** /**
* TODO Add Description * TODO Add Description
@ -39,28 +39,7 @@ import com.vividsolutions.jts.geom.Geometry;
* @version 1.0 * @version 1.0
*/ */
public class DrawingEvent { @DynamicSerialize
public class DrawingEvent implements ISerializableObject {
private AbstractEditor editor; }
private Geometry geom;
public DrawingEvent(Geometry geom, AbstractEditor editor) {
this.geom = geom;
this.editor = editor;
}
/**
* @return the geom
*/
public Geometry getGeom() {
return geom;
}
/**
* @return the editor
*/
public AbstractEditor getEditor() {
return editor;
}
}

View file

@ -106,7 +106,7 @@ public class IncludeMenuItem extends CommonIncludeMenuItem implements
*/ */
@Override @Override
public String getId() { public String getId() {
return subMenuName; return "IncludeSubMenuContributionId_" + subMenuName;
} }
}; };
return new IContributionItem[] { submenuCont }; return new IContributionItem[] { submenuCont };