Merge branch 'development' of ssh://lightning.omaha.us.ray.com:29418/AWIPS2_baseline into development

Former-commit-id: a63b40b17a [formerly a63b40b17a [formerly ecb6a8876078dcff3414ff2a33aa14bf130fa075]]
Former-commit-id: 5e5c98b193
Former-commit-id: be16909d2d
This commit is contained in:
Steve Harris 2012-10-16 21:44:49 -05:00
commit b28a8e5113
9 changed files with 211 additions and 111 deletions

View file

@ -39,6 +39,7 @@ import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureDlg;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 13, 2007 chammack Initial Creation.
* Oct 16, 2012 1229 rferrel Change to use ProcedureDlg.displayDialog.
*
* </pre>
*
@ -57,10 +58,8 @@ public class AddAWIPSProcedure extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Procedure procedure = new Procedure();
ProcedureDlg dlg = ProcedureDlg.getOrCreateDialog(null, procedure,
ProcedureDlg.displayDialog(null, procedure,
HandlerUtil.getActiveShell(event));
dlg.open();
return null;
}

View file

@ -25,8 +25,13 @@ import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.handlers.HandlerUtil;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.exception.LocalizationOpFailedException;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureListDlg;
import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureListDlg.Mode;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
/**
* DeleteAWIPSProcedure
@ -41,6 +46,7 @@ import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureListDlg.Mode;
* ------------ ---------- ----------- --------------------------
* Sep 13, 2007 chammack Initial Creation.
* Jul 8, 2008 #1183 chammack Migrate to new localization
* Oct 16, 2012 #1229 rferrel Changes for non-blocking ProcedureListDlg.
*
* </pre>
*
@ -48,6 +54,10 @@ import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureListDlg.Mode;
* @version 1
*/
public class DeleteAWIPSProcedure extends AbstractHandler {
private final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(DeleteAWIPSProcedure.class);
private ProcedureListDlg listDlg;
/*
* (non-Javadoc)
@ -58,18 +68,30 @@ public class DeleteAWIPSProcedure extends AbstractHandler {
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
ProcedureListDlg listDlg = new ProcedureListDlg("Delete Procedure",
HandlerUtil.getActiveShell(event), Mode.DELETE);
listDlg.open();
if (listDlg == null || listDlg.getShell() == null
|| listDlg.isDisposed()) {
listDlg = new ProcedureListDlg("Delete Procedure",
HandlerUtil.getActiveShell(event), Mode.DELETE);
listDlg.setCloseCallback(new ICloseCallback() {
LocalizationFile selectedFile = listDlg.getSelectedFile();
if (selectedFile != null && selectedFile.exists()) {
try {
selectedFile.delete();
} catch (Exception e) {
throw new ExecutionException("Error deleting procedure: "
+ selectedFile.getName(), e);
}
@Override
public void dialogClosed(Object returnValue) {
if (returnValue instanceof LocalizationFile) {
LocalizationFile selectedFile = (LocalizationFile) returnValue;
try {
selectedFile.delete();
} catch (LocalizationOpFailedException e) {
statusHandler.handle(
Priority.PROBLEM,
"Error deleting procedure: "
+ selectedFile.getName());
}
}
}
});
listDlg.open();
} else {
listDlg.bringToTop();
}
return null;

View file

@ -24,8 +24,6 @@ import java.io.File;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
import com.raytheon.uf.common.localization.LocalizationFile;
@ -33,9 +31,9 @@ import com.raytheon.uf.common.localization.LocalizationUtil;
import com.raytheon.uf.viz.core.procedures.Procedure;
import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.OpenProcedureListDlg;
import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureDlg;
import com.raytheon.uf.viz.d2d.ui.dialogs.procedures.ProcedureListDlg;
import com.raytheon.viz.ui.VizWorkbenchManager;
import com.raytheon.viz.ui.actions.LoadSerializedXml;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
/**
* OpenAWIPSProcedure
@ -47,6 +45,8 @@ import com.raytheon.viz.ui.actions.LoadSerializedXml;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 13, 2007 chammack Initial Creation.
* Oct 16, 2012 1229 rferrel Change to use ProcedureDlg.displayDialog.
* Oct 16, 2012 1229 rferrel Changes for non-blocking ProcedureListDlg.
*
* </pre>
*
@ -55,8 +55,8 @@ import com.raytheon.viz.ui.actions.LoadSerializedXml;
*/
public class OpenAWIPSProcedure extends AbstractHandler {
private OpenProcedureListDlg dialog;
private OpenProcedureListDlg dialog;
/*
* (non-Javadoc)
*
@ -66,25 +66,28 @@ public class OpenAWIPSProcedure extends AbstractHandler {
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if(dialog != null){
dialog.open();
return null;
}
dialog = new OpenProcedureListDlg(
HandlerUtil.getActiveShell(event));
dialog.open();
LocalizationFile selectedFile = dialog.getSelectedFile();
dialog = null;
if (selectedFile != null) {
File f = selectedFile.getFile();
Procedure p = (Procedure) LoadSerializedXml.deserialize(f);
ProcedureDlg dlg = ProcedureDlg.getOrCreateDialog(
LocalizationUtil.extractName(selectedFile.getName()), p,
VizWorkbenchManager.getInstance().getCurrentWindow()
.getShell());
dlg.open();
if (dialog == null || dialog.getShell() == null || dialog.isDisposed()) {
dialog = new OpenProcedureListDlg(HandlerUtil.getActiveShell(event));
dialog.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
if (returnValue instanceof LocalizationFile) {
LocalizationFile selectedFile = (LocalizationFile) returnValue;
File f = selectedFile.getFile();
Procedure p = (Procedure) LoadSerializedXml
.deserialize(f);
ProcedureDlg.displayDialog(LocalizationUtil
.extractName(selectedFile.getName()), p,
VizWorkbenchManager.getInstance()
.getCurrentWindow().getShell());
}
dialog = null;
}
});
dialog.open();
} else {
dialog.bringToTop();
}
return null;

View file

@ -23,7 +23,7 @@ package com.raytheon.uf.viz.d2d.ui.dialogs.procedures;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
@ -97,6 +97,8 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
* ------------ ---------- ----------- --------------------------
* Initial Creation
* Oct 16, 2012 1229 rferrel Changes for non-blocking AlterBundleDlg.
* Oct 16, 2012 1229 rferrel Changes to have displayDialog method.
* Oct 16, 2012 1229 rferrel Changes for non-blocking ProcedureListDlg.
*
* </pre>
*
@ -114,7 +116,7 @@ public class ProcedureDlg extends CaveSWTDialog {
public static final String PROCEDURES_DIR = "/procedures";
private static Collection<ProcedureDlg> openDialogs = new ArrayList<ProcedureDlg>();
private static final Map<String, ProcedureDlg> openDialogs = new HashMap<String, ProcedureDlg>();
private Font font;
@ -172,6 +174,8 @@ public class ProcedureDlg extends CaveSWTDialog {
private AlterBundleDlg alterDlg;
private ProcedureListDlg saveAsDlg;
private ProcedureDlg(String fileName, Procedure p, Shell parent) {
// Win32
super(parent, SWT.DIALOG_TRIM | SWT.RESIZE, CAVE.INDEPENDENT_SHELL
@ -228,7 +232,7 @@ public class ProcedureDlg extends CaveSWTDialog {
protected void disposed() {
font.dispose();
synchronized (openDialogs) {
openDialogs.remove(this);
openDialogs.remove(fileName);
}
}
@ -918,18 +922,38 @@ public class ProcedureDlg extends CaveSWTDialog {
}
private void showSaveAsDlg() {
ProcedureListDlg dlg = new ProcedureListDlg("Save Procedure As...",
shell, ProcedureListDlg.Mode.SAVE);
dlg.open();
if (mustCreate(saveAsDlg)) {
saveAsDlg = new ProcedureListDlg("Save Procedure As...", shell,
ProcedureListDlg.Mode.SAVE);
String fn = dlg.getSelectedFileName();
if (fn == null) {
return;
saveAsDlg.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
String fn = saveAsDlg.getSelectedFileName();
if (fn != null) {
ProcedureDlg oldDlg = getDialog(fn);
if (oldDlg != null) {
oldDlg.close();
}
// Update mapping to new file name.
synchronized (openDialogs) {
openDialogs.remove(fileName);
openDialogs.put(fn, ProcedureDlg.this);
}
frozen = saveAsDlg.isFrozen();
fileName = fn;
saveProcedure();
}
}
});
saveAsDlg.open();
} else {
saveAsDlg.bringToTop();
}
frozen = dlg.isFrozen();
fileName = fn;
saveProcedure();
}
/**
@ -1040,36 +1064,30 @@ public class ProcedureDlg extends CaveSWTDialog {
* @return
*/
public static ProcedureDlg getDialog(String fileName) {
synchronized (openDialogs) {
if (fileName != null) {
for (ProcedureDlg dialog : openDialogs) {
if (fileName.equals(dialog.fileName)) {
return dialog;
}
}
}
return null;
synchronized (ProcedureDlg.openDialogs) {
ProcedureDlg dialog = openDialogs.get(fileName);
return dialog;
}
}
/**
* Get the ProcedureDlg for the given fileName. If the fileName is null or
* if there is no open dialog, create a new ProcedureDlg.
* Get the ProcedureDlg for the given fileName and display it.
*
* @param fileName
* @param p
* @param parent
* @return
*/
public static ProcedureDlg getOrCreateDialog(String fileName, Procedure p,
Shell parent) {
public static void displayDialog(String fileName, Procedure p, Shell parent) {
synchronized (openDialogs) {
ProcedureDlg dialog = getDialog(fileName);
if (dialog == null) {
if (dialog == null || dialog.getShell() == null
|| dialog.isDisposed()) {
dialog = new ProcedureDlg(fileName, p, parent);
openDialogs.add(dialog);
openDialogs.put(fileName, dialog);
dialog.open();
} else {
dialog.bringToTop();
}
return dialog;
}
}
}

View file

@ -56,19 +56,21 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
/**
*
* A dialog which displays a list of procedures for opening, saving, or deleting.
* A dialog which displays a list of procedures for opening, saving, or
* deleting.
*
* <pre>
*
*
* SOFTWARE HISTORY
*
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* ??? Initial creation
* 07/31/2012 DR 15036 D. Friedman Ensure current user's procedures
* are visible.
* 10/16/2012 1229 rferrel Made dialog non-blocking.
* </pre>
*
*
* @author unknown
* @version 1.0
*/
@ -80,8 +82,6 @@ public class ProcedureListDlg extends CaveSWTDialog {
private Text procedureTF;
private LocalizationFile selectedFile;
private TreeViewer treeViewer;
private Button okBtn;
@ -103,7 +103,7 @@ public class ProcedureListDlg extends CaveSWTDialog {
private final Mode mode;
public ProcedureListDlg(String title, Shell parent, Mode mode) {
super(parent, SWT.DIALOG_TRIM | SWT.RESIZE); // Win32
super(parent, SWT.DIALOG_TRIM | SWT.RESIZE, CAVE.DO_NOT_BLOCK); // Win32
setText(title);
this.mode = mode;
@ -343,7 +343,8 @@ public class ProcedureListDlg extends CaveSWTDialog {
public void run() {
TreeItem[] items = treeViewer.getTree().getItems();
if (items != null && items.length > 0)
treeViewer.getTree().showItem(items[items.length - 1]);
treeViewer.getTree().showItem(
items[items.length - 1]);
treeViewer.reveal(find);
}
});
@ -401,7 +402,7 @@ public class ProcedureListDlg extends CaveSWTDialog {
cancelBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
shell.dispose();
close();
}
});
@ -420,13 +421,6 @@ public class ProcedureListDlg extends CaveSWTDialog {
}
}
/**
* @return the fileName
*/
public LocalizationFile getSelectedFile() {
return selectedFile;
}
/**
* @return the fileName
*/
@ -492,21 +486,22 @@ public class ProcedureListDlg extends CaveSWTDialog {
+ " already exists. Overwrite anyways?");
if (result == true) {
fileName = procedureTF.getText();
shell.dispose();
close();
}
}
} else {
fileName = procedureTF.getText();
shell.dispose();
close();
}
} else if (mode == Mode.OPEN) {
fileName = procedureTF.getText();
if (tmp instanceof ProcedureTree) {
// it must be a procedure tree, that is what the content
// provider uses internally
selectedFile = ((ProcedureTree) tmp).getFile();
LocalizationFile selectedFile = ((ProcedureTree) tmp).getFile();
setReturnValue(selectedFile);
}
shell.dispose();
close();
} else if (mode == Mode.DELETE) {
TreeItem[] selection = treeViewer.getTree().getSelection();
@ -520,9 +515,11 @@ public class ProcedureListDlg extends CaveSWTDialog {
if (tmp instanceof ProcedureTree) {
// it must be a procedure tree, that is what the content
// provider uses internally
selectedFile = ((ProcedureTree) tmp).getFile();
LocalizationFile selectedFile = ((ProcedureTree) tmp)
.getFile();
setReturnValue(selectedFile);
}
shell.dispose();
close();
}
}
}

View file

@ -27,6 +27,7 @@ import org.eclipse.swt.widgets.Display;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.viz.ui.cmenu.AbstractRightClickAction;
import com.raytheon.viz.ui.color.IBackgroundColorChangedListener.BGColorMode;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
import com.raytheon.viz.ui.dialogs.colordialog.BackgroundColorDialog;
/**
@ -38,6 +39,7 @@ import com.raytheon.viz.ui.dialogs.colordialog.BackgroundColorDialog;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 1, 2009 mschenke Initial creation
* Oct 16, 2012 1229 rferrel Changes for non-blocking BackgroundColorDialog.
*
* </pre>
*
@ -67,12 +69,18 @@ public class SetBackgroundColorAction extends AbstractRightClickAction {
@Override
public void run() {
BackgroundColorDialog dialog = dialogMap.get(container);
if (dialog == null) {
if (dialog == null || dialog.getShell() == null || dialog.isDisposed()) {
dialog = new BackgroundColorDialog(Display.getCurrent()
.getActiveShell(), container, mode);
dialogMap.put(container, dialog);
dialog.setCloseCallback(new ICloseCallback() {
@Override
public void dialogClosed(Object returnValue) {
dialogMap.remove(container);
}
});
dialog.open();
dialogMap.remove(container);
} else {
dialog.bringToTop();
}

View file

@ -38,6 +38,7 @@ import com.raytheon.viz.ui.dialogs.colordialog.BackgroundColorDialog;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jan 7,2008 Dan Fitch Initial Creation
* Oct 16, 2012 1229 rferrel Changed for non-blocking BackgroundColorDialog.
*
* </pre>
*
@ -50,11 +51,10 @@ public class SetBackgroundColor extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (dialog == null) {
if (dialog == null || dialog.getShell() == null || dialog.isDisposed()) {
dialog = new BackgroundColorDialog(
HandlerUtil.getActiveShell(event), null, BGColorMode.GLOBAL);
dialog.open();
dialog = null;
} else {
dialog.bringToTop();
}

View file

@ -48,6 +48,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 1/8/2008 706 Dan Fitch Initial Creation.
* 10/16/2012 1229 rferrel Make dialog non-blocking.
*
* </pre>
*
@ -108,7 +109,8 @@ public class BackgroundColorDialog extends CaveSWTDialog implements
*/
public BackgroundColorDialog(Shell parent, IDisplayPaneContainer container,
BGColorMode mode) {
super(parent, SWT.DIALOG_TRIM | SWT.MIN, CAVE.PERSPECTIVE_INDEPENDENT);
super(parent, SWT.DIALOG_TRIM | SWT.MIN, CAVE.PERSPECTIVE_INDEPENDENT
| CAVE.DO_NOT_BLOCK);
setText("Set Background Color");
this.container = container;
this.mode = mode;

View file

@ -4,6 +4,7 @@
# ------------ ---------- ----------- --------------------------
# 20120905 1090 jkorman Corrected several patterns as well as
# combining similar patterns.
#20121009 1252 jkorman Corrections and additions from Dale Morris.
#***************************************************************
# AWIPS 1 PATTERN GRAPHIC ^[PQ].* /redbook/Raw
# PGNA00 KWNS 010001 !redbook 1_1/NMCGPHMCD/MCDSUM/PXSF001CN/20110201 0001
@ -64,9 +65,8 @@ HDS ^(Z[DE]W[A-D][89]8) KWNO (..)(..)(..) /m0 !(grib|grib2)/[^/]*/([^/]*)/#([^/]
# AWIPS1: GRID ^[YZ].[A-WYZ].*KWB.* /Grid/SBN/Raw
# YUWG97 KWBG 010600 /mRUC2 !grib/ncep/RUC2/#236/201102010600/F006/UGRD/tropopause/
HDS ^([YZ].[A-WYZ].{1,3}) (KWB.) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\5.%Y%m%d%H
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
# AWIPS1: GRID ^YEI.[89]8.*KWNH /Grid/SBN/Raw
#!MAINT! This line is a superset duplicate of line 16 (which only triggers on /ncep/) - However cannot find any data matching this pattern.
@ -75,7 +75,7 @@ HDS ^(YEI.[89]8) KWNH (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-
# This line enables the regional rfc qpf gribs
HDS ^(YEI.[89]8) (KALR|KFWR|KKRF|KMSR|KORN|KPTR|KRHA|KRSA|KSTR|KTAR|KTIR|KTUA) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/[^/]*/([^/]*)
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)/\3/\4/\7/GRID\8/(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/\7/GRID\8/\(10)Z_\(11)_\(12)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
# AWIPS1: GRID ^ZEX.98.*KWNH /Grid/SBN/Raw
@ -266,19 +266,21 @@ ANY ^([LM].[AB].{1,3}) (KWBS) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/
# *** This is only be available during an active storm. Verified 20120828 - Hurricane Isaac.
ANY ^(LGXT[0-2][0-9]) KNHC (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\3\4Z_SURGE-\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
# AWIPS1: GRID ^LGXP[0-9][0-9].*KNHC /Grid/SBN/rawGrib2
# *** This is only be available during an active storm. Verified 20120828 - Hurricane Isaac.
ANY ^(LGXP[0-9][0-9]) KNHC (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
FILE -overwrite -log -close -edex /data_store/grib2/(\2:yyyy)(\2:mm)\2/\3/TPC/\3\4Z_SURGE-\1_KNHC_\2\3\4_(seq).grib2.%Y%m%d%H
# AWIPS1: GRID ^LDIZ11.*KWNS /Grid/SBN/rawGrib2
# LDIZ11 KWNS 180039 !grib2/ncep/0/#202/FHRS//LVL
ANY ^(LDIZ1[1-9]|LDIZ2[7-9]|LDIZ3[0789]|LDIZ4[0-1]) (KWNS) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/[^/]*/#([^/]*)/([^/]*)
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/SPC/GRID\7/\4/\5Z_\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
#ANY ^(LDIZ1[1-9]|LDIZ2[7-9]|LDIZ3[0789]|LDIZ4[0-1]) (KWNS) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/[^/]*/#([^/]*)/([^/]*)
# FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/SPC/GRID\7/\4\5Z-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
ANY ^(LDIZ1[1-9]|LDIZ2[7-9]|LDIZ3[0789]|LDIZ4[0-1]) (KWNS) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/[^/]*/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/\6/(\3:yyyy)(\3:mm)\3/\4/SPC/GRID\7/\9Z_\(10)_\(11)-\1_\2_\3\4\5_(seq).\6.%Y%m%d%H
# AWIPS1: GRID ^ZETA98.(KTUA|PACR|KSTR|KRSA|KORN|KRHA|KKRF|KMSR|KTAR|KPTR|KTIR|KALR|KFWR) /Grid/SBN/HydroRaw
# ZETA98 KTAR 012300 /mNWS_160 !grib/nws/NWS_160/#255/201102012200/F001/APCP/sfc/
@ -297,7 +299,7 @@ ANY ^(ZDIA98) (....) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9
# AWIPS1: POINT ^IUAK01.* /ispan/bufr/profiler
# IUAK01 PANC 012300
HDS ^(IUPT0[1-4]|IUPT40|IUAK01) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/profiler/(\3:yyyy)(\3:mm)3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
FILE -overwrite -log -close -edex /data_store/profiler/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
# AWIPS1: POINT ^IUSZ[4-9][0-9].* /ispan/bufr/raob
# IUSZ53 KWBC 020205
@ -325,8 +327,20 @@ IDS|DDPLUS ^(T[BCHPRTWXY][A-Z]{2}[0-9]{2}) ([A-Z]{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/text/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d
# summaries
IDS|DDPLUS ^(A.{5}) (.{4}) (..)(..)(..)
#IDS|DDPLUS ^(A.{5}) (.{4}) (..)(..)(..)
# FILE -overwrite -log -close -edex /data_store/summaries/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# Change submitted by Dale Morris
IDS|DDPLUS ^(A[AC-FH-RT-Z]..[0-9][0-9]) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/summaries/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(AG..[0-9][0-9]) (KWB.) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/summaries/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
#shef
IDS|DDPLUS ^(A[BS]..[0-9][0-9]) (....) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/shef/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(AG..[0-9][0-9]) (KALR|KFWR|KKRF|KMSR|KORN|KPTR|KRHA|KRSA|KSTR|KTAR|KTIR|KTUR|KTUA)(..)(..)(..)
FILE -overwrite -log -close -edex /data_store/shef/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(SR..[0-9][0-9]) (....) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/shef/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# fire wx spot fcst reports
IDS|DDPLUS ^(B.{5}) (.{4}) (..)(..)(..)
@ -337,11 +351,33 @@ IDS|DDPLUS ^(C.{5}) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/climate/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# forecast
IDS|DDPLUS ^(F.{5}) (.{4}) (..)(..)(..)
#IDS|DDPLUS ^(F.{5}) (.{4}) (..)(..)(..)
# FILE -overwrite -log -close -edex /data_store/forecast/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# Change submitted by Dale Morris
IDS|DDPLUS ^(F[A-FH-NP-Z]..[0-9][0-9]) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/forecast/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(FOUS[1-589].) (....) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/forecast/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
#shef forecasts
IDS|DDPLUS ^(FG..[0-9][0-9]) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/shef/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(FOUS[67].) (....) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/shef/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# misc adm messages
IDS|DDPLUS ^(N.{5}) (.{4}) (..)(..)(..)
#IDS|DDPLUS ^(N.{5}) (.{4}) (..)(..)(..)
# FILE -overwrite -log -close -edex /data_store/misc_adm_messages/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
#
# separate out svrwx lsr and GSM misc adm messages
IDS|DDPLUS ^(N[A-VYZ]....) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/misc_adm_messages/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(NWUS[01346-9].) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/misc_adm_messages/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(NWUS5.) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/lsr/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(NWUS2.) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/svrwx/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(NXUS[0-57-9].) (....) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/misc_adm_messages/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# xml
@ -435,9 +471,10 @@ IDS|DDPLUS ^(V.{5}) (.{4}) (..)(..)(..)
# ^(WT)(NT|PZ)\d{2} KNHC.*
# ^(WTP)A\d{2} PHFO.*
# ^(NWU)S\d{2} KWNS.*
#
#
# Change suggested by Dale Morris
IDS|DDPLUS ^(W.....) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/warning/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
FILE -overwrite -log -close -edex /data_store/wwa/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# AWIPS1: TEXT ^WAUS4[1-6].* /aiv/advisories/Raw
# WAUS44 KKCI 031822 AAA /pWA4T
@ -469,6 +506,19 @@ IDS|DDPLUS ^(WSUS3[123]) (.{4}) (..)(..)(..)
IDS|DDPLUS ^(W[ACSV]US[04][1-6]) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/nonconvsigment/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# airmet
IDS|DDPLUS ^(WAUS4[1-6]) (.{4}) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/airmet/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# intlsigmets
IDS|DDPLUS ^(W[CSV]PA((0[1-9])|(1[1-3]))) (PHFO) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/intlsigmet/(\6:yyyy)(\6:mm)\6/\7/\4/\1_\5_\6\7\8_(seq).%Y%m%d%H
IDS|DDPLUS ^(W[CSV]NT((0[1-9])|(1[1-3]))) (KKCI) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/intlsigmet/(\6:yyyy)(\6:mm)\6/\7/\4/\1_\5_\6\7\8_(seq).%Y%m%d%H
IDS|DDPLUS ^(WAAK4[789]) (PAWU) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/intlsigmet/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
IDS|DDPLUS ^(W[CSV]PN0[1-6]) (KKCI) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/intlsigmet/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d%H
# already included in text pattern
#IDS|DDPLUS ^(S[IMN]V[DCE]..|SSV[DX]..) (....) (..)(..)(..)
# FILE -overwrite -log -close /data_store/sfcobs/\3/\4/\1_\2_\3\4\5_(seq).%Y%m%d
@ -508,8 +558,9 @@ ANY ^(IUAX0[12]) (....) (..)(..)(..)
EXP ^/data_store/acars/acars_raw/(acars_decrypted.*)
FILE -overwrite -log -close -edex /data_store/acars/acars_decrypted/\1.acars.%Y%m%d%H
ANY ^(IUA[^X]0[12]) (....) (..)(..)(..)
# Need to make sure that IUAK and IUAX are disallowed.
# IUAK are Alaskan profilers and IUAX has encrypted ACARS handled above!
ANY ^(IUA[^XK]0[12]) (....) (..)(..)(..)
FILE -overwrite -close -edex /data_store/acars/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
# AWIPS1: POINT ^JSAT98.*KKCI.* /aiv/ncwf/Raw
@ -554,7 +605,7 @@ HDS ^(JUTX0[1-9]) (....) (..)(..)(..)
HDS ^(IUTX0[1-9]) (....) (..)(..)(..)
FILE -overwrite -log -close -edex /data_store/poessndg/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
## HDW Bufr Patters ##
## HDW Bufr Patterns ##
# From [east|west]HDWBufrAcq_patterns.template #
### From Automation ###