Fixes O&M Redmine DR 14448 - which concerns displaying changes to a color set just after the changes are saved,
instead of redisplaying after the ColorScaleManager is closed.

Change-Id: I0156612302853141392c263eab8b54a16c3be7a3

Former-commit-id: 3c350e52d2 [formerly 5573a077bf] [formerly 3c350e52d2 [formerly 5573a077bf] [formerly 31d32a2e82 [formerly 6fe0cf5e013896af2e3380a9f93168e8fa66068b]]]
Former-commit-id: 31d32a2e82
Former-commit-id: a06dee5dd3 [formerly d6ede1b6a6]
Former-commit-id: b4fab70dc1
This commit is contained in:
Chip Gobs 2014-09-08 12:06:45 -04:00
parent 589a94588d
commit 59d8ddc6c4
3 changed files with 91 additions and 4 deletions

View file

@ -49,7 +49,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
* 6/27/06 lvenable Initial Creation.
* 04/07/2010 4671 mpduff Have the map update upon closure of the dialog.
* 07/02/2013 2088 rferrel Changes for non-blocking ColorScaleMgrDlg.
*
* 9/4/2014 14448 cgobs Make HydroView redisplay after save of color settings in ColorScaleMgr
* </pre>
*
* @author lvenable
@ -97,6 +97,25 @@ public class ColorScaleMgrAction extends AbstractHandler {
}
}
});
colorScaleDlg.setSaveCallback(new ColorScaleMgrDlg.ISaveCallback() {
public void execute() {
HydroDisplayManager displayManager = HydroDisplayManager
.getInstance();
boolean dataChanged = true;
displayManager.setColorChanged(dataChanged);
// redraw the main display
displayManager.setDataChanged(dataChanged);
StationDisplay sd = StationDisplay.getInstance();
sd.redraw();
}
});
colorScaleDlg.open();
} else {
colorScaleDlg.bringToTop();

View file

@ -73,7 +73,8 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
* disappearing after save
* 01 Jul 2013 2088 rferrel Changes for non-blocking dialogs.
* 06 Sep 2013 #2342 lvenable Fixed color memory leaks and a null point exception.
* </pre>
* 04 Sep 2014 14448 cgobs Make MPE redisplay after save of color settings in ColorScaleMgr
* </pre>
*
* @author lvenable
* @version 1.0
@ -96,6 +97,19 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
*/
private ColorChooserDlg colorDlg;
/**
* callback to be execute upon saving of a color set
* generally used to update the display with the newly-saved color set
*/
private ISaveCallback saveCallback;
public interface ISaveCallback {
public void execute();
}
/**
* User's name.
*/
@ -915,6 +929,7 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
}
};
/**
* Update the color label on the display
*
@ -2017,9 +2032,17 @@ public class ColorScaleMgrDlg extends CaveSWTDialog {
updateDurationCombo();
updateColorValueLabelBar();
if (this.saveCallback != null) {
this.saveCallback.execute();
}
setReturnValue(true);
}
public void setSaveCallback(ISaveCallback iSaveCallback)
{
this.saveCallback = iSaveCallback;
}
/**
* dataType has changed, update dialog
*/

View file

@ -48,6 +48,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
* Jan 16, 2014 #2691 lvenable Fixed null pointer exception that occurs when closing
* the MPE perspective while the ColorScaleMgrDlg is
* visible.
* 04 Sep 2014 14448 cgobs Make MPE redisplay after save of color settings in ColorScaleMgr
* </pre>
*
* @author mschenke
@ -103,10 +104,54 @@ public class MPEColorScaleMgrAction extends AbstractHandler {
DisplayFieldData dt = MPEDisplayManager.getCurrent()
.getDisplayFieldType();
MPEDisplayManager.getCurrent().displayFieldData(dt);
int displayedAccumHrs = mdm.getDisplayedAccumHrs();
mdm.displayFieldData(dt,displayedAccumHrs );
}
}
});
//anonymous class declaration for the purposes of a callback execute upon save to database
colorScaleDlg.setSaveCallback(new ColorScaleMgrDlg.ISaveCallback() {
public void execute() {
MPEDisplayManager mdm = MPEDisplayManager.getCurrent();
// If the MPE Display Manager is null then return as no
// action is needed.
if (mdm == null) {
return;
}
MPEFieldResource displayedFieldResource = mdm
.getDisplayedFieldResource();
if (displayedFieldResource != null) {
MPEFieldResourceData resourceData = displayedFieldResource
.getResourceData();
displayedFieldResource
.getCapability(ColorMapCapability.class)
.setColorMapParameters(
MPEDisplayManager.createColorMap(
resourceData.getCvUseString(),
resourceData
.getDurationInHours(),
resourceData.getDataUnits(),
resourceData.getDisplayUnits()));
DisplayFieldData dt = MPEDisplayManager.getCurrent()
.getDisplayFieldType();
int displayedAccumHrs = mdm.getDisplayedAccumHrs();
mdm.displayFieldData(dt, displayedAccumHrs);
}
}
});
colorScaleDlg.open();
} else {
colorScaleDlg.bringToTop();