Issue #1926 somewhat free up UI thread on scan startup

Change-Id: I51e704efa3df6abb6ec84b68d8dfcb46bac61d7b

Former-commit-id: e06b6e7452 [formerly eabd8e2ab2] [formerly e917657497] [formerly e7ef0a3b87 [formerly e917657497 [formerly dcb9b18777981409d109ecc314873914c8d27fbf]]]
Former-commit-id: e7ef0a3b87
Former-commit-id: d579752889cfbfde3f676cee39986758df11a17b [formerly 129feaee97]
Former-commit-id: 7e6149c026
This commit is contained in:
Nate Jensen 2013-04-23 13:45:25 -05:00
parent c643fb43ba
commit 71e5aafa7e
7 changed files with 142 additions and 60 deletions

View file

@ -22,8 +22,7 @@
<displayList> <displayList>
<displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor"> <descriptor xsi:type="mapDescriptor">
<resource> <resource>
<resourceType>PLAN_VIEW</resourceType>
<loadProperties loadWithoutData="false"> <loadProperties loadWithoutData="false">
<capabilities> <capabilities>
<capability xsi:type="colorMapCapability"> <capability xsi:type="colorMapCapability">
@ -31,6 +30,7 @@
</capability> </capability>
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0"/> <capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0"/>
</capabilities> </capabilities>
<resourceType>PLAN_VIEW</resourceType>
<perspectiveProperty xsi:type="d2dLoadProperties" overlayMatchTolerance="1"/> <perspectiveProperty xsi:type="d2dLoadProperties" overlayMatchTolerance="1"/>
</loadProperties> </loadProperties>
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true"> <properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">

View file

@ -22,10 +22,10 @@
<displayList> <displayList>
<displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor"> <descriptor xsi:type="mapDescriptor">
<resource> <resource>
<resourceType>PLAN_VIEW</resourceType>
<loadProperties xsi:type="gridLoadProperties" <loadProperties xsi:type="gridLoadProperties"
displayType="CONTOUR" > displayType="CONTOUR" >
<resourceType>PLAN_VIEW</resourceType>
</loadProperties> </loadProperties>
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" <properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false"
isVisible="true"> isVisible="true">

View file

@ -22,8 +22,7 @@
<displayList> <displayList>
<displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor"> <descriptor xsi:type="mapDescriptor">
<resource> <resource>
<resourceType>PLAN_VIEW</resourceType>
<loadProperties loadWithoutData="true"> <loadProperties loadWithoutData="true">
<capabilities> <capabilities>
<capability xsi:type="colorMapCapability"> <capability xsi:type="colorMapCapability">
@ -31,6 +30,7 @@
</capability> </capability>
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0"/> <capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0"/>
</capabilities> </capabilities>
<resourceType>PLAN_VIEW</resourceType>
<perspectiveProperty xsi:type="d2dLoadProperties" overlayMatchTolerance="1"/> <perspectiveProperty xsi:type="d2dLoadProperties" overlayMatchTolerance="1"/>
</loadProperties> </loadProperties>
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true"> <properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">

View file

@ -22,8 +22,7 @@
<displayList> <displayList>
<displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<descriptor xsi:type="mapDescriptor"> <descriptor xsi:type="mapDescriptor">
<resource> <resource>
<resourceType>PLAN_VIEW</resourceType>
<loadProperties loadWithoutData="true"> <loadProperties loadWithoutData="true">
<capabilities> <capabilities>
<capability xsi:type="colorMapCapability"> <capability xsi:type="colorMapCapability">
@ -31,6 +30,7 @@
</capability> </capability>
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0"/> <capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0"/>
</capabilities> </capabilities>
<resourceType>PLAN_VIEW</resourceType>
<perspectiveProperty xsi:type="d2dLoadProperties" overlayMatchTolerance="1"/> <perspectiveProperty xsi:type="d2dLoadProperties" overlayMatchTolerance="1"/>
</loadProperties> </loadProperties>
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true"> <properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">

View file

@ -22,40 +22,36 @@ package com.raytheon.uf.viz.monitor.scan;
import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.monitor.scan.config.SCANConfigEnums.ScanTables; import com.raytheon.uf.common.monitor.scan.config.SCANConfigEnums.ScanTables;
/**
*
* Action for launching the Scan Resource with Cell data
*
* <pre>
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 01/01/09 Initial Creation.
* 04/23/13 1926 njensen Use ScanStarterJob
*
*
* </pre>
*
* @version 1.0
*/
public class CellAction extends AbstractHandler { public class CellAction extends AbstractHandler {
@Override @Override
public Object execute(ExecutionEvent arg0) throws ExecutionException { public Object execute(ExecutionEvent arg0) throws ExecutionException {
String icao = arg0.getParameter("icao"); String icao = arg0.getParameter("icao");
System.out.println("Activating/Action for Cell table..."); ScanStarterJob job = new ScanStarterJob(icao, ScanTables.CELL);
final String ficao = icao; job.setSystem(false);
Display.getDefault().asyncExec(new Runnable() { job.schedule();
public void run() {
Shell shell = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell();
ScanMonitor scan = ScanMonitor.getInstance();
// first time initialization, or re-init
if (scan.icaos.size() == 0
|| !scan.icaos.contains(ficao)) {
scan.launchSplash(shell);
scan.setup(ficao);
}
scan.launchDialog(shell, ficao, ScanTables.CELL);
}
});
return null; return null;
} }
} }

View file

@ -22,41 +22,35 @@ package com.raytheon.uf.viz.monitor.scan;
import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.monitor.scan.config.SCANConfigEnums.ScanTables; import com.raytheon.uf.common.monitor.scan.config.SCANConfigEnums.ScanTables;
/**
*
* Action for launching the Scan Resource with DMD data
*
* <pre>
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 01/01/09 Initial Creation.
* 04/23/13 1926 njensen Use ScanStarterJob
*
* </pre>
*
* @version 1.0
*/
public class DmdAction extends AbstractHandler { public class DmdAction extends AbstractHandler {
@Override @Override
public Object execute(ExecutionEvent arg0) throws ExecutionException { public Object execute(ExecutionEvent arg0) throws ExecutionException {
String icao = arg0.getParameter("icao"); String icao = arg0.getParameter("icao");
ScanStarterJob job = new ScanStarterJob(icao, ScanTables.DMD);
System.out.println("Activating/Action for DMD table..."); job.setSystem(false);
final String ficao = icao; job.schedule();
Display.getDefault().asyncExec(new Runnable() {
public void run() {
Shell shell = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell();
ScanMonitor scan = ScanMonitor.getInstance();
// first time initialization, or re-init
if (scan.icaos.size() == 0
|| !scan.icaos.contains(ficao)) {
scan.launchSplash(shell);
scan.setup(ficao);
}
scan.launchDialog(shell, ficao, ScanTables.DMD);
}
});
return null; return null;
} }
} }

View file

@ -0,0 +1,92 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.monitor.scan;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.common.monitor.scan.config.SCANConfigEnums.ScanTables;
import com.raytheon.uf.viz.core.VizApp;
/**
* A job that sets up the ScanMonitor then asks the UI thread to open the
* associated dialog. By running the monitor's setup() on this job, the requests
* to the server will not be blocking the UI thread.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 23, 2013 njensen Initial creation
*
* </pre>
*
* @author njensen
* @version 1.0
*/
public class ScanStarterJob extends Job {
private String icao;
private ScanTables table;
public ScanStarterJob(String icao, ScanTables table) {
super("Starting SCAN " + table.name());
this.icao = icao;
this.table = table;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.
* IProgressMonitor)
*/
@Override
protected IStatus run(IProgressMonitor monitor) {
final ScanMonitor scan = ScanMonitor.getInstance();
// first time initialization, or re-init
if (scan.icaos.size() == 0 || !scan.icaos.contains(icao)) {
// scan.launchSplash(shell);
scan.setup(icao);
}
VizApp.runAsync(new Runnable() {
@Override
public void run() {
Shell shell = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell();
scan.launchDialog(shell, icao, table);
}
});
return Status.OK_STATUS;
}
}