13.5.1-1 baseline

Former-commit-id: 6384018950 [formerly 998961612c] [formerly 6384018950 [formerly 998961612c] [formerly fe872355a7 [formerly 72a49a353cb22c89c9aa19ed1f4a681c3e89d5f3]]]
Former-commit-id: fe872355a7
Former-commit-id: 0aab285b8a [formerly 30ba1d634e]
Former-commit-id: 146c5e8940
This commit is contained in:
Steve Harris 2013-06-10 15:17:17 -04:00
parent e9904efd7f
commit 859965fc9d
2893 changed files with 59440 additions and 91163 deletions

View file

@ -85,6 +85,9 @@
</copy>
<copy todir="${buildDirectory}/plugins">
<fileset dir="${buildDirectory}/../../" includes="org.springframework*/**"/>
</copy>
<copy todir="${buildDirectory}/plugins">
<fileset dir="${buildDirectory}/../../" includes="org.quartz*/**"/>
</copy>
<copy todir="${buildDirectory}/plugins">
<fileset dir="${buildDirectory}/../../" includes="com.raytheon.uf.common.util*/**"/>

View file

@ -155,4 +155,10 @@
install-size="0"
version="0.0.0"/>
<plugin
id="org.quartz"
download-size="0"
install-size="0"
version="0.0.0"/>
</feature>

View file

@ -15,7 +15,8 @@ Export-Package: com.raytheon.rcm.coll,
Require-Bundle: com.raytheon.rcm.lib;bundle-version="1.0.0",
org.apache.commons.logging;bundle-version="1.0.4",
org.springframework;bundle-version="2.5.6",
org.itadaki.bzip2;bundle-version="0.9.1"
org.itadaki.bzip2;bundle-version="0.9.1",
org.quartz;bundle-version="1.8.6"
Import-Package: com.raytheon.uf.common.util,
org.apache.log4j,
org.junit

Binary file not shown.

View file

@ -1,4 +1,4 @@
<project default="p2.build" basedir=".">
<project default="main" basedir=".">
<!-- TODO: Verify These Properties References An Actual Directory. -->
<property name="eclipse.dir"
@ -14,9 +14,9 @@
<property name="workspace.dir" value="${basedir}/../" />
<property name="pde.build.script"
value="org.eclipse.pde.build_3.6.1.R36x_v20100823/scripts/build.xml" />
value="org.eclipse.pde.build_3.8.2.v20121114-140810/scripts/build.xml" />
<property name="eclipse.launcher.jar"
value="org.eclipse.equinox.launcher_1.1.0.v20100507.jar" />
value="org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar" />
<!-- Verify That We Have Access To A Copy Of Eclipse -->
<target name="verify">
@ -120,13 +120,6 @@
includes="it.*/**" />
</copy>
<!-- END: Copy The Plugins -->
<!-- Copy The Features -->
<echo message="FEATURES: *viz*feature*" />
<copy todir="${basedir}/cave/p2/features">
<fileset dir="${workspace.dir}"
includes="*viz*feature*/**" />
</copy>
</target>
<!-- Cleans Up Any Temporary Directories -->
@ -154,7 +147,18 @@
<param name="feature"
value="com.raytheon.viz.feature.awips" />
<param name="omit"
value="false" />
value="true" />
</antcall>
<!--
we will still build this for the MSFT Windows CAVE.
-->
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.uf.common.base.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.uf.viz.base.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature"
@ -164,6 +168,10 @@
<param name="feature"
value="com.raytheon.uf.viz.common.core.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.uf.viz.localization.perspective.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.uf.viz.core.feature" />
@ -188,10 +196,6 @@
<param name="feature"
value="com.raytheon.uf.viz.d2d.core.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.uf.viz.localization.perspective.feature" />
</antcall>
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.viz.radar.feature" />
@ -312,7 +316,32 @@
<antcall target="cleanup.features" />
</target>
<target name="wa-build" depends="p2.build" description="Builds work assignment specific features after the main build">
<for param="wa.feature.list.file">
<fileset dir="${basedir}" includes="*-wa-build.properties" />
<sequential>
<var name="wa.features" unset="true" />
<property file="@{wa.feature.list.file}" />
<for list="${wa.features}" param="wa.feature">
<sequential>
<antcall target="p2.build.repo">
<param name="feature" value="@{wa.feature}" />
</antcall>
</sequential>
</for>
</sequential>
</for>
</target>
<target name="main" depends="clean, p2.build, wa-build" />
<target name="p2.build.repo">
<!-- Copy The Feature -->
<copy todir="${basedir}/cave/p2/features">
<fileset dir="${workspace.dir}"
includes="${feature}/**" />
</copy>
<!-- Update The Feature -->
<property name="process.feature.tool"
value="${workspace.dir}/build/tools/ProcessFeature.jar" />
@ -410,20 +439,6 @@
</then>
</if>
<!-- Remove 'com.raytheon.uf.viz.eclipse.feature' -->
<if>
<available
file="${basedir}/cave/p2/features/com.raytheon.uf.viz.eclipse.feature"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset
dir="${basedir}/cave/p2/features/com.raytheon.uf.viz.eclipse.feature"
/>
</delete>
</then>
</if>
<!-- Remove 'com.raytheon.uf.viz.feature.alertviz' -->
<if>
<available
@ -451,7 +466,19 @@
</delete>
</then>
</if>
<!-- Remove 'com.raytheon.uf.common.base.feature' -->
<if>
<available
file="${basedir}/cave/p2/features/com.raytheon.uf.common.base.feature"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset
dir="${basedir}/cave/p2/features/com.raytheon.uf.common.base.feature"
/>
</delete>
</then>
</if>
<!-- Remove 'com.raytheon.uf.viz.collaboration.product.feature' -->
<if>
<available

View file

@ -18,6 +18,21 @@
# further licensing information.
##
#
# Port of A1 HazardsTable.py.
#
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# ??/??/?? ???????? Initial Creation.
# 05/14/13 1842 dgilling Use GFEVtecUtil to handle NEW
# ETN assignment.
#
#
import time, getopt, sys, copy, string, logging
import VTECTableUtil, VTECTable
import TimeRange, AbsTime, ActiveTableVtec
@ -28,6 +43,7 @@ from com.raytheon.uf.common.dataplugin.gfe.reference import ReferenceID
from com.raytheon.uf.common.dataplugin.gfe.discrete import DiscreteKey
from com.raytheon.uf.common.time import TimeRange as JavaTimeRange
from com.raytheon.viz.gfe.sampler import HistoSampler, SamplerRequest
from com.raytheon.viz.gfe.vtec import GFEVtecUtil
import cPickle
# This class makes an object that interfaces to the GFE hazard grid
@ -69,14 +85,14 @@ class HazardsTable(VTECTableUtil.VTECTableUtil):
self.__marineProds = ["CWF", "NSH", "GLF", "MWW", "OFF"]
# list of phen/sig from national centers and "until further notice"
self.__tpcKeys = [('HU','A'), ('HU','S'), ('HU','W'), ('TR','A'),
('TR','W')]
self.__tpcKeys = self.__processJavaCollection(GFEVtecUtil.TROPICAL_PHENSIGS, self.__convertPhensig)
self.__tpcBaseETN = '1001'
self.__ncKeys = [('TO','A'), ('SV','A'), ('HU', 'S'), ('HU','A'), ('HU','W'),
('TR','A'), ('TR','W')] # added HU.S
self.__ncKeys = self.__processJavaCollection(GFEVtecUtil.NATIONAL_PHENSIGS, self.__convertPhensig)
self.__ufnKeys = [('HU','A'), ('HU','S'), ('HU','W'), ('TR','A'), ('TR','W'),
('TY','A'), ('TY','W')]
self.__sitesIgnoreNatlEtn = self.__processJavaCollection(GFEVtecUtil.IGNORE_NATIONAL_ETN, str)
self.__marineZonesPrefix = ["AM", "GM", "PZ", "PK", "PH", "PM", "AN",
"PS", "SL"] #list of zone name prefix that are marine zones
@ -682,19 +698,13 @@ class HazardsTable(VTECTableUtil.VTECTableUtil):
assigned.extend(ids2)
# find highest etn in active table for phen/sig, returns it.
# This method has been dramatically re-written for A2 to use
# GFEVtecUtil to do preliminary ETN assignment instead of scrubbing
# the whole set of ActiveTableRecords to calculate it.
def __highestETNActiveTable(self, phen, sig, activeTable):
#check active table for highest etn
presentyear = time.gmtime(self.__time)[0]
etn_base = 0
for active in activeTable:
# find only records with
# 1. same phen and sig
# 2. in the present year
# and not from the national center
activeyear = time.gmtime(active['issueTime'])[0]
phensig = (active['phen'],active['sig'])
if active['phen'] == phen and active['sig'] == sig and \
activeyear == presentyear:
phensig = (phen, sig)
# find the max ETN...
# 1. highest ETN period for non-tropical and all GUM products (tpcKeys)
# or
@ -702,16 +712,17 @@ class HazardsTable(VTECTableUtil.VTECTableUtil):
#
# Local WFOs do not assign these numbers, so they should have
# numbers < 1000
if active['etn'] > etn_base and \
phensig not in self.__tpcKeys:
etn_base = active['etn']
elif active['etn'] > etn_base and \
phensig in self.__tpcKeys:
if self.__siteID4 == 'PGUM':
etn_base = active['etn'] # GUM uses their own ETNs regardless of hazard
if phensig not in self.__tpcKeys or self.__siteID4 in self.__sitesIgnoreNatlEtn:
etn_base = GFEVtecUtil.getNextEtn(self.__siteID4, '.'.join(phensig), False) - 1
else:
if active['etn'] < 1001: # causes failure if tropical hazards are less than 1001
self.log.error("Incorrect ETN for tropical hazard.")
presentyear = time.gmtime(self.__time)[0]
for active in activeTable:
activeyear = time.gmtime(active['issueTime'])[0]
activephensig = (active['phen'],active['sig'])
if phensig == activephensig and presentyear == activeyear:
# causes failure if tropical hazards are less than 1001
if active['etn'] < int(self.__tpcBaseETN):
LogStream.logProblem("Incorrect ETN for tropical hazard.")
return etn_base
#determine the new etn to use, using the etn cache
@ -2389,3 +2400,17 @@ class HazardsTable(VTECTableUtil.VTECTableUtil):
# return False #same phen/sig, not tpc, so. non separate track
# else:
# return true;
def __processJavaCollection(self, javaObj, processMethod=None):
retVal = []
iter = javaObj.iterator()
while iter.hasNext():
nextObj = iter.next()
if processMethod is not None:
nextObj = processMethod(nextObj)
retVal.append(nextObj)
return retVal
def __convertPhensig(self, javaPhensig):
phenSig = tuple(str(javaPhensig).split('.'))
return phenSig

View file

@ -21,7 +21,6 @@
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="30 min stn plot" id="local30minstnplot">
<dataURI>/ldadmesonet/%</dataURI>
<substitute key="svg" value="ldadMesoDesign.svg"/>
<substitute key="legend" value="30 min Local Data Plot"/>
<substitute key="posOffset" value="900"/>
@ -29,7 +28,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoQCPlot.xml"
menuText="30 min stn plot + QC" id="local30minstnQCplot">
<dataURI>/qc/%</dataURI>
<substitute key="svgPrefix" value="ldadQC"/>
<substitute key="legend" value="30 min LDAD QC Plot"/>
<substitute key="posOffset" value="900"/>
@ -40,7 +38,6 @@
<contribute xsi:type="subMenu" menuText="Other Local Plots">
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="15 min stn plot" id="local15minstnplot">
<dataURI>/ldadmesonet/%</dataURI>
<substitute key="svg" value="ldadMesoDesign.svg"/>
<substitute key="legend" value="15 min Local Data Plot"/>
<substitute key="posOffset" value="450"/>
@ -48,7 +45,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoQCPlot.xml"
menuText="15 min stn plot + QC" id="local15minstnQCplot">
<dataURI>/qc/%</dataURI>
<substitute key="svgPrefix" value="ldadQC"/>
<substitute key="legend" value="15 min LDAD QC Plot"/>
<substitute key="posOffset" value="450"/>
@ -58,7 +54,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="5 min stn plot" id="local5minstnplot">
<dataURI>/ldadmesonet/%</dataURI>
<substitute key="svg" value="ldadMesoDesign.svg"/>
<substitute key="legend" value="5 min Local Data Plot"/>
<substitute key="posOffset" value="150"/>
@ -66,7 +61,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="1 min stn plot" id="local1minstnplot">
<dataURI>/ldadmesonet/%</dataURI>
<substitute key="svg" value="ldadMesoDesign.svg"/>
<substitute key="legend" value="1 min Local Data Plot"/>
<substitute key="posOffset" value="30"/>
@ -74,7 +68,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADMesoPlot.xml"
menuText="WindCh/HeatIdx" id="localWindChHeatIdx">
<dataURI>/ldadmesonet/%</dataURI>
<substitute key="svg" value="ldadMesoHiWcDesign.svg"/>
<substitute key="legend" value="Local WindChill/HeatIndex Plot"/>
<substitute key="posOffset" value="900"/>
@ -87,7 +80,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="3 hr Precip" id="local3hrPrecip">
<dataURI>/ldadhydro/%</dataURI>
<substitute key="svg" value="ldadHydro3hrPrecipDesign.svg"/>
<substitute key="legend" value="3 hr Precip Plot"/>
<substitute key="posOffset" value="5400"/>
@ -95,7 +87,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="1 hr Precip" id="local1hrPrecip">
<dataURI>/ldadhydro/%</dataURI>
<substitute key="svg" value="ldadHydro1hrPrecipDesign.svg"/>
<substitute key="legend" value="1 hr Precip Plot"/>
<substitute key="posOffset" value="1800"/>
@ -103,7 +94,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="30 min Precip" id="local30minPrecip">
<dataURI>/ldadhydro/%</dataURI>
<substitute key="svg" value="ldadHydro30minPrecipDesign.svg"/>
<substitute key="legend" value="30 min Precip Plot"/>
<substitute key="posOffset" value="900"/>
@ -111,7 +101,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="15 min Precip" id="local15minPrecip">
<dataURI>/ldadhydro/%</dataURI>
<substitute key="svg" value="ldadHydro15minPrecipDesign.svg"/>
<substitute key="legend" value="15 min Precip Plot"/>
<substitute key="posOffset" value="450"/>
@ -119,7 +108,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/LDADHydroPlot.xml"
menuText="5 min Precip" id="local5minPrecip">
<dataURI>/ldadhydro/%</dataURI>
<substitute key="svg" value="ldadHydro5minPrecipDesign.svg"/>
<substitute key="legend" value="5 min Precip Plot"/>
<substitute key="posOffset" value="150"/>

View file

@ -21,7 +21,6 @@
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="NWS MSL Pressure" id="msasMSLnwsPressure">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasMSLnwsPressure"/>
<substitute key="legend" value="msas MSLP-nws Obs(mb*10)"/>
<substitute key="posOffset" value="1800"/>
@ -31,7 +30,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="MSAS MSL Pressure" id="msasMAPSPressure">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasMAPSPressure"/>
<substitute key="legend" value="msas MSL Obs(mb*10)"/>
<substitute key="posOffset" value="1800"/>
@ -41,7 +39,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="Altimeter" id="msasAltimeter">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasAltimeter"/>
<substitute key="legend" value="msas altimeter Obs(mb*10)"/>
<substitute key="posOffset" value="1800"/>
@ -51,7 +48,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="3hr Pressure Change" id="msas3hrPressureChange">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msas3hrPressureChange"/>
<substitute key="legend" value="msas 3hr press change Obs(mb*10)"/>
<substitute key="posOffset" value="1800"/>
@ -61,7 +57,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="Wind" id="msasWind">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasWind"/>
<substitute key="legend" value="msas wind Obs(kts)"/>
<substitute key="posOffset" value="1800"/>
@ -71,7 +66,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="Potential Temp" id="msasPotentialTemp">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasPotentialTemp"/>
<substitute key="legend" value="msas theta Obs(K)"/>
<substitute key="posOffset" value="1800"/>
@ -81,7 +75,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="Dewpoint" id="msasDewpoint">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasDewpoint"/>
<substitute key="legend" value="msas dewpoint Obs(F)"/>
<substitute key="posOffset" value="1800"/>
@ -91,7 +84,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MsasQCPlot.xml"
menuText="Dewpoint Depression" id="msasDewpointDepression">
<dataURI>/obs/%</dataURI>
<substitute key="svgPrefix" value="msasDewpointDepression"/>
<substitute key="legend" value="msas dewpoint dep Obs(F)"/>
<substitute key="posOffset" value="1800"/>

View file

@ -21,24 +21,17 @@
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<contribute xsi:type="bundleItem" file="bundles/maritimeFixedBuoy.xml"
menuText="Fixed Buoys" id="FixedBuoys"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1005/%</dataURI>
</contribute>
productInterval="3600" productOffset="1800" />
<contribute xsi:type="bundleItem" file="bundles/maritimeMoving.xml"
menuText="Moving Maritime" id="MovingMaritime"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1003/%</dataURI>
</contribute>
productInterval="3600" productOffset="1800" />
<contribute xsi:type="bundleItem" file="bundles/maritimeMAROB.xml"
menuText="MAROB" id="MAROB"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1007/%</dataURI>
</contribute>
productInterval="3600" productOffset="1800" />
<contribute xsi:type="subMenu" menuText="Other Maritime Plots">
<contribute xsi:type="bundleItem" file="bundles/SeaStatePlot.xml"
menuText="Fixed Sea State" id="FixedSeaState"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%</dataURI>
<substitute key="svg" value="seaStateDesign.svg"/>
<substitute key="legend" value="Fixed Buoys Sea State"/>
<substitute key="reportType" value="1004,1005"/>
@ -46,7 +39,6 @@
<contribute xsi:type="bundleItem" file="bundles/SeaStatePlot.xml"
menuText="Moving Sea State" id="MovingSeaState"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%</dataURI>
<substitute key="svg" value="seaStateDesign.svg"/>
<substitute key="legend" value="Moving Buoys/Ships Sea State"/>
<substitute key="reportType" value="1003,1006"/>
@ -54,7 +46,6 @@
<contribute xsi:type="bundleItem" file="bundles/SeaStatePlot.xml"
menuText="MAROB Sea State" id="MAROBSeaState"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1007/%</dataURI>
<substitute key="svg" value="seaStateDesign.svg"/>
<substitute key="legend" value="MAROB Sea State"/>
<substitute key="reportType" value="1007"/>
@ -62,7 +53,6 @@
<contribute xsi:type="bundleItem" file="bundles/MaritimePlot.xml"
menuText="Maritime Clouds/Vis" id="MaritimeCloudVis"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1003/%</dataURI>
<substitute key="svg" value="maritimeCvDesign.svg"/>
<substitute key="legend" value="Maritime Clouds and Visibility"/>
<substitute key="reportType" value="1003"/>
@ -70,7 +60,6 @@
<contribute xsi:type="bundleItem" file="bundles/MaritimePlot.xml"
menuText="MAROB Clouds/Vis" id="MarobCloudsVis"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1007/%</dataURI>
<substitute key="svg" value="maritimeCvDesign.svg"/>
<substitute key="legend" value="MAROB Clouds and Visibility"/>
<substitute key="reportType" value="1007"/>
@ -91,7 +80,6 @@
<contribute xsi:type="bundleItem" file="bundles/Scatterometer.xml"
menuText="ASCAT Winds 25 km" id="ASCATWinds"
productInterval="3600" productOffset="1800">
<dataURI>/bufrascat/%</dataURI>
<substitute key="legend" value="ASCAT"/>
<substitute key="svg" value="ascatPlotDesign.svg"/>
<substitute key="plugin" value="bufrascat"/>

View file

@ -25,12 +25,9 @@
</contribute>
<contribute xsi:type="subMenu" menuText="Other Plots">
<contribute xsi:type="bundleItem" file="bundles/15minSurfacePlot.xml"
menuText="15 min Plot" id="15MinSurfacePlot">
<dataURI>/obs/%</dataURI>
</contribute>
menuText="15 min Plot" id="15MinSurfacePlot" />
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="24Hr Chg" id="24HrChg">
<dataURI>/obs/%</dataURI>
<substitute key="svg" value="metar24ChgDesign.svg"/>
<substitute key="legend" value="METAR 24H Change"/>
<substitute key="posOffset" value="1800"/>
@ -38,7 +35,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="Ceil/Vis Plot (AGL)" id="CeilVisPlotAGL">
<dataURI>/obs/%</dataURI>
<substitute key="svg" value="metarCvDesign.svg"/>
<substitute key="legend" value="Ceiling (agl) and Visibility"/>
<substitute key="posOffset" value="1800"/>
@ -46,7 +42,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="Ceil/Vis Plot (MSL)" id="CeilVisPlotMSL">
<dataURI>/obs/%</dataURI>
<substitute key="svg" value="metarCvMslDesign.svg"/>
<substitute key="legend" value="Ceiling (msl) and Visibility"/>
<substitute key="posOffset" value="1800"/>
@ -54,7 +49,6 @@
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPlot.xml"
menuText="Wind Ch/HeatIdx" id="WindChHeatIdx">
<dataURI>/obs/%</dataURI>
<substitute key="svg" value="metarHiWcDesign.svg"/>
<substitute key="legend" value="Wind Chill/Heat Index plot"/>
<substitute key="posOffset" value="1800"/>
@ -67,28 +61,24 @@
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="24hr Precip" id="24HrPrecip">
<dataURI>/obs/%</dataURI>
<substitute key="duration" value="24"/>
<substitute key="posOffset" value="21600"/>
<substitute key="negOffset" value="0"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="6hr Precip" id="6HrPrecip">
<dataURI>/obs/%</dataURI>
<substitute key="duration" value="6"/>
<substitute key="posOffset" value="10800"/>
<substitute key="negOffset" value="10800"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="3hr Precip" id="3HrPrecip">
<dataURI>/obs/%</dataURI>
<substitute key="duration" value="3"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="9000"/>
</contribute>
<contribute xsi:type="bundleItem" file="bundles/MetarPrecipPlot.xml"
menuText="1hr Precip" id="1HrPrecip">
<dataURI>/obs/%</dataURI>
<substitute key="duration" value="1"/>
<substitute key="posOffset" value="1800"/>
<substitute key="negOffset" value="1800"/>

View file

@ -30,7 +30,6 @@
<contribute xsi:type="bundleItem" file="bundles/SynSurfacePlot.xml"
menuText="6 hr Precip" id="synoptic6hrPrecip"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1001/%</dataURI>
<substitute key="svg" value="synopticPrcp6Design.svg"/>
<substitute key="legend" value="Synoptic 6hr Precip Plot"/>
<substitute key="posOffset" value="0"/>
@ -39,7 +38,6 @@
<contribute xsi:type="bundleItem" file="bundles/SynSurfacePlot.xml"
menuText="24 hr Precip" id="synoptic24hrPrecip"
productInterval="3600" productOffset="1800">
<dataURI>/sfcobs/%/1001/%</dataURI>
<substitute key="svg" value="synopticPrcp24Design.svg"/>
<substitute key="legend" value="Synoptic 24hr Precip Plot"/>
<substitute key="posOffset" value="0"/>

View file

@ -7,7 +7,7 @@ Bundle-Activator: com.raytheon.uf.viz.alertviz.Activator
Bundle-Vendor: Raytheon
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.apache.activemq;visibility:=reexport,
org.apache.activemq,
com.raytheon.uf.common.localization;visibility:=reexport,
com.raytheon.uf.common.serialization;visibility:=reexport,
com.raytheon.uf.viz.core;visibility:=reexport,

View file

@ -20,7 +20,7 @@
</layout>
</appender>
<appender name="AlertVizAdminLogAppender" class="com.raytheon.uf.viz.alertviz.EnvConfigurableRollingFileAppender">
<appender name="AlertVizAdminLogAppender" class="com.raytheon.uf.viz.core.log.EnvConfigurableRollingFileAppender">
<param name="envLogVar" value="LOGFILE_ALERTVIZ" />
<param name="maxFileSize" value="2GB"/>
<param name="maxBackupIndex" value="5"/>

View file

@ -58,7 +58,6 @@ import com.raytheon.uf.viz.alertviz.internal.LogMessageDAO;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Sep 4, 2008 1433 chammack Initial creation
* Jun 3, 2013 2026 randerso Improve error handling
* </pre>
*
* @author chammack
@ -209,12 +208,10 @@ public class AlertvizJob extends Job {
@Override
public void run() {
String xmlString = null;
StatusMessage statusMessage = null;
try {
xmlString = tm.getText();
StringReader sr = new StringReader(xmlString);
statusMessage = (StatusMessage) umsh
StringReader sr = new StringReader(tm.getText());
StatusMessage statusMessage = (StatusMessage) umsh
.unmarshal(sr);
if (statusMessage.getEventTime() == null) {
statusMessage.setEventTime(SimulatedTime
@ -223,25 +220,34 @@ public class AlertvizJob extends Job {
displayAlert(statusMessage);
} catch (JMSException e) {
String message = "Unable to retrieve JMS message text";
handleInteralError(message, e);
} catch (JAXBException e) {
String message = "Unable to unmarshal XML:\n"
+ xmlString;
handleInteralError(message, e);
} catch (Exception e) {
String message = "Unexpected exception";
if (xmlString == null) {
message += ": ";
} else if (statusMessage == null) {
message += " while processing:\n"
+ xmlString;
} else {
message += " while processing:\n"
+ statusMessage;
// Log to internal Log4j log
Container
.logInternal(
Priority.ERROR,
"AlertVizJob: exception when retrieving text message text or "
+ "creating text message unmarshaller.",
e);
StatusMessage sm = new StatusMessage();
sm.setPriority(Priority.CRITICAL);
sm.setMachineToCurrent();
sm.setCategory("GDN_ADMIN");
sm.setSourceKey("GDN_ADMIN");
sm.setMessage(e.getMessage());
sm.setEventTime(SimulatedTime.getSystemTime()
.getTime());
try {
LogMessageDAO.getInstance().save(sm);
} catch (AlertvizException e1) {
// Nothing but we can do but print
// stacktrace
// Log to internal Log4j log
Container
.logInternal(
Priority.ERROR,
"AlertVizJob unalbe to save to internal database.",
e);
}
handleInteralError(message, e);
}
}
@ -260,25 +266,6 @@ public class AlertvizJob extends Job {
}
}
private void handleInteralError(String message, Throwable e) {
// Log to internal Log4j log
Container.logInternal(Priority.CRITICAL, message, e);
StatusMessage sm = new StatusMessage("GDN_ADMIN", "GDN_ADMIN",
Priority.CRITICAL, this.getClass().getPackage().getName(),
message, e);
sm.setMachineToCurrent();
sm.setEventTime(SimulatedTime.getSystemTime().getTime());
try {
LogMessageDAO.getInstance().save(sm);
} catch (AlertvizException e1) {
// Nothing but we can do but print stacktrace
// Log to internal Log4j log
Container.logInternal(Priority.ERROR,
"AlertVizJob unalbe to save to internal database.", e);
}
}
/*
* (non-Javadoc)
*

View file

@ -36,8 +36,8 @@ import com.raytheon.uf.viz.alertviz.config.Category;
import com.raytheon.uf.viz.alertviz.config.Configuration;
import com.raytheon.uf.viz.alertviz.config.ForcedConfiguration;
import com.raytheon.uf.viz.alertviz.config.Source;
import com.raytheon.uf.viz.alertviz.internal.LogMessageDAO;
import com.raytheon.uf.viz.alertviz.internal.PurgeLogJob;
import com.raytheon.uf.viz.alertviz.internal.LogMessageDAO;
import com.raytheon.uf.viz.core.VizApp;
/**
@ -51,7 +51,6 @@ import com.raytheon.uf.viz.core.VizApp;
* ------------ ---------- ----------- --------------------------
* Sep 8, 2008 1433 chammack Initial creation
* Oct 18, 2010 5849 cjeanbap NullPointerExceptin thrown if category is null
* Jun 03, 2013 2026 randerso Fixed typo
* </pre>
*
* @author chammack
@ -121,7 +120,7 @@ public class Container implements IConfigurationChangedListener {
return;
}
if ((source == null) || (source.getConfigurationItem() == null)) {
if (source == null || source.getConfigurationItem() == null) {
message.setSourceKey("GDN_ADMIN");
message.setCategory("GDN_ADMIN");
message.setMessage(message.getMessage() + " (" + SOURCE_MISSING
@ -149,9 +148,8 @@ public class Container implements IConfigurationChangedListener {
AlertMetadata amd = source.getConfigurationItem().lookup(
message.getPriority());
if (forcedConfiguration != null) {
if (forcedConfiguration != null)
amd = forcedConfiguration.applyForcedSettings(amd, message);
}
final AlertMetadata metadata = amd;
@ -175,7 +173,7 @@ public class Container implements IConfigurationChangedListener {
sm.setPriority(priority);
sm.setMachineToCurrent();
sm.setSourceKey("GDN_ADMIN");
sm.setCategory("GDN_ADMIN");
sm.setCategory("GDN)ADMIN");
sm.setMessage(msg);
sm.setEventTime(SimulatedTime.getSystemTime().getTime());
addToLog(sm);
@ -194,7 +192,7 @@ public class Container implements IConfigurationChangedListener {
.getEventTime().getTime() : this.shotgunMessageStartTime;
if (this.lastMessage.getCategory().equals(message.getCategory())
&& (this.lastMessage.getPriority() == message.getPriority())
&& this.lastMessage.getPriority() == message.getPriority()
&& this.lastMessage.getMessage().equals(
message.getMessage())
&& (Math.abs(message.getEventTime().getTime()
@ -252,12 +250,12 @@ public class Container implements IConfigurationChangedListener {
boolean printError = true;
if (errorMsg != null) {
if (errorMsg.equals(lastErrorDialogMessage)) {
if ((System.currentTimeMillis() - lastErrorDialogTime) < 60000) {
if (System.currentTimeMillis() - lastErrorDialogTime < 60000) {
printError = false;
}
}
} else if (lastErrorDialogMessage == null) {
if ((System.currentTimeMillis() - lastErrorDialogTime) < 60000) {
if (System.currentTimeMillis() - lastErrorDialogTime < 60000) {
printError = false;
}
}
@ -303,7 +301,7 @@ public class Container implements IConfigurationChangedListener {
}
public static boolean hasMissing(StatusMessage statMsg) {
return (statMsg.getMessage() != null)
return statMsg.getMessage() != null
&& (statMsg.getMessage().contains(CATEGORY_MISSING) || statMsg
.getMessage().contains(SOURCE_MISSING));
}
@ -321,9 +319,8 @@ public class Container implements IConfigurationChangedListener {
String cat = message.getCategory();
String source = message.getSourceKey();
boolean isInternal = ((cat != null) && cat
.equalsIgnoreCase("GDN_ADMIN"))
|| ((source != null) && source.equalsIgnoreCase("GDN_ADMIN"));
boolean isInternal = (cat != null && cat.equalsIgnoreCase("GDN_ADMIN"))
|| (source != null && source.equalsIgnoreCase("GDN_ADMIN"));
if (isInternal) {
switch (message.getPriority()) {
case CRITICAL:

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.raytheon.uf.viz.eclipse.feature</name>
<name>com.raytheon.uf.viz.archive.feature</name>
<comment></comment>
<projects>
</projects>

View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="com.raytheon.uf.viz.archive.feature"
label="Feature"
version="1.0.0.qualifier"
provider-name="RAYTHEON">
<description url="http://www.example.com/description">
[Enter Feature Description here.]
</description>
<copyright url="http://www.example.com/copyright">
[Enter Copyright Description here.]
</copyright>
<license url="http://www.example.com/license">
[Enter License Description here.]
</license>
<requires>
<import plugin="org.eclipse.ui" version="3.8.2" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="com.raytheon.viz.ui" version="1.12.1174" match="greaterOrEqual"/>
<import plugin="com.raytheon.uf.common.serialization" version="1.12.1174" match="greaterOrEqual"/>
<import plugin="com.raytheon.uf.common.localization" version="1.12.1174" match="greaterOrEqual"/>
<import plugin="com.raytheon.uf.common.archive" version="1.0.0" match="greaterOrEqual"/>
<import plugin="com.raytheon.uf.common.time" version="1.12.1174" match="greaterOrEqual"/>
<import plugin="com.raytheon.uf.common.util" version="1.12.1174" match="greaterOrEqual"/>
<import plugin="org.apache.commons.io"/>
</requires>
<plugin
id="com.raytheon.uf.viz.archive"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.raytheon.uf.edex.ebxml</name>
<name>com.raytheon.uf.viz.archive</name>
<comment></comment>
<projects>
</projects>

View file

@ -1,4 +1,4 @@
#Mon Jun 25 15:43:02 CDT 2012
#Wed May 01 15:01:03 CDT 2013
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6

View file

@ -0,0 +1,17 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Archive
Bundle-SymbolicName: com.raytheon.uf.viz.archive;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.raytheon.uf.viz.archive.Activator
Bundle-Vendor: RAYTHEON
Require-Bundle: org.eclipse.ui;bundle-version="3.8.2",
org.eclipse.core.runtime,
com.raytheon.viz.ui;bundle-version="1.12.1174",
com.raytheon.uf.common.serialization;bundle-version="1.12.1174",
com.raytheon.uf.common.localization;bundle-version="1.12.1174",
com.raytheon.uf.common.archive;bundle-version="1.0.0",
com.raytheon.uf.common.time;bundle-version="1.12.1174",
com.raytheon.uf.common.util;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<?eclipse version="3.2"?>
<plugin>
<extension
point="com.raytheon.uf.viz.localization.localizationpath">
<path
application="Archive"
localizationType="COMMON_STATIC"
name="Archive"
value="archive"
recursive="false"
extensionFilter=".xml">
</path>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:CAVE?after=group1">
<command
commandId="com.raytheon.uf.viz.archive.retentionui"
id="archivetest"
label="Archive Retention..."
style="push">
</command>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:CAVE?after=group1">
<command
commandId="com.raytheon.uf.viz.archive.casecreationui"
id="archivetest"
label="Archive Case Creation..."
style="push">
</command>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
id="com.raytheon.uf.viz.archive.casecreationui"
name="casecreation">
</command>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
id="com.raytheon.uf.viz.archive.retentionui"
name="archiveretention">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="com.raytheon.uf.viz.archive.ArchiveCaseCreationDialogAction"
commandId="com.raytheon.uf.viz.archive.casecreationui">
</handler>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="com.raytheon.uf.viz.archive.ArchiveRetentionDialogAction"
commandId="com.raytheon.uf.viz.archive.retentionui">
</handler>
</extension>
</plugin>

View file

@ -0,0 +1,108 @@
/**
* 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;
import com.raytheon.uf.common.time.util.TimeUtil;
/**
* Convenience class for taking retention hours and converting to days/hours.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 2, 2013 1966 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class RetentionHours {
private int retentionHours;
/**
* Constructor with default 7 day retention.
*/
public RetentionHours() {
this(7 * TimeUtil.HOURS_PER_DAY);
}
/**
* Constructor specify retention hours.
*
* @param retentionHours
*/
public RetentionHours(int retentionHours) {
this.retentionHours = retentionHours;
}
/**
* Set retention to this number of days.
*
* @param days
*/
public void setDays(int days) {
retentionHours = days * TimeUtil.HOURS_PER_DAY;
}
/**
* Convert retention hours to days. Note values are truncated so a retention
* of 23 hours will return 0 days.
*
* @return days
*/
public int getDays() {
return retentionHours / TimeUtil.HOURS_PER_DAY;
}
/**
* Get retention in hours.
*
* @return
*/
public int getHours() {
return retentionHours;
}
/**
* Set number hours of retention.
*
* @param hours
*/
public void setHours(int hours) {
retentionHours = hours;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "RetentionHours [days:" + getDays() + ", hours:" + getHours()
+ "]";
}
}

View file

@ -0,0 +1,70 @@
/**
* 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.archive;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
/**
* Activator class for Archive.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 13, 2013 1966 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class Activator implements BundleActivator {
private static BundleContext context;
static BundleContext getContext() {
return context;
}
/*
* (non-Javadoc)
*
* @see
* org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
* )
*/
public void start(BundleContext bundleContext) throws Exception {
Activator.context = bundleContext;
}
/*
* (non-Javadoc)
*
* @see
* org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext bundleContext) throws Exception {
Activator.context = null;
}
}

View file

@ -0,0 +1,51 @@
package com.raytheon.uf.viz.archive;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.viz.archive.ui.CaseCreationDlg;
/**
* Action to bring up the Archive Case Creation dialog..
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 16, 2013 1966 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class ArchiveCaseCreationDialogAction extends AbstractHandler {
private CaseCreationDlg dialog;
/*
* (non-Javadoc)
*
* @see
* org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
* .ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (dialog == null || dialog.isDisposed()) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
dialog = new CaseCreationDlg(shell);
dialog.open();
} else {
dialog.bringToTop();
}
return null;
}
}

View file

@ -0,0 +1,50 @@
package com.raytheon.uf.viz.archive;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.viz.archive.ui.ArchiveRetentionDlg;
/**
* Action to display the Archive Retention dialog.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 16, 2013 1966 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class ArchiveRetentionDialogAction extends AbstractHandler {
private ArchiveRetentionDlg dialog;
/*
* (non-Javadoc)
*
* @see
* org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
* .ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (dialog == null || dialog.isDisposed()) {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell();
dialog = new ArchiveRetentionDlg(shell);
dialog.open();
} else {
dialog.bringToTop();
}
return null;
}
}

View file

@ -0,0 +1,113 @@
/**
* 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.archive.data;
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
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 com.raytheon.uf.common.util.FileUtil;
/**
* This class uses a obtains information on a File in a Job in order to remove
* from the UI thread.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 15, 2013 1966 rferrel Initial creation
*
* </pre>
*
* @author rferrel
* @version 1.0
*/
public class FileInfo {
private static final SizeJob sizeJob = new FileInfo.SizeJob();
private File file;
private long size = -1L;
public FileInfo(File file) {
this.file = file;
FileInfo.sizeJob.queue(this);
}
public long getSize() {
return size;
}
static private class SizeJob extends Job {
private LinkedList<FileInfo> queueList = new LinkedList<FileInfo>();
List<IUpdateListener> listeners = new ArrayList<IUpdateListener>();
protected void queue(FileInfo fileInfo) {
synchronized (queueList) {
queueList.add(fileInfo);
if (getJobManager().currentJob() == null) {
schedule();
}
}
}
public SizeJob() {
super("Size Job");
setSystem(true);
}
@Override
protected IStatus run(IProgressMonitor monitor) {
while (!queueList.isEmpty()) {
FileInfo[] list = null;
synchronized (queueList) {
list = queueList.toArray(new FileInfo[0]);
queueList.clear();
}
for (FileInfo fileInfo : list) {
File file = fileInfo.file;
if (file.isDirectory()) {
fileInfo.size = FileUtil.sizeOfDirectory(file);
} else {
fileInfo.size = file.length();
}
}
for (IUpdateListener listener : listeners) {
listener.update(list);
}
}
return Status.OK_STATUS;
}
}
}

View file

@ -17,12 +17,10 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.collaboration.core.ui;
import com.raytheon.uf.viz.collaboration.comm.provider.session.CollaborationConnection;
package com.raytheon.uf.viz.archive.data;
/**
* TODO Add Description
* A listener to update file/directory information.
*
* <pre>
*
@ -30,18 +28,19 @@ import com.raytheon.uf.viz.collaboration.comm.provider.session.CollaborationConn
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
* May 16, 2013 1966 rferrel Initial creation
*
* </pre>
*
* @author mschenke
* @author rferrel
* @version 1.0
*/
public interface ICollaborationUIManager {
public CollaborationConnection getConnection();
public void logout();
public interface IUpdateListener {
/**
* List of files/directories with updated information
*
* @param fileInfoArray
*/
public void update(FileInfo[] fileInfoArray);
}

View file

@ -0,0 +1,349 @@
/**
* 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.archive.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import com.raytheon.uf.viz.archive.ui.ArchiveTableComp.TableType;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
/**
* Archive retention dialog.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 23, 2013 #1964 lvenable Initial creation
*
* </pre>
*
* @author lvenable
* @version 1.0
*/
public class ArchiveRetentionDlg extends CaveSWTDialog {
/** Table composite that holds the table controls. */
private ArchiveTableComp tableComp;
/** Archive config combo box. */
private Combo archCfgCbo;
/** Category combo box. */
private Combo categoryCbo;
/**
* Constructor.
*
* @param parentShell
* Parent shell.
*/
public ArchiveRetentionDlg(Shell parentShell) {
super(parentShell, SWT.DIALOG_TRIM | SWT.MIN, CAVE.DO_NOT_BLOCK
| CAVE.MODE_INDEPENDENT | CAVE.INDEPENDENT_SHELL);
}
@Override
protected Layout constructShellLayout() {
// Create the main layout for the shell.
GridLayout mainLayout = new GridLayout(1, false);
mainLayout.marginHeight = 2;
mainLayout.marginWidth = 2;
return mainLayout;
}
@Override
protected void initializeComponents(Shell shell) {
setText("Archive Retention");
Composite mainComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(1, false);
gl.marginHeight = 0;
gl.marginWidth = 0;
gl.horizontalSpacing = 0;
mainComp.setLayout(gl);
init();
}
/**
* Initialize method to create all of the composite & controls.
*/
private void init() {
createRetentionControls();
createTable();
addSeparator(shell, SWT.HORIZONTAL);
createBottomActionButtons();
// TODO : Remove this when functionality is implemented
populateComboBoxes();
}
/**
* Create the retention controls.
*/
private void createRetentionControls() {
Composite retentionComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(5, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
retentionComp.setLayout(gl);
retentionComp.setLayoutData(gd);
/*
* Top row of controls.
*/
Label archCfgLbl = new Label(retentionComp, SWT.NONE);
archCfgLbl.setText("Archive Config: ");
gd = new GridData(200, SWT.DEFAULT);
archCfgCbo = new Combo(retentionComp, SWT.VERTICAL | SWT.DROP_DOWN
| SWT.BORDER | SWT.READ_ONLY);
archCfgCbo.setLayoutData(gd);
archCfgCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
/*
* TODO - add code to update the category combo box
*/
}
});
gd = new GridData();
gd.horizontalIndent = 20;
Label minRetentionLbl = new Label(retentionComp, SWT.NONE);
minRetentionLbl.setText("Minimum Retention: ");
minRetentionLbl.setLayoutData(gd);
gd = new GridData(60, SWT.DEFAULT);
final Spinner minRetentionSpnr = new Spinner(retentionComp, SWT.BORDER);
minRetentionSpnr.setIncrement(1);
minRetentionSpnr.setPageIncrement(5);
minRetentionSpnr.setMaximum(Integer.MAX_VALUE);
minRetentionSpnr.setMinimum(1);
minRetentionSpnr.setLayoutData(gd);
final Combo minRetentionCbo = new Combo(retentionComp, SWT.VERTICAL
| SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY);
minRetentionCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleRetentionSelection(minRetentionCbo, minRetentionSpnr);
}
});
minRetentionCbo.add("Hours");
minRetentionCbo.add("Days");
minRetentionCbo.select(0);
minRetentionCbo.setData(minRetentionCbo.getItem(minRetentionCbo
.getSelectionIndex()));
/*
* Bottom row of controls.
*/
Label catLbl = new Label(retentionComp, SWT.NONE);
catLbl.setText("Category: ");
gd = new GridData(200, SWT.DEFAULT);
categoryCbo = new Combo(retentionComp, SWT.VERTICAL | SWT.DROP_DOWN
| SWT.BORDER | SWT.READ_ONLY);
categoryCbo.setLayoutData(gd);
categoryCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
/*
* TODO - add code to update the information in the table
*/
}
});
gd = new GridData();
gd.horizontalIndent = 20;
Label extRetentionLbl = new Label(retentionComp, SWT.NONE);
extRetentionLbl.setText("Extended Retention: ");
extRetentionLbl.setLayoutData(gd);
gd = new GridData(60, SWT.DEFAULT);
final Spinner extRetentionSpnr = new Spinner(retentionComp, SWT.BORDER);
extRetentionSpnr.setIncrement(1);
extRetentionSpnr.setPageIncrement(5);
extRetentionSpnr.setMaximum(Integer.MAX_VALUE);
extRetentionSpnr.setMinimum(1);
extRetentionSpnr.setLayoutData(gd);
final Combo extRetentionCbo = new Combo(retentionComp, SWT.VERTICAL
| SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY);
extRetentionCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleRetentionSelection(extRetentionCbo, extRetentionSpnr);
}
});
extRetentionCbo.add("Hours");
extRetentionCbo.add("Days");
extRetentionCbo.select(0);
extRetentionCbo.setData(extRetentionCbo.getItem(extRetentionCbo
.getSelectionIndex()));
}
/**
* Create the table control.
*/
private void createTable() {
tableComp = new ArchiveTableComp(shell, TableType.Case);
}
/**
* Create the bottom action buttons.
*/
private void createBottomActionButtons() {
Composite actionControlComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(3, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
actionControlComp.setLayout(gl);
actionControlComp.setLayoutData(gd);
Button calcSizeBtn = new Button(actionControlComp, SWT.PUSH);
calcSizeBtn.setText(" Calculate Sizes ");
calcSizeBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
// TODO : add calculate size functionality
}
});
Button saveBtn = new Button(actionControlComp, SWT.PUSH);
saveBtn.setText(" Save... ");
saveBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
// TODO : add save functionality
}
});
gd = new GridData(SWT.RIGHT, SWT.DEFAULT, true, false);
Button closeBtn = new Button(actionControlComp, SWT.PUSH);
closeBtn.setText(" Close ");
closeBtn.setLayoutData(gd);
closeBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
close();
}
});
}
/**
* Handle the retention selection for both minimum and extended retention.
*
* @param comboBox
* Retention combo box.
* @param spinner
* Retention spinner.
*/
private void handleRetentionSelection(Combo comboBox, Spinner spinner) {
// If the selection didn't change then just return.
if (comboBox.getItem(comboBox.getSelectionIndex()).equals(
(String) comboBox.getData())) {
return;
}
int time = 0;
if (comboBox.getItem(comboBox.getSelectionIndex()).equals("Hours")) {
time = convertTime(true, spinner.getSelection());
} else {
time = convertTime(false, spinner.getSelection());
}
spinner.setSelection(time);
comboBox.setData(comboBox.getItem(comboBox.getSelectionIndex()));
}
/**
* Covert time from either hours to days or days to hours.
*
* @param daysToHours
* Flag indicating how to convert the time.
* @param time
* Time to be converted.
* @return The converted time.
*/
private int convertTime(boolean daysToHours, int time) {
int convertedTime = 0;
if (daysToHours) {
convertedTime = time * 24;
} else {
convertedTime = time / 24;
}
return convertedTime;
}
/**
* Add a separator line to the provided container.
*
* @param container
* Composite.
* @param orientation
* Vertical or horizontal orientation.
*/
private void addSeparator(Composite container, int orientation) {
// Separator label
GridData gd;
if (orientation == SWT.HORIZONTAL) {
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
} else {
gd = new GridData(SWT.DEFAULT, SWT.FILL, false, true);
}
Label sepLbl = new Label(container, SWT.SEPARATOR | orientation);
sepLbl.setLayoutData(gd);
}
/********************************************************
* TEST METHODS - to be removed when functionality is implemented.
* ******************************************************
*/
private void populateComboBoxes() {
archCfgCbo.add("Raw");
archCfgCbo.add("Processed");
archCfgCbo.select(0);
categoryCbo.add("Radar");
categoryCbo.add("Point");
categoryCbo.add("Satellite");
categoryCbo.select(0);
}
}

View file

@ -0,0 +1,303 @@
/**
* 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.archive.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
/**
* Archive table composite that contains the SWT table.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 23, 2013 #1964 lvenable Initial creation
*
* </pre>
*
* @author lvenable
* @version 1.0
*/
public class ArchiveTableComp extends Composite {
/** Table control. */
private Table table;
/** Popup menu. */
private Menu popupMenu;
/** Number of selected items label. */
private Label selectedLbl;
/** Size label. */
private Label sizeLbl;
/** Table type enumeration. */
public enum TableType {
Retention, Case
};
/** Current table type. */
private TableType tableType = TableType.Retention;
/**
* Constructor.
*
* @param parent
* Parent composite.
* @param type
* Table type.
*/
public ArchiveTableComp(Composite parent, TableType type) {
super(parent, 0);
tableType = type;
init();
}
/**
* Initialize composites and controls.
*/
private void init() {
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
GridLayout gl = new GridLayout(1, true);
gl.verticalSpacing = 2;
gl.marginHeight = 2;
gl.marginWidth = 2;
this.setLayout(gl);
this.setLayoutData(gd);
createTable();
createTableLabels();
updateSelectionLabel();
}
/**
* Create the table control.
*/
private void createTable() {
table = new Table(this, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL
| SWT.H_SCROLL | SWT.MULTI);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, true);
gd.widthHint = 730;
gd.heightHint = 270;
table.setLayoutData(gd);
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn pathColumn = new TableColumn(table, SWT.CENTER);
pathColumn.setText("Path");
TableColumn sizeColumn = new TableColumn(table, SWT.CENTER);
if (tableType == TableType.Retention) {
sizeColumn.setText("Current Size (MB)");
} else if (tableType == TableType.Case) {
sizeColumn.setText("Size (MB)");
}
populateTable();
for (int i = 0; i < 2; i++) {
table.getColumn(i).setResizable(false);
table.getColumn(i).setMoveable(false);
table.getColumn(i).pack();
}
table.getColumn(1).setWidth(100);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseDown(MouseEvent me) {
if (me.button == 3) {
createPopupMenu(table);
popupMenu.setVisible(true);
}
}
});
table.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
updateSelectionLabel();
}
});
}
/**
* Create the table labels.
*/
private void createTableLabels() {
Composite lblComp = new Composite(this, SWT.NONE);
GridLayout gl = new GridLayout(2, true);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
lblComp.setLayout(gl);
lblComp.setLayoutData(gd);
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
selectedLbl = new Label(lblComp, SWT.NONE);
selectedLbl.setLayoutData(gd);
/*
* TODO : keep for future use. This will be used to show the total size
* of the selected items in the table.
*/
// gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
// sizeLbl = new Label(lblComp, SWT.NONE);
// sizeLbl.setLayoutData(gd);
// sizeLbl.setText("Size of Selected items: 0" + sizeSuffix);
}
/**
* Update the selection items label.
*/
private void updateSelectionLabel() {
TableItem[] itemArray = table.getItems();
int count = 0;
for (TableItem ti : itemArray) {
if (ti.getChecked()) {
count++;
}
}
selectedLbl.setText("Selected Items: " + count);
}
/**
* Create the table popup menu.
*
* @param parent
* Parent control.
*/
private void createPopupMenu(Control parent) {
if (popupMenu != null) {
popupMenu.dispose();
}
popupMenu = new Menu(parent);
MenuItem checkSelectedItem = new MenuItem(popupMenu, SWT.NONE);
checkSelectedItem.setText("Check selected rows");
checkSelectedItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleCheckSelectedRow(true);
}
});
MenuItem uncheckSelectedItem = new MenuItem(popupMenu, SWT.NONE);
uncheckSelectedItem.setText("Uncheck selected rows");
uncheckSelectedItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleCheckSelectedRow(false);
}
});
new MenuItem(popupMenu, SWT.SEPARATOR);
MenuItem checkAllItem = new MenuItem(popupMenu, SWT.NONE);
checkAllItem.setText("Check all rows");
checkAllItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleCheckAll(true);
}
});
MenuItem uncheckAllItem = new MenuItem(popupMenu, SWT.NONE);
uncheckAllItem.setText("Uncheck all rows");
uncheckAllItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleCheckAll(false);
}
});
// Set the pop-up menu as the pop-up for the shell
parent.setMenu(popupMenu);
}
/**
* Action performed when the item in the table is checked/unchecked.
*
* @param check
* Checked flag.
*/
private void handleCheckSelectedRow(boolean check) {
TableItem[] itemArray = table.getSelection();
for (TableItem ti : itemArray) {
ti.setChecked(check);
}
updateSelectionLabel();
}
/**
* Check or uncheck all of the table items.
*
* @param check
* Flag indicating check or uncheck all items.
*/
private void handleCheckAll(boolean check) {
TableItem[] itemArray = table.getItems();
for (TableItem ti : itemArray) {
ti.setChecked(check);
}
updateSelectionLabel();
}
/*
* TODO : this is just for display purposes. This will go away when the
* functionality is implemented.
*/
private void populateTable() {
for (int i = 0; i < 150; i++) {
TableItem item = new TableItem(table, SWT.NONE);
item.setText(0,
"/home/lvenable/caveData/configuration/base/com.raytheon.uf.viz.gisdatastore/"
+ i + " ");
if (i % 5 == 0) {
item.setChecked(true);
}
item.setText(1, "?????");
}
}
}

View file

@ -0,0 +1,609 @@
/**
* 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.archive.ui;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import com.raytheon.uf.common.time.util.TimeUtil;
import com.raytheon.uf.viz.archive.ui.ArchiveTableComp.TableType;
import com.raytheon.viz.ui.dialogs.AwipsCalendar;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
/**
*
* Case creation dialog.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 23, 2013 #1964 lvenable Initial creation
*
* </pre>
*
* @author lvenable
* @version 1.0
*/
public class CaseCreationDlg extends CaveSWTDialog {
/** Table control */
private ArchiveTableComp tableComp;
/** Start time label. */
private Label startTimeLbl;
/** End time label. */
private Label endTimeLbl;
/** Start date. */
private Date startDate;
/** End date. */
private Date endDate;
/** Archive configuration combo box. */
private Combo archCfgCbo;
/** Category combo box. */
private Combo categoryCbo;
/** Compression check box. */
private Button compressChk;
/** Break files check box. */
private Button breakFilesChk;
/** File size spinner control. */
private Spinner fileSizeSpnr;
/** File size combo box. */
private Combo fileSizeCbo;
/** Maximum file size label. */
private Label maxFileSizeLbl;
/** Directory location label. */
private Label locationLbl;
/** Uncompressed file size label. */
private Label uncompressSizeLbl;
/** Date format. */
private SimpleDateFormat dateFmt = new SimpleDateFormat(
"E MMM dd yyyy HH:00 z");
/**
* Constructor.
*
* @param parentShell
* Parent shell.
*/
public CaseCreationDlg(Shell parentShell) {
super(parentShell, SWT.DIALOG_TRIM | SWT.MIN, CAVE.DO_NOT_BLOCK
| CAVE.MODE_INDEPENDENT | CAVE.INDEPENDENT_SHELL);
}
@Override
protected Layout constructShellLayout() {
// Create the main layout for the shell.
GridLayout mainLayout = new GridLayout(1, false);
mainLayout.marginHeight = 2;
mainLayout.marginWidth = 2;
return mainLayout;
}
@Override
protected void initializeComponents(Shell shell) {
setText("Case Creation");
Composite mainComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(1, false);
gl.marginHeight = 0;
gl.marginWidth = 0;
gl.horizontalSpacing = 0;
mainComp.setLayout(gl);
init();
}
/**
* Initialize method to create all of the composite & controls.
*/
private void init() {
createTimeControls();
addSeparator(shell, SWT.HORIZONTAL);
createCaseCompressionControls();
addSeparator(shell, SWT.HORIZONTAL);
createFileBrowserControls();
createTable();
addSeparator(shell, SWT.HORIZONTAL);
createBottomActionButtons();
populateComboBoxes();
}
/**
* Create the time controls.
*/
private void createTimeControls() {
Composite timeComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(4, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
timeComp.setLayout(gl);
timeComp.setLayoutData(gd);
Button startBtn = new Button(timeComp, SWT.PUSH);
startBtn.setText(" Start Time... ");
startBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
displayDateTimeControls(true);
}
});
gd = new GridData(220, SWT.DEFAULT);
startTimeLbl = new Label(timeComp, SWT.BORDER);
startTimeLbl.setLayoutData(gd);
gd = new GridData();
gd.horizontalIndent = 20;
Button endBtn = new Button(timeComp, SWT.PUSH);
endBtn.setText(" End Time... ");
endBtn.setLayoutData(gd);
endBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
displayDateTimeControls(false);
}
});
gd = new GridData(220, SWT.DEFAULT);
endTimeLbl = new Label(timeComp, SWT.BORDER);
endTimeLbl.setLayoutData(gd);
Date date = TimeUtil.newDate();
startDate = date;
endDate = date;
startTimeLbl.setText(dateFmt.format(startDate));
endTimeLbl.setText(dateFmt.format(endDate));
}
/**
* Create the case compression controls.
*/
private void createCaseCompressionControls() {
Composite caseCompressionComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(3, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
caseCompressionComp.setLayout(gl);
caseCompressionComp.setLayoutData(gd);
createComboControls(caseCompressionComp);
addSeparator(caseCompressionComp, SWT.VERTICAL);
createCompressionControls(caseCompressionComp);
}
/**
* Create the Archive and Category combo controls.
*
* @param comp
* Composite to put the controls in.
*/
private void createComboControls(Composite comp) {
Composite comboComp = new Composite(comp, SWT.NONE);
GridLayout gl = new GridLayout(2, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
comboComp.setLayout(gl);
comboComp.setLayoutData(gd);
Label archCfgLbl = new Label(comboComp, SWT.NONE);
archCfgLbl.setText("Archive Config: ");
gd = new GridData(200, SWT.DEFAULT);
archCfgCbo = new Combo(comboComp, SWT.VERTICAL | SWT.DROP_DOWN
| SWT.BORDER | SWT.READ_ONLY);
archCfgCbo.setLayoutData(gd);
archCfgCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
/*
* TODO - add code to update the category combo box
*/
}
});
Label catLbl = new Label(comboComp, SWT.NONE);
catLbl.setText("Category: ");
gd = new GridData(200, SWT.DEFAULT);
categoryCbo = new Combo(comboComp, SWT.VERTICAL | SWT.DROP_DOWN
| SWT.BORDER | SWT.READ_ONLY);
categoryCbo.setLayoutData(gd);
categoryCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
/*
* TODO - add code to update the information in the table
*/
}
});
}
/**
* Create the compression controls.
*
* @param comp
* Composite to put the control in.
*/
private void createCompressionControls(Composite comp) {
Composite compressionComp = new Composite(comp, SWT.NONE);
GridLayout gl = new GridLayout(1, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
compressionComp.setLayout(gl);
compressionComp.setLayoutData(gd);
/*
* Uncompressed file size label
*/
Composite compressionLblComp = new Composite(compressionComp, SWT.NONE);
gl = new GridLayout(3, false);
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
compressionLblComp.setLayout(gl);
compressionLblComp.setLayoutData(gd);
Label uncompressLbl = new Label(compressionLblComp, SWT.NONE);
uncompressLbl.setText("Uncompressed Case Size: ");
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
uncompressSizeLbl = new Label(compressionLblComp, SWT.NONE);
uncompressSizeLbl.setText("1024 MB");
uncompressSizeLbl.setLayoutData(gd);
/*
* Compression controls
*/
compressChk = new Button(compressionComp, SWT.CHECK);
compressChk.setText("Compress Files");
compressChk.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleCompressSelection();
}
});
gd = new GridData();
gd.horizontalIndent = 20;
breakFilesChk = new Button(compressionComp, SWT.CHECK);
breakFilesChk.setText("Break into multiple files");
breakFilesChk.setLayoutData(gd);
breakFilesChk.setEnabled(false);
breakFilesChk.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleBreakFilesSelection(breakFilesChk.getSelection());
}
});
Composite maxFileSizeComp = new Composite(compressionComp, SWT.NONE);
gl = new GridLayout(3, false);
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
gd.horizontalIndent = 20;
maxFileSizeComp.setLayout(gl);
maxFileSizeComp.setLayoutData(gd);
maxFileSizeLbl = new Label(maxFileSizeComp, SWT.NONE);
maxFileSizeLbl.setText("Max File Size: ");
maxFileSizeLbl.setEnabled(false);
gd = new GridData(60, SWT.DEFAULT);
fileSizeSpnr = new Spinner(maxFileSizeComp, SWT.BORDER);
fileSizeSpnr.setIncrement(1);
fileSizeSpnr.setPageIncrement(50);
fileSizeSpnr.setMaximum(2000);
fileSizeSpnr.setMinimum(500);
fileSizeSpnr.setLayoutData(gd);
fileSizeSpnr.setEnabled(false);
fileSizeCbo = new Combo(maxFileSizeComp, SWT.VERTICAL | SWT.DROP_DOWN
| SWT.BORDER | SWT.READ_ONLY);
fileSizeCbo.setEnabled(false);
fileSizeCbo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleFileSizeChangeSelection();
}
});
}
/**
* Create the file browser controls.
*/
private void createFileBrowserControls() {
Composite fileBrowserComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(4, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
fileBrowserComp.setLayout(gl);
fileBrowserComp.setLayoutData(gd);
Label caseLbl = new Label(fileBrowserComp, SWT.NONE);
caseLbl.setText("Case Location: ");
gd = new GridData(300, SWT.DEFAULT);
locationLbl = new Label(fileBrowserComp, SWT.BORDER);
locationLbl.setLayoutData(gd);
Button browseBtn = new Button(fileBrowserComp, SWT.PUSH);
browseBtn.setText(" Browse... ");
browseBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
handleBrowserSelection();
}
});
}
/**
* Create the table control.
*/
private void createTable() {
tableComp = new ArchiveTableComp(shell, TableType.Case);
}
/**
* Create the bottom action buttons.
*/
private void createBottomActionButtons() {
Composite actionControlComp = new Composite(shell, SWT.NONE);
GridLayout gl = new GridLayout(3, false);
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
actionControlComp.setLayout(gl);
actionControlComp.setLayoutData(gd);
Button exportBtn = new Button(actionControlComp, SWT.PUSH);
exportBtn.setText(" Export Case Config... ");
exportBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
Button generateBtn = new Button(actionControlComp, SWT.PUSH);
generateBtn.setText(" Generate ");
generateBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
}
});
gd = new GridData(SWT.RIGHT, SWT.DEFAULT, true, false);
Button closeBtn = new Button(actionControlComp, SWT.PUSH);
closeBtn.setText(" Close ");
closeBtn.setLayoutData(gd);
closeBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
close();
}
});
}
/**
* Enable/Disable controls based on the compression check box.
*/
private void handleCompressSelection() {
if (compressChk.getSelection()) {
handleBreakFilesSelection(breakFilesChk.getSelection());
} else {
handleBreakFilesSelection(false);
}
breakFilesChk.setEnabled(compressChk.getSelection());
}
/**
* Enable/Disable file size controls.
*
* @param enabled
* Enabled flag.
*/
private void handleBreakFilesSelection(boolean enabled) {
maxFileSizeLbl.setEnabled(enabled);
fileSizeSpnr.setEnabled(enabled);
fileSizeCbo.setEnabled(enabled);
}
/**
* Action performed when the file size has changed.
*/
private void handleFileSizeChangeSelection() {
/*
* If the same item was selected just return.
*/
if (fileSizeCbo.getItem(fileSizeCbo.getSelectionIndex()).equals(
(String) fileSizeCbo.getData())) {
return;
}
if (fileSizeCbo.getItem(fileSizeCbo.getSelectionIndex()).equals("MB")) {
fileSizeSpnr.setIncrement(1);
fileSizeSpnr.setPageIncrement(50);
fileSizeSpnr.setMaximum(2000);
fileSizeSpnr.setMinimum(500);
fileSizeSpnr.setSelection(500);
} else {
fileSizeSpnr.setIncrement(1);
fileSizeSpnr.setPageIncrement(5);
fileSizeSpnr.setMinimum(1);
fileSizeSpnr.setMaximum(10);
fileSizeSpnr.setSelection(1);
}
fileSizeCbo
.setData(fileSizeCbo.getItem(fileSizeCbo.getSelectionIndex()));
}
/**
* Display the directory browser dialog.
*/
private void handleBrowserSelection() {
DirectoryDialog dlg = new DirectoryDialog(shell, SWT.OPEN);
String dirName = dlg.open();
if (dirName != null) {
locationLbl.setText(trimDirectoryName(dirName));
locationLbl.setToolTipText(dirName);
locationLbl.setData(dirName);
}
}
/**
* Add a separator line to the provided container.
*
* @param container
* Composite.
* @param orientation
* Vertical or horizontal orientation.
*/
private void addSeparator(Composite container, int orientation) {
// Separator label
GridData gd;
if (orientation == SWT.HORIZONTAL) {
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
} else {
gd = new GridData(SWT.DEFAULT, SWT.FILL, false, true);
}
Label sepLbl = new Label(container, SWT.SEPARATOR | orientation);
sepLbl.setLayoutData(gd);
}
/**
* Display the date/time controls.
*
* @param startTimeFlag
* True for start time, false for end time.
*/
private void displayDateTimeControls(boolean startTimeFlag) {
AwipsCalendar ac = new AwipsCalendar(shell, 1);
Date date = (Date) ac.open();
if (startTimeFlag) {
if (date.after(endDate)) {
MessageBox mb = new MessageBox(shell, SWT.ICON_QUESTION
| SWT.OK);
mb.setText("Date Error");
mb.setMessage("The selected start date is after the end date. Resetting.");
mb.open();
return;
}
} else {
if (date.before(startDate)) {
MessageBox mb = new MessageBox(shell, SWT.ICON_QUESTION
| SWT.OK);
mb.setText("Date Error");
mb.setMessage("The selected end date is before the start date. Resetting.");
mb.open();
return;
}
}
if (startTimeFlag) {
startTimeLbl.setText(dateFmt.format(date));
} else {
endTimeLbl.setText(dateFmt.format(date));
}
}
/**
* Trim the directory name if it is too long to fit in the label. The
* beginning of the path will be replaced with "...".
*
* @param str
* @return
*/
private String trimDirectoryName(String str) {
Point strExtent;
Point ellipseExt;
GC gc = new GC(shell);
gc.setFont(locationLbl.getFont());
ellipseExt = gc.stringExtent("...");
int labelWidth = locationLbl.getBounds().width - (5 + ellipseExt.x);
strExtent = gc.stringExtent(str);
if (strExtent.x > labelWidth) {
while (strExtent.x > labelWidth) {
str = str.substring(2);
strExtent = gc.stringExtent(str);
}
str = "..." + str;
}
gc.dispose();
return str;
}
/********************************************************
* TEST METHODS ******************************************************
*/
private void populateComboBoxes() {
archCfgCbo.add("Raw");
archCfgCbo.add("Processed");
archCfgCbo.select(0);
categoryCbo.add("Radar");
categoryCbo.add("Point");
categoryCbo.add("Satellite");
categoryCbo.select(0);
fileSizeCbo.add("MB");
fileSizeCbo.add("GB");
fileSizeCbo.select(0);
fileSizeCbo
.setData(fileSizeCbo.getItem(fileSizeCbo.getSelectionIndex()));
}
}

View file

@ -7,8 +7,7 @@ Bundle-Activator: com.raytheon.uf.viz.aviation.advisory.Activator
Bundle-Vendor: RAYTHEON
Eclipse-RegisterBuddy: com.raytheon.viz.core, com.raytheon.uf.viz.core
Require-Bundle: com.raytheon.uf.viz.core
Import-Package: com.raytheon.edex.scriptfactory,
com.raytheon.uf.common.dataplugin,
Import-Package: com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.geospatial,
com.raytheon.uf.common.time,
com.raytheon.uf.viz.core,

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.raytheon.uf.edex.event.feature</name>
<name>com.raytheon.uf.viz.base.feature</name>
<comment></comment>
<projects>
</projects>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<feature
id="com.raytheon.uf.viz.collaboration.product.feature"
label="Collaboration Product Feature"
id="com.raytheon.uf.viz.base.feature"
label="CAVE Feature"
version="1.0.0.qualifier"
provider-name="RAYTHEON">
@ -17,233 +17,231 @@
[Enter License Description here.]
</license>
<includes
id="org.eclipse.rcp"
version="0.0.0"/>
<requires>
<import feature="com.raytheon.uf.common.base.feature" version="1.0.0.qualifier"/>
</requires>
<plugin
id="com.raytheon.uf.viz.collaboration.comm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.google.guava"
id="com.raytheon.uf.viz.core"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.common.comm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.status"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.serialization"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.util"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.http"
id="com.raytheon.viz.ui"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.apache.commons.codec"
id="com.raytheon.uf.viz.personalities.cave"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.commons.logging"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.log4j"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="javax.jms"
id="org.apache.activemq"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.geotools"
id="com.raytheon.uf.viz.localization"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.viz.core"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.facebook.thrift"
id="org.eclipse.core.resources"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.ide"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.workbench"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.team.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.core.filesystem"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ui.workbench.texteditor"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jface.text"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.text"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.compare.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.menus"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.ui.menus"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="javax.persistence"
id="com.raytheon.viz.alerts"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.productbrowser"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.junit"
id="com.raytheon.uf.viz.core.rsc"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="net.sf.swtaddons"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="net.sf.cglib"
id="org.eclipse.draw2d"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.emf.common.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.viz.core.gl"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.apache.commons.lang"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="javax.vecmath"
id="javax.media.opengl"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="javax.measure"
id="javax.media.opengl.linux32"
os="linux"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
<plugin
id="javax.media.opengl.linux64"
os="linux"
arch="x86_64"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
<plugin
id="javax.media.opengl.win32"
os="win32"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
<plugin
id="com.raytheon.uf.common.dataplugin.maps"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.core.maps"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.jivesoftware.smack"
id="com.raytheon.viz.ui.tools.nav"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.spring.dm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf.presence"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf.provider.xmpp"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf.identity"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf.provider"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf.filetransfer"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ecf.sharedobject"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.concurrent"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.application"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.collaboration.product"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.collaboration.core.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.localization"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.serialization.comm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.auth"
id="org.eclipse.emf.common"
download-size="0"
install-size="0"
version="0.0.0"

View file

@ -8,8 +8,7 @@ Bundle-Vendor: RAYTHEON
Eclipse-RegisterBuddy: com.raytheon.viz.core, com.raytheon.uf.viz.core
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Import-Package: com.raytheon.edex.scriptfactory,
com.raytheon.uf.common.dataplugin,
Import-Package: com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.dataplugin.bufrsigwx,
com.raytheon.uf.common.dataplugin.bufrsigwx.common,
com.raytheon.uf.common.geospatial,

View file

@ -8,7 +8,6 @@ Bundle-Vendor: RAYTHEON
Eclipse-RegisterBuddy: com.raytheon.viz.core, com.raytheon.uf.viz.core
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: com.raytheon.edex.plugin.ccfp,
com.raytheon.edex.scriptfactory,
com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.geospatial,
com.raytheon.uf.common.status,

View file

@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.common.dataplugin.level;bundle-version="1.12.1174",
com.raytheon.uf.common.dataplugin.satellite;bundle-version="1.0.0",
com.raytheon.uf.common.dataplugin.grid;bundle-version="1.0.0",
com.raytheon.uf.common.parameter;bundle-version="1.0.0"
com.raytheon.uf.common.parameter;bundle-version="1.0.0",
com.raytheon.uf.common.colormap;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.uf.viz.cloudheight,

View file

@ -36,6 +36,7 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.opengis.metadata.spatial.PixelOrientation;
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
import com.raytheon.uf.common.dataplugin.satellite.units.ir.IRPixel;
import com.raytheon.uf.common.geospatial.ISpatialObject;
import com.raytheon.uf.common.geospatial.MapUtil;
@ -53,7 +54,6 @@ import com.raytheon.uf.viz.cloudheight.impl.ModelCloudHeightSourceImplementation
import com.raytheon.uf.viz.cloudheight.impl.RaobCloudHeightSourceImplementation;
import com.raytheon.uf.viz.cloudheight.rsc.PopupSkewTResource;
import com.raytheon.uf.viz.cloudheight.ui.CloudHeightRightClickAction;
import com.raytheon.uf.viz.core.drawables.ColorMapParameters;
import com.raytheon.uf.viz.core.drawables.IDescriptor;
import com.raytheon.uf.viz.core.drawables.IDescriptor.FramesInfo;
import com.raytheon.uf.viz.core.drawables.ResourcePair;

View file

@ -1,14 +0,0 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Collaboration Core UI
Bundle-SymbolicName: com.raytheon.uf.viz.collaboration.core.ui
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.raytheon.uf.viz.collaboration.core.ui.Activator
Bundle-Vendor: RAYTHEON
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
com.raytheon.uf.viz.collaboration.comm;bundle-version="1.0.0",
org.eclipse.ecf.presence;bundle-version="2.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: com.raytheon.uf.viz.collaboration.core.ui

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

View file

@ -1,50 +0,0 @@
package com.raytheon.uf.viz.collaboration.core.ui;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
public class Activator extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "com.raytheon.uf.viz.collaboration.core.ui"; //$NON-NLS-1$
// The shared instance
private static Activator plugin;
/**
* The constructor
*/
public Activator() {
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static Activator getDefault() {
return plugin;
}
}

View file

@ -1,295 +0,0 @@
/**
* 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.collaboration.core.ui;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.tree.TreePath;
import org.eclipse.ecf.presence.roster.IRoster;
import org.eclipse.ecf.presence.roster.IRosterEntry;
import org.eclipse.ecf.presence.roster.IRosterGroup;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseTrackAdapter;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import com.google.common.eventbus.Subscribe;
import com.raytheon.uf.viz.collaboration.comm.identity.event.IRosterChangeEvent;
import com.raytheon.uf.viz.collaboration.comm.provider.session.CollaborationConnection;
import com.raytheon.uf.viz.collaboration.core.ui.data.ActiveSessionsTreeData;
import com.raytheon.uf.viz.collaboration.core.ui.data.MyUserTreeData;
import com.raytheon.uf.viz.collaboration.core.ui.data.UserGroupTreeData;
import com.raytheon.uf.viz.collaboration.core.ui.tree.UsersTreeContentProvider;
import com.raytheon.uf.viz.collaboration.core.ui.tree.UsersTreeLabelProvider;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class CollaborationGroupControl {
private Text filterText;
private TreeViewer usersTreeViewer;
private IMenuManager mainMenu;
private ICollaborationUIManager manager;
private ActiveSessionsTreeData activeSessions;
private MyUserTreeData myUserData;
private List<UserGroupTreeData> groups = new ArrayList<UserGroupTreeData>();
public CollaborationGroupControl(Composite compsite,
ICollaborationUIManager manager) {
this.manager = manager;
initializeGroupControl(compsite);
manager.getConnection().registerEventHandler(this);
}
/**
* @param parent
*/
private void initializeGroupControl(Composite parent) {
parent.setLayout(new GridLayout());
createFilterText(parent);
createUserTree(parent);
createMainMenu();
}
/**
* @param parent
*/
private void createUserTree(Composite parent) {
Composite treeComp = new Composite(parent, SWT.NONE);
treeComp.setLayout(new GridLayout(1, false));
treeComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
Tree tree = new Tree(treeComp, SWT.VIRTUAL | SWT.MULTI | SWT.V_SCROLL
| SWT.H_SCROLL | SWT.BORDER);
tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
// any width would work
new TreeColumn(tree, SWT.NONE).setWidth(200);
MenuManager menuMgr = new MenuManager();
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager mgr) {
fillContextMenu(mgr);
}
});
Menu menu = menuMgr.createContextMenu(tree);
tree.setMenu(menu);
usersTreeViewer = new TreeViewer(tree);
usersTreeViewer.setContentProvider(new UsersTreeContentProvider());
usersTreeViewer.setLabelProvider(new UsersTreeLabelProvider());
populateTree();
}
private void populateTree() {
if (myUserData == null) {
myUserData = new MyUserTreeData(CollaborationConnection
.getConnection().getUser());
activeSessions = new ActiveSessionsTreeData();
usersTreeViewer.add(new TreePath(new Object[0]), new Object[] {
myUserData, activeSessions });
}
usersTreeViewer.remove(groups.toArray(new Object[groups.size()]));
groups.clear();
populateGroups();
}
/**
*
*/
private void populateGroups() {
Map<String, UserGroupTreeData> dataMap = new HashMap<String, UserGroupTreeData>();
IRoster roster = CollaborationConnection.getConnection()
.getRosterManager().getRoster();
for (Object item : roster.getItems()) {
if (item instanceof IRosterGroup) {
IRosterGroup group = (IRosterGroup) item;
} else if (item instanceof IRosterEntry) {
IRosterEntry entry = (IRosterEntry) item;
}
}
}
private void fillContextMenu(IMenuManager mgr) {
// TODO: Fill context menu based on selected tree items
}
/**
*
*/
private void createFilterText(Composite parent) {
Composite comp = new Composite(parent, SWT.BORDER);
comp.setBackground(Display.getCurrent().getSystemColor(
SWT.COLOR_LIST_BACKGROUND));
GridLayout layout = new GridLayout(2, false);
layout.marginHeight = 0;
layout.marginWidth = 0;
comp.setLayout(layout);
GridData gd = new GridData(SWT.FILL, SWT.NONE, true, false);
comp.setLayoutData(gd);
filterText = new Text(comp, SWT.SINGLE | SWT.NONE);
GridData data = new GridData(SWT.FILL, SWT.NONE, true, false);
filterText.setLayoutData(data);
filterText.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
filter();
}
});
// Load icons to be used for label button
final Image inactiveImage = AbstractUIPlugin.imageDescriptorFromPlugin(
PlatformUI.PLUGIN_ID, "$nl$/icons/full/dtool16/clear_co.gif")
.createImage();
final Image activeImage = AbstractUIPlugin.imageDescriptorFromPlugin(
PlatformUI.PLUGIN_ID, "$nl$/icons/full/etool16/clear_co.gif")
.createImage();
final Label clearButton = new Label(comp, SWT.NONE);
clearButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER,
false, false));
clearButton.setImage(inactiveImage);
clearButton.setBackground(parent.getDisplay().getSystemColor(
SWT.COLOR_LIST_BACKGROUND));
clearButton.setToolTipText("Clear text");
// Add listener for enter/exit changing icon
clearButton.addMouseTrackListener(new MouseTrackAdapter() {
public void mouseEnter(MouseEvent e) {
clearButton.setImage(activeImage);
}
public void mouseExit(MouseEvent e) {
clearButton.setImage(inactiveImage);
}
});
// Add mouse listener for clear pressed
clearButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
filterText.setText("");
filter();
}
});
// Add dispose listener
clearButton.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
inactiveImage.dispose();
activeImage.dispose();
}
});
}
private void createMainMenu() {
// TODO: Populate the main menu
}
/**
* Get the {@link Tree} object that contains user information for the
* control
*
* @return
*/
public Tree getUserTree() {
return usersTreeViewer.getTree();
}
/**
* Gets the contribution items for the group main menu
*
* @return
*/
public IContributionItem[] getMainMenuItems() {
return mainMenu.getItems();
}
/**
* Filters the group view based on the text
*
* @param text
*/
private void filter() {
String currText = filterText.getText();
// TODO: Filter the visible tree objects
}
@Subscribe
public void handleRosterChangeEvent(IRosterChangeEvent rosterChangeEvent) {
// TODO: Handle roster events
switch (rosterChangeEvent.getType()) {
case ADD:
break;
case MODIFY:
break;
case DELETE:
break;
case PRESENCE:
break;
}
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class AliasAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ChangeFontAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ChangePasswordAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ChangeStatusMessageAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ChooseRoleAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ChooseSiteAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,163 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import static com.raytheon.uf.viz.collaboration.core.ui.CollaborationIconFactory.getIconImage;
import org.eclipse.jface.action.Action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* Factory for constructing core collaboration ui functionality actions
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class CollaborationActionFactory {
public static Action createAliasAction(CollaborationGroupControl control) {
AbstractCollaborationAction action = new AliasAction();
action.setControl(control);
action.setText("Alias...");
// TODO: Find Alias image
action.setImageDescriptor(getIconImage("alias.gif"));
return action;
}
public static Action createChangeFontAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new ChangeFontAction();
action.setControl(control);
action.setText("Change Font...");
action.setImageDescriptor(getIconImage("font.gif"));
return action;
}
public static Action createChangePasswordAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new ChangePasswordAction();
action.setControl(control);
action.setText("Change Password...");
return action;
}
public static Action createChooseRoleAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new ChooseRoleAction();
action.setControl(control);
action.setText("Change Role");
return action;
}
public static Action createChooseSiteAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new ChooseSiteAction();
action.setControl(control);
action.setText("Change Site");
return action;
}
public static Action createChooseStatusAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new ChooseStatusAction();
action.setControl(control);
action.setText("Change Status");
return action;
}
public static Action createCollapseAllAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new CollapseAllAction();
action.setControl(control);
action.setText("Collapse All...");
action.setImageDescriptor(getIconImage("collapseall.gif"));
return action;
}
public static Action createCreateGroupAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new CreateGroupAction();
action.setControl(control);
action.setText("Create Group...");
action.setImageDescriptor(getIconImage("group.gif"));
return action;
}
public static Action createCreateSessionAction(
CollaborationGroupControl control) {
AbstractCollaborationAction action = new CreateSessionAction();
action.setControl(control);
action.setText("Create Session...");
action.setImageDescriptor(getIconImage("add_collaborate.gif"));
return action;
}
public static Action createLoginAction(CollaborationGroupControl control) {
AbstractCollaborationAction action = new LogoutAction();
action.setControl(control);
action.setText("Login");
action.setImageDescriptor(getIconImage("login.gif"));
return action;
}
public static Action createLogoutAction(CollaborationGroupControl control) {
AbstractCollaborationAction action = new LogoutAction();
action.setControl(control);
action.setText("Logout");
action.setImageDescriptor(getIconImage("logout.gif"));
return action;
}
public static Action createP2PChatAction(CollaborationGroupControl control) {
AbstractCollaborationAction action = new P2PChatAction();
action.setControl(control);
action.setText("Chat...");
action.setImageDescriptor(getIconImage("chats.gif"));
return action;
}
public static Action createShowFeedAction(CollaborationGroupControl control) {
AbstractCollaborationAction action = new ShowFeedAction();
action.setControl(control);
action.setText("Display Feed...");
action.setImageDescriptor(getIconImage("feed.gif"));
return action;
}
public static Action createViewLogAction(CollaborationGroupControl control) {
AbstractCollaborationAction action = new ViewLogAction();
action.setControl(control);
action.setText("View Log...");
action.setImageDescriptor(getIconImage("log.gif"));
return action;
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class CollapseAllAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class CreateGroupAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class LoginAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class LogoutAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class P2PChatAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ShowFeedAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,52 +0,0 @@
/**
* 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.collaboration.core.ui.action;
import com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class ViewLogAction extends AbstractCollaborationAction {
/* (non-Javadoc)
* @see com.raytheon.uf.viz.collaboration.core.ui.action.AbstractCollaborationAction#run(com.raytheon.uf.viz.collaboration.core.ui.CollaborationGroupControl)
*/
@Override
public void run(CollaborationGroupControl control) {
// TODO Auto-generated method stub
}
}

View file

@ -1,83 +0,0 @@
/**
* 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.collaboration.core.ui.data;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.ecf.presence.roster.IRosterEntry;
import org.eclipse.ecf.presence.roster.IRosterGroup;
import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 26, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class UserGroupTreeData {
private String groupName;
private IRosterGroup group;
private List<UserTreeData> groupUsers;
public UserGroupTreeData(String groupName, IRosterGroup group) {
this.groupName = groupName;
this.group = group;
this.groupUsers = new ArrayList<UserTreeData>();
}
/**
* @return the groupName
*/
public String getGroupName() {
return groupName;
}
/**
* @return the groupUsers
*/
public List<UserTreeData> getGroupUsers() {
return new ArrayList<UserTreeData>(groupUsers);
}
/**
* Adds a user to this group
*
* @param user
*/
public void addUserToGroup(UserId user, IRosterEntry entry) {
groupUsers.add(new UserTreeData(user, entry));
}
}

View file

@ -1,114 +0,0 @@
/**
* 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.collaboration.core.ui.tree;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 27, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class UsersTreeContentProvider implements ITreeContentProvider {
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
@Override
public void dispose() {
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
* .viewers.Viewer, java.lang.Object, java.lang.Object)
*/
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITreeContentProvider#getElements(java.lang.
* Object)
*/
@Override
public Object[] getElements(Object inputElement) {
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.
* Object)
*/
@Override
public Object[] getChildren(Object parentElement) {
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object
* )
*/
@Override
public Object getParent(Object element) {
return null;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.
* Object)
*/
@Override
public boolean hasChildren(Object element) {
return false;
}
}

View file

@ -1,110 +0,0 @@
/**
* 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.collaboration.core.ui.tree;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.swt.graphics.Image;
import com.raytheon.uf.viz.collaboration.comm.identity.info.SiteConfigInformation;
import com.raytheon.uf.viz.collaboration.comm.provider.session.CollaborationConnection;
import com.raytheon.uf.viz.collaboration.comm.provider.user.UserId;
import com.raytheon.uf.viz.collaboration.core.ui.data.ActiveSessionsTreeData;
import com.raytheon.uf.viz.collaboration.core.ui.data.MyUserTreeData;
import com.raytheon.uf.viz.collaboration.core.ui.data.UserGroupTreeData;
import com.raytheon.uf.viz.collaboration.core.ui.data.UserTreeData;
/**
* TODO Add Description
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 27, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class UsersTreeLabelProvider extends ColumnLabelProvider {
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
*/
@Override
public Image getImage(Object element) {
Image image = null;
if (element instanceof UserTreeData) {
} else if (element instanceof MyUserTreeData) {
} else if (element instanceof UserGroupTreeData) {
} else if (element instanceof ActiveSessionsTreeData) {
}
return image;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
*/
@Override
public String getText(Object element) {
String text = null;
if (element instanceof UserTreeData) {
text = formatUserId(((UserTreeData) element).getUser());
} else if (element instanceof MyUserTreeData) {
text = formatUserId(((UserTreeData) element).getUser())
+ " - "
+ CollaborationConnection.getConnection()
.getConnectionData().getServer();
} else if (element instanceof UserGroupTreeData) {
text = ((UserGroupTreeData) element).getGroupName();
} else if (element instanceof ActiveSessionsTreeData) {
text = "Active Sessions";
}
return text;
}
public static String formatUserId(UserId user) {
Object site = user.getProperties().get(SiteConfigInformation.SITE_NAME);
Object role = user.getProperties().get(SiteConfigInformation.ROLE_NAME);
String name = (user.getAlias() != null ? user.getAlias() : user
.getName());
if (site != null) {
name += " - " + site;
}
if (role != null) {
name += " - " + role;
}
return name;
}
}

View file

@ -25,6 +25,8 @@ import java.util.List;
import com.google.common.eventbus.Subscribe;
import com.raytheon.uf.common.colormap.IColorMap;
import com.raytheon.uf.common.colormap.image.ColorMapData;
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.collaboration.display.Activator;
import com.raytheon.uf.viz.core.DrawableImage;
@ -34,7 +36,6 @@ import com.raytheon.uf.viz.core.IMesh;
import com.raytheon.uf.viz.core.PixelCoverage;
import com.raytheon.uf.viz.core.data.IColorMapDataRetrievalCallback;
import com.raytheon.uf.viz.core.data.IRenderedImageCallback;
import com.raytheon.uf.viz.core.drawables.ColorMapParameters;
import com.raytheon.uf.viz.core.drawables.IColormappedImage;
import com.raytheon.uf.viz.core.drawables.IImage;
import com.raytheon.uf.viz.core.drawables.PaintProperties;

View file

@ -21,7 +21,6 @@
<import feature="com.raytheon.uf.viz.common.core.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.core.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.cots.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.eclipse.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.viz.radar.feature" version="1.0.0.qualifier"/>
</requires>
@ -95,12 +94,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.google.guava"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.drawing"
download-size="0"
@ -150,4 +143,11 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.concurrent"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View file

@ -1,13 +0,0 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Collaboration Product
Bundle-SymbolicName: com.raytheon.uf.viz.collaboration.product;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.raytheon.uf.viz.collaboration.product.Activator
Bundle-Vendor: RAYTHEON
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
com.raytheon.uf.viz.application;bundle-version="1.0.0",
com.raytheon.uf.common.localization;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy

View file

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="collaboration" id="com.raytheon.uf.viz.collaboration.product.collaboration" application="com.raytheon.uf.viz.application.application" useFeatures="true" includeLaunchers="true">
<aboutInfo>
<image path="/com.raytheon.viz.product.awips/icons/ipr.gif"/>
<text>
Alert Visualizer
Developed on the Raytheon Visualization Environment (viz)
</text>
</aboutInfo>
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>-data @user.home/caveData -user @user.home/caveData -clean -component collaboration</programArgs>
<programArgsLin>-consoleLog</programArgsLin>
<vmArgs>-Xincgc -Xmx256M -Xss2024k -Dosgi.instance.area.readOnly=true -Dosgi.hook.configurators.exclude=org.eclipse.core.runtime.internal.adaptor.EclipseLogHook,org.eclipse.core.runtime.internal.adaptor.EclipseErrorHandler -Dorg.eclipse.update.reconcile=false -Dqpid.dest_syntax=BURL -Dorg.eclipse.update.reconcile=false -XX:MaxPermSize=128m -Dorg.eclipse.ui/KEY_CONFIGURATION_ID=com.raytheon.viz.ui.awips.scheme -Dawips.mode=pypies -Dqpid.dest_syntax=BURL -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false</vmArgs>
</launcherArgs>
<windowImages/>
<launcher name="collaboration">
<solaris/>
<win useIco="false">
<bmp
winSmallHigh="/com.raytheon.viz.ui.personalities.awips/alertViz_icon16x16_32bit.bmp"
winSmallLow="/com.raytheon.viz.ui.personalities.awips/alertViz_icon16x16_8bit.bmp"
winMediumHigh="/com.raytheon.viz.ui.personalities.awips/alertViz_icon32x32_32bit.bmp"
winMediumLow="/com.raytheon.viz.ui.personalities.awips/alertViz_icon32x32_8bit.bmp"
winLargeHigh="/com.raytheon.viz.ui.personalities.awips/alertViz_icon48x48_32bit.bmp"
winLargeLow="/com.raytheon.viz.ui.personalities.awips/alertViz_icon48x48_8bit.bmp"/>
</win>
</launcher>
<vm>
<linux include="true">jdk1.6.0</linux>
<windows include="true">jdk1.6.0</windows>
</vm>
<plugins>
</plugins>
<features>
<feature id="com.raytheon.uf.viz.collaboration.product.feature" version="1.0.0.qualifier"/>
</features>
<configurations>
<plugin id="com.raytheon.uf.viz.spring.dm" autoStart="true" startLevel="5" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
</configurations>
</product>

View file

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<?eclipse version="3.2"?>
<plugin>
<extension
point="com.raytheon.uf.viz.core.component">
<component key="collaboration" class="com.raytheon.uf.viz.collaboration.product.CollaborationComponent"/>
</extension>
<extension
id="collaboration"
point="org.eclipse.core.runtime.products">
<product
application="com.raytheon.uf.viz.application.application"
name="collaboration">
<property
name="aboutText"
value="Alert Visualizer&#x0A;&#x0A;&#x0A;&#x0A;Developed on the Raytheon Visualization Environment (viz)">
</property>
<property
name="aboutImage"
value="platform:/plugin/com.raytheon.viz.product.awips/icons/ipr.gif">
</property>
<property
name="appName"
value="collaboration">
</property>
</product>
</extension>
</plugin>

View file

@ -1,222 +0,0 @@
/**
* 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.collaboration.product;
import java.io.File;
import com.raytheon.uf.common.localization.ILocalizationAdapter;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.LocalizationFile.ModifiableLocalizationFile;
import com.raytheon.uf.common.localization.exception.LocalizationOpFailedException;
/**
* TODO Mimic CAVELocalizationAdapter!
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jun 27, 2012 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class CollaborationLocalizationAdapter implements ILocalizationAdapter {
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#getPath(com.
* raytheon.uf.common.localization.LocalizationContext, java.lang.String)
*/
@Override
public File getPath(LocalizationContext context, String fileName) {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see com.raytheon.uf.common.localization.ILocalizationAdapter#
* getLocalizationMetadata
* (com.raytheon.uf.common.localization.LocalizationContext[],
* java.lang.String)
*/
@Override
public ListResponse[] getLocalizationMetadata(
LocalizationContext[] context, String fileName)
throws LocalizationOpFailedException {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#retrieve(com
* .raytheon.uf.common.localization.LocalizationFile)
*/
@Override
public void retrieve(LocalizationFile file)
throws LocalizationOpFailedException {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#save(com.raytheon
* .uf.common.localization.LocalizationFile. ModifiableLocalizationFile)
*/
@Override
public boolean save(ModifiableLocalizationFile file)
throws LocalizationOpFailedException {
// TODO Auto-generated method stub
return false;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#listDirectory
* (com.raytheon.uf.common.localization.LocalizationContext[],
* java.lang.String, boolean, boolean)
*/
@Override
public ListResponse[] listDirectory(LocalizationContext[] context,
String path, boolean recursive, boolean filesOnly)
throws LocalizationOpFailedException {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see com.raytheon.uf.common.localization.ILocalizationAdapter#
* getLocalSearchHierarchy
* (com.raytheon.uf.common.localization.LocalizationContext
* .LocalizationType)
*/
@Override
public LocalizationContext[] getLocalSearchHierarchy(LocalizationType type) {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#getStaticContexts
* ()
*/
@Override
public LocalizationType[] getStaticContexts() {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#getContext(com
* .raytheon.uf.common.localization.LocalizationContext.LocalizationType,
* com
* .raytheon.uf.common.localization.LocalizationContext.LocalizationLevel)
*/
@Override
public LocalizationContext getContext(LocalizationType type,
LocalizationLevel level) {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#delete(com.raytheon
* .uf.common.localization.LocalizationFile. ModifiableLocalizationFile)
*/
@Override
public boolean delete(ModifiableLocalizationFile file)
throws LocalizationOpFailedException {
// TODO Auto-generated method stub
return false;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#getContextList
* (com
* .raytheon.uf.common.localization.LocalizationContext.LocalizationLevel)
*/
@Override
public String[] getContextList(LocalizationLevel level)
throws LocalizationOpFailedException {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#getAvailableLevels
* ()
*/
@Override
public LocalizationLevel[] getAvailableLevels() {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.common.localization.ILocalizationAdapter#exists(com.raytheon
* .uf.common.localization.LocalizationFile)
*/
@Override
public boolean exists(LocalizationFile file) {
// TODO Auto-generated method stub
return false;
}
}

View file

@ -18,51 +18,10 @@
</license>
<requires>
<import feature="com.raytheon.uf.viz.base.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.cots.feature" version="1.0.0.qualifier"/>
</requires>
<plugin
id="com.raytheon.uf.common.auth"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.colormap"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.comm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.dataquery"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.datastorage"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.derivparam"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.dissemination"
download-size="0"
@ -70,60 +29,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.geospatial"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.common.units"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.common.localization"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.menus"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.message"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.pointdata"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.pypies"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.python"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.cache"
download-size="0"
@ -131,20 +36,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.serialization"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.serialization.comm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.site"
download-size="0"
@ -152,19 +43,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.status"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.time"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.common.topo"
download-size="0"
@ -172,20 +50,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.util"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.alertmonitor"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.edex.common"
download-size="0"
@ -193,13 +57,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.dataplugin"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.edex.core"
download-size="0"
@ -214,20 +71,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.dataplugin.level"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.edex.topo"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.edex.meteolib"
download-size="0"
@ -284,34 +127,40 @@
unpack="false"/>
<plugin
id="com.raytheon.uf.common.stats"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.event"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.dataaccess"
id="meteolib.jni"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.common.image"
id="meteolib.jni.linux32"
os="linux"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
fragment="true"/>
<plugin
id="com.raytheon.uf.common.python.concurrent"
id="meteolib.jni.linux64"
os="linux"
arch="x86_64"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
<plugin
id="meteolib.jni.win32"
os="win32"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
<plugin
id="javax.servlet"
download-size="0"
install-size="0"
version="0.0.0"

View file

@ -19,48 +19,10 @@
<requires>
<import feature="com.raytheon.uf.viz.cots.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.eclipse.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.common.core.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.localization.perspective.feature" version="1.0.0.qualifier"/>
</requires>
<plugin
id="com.raytheon.viz.core"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.viz.core.gl"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.core"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.core.rsc"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.productbrowser"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.localization"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.python.swt"
download-size="0"
@ -68,18 +30,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.ui.menus"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.viz.ui"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.xy"
download-size="0"
@ -123,13 +73,6 @@
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.viz.alerts"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.derivparam"
download-size="0"
@ -148,13 +91,6 @@
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.spring.dm"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.viz.ui.tools.looping"
download-size="0"
@ -167,12 +103,6 @@
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.viz.ui.tools.nav"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.viz.core.contours"
download-size="0"
@ -187,25 +117,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.common.dataplugin.maps"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.viz.core.maps"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.raytheon.uf.common.alertviz"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.raytheon.uf.viz.alertviz"
download-size="0"
@ -249,4 +160,38 @@
install-size="0"
version="0.0.0"/>
<plugin
id="org.eclipse.jdt.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.core.manipulation"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.launching"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.jdt.debug"
download-size="0"
install-size="0"
version="0.0.0"/>
</feature>

View file

@ -19,7 +19,6 @@
<requires>
<import feature="com.raytheon.uf.viz.cots.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.eclipse.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.common.core.feature" version="1.0.0.qualifier"/>
<import feature="com.raytheon.uf.viz.core.feature" version="1.0.0.qualifier"/>
</requires>

View file

@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.ui,
com.raytheon.uf.viz.core.rsc;bundle-version="1.0.0",
com.raytheon.uf.viz.ui.menus;bundle-version="1.12.1174",
com.raytheon.uf.common.dataplugin.maps;bundle-version="1.0.0",
com.raytheon.uf.viz.localization;bundle-version="1.12.1174"
com.raytheon.uf.viz.localization;bundle-version="1.12.1174",
com.raytheon.uf.common.colormap;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Eclipse-RegisterBuddy: com.raytheon.uf.viz.core
@ -27,4 +28,5 @@ Export-Package: com.raytheon.uf.viz.core.maps,
com.raytheon.uf.viz.core.maps.actions,
com.raytheon.uf.viz.core.maps.display,
com.raytheon.uf.viz.core.maps.menus,
com.raytheon.uf.viz.core.maps.rsc
com.raytheon.uf.viz.core.maps.rsc,
com.raytheon.uf.viz.core.maps.scales

View file

@ -4,3 +4,4 @@ com.raytheon.uf.viz.core.maps.rsc.DbPointMapResourceData
com.raytheon.uf.viz.core.maps.MapStylePreferenceStore
com.raytheon.uf.viz.core.maps.display.MapRenderableDisplay
com.raytheon.uf.viz.core.maps.display.PlainMapRenderableDisplay
com.raytheon.uf.viz.core.maps.scales.MapScaleRenderableDisplay

View file

@ -49,6 +49,12 @@
<commandParameter id="mapName" name="Map Name" optional="false"/>
<commandParameter id="mapPath" name="Map Path" optional="false"/>
</command>
<command
id="com.raytheon.viz.ui.maps.createProjection"
categoryId="com.raytheon.uf.viz.core.commandCategory"
description="Command to create a new map projection"
name="Create Projection">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
@ -56,6 +62,14 @@
class="com.raytheon.uf.viz.core.maps.actions.LoadMap"
commandId="com.raytheon.uf.viz.core.maps.actions.LoadMap">
</handler>
<handler
class="com.raytheon.uf.viz.core.maps.scales.MapScaleHandler"
commandId="com.raytheon.viz.ui.setScale">
</handler>
<handler
class="com.raytheon.uf.viz.core.maps.actions.CreateProjectionHandler"
commandId="com.raytheon.viz.ui.maps.createProjection">
</handler>
</extension>
<extension
point="com.raytheon.viz.ui.contextualMenu">
@ -110,4 +124,22 @@
value="mapStyles">
</path>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:file.new">
<command
commandId="com.raytheon.viz.ui.maps.createProjection"
label="Map Projection..."
style="push">
</command>
</menuContribution>
<menuContribution
locationURI="menu:com.raytheon.viz.ui.scale">
<dynamic
class="com.raytheon.uf.viz.core.maps.scales.MapScalePopulator"
id="com.raytheon.uf.viz.core.maps.mapScales">
</dynamic>
</menuContribution>
</extension>
</plugin>

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.d2d.ui.map;
package com.raytheon.uf.viz.core.maps.actions;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
@ -25,7 +25,7 @@ import org.eclipse.core.commands.IHandler;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import com.raytheon.uf.viz.d2d.ui.dialogs.CreateProjectionDialog;
import com.raytheon.uf.viz.core.maps.dialogs.CreateProjectionDialog;
import com.raytheon.viz.ui.tools.AbstractTool;
/**

View file

@ -1,4 +1,4 @@
package com.raytheon.uf.viz.d2d.ui.map.actions;
package com.raytheon.uf.viz.core.maps.actions;
/**
* This software was developed and / or modified by Raytheon Company,
@ -29,12 +29,10 @@ import org.eclipse.core.commands.ExecutionException;
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.core.maps.scales.MapScales;
import com.raytheon.uf.viz.core.maps.scales.MapScales.MapScale;
import com.raytheon.uf.viz.core.maps.scales.MapScales.PartId;
import com.raytheon.uf.viz.core.procedures.Bundle;
import com.raytheon.uf.viz.core.status.StatusConstants;
import com.raytheon.uf.viz.d2d.core.map.MapScales;
import com.raytheon.uf.viz.d2d.core.map.MapScales.MapScale;
import com.raytheon.uf.viz.d2d.core.map.MapScales.PartId;
import com.raytheon.uf.viz.d2d.ui.Activator;
import com.raytheon.viz.ui.UiUtil;
import com.raytheon.viz.ui.editor.AbstractEditor;
@ -46,6 +44,7 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 11, 2007 chammack Initial Creation.
* Mar 21, 2013 1638 mschenke Changed map scales not tied to d2d
*
* </pre>
*
@ -53,7 +52,9 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
* @version 1.0
*/
public class NewMapEditor extends AbstractHandler {
private static final transient IUFStatusHandler statusHandler = UFStatus.getHandler(NewMapEditor.class);
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(NewMapEditor.class);
/*
* (non-Javadoc)

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.d2d.ui.dialogs;
package com.raytheon.uf.viz.core.maps.dialogs;
import java.text.DecimalFormat;
import java.util.ArrayList;
@ -66,7 +66,7 @@ import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.map.IMapDescriptor;
import com.raytheon.uf.viz.core.map.MapDescriptor;
import com.raytheon.uf.viz.d2d.ui.map.actions.NewMapEditor;
import com.raytheon.uf.viz.core.maps.actions.NewMapEditor;
import com.raytheon.viz.ui.EditorUtil;
import com.raytheon.viz.ui.dialogs.CaveJFACEDialog;
import com.vividsolutions.jts.geom.Coordinate;
@ -87,7 +87,8 @@ import com.vividsolutions.jts.geom.Coordinate;
*/
public class CreateProjectionDialog extends CaveJFACEDialog {
private static final transient IUFStatusHandler statusHandler = UFStatus.getHandler(CreateProjectionDialog.class);
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(CreateProjectionDialog.class);
private DefaultMathTransformFactory factory;

View file

@ -29,16 +29,17 @@ import javax.xml.bind.annotation.XmlRootElement;
import org.eclipse.swt.graphics.Rectangle;
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
import com.raytheon.uf.common.serialization.ISerializableObject;
import com.raytheon.uf.viz.core.IExtent;
import com.raytheon.uf.viz.core.IGraphicsTarget;
import com.raytheon.uf.viz.core.PixelExtent;
import com.raytheon.uf.viz.core.datastructure.LoopProperties;
import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
import com.raytheon.uf.viz.core.drawables.ColorMapParameters;
import com.raytheon.uf.viz.core.drawables.PaintProperties;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.map.IMapDescriptor;
import com.raytheon.uf.viz.core.map.MapDescriptor;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource.ResourceStatus;
@ -91,7 +92,7 @@ public class MapRenderableDisplay extends AbstractRenderableDisplay implements
super();
}
public MapRenderableDisplay(MapDescriptor desc) {
public MapRenderableDisplay(IMapDescriptor desc) {
this();
setDescriptor(desc);
}

View file

@ -23,7 +23,7 @@ import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.viz.core.map.MapDescriptor;
import com.raytheon.uf.viz.core.map.IMapDescriptor;
import com.raytheon.uf.viz.core.rsc.ResourceList;
/**
@ -57,7 +57,7 @@ public class PlainMapRenderableDisplay extends MapRenderableDisplay {
/**
* @param desc
*/
public PlainMapRenderableDisplay(MapDescriptor desc) {
public PlainMapRenderableDisplay(IMapDescriptor desc) {
super(desc);
}

View file

@ -0,0 +1,55 @@
/**
* 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.core.maps.scales;
import com.raytheon.uf.viz.core.maps.scales.MapScales.MapScale;
/**
* Interface for display containing a scale
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 21, 2013 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public interface IMapScaleDisplay {
/**
* Returns the name of the scale to be used in
* {@link MapScales#getScaleByName(String)}
*/
public String getScaleName();
/**
* Changes the scale of the display
*
* @param scale
*/
public void changeScale(MapScale scale);
}

View file

@ -0,0 +1,89 @@
/**
* 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.core.maps.scales;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.core.drawables.IRenderableDisplay;
import com.raytheon.uf.viz.core.globals.VizGlobalsManager;
import com.raytheon.uf.viz.core.maps.scales.MapScales.MapScale;
/**
* Handler of setScale command that looks for a {@link MapScale} by name of
* attribute scale and sets on any {@link IMapScaleDisplay}s on the current
* editor
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 22, 2013 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
public class MapScaleHandler extends AbstractHandler {
public static final String SET_SCALE_COMMAND_ID = "com.raytheon.viz.ui.setScale";
public static final String SCALE_NAME_ID = "scale";
/*
* (non-Javadoc)
*
* @see
* org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
* ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
MapScale scale = MapScales.getInstance().getScaleByName(
event.getParameter(SCALE_NAME_ID));
if (scale != null) {
IEditorPart part = HandlerUtil.getActiveEditor(event);
if (part instanceof IDisplayPaneContainer) {
IDisplayPaneContainer container = (IDisplayPaneContainer) part;
for (IDisplayPane pane : container.getDisplayPanes()) {
IRenderableDisplay display = pane.getRenderableDisplay();
if (display instanceof IMapScaleDisplay) {
((IMapScaleDisplay) display).changeScale(scale);
}
}
container.refresh();
VizGlobalsManager.getInstance(
HandlerUtil.getActiveWorkbenchWindow(event)).updateUI(
container);
}
}
return null;
}
}

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.d2d.ui;
package com.raytheon.uf.viz.core.maps.scales;
import java.util.HashMap;
import java.util.Map;
@ -30,13 +30,11 @@ import org.eclipse.ui.menus.CommandContributionItem;
import org.eclipse.ui.menus.CommandContributionItemParameter;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.d2d.core.map.D2DMapRenderableDisplay;
import com.raytheon.uf.viz.d2d.core.map.MapScales;
import com.raytheon.uf.viz.d2d.core.map.MapScales.MapScale;
import com.raytheon.uf.viz.core.maps.scales.MapScales.MapScale;
import com.raytheon.viz.ui.EditorUtil;
/**
* TODO Add Description
* UI populator for map scales
*
* <pre>
*
@ -44,6 +42,8 @@ import com.raytheon.viz.ui.EditorUtil;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 7, 2010 mschenke Initial creation
* Mar 21, 2013 1638 mschenke Made map scales not tied to d2d
*
*
* </pre>
*
@ -63,20 +63,19 @@ public class MapScalePopulator extends CompoundContributionItem {
protected IContributionItem[] getContributionItems() {
MenuManager menuMgr = new MenuManager("Scales", "mapControls");
IDisplayPaneContainer cont = EditorUtil.getActiveVizContainer();
// Load scales if we have d2d map renderable display on editor or, there
// is no editor opened in the d2d perspective
if ((cont != null && (cont.getActiveDisplayPane()
.getRenderableDisplay() instanceof D2DMapRenderableDisplay))
.getRenderableDisplay() instanceof IMapScaleDisplay))
|| EditorUtil.getActiveEditor() == null) {
for (MapScale scale : MapScales.getInstance().getScales()) {
Map<String, String> parms = new HashMap<String, String>();
parms.put("scale", scale.getDisplayName());
parms.put(MapScaleHandler.SCALE_NAME_ID, scale.getDisplayName());
CommandContributionItem item = new CommandContributionItem(
new CommandContributionItemParameter(
PlatformUI.getWorkbench(), null,
"com.raytheon.viz.ui.setScale", parms, null,
null, null, scale.getDisplayName(), null, null,
CommandContributionItem.STYLE_PUSH, null, true));
MapScaleHandler.SET_SCALE_COMMAND_ID, parms,
null, null, null, scale.getDisplayName(), null,
null, CommandContributionItem.STYLE_PUSH, null,
true));
menuMgr.add(item);
}
}

View file

@ -0,0 +1,152 @@
/**
* 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.core.maps.scales;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.VizConstants;
import com.raytheon.uf.viz.core.drawables.AbstractRenderableDisplay;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.globals.VizGlobalsManager;
import com.raytheon.uf.viz.core.map.IMapDescriptor;
import com.raytheon.uf.viz.core.maps.display.PlainMapRenderableDisplay;
import com.raytheon.uf.viz.core.maps.scales.MapScales.MapScale;
import com.raytheon.uf.viz.core.procedures.Bundle;
import com.raytheon.uf.viz.core.rsc.ResourceList;
import com.raytheon.viz.ui.actions.LoadSerializedXml;
/**
* MapRenderableDisplay associated with a {@link MapScale}
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 22, 2013 mschenke Initial creation
*
* </pre>
*
* @author mschenke
* @version 1.0
*/
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class MapScaleRenderableDisplay extends PlainMapRenderableDisplay
implements IMapScaleDisplay {
@XmlAttribute
protected String scale = (String) VizGlobalsManager.getCurrentInstance()
.getPropery(VizConstants.SCALE_ID);
public MapScaleRenderableDisplay() {
super();
}
public MapScaleRenderableDisplay(IMapDescriptor desc) {
super(desc);
}
/*
* (non-Javadoc)
*
* @see com.raytheon.uf.viz.core.maps.scales.IMapScaleDisplay#getScaleName()
*/
@Override
public String getScaleName() {
return scale;
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.viz.core.maps.scales.IMapScaleDisplay#changeScale(com
* .raytheon.uf.viz.core.maps.scales.MapScales.MapScale)
*/
@Override
public void changeScale(MapScale scale) {
MapScale currentScale = MapScales.getInstance().getScaleByName(
getScaleName());
Bundle bundle = (Bundle) LoadSerializedXml.deserialize(currentScale
.getFile());
for (AbstractRenderableDisplay display : bundle.getDisplays()) {
descriptor.getResourceList().removeAll(
display.getDescriptor().getResourceList());
}
loadScale(scale);
}
@Override
public void clear() {
MapScale scale = MapScales.getInstance().getScaleByName(getScaleName());
if (scale == null) {
scale = MapScales.getInstance().getScaleByName(
(String) VizGlobalsManager.getCurrentInstance().getPropery(
VizConstants.SCALE_ID));
}
if (scale != null) {
ResourceList list = descriptor.getResourceList();
for (ResourcePair rp : list) {
if (rp.getProperties().isSystemResource() == false) {
// Keep system resources
list.remove(rp);
}
}
loadScale(scale);
}
}
protected void loadScale(MapScale scale) {
Bundle bundle = (Bundle) LoadSerializedXml.deserialize(scale.getFile());
for (AbstractRenderableDisplay ard : bundle.getDisplays()) {
try {
descriptor.setGridGeometry(ard.getDescriptor()
.getGridGeometry());
descriptor.getResourceList().addAll(
ard.getDescriptor().getResourceList());
ard.getDescriptor().getResourceList().clear();
break;
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
}
}
descriptor.getResourceList().instantiateResources(descriptor, true);
this.scale = scale.getDisplayName();
scaleToClientArea(getBounds());
}
@Override
public Map<String, Object> getGlobalsMap() {
Map<String, Object> globals = super.getGlobalsMap();
globals.put(VizConstants.SCALE_ID, getScaleName());
return globals;
}
}

View file

@ -17,9 +17,11 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.d2d.core.map;
package com.raytheon.uf.viz.core.maps.scales;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXB;
import javax.xml.bind.annotation.XmlAccessType;
@ -28,14 +30,22 @@ import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import org.eclipse.ui.IWorkbenchWindow;
import com.raytheon.uf.common.localization.FileUpdatedMessage;
import com.raytheon.uf.common.localization.ILocalizationFileObserver;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.serialization.ISerializableObject;
import com.raytheon.uf.common.serialization.SerializationException;
import com.raytheon.uf.common.serialization.SerializationUtil;
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.core.exception.VizException;
import com.raytheon.uf.viz.core.procedures.Bundle;
import com.raytheon.uf.viz.core.procedures.Procedure;
import com.raytheon.viz.ui.actions.LoadSerializedXml;
/**
* Serializable object representation of map scales
@ -46,6 +56,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Oct 7, 2010 mschenke Initial creation
* Mar 21, 2013 1638 mschenke Made map scales not tied to d2d
*
* </pre>
*
@ -134,7 +145,7 @@ public class MapScales implements ISerializableObject {
private static final String SCALES_DIR = "bundles" + File.separator
+ "scales" + File.separator;
private static final String fileName = SCALES_DIR + "scalesInfo.xml";
public static final String FILE_NAME = SCALES_DIR + "scalesInfo.xml";
private static ILocalizationFileObserver listener = new ILocalizationFileObserver() {
@Override
@ -156,6 +167,40 @@ public class MapScales implements ISerializableObject {
return instance;
}
public static void loadScales(IWorkbenchWindow window, MapScale... scales)
throws VizException {
if (scales == null || scales.length == 0) {
scales = getInstance().getScales();
}
Procedure procedure = new Procedure();
List<Bundle> bundles = new ArrayList<Bundle>();
for (MapScale scale : scales) {
String editorId = null;
for (PartId partId : scale.getPartIds()) {
if (partId.isView() == false) {
editorId = partId.getId();
break;
}
}
if (editorId != null) {
File file = scale.getFile();
try {
Bundle b = SerializationUtil.jaxbUnmarshalFromXmlFile(
Bundle.class, file);
b.setEditor(editorId);
bundles.add(b);
} catch (SerializationException e) {
statusHandler.handle(
Priority.PROBLEM,
"Error deserializing bundle: "
+ file.getAbsolutePath(), e);
}
}
}
procedure.setBundles(bundles.toArray(new Bundle[bundles.size()]));
LoadSerializedXml.loadProcedureToScreen(procedure, window);
}
private static synchronized void fileUpdated() {
instance = null;
}
@ -165,18 +210,18 @@ public class MapScales implements ISerializableObject {
locFile.removeFileUpdatedObserver(listener);
}
locFile = PathManagerFactory.getPathManager()
.getStaticLocalizationFile(fileName);
.getStaticLocalizationFile(FILE_NAME);
locFile.addFileUpdatedObserver(listener);
File file = locFile.getFile();
if (file == null) {
statusHandler.handle(Priority.PROBLEM,
"Could not find any version of scale file: " + fileName);
"Could not find any version of scale file: " + FILE_NAME);
} else {
try {
instance = JAXB.unmarshal(file, MapScales.class);
} catch (RuntimeException e) {
statusHandler.handle(Priority.PROBLEM,
"Could not parse scale file: " + fileName, e);
"Could not parse scale file: " + FILE_NAME, e);
}
}
}

View file

@ -15,7 +15,6 @@ Require-Bundle: org.eclipse.core.runtime,
com.raytheon.uf.common.time;bundle-version="1.12.1174",
org.geotools;bundle-version="2.6.4",
com.raytheon.uf.common.geospatial;bundle-version="1.12.1174",
com.raytheon.viz.ui.tools.map;bundle-version="1.12.1174",
com.raytheon.viz.core;bundle-version="1.12.1174"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy

View file

@ -1,2 +1,2 @@
com.raytheon.uf.viz.core.rsc.FirstAvailableResourceData
com.raytheon.uf.viz.core.rsc.tools.AwipsToolsResourceData
com.raytheon.uf.viz.core.rsc.tools.GenericToolsResourceData

View file

@ -27,6 +27,7 @@ import org.eclipse.jface.action.IMenuManager;
import com.raytheon.uf.viz.core.DrawableString;
import com.raytheon.uf.viz.core.IDisplayPane;
import com.raytheon.uf.viz.core.IDisplayPaneContainer;
import com.raytheon.uf.viz.core.IExtent;
import com.raytheon.uf.viz.core.IGraphicsTarget;
import com.raytheon.uf.viz.core.drawables.IDescriptor;
@ -37,10 +38,12 @@ import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.legend.ILegendDecorator;
import com.raytheon.uf.viz.core.rsc.AbstractResourceData;
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
import com.raytheon.uf.viz.core.rsc.IInputHandler.InputPriority;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
import com.raytheon.uf.viz.core.rsc.RenderingOrderFactory.ResourceOrder;
import com.raytheon.viz.ui.cmenu.ContextMenuManager;
import com.raytheon.viz.ui.cmenu.IContextMenuProvider;
import com.raytheon.viz.ui.input.InputAdapter;
/**
* Base legend resource class, does majority of work for drawing legends.
@ -68,6 +71,56 @@ public abstract class AbstractLegendResource<T extends AbstractResourceData>
private static final int RIGHT_OFFSET_IN_PIXELS = 18;
private InputAdapter resourceClickedHandler = new InputAdapter() {
private boolean moved = false;
private ResourcePair mouseDownRsc;
@Override
public boolean handleMouseDown(int x, int y, int mouseButton) {
boolean handle = moved = false;
IDisplayPaneContainer container = getResourceContainer();
IDisplayPane active = container.getActiveDisplayPane();
if (active.getDescriptor() == getDescriptor()) {
mouseDownRsc = checkLabelSpace(getDescriptor(),
active.getTarget(), x, y);
if (mouseDownRsc != null) {
handle = AbstractLegendResource.this.checkResourceClick(
mouseDownRsc, mouseButton);
if (!handle) {
mouseDownRsc = null;
}
}
}
return handle;
}
@Override
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
if (mouseDownRsc != null) {
moved = true;
}
return moved;
}
@Override
public boolean handleMouseUp(int x, int y, int mouseButton) {
if (mouseDownRsc != null) {
try {
if (!moved) {
resourceClicked(mouseDownRsc, mouseButton);
}
} finally {
mouseDownRsc = null;
}
return true;
}
return false;
}
};
/**
* @param resourceData
* @param loadProperties
@ -84,7 +137,10 @@ public abstract class AbstractLegendResource<T extends AbstractResourceData>
*/
@Override
protected void disposeInternal() {
IDisplayPaneContainer container = getResourceContainer();
if (container != null) {
container.unregisterMouseHandler(resourceClickedHandler);
}
}
/*
@ -148,7 +204,11 @@ public abstract class AbstractLegendResource<T extends AbstractResourceData>
*/
@Override
protected void initInternal(IGraphicsTarget target) throws VizException {
IDisplayPaneContainer container = getResourceContainer();
if (container != null) {
container.registerMouseHandler(resourceClickedHandler,
InputPriority.SYSTEM_RESOURCE);
}
}
protected ResourcePair checkLabelSpace(IDescriptor descriptor,
@ -289,4 +349,14 @@ public abstract class AbstractLegendResource<T extends AbstractResourceData>
ContextMenuManager.fillContextMenu(menuManager, selectedResource,
getResourceContainer());
}
protected boolean checkResourceClick(ResourcePair mouseDownRsc,
int mouseButton) {
// Do nothing
return false;
}
protected void resourceClicked(ResourcePair resource, int mouseButton) {
// Do nothing
}
}

View file

@ -30,10 +30,16 @@ import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
import com.raytheon.uf.viz.core.rsc.GenericResourceData;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
import com.raytheon.uf.viz.core.rsc.ResourceList;
import com.raytheon.uf.viz.core.rsc.capabilities.BlendableCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.BlendedCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
import com.raytheon.uf.viz.core.rsc.capabilities.EditableCapability;
import com.raytheon.viz.ui.input.EditableManager;
import com.raytheon.viz.ui.input.preferences.MousePreferenceManager;
/**
* TODO Add Description
* Default legend resource, handles visibility toggling and editableness
* toggling. TODO: Make D2DLegendResource extend it
*
* <pre>
*
@ -52,6 +58,13 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
public class DefaultLegendResource extends
AbstractLegendResource<GenericResourceData> {
private static final String HIDE_RESOURCE_PREF = "com.raytheon.viz.d2d.ui.hide.resource";
private static final String EDIT_RESOURCE_PREF = "com.raytheon.viz.ui.input.resource.edit";
private MousePreferenceManager prefManager = MousePreferenceManager
.getInstance();
/**
* @param resourceData
* @param loadProperties
@ -94,6 +107,12 @@ public class DefaultLegendResource extends
} else {
legend.label = rsc.getName();
legend.resource = resourcePair;
if (rsc.hasCapability(EditableCapability.class)
&& rsc.getCapability(EditableCapability.class)
.isEditable()) {
legend.label += " (Editable)";
}
}
if (!vis) {
@ -115,4 +134,82 @@ public class DefaultLegendResource extends
}
return entries;
}
@Override
protected boolean checkResourceClick(ResourcePair mouseDownRsc,
int mouseButton) {
return true;
}
@Override
protected void resourceClicked(ResourcePair resource, int mouseButton) {
if (prefManager.handleClick(EDIT_RESOURCE_PREF, mouseButton)
&& resource.getResource().hasCapability(
EditableCapability.class)) {
// Editable case
toggleEditability(resource);
} else {
// Visibility case
toggleVisibility(resource);
}
issueRefresh();
}
/**
* Toggle visibility of resource taking blended/blendable resources into
* account.
*
* If resource to toggle is blended, 1st check to see if parent resource is
* visible. If not visible then make parent and all children visible.
*
* @param rp
*/
protected boolean toggleVisibility(ResourcePair rp) {
AbstractVizResource<?, ?> rsc = rp.getResource();
if (rsc != null) {
if (rsc.hasCapability(BlendedCapability.class)) {
ResourcePair parentRsc = rsc.getCapability(
BlendedCapability.class).getBlendableResource();
ResourceList children = parentRsc.getResource()
.getCapability(BlendableCapability.class)
.getResourceList();
if (parentRsc.getProperties().isVisible() == false) {
parentRsc.getProperties().setVisible(true);
for (ResourcePair child : children) {
child.getProperties().setVisible(true);
}
} else {
// topmost resource is visible, toggle us and other
// rsc
if (rp.getProperties().isVisible() == false) {
rp.getProperties().setVisible(true);
parentRsc
.getResource()
.getCapability(BlendableCapability.class)
.setAlphaStep(BlendableCapability.BLEND_MAX / 2);
} else {
parentRsc.getResource()
.getCapability(BlendableCapability.class)
.toggle(rp);
}
}
return rp.getProperties().isVisible();
}
}
rp.getProperties().setVisible(!rp.getProperties().isVisible());
return rp.getProperties().isVisible();
}
/**
* Toggles the editable flag on the resource
*
* @param rp
* @return
*/
protected boolean toggleEditability(ResourcePair rp) {
EditableManager.makeEditable(rp.getResource(), !rp.getResource()
.getCapability(EditableCapability.class).isEditable());
return rp.getResource().getCapability(EditableCapability.class)
.isEditable();
}
}

View file

@ -59,10 +59,11 @@ public class LatLonReadoutAction extends AbstractRightClickAction {
private boolean hasLatLonReadout = false;
public LatLonReadoutAction() {
this.actionText = "Lat/Lon Readout";
this("Lat/Lon Readout");
}
public LatLonReadoutAction(String actionText) {
super(AS_CHECK_BOX);
this.actionText = actionText;
}

Some files were not shown because too many files have changed in this diff Show more