Issue #588 fixed resizing of participant canvas
Change-Id: I17e0ce448682291948af7339fa8982e21cf3b220 Former-commit-id:7bb3576866
[formerlyd500f49208
] [formerly7bb3576866
[formerlyd500f49208
] [formerly21b7735e92
[formerly 544c1226d807308c06037f98cad6ca2b037d69ce]]] Former-commit-id:21b7735e92
Former-commit-id:de6297fada
[formerly85f2900333
] Former-commit-id:67c4838d7f
This commit is contained in:
parent
824d66ad32
commit
6c5c820afa
2 changed files with 39 additions and 30 deletions
|
@ -109,6 +109,8 @@ public class CollaborationResource extends
|
|||
|
||||
private Set<Integer> waitingOnFrames = new HashSet<Integer>();
|
||||
|
||||
private Rectangle previousBounds = null;
|
||||
|
||||
public CollaborationResource(CollaborationResourceData resourceData,
|
||||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
|
@ -126,6 +128,15 @@ public class CollaborationResource extends
|
|||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps) throws VizException {
|
||||
if (previousBounds == null
|
||||
|| previousBounds.equals(paintProps.getCanvasBounds()) == false) {
|
||||
if (previousBounds != null && providerWindow != null) {
|
||||
adjustView(providerWindow);
|
||||
}
|
||||
previousBounds = paintProps.getCanvasBounds();
|
||||
issueRefresh();
|
||||
return;
|
||||
}
|
||||
List<AbstractDispatchingObjectEvent> currentDataChangeEvents = new LinkedList<AbstractDispatchingObjectEvent>();
|
||||
synchronized (dataChangeEvents) {
|
||||
if (waitingOnObjects.size() == 0) {
|
||||
|
@ -320,9 +331,6 @@ public class CollaborationResource extends
|
|||
|
||||
@Subscribe
|
||||
public void renderableArrived(AbstractRemoteGraphicsEvent event) {
|
||||
// TODO: May need to allow for adding objects to the data manager for an
|
||||
// objectId and creation events should put a flag that a creation event
|
||||
// was received for the object
|
||||
if (event instanceof IRenderFrameEvent) {
|
||||
// Skip IRenderFrameEvents, not applicable here
|
||||
return;
|
||||
|
@ -344,32 +352,7 @@ public class CollaborationResource extends
|
|||
IRenderableDisplay display = descriptor
|
||||
.getRenderableDisplay();
|
||||
BeginFrameEvent bfe = (BeginFrameEvent) renderable;
|
||||
IExtent frameExtent = bfe.getExtent();
|
||||
providerWindow = frameExtent;
|
||||
Rectangle bounds = display.getBounds();
|
||||
double width = frameExtent.getWidth();
|
||||
double height = frameExtent.getHeight();
|
||||
if (width / height > bounds.width
|
||||
/ (double) bounds.height) {
|
||||
double neededHeight = (width / bounds.width)
|
||||
* bounds.height;
|
||||
double padding = (neededHeight - height) / 2;
|
||||
frameExtent = new PixelExtent(
|
||||
frameExtent.getMinX(),
|
||||
frameExtent.getMaxX(),
|
||||
frameExtent.getMinY() - padding,
|
||||
frameExtent.getMaxY() + padding);
|
||||
} else {
|
||||
double neededWidth = (height / bounds.height)
|
||||
* bounds.width;
|
||||
double padding = (neededWidth - width) / 2;
|
||||
frameExtent = new PixelExtent(
|
||||
frameExtent.getMinX() - padding,
|
||||
frameExtent.getMaxX() + padding,
|
||||
frameExtent.getMinY(),
|
||||
frameExtent.getMaxY());
|
||||
}
|
||||
display.getView().setExtent(frameExtent);
|
||||
adjustView(bfe.getExtent());
|
||||
display.setBackgroundColor(bfe.getColor());
|
||||
} else {
|
||||
// Add to list for processing in paintInternal
|
||||
|
@ -398,6 +381,31 @@ public class CollaborationResource extends
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param frameExtent
|
||||
*/
|
||||
private void adjustView(IExtent frameExtent) {
|
||||
IRenderableDisplay display = descriptor.getRenderableDisplay();
|
||||
providerWindow = frameExtent;
|
||||
Rectangle bounds = display.getBounds();
|
||||
double width = frameExtent.getWidth();
|
||||
double height = frameExtent.getHeight();
|
||||
if (width / height > bounds.width / (double) bounds.height) {
|
||||
double neededHeight = (width / bounds.width) * bounds.height;
|
||||
double padding = (neededHeight - height) / 2;
|
||||
frameExtent = new PixelExtent(frameExtent.getMinX(),
|
||||
frameExtent.getMaxX(), frameExtent.getMinY() - padding,
|
||||
frameExtent.getMaxY() + padding);
|
||||
} else {
|
||||
double neededWidth = (height / bounds.height) * bounds.width;
|
||||
double padding = (neededWidth - width) / 2;
|
||||
frameExtent = new PixelExtent(frameExtent.getMinX() - padding,
|
||||
frameExtent.getMaxX() + padding, frameExtent.getMinY(),
|
||||
frameExtent.getMaxY());
|
||||
}
|
||||
display.getView().setExtent(frameExtent);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -56,6 +56,7 @@ public class StringRenderingHandler extends CollaborationRenderingHandler {
|
|||
|
||||
@Subscribe
|
||||
public void drawStrings(DrawStringsEvent event) {
|
||||
IGraphicsTarget target = getGraphicsTarget();
|
||||
DrawStringEvent[] events = event.getStrings();
|
||||
DrawableString[] strings = new DrawableString[events.length];
|
||||
for (int i = 0; i < events.length; ++i) {
|
||||
|
@ -66,7 +67,7 @@ public class StringRenderingHandler extends CollaborationRenderingHandler {
|
|||
}
|
||||
}
|
||||
try {
|
||||
getGraphicsTarget().drawStrings(strings);
|
||||
target.drawStrings(strings);
|
||||
} catch (VizException e) {
|
||||
Activator.statusHandler.handle(Priority.PROBLEM,
|
||||
e.getLocalizedMessage(), e);
|
||||
|
|
Loading…
Add table
Reference in a new issue