Merge "ASM #18495 - WarnGen: Does not load from a procedure after DCS 1794" into asm_16.1.2
Former-commit-id: f95450c52bb1305cc2664bc121561c32ff2bc267
This commit is contained in:
commit
37488a5bb5
1 changed files with 33 additions and 17 deletions
|
@ -805,7 +805,7 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
|
||||
private class ExtensionAreaManager extends Job implements IChangeListener {
|
||||
private ExtensionAreaOptions options = new ExtensionAreaOptions();
|
||||
private WritableValue observableOptions = new WritableValue(options, null);
|
||||
private WritableValue observableOptions;
|
||||
|
||||
private GeospatialDataAccessor primaryGDA;
|
||||
private GeospatialDataAccessor gda;
|
||||
|
@ -816,7 +816,6 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
|
||||
public ExtensionAreaManager() {
|
||||
super("Generate extension area");
|
||||
observableOptions.addChangeListener(this);
|
||||
}
|
||||
|
||||
public GeospatialDataAccessor getGDA() {
|
||||
|
@ -831,8 +830,16 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
return options.isEnabled() && options.getDistance() > 0.0;
|
||||
}
|
||||
|
||||
public void setExtensionAreaConfig(ExtensionArea extensionAreaConfig) {
|
||||
observableOptions.setValue(new ExtensionAreaOptions(extensionAreaConfig));
|
||||
public synchronized void setExtensionAreaConfig(ExtensionArea extensionAreaConfig) {
|
||||
/* This could be called from a thread other than the main, before
|
||||
* observable options has been initialized.
|
||||
*/
|
||||
ExtensionAreaOptions options = new ExtensionAreaOptions(extensionAreaConfig);
|
||||
if (observableOptions != null) {
|
||||
observableOptions.setValue(options);
|
||||
} else {
|
||||
realizeOptions(options);
|
||||
}
|
||||
}
|
||||
|
||||
private void realizeOptions(ExtensionAreaOptions options) {
|
||||
|
@ -964,16 +971,23 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void handleChange(ChangeEvent event) {
|
||||
public synchronized void handleChange(ChangeEvent event) {
|
||||
ExtensionAreaOptions options = (ExtensionAreaOptions) ((WritableValue) event
|
||||
.getObservable()).getValue();
|
||||
realizeOptions(options != null ? options : new ExtensionAreaOptions());
|
||||
}
|
||||
|
||||
public synchronized WritableValue getObservableExtensionAreaOptions() {
|
||||
if (observableOptions == null) {
|
||||
observableOptions = new WritableValue(options, null);
|
||||
observableOptions.addChangeListener(this);
|
||||
}
|
||||
return observableOptions;
|
||||
}
|
||||
}
|
||||
|
||||
public WritableValue getObservableExtensionAreaOptions() {
|
||||
return extensionAreaManager.observableOptions;
|
||||
return extensionAreaManager.getObservableExtensionAreaOptions();
|
||||
}
|
||||
|
||||
private class ExtensionAreaGeometryTask implements Callable<Geometry> {
|
||||
|
@ -1208,13 +1222,6 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
|
||||
setSpeedAndAngle();
|
||||
setDuration();
|
||||
|
||||
observableExtensionAreaVisible.addChangeListener(new IChangeListener() {
|
||||
@Override
|
||||
public void handleChange(ChangeEvent event) {
|
||||
issueRefresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1462,7 +1469,7 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
}
|
||||
}
|
||||
|
||||
if ((Boolean) observableExtensionAreaVisible.getValue()) {
|
||||
if ((Boolean) getObservableExtensionAreaVisible().getValue()) {
|
||||
if (extensionAreaVis != null) {
|
||||
extensionAreaShadedShape.reset();
|
||||
JTSCompiler comp = new JTSCompiler(extensionAreaShadedShape, null, descriptor);
|
||||
|
@ -1655,7 +1662,7 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
|
||||
private Geometry extensionAreaVis;
|
||||
|
||||
private WritableValue observableExtensionAreaVisible = new WritableValue(false, null);
|
||||
private WritableValue observableExtensionAreaVisible;
|
||||
|
||||
private RGB extensionAreaVisualizationColor = new RGB(240, 128, 128);
|
||||
|
||||
|
@ -1664,15 +1671,24 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
|||
private IShadedShape extensionAreaShadedShape = null;
|
||||
|
||||
public WritableValue getObservableExtensionAreaVisible() {
|
||||
if (observableExtensionAreaVisible == null) {
|
||||
observableExtensionAreaVisible = new WritableValue(false, null);
|
||||
observableExtensionAreaVisible.addChangeListener(new IChangeListener() {
|
||||
@Override
|
||||
public void handleChange(ChangeEvent event) {
|
||||
issueRefresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
return observableExtensionAreaVisible;
|
||||
}
|
||||
|
||||
public boolean isExtensionAreaVisible() {
|
||||
return (Boolean) observableExtensionAreaVisible.getValue();
|
||||
return (Boolean) getObservableExtensionAreaVisible().getValue();
|
||||
}
|
||||
|
||||
public void setExtensionAreaVisualized(boolean visible) {
|
||||
observableExtensionAreaVisible.setValue(visible);
|
||||
getObservableExtensionAreaVisible().setValue(visible);
|
||||
}
|
||||
|
||||
public RGB getExtensionAreaVisualizationColor() {
|
||||
|
|
Loading…
Add table
Reference in a new issue