Issue #1353 Changers for non-blocking GhgFilterDlg and GhgSaveDeleteFilterDlg.

Change-Id: I9a6278ea75eda3f8bc9666f6ae41451b255cb223

Former-commit-id: 43be0994dc [formerly 72d6a5620c] [formerly 317e34f89b] [formerly 317e34f89b [formerly d1d846267c]] [formerly 43be0994dc [formerly 72d6a5620c] [formerly 317e34f89b] [formerly 317e34f89b [formerly d1d846267c]] [formerly 2be7ff7c35 [formerly 317e34f89b [formerly d1d846267c] [formerly 2be7ff7c35 [formerly 5a2362265aa6378f323144d87f6d7ef01cd37c9f]]]]]
Former-commit-id: 2be7ff7c35
Former-commit-id: 1a6bf22708 [formerly 9d8309d964] [formerly 0d05519f0a] [formerly 5284e1095fe602e9c1a15adbd9df9d42d896f9e4 [formerly 3b827e94741138d9474851f85cebebea28383efe] [formerly 0d05519f0a [formerly ba682f2812]]]
Former-commit-id: 914ce859f1aab6455503cf066246a56f2a658fea [formerly ba185132ea81ba1dcf0a69a0cda1248021181d8f] [formerly 65c5ad614d [formerly 66b44dffbe]]
Former-commit-id: 65c5ad614d
Former-commit-id: 289180881f
This commit is contained in:
Roger Ferrel 2012-11-28 08:43:37 -06:00
parent 11ff446787
commit e8652720be
4 changed files with 66 additions and 19 deletions

View file

@ -65,6 +65,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* ------------ ---------- ----------- --------------------------
* 25 MAR 2008 N/A lvenable Initial creation
* 17Jun2008 1157 MW Fegan Hooked in configuration.
* 28 Nov 2012 1353 rferrel Changes for non-blocking dialog.
*
* </pre>
*
@ -73,7 +74,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
*
*/
public class GhgFilterDlg extends CaveSWTDialog {
private static final transient IUFStatusHandler statusHandler = UFStatus
private final IUFStatusHandler statusHandler = UFStatus
.getHandler(GhgFilterDlg.class);
/**
@ -118,7 +119,7 @@ public class GhgFilterDlg extends CaveSWTDialog {
/**
* Array of filter group containers that contain the list controls.
*/
private ArrayList<GhgFilterListGroup> listGroupArray;
private List<GhgFilterListGroup> listGroupArray;
/**
* Combine Geo ID check box.
@ -186,7 +187,7 @@ public class GhgFilterDlg extends CaveSWTDialog {
* Parent Shell.
*/
public GhgFilterDlg(Shell parent, GhgDataFilter filter) {
super(parent);
super(parent, SWT.DIALOG_TRIM, CAVE.DO_NOT_BLOCK);
setText("GHG Monitor Filter Dialog");
this.filter = filter;

View file

@ -134,6 +134,8 @@ public class GhgMonitorDlg extends CaveSWTDialog implements
private GhgFontDlg fontDlg;
private GhgSaveDeleteFilterDlg saveFilterDlg;
/**
* Active group one string.
*/
@ -943,11 +945,27 @@ public class GhgMonitorDlg extends CaveSWTDialog implements
* Save the current filter.
*/
private void saveCurrentFilter() {
// Show the Save Filter dialog.
if (saveFilterDlg == null) {
// Show the Save Filter dialog.
GhgConfigData configuration = GhgConfigData.getInstance();
saveFilterDlg = new GhgSaveDeleteFilterDlg(getShell(),
configuration.getFilterNames(), true);
saveFilterDlg.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
if (returnValue instanceof String) {
doSaveCurrentFilter(returnValue.toString());
}
saveFilterDlg = null;
}
});
}
saveFilterDlg.open();
}
private void doSaveCurrentFilter(String name) {
GhgConfigData configuration = GhgConfigData.getInstance();
GhgSaveDeleteFilterDlg saveFilterDlg = new GhgSaveDeleteFilterDlg(
getShell(), configuration.getFilterNames(), true);
String name = (String) saveFilterDlg.open();
// If no name was selected then return.
if (name == null) {
@ -976,12 +994,27 @@ public class GhgMonitorDlg extends CaveSWTDialog implements
* Delete a named filter.
*/
private void deleteNamedFilter() {
// Show the Delete Filter dialog.
GhgConfigData configuration = GhgConfigData.getInstance();
GhgSaveDeleteFilterDlg deleteFilterDlg = new GhgSaveDeleteFilterDlg(
getShell(), configuration.getFilterNames(), false);
String name = (String) deleteFilterDlg.open();
if (deleteFilterDlg == null) {
// Show the Delete Filter dialog.
GhgConfigData configuration = GhgConfigData.getInstance();
deleteFilterDlg = new GhgSaveDeleteFilterDlg(getShell(),
configuration.getFilterNames(), false);
deleteFilterDlg.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
if (returnValue instanceof String) {
doDeleteNamedFilter(returnValue.toString());
}
deleteFilterDlg = null;
}
});
}
deleteFilterDlg.open();
}
private void doDeleteNamedFilter(String name) {
GhgConfigData configuration = GhgConfigData.getInstance();
// If no name was selected then return.
if (name == null) {
return;
@ -1080,12 +1113,21 @@ public class GhgMonitorDlg extends CaveSWTDialog implements
* Display the filter dialog.
*/
private void showFilterDialog() {
GhgConfigData configuration = GhgConfigData.getInstance();
if (filterDlg == null) {
final GhgConfigData configuration = GhgConfigData.getInstance();
GhgFilterDlg filterDlg = new GhgFilterDlg(getShell(),
configuration.getCurrentFilter());
filterDlg = new GhgFilterDlg(getShell(),
configuration.getCurrentFilter());
filterDlg.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
filterDisplay.updateFilter(configuration.getCurrentFilter().name);
filterDlg = null;
}
});
}
filterDlg.open();
filterDisplay.updateFilter(configuration.getCurrentFilter().name);
}
/**

View file

@ -84,7 +84,7 @@ public class GhgSaveDeleteFilterDlg extends CaveSWTDialog {
*/
public GhgSaveDeleteFilterDlg(Shell parent, String[] names,
boolean saveFilter) {
super(parent);
super(parent, SWT.DIALOG_TRIM, CAVE.DO_NOT_BLOCK);
namesArray = names;
this.saveFilter = saveFilter;
@ -141,6 +141,7 @@ public class GhgSaveDeleteFilterDlg extends CaveSWTDialog {
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
filterNameTF = new Text(filterComp, SWT.BORDER);
filterNameTF.setLayoutData(gd);
filterNameTF.setEnabled(saveFilter);
}
/**

View file

@ -81,6 +81,7 @@ import com.raytheon.viz.ui.statusline.StatusStore;
* named filters.
* 18Jun2008 1157 MW Fegan Use clone of default filter.
* 20Jun2008 1157 MW Fegan Add resetting to default alerts.
* 28Nov2012 1353 rferrel Sort the list of filter names for dialog display.
*
* </pre>
*
@ -750,10 +751,12 @@ public final class GhgConfigData {
}
/**
* Returns a list of the filter names.
* Returns a sorted list of the filter names.
*/
public String[] getFilterNames() {
return filters.keySet().toArray(new String[] {});
String[] names = filters.keySet().toArray(new String[] {});
Arrays.sort(names);
return names;
}
/**