ASM #13900 - Loading 4 panels from procedures are not time matched

Change-Id: If3f116711ede5e5c78a3f08c3f9a05887e54ba95

Former-commit-id: 262cb246a874c1f123385ba1fed679f2d1f96cf2
This commit is contained in:
David Friedman 2015-07-14 20:19:38 +00:00
parent d111e04954
commit 168de4d871

View file

@ -82,6 +82,8 @@ import com.raytheon.uf.viz.d2d.core.D2DLoadProperties;
* like A1.
* May 5, 2014 3265 bsteffen Better handling of resources returning
* null dataTimes.
* Jul 14, 2015 DR 13900 D. Friedman Validate descriptor of time match basis
* before time matching it.
*
*
* </pre>
@ -246,8 +248,13 @@ public class D2DTimeMatcher extends AbstractTimeMatcher {
if (timeMatchBasis != null) {
IDescriptor tmDescriptor = timeMatchBasis.getDescriptor();
if (tmDescriptor != null) {
if (tmDescriptor != descriptor) {
redoTimeMatching(tmDescriptor);
if (tmDescriptor != descriptor
&& tmDescriptor.getTimeMatcher() == this) {
if (validateDescriptor(tmDescriptor)) {
redoTimeMatching(tmDescriptor);
} else {
changeTimeMatchBasis(null);
}
} else if (contained(tmDescriptor, timeMatchBasis) == false) {
// Checks to ensure the timeMatchBasis is not "orphaned"
timeMatchBasis = null;
@ -1131,4 +1138,23 @@ public class D2DTimeMatcher extends AbstractTimeMatcher {
return false;
}
boolean rocket = true;
private boolean validateDescriptor(IDescriptor descriptor) {
if (! rocket)
return true;
IRenderableDisplay display = descriptor.getRenderableDisplay();
IDisplayPaneContainer container = display != null ? display
.getContainer() : null;
if (container != null) {
for (IDisplayPane pane : container.getDisplayPanes()) {
IRenderableDisplay paneDisplay = pane.getRenderableDisplay();
IDescriptor paneDescriptor = paneDisplay != null ? paneDisplay
.getDescriptor() : null;
if (paneDescriptor == descriptor)
return true;
}
}
return false;
}
}