diff --git a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/GriddedTimingSubsetTab.java b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/GriddedTimingSubsetTab.java
index 72aa04b676..ee658ecf7b 100644
--- a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/GriddedTimingSubsetTab.java
+++ b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/GriddedTimingSubsetTab.java
@@ -20,6 +20,8 @@
package com.raytheon.uf.viz.datadelivery.subscription.subset;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.eclipse.swt.SWT;
@@ -37,26 +39,27 @@ import com.raytheon.viz.ui.widgets.duallist.DualListConfig;
/**
* {@link IDataTimingSubsetView} implementation for Gridded data.
- *
+ *
*
- *
+ *
* SOFTWARE HISTORY
- *
+ *
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 22, 2012 0743 djohnson Initial creation
* Aug 29, 2012 0223 mpduff Removed cycle times.
* Sep 07, 2012 0684 mpduff Clear fcstHour selection before setting new selection.
* Sep 24, 2012 1209 djohnson Display text when there are no available cycles, move validation to presenter.
+ * Jan 10, 2013 1444 mpduff Add updateSelectedForecastHours method.
*
*
- *
+ *
* @author djohnson
* @version 1.0
*/
-public class GriddedTimingSubsetTab extends DataTimingSubsetTab
- implements IGriddedDataTimingSubsetView {
+public class GriddedTimingSubsetTab extends DataTimingSubsetTab implements
+ IGriddedDataTimingSubsetView {
/** Forecast dual list */
private DualList fcstDualList;
@@ -68,14 +71,14 @@ public class GriddedTimingSubsetTab extends DataTimingSubsetTab
/**
* Constructor.
- *
+ *
* @param parentComp
* @param dataSet
* @param callback
* @param shell
*/
- public GriddedTimingSubsetTab(Composite parentComp,
- IDataSize callback, Shell shell) {
+ public GriddedTimingSubsetTab(Composite parentComp, IDataSize callback,
+ Shell shell) {
super(parentComp, callback, shell);
}
@@ -111,7 +114,7 @@ public class GriddedTimingSubsetTab extends DataTimingSubsetTab
}
/**
- *
+ *
* {@inheritDoc}
*/
@Override
@@ -132,8 +135,45 @@ public class GriddedTimingSubsetTab extends DataTimingSubsetTab
}
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void setAvailableForecastHours(List forecastHours) {
fcstDualList.setFullList(new ArrayList(forecastHours));
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void updateSelectedForecastHours(List fcstHours) {
+ List selectedHrs = new ArrayList();
+ String[] selectedItems = fcstDualList.getSelectedSelection();
+
+ // Add the saved hours
+ for (String fcstHr : fcstDualList.getAvailableListItems()) {
+ if (fcstHours.contains(fcstHr)) {
+ selectedHrs.add(fcstHr);
+ }
+ }
+
+ // Add in the previously selected hours
+ selectedHrs.addAll(Arrays.asList(selectedItems));
+
+ // Sort the hours
+ List intList = new ArrayList();
+ for (String hr : selectedHrs) {
+ intList.add(Integer.parseInt(hr));
+ }
+
+ Collections.sort(intList);
+
+ selectedHrs.clear();
+ for (int i : intList) {
+ selectedHrs.add(String.valueOf(i));
+ }
+ fcstDualList.selectItems(selectedHrs.toArray(new String[selectedHrs
+ .size()]));
+ }
}
diff --git a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java
index 0483e92c85..e9c6a9e22f 100644
--- a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java
+++ b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/SubsetManagerDlg.java
@@ -53,7 +53,6 @@ import com.raytheon.uf.common.datadelivery.registry.GriddedDataSet;
import com.raytheon.uf.common.datadelivery.registry.Parameter;
import com.raytheon.uf.common.datadelivery.registry.Subscription;
import com.raytheon.uf.common.datadelivery.registry.Time;
-import com.raytheon.uf.common.datadelivery.registry.handlers.DataDeliveryHandlers;
import com.raytheon.uf.common.datadelivery.request.DataDeliveryPermission;
import com.raytheon.uf.common.datadelivery.retrieval.util.DataSizeUtils;
import com.raytheon.uf.common.geospatial.MapUtil;
@@ -122,6 +121,7 @@ import com.raytheon.viz.ui.presenter.IDisplay;
* Dec 18, 2012 1439 mpduff Redo subscription name validation.
* Jan 02, 2012 1345 djohnson Use gui thread task executor.
* Jan 04, 2012 1420 mpduff Pass the subscription in to the GriddedTimingSelectionDlg.
+ * Jan 10, 2013 1444 mpduff Fix the loading of saved subsets from the saved subset tab.
*
*
* @author mpduff
@@ -830,7 +830,8 @@ public abstract class SubsetManagerDlg) SubsetFileManager.getInstance()
- .loadSubset(subsetName);
+ SubsetXML loadedSubsetXml = (SubsetXML) SubsetFileManager
+ .getInstance().loadSubset(subsetName);
- if (!spatialTabControls.getRegionSaveText().isEmpty()) {
- spatialTabControls.resetRegionSaveText();
- }
-
- try {
- // TODO: How else other can casting?
- this.dataSet = (DATASET) DataDeliveryHandlers.getDataSetHandler()
- .getByNameAndProvider(subsetXml.getDatasetName(),
- subsetXml.getProviderName());
-
- setText(DD_SUBSET_MANAGER + dataSet.getDataSetName());
- populate();
-
- getShell().layout();
- getShell().pack();
- } catch (RegistryHandlerException e) {
- statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
- }
+ updateSelections(loadedSubsetXml);
}
/**
@@ -884,7 +868,17 @@ public abstract class SubsetManagerDlg loadedSubsetXml) {
+ ArrayList vertList = loadedSubsetXml.getVerticalList();
+ vTab.updateSettings(vertList);
+
+ TIMEXML time = loadedSubsetXml.getTime();
+ timingTabControls.updateSettings(time);
}
/**
diff --git a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/VerticalSubsetTab.java b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/VerticalSubsetTab.java
index 9d6065b125..a9150ccb7f 100644
--- a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/VerticalSubsetTab.java
+++ b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/VerticalSubsetTab.java
@@ -65,6 +65,7 @@ import com.raytheon.uf.viz.datadelivery.subscription.subset.xml.VerticalXML;
* Oct 4, 2012 1245 jpiatt Correct isValid method & code clean up.
* Nov 19, 2012 1166 djohnson Clean up JAXB representation of registry objects.
* Dec 10, 2012 1259 bsteffen Switch Data Delivery from LatLon to referenced envelopes.
+ * Jan 10, 2013 1444 mpduff Add updateSettings method.
*
*
*
@@ -575,4 +576,27 @@ public class VerticalSubsetTab extends SubsetTab implements
}
}
}
+
+ /**
+ * Update the selected parameters and levels.
+ *
+ * @param vertList
+ */
+ public void updateSettings(ArrayList vertList) {
+ for (VerticalXML vert : vertList) {
+ for (ExpandItem item : expandBar.getItems()) {
+ LevelParameterSelection lps = (LevelParameterSelection) item
+ .getControl();
+ if (vert.getLayerType().equalsIgnoreCase(item.getText())) {
+ if (vert.getLevels() != null && !vert.getLevels().isEmpty()) {
+ lps.selectLevels(vert.getLevels());
+ }
+ if (vert.getParameterList() != null
+ && !vert.getParameterList().isEmpty()) {
+ lps.selectParameters(vert.getParameterList());
+ }
+ }
+ }
+ }
+ }
}
diff --git a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/DataTimingSubsetPresenter.java b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/DataTimingSubsetPresenter.java
index 9908c31f9b..73c123dbae 100644
--- a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/DataTimingSubsetPresenter.java
+++ b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/DataTimingSubsetPresenter.java
@@ -41,7 +41,8 @@ import com.raytheon.uf.viz.datadelivery.subscription.subset.xml.TimeXML;
* ------------ ---------- ----------- --------------------------
* Aug 15, 2012 0743 djohnson Initial creation
* Aug 29, 2012 0223 mpduff Changed as result of renamed objects.
- * Sep 24, 2012 1209 djohnson Sub-classes provide isValid() implementations.
+ * Sep 24, 2012 1209 djohnson Sub-classes provide isValid() implementations.
+ * Jan 10, 2013 1444 mpduff Add updateSettings method.
*
*
*
@@ -91,14 +92,14 @@ public abstract class DataTimingSubsetPresenter
*
@@ -50,12 +51,13 @@ import com.raytheon.uf.viz.datadelivery.subscription.subset.xml.SpecificDateTime
* @version 1.0
*/
-public class GriddedTimingSubsetPresenter extends
+public class GriddedTimingSubsetPresenter
+ extends
DataTimingSubsetPresenter {
/**
* Constructor.
- *
+ *
* @param dataSet
* @param view
*/
@@ -80,7 +82,7 @@ public class GriddedTimingSubsetPresenter extends
}
/**
- *
+ *
* {@inheritDoc}
*/
@Override
@@ -98,7 +100,7 @@ public class GriddedTimingSubsetPresenter extends
/**
* Get the selected forecast hours
- *
+ *
* @return the selected forecast hours
*/
public String[] getSelectedFcstHours() {
@@ -118,7 +120,15 @@ public class GriddedTimingSubsetPresenter extends
@Override
public boolean isValid() {
String[] forecastHours = view.getSelectedFcstHours();
-
+
return !CollectionUtil.isNullOrEmpty(forecastHours);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void updateSettings(SpecificDateTimeXML time) {
+ view.updateSelectedForecastHours(time.getFcstHours());
+ }
}
diff --git a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/IGriddedDataTimingSubsetView.java b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/IGriddedDataTimingSubsetView.java
index 8f313eb123..ad0eeca954 100644
--- a/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/IGriddedDataTimingSubsetView.java
+++ b/cave/com.raytheon.uf.viz.datadelivery/src/com/raytheon/uf/viz/datadelivery/subscription/subset/presenter/IGriddedDataTimingSubsetView.java
@@ -20,7 +20,6 @@
package com.raytheon.uf.viz.datadelivery.subscription.subset.presenter;
import java.util.List;
-import java.util.Set;
import com.raytheon.uf.common.datadelivery.registry.GriddedDataSet;
@@ -34,7 +33,8 @@ import com.raytheon.uf.common.datadelivery.registry.GriddedDataSet;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Aug 22, 2012 0743 djohnson Initial creation
- * Aug 29, 2012 0223 mpduff Removed cycles.
+ * Aug 29, 2012 0223 mpduff Removed cycles.
+ * Jan 10, 2012 1444 mpduff Add updateSelectedForecastHours method.
*
*
* @author djohnson
@@ -59,4 +59,11 @@ public interface IGriddedDataTimingSubsetView extends IDataTimingSubsetView {
* @param fcstHours
*/
void setAvailableForecastHours(List fcstHours);
+
+ /**
+ * Update the selected forecast hours.
+ *
+ * @param fcstHours
+ */
+ void updateSelectedForecastHours(List fcstHours);
}