merge origin/master_18.1.1 into unidata_17.1.1 for unidata_18.1.1
This commit is contained in:
commit
a5bf9dc37b
5177 changed files with 294715 additions and 249159 deletions
|
@ -10,7 +10,7 @@ We create and use the Docker image unidata/awips-ade to build the two RHEL binar
|
|||
|
||||
where **${os_version}** is either *el6* or *el7*.
|
||||
|
||||
ADE Docker images will be named with the latest major release (17.1.1) and OS version
|
||||
ADE Docker images will be named with the latest major release and OS version
|
||||
|
||||
docker images
|
||||
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
# Version
|
||||
export AWIPSII_VERSION="17.1.1"
|
||||
export AWIPSII_RELEASE="6"
|
||||
export AWIPSII_VERSION="18.1.1"
|
||||
export AWIPSII_RELEASE="1"
|
||||
# Author
|
||||
export AWIPSII_BUILD_VENDOR="UCAR"
|
||||
export AWIPSII_BUILD_SITE="Unidata"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -35,8 +35,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/${dc.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/${dc.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -35,8 +35,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/${fxa.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/${fxa.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -35,8 +35,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/${hm.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/${hm.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -35,8 +35,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/${ih.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/${ih.db.name}
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -35,8 +35,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/maps
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/maps
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -34,8 +34,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/metadata
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">after_transaction</property>
|
||||
<property name="jdbc.batch_size">100</property>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/metadata
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -35,8 +35,12 @@
|
|||
<property name="connection.url">
|
||||
jdbc:postgresql://${db.addr}:${db.port}/ncep
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.username">awipsadmin</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<!DOCTYPE hibernate-configuration PUBLIC
|
||||
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
@ -36,7 +36,11 @@
|
|||
jdbc:postgresql://${db.addr}:${db.port}/ncep
|
||||
</property>
|
||||
<property name="connection.username">awips</property>
|
||||
<property name="connection.password">awips</property>
|
||||
<property name="connection.sslmode">${db.auth.sslmode}</property>
|
||||
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
|
||||
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
|
||||
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
|
||||
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
|
||||
<property name="connection.release_mode">
|
||||
after_transaction
|
||||
</property>
|
|
@ -1,648 +0,0 @@
|
|||
#
|
||||
# This is the "master security properties file".
|
||||
#
|
||||
# An alternate java.security properties file may be specified
|
||||
# from the command line via the system property
|
||||
#
|
||||
# -Djava.security.properties=<URL>
|
||||
#
|
||||
# This properties file appends to the master security properties file.
|
||||
# If both properties files specify values for the same key, the value
|
||||
# from the command-line properties file is selected, as it is the last
|
||||
# one loaded.
|
||||
#
|
||||
# Also, if you specify
|
||||
#
|
||||
# -Djava.security.properties==<URL> (2 equals),
|
||||
#
|
||||
# then that properties file completely overrides the master security
|
||||
# properties file.
|
||||
#
|
||||
# To disable the ability to specify an additional properties file from
|
||||
# the command line, set the key security.overridePropertiesFile
|
||||
# to false in the master security properties file. It is set to true
|
||||
# by default.
|
||||
|
||||
# In this file, various security properties are set for use by
|
||||
# java.security classes. This is where users can statically register
|
||||
# Cryptography Package Providers ("providers" for short). The term
|
||||
# "provider" refers to a package or set of packages that supply a
|
||||
# concrete implementation of a subset of the cryptography aspects of
|
||||
# the Java Security API. A provider may, for example, implement one or
|
||||
# more digital signature algorithms or message digest algorithms.
|
||||
#
|
||||
# Each provider must implement a subclass of the Provider class.
|
||||
# To register a provider in this master security properties file,
|
||||
# specify the Provider subclass name and priority in the format
|
||||
#
|
||||
# security.provider.<n>=<className>
|
||||
#
|
||||
# This declares a provider, and specifies its preference
|
||||
# order n. The preference order is the order in which providers are
|
||||
# searched for requested algorithms (when no specific provider is
|
||||
# requested). The order is 1-based; 1 is the most preferred, followed
|
||||
# by 2, and so on.
|
||||
#
|
||||
# <className> must specify the subclass of the Provider class whose
|
||||
# constructor sets the values of various properties that are required
|
||||
# for the Java Security API to look up the algorithms or other
|
||||
# facilities implemented by the provider.
|
||||
#
|
||||
# There must be at least one provider specification in java.security.
|
||||
# There is a default provider that comes standard with the JDK. It
|
||||
# is called the "SUN" provider, and its Provider subclass
|
||||
# named Sun appears in the sun.security.provider package. Thus, the
|
||||
# "SUN" provider is registered via the following:
|
||||
#
|
||||
# security.provider.1=sun.security.provider.Sun
|
||||
#
|
||||
# (The number 1 is used for the default provider.)
|
||||
#
|
||||
# Note: Providers can be dynamically registered instead by calls to
|
||||
# either the addProvider or insertProviderAt method in the Security
|
||||
# class.
|
||||
|
||||
#
|
||||
# List of providers and their preference orders (see above):
|
||||
#
|
||||
security.provider.1=sun.security.provider.Sun
|
||||
security.provider.2=sun.security.rsa.SunRsaSign
|
||||
security.provider.3=sun.security.ec.SunEC
|
||||
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
|
||||
security.provider.5=com.sun.crypto.provider.SunJCE
|
||||
security.provider.6=sun.security.jgss.SunProvider
|
||||
security.provider.7=com.sun.security.sasl.Provider
|
||||
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
|
||||
security.provider.9=sun.security.smartcardio.SunPCSC
|
||||
|
||||
#
|
||||
# Sun Provider SecureRandom seed source.
|
||||
#
|
||||
# Select the primary source of seed data for the "SHA1PRNG" and
|
||||
# "NativePRNG" SecureRandom implementations in the "Sun" provider.
|
||||
# (Other SecureRandom implementations might also use this property.)
|
||||
#
|
||||
# On Unix-like systems (for example, Solaris/Linux/MacOS), the
|
||||
# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from
|
||||
# special device files such as file:/dev/random.
|
||||
#
|
||||
# On Windows systems, specifying the URLs "file:/dev/random" or
|
||||
# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding
|
||||
# mechanism for SHA1PRNG.
|
||||
#
|
||||
# By default, an attempt is made to use the entropy gathering device
|
||||
# specified by the "securerandom.source" Security property. If an
|
||||
# exception occurs while accessing the specified URL:
|
||||
#
|
||||
# SHA1PRNG:
|
||||
# the traditional system/thread activity algorithm will be used.
|
||||
#
|
||||
# NativePRNG:
|
||||
# a default value of /dev/random will be used. If neither
|
||||
# are available, the implementation will be disabled.
|
||||
# "file" is the only currently supported protocol type.
|
||||
#
|
||||
# The entropy gathering device can also be specified with the System
|
||||
# property "java.security.egd". For example:
|
||||
#
|
||||
# % java -Djava.security.egd=file:/dev/random MainClass
|
||||
#
|
||||
# Specifying this System property will override the
|
||||
# "securerandom.source" Security property.
|
||||
#
|
||||
# In addition, if "file:/dev/random" or "file:/dev/urandom" is
|
||||
# specified, the "NativePRNG" implementation will be more preferred than
|
||||
# SHA1PRNG in the Sun provider.
|
||||
#
|
||||
securerandom.source=file:/dev/random
|
||||
|
||||
#
|
||||
# A list of known strong SecureRandom implementations.
|
||||
#
|
||||
# To help guide applications in selecting a suitable strong
|
||||
# java.security.SecureRandom implementation, Java distributions should
|
||||
# indicate a list of known strong implementations using the property.
|
||||
#
|
||||
# This is a comma-separated list of algorithm and/or algorithm:provider
|
||||
# entries.
|
||||
#
|
||||
securerandom.strongAlgorithms=NativePRNGBlocking:SUN
|
||||
|
||||
#
|
||||
# Class to instantiate as the javax.security.auth.login.Configuration
|
||||
# provider.
|
||||
#
|
||||
login.configuration.provider=sun.security.provider.ConfigFile
|
||||
|
||||
#
|
||||
# Default login configuration file
|
||||
#
|
||||
#login.config.url.1=file:${user.home}/.java.login.config
|
||||
|
||||
#
|
||||
# Class to instantiate as the system Policy. This is the name of the class
|
||||
# that will be used as the Policy object.
|
||||
#
|
||||
policy.provider=sun.security.provider.PolicyFile
|
||||
|
||||
# The default is to have a single system-wide policy file,
|
||||
# and a policy file in the user's home directory.
|
||||
policy.url.1=file:${java.home}/lib/security/java.policy
|
||||
policy.url.2=file:${user.home}/.java.policy
|
||||
|
||||
# whether or not we expand properties in the policy file
|
||||
# if this is set to false, properties (${...}) will not be expanded in policy
|
||||
# files.
|
||||
policy.expandProperties=true
|
||||
|
||||
# whether or not we allow an extra policy to be passed on the command line
|
||||
# with -Djava.security.policy=somefile. Comment out this line to disable
|
||||
# this feature.
|
||||
policy.allowSystemProperty=true
|
||||
|
||||
# whether or not we look into the IdentityScope for trusted Identities
|
||||
# when encountering a 1.1 signed JAR file. If the identity is found
|
||||
# and is trusted, we grant it AllPermission.
|
||||
policy.ignoreIdentityScope=false
|
||||
|
||||
#
|
||||
# Default keystore type.
|
||||
#
|
||||
keystore.type=jks
|
||||
|
||||
#
|
||||
# Controls compatibility mode for the JKS keystore type.
|
||||
#
|
||||
# When set to 'true', the JKS keystore type supports loading
|
||||
# keystore files in either JKS or PKCS12 format. When set to 'false'
|
||||
# it supports loading only JKS keystore files.
|
||||
#
|
||||
keystore.type.compat=true
|
||||
|
||||
#
|
||||
# List of comma-separated packages that start with or equal this string
|
||||
# will cause a security exception to be thrown when
|
||||
# passed to checkPackageAccess unless the
|
||||
# corresponding RuntimePermission ("accessClassInPackage."+package) has
|
||||
# been granted.
|
||||
package.access=sun.,\
|
||||
com.sun.xml.internal.,\
|
||||
com.sun.imageio.,\
|
||||
com.sun.istack.internal.,\
|
||||
com.sun.jmx.,\
|
||||
com.sun.media.sound.,\
|
||||
com.sun.naming.internal.,\
|
||||
com.sun.proxy.,\
|
||||
com.sun.corba.se.,\
|
||||
com.sun.org.apache.bcel.internal.,\
|
||||
com.sun.org.apache.regexp.internal.,\
|
||||
com.sun.org.apache.xerces.internal.,\
|
||||
com.sun.org.apache.xpath.internal.,\
|
||||
com.sun.org.apache.xalan.internal.extensions.,\
|
||||
com.sun.org.apache.xalan.internal.lib.,\
|
||||
com.sun.org.apache.xalan.internal.res.,\
|
||||
com.sun.org.apache.xalan.internal.templates.,\
|
||||
com.sun.org.apache.xalan.internal.utils.,\
|
||||
com.sun.org.apache.xalan.internal.xslt.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.cmdline.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.compiler.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.trax.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.util.,\
|
||||
com.sun.org.apache.xml.internal.res.,\
|
||||
com.sun.org.apache.xml.internal.security.,\
|
||||
com.sun.org.apache.xml.internal.serializer.utils.,\
|
||||
com.sun.org.apache.xml.internal.utils.,\
|
||||
com.sun.org.glassfish.,\
|
||||
com.oracle.xmlns.internal.,\
|
||||
com.oracle.webservices.internal.,\
|
||||
oracle.jrockit.jfr.,\
|
||||
org.jcp.xml.dsig.internal.,\
|
||||
jdk.internal.,\
|
||||
jdk.nashorn.internal.,\
|
||||
jdk.nashorn.tools.,\
|
||||
com.sun.activation.registries.,\
|
||||
com.sun.browser.,\
|
||||
com.sun.glass.,\
|
||||
com.sun.javafx.,\
|
||||
com.sun.media.,\
|
||||
com.sun.openpisces.,\
|
||||
com.sun.prism.,\
|
||||
com.sun.scenario.,\
|
||||
com.sun.t2k.,\
|
||||
com.sun.pisces.,\
|
||||
com.sun.webkit.,\
|
||||
jdk.management.resource.internal.
|
||||
|
||||
#
|
||||
# List of comma-separated packages that start with or equal this string
|
||||
# will cause a security exception to be thrown when
|
||||
# passed to checkPackageDefinition unless the
|
||||
# corresponding RuntimePermission ("defineClassInPackage."+package) has
|
||||
# been granted.
|
||||
#
|
||||
# by default, none of the class loaders supplied with the JDK call
|
||||
# checkPackageDefinition.
|
||||
#
|
||||
package.definition=sun.,\
|
||||
com.sun.xml.internal.,\
|
||||
com.sun.imageio.,\
|
||||
com.sun.istack.internal.,\
|
||||
com.sun.jmx.,\
|
||||
com.sun.media.sound.,\
|
||||
com.sun.naming.internal.,\
|
||||
com.sun.proxy.,\
|
||||
com.sun.corba.se.,\
|
||||
com.sun.org.apache.bcel.internal.,\
|
||||
com.sun.org.apache.regexp.internal.,\
|
||||
com.sun.org.apache.xerces.internal.,\
|
||||
com.sun.org.apache.xpath.internal.,\
|
||||
com.sun.org.apache.xalan.internal.extensions.,\
|
||||
com.sun.org.apache.xalan.internal.lib.,\
|
||||
com.sun.org.apache.xalan.internal.res.,\
|
||||
com.sun.org.apache.xalan.internal.templates.,\
|
||||
com.sun.org.apache.xalan.internal.utils.,\
|
||||
com.sun.org.apache.xalan.internal.xslt.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.cmdline.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.compiler.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.trax.,\
|
||||
com.sun.org.apache.xalan.internal.xsltc.util.,\
|
||||
com.sun.org.apache.xml.internal.res.,\
|
||||
com.sun.org.apache.xml.internal.security.,\
|
||||
com.sun.org.apache.xml.internal.serializer.utils.,\
|
||||
com.sun.org.apache.xml.internal.utils.,\
|
||||
com.sun.org.glassfish.,\
|
||||
com.oracle.xmlns.internal.,\
|
||||
com.oracle.webservices.internal.,\
|
||||
oracle.jrockit.jfr.,\
|
||||
org.jcp.xml.dsig.internal.,\
|
||||
jdk.internal.,\
|
||||
jdk.nashorn.internal.,\
|
||||
jdk.nashorn.tools.,\
|
||||
com.sun.activation.registries.,\
|
||||
com.sun.browser.,\
|
||||
com.sun.glass.,\
|
||||
com.sun.javafx.,\
|
||||
com.sun.media.,\
|
||||
com.sun.openpisces.,\
|
||||
com.sun.prism.,\
|
||||
com.sun.scenario.,\
|
||||
com.sun.t2k.,\
|
||||
com.sun.pisces.,\
|
||||
com.sun.webkit.,\
|
||||
jdk.management.resource.internal.
|
||||
|
||||
#
|
||||
# Determines whether this properties file can be appended to
|
||||
# or overridden on the command line via -Djava.security.properties
|
||||
#
|
||||
security.overridePropertiesFile=true
|
||||
|
||||
#
|
||||
# Determines the default key and trust manager factory algorithms for
|
||||
# the javax.net.ssl package.
|
||||
#
|
||||
ssl.KeyManagerFactory.algorithm=SunX509
|
||||
ssl.TrustManagerFactory.algorithm=PKIX
|
||||
|
||||
#
|
||||
# The Java-level namelookup cache policy for successful lookups:
|
||||
#
|
||||
# any negative value: caching forever
|
||||
# any positive value: the number of seconds to cache an address for
|
||||
# zero: do not cache
|
||||
#
|
||||
# default value is forever (FOREVER). For security reasons, this
|
||||
# caching is made forever when a security manager is set. When a security
|
||||
# manager is not set, the default behavior in this implementation
|
||||
# is to cache for 30 seconds.
|
||||
#
|
||||
# NOTE: setting this to anything other than the default value can have
|
||||
# serious security implications. Do not set it unless
|
||||
# you are sure you are not exposed to DNS spoofing attack.
|
||||
#
|
||||
#networkaddress.cache.ttl=-1
|
||||
|
||||
# The Java-level namelookup cache policy for failed lookups:
|
||||
#
|
||||
# any negative value: cache forever
|
||||
# any positive value: the number of seconds to cache negative lookup results
|
||||
# zero: do not cache
|
||||
#
|
||||
# In some Microsoft Windows networking environments that employ
|
||||
# the WINS name service in addition to DNS, name service lookups
|
||||
# that fail may take a noticeably long time to return (approx. 5 seconds).
|
||||
# For this reason the default caching policy is to maintain these
|
||||
# results for 10 seconds.
|
||||
#
|
||||
#
|
||||
networkaddress.cache.negative.ttl=10
|
||||
|
||||
#
|
||||
# Properties to configure OCSP for certificate revocation checking
|
||||
#
|
||||
|
||||
# Enable OCSP
|
||||
#
|
||||
# By default, OCSP is not used for certificate revocation checking.
|
||||
# This property enables the use of OCSP when set to the value "true".
|
||||
#
|
||||
# NOTE: SocketPermission is required to connect to an OCSP responder.
|
||||
#
|
||||
# Example,
|
||||
# ocsp.enable=true
|
||||
|
||||
#
|
||||
# Location of the OCSP responder
|
||||
#
|
||||
# By default, the location of the OCSP responder is determined implicitly
|
||||
# from the certificate being validated. This property explicitly specifies
|
||||
# the location of the OCSP responder. The property is used when the
|
||||
# Authority Information Access extension (defined in RFC 3280) is absent
|
||||
# from the certificate or when it requires overriding.
|
||||
#
|
||||
# Example,
|
||||
# ocsp.responderURL=http://ocsp.example.net:80
|
||||
|
||||
#
|
||||
# Subject name of the OCSP responder's certificate
|
||||
#
|
||||
# By default, the certificate of the OCSP responder is that of the issuer
|
||||
# of the certificate being validated. This property identifies the certificate
|
||||
# of the OCSP responder when the default does not apply. Its value is a string
|
||||
# distinguished name (defined in RFC 2253) which identifies a certificate in
|
||||
# the set of certificates supplied during cert path validation. In cases where
|
||||
# the subject name alone is not sufficient to uniquely identify the certificate
|
||||
# then both the "ocsp.responderCertIssuerName" and
|
||||
# "ocsp.responderCertSerialNumber" properties must be used instead. When this
|
||||
# property is set then those two properties are ignored.
|
||||
#
|
||||
# Example,
|
||||
# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp"
|
||||
|
||||
#
|
||||
# Issuer name of the OCSP responder's certificate
|
||||
#
|
||||
# By default, the certificate of the OCSP responder is that of the issuer
|
||||
# of the certificate being validated. This property identifies the certificate
|
||||
# of the OCSP responder when the default does not apply. Its value is a string
|
||||
# distinguished name (defined in RFC 2253) which identifies a certificate in
|
||||
# the set of certificates supplied during cert path validation. When this
|
||||
# property is set then the "ocsp.responderCertSerialNumber" property must also
|
||||
# be set. When the "ocsp.responderCertSubjectName" property is set then this
|
||||
# property is ignored.
|
||||
#
|
||||
# Example,
|
||||
# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp"
|
||||
|
||||
#
|
||||
# Serial number of the OCSP responder's certificate
|
||||
#
|
||||
# By default, the certificate of the OCSP responder is that of the issuer
|
||||
# of the certificate being validated. This property identifies the certificate
|
||||
# of the OCSP responder when the default does not apply. Its value is a string
|
||||
# of hexadecimal digits (colon or space separators may be present) which
|
||||
# identifies a certificate in the set of certificates supplied during cert path
|
||||
# validation. When this property is set then the "ocsp.responderCertIssuerName"
|
||||
# property must also be set. When the "ocsp.responderCertSubjectName" property
|
||||
# is set then this property is ignored.
|
||||
#
|
||||
# Example,
|
||||
# ocsp.responderCertSerialNumber=2A:FF:00
|
||||
|
||||
#
|
||||
# Policy for failed Kerberos KDC lookups:
|
||||
#
|
||||
# When a KDC is unavailable (network error, service failure, etc), it is
|
||||
# put inside a blacklist and accessed less often for future requests. The
|
||||
# value (case-insensitive) for this policy can be:
|
||||
#
|
||||
# tryLast
|
||||
# KDCs in the blacklist are always tried after those not on the list.
|
||||
#
|
||||
# tryLess[:max_retries,timeout]
|
||||
# KDCs in the blacklist are still tried by their order in the configuration,
|
||||
# but with smaller max_retries and timeout values. max_retries and timeout
|
||||
# are optional numerical parameters (default 1 and 5000, which means once
|
||||
# and 5 seconds). Please notes that if any of the values defined here is
|
||||
# more than what is defined in krb5.conf, it will be ignored.
|
||||
#
|
||||
# Whenever a KDC is detected as available, it is removed from the blacklist.
|
||||
# The blacklist is reset when krb5.conf is reloaded. You can add
|
||||
# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is
|
||||
# reloaded whenever a JAAS authentication is attempted.
|
||||
#
|
||||
# Example,
|
||||
# krb5.kdc.bad.policy = tryLast
|
||||
# krb5.kdc.bad.policy = tryLess:2,2000
|
||||
krb5.kdc.bad.policy = tryLast
|
||||
|
||||
# Algorithm restrictions for certification path (CertPath) processing
|
||||
#
|
||||
# In some environments, certain algorithms or key lengths may be undesirable
|
||||
# for certification path building and validation. For example, "MD2" is
|
||||
# generally no longer considered to be a secure hash algorithm. This section
|
||||
# describes the mechanism for disabling algorithms based on algorithm name
|
||||
# and/or key length. This includes algorithms used in certificates, as well
|
||||
# as revocation information such as CRLs and signed OCSP Responses.
|
||||
#
|
||||
# The syntax of the disabled algorithm string is described as this Java
|
||||
# BNF-style:
|
||||
# DisabledAlgorithms:
|
||||
# " DisabledAlgorithm { , DisabledAlgorithm } "
|
||||
#
|
||||
# DisabledAlgorithm:
|
||||
# AlgorithmName [Constraint]
|
||||
#
|
||||
# AlgorithmName:
|
||||
# (see below)
|
||||
#
|
||||
# Constraint:
|
||||
# KeySizeConstraint
|
||||
#
|
||||
# KeySizeConstraint:
|
||||
# keySize Operator DecimalInteger
|
||||
#
|
||||
# Operator:
|
||||
# <= | < | == | != | >= | >
|
||||
#
|
||||
# DecimalInteger:
|
||||
# DecimalDigits
|
||||
#
|
||||
# DecimalDigits:
|
||||
# DecimalDigit {DecimalDigit}
|
||||
#
|
||||
# DecimalDigit: one of
|
||||
# 1 2 3 4 5 6 7 8 9 0
|
||||
#
|
||||
# The "AlgorithmName" is the standard algorithm name of the disabled
|
||||
# algorithm. See "Java Cryptography Architecture Standard Algorithm Name
|
||||
# Documentation" for information about Standard Algorithm Names. Matching
|
||||
# is performed using a case-insensitive sub-element matching rule. (For
|
||||
# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and
|
||||
# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a
|
||||
# sub-element of the certificate algorithm name, the algorithm will be
|
||||
# rejected during certification path building and validation. For example,
|
||||
# the assertion algorithm name "DSA" will disable all certificate algorithms
|
||||
# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion
|
||||
# will not disable algorithms related to "ECDSA".
|
||||
#
|
||||
# A "Constraint" provides further guidance for the algorithm being specified.
|
||||
# The "KeySizeConstraint" requires a key of a valid size range if the
|
||||
# "AlgorithmName" is of a key algorithm. The "DecimalInteger" indicates the
|
||||
# key size specified in number of bits. For example, "RSA keySize <= 1024"
|
||||
# indicates that any RSA key with key size less than or equal to 1024 bits
|
||||
# should be disabled, and "RSA keySize < 1024, RSA keySize > 2048" indicates
|
||||
# that any RSA key with key size less than 1024 or greater than 2048 should
|
||||
# be disabled. Note that the "KeySizeConstraint" only makes sense to key
|
||||
# algorithms.
|
||||
#
|
||||
# Note: This property is currently used by Oracle's PKIX implementation. It
|
||||
# is not guaranteed to be examined and used by other implementations.
|
||||
#
|
||||
# Example:
|
||||
# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048
|
||||
#
|
||||
#
|
||||
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
|
||||
|
||||
# Algorithm restrictions for Secure Socket Layer/Transport Layer Security
|
||||
# (SSL/TLS) processing
|
||||
#
|
||||
# In some environments, certain algorithms or key lengths may be undesirable
|
||||
# when using SSL/TLS. This section describes the mechanism for disabling
|
||||
# algorithms during SSL/TLS security parameters negotiation, including
|
||||
# protocol version negotiation, cipher suites selection, peer authentication
|
||||
# and key exchange mechanisms.
|
||||
#
|
||||
# Disabled algorithms will not be negotiated for SSL/TLS connections, even
|
||||
# if they are enabled explicitly in an application.
|
||||
#
|
||||
# For PKI-based peer authentication and key exchange mechanisms, this list
|
||||
# of disabled algorithms will also be checked during certification path
|
||||
# building and validation, including algorithms used in certificates, as
|
||||
# well as revocation information such as CRLs and signed OCSP Responses.
|
||||
# This is in addition to the jdk.certpath.disabledAlgorithms property above.
|
||||
#
|
||||
# See the specification of "jdk.certpath.disabledAlgorithms" for the
|
||||
# syntax of the disabled algorithm string.
|
||||
#
|
||||
# Note: This property is currently used by Oracle's JSSE implementation.
|
||||
# It is not guaranteed to be examined and used by other implementations.
|
||||
#
|
||||
# Example:
|
||||
# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
|
||||
jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768
|
||||
|
||||
# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)
|
||||
# processing in JSSE implementation.
|
||||
#
|
||||
# In some environments, a certain algorithm may be undesirable but it
|
||||
# cannot be disabled because of its use in legacy applications. Legacy
|
||||
# algorithms may still be supported, but applications should not use them
|
||||
# as the security strength of legacy algorithms are usually not strong enough
|
||||
# in practice.
|
||||
#
|
||||
# During SSL/TLS security parameters negotiation, legacy algorithms will
|
||||
# not be negotiated unless there are no other candidates.
|
||||
#
|
||||
# The syntax of the disabled algorithm string is described as this Java
|
||||
# BNF-style:
|
||||
# LegacyAlgorithms:
|
||||
# " LegacyAlgorithm { , LegacyAlgorithm } "
|
||||
#
|
||||
# LegacyAlgorithm:
|
||||
# AlgorithmName (standard JSSE algorithm name)
|
||||
#
|
||||
# See the specification of security property "jdk.certpath.disabledAlgorithms"
|
||||
# for the syntax and description of the "AlgorithmName" notation.
|
||||
#
|
||||
# Per SSL/TLS specifications, cipher suites have the form:
|
||||
# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg
|
||||
# or
|
||||
# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg
|
||||
#
|
||||
# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the
|
||||
# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC
|
||||
# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest
|
||||
# algorithm for HMAC.
|
||||
#
|
||||
# The LegacyAlgorithm can be one of the following standard algorithm names:
|
||||
# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA
|
||||
# 2. JSSE key exchange algorithm name, e.g., RSA
|
||||
# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC
|
||||
# 4. JSSE message digest algorithm name, e.g., SHA
|
||||
#
|
||||
# See SSL/TLS specifications and "Java Cryptography Architecture Standard
|
||||
# Algorithm Name Documentation" for information about the algorithm names.
|
||||
#
|
||||
# Note: This property is currently used by Oracle's JSSE implementation.
|
||||
# It is not guaranteed to be examined and used by other implementations.
|
||||
# There is no guarantee the property will continue to exist or be of the
|
||||
# same syntax in future releases.
|
||||
#
|
||||
# Example:
|
||||
# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5
|
||||
#
|
||||
jdk.tls.legacyAlgorithms= \
|
||||
K_NULL, C_NULL, M_NULL, \
|
||||
DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_anon_EXPORT, DH_DSS_EXPORT, \
|
||||
DH_RSA_EXPORT, RSA_EXPORT, \
|
||||
DH_anon, ECDH_anon, \
|
||||
RC4_128, RC4_40, DES_CBC, DES40_CBC
|
||||
|
||||
# The pre-defined default finite field Diffie-Hellman ephemeral (DHE)
|
||||
# parameters for Transport Layer Security (SSL/TLS/DTLS) processing.
|
||||
#
|
||||
# In traditional SSL/TLS/DTLS connections where finite field DHE parameters
|
||||
# negotiation mechanism is not used, the server offers the client group
|
||||
# parameters, base generator g and prime modulus p, for DHE key exchange.
|
||||
# It is recommended to use dynamic group parameters. This property defines
|
||||
# a mechanism that allows you to specify custom group parameters.
|
||||
#
|
||||
# The syntax of this property string is described as this Java BNF-style:
|
||||
# DefaultDHEParameters:
|
||||
# DefinedDHEParameters { , DefinedDHEParameters }
|
||||
#
|
||||
# DefinedDHEParameters:
|
||||
# "{" DHEPrimeModulus , DHEBaseGenerator "}"
|
||||
#
|
||||
# DHEPrimeModulus:
|
||||
# HexadecimalDigits
|
||||
#
|
||||
# DHEBaseGenerator:
|
||||
# HexadecimalDigits
|
||||
#
|
||||
# HexadecimalDigits:
|
||||
# HexadecimalDigit { HexadecimalDigit }
|
||||
#
|
||||
# HexadecimalDigit: one of
|
||||
# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
|
||||
#
|
||||
# Whitespace characters are ignored.
|
||||
#
|
||||
# The "DefinedDHEParameters" defines the custom group parameters, prime
|
||||
# modulus p and base generator g, for a particular size of prime modulus p.
|
||||
# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the
|
||||
# "DHEBaseGenerator" defines the hexadecimal base generator g of a group
|
||||
# parameter. It is recommended to use safe primes for the custom group
|
||||
# parameters.
|
||||
#
|
||||
# If this property is not defined or the value is empty, the underlying JSSE
|
||||
# provider's default group parameter is used for each connection.
|
||||
#
|
||||
# If the property value does not follow the grammar, or a particular group
|
||||
# parameter is not valid, the connection will fall back and use the
|
||||
# underlying JSSE provider's default group parameter.
|
||||
#
|
||||
# Note: This property is currently used by OpenJDK's JSSE implementation. It
|
||||
# is not guaranteed to be examined and used by other implementations.
|
||||
#
|
||||
# Example:
|
||||
# jdk.tls.server.defaultDHEParameters=
|
||||
# { \
|
||||
# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \
|
||||
# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \
|
||||
# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \
|
||||
# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \
|
||||
# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \
|
||||
# FFFFFFFF FFFFFFFF, 2}
|
|
@ -1,18 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIC4TCCAckCCQCIm5v8zLBtjTANBgkqhkiG9w0BAQUFADAzMQ4wDAYDVQQKDAVB
|
||||
V0lQUzEQMA4GA1UECwwHVGVzdGluZzEPMA0GA1UEAwwGY2Fyb290MB4XDTE3MDEz
|
||||
MTIzMDE0NFoXDTIyMDEzMDIzMDE0NFowMjEOMAwGA1UECgwFQVdJUFMxEDAOBgNV
|
||||
BAsMB1Rlc3RpbmcxDjAMBgNVBAMMBWd1ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||
AQ8AMIIBCgKCAQEAquAPNSusMUr4hewdfLpqGCFGVeVdLjfJr4sRdQ/JsIrR/0WT
|
||||
EmD62cg5vC6SoH+evN9D+ZS477XniBBxb0PNc7mqsQU0btDudJEKw2LPfUMgU/uD
|
||||
/QcNIC0ZGe3Fv9q265fufH8JkIJCZRJkUtsESL9U8io6cluVWWVkzRqYOrMo/86y
|
||||
Y9Enfm6akKbcM8dued0gqU5j01Senb9jpQNCVDJ7ZZekw2uD4FMSXH40JXsD5QQt
|
||||
5HYfNkGX3J2K5wsbW43DNCP+uHTNaBToiQ10syJ7gUA2bFXEXDGW8uTdofW/vWGZ
|
||||
MM74XMe4EG8fyZpH6lKm+gvZ/oakcVJwJ4mVuQIDAQABMA0GCSqGSIb3DQEBBQUA
|
||||
A4IBAQCDtYQfnDqXoyUqOEwR5D/Y8lyqU3EBCAGMdu3L/nrNiQ/noq1B/nkZC3Cg
|
||||
BCmBWriI7/C6avIJC4bmR+GOTC2bPSA4xEOqTg8makUN1pJWA6cjw5K6wxIDn9L3
|
||||
CdwT4tz1SK6rBXsWLG/yIwNm60ahg9C/qs2z0+HfZy7kNizRxS2AR049GT5KPpGt
|
||||
Z+YTPq5ZyKkVoyIzo5ffWT9ZlC259bVq+L5MiDbhdK/KFP9xIyce2icIdpMy7MI2
|
||||
mJr2fIN7JzQJP/j0ls+KjUU+euwI5ZGLoNWkt5OlmYel+uJsc0oSDvdGMPAD334c
|
||||
M7ZuFuR9lYhdK5SkDgZ9VH8PZqhJ
|
||||
-----END CERTIFICATE-----
|
|
@ -1,28 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCq4A81K6wxSviF
|
||||
7B18umoYIUZV5V0uN8mvixF1D8mwitH/RZMSYPrZyDm8LpKgf56830P5lLjvteeI
|
||||
EHFvQ81zuaqxBTRu0O50kQrDYs99QyBT+4P9Bw0gLRkZ7cW/2rbrl+58fwmQgkJl
|
||||
EmRS2wRIv1TyKjpyW5VZZWTNGpg6syj/zrJj0Sd+bpqQptwzx2553SCpTmPTVJ6d
|
||||
v2OlA0JUMntll6TDa4PgUxJcfjQlewPlBC3kdh82QZfcnYrnCxtbjcM0I/64dM1o
|
||||
FOiJDXSzInuBQDZsVcRcMZby5N2h9b+9YZkwzvhcx7gQbx/JmkfqUqb6C9n+hqRx
|
||||
UnAniZW5AgMBAAECggEBAJ9n2ogNr9tkRygYNwHunZ7ZG9Zx3FWLcbkzkRuVmN/7
|
||||
ASCU9TjGA/46zbGB+QOFSr6DwdQJK+Vj2xSR0mCr7fQxls0BQALJIkrYLCRN/6ap
|
||||
gnUWQ/E+LL6Bk9Mef8YU8WQjHjZCBNgszGehmrm42+xJoaMwRcn9Kfx1nG3Ci5Tl
|
||||
m+1PG/T5LZv4e6I++RzsqBNdGhvRic44j8vYfVrr16ciSofFo1HJ4NmVCbIalPjU
|
||||
K+wxNRUD3jATeU70B582VXXSJf1r26cG3vZHaMCUWLPPNjKDD8Dsr9Q53iJ4QZYA
|
||||
DpgtLON6KxZSoRJeYS3Gdru0iquBJRMYV2T2dIjMkgECgYEA07++DbqCAnLI5ZjW
|
||||
Du303ZWzfwdz0iQLXksVPR2NC1u8lMJwbLgF1fbcss+YET91jfrrW3Cd0nOxFqX4
|
||||
kwrQtuRCs2qW6MAusqX+tAYC6//cMIjzNikGHC+4b/1MmPfvqtVXVM8uhxlny3Dm
|
||||
gzcdFa9YN7PlDr5jpnVbWj1zzFkCgYEAzpWhm9wDEX6e0PxtbKPNVgsoYJ3+n3QR
|
||||
i0XgJxFNDTpcFXEujwywsgauddSEOb8iPZgsQyfTXLr8qfhobTLSEYqDqmpzcm3O
|
||||
xr+uhCL7Jy26EfuNnha5Ntzqs1KosLxoQwPx5JMKSzDPRApV/VsLAgA+GVn7rfsM
|
||||
ri/DFygtaGECgYEAiuc6FillxZNko/BpYyvHuF/OeqL54DzS1E0upoOvFWddQrx2
|
||||
IWtqMJya1BWH7LCTPcr+/2HVtcs8vN2tPVAX8BG2i5l9WztOptRrS86xtfyGhbQg
|
||||
z0OEBZNsStJ/n8ztBESk4DZ0kB0jUHpETIkn5CS9GvVAajaMihJsFbtALikCgYB+
|
||||
0ltBHKMBlXMYJy9h93kyLm1eSwAqkY3Hq2D9euCLk10+iJollYvP7swhaBK4hL8X
|
||||
gxkBLSzTi7NbATXSe9V8kUVdVDaFdCXx23Dei78VgTvumDiLabXQmXS4G7GVtkRn
|
||||
h79zLFWwbUmAorvBaqfqVY3J8HTSjQFu2cFxsOeXYQKBgQCOTiPntXCWWEsCBJp5
|
||||
QOaHW1MZXYz8diVpNiZ/tJGhT4Van8ja7DJ0r+zWNrX5lMRct9E5jbbSgywsaY4W
|
||||
1sMVmAraKrbnIlJvv+nyBoU0uLTiBVNsBhMy7UkqrgH03o+aq1zSqCrIvumxuOAe
|
||||
cbq1B0DdERrn7goOytsviSDs1Q==
|
||||
-----END PRIVATE KEY-----
|
|
@ -1,20 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDOTCCAiGgAwIBAgIJAIsJUossJEAhMA0GCSqGSIb3DQEBBQUAMDMxDjAMBgNV
|
||||
BAoMBUFXSVBTMRAwDgYDVQQLDAdUZXN0aW5nMQ8wDQYDVQQDDAZjYXJvb3QwHhcN
|
||||
MTYxMTIwMDAyNzQ0WhcNNDYxMTEzMDAyNzQ0WjAzMQ4wDAYDVQQKDAVBV0lQUzEQ
|
||||
MA4GA1UECwwHVGVzdGluZzEPMA0GA1UEAwwGY2Fyb290MIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEA1aBCQLlOpbC7/ikudAmYdTgI16FecS8yItRzMMgX
|
||||
Po589JRydYe+3Wv4gaVZAktoCFCuoik9DRnewzqPxGzAOrq+QfPKRQhY0AdDZP4v
|
||||
c82r8C0ga/SZTImST/Y+WA7dJ6eRGfDiOIS/auQ0zcfrGFv4//I5+Sa+5dQNe0me
|
||||
pyAKaYTzrZWKrSsZbjxs1nHd+0ahIzgwWGb3UDY9MNMtP9/EvhRZkxgjeTnVZD8X
|
||||
aOLiwCIBALoGayId5wbXjyUIRzelPQPCXAADQcewlnlvbLadTXVCA3rP7TvNyx0W
|
||||
blpluNBg0o6sjlo2bzInBswHsFHUOZPcJT6pLhGRC52eNwIDAQABo1AwTjAdBgNV
|
||||
HQ4EFgQUjRTZ3Toe0L+XZodTnOTtpR39eJUwHwYDVR0jBBgwFoAUjRTZ3Toe0L+X
|
||||
ZodTnOTtpR39eJUwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAuvXD
|
||||
Hm5cJxtP3phZYAOdrSxJkJg/gMmRBLsS2GksPks07pelSxPySRjVZCJSDd8zbSc5
|
||||
DGdFBMI0Xdk7+V5KxP6ATfyc37GoxGG7ygbUjLvmlzsg2i+a0wIDjILyzisicA0q
|
||||
DyCLZGxNahFUrhci0mpKAr/RaGr4Hx4R+JMItP3sxysVbIhc4wdm4mRTA3n8Eru3
|
||||
hcPpLQlqLheVuCIECxMG+eVKVevZWN0gqiEA7C+pByMxASqeHc6SRCXHx8/GJPmw
|
||||
ocaHpJ7Iib2kMLeBT24R+RNHEpPknf/PkgwvM0BLPqlk8cNqAR7TZ/OtX1ffmPbv
|
||||
t+nP8jegKGo4lVr3Fg==
|
||||
-----END CERTIFICATE-----
|
|
@ -209,9 +209,9 @@ javacVerbose=true
|
|||
compilerArg=-g:lines,source -nowarn
|
||||
|
||||
# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
|
||||
javacSource=1.7
|
||||
javacSource=1.8
|
||||
|
||||
# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
|
||||
javacTarget=1.7
|
||||
javacTarget=1.8
|
||||
|
||||
|
||||
|
|
|
@ -18,9 +18,9 @@ basearch=x86_64
|
|||
logExtension=.log
|
||||
javacDebugInfo=false
|
||||
javacFailOnError=true
|
||||
javacVerbose=true
|
||||
javacSource=1.7
|
||||
javacTarget=1.7
|
||||
javacVerbose=false
|
||||
javacSource=1.8
|
||||
javacTarget=1.8
|
||||
compilerArg=-g:lines,source -nowarn
|
||||
|
||||
generate.p2.metadata=true
|
||||
|
|
|
@ -127,6 +127,6 @@
|
|||
</if>
|
||||
</target>
|
||||
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml"
|
||||
classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -174,15 +174,15 @@ javacDebugInfo=false
|
|||
javacFailOnError=true
|
||||
|
||||
# Enable or disable verbose mode of the compiler
|
||||
javacVerbose=true
|
||||
javacVerbose=false
|
||||
|
||||
# Extra arguments for the compiler. These are specific to the java compiler being used.
|
||||
compilerArg=-g:lines,source -nowarn
|
||||
|
||||
# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
|
||||
javacSource=1.7
|
||||
javacSource=1.8
|
||||
|
||||
# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
|
||||
javacTarget=1.7
|
||||
javacTarget=1.8
|
||||
|
||||
|
||||
|
|
|
@ -2,30 +2,33 @@ com.raytheon.uf.common.base.feature
|
|||
com.raytheon.uf.viz.dataplugin.obs.feature
|
||||
com.raytheon.uf.viz.sounding.feature
|
||||
com.raytheon.uf.viz.cots.feature
|
||||
com.raytheon.uf.viz.registry.feature
|
||||
com.raytheon.uf.viz.common.core.feature
|
||||
com.raytheon.uf.viz.dataplugins.feature
|
||||
com.raytheon.viz.feature.awips
|
||||
com.raytheon.uf.viz.application.feature
|
||||
com.raytheon.uf.viz.base.feature
|
||||
com.raytheon.uf.viz.nwsauth.feature
|
||||
com.raytheon.uf.viz.archive.feature
|
||||
com.raytheon.uf.viz.useradmin.feature
|
||||
com.raytheon.uf.viz.gisdatastore.feature
|
||||
com.raytheon.viz.dataaccess.feature
|
||||
com.raytheon.uf.viz.localization.perspective.feature
|
||||
com.raytheon.uf.viz.core.feature
|
||||
com.raytheon.viz.warnings.feature
|
||||
com.raytheon.uf.viz.ncep.core.feature
|
||||
com.raytheon.uf.viz.aviation.advisory.feature
|
||||
com.raytheon.uf.viz.d2d.core.feature
|
||||
com.raytheon.uf.viz.kml.export.feature
|
||||
com.raytheon.viz.radar.feature
|
||||
com.raytheon.uf.viz.grid.feature
|
||||
com.raytheon.uf.viz.displays.feature
|
||||
com.raytheon.viz.hydro.feature
|
||||
com.raytheon.uf.viz.kml.export.feature
|
||||
com.raytheon.uf.viz.d2d.damagepath.feature
|
||||
com.raytheon.uf.viz.d2d.xy.feature
|
||||
com.raytheon.viz.volumebrowser.feature
|
||||
com.raytheon.uf.viz.core.maps.feature
|
||||
com.raytheon.uf.viz.thinclient.feature
|
||||
com.raytheon.uf.viz.npp.feature
|
||||
com.raytheon.uf.viz.vtec.feature
|
||||
com.raytheon.viz.text.feature
|
||||
com.raytheon.viz.warngen.feature
|
||||
com.raytheon.viz.gfe.feature
|
||||
|
@ -42,12 +45,10 @@ com.raytheon.uf.viz.npp.sounding.feature
|
|||
com.raytheon.uf.viz.ncep.npp.feature
|
||||
com.raytheon.uf.viz.ncep.perspective.feature
|
||||
com.raytheon.uf.viz.d2d.skewt.feature
|
||||
com.raytheon.uf.viz.grib.feature
|
||||
edu.wisc.ssec.cimss.viz.convectprob.feature
|
||||
gov.noaa.nws.mdl.viz.boundaryTool.common.feature
|
||||
com.raytheon.uf.viz.satellite.goesr.feature
|
||||
gov.noaa.gsd.viz.ensemble.feature
|
||||
gov.noaa.nws.mdl.viz.awipsref.feature
|
||||
gov.noaa.nws.obs.viz.geodata.feature
|
||||
gov.noaa.nws.ocp.uf.viz.gisdatastore.feature
|
||||
com.raytheon.uf.viz.gisdatastore.feature
|
||||
com.raytheon.uf.viz.server.edex.feature
|
||||
|
|
|
@ -217,6 +217,9 @@
|
|||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.ncep.dataplugins.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.viz.hydro.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.d2d.xy.feature" />
|
||||
</antcall>
|
||||
|
@ -239,7 +242,10 @@
|
|||
<param name="feature" value="com.raytheon.uf.viz.thinclient.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.useradmin.feature" />
|
||||
<param name="feature" value="com.raytheon.uf.viz.registry.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.datadelivery.feature" />
|
||||
</antcall>
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.npp.feature" />
|
||||
|
@ -292,11 +298,15 @@
|
|||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="gov.noaa.nws.obs.viz.geodata.feature" />
|
||||
</antcall>
|
||||
<!--
|
||||
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="gov.noaa.nws.ocp.uf.viz.gisdatastore.feature" />
|
||||
</antcall>
|
||||
-->
|
||||
|
||||
<antcall target="p2.build.repo">
|
||||
<param name="feature" value="com.raytheon.uf.viz.d2d.damagepath.feature" />
|
||||
</antcall>
|
||||
|
||||
<antcall target="cleanup.features" />
|
||||
</target>
|
||||
|
||||
|
@ -473,5 +483,6 @@
|
|||
</if>
|
||||
</target>
|
||||
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
|
||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
# Aug 03, 2015 #4694 dlovely Logback will now add user.home to LOGDIR
|
||||
# Sep 17, 2015 #4869 bkowal Read dynamic AlertViz version information at startup.
|
||||
# Oct 05, 2015 #4869 bkowal Fix AlertViz argument ordering
|
||||
# Feb 15, 2017 6025 tgurney Force use of GTK2
|
||||
#
|
||||
|
||||
user=`/usr/bin/whoami`
|
||||
|
@ -199,6 +200,9 @@ if [ -f ${dir}/awipsVersion.txt ]; then
|
|||
IFS=${prevIFS}
|
||||
fi
|
||||
|
||||
# Force GTK2
|
||||
export SWT_GTK3=0
|
||||
|
||||
#run a loop for alertviz
|
||||
count=0
|
||||
while [ $exitVal -ne 0 -a $count -lt 10 ]
|
||||
|
|
|
@ -1,2 +1,300 @@
|
|||
#!/bin/bash
|
||||
/awips2/cave/run.sh
|
||||
# CAVE startup script
|
||||
# Note: CAVE will not run as 'root'
|
||||
|
||||
# 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.
|
||||
#
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Dec 05, 2013 #2593 rjpeter Added check for number of running
|
||||
# cave sessions.
|
||||
# Dec 05, 2013 #2590 dgilling Modified so gfeclient.sh can be wrapped
|
||||
# around this script.
|
||||
# Jan 24, 2014 #2739 bsteffen Log exit status
|
||||
# Jan 30, 2014 #2593 bclement warns based on memory usage, fixed for INI files with spaces
|
||||
# Jul 10, 2014 #3363 bclement logs command used to launch application to console logs
|
||||
# Oct 10, 2014 #3675 njensen Logback now does console logging to ensure correct pid
|
||||
# Oct 13, 2014 #3675 bclement startup shutdown log includes both launching pid and placeholder
|
||||
# Jan 28, 2015 #4018 randerso Added a productEditor log file to changes in the GFE product editor
|
||||
# Jun 17, 2015 #4148 rferrel Logback needs fewer environment variables.
|
||||
# Jul 23, 2015 ASM#13849 D. Friedman Use a unique Eclipse configuration directory
|
||||
# Aug 03, 2015 #4694 dlovely Logback will now add user.home to LOGDIR
|
||||
# Sep 16, 2015 #4869 bkowal Read dynamic CAVE version information at startup.
|
||||
# Apr 28, 2016 #5609 bkowal Specify the location of the java.io.tmpdir as a jvm arg.
|
||||
# Nov 3, 2016 19508 Qinglu Lin Export proper TEXTWS if no matching XT in XT_WORKSTATIONS for LX.
|
||||
# Jan 26, 2017 6092 randerso Add export for PROGRAM_NAME
|
||||
# Feb 6, 2017 #6025 tgurney Force use of GTK2
|
||||
# Nov 07, 2017 6516 randerso Use correct ini file for gfeClient
|
||||
# Apr 23, 2018 6351 mapeters Fix looking up of ini file
|
||||
#
|
||||
|
||||
|
||||
user=`/usr/bin/whoami`
|
||||
if [ ${user} == 'root' ];then
|
||||
echo "WARNING: CAVE cannot be run as user '${user}'!"
|
||||
echo " change to another user and run again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Since, we no longer need to worry about re-location ...
|
||||
CAVE_INSTALL="/awips2/cave"
|
||||
JAVA_INSTALL="/awips2/java"
|
||||
PYTHON_INSTALL="/awips2/python"
|
||||
export AWIPS_INSTALL_DIR="${CAVE_INSTALL}"
|
||||
|
||||
MAX_MEM_PROPORTION="0.85"
|
||||
|
||||
source ${CAVE_INSTALL}/caveUtil.sh
|
||||
RC=$?
|
||||
if [ ${RC} -ne 0 ]; then
|
||||
echo "ERROR: unable to find and/or access ${CAVE_INSTALL}/caveUtil.sh."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Run monitorThreads?
|
||||
runMonitorThreads=false
|
||||
|
||||
# copy the viz shutdown utility if necessary.
|
||||
copyVizShutdownUtilIfNecessary
|
||||
|
||||
# delete any old disk caches in the background
|
||||
deleteOldCaveDiskCaches &
|
||||
|
||||
# Enable core dumps
|
||||
ulimit -c unlimited >> /dev/null 2>&1
|
||||
|
||||
export LD_LIBRARY_PATH=${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib:${PYTHON_INSTALL}/lib/python2.7/site-packages/jep:$LD_LIBRARY_PATH
|
||||
if [[ -z "$CALLED_EXTEND_LIB_PATH" ]]; then
|
||||
extendLibraryPath
|
||||
fi
|
||||
export PATH=${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:$PATH
|
||||
export JAVA_HOME="${JAVA_INSTALL}/jre"
|
||||
|
||||
# The user can update this field if they choose to do so.
|
||||
export HYDRO_APPS_DIR="/awips2/edex/data/share/hydroapps"
|
||||
|
||||
export EDEX_HOME=/awips2/edex
|
||||
export LOCALIZATION_ROOT=~/caveData/common
|
||||
export PGSQL_DRIVER_DIR=`ls -1d /awips2/cave/plugins/org.postgres_*`
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "FATAL: Unable to locate the PostgreSQL JDBC Driver."
|
||||
exit 1
|
||||
fi
|
||||
export apps_dir=${HYDRO_APPS_DIR}
|
||||
|
||||
SWITCHES=($SWITCHES)
|
||||
TESTCHECK="$TMCP_HOME/bin/getTestMode"
|
||||
if [ -x ${TESTCHECK} ]; then
|
||||
echo "Calling getTestMode()"
|
||||
${TESTCHECK}
|
||||
status=${?}
|
||||
if [ $status -eq 11 ]; then
|
||||
MODE="TEST"
|
||||
SWITCHES+=(-mode TEST)
|
||||
elif [ $status -eq 12 ];then
|
||||
MODE="PRACTICE"
|
||||
SWITCHES+=(-mode PRACTICE)
|
||||
elif [ $status -eq 15 ];then
|
||||
MODE="OPERATIONAL"
|
||||
SWITCHES+=(-mode OPERATIONAL)
|
||||
else
|
||||
MODE="OPERATIONAL (no response)"
|
||||
fi
|
||||
echo "getTestMode() returned ${MODE}"
|
||||
else
|
||||
MODE="UNKNOWN"
|
||||
echo "getTestMode() not found - going to use defaults"
|
||||
fi
|
||||
|
||||
VERSION_ARGS=()
|
||||
if [ -f ${CAVE_INSTALL}/awipsVersion.txt ]; then
|
||||
prevIFS=${IFS}
|
||||
IFS=$'\n'
|
||||
for line in `cat ${CAVE_INSTALL}/awipsVersion.txt`; do
|
||||
VERSION_ARGS+=(${line})
|
||||
done
|
||||
IFS=${prevIFS}
|
||||
fi
|
||||
|
||||
TEXTWS=`hostname | sed -e 's/lx/xt/g'`
|
||||
if [[ $XT_WORKSTATIONS != *$TEXTWS* ]]
|
||||
then
|
||||
TEXTWS=`hostname`
|
||||
fi
|
||||
export TEXTWS
|
||||
|
||||
hostName=`hostname -s`
|
||||
|
||||
if [[ -z "$PROGRAM_NAME" ]]
|
||||
then
|
||||
export PROGRAM_NAME="cave"
|
||||
fi
|
||||
|
||||
if [[ "${PROGRAM_NAME}" == "gfeclient" || "${PROGRAM_NAME}" == "gfeClientServer" ]]
|
||||
then
|
||||
export CAVE_INI_ARG="--launcher.ini /awips2/cave/cave.ini"
|
||||
else
|
||||
lookupINI "$@"
|
||||
fi
|
||||
|
||||
# check number of running caves
|
||||
if [[ -z $IGNORE_NUM_CAVES ]]; then
|
||||
# get total memory on system in bytes
|
||||
mem=( `free -b | grep "Mem:"` )
|
||||
mem=${mem[1]}
|
||||
# get max amount of system memory used before we warn
|
||||
memThreshold=$(echo "$mem * $MAX_MEM_PROPORTION" | bc)
|
||||
# remove decimal
|
||||
printf -v memThreshold "%.0f" "$memThreshold"
|
||||
# get launcher.ini argument determined by user arguments
|
||||
launcherRegex='--launcher.ini\s(.+\.ini)'
|
||||
# default to cave.ini
|
||||
targetIni="/awips2/cave/cave.ini"
|
||||
if [[ $CAVE_INI_ARG =~ $launcherRegex ]]
|
||||
then
|
||||
targetIni="${BASH_REMATCH[1]}"
|
||||
fi
|
||||
# read max memory that could be used by this instance
|
||||
memOfLaunchingCave=$(readMemFromIni "$targetIni")
|
||||
# read total max memory of caves already running
|
||||
getTotalMemOfRunningCaves
|
||||
# add them together
|
||||
_totalAfterStart=$(($memOfLaunchingCave + $_totalRunningMem))
|
||||
if [[ "$_totalAfterStart" -ge "$memThreshold" ]]; then
|
||||
# convert to megs for display
|
||||
memOfLaunchingCave=$(($memOfLaunchingCave / $BYTES_IN_MB))
|
||||
_totalRunningMem=$(($_totalRunningMem / $BYTES_IN_MB))
|
||||
getPidsOfMyRunningCaves
|
||||
memMsg="$_numPids CAVE applications already running with a combined max memory of ${_totalRunningMem}MB. "
|
||||
memMsg+="The requested application has a max memory requirement of ${memOfLaunchingCave}MB. "
|
||||
memMsg+="Starting may impact system performance and stability.\n\nProceed?"
|
||||
zenity --question --title "Low Available Memory for Application" --text "$memMsg"
|
||||
cancel="$?"
|
||||
|
||||
if [[ "$cancel" == "1" ]]; then
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#check for gtk-2.0 value
|
||||
gtkResource=.gtkrc-2.0
|
||||
includeLine="include \"$HOME/.gtkrc.mine\""
|
||||
mineFile=.gtkrc.mine
|
||||
altButtonLine="gtk-alternative-button-order=1"
|
||||
if [ -f $HOME/$gtkResource ]; then
|
||||
if [ -w $HOME/$gtkResource ]; then
|
||||
var=`grep "gtkrc.mine" $HOME/$gtkResource`
|
||||
if [ '' == "$var" ]; then
|
||||
echo $includeLine >> $HOME/$gtkResource
|
||||
fi
|
||||
fi
|
||||
else
|
||||
touch $HOME/$gtkResource
|
||||
echo $includeLine >> $HOME/$gtkResource
|
||||
fi
|
||||
|
||||
if [ -f $HOME/$mineFile ]; then
|
||||
if [ -w $HOME/$mineFile ]; then
|
||||
var=`grep "alternative-button-order" $HOME/$mineFile`
|
||||
if [ '' == "$var" ]; then
|
||||
echo $altButtonLine >> $HOME/$mineFile
|
||||
fi
|
||||
fi
|
||||
else
|
||||
touch $HOME/$mineFile
|
||||
echo $altButtonLine >> $HOME/$mineFile
|
||||
fi
|
||||
|
||||
BASE_LOGDIR=caveData/logs/consoleLogs
|
||||
# Logback configuration files will append user.home to LOGDIR.
|
||||
export LOGDIR=$BASE_LOGDIR/$hostName/
|
||||
FULL_LOGDIR=$HOME/$LOGDIR
|
||||
|
||||
# make sure directory exists
|
||||
if [ ! -d $FULL_LOGDIR ]; then
|
||||
mkdir -p $FULL_LOGDIR
|
||||
fi
|
||||
|
||||
# delete any old disk caches in the background
|
||||
deleteOldCaveLogs &
|
||||
|
||||
curTime=`date +%Y%m%d_%H%M%S`
|
||||
|
||||
pid=$!
|
||||
export LOGFILE_STARTUP_SHUTDOWN="$FULL_LOGDIR/${PROGRAM_NAME}_${pid}_${curTime}_pid_%PID%_startup-shutdown.log"
|
||||
|
||||
createEclipseConfigurationDir
|
||||
TMP_VMARGS="--launcher.appendVmargs -vmargs -Djava.io.tmpdir=${eclipseConfigurationDir}"
|
||||
|
||||
# Force GTK2
|
||||
export SWT_GTK3=0
|
||||
|
||||
# At this point fork so that log files can be set up with the process pid and
|
||||
# this process can log the exit status of cave.
|
||||
(
|
||||
# can we write to log directory
|
||||
if [ -w $FULL_LOGDIR ]; then
|
||||
touch ${LOGFILE_STARTUP_SHUTDOWN}
|
||||
fi
|
||||
|
||||
# remove "-noredirect" flag from command-line if set so it doesn't confuse any
|
||||
# commands we call later.
|
||||
redirect="true"
|
||||
USER_ARGS=()
|
||||
while [[ $1 ]]
|
||||
do
|
||||
if [[ "$1" == "-noredirect" ]]
|
||||
then
|
||||
redirect="false"
|
||||
else
|
||||
USER_ARGS+=("$1")
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
# Make it easy to determine which process is using the directory
|
||||
if [[ -n $eclipseConfigurationDir ]]; then
|
||||
echo "$$" > "$eclipseConfigurationDir"/pid
|
||||
fi
|
||||
|
||||
if [[ "${runMonitorThreads}" == "true" ]] ; then
|
||||
# nohup to allow tar process to continue after user has logged out
|
||||
nohup ${CAVE_INSTALL}/monitorThreads.sh $pid >> /dev/null 2>&1 &
|
||||
fi
|
||||
|
||||
echo "Launching cave application using the following command: " >> ${LOGFILE_STARTUP_SHUTDOWN}
|
||||
echo "${CAVE_INSTALL}/cave ${CAVE_INI_ARG} ${SWITCHES[@]} ${USER_ARGS[@]} ${TMP_VMARGS} ${VERSION_ARGS[@]}" >> ${LOGFILE_STARTUP_SHUTDOWN}
|
||||
curTime=`date --rfc-3339=seconds -u`
|
||||
echo "Started at $curTime" >> ${LOGFILE_STARTUP_SHUTDOWN}
|
||||
|
||||
if [[ "${redirect}" == "true" ]] ; then
|
||||
# send output to /dev/null because the logback CaveConsoleAppender will capture that output
|
||||
exec ${CAVE_INSTALL}/cave ${CAVE_INI_ARG} "${SWITCHES[@]}" "${USER_ARGS[@]}" ${TMP_VMARGS} "${VERSION_ARGS[@]}" >> /dev/null 2>&1
|
||||
else
|
||||
# allow output to print to the console/terminal that launched CAVE
|
||||
exec ${CAVE_INSTALL}/cave ${CAVE_INI_ARG} "${SWITCHES[@]}" "${USER_ARGS[@]}" ${TMP_VMARGS} "${VERSION_ARGS[@]}" 2>&1
|
||||
fi
|
||||
) &
|
||||
|
||||
pid=$!
|
||||
logExitStatus $pid $LOGFILE_STARTUP_SHUTDOWN
|
||||
|
||||
|
|
Binary file not shown.
|
@ -45,7 +45,7 @@
|
|||
# May 27, 2016 ASM#18971 dfriedman Fix local variable usage in deleteOldEclipseConfigurationDirs
|
||||
# Aug 09, 2016 ASM#18911 D. Friedman Add minimum purge period of 24 hours. Use a lock file to prevent
|
||||
# simultaneous purges. Allow override of days to keep.
|
||||
# Apr 17, 2018 M. James Cleanup for containerization
|
||||
# Jan 26,2017 #6092 randerso return exitCode so it can be propagated back to through the calling processes
|
||||
########################
|
||||
|
||||
source /awips2/cave/iniLookup.sh
|
||||
|
@ -349,7 +349,7 @@ function logExitStatus()
|
|||
fi
|
||||
wait $pid
|
||||
exitCode=$?
|
||||
curTime=`date --rfc-3339=seconds`
|
||||
curTime=`date --rfc-3339=seconds -u`
|
||||
echo Exited at $curTime with an exit status of $exitCode >> $logFile
|
||||
|
||||
# If a core file was generated attempt to save it to a better place
|
||||
|
@ -363,6 +363,8 @@ function logExitStatus()
|
|||
mv $coreFile $hostPath
|
||||
fi
|
||||
fi
|
||||
|
||||
return $exitCode
|
||||
}
|
||||
|
||||
# takes in a PID
|
||||
|
@ -415,7 +417,9 @@ function deleteOldCaveLogs()
|
|||
|
||||
# Purge the old logs.
|
||||
local n_days_to_keep=${CAVE_LOG_DAYS_TO_KEEP:-30}
|
||||
find "$logdir" -type f -name "*.log" -mtime +"$n_days_to_keep" | xargs -r rm
|
||||
echo -e "Cleaning consoleLogs: "
|
||||
echo -e "find $logdir -type f -name "*.log" -mtime +$n_days_to_keep | xargs rm "
|
||||
find "$logdir" -type f -name "*.log" -mtime +"$n_days_to_keep" | xargs rm
|
||||
|
||||
# Record the last purge time and remove the lock file.
|
||||
echo $(date +%s) > "$last_purge_f"
|
||||
|
@ -432,7 +436,7 @@ function deleteOldEclipseConfigurationDirs()
|
|||
local save_IFS=$IFS
|
||||
IFS=$'\n'
|
||||
# Find directories that are owned by the user and older than one hour
|
||||
local old_dirs=( $(find "$tmp_dir" -mindepth 1 -maxdepth 1 -type d -user "$(whoami)" -mmin +60) )
|
||||
local old_dirs=( $(find "$tmp_dir" -mindepth 1 -maxdepth 1 -type d -user "$USER" -mmin +60) )
|
||||
IFS=$save_IFS
|
||||
if (( ${#old_dirs[@]} < 1 )); then
|
||||
return
|
||||
|
@ -469,7 +473,7 @@ function deleteEclipseConfigurationDir()
|
|||
function createEclipseConfigurationDir()
|
||||
{
|
||||
local d dir id=$(hostname)-$(whoami)
|
||||
for d in "$HOME/caveData/.cave-eclipse/"; do
|
||||
for d in "/local/cave-eclipse/" "$HOME/.cave-eclipse/"; do
|
||||
if [[ $d == $HOME/* ]]; then
|
||||
mkdir -p "$d" || continue
|
||||
fi
|
||||
|
@ -482,7 +486,7 @@ function createEclipseConfigurationDir()
|
|||
fi
|
||||
done
|
||||
echo "Unable to create a unique Eclipse configuration directory. Will proceed with default." >&2
|
||||
export eclipseConfigurationDir=$HOME/caveData/.cave-eclipse
|
||||
export eclipseConfigurationDir=$HOME/.cave-eclipse
|
||||
return 1
|
||||
}
|
||||
|
||||
|
|
|
@ -20,4 +20,6 @@ do
|
|||
exit 1
|
||||
fi
|
||||
done
|
||||
popd > /dev/null 2>&1
|
||||
# Change permissions back to awips.fxalpha as this is run by root during installs.
|
||||
chown -R awips.fxalpha /awips2/cave/etc
|
||||
popd > /dev/null 2>&1
|
||||
|
|
|
@ -2,9 +2,9 @@ Manifest-Version: 1.0
|
|||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Acarssounding Plug-in
|
||||
Bundle-SymbolicName: com.raytheon.uf.viz.acarssounding;singleton:=true
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Version: 1.17.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.raytheon.uf.viz.acarssounding
|
||||
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
|
||||
|
@ -26,7 +26,8 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
|
|||
com.raytheon.uf.common.comm;bundle-version="1.12.1174",
|
||||
com.raytheon.uf.common.derivparam;bundle-version="1.14.0",
|
||||
com.raytheon.uf.viz.volumebrowser.dataplugin;bundle-version="1.15.0",
|
||||
com.raytheon.uf.common.geospatial
|
||||
com.raytheon.uf.common.geospatial,
|
||||
com.raytheon.uf.viz.d2d.xy.adapters;bundle-version="1.15.0"
|
||||
Import-Package: com.raytheon.uf.common.inventory.exception,
|
||||
com.raytheon.uf.viz.datacube
|
||||
Bundle-ClassPath: com.raytheon.uf.viz.acarssounding.jar
|
||||
|
|
|
@ -35,5 +35,28 @@
|
|||
resourceType="cross_section">
|
||||
</productCreator>
|
||||
</extension>
|
||||
|
||||
<extension
|
||||
point="com.raytheon.uf.viz.xy.crosssection.crosssectionadapter">
|
||||
<crossSectionAdapter
|
||||
adapter="com.raytheon.uf.viz.d2d.xy.adapters.crosssection.PointCSAdapter"
|
||||
class="com.raytheon.uf.common.dataplugin.acarssounding.ACARSSoundingRecord"
|
||||
name="Acars Sounding Cross Section Adapter">
|
||||
</crossSectionAdapter>
|
||||
</extension>
|
||||
<extension
|
||||
point="com.raytheon.uf.viz.xy.timeseries.timeseriesadapter">
|
||||
<timeSeriesAdapter
|
||||
adapter="com.raytheon.uf.viz.d2d.xy.adapters.timeseries.PointDataTimeSeriesAdapter"
|
||||
class="com.raytheon.uf.common.dataplugin.acarssounding.ACARSSoundingRecord"
|
||||
name="Acars Sounding Time Series Adapter">
|
||||
</timeSeriesAdapter>
|
||||
</extension>
|
||||
<extension
|
||||
point="com.raytheon.uf.viz.xy.varheight.varheightadapter">
|
||||
<varHeightAdapter
|
||||
adapter="com.raytheon.uf.viz.d2d.xy.adapters.varheight.PointDataVarHeightAdapter"
|
||||
class="com.raytheon.uf.common.dataplugin.acarssounding.ACARSSoundingRecord"
|
||||
name="AcarsSounding Var Height Adapter">
|
||||
</varHeightAdapter>
|
||||
</extension>
|
||||
</plugin>
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||
|
||||
<bean id="acarssoundingDataCubeAdapter" class="com.raytheon.uf.viz.acarssounding.ACARSSoundingDataCubeAdapter" />
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="acarssoundingDataCubeAdapterRegistered"
|
||||
factory-bean="dataCubeAdapterRegistry"
|
||||
factory-method="registerAdapter">
|
||||
<constructor-arg ref="acarssoundingDataCubeAdapter" />
|
||||
</bean>
|
||||
<bean id="acarssoundingDataCubeAdapter" class="com.raytheon.uf.viz.acarssounding.ACARSSoundingDataCubeAdapter" />
|
||||
|
||||
<bean id="acarssoundingDataCubeAdapterRegistered"
|
||||
factory-bean="dataCubeAdapterRegistry"
|
||||
factory-method="registerAdapter">
|
||||
<constructor-arg ref="acarssoundingDataCubeAdapter" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
|
|
@ -4,7 +4,7 @@ Bundle-Name: AlertView Localization
|
|||
Bundle-SymbolicName: com.raytheon.uf.viz.alertview.localization
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Require-Bundle: com.raytheon.uf.common.localization;bundle-version="1.14.1",
|
||||
com.raytheon.uf.viz.alertview;bundle-version="1.15.0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
|
|
@ -4,7 +4,7 @@ Bundle-Name: LogBack AlertView compatibility
|
|||
Bundle-SymbolicName: com.raytheon.uf.viz.alertview.logback
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Eclipse-RegisterBuddy: ch.qos.logback
|
||||
Require-Bundle: ch.qos.logback;bundle-version="1.1.2",
|
||||
com.raytheon.uf.viz.alertview;bundle-version="1.15.0",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
|
|
@ -4,7 +4,7 @@ Bundle-Name: AlertView
|
|||
Bundle-SymbolicName: com.raytheon.uf.viz.alertview;singleton:=true
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Export-Package: com.raytheon.uf.viz.alertview
|
||||
Require-Bundle: org.eclipse.ui;bundle-version="3.8.2",
|
||||
org.eclipse.core.runtime;bundle-version="3.8.0",
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -48,28 +48,29 @@ import com.raytheon.uf.viz.alertview.ui.view.AlertView;
|
|||
import com.raytheon.uf.viz.alertview.ui.view.OpenAlertViewHandler;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* An {@link AlertDestination} which displays {@link Alert}s in a small popup
|
||||
* window. The window only display for a few seconds(exact time is configurable)
|
||||
* and then disappears. If the user clicks the popup it will open the displayed
|
||||
* alert in the {@link AlertView}
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------
|
||||
* Jun 17, 2015 4474 bsteffen Initial creation
|
||||
* Aug 20, 2015 4717 mapeters Added null check on Alert's message
|
||||
*
|
||||
* Feb 14, 2017 6029 randerso Ensure AlertPopup appears on primary monitor
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author bsteffen
|
||||
* @version 1.0
|
||||
*/
|
||||
public class AlertPopup implements AlertDestination,
|
||||
PreferenceFile.Listener<PopUpPreferences> {
|
||||
public class AlertPopup
|
||||
implements AlertDestination, PreferenceFile.Listener<PopUpPreferences> {
|
||||
|
||||
private final PopupAlertTask task = new PopupAlertTask();
|
||||
|
||||
|
@ -210,15 +211,16 @@ public class AlertPopup implements AlertDestination,
|
|||
nextDelayUnblockKey = 2;
|
||||
}
|
||||
this.displayedAlert = this.alert;
|
||||
if (displayedAlert != null && (shell == null || shell.isDisposed())) {
|
||||
shell = new Shell(Display.getDefault(), SWT.NO_FOCUS
|
||||
| SWT.NO_TRIM | SWT.ON_TOP);
|
||||
if (displayedAlert != null
|
||||
&& (shell == null || shell.isDisposed())) {
|
||||
shell = new Shell(Display.getDefault(),
|
||||
SWT.NO_FOCUS | SWT.NO_TRIM | SWT.ON_TOP);
|
||||
GridLayout layout = new GridLayout(1, false);
|
||||
layout.marginHeight = 0;
|
||||
layout.marginWidth = 0;
|
||||
shell.setLayout(layout);
|
||||
shell.setForeground(Display.getDefault().getSystemColor(
|
||||
SWT.COLOR_BLACK));
|
||||
shell.setForeground(
|
||||
Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
|
||||
shell.addListener(SWT.Dispose, new Listener() {
|
||||
@Override
|
||||
public void handleEvent(Event event) {
|
||||
|
@ -247,7 +249,7 @@ public class AlertPopup implements AlertDestination,
|
|||
});
|
||||
shell.setSize(prefs.getWidth(), prefs.getHeight());
|
||||
|
||||
Rectangle clientArea = Display.getDefault().getMonitors()[0]
|
||||
Rectangle clientArea = Display.getDefault().getPrimaryMonitor()
|
||||
.getClientArea();
|
||||
|
||||
int offset = 2;
|
||||
|
@ -259,8 +261,8 @@ public class AlertPopup implements AlertDestination,
|
|||
startY = clientArea.y + offset;
|
||||
break;
|
||||
case UPPER_RIGHT:
|
||||
startX = clientArea.x + clientArea.width
|
||||
- shell.getSize().x - offset;
|
||||
startX = clientArea.x + clientArea.width - shell.getSize().x
|
||||
- offset;
|
||||
startY = clientArea.y + offset;
|
||||
break;
|
||||
case LOWER_LEFT:
|
||||
|
@ -269,8 +271,8 @@ public class AlertPopup implements AlertDestination,
|
|||
- shell.getSize().y - offset;
|
||||
break;
|
||||
case LOWER_RIGHT:
|
||||
startX = clientArea.x + clientArea.width
|
||||
- shell.getSize().x - offset;
|
||||
startX = clientArea.x + clientArea.width - shell.getSize().x
|
||||
- offset;
|
||||
startY = clientArea.y + clientArea.height
|
||||
- shell.getSize().y - offset;
|
||||
break;
|
||||
|
@ -286,10 +288,10 @@ public class AlertPopup implements AlertDestination,
|
|||
}
|
||||
} else {
|
||||
Display display = shell.getDisplay();
|
||||
label.setBackground(styles.getBackgroundColor(display,
|
||||
displayedAlert));
|
||||
label.setForeground(styles.getForegroundColor(display,
|
||||
displayedAlert));
|
||||
label.setBackground(
|
||||
styles.getBackgroundColor(display, displayedAlert));
|
||||
label.setForeground(
|
||||
styles.getForegroundColor(display, displayedAlert));
|
||||
label.setFont(styles.getFont(display, displayedAlert));
|
||||
label.setText(displayedAlert.getMessage() == null ? "null"
|
||||
: displayedAlert.getMessage());
|
||||
|
@ -366,8 +368,8 @@ public class AlertPopup implements AlertDestination,
|
|||
|
||||
private void activate() {
|
||||
if (!active) {
|
||||
shell.setCursor(shell.getDisplay().getSystemCursor(
|
||||
SWT.CURSOR_HAND));
|
||||
shell.setCursor(
|
||||
shell.getDisplay().getSystemCursor(SWT.CURSOR_HAND));
|
||||
if (activeColor == null
|
||||
|| !inactiveColor.equals(label.getBackground())) {
|
||||
inactiveColor = label.getBackground();
|
||||
|
@ -398,8 +400,8 @@ public class AlertPopup implements AlertDestination,
|
|||
|
||||
private void deactivate() {
|
||||
if (active) {
|
||||
shell.setCursor(shell.getDisplay().getSystemCursor(
|
||||
SWT.CURSOR_ARROW));
|
||||
shell.setCursor(
|
||||
shell.getDisplay().getSystemCursor(SWT.CURSOR_ARROW));
|
||||
label.setBackground(inactiveColor);
|
||||
active = false;
|
||||
task.unblockChanges();
|
||||
|
|
|
@ -18,6 +18,6 @@ Export-Package: com.raytheon.uf.viz.alertviz.ui,
|
|||
com.raytheon.uf.viz.alertviz.ui.audio,
|
||||
com.raytheon.uf.viz.alertviz.ui.dialogs,
|
||||
com.raytheon.uf.viz.alertviz.ui.timer
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Import-Package: com.raytheon.uf.common.alertmonitor
|
||||
Bundle-ClassPath: com.raytheon.uf.viz.alertviz.ui.jar
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -22,6 +22,7 @@ package com.raytheon.uf.viz.alertviz.ui.dialogs;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.Vector;
|
||||
|
@ -76,13 +77,14 @@ import com.raytheon.uf.viz.alertviz.config.Source;
|
|||
import com.raytheon.uf.viz.alertviz.config.TrayConfiguration;
|
||||
import com.raytheon.uf.viz.alertviz.ui.audio.AlertAudioMgr;
|
||||
import com.raytheon.uf.viz.alertviz.ui.audio.IAudioAction;
|
||||
import com.raytheon.viz.ui.dialogs.DialogUtil;
|
||||
|
||||
/**
|
||||
* This class displays the dialog showing all of the in-bound messages.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------------------------
|
||||
* Oct 05, 2008 lvenable Initial creation.
|
||||
|
@ -113,12 +115,13 @@ import com.raytheon.uf.viz.alertviz.ui.audio.IAudioAction;
|
|||
* monitor containing cursor after caveData is
|
||||
* cleared. Code cleanup.
|
||||
* Nov 02, 2016 5980 randerso Fixed sizing when changing layout
|
||||
*
|
||||
* Feb 14, 2017 6029 randerso Ensure AlertMessageDlg cannot be on top of
|
||||
* panels, cleanup
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author lvenable
|
||||
* @version 1.0
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
||||
IAudioAction, ILocalizationFileObserver {
|
||||
|
@ -141,11 +144,6 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
*/
|
||||
private Display display;
|
||||
|
||||
/**
|
||||
* Return value when the shell is disposed.
|
||||
*/
|
||||
private final Boolean returnValue = false;
|
||||
|
||||
/**
|
||||
* Label used to move the dialog.
|
||||
*/
|
||||
|
@ -230,7 +228,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/**
|
||||
* Message vector.
|
||||
*/
|
||||
private final Vector<StatusMessage> messageVec = new Vector<StatusMessage>();
|
||||
private final Vector<StatusMessage> messageVec = new Vector<>();
|
||||
|
||||
private static final String CATEGORY_MONITOR = "MONITOR";
|
||||
|
||||
|
@ -240,7 +238,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
*
|
||||
* @param display
|
||||
* Parent display.
|
||||
* @param audioCB
|
||||
|
@ -277,10 +275,9 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Open method used to display the dialog.
|
||||
*
|
||||
* @return True/False.
|
||||
*
|
||||
*/
|
||||
public Object open() {
|
||||
public void open() {
|
||||
shell = new Shell(display, SWT.ON_TOP | SWT.NO_TRIM);
|
||||
|
||||
shell.addDisposeListener(new DisposeListener() {
|
||||
|
@ -310,21 +307,15 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
// if previous size and location were not set
|
||||
if (rect.width == 0 || rect.height == 0) {
|
||||
// use default size and locate dialog on monitor containing cursor
|
||||
Monitor[] monitors = display.getMonitors();
|
||||
|
||||
Point cursor = display.getCursorLocation();
|
||||
for (int i = 0; i < monitors.length; i++) {
|
||||
if (monitors[i].getBounds().contains(cursor)) {
|
||||
shellLoc.x = monitors[i].getBounds().x;
|
||||
shellLoc.y = monitors[i].getBounds().y;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Monitor monitor = DialogUtil.getCursorMonitor(display);
|
||||
shellLoc.x = monitor.getClientArea().x;
|
||||
shellLoc.y = monitor.getClientArea().y;
|
||||
}
|
||||
Point shellSize = shell.getSize();
|
||||
if (rect.width > shellSize.x && resizeLabel != null
|
||||
&& !resizeLabel.isDisposed())
|
||||
&& !resizeLabel.isDisposed()) {
|
||||
shellSize.x = rect.width;
|
||||
}
|
||||
|
||||
// force bar location to be within the display.
|
||||
Display d = shell.getDisplay();
|
||||
|
@ -350,8 +341,6 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
} else {
|
||||
enabled = true;
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -397,7 +386,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
* Register as a window.
|
||||
*/
|
||||
public void registerAsWindow() {
|
||||
IContextService svc = (IContextService) PlatformUI.getWorkbench()
|
||||
IContextService svc = PlatformUI.getWorkbench()
|
||||
.getService(IContextService.class);
|
||||
svc.registerShell(shell, IContextService.TYPE_WINDOW);
|
||||
}
|
||||
|
@ -421,7 +410,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
glSize = 4 + monitorsCount;
|
||||
}
|
||||
|
||||
txtMsgCompArray = new ArrayList<TextMsgControlComp>();
|
||||
txtMsgCompArray = new ArrayList<>();
|
||||
|
||||
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||
Composite mainComp = new Composite(shell, SWT.BORDER);
|
||||
|
@ -533,7 +522,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Create all of the text controls composites.
|
||||
*
|
||||
*
|
||||
* @param parent
|
||||
* Parent composite.
|
||||
*/
|
||||
|
@ -559,7 +548,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Set maxLogSize
|
||||
*
|
||||
*
|
||||
* @param maxLogSize
|
||||
*/
|
||||
public void setMaxLogSize(final int maxLogSize) {
|
||||
|
@ -573,7 +562,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse move callback.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -582,10 +571,25 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
if (mouseDownPt != null) {
|
||||
if ((Label) e.getSource() == moveLabel) {
|
||||
if (moveDialog == true) {
|
||||
Point dialogLoc = shell.getLocation();
|
||||
dialogLoc.x = dialogLoc.x + (e.x - mouseDownPt.x);
|
||||
dialogLoc.y = dialogLoc.y + (e.y - mouseDownPt.y);
|
||||
shell.setLocation(dialogLoc);
|
||||
Rectangle dialogBounds = shell.getBounds();
|
||||
dialogBounds.x = dialogBounds.x + (e.x - mouseDownPt.x);
|
||||
dialogBounds.y = dialogBounds.y + (e.y - mouseDownPt.y);
|
||||
|
||||
// don't allow the dialog to move over the top or bottom
|
||||
// panels
|
||||
Monitor m = DialogUtil.getCursorMonitor(display);
|
||||
Rectangle clientArea = m.getClientArea();
|
||||
if (dialogBounds.y < clientArea.y) {
|
||||
dialogBounds.y = clientArea.y;
|
||||
}
|
||||
|
||||
if (dialogBounds.y + dialogBounds.height > clientArea.y
|
||||
+ clientArea.height) {
|
||||
dialogBounds.y = clientArea.y + clientArea.height
|
||||
- dialogBounds.height;
|
||||
}
|
||||
|
||||
shell.setLocation(dialogBounds.x, dialogBounds.y);
|
||||
}
|
||||
} else if ((Label) e.getSource() == resizeLabel) {
|
||||
if (resizeDialog == true) {
|
||||
|
@ -603,7 +607,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse down event.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -622,7 +626,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse up event.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -641,7 +645,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse double click event (not used).
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -652,7 +656,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Method to show the dialog.
|
||||
*
|
||||
*
|
||||
* @param showDialogFlag
|
||||
* Flag indicating if the dialog should be shown.
|
||||
*/
|
||||
|
@ -664,7 +668,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Check if the dialog is visible.
|
||||
*
|
||||
*
|
||||
* @return True if the dialog is visible.
|
||||
*/
|
||||
public boolean isVisible() {
|
||||
|
@ -696,7 +700,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Re-layout the message composites.
|
||||
*
|
||||
*
|
||||
* @return true if AlertVizBar is enabled and visible
|
||||
*/
|
||||
public boolean reLayout() {
|
||||
|
@ -769,13 +773,13 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Load the image (information) for moving the dialog.
|
||||
*
|
||||
*
|
||||
* @return The "Info" image.
|
||||
*/
|
||||
private String loadInfoImage() {
|
||||
IPathManager pm = PathManagerFactory.getPathManager();
|
||||
String path = pm
|
||||
.getFile(pm.getContext(LocalizationType.CAVE_STATIC,
|
||||
String path = pm.getFile(
|
||||
pm.getContext(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.BASE),
|
||||
"alertVizIcons" + File.separatorChar + "trans_i_small.gif")
|
||||
.getAbsolutePath();
|
||||
|
@ -784,7 +788,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Load the image (handle) for moving the dialog.
|
||||
*
|
||||
*
|
||||
* @return The "handle" image.
|
||||
*/
|
||||
private String loadHandleImage() {
|
||||
|
@ -800,7 +804,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Load the image used for resizing the dialog.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private String loadResizeImage() {
|
||||
|
@ -816,7 +820,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the number of grid columns for the text composites.
|
||||
*
|
||||
*
|
||||
* @return The number of grid columns.
|
||||
*/
|
||||
private int getGridColumnCount() {
|
||||
|
@ -845,7 +849,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the number of text control composites.
|
||||
*
|
||||
*
|
||||
* @return The number of text control composites.
|
||||
*/
|
||||
private int getNumberOfTextControls() {
|
||||
|
@ -878,7 +882,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the prefix of the layoutMode
|
||||
*
|
||||
*
|
||||
* @return String that is prefix
|
||||
*/
|
||||
private String getModePrefix() {
|
||||
|
@ -909,13 +913,13 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the list of categories of the specified text composite.
|
||||
*
|
||||
*
|
||||
* @param textBox
|
||||
* Text box number.
|
||||
* @return String array of categories.
|
||||
*/
|
||||
private Category[] getCategoryList(int textBox) {
|
||||
ArrayList<String> strArrayList = new ArrayList<String>();
|
||||
List<String> strArrayList = new ArrayList<>();
|
||||
|
||||
Map<String, Category> catMap = configData.getCategories();
|
||||
|
||||
|
@ -938,7 +942,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Handle the incoming message.
|
||||
*
|
||||
*
|
||||
* @param statMsg
|
||||
* Status message.
|
||||
* @param amd
|
||||
|
@ -975,7 +979,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Handle the incoming audio.
|
||||
*
|
||||
*
|
||||
* @param cat
|
||||
* Category information.
|
||||
* @param gConfig
|
||||
|
@ -1001,7 +1005,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Set the configuration data.
|
||||
*
|
||||
*
|
||||
* @param configData
|
||||
* Configuration data.
|
||||
*/
|
||||
|
@ -1011,7 +1015,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Is the message dlg enabled
|
||||
*
|
||||
*
|
||||
* @return true if dlg is enabled
|
||||
*/
|
||||
public boolean isEnabled() {
|
||||
|
@ -1020,7 +1024,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* This method will display Alert Visualization Tips
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
public void InfoPopUpText() {
|
||||
|
@ -1095,7 +1099,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
// if tips window would be partially off screen it will be forced on
|
||||
// screen by eclipse/window manager
|
||||
if (b.y < (m.getBounds().height - (b.y + b.height))) {
|
||||
if (b.y < (m.getClientArea().height - (b.y + b.height))) {
|
||||
// space below alertviz bar > than space above so position below
|
||||
infoTextShell.setLocation(b.x, b.y + b.height);
|
||||
} else {
|
||||
|
@ -1109,7 +1113,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Load the image (information) for moving the dialog.
|
||||
*
|
||||
*
|
||||
* @return The "Info" image.
|
||||
*/
|
||||
private String loadAudioImage(boolean play) {
|
||||
|
@ -1125,7 +1129,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Load the image (information) for moving the dialog.
|
||||
*
|
||||
*
|
||||
* @return The "Info" image.
|
||||
*/
|
||||
private String loadErrorImage() {
|
||||
|
@ -1181,7 +1185,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Add a message to the text message log
|
||||
*
|
||||
*
|
||||
* @param statMsg
|
||||
*/
|
||||
public void sendToTextMsgLog(StatusMessage statMsg) {
|
||||
|
@ -1196,7 +1200,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Set background color of errorBtn
|
||||
*
|
||||
*
|
||||
* @param background
|
||||
* the background color
|
||||
*/
|
||||
|
@ -1213,7 +1217,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/**
|
||||
* Set each of the default or user-defined monitor images that have been
|
||||
* stored in the configuration file.
|
||||
*
|
||||
*
|
||||
* @param mainComp
|
||||
*/
|
||||
private void updateMonitorImagesLabels() {
|
||||
|
@ -1246,7 +1250,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/**
|
||||
* Update the Monitor Image label background based upon the AlertMetadata
|
||||
* color set by the user.
|
||||
*
|
||||
*
|
||||
* @param mess
|
||||
* the status message.
|
||||
*/
|
||||
|
@ -1259,7 +1263,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
}
|
||||
|
||||
private Map<String, AlertMonitor> createAlertMonitorMap() {
|
||||
Map<String, AlertMonitor> map = new ConcurrentSkipListMap<String, AlertMonitor>();
|
||||
Map<String, AlertMonitor> map = new ConcurrentSkipListMap<>();
|
||||
Map<String, Source> sources = configData.getSources();
|
||||
|
||||
for (Source s : sources.values()) {
|
||||
|
@ -1277,7 +1281,7 @@ public class AlertMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the alert audio manager
|
||||
*
|
||||
*
|
||||
* @return the alert audio manager
|
||||
*/
|
||||
public AlertAudioMgr getAlertAudioManager() {
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -46,6 +46,7 @@ import org.eclipse.swt.widgets.Display;
|
|||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.List;
|
||||
import org.eclipse.swt.widgets.Listener;
|
||||
import org.eclipse.swt.widgets.Monitor;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.swt.widgets.Text;
|
||||
|
||||
|
@ -54,33 +55,39 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
import com.raytheon.uf.viz.alertviz.Container;
|
||||
import com.raytheon.uf.viz.alertviz.SystemStatusHandler;
|
||||
import com.raytheon.uf.viz.alertviz.config.AlertMetadata;
|
||||
import com.raytheon.viz.ui.dialogs.DialogUtil;
|
||||
|
||||
/**
|
||||
* This class displays the pop-up message dialog.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 05 Oct 2008 lvenable Initial creation.
|
||||
* 02 Apr 2009 lvenable TTR fixes.
|
||||
* 18 Nov 2010 2235 cjeanbap Changed button, hideDialogBtn, text
|
||||
* and store previous location.
|
||||
* 13 Jan 2011 7375 cjeanbap Commented out shell.setVisible(...) in
|
||||
* acknowledgeLastMessage().
|
||||
* 20 Apr 2015 4311 lvenable Fixed text field to accept really long text strings.
|
||||
* 29 Jun 2015 4311 randerso Reworking AlertViz dialogs to be resizable.
|
||||
* 25 Jan 2016 5054 randerso Converted to stand alone window
|
||||
* 08 Feb 2016 5312 randerso Deleted isDisposed() added isOpen()
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------------------------
|
||||
* Oct 05, 2008 lvenable Initial creation.
|
||||
* Apr 02, 2009 lvenable TTR fixes.
|
||||
* Nov 18, 2010 2235 cjeanbap Changed button, hideDialogBtn, text and
|
||||
* store previous location.
|
||||
* Jan 13, 2011 7375 cjeanbap Commented out shell.setVisible(...) in
|
||||
* acknowledgeLastMessage().
|
||||
* Apr 20, 2015 4311 lvenable Fixed text field to accept really long text
|
||||
* strings.
|
||||
* Jun 29, 2015 4311 randerso Reworking AlertViz dialogs to be resizable.
|
||||
* Jan 25, 2016 5054 randerso Converted to stand alone window
|
||||
* Feb 08, 2016 5312 randerso Deleted isDisposed() added isOpen()
|
||||
* Feb 14, 2017 6029 randerso Ensure popup does not appear on top of panels,
|
||||
* Made popup appear on monitor with AlertViz bar
|
||||
* Ensure popup cannot be dragged on top of panels.
|
||||
* Feb 28, 2017 6066 randerso Move dialog up, if necessary, when expanded
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author lvenable
|
||||
* @version 1.0
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
||||
DisposeListener {
|
||||
public class AlertPopupMessageDlg
|
||||
implements MouseMoveListener, MouseListener, DisposeListener {
|
||||
private static final int MAX_INITIAL_LINES = 5;
|
||||
|
||||
private static final int WIDTH_IN_CHARS = 135;
|
||||
|
@ -100,6 +107,11 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
*/
|
||||
private Shell shell;
|
||||
|
||||
/**
|
||||
* The parent shell
|
||||
*/
|
||||
private Shell parent;
|
||||
|
||||
/**
|
||||
* The display control.
|
||||
*/
|
||||
|
@ -179,7 +191,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/**
|
||||
* Array of status messages.
|
||||
*/
|
||||
private final ArrayList<StatusMessage> statMsgArray = new ArrayList<StatusMessage>();
|
||||
private final java.util.List<StatusMessage> statMsgArray = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Source label.
|
||||
|
@ -231,16 +243,6 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
*/
|
||||
private Point origin;
|
||||
|
||||
/**
|
||||
* Adjusted dialog location.
|
||||
*/
|
||||
private Point dialogLoc;
|
||||
|
||||
/**
|
||||
* Actual dialog X, Y coordinate.
|
||||
*/
|
||||
private Point dialogXY;
|
||||
|
||||
/**
|
||||
* Dialog background color.
|
||||
*/
|
||||
|
@ -280,10 +282,15 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
private int controlWidth;
|
||||
|
||||
private Point minSize;
|
||||
|
||||
private Point savedLoc = null;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param display
|
||||
*
|
||||
* @param parent
|
||||
* the shell of the AlertMessageDlg
|
||||
* @param statMsg
|
||||
* Status message.
|
||||
* @param expanded
|
||||
|
@ -293,9 +300,11 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
* @param startUpRGB
|
||||
* Color to be displayed at startup.
|
||||
*/
|
||||
public AlertPopupMessageDlg(Display display, StatusMessage statMsg,
|
||||
public AlertPopupMessageDlg(Shell parent, StatusMessage statMsg,
|
||||
boolean expanded, Listener listener, RGB startUpRGB) {
|
||||
this.display = display;
|
||||
|
||||
this.parent = parent;
|
||||
this.display = parent.getDisplay();
|
||||
eventListener = listener;
|
||||
statMsgArray.add(statMsg);
|
||||
this.expanded = expanded;
|
||||
|
@ -308,7 +317,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
* Initialize the shell
|
||||
*/
|
||||
private void initShell(RGB startUp) {
|
||||
shell = new Shell(display, SWT.ON_TOP | SWT.RESIZE);
|
||||
shell = new Shell(display, SWT.DIALOG_TRIM | SWT.ON_TOP | SWT.RESIZE);
|
||||
shell.setText("Alert Visualization Popup Message Dialog");
|
||||
|
||||
shell.addDisposeListener(this);
|
||||
|
@ -348,23 +357,20 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Open method used to display the dialog.
|
||||
*
|
||||
*
|
||||
*/
|
||||
private void open() {
|
||||
minSize = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
|
||||
shell.setMinimumSize(minSize);
|
||||
shell.setSize(minSize);
|
||||
|
||||
setInitialDialogLocation();
|
||||
setDialogLocation();
|
||||
|
||||
initialized = true;
|
||||
|
||||
showHideLog();
|
||||
|
||||
shell.open();
|
||||
|
||||
while (!shell.isDisposed()) {
|
||||
if (!display.readAndDispatch()) {
|
||||
display.sleep();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -378,7 +384,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/*
|
||||
* compute preferred height to display entire message.
|
||||
*/
|
||||
int screenWidth = display.getPrimaryMonitor().getBounds().width;
|
||||
int screenWidth = parent.getMonitor().getClientArea().width;
|
||||
|
||||
/*
|
||||
* compute width of controls as the lesser of WIDTH_IN_CHARS or
|
||||
|
@ -420,10 +426,10 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
moveLabel.setFont(labelFont);
|
||||
moveLabel.addMouseListener(this);
|
||||
moveLabel.addMouseMoveListener(this);
|
||||
moveLabel.setBackground(display
|
||||
.getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
|
||||
moveLabel.setForeground(display
|
||||
.getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
|
||||
moveLabel.setBackground(
|
||||
display.getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
|
||||
moveLabel.setForeground(
|
||||
display.getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -445,8 +451,8 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
sourceLbl.setLayoutData(gd);
|
||||
|
||||
priorityLbl = new Label(topLabelComp, SWT.BORDER);
|
||||
priorityLbl.setText(priorityStr
|
||||
+ statMsgArray.get(0).getPriority().ordinal());
|
||||
priorityLbl.setText(
|
||||
priorityStr + statMsgArray.get(0).getPriority().ordinal());
|
||||
gd = new GridData(200, SWT.DEFAULT);
|
||||
gd.verticalIndent = 10;
|
||||
priorityLbl.setLayoutData(gd);
|
||||
|
@ -468,12 +474,13 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
messageComp.setLayoutData(gd);
|
||||
messageComp.setBackground(display.getSystemColor(SWT.COLOR_RED));
|
||||
|
||||
messageTF = new Text(messageComp, SWT.BORDER | SWT.MULTI | SWT.WRAP
|
||||
| SWT.V_SCROLL);
|
||||
messageTF = new Text(messageComp,
|
||||
SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
|
||||
messageTF.setEditable(false);
|
||||
messageTF.setText(statMsgArray.get(0).getMessage());
|
||||
|
||||
int preferredHeight = messageTF.computeSize(controlWidth, SWT.DEFAULT).y;
|
||||
int preferredHeight = messageTF.computeSize(controlWidth,
|
||||
SWT.DEFAULT).y;
|
||||
|
||||
/*
|
||||
* compute size to display only max initial lines
|
||||
|
@ -577,7 +584,8 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
dblClickLBl.setForeground(display.getSystemColor(SWT.COLOR_DARK_BLUE));
|
||||
dblClickLBl.setLayoutData(gd);
|
||||
|
||||
msgLogList = new List(logComp, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
|
||||
msgLogList = new List(logComp,
|
||||
SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
|
||||
gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
|
||||
Rectangle size = msgLogList.computeTrim(0, 0, controlWidth,
|
||||
msgLogList.getItemHeight() * NUM_LIST_ITEMS);
|
||||
|
@ -673,6 +681,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
}
|
||||
|
||||
private void adjustHeight(int delta) {
|
||||
|
||||
Point minSize = shell.getMinimumSize();
|
||||
minSize.y += delta;
|
||||
shell.setMinimumSize(minSize);
|
||||
|
@ -681,6 +690,25 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
size.x += SWT_BUG_FACTOR;
|
||||
size.y += delta + SWT_BUG_FACTOR;
|
||||
shell.setSize(size);
|
||||
|
||||
if (delta < 0 && savedLoc != null) {
|
||||
shell.setLocation(savedLoc);
|
||||
savedLoc = null;
|
||||
}
|
||||
|
||||
Point prevLoc = shell.getLocation();
|
||||
Rectangle dialogBounds = shell.getBounds();
|
||||
Rectangle clientArea = shell.getMonitor().getClientArea();
|
||||
if (dialogBounds.y + dialogBounds.height > clientArea.y
|
||||
+ clientArea.height) {
|
||||
dialogBounds.y = clientArea.y + clientArea.height
|
||||
- dialogBounds.height;
|
||||
}
|
||||
|
||||
shell.setLocation(dialogBounds.x, dialogBounds.y);
|
||||
if (!prevLoc.equals(shell.getLocation())) {
|
||||
savedLoc = prevLoc;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -702,8 +730,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
timeLbl.setText(dateFormat.format(sm.getEventTime()));
|
||||
messageTF.setText(sm.getMessage());
|
||||
int desiredHeight = Math.min(MAX_INITIAL_LINES,
|
||||
messageTF.getLineCount())
|
||||
* messageTF.getLineHeight();
|
||||
messageTF.getLineCount()) * messageTF.getLineHeight();
|
||||
Rectangle clientArea = messageTF.getClientArea();
|
||||
if (clientArea.height < desiredHeight) {
|
||||
Rectangle trim = messageTF.computeTrim(clientArea.x, clientArea.y,
|
||||
|
@ -716,21 +743,9 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
detailsComp.displayDetails(sm);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bring the dialog to the front.
|
||||
*/
|
||||
public void dialogToFront() {
|
||||
// This is the way SWT works to bring a dialog
|
||||
// to the front of the display when it is hidden
|
||||
// under another dialog.
|
||||
shell.setLocation(dialogXY);
|
||||
shell.setFocus();
|
||||
shell.setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new status message.
|
||||
*
|
||||
*
|
||||
* @param sm
|
||||
* Status message.
|
||||
*/
|
||||
|
@ -779,7 +794,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the formatted status message.
|
||||
*
|
||||
*
|
||||
* @param sm
|
||||
* Status message.
|
||||
* @return Formatted status message.
|
||||
|
@ -814,8 +829,8 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
StatusMessage sm = statMsgArray.get(index);
|
||||
|
||||
try {
|
||||
SystemStatusHandler
|
||||
.acknowledge(sm, System.getProperty("user.name"));
|
||||
SystemStatusHandler.acknowledge(sm,
|
||||
System.getProperty("user.name"));
|
||||
} catch (Exception ex) {
|
||||
Container.logInternal(Priority.ERROR, "Acknowledge failed...", ex);
|
||||
return;
|
||||
|
@ -842,8 +857,8 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
StatusMessage sm = statMsgArray.get(0);
|
||||
|
||||
try {
|
||||
SystemStatusHandler
|
||||
.acknowledge(sm, System.getProperty("user.name"));
|
||||
SystemStatusHandler.acknowledge(sm,
|
||||
System.getProperty("user.name"));
|
||||
} catch (Exception ex) {
|
||||
Container.logInternal(Priority.ERROR, "Acknowledge last failed...",
|
||||
ex);
|
||||
|
@ -864,7 +879,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Set the background color of the dialog and all components.
|
||||
*
|
||||
*
|
||||
* @param rgb
|
||||
*/
|
||||
private void setBackgroundColors(RGB rgb) {
|
||||
|
@ -932,11 +947,9 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
try {
|
||||
SystemStatusHandler.acknowledge(message, userName);
|
||||
} catch (Exception ex) {
|
||||
Container
|
||||
.logInternal(
|
||||
Priority.ERROR,
|
||||
"AlertPopupMessaeDlg: exception acknowledging message.",
|
||||
ex);
|
||||
Container.logInternal(Priority.ERROR,
|
||||
"AlertPopupMessaeDlg: exception acknowledging message.",
|
||||
ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -954,36 +967,28 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/**
|
||||
* Sets initial location of dialog.
|
||||
*/
|
||||
private void setInitialDialogLocation() {
|
||||
private void setDialogLocation() {
|
||||
|
||||
if (dialogXY == null) {
|
||||
Point minSize = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
|
||||
shell.setMinimumSize(minSize);
|
||||
Rectangle clientArea = parent.getMonitor().getClientArea();
|
||||
|
||||
int screenHeight = display.getBounds().height;
|
||||
int screenWidth = display.getPrimaryMonitor().getBounds().width;
|
||||
|
||||
Point size = minSize;
|
||||
shell.setSize(size);
|
||||
|
||||
dialogXY = new Point((screenWidth - size.x) / 2,
|
||||
(screenHeight - size.y) / 4);
|
||||
shell.setLocation(dialogXY);
|
||||
} else {
|
||||
shell.setLocation(dialogXY);
|
||||
}
|
||||
int x = clientArea.x + Math.max(0, (clientArea.width - minSize.x) / 2);
|
||||
int y = clientArea.y + Math.max(0, (clientArea.height - minSize.y) / 4);
|
||||
shell.setLocation(x, y);
|
||||
savedLoc = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the dialog.
|
||||
*
|
||||
*
|
||||
* @param show
|
||||
* True to show dialog, false to hide.
|
||||
*/
|
||||
public void showDialog() {
|
||||
if (initialized) {
|
||||
shell.setLocation(dialogXY);
|
||||
shell.setVisible(true);
|
||||
if (!shell.isVisible()) {
|
||||
shell.setVisible(true);
|
||||
setDialogLocation();
|
||||
}
|
||||
|
||||
showSelectedListData();
|
||||
msgLogList.showSelection();
|
||||
|
@ -994,7 +999,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Get the number of unacknowledged messages.
|
||||
*
|
||||
*
|
||||
* @return Number of unacknowledged messages.
|
||||
*/
|
||||
public int getNumberOfMessages() {
|
||||
|
@ -1004,7 +1009,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
/**
|
||||
* Returns whether dialog is open or not, checks that she shell is not null,
|
||||
* not disposed and visible.
|
||||
*
|
||||
*
|
||||
* @return True if open, false if not.
|
||||
*/
|
||||
public boolean dialogIsOpen() {
|
||||
|
@ -1013,7 +1018,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse double-click event.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -1024,7 +1029,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse button down event.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -1036,7 +1041,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse button up event.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -1047,7 +1052,7 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
|
||||
/**
|
||||
* Mouse move event.
|
||||
*
|
||||
*
|
||||
* @param e
|
||||
* Mouse event.
|
||||
*/
|
||||
|
@ -1055,16 +1060,32 @@ public class AlertPopupMessageDlg implements MouseMoveListener, MouseListener,
|
|||
public void mouseMove(MouseEvent e) {
|
||||
if ((origin != null) && (moveDialog == true)) {
|
||||
// Move the dialog.
|
||||
dialogLoc = display.map(shell, null, e.x, e.y);
|
||||
dialogXY.x = dialogLoc.x - origin.x;
|
||||
dialogXY.y = dialogLoc.y - origin.y;
|
||||
shell.setLocation(dialogXY.x, dialogXY.y);
|
||||
Rectangle dialogBounds = shell.getBounds();
|
||||
dialogBounds.x = dialogBounds.x + (e.x - origin.x);
|
||||
dialogBounds.y = dialogBounds.y + (e.y - origin.y);
|
||||
|
||||
// don't allow the dialog to move over the top or bottom
|
||||
// panels
|
||||
Monitor m = DialogUtil.getCursorMonitor(display);
|
||||
Rectangle clientArea = m.getClientArea();
|
||||
if (dialogBounds.y < clientArea.y) {
|
||||
dialogBounds.y = clientArea.y;
|
||||
}
|
||||
|
||||
if (dialogBounds.y + dialogBounds.height > clientArea.y
|
||||
+ clientArea.height) {
|
||||
dialogBounds.y = clientArea.y + clientArea.height
|
||||
- dialogBounds.height;
|
||||
}
|
||||
|
||||
shell.setLocation(dialogBounds.x, dialogBounds.y);
|
||||
savedLoc = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if dialog is open
|
||||
*
|
||||
*
|
||||
* @return True if open, false if not.
|
||||
*/
|
||||
public boolean isOpen() {
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -47,6 +47,7 @@ import org.eclipse.ui.themes.ColorUtil;
|
|||
import com.raytheon.uf.common.localization.IPathManager;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.LocalizationUtil;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.message.StatusMessage;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
|
@ -63,6 +64,7 @@ import com.raytheon.uf.viz.alertviz.config.Category;
|
|||
import com.raytheon.uf.viz.alertviz.config.Configuration;
|
||||
import com.raytheon.uf.viz.alertviz.config.Source;
|
||||
import com.raytheon.uf.viz.alertviz.config.TrayConfiguration;
|
||||
import com.raytheon.uf.viz.alertviz.python.AlertVizPython;
|
||||
import com.raytheon.uf.viz.alertviz.ui.audio.AlertAudioMgr;
|
||||
import com.raytheon.uf.viz.alertviz.ui.audio.IAudioAction;
|
||||
import com.raytheon.uf.viz.alertviz.ui.timer.AlertTimer;
|
||||
|
@ -71,47 +73,55 @@ import com.raytheon.uf.viz.core.VizApp;
|
|||
|
||||
/**
|
||||
* This is the main class for the alert visualization.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 05 Oct 2008 lvenable Initial creation.
|
||||
* 02 Apr 2009 lvenable TTR fixes.
|
||||
* 18 Nov 2010 2235 cjeanbap Add AlertViz location preservation.
|
||||
* 01 Dec 2010 6532 cjeanbap Add functionality to restart AlertVisualization App.
|
||||
* 21 Jan 2011 cjeanbap Check Status Message for Internal AlertViz problem(s).
|
||||
* 24 Jan 2011 1978 cjeanbap Add Monitor Tooltip functionality.
|
||||
* 28 Jan 2011 4617 cjeanbap Added Monitor Only functionality.
|
||||
* 08 Feb 2011 4617 cjeanbap Fix bug of multiple windows.
|
||||
* 14 Feb 2010 4617 cjeanbap Changed handling of Exceptions filtering.
|
||||
* 03 Mar 2011 8059 rferrel alertArrived can now play system beep.
|
||||
* 04 Mar 2011 6532 rferrel Restart now works
|
||||
* 02 May 2011 9067 cjeanbap Redraw AlertMessageDlg if a Layout or a Monitor was
|
||||
* changed.
|
||||
* 03 May 2011 9101 cjeanbap Pass a clone object into AlertVizPython class.
|
||||
* 31 May 2011 8058 cjeanbap Kill sound based on TextMsgBox id.
|
||||
* 17 Jan 2012 27 rferrel Refactored to allow override of createTrayMenuItems
|
||||
* 09 Mar 2015 3856 lvenable Added a check to determine if the timer is running before
|
||||
* changing the icon on the timer action. If it isn't running
|
||||
* then set the icon to the default image.
|
||||
* 18 Mar 2015 4234 njensen Remove reference to non-working python
|
||||
* 03 Jun 2015 4473 njensen Updated for new AlertvizJob API
|
||||
* 29 Jun 2015 4311 randerso Reworking AlertViz dialogs to be resizable.
|
||||
* 28 Oct 2015 5054 randerso Call AlertVisualization.dispose() on restart so all the
|
||||
* other dispose methods are called.
|
||||
* 25 Jan 2016 5054 randerso Removed dummy parent shell
|
||||
* 08 Feb 2016 5312 randerso Changed to build tray menu on demand
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------------------------
|
||||
* Oct 05, 2008 lvenable Initial creation.
|
||||
* Apr 02, 2009 lvenable TTR fixes.
|
||||
* Nov 18, 2010 2235 cjeanbap Add AlertViz location preservation.
|
||||
* Dec 01, 2010 6532 cjeanbap Add functionality to restart
|
||||
* AlertVisualization App.
|
||||
* Jan 21, 2011 cjeanbap Check Status Message for Internal AlertViz
|
||||
* problem(s).
|
||||
* Jan 24, 2011 1978 cjeanbap Add Monitor Tooltip functionality.
|
||||
* Jan 28, 2011 4617 cjeanbap Added Monitor Only functionality.
|
||||
* Feb 08, 2011 4617 cjeanbap Fix bug of multiple windows.
|
||||
* Feb 14, 2010 4617 cjeanbap Changed handling of Exceptions filtering.
|
||||
* Mar 03, 2011 8059 rferrel alertArrived can now play system beep.
|
||||
* Mar 04, 2011 6532 rferrel Restart now works
|
||||
* May 02, 2011 9067 cjeanbap Redraw AlertMessageDlg if a Layout or a
|
||||
* Monitor was changed.
|
||||
* May 03, 2011 9101 cjeanbap Pass a clone object into AlertVizPython
|
||||
* class.
|
||||
* May 31, 2011 8058 cjeanbap Kill sound based on TextMsgBox id.
|
||||
* Jan 17, 2012 27 rferrel Refactored to allow override of
|
||||
* createTrayMenuItems
|
||||
* Mar 09, 2015 3856 lvenable Added a check to determine if the timer is
|
||||
* running before changing the icon on the
|
||||
* timer action. If it isn't running then set
|
||||
* the icon to the default image.
|
||||
* Mar 18, 2015 4234 njensen Remove reference to non-working python
|
||||
* Jun 03, 2015 4473 njensen Updated for new AlertvizJob API
|
||||
* Jun 29, 2015 4311 randerso Reworking AlertViz dialogs to be resizable.
|
||||
* Oct 28, 2015 5054 randerso Call AlertVisualization.dispose() on restart
|
||||
* so all the other dispose methods are called.
|
||||
* Jan 25, 2016 5054 randerso Removed dummy parent shell
|
||||
* Feb 08, 2016 5312 randerso Changed to build tray menu on demand
|
||||
* Feb 14, 2017 6029 randerso Make popup appear on monitor with AlertViz
|
||||
* bar
|
||||
* Mar 24, 2017 DR 16985 dfiedman Restore Python script functionality
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author lvenable
|
||||
* @version 1.0
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class AlertVisualization implements ITimerAction, IAudioAction,
|
||||
IAlertArrivedCallback, Listener, IConfigurationChangedListener,
|
||||
IRestartListener {
|
||||
public class AlertVisualization
|
||||
implements ITimerAction, IAudioAction, IAlertArrivedCallback, Listener,
|
||||
IConfigurationChangedListener, IRestartListener {
|
||||
/**
|
||||
* The display control.
|
||||
*/
|
||||
|
@ -209,7 +219,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
*
|
||||
* @param runningStandalone
|
||||
* True if the application is running stand-alone.
|
||||
* @param display
|
||||
|
@ -353,7 +363,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Create the tray menu items.
|
||||
*
|
||||
*
|
||||
* @param menu
|
||||
*/
|
||||
protected void createTrayMenuItems(Menu menu) {
|
||||
|
@ -454,13 +464,13 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
MessageDialog dialog = new MessageDialog(
|
||||
alertMessageDlg.getShell(),
|
||||
"Confirm Restart!",
|
||||
alertMessageDlg.getShell(), "Confirm Restart!",
|
||||
null,
|
||||
"Any unsaved changes will be lost. Restart anyway?",
|
||||
MessageDialog.QUESTION, new String[] {
|
||||
IDialogConstants.YES_LABEL,
|
||||
IDialogConstants.NO_LABEL }, 0);
|
||||
MessageDialog.QUESTION,
|
||||
new String[] { IDialogConstants.YES_LABEL,
|
||||
IDialogConstants.NO_LABEL },
|
||||
0);
|
||||
|
||||
dialog.create();
|
||||
|
||||
|
@ -534,30 +544,32 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Load the alert visualization image.
|
||||
*
|
||||
*
|
||||
* @return Image path.
|
||||
*/
|
||||
private String loadAlertVizImage() {
|
||||
IPathManager pm = PathManagerFactory.getPathManager();
|
||||
String path = pm.getFile(
|
||||
pm.getContext(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.BASE),
|
||||
"alertVizIcons" + File.separatorChar + "alertViz.png")
|
||||
String path = pm
|
||||
.getFile(
|
||||
pm.getContext(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.BASE),
|
||||
"alertVizIcons" + File.separatorChar + "alertViz.png")
|
||||
.getAbsolutePath();
|
||||
return path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the alert visualization error image.
|
||||
*
|
||||
*
|
||||
* @return Image path.
|
||||
*/
|
||||
private String loadAlertVizErrorImage() {
|
||||
IPathManager pm = PathManagerFactory.getPathManager();
|
||||
String path = pm.getFile(
|
||||
pm.getContext(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.BASE),
|
||||
"alertVizIcons" + File.separatorChar + "alertError.png")
|
||||
String path = pm
|
||||
.getFile(
|
||||
pm.getContext(LocalizationType.CAVE_STATIC,
|
||||
LocalizationLevel.BASE),
|
||||
"alertVizIcons" + File.separatorChar + "alertError.png")
|
||||
.getAbsolutePath();
|
||||
return path;
|
||||
}
|
||||
|
@ -576,7 +588,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Handle the alert message.
|
||||
*
|
||||
*
|
||||
* @param statMsg
|
||||
* Status message.
|
||||
* @param amd
|
||||
|
@ -592,11 +604,15 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
final TrayConfiguration gConfig) {
|
||||
|
||||
if ((alertMessageDlg == null) || alertMessageDlg.isDisposed()) {
|
||||
Container.logInternal(Priority.ERROR, statMsg.getMessage() + "\n"
|
||||
+ statMsg.getDetails());
|
||||
Container.logInternal(Priority.ERROR,
|
||||
statMsg.getMessage() + "\n" + statMsg.getDetails());
|
||||
return;
|
||||
}
|
||||
|
||||
if (amd.isPythonEnabled() && amd.getPythonScript() != null) {
|
||||
AlertVizPython.run(statMsg, amd.clone(), gConfig);
|
||||
}
|
||||
|
||||
boolean isGdnAdminMessage = statMsg.getCategory().equals("GDN_ADMIN")
|
||||
|| statMsg.getSourceKey().equals("GDN_ADMIN");
|
||||
|
||||
|
@ -605,15 +621,16 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
if ((statMsg.getDetails() != null)
|
||||
&& (statMsg.getDetails().contains("Error")
|
||||
|| statMsg.getDetails().contains("Exception")
|
||||
|| statMsg.getDetails().contains("Throwable") || Container
|
||||
.hasMissing(statMsg))) {
|
||||
|| statMsg.getDetails().contains("Throwable")
|
||||
|| Container.hasMissing(statMsg))) {
|
||||
Source source = configData.lookupSource("GDN_ADMIN");
|
||||
RGB backgroundRBG = null;
|
||||
if ((source == null) || (source.getConfigurationItem() == null)) {
|
||||
if ((source == null)
|
||||
|| (source.getConfigurationItem() == null)) {
|
||||
backgroundRBG = ColorUtil.getColorValue("COLOR_YELLOW");
|
||||
} else {
|
||||
AlertMetadata am = source.getConfigurationItem().lookup(
|
||||
Priority.SIGNIFICANT);
|
||||
AlertMetadata am = source.getConfigurationItem()
|
||||
.lookup(Priority.SIGNIFICANT);
|
||||
backgroundRBG = am.getBackground();
|
||||
}
|
||||
alertMessageDlg.setErrorLogBtnBackground(backgroundRBG);
|
||||
|
@ -658,9 +675,8 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
audioFile = getFullAudioFilePath(audioFile);
|
||||
} else {
|
||||
audioFile = statMsg.getAudioFile();
|
||||
if ((audioFile != null)
|
||||
&& ((audioFile.trim().length() == 0) || audioFile
|
||||
.equals("NONE"))) {
|
||||
if ((audioFile != null) && ((audioFile.trim().length() == 0)
|
||||
|| audioFile.equals("NONE"))) {
|
||||
audioFile = null;
|
||||
}
|
||||
audioFile = getFullAudioFilePath(audioFile);
|
||||
|
@ -673,7 +689,8 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
// Pop-up message
|
||||
if (amd.isPopup() == true) {
|
||||
if (alertPopupDlg == null) {
|
||||
alertPopupDlg = new AlertPopupMessageDlg(display, statMsg,
|
||||
alertPopupDlg = new AlertPopupMessageDlg(
|
||||
alertMessageDlg.getShell(), statMsg,
|
||||
gConfig.isExpandedPopup(), this, amd.getBackground());
|
||||
showPopup = true;
|
||||
ackAll = true;
|
||||
|
@ -691,7 +708,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Get full path name to a existing audio file.
|
||||
*
|
||||
*
|
||||
* @param fname
|
||||
* - name of audio file
|
||||
* @return filename when file found otherwise null
|
||||
|
@ -707,7 +724,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
File file = new File(filename);
|
||||
if (!file.exists()) {
|
||||
file = PathManagerFactory.getPathManager().getStaticFile(
|
||||
"alertVizAudio/" + file.getName());
|
||||
LocalizationUtil.join("alertVizAudio", file.getName()));
|
||||
if ((file == null) || !file.exists()) {
|
||||
filename = null;
|
||||
} else {
|
||||
|
@ -732,7 +749,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Displays a pop-up balloon message
|
||||
*
|
||||
*
|
||||
* @param statMsg
|
||||
* Message to display.
|
||||
* @param cat
|
||||
|
@ -744,8 +761,8 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
toolTip.dispose();
|
||||
}
|
||||
|
||||
toolTip = new ToolTip(alertMessageDlg.getShell(), SWT.BALLOON
|
||||
| SWT.ICON_WARNING);
|
||||
toolTip = new ToolTip(alertMessageDlg.getShell(),
|
||||
SWT.BALLOON | SWT.ICON_WARNING);
|
||||
toolTip.setText(cat.getCategoryName());
|
||||
toolTip.setMessage(statMsg.getMessage());
|
||||
|
||||
|
@ -763,8 +780,8 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
} else {
|
||||
int messages = alertPopupDlg.getNumberOfMessages();
|
||||
if (messages == 1) {
|
||||
this.trayItem.setToolTipText("There is " + messages
|
||||
+ " message to be acknowledged");
|
||||
this.trayItem.setToolTipText(
|
||||
"There is " + messages + " message to be acknowledged");
|
||||
} else {
|
||||
this.trayItem.setToolTipText("There are " + messages
|
||||
+ " messages to be acknowledged");
|
||||
|
@ -811,8 +828,8 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
showPopup = false;
|
||||
break;
|
||||
default:
|
||||
Container.logInternal(Priority.WARN, "Unexpected event type: "
|
||||
+ event.type);
|
||||
Container.logInternal(Priority.WARN,
|
||||
"Unexpected event type: " + event.type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -850,7 +867,7 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
/**
|
||||
* Get the number of text control composites.
|
||||
*
|
||||
*
|
||||
* @return The number of text control composites.
|
||||
*/
|
||||
private int getNumberOfTextControls() {
|
||||
|
@ -880,4 +897,4 @@ public class AlertVisualization implements ITimerAction, IAudioAction,
|
|||
|
||||
return retVal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -47,25 +47,26 @@ import org.eclipse.swt.widgets.TabFolder;
|
|||
|
||||
/**
|
||||
* Tab control dialog that displays the messages for the different mode layouts.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 2008 mschenke Initial creation
|
||||
* Apr 02, 2009 lvenable TTR fixes.
|
||||
* Dec 01, 2010 5632 cjeanbap Added sort based on category.
|
||||
* Mar 02, 2011 5632 cjeanbap Added sort based on category.
|
||||
* Feb 06, 2013 14501 Xiaochuan Using getCategoriesFromConfig() to
|
||||
* set categoryList[] in clearOptionCbo.
|
||||
* 29 Jan 2016 5289 tgurney Add missing close button in trim
|
||||
* Apr 01, 2016 5517 randerso Fix GUI sizing issues
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- ---------- -------------------------------------------
|
||||
* 2008 mschenke Initial creation
|
||||
* Apr 02, 2009 lvenable TTR fixes.
|
||||
* Dec 01, 2010 5632 cjeanbap Added sort based on category.
|
||||
* Mar 02, 2011 5632 cjeanbap Added sort based on category.
|
||||
* Feb 06, 2013 14501 Xiaochuan Using getCategoriesFromConfig() to set
|
||||
* categoryList[] in clearOptionCbo.
|
||||
* Jan 29, 2016 5289 tgurney Add missing close button in trim
|
||||
* Apr 01, 2016 5517 randerso Fix GUI sizing issues
|
||||
* Feb 27, 2017 6029 randerso Ensure dialog appears on correct monitor
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author mschenke
|
||||
* @version 1.0
|
||||
*/
|
||||
public class TabControlDlg extends Dialog {
|
||||
|
||||
|
@ -122,7 +123,7 @@ public class TabControlDlg extends Dialog {
|
|||
|
||||
/**
|
||||
* Get the instance of the TabControl dialog
|
||||
*
|
||||
*
|
||||
* @param parent
|
||||
* Parent shell.
|
||||
* @return Instance of this class.
|
||||
|
@ -138,14 +139,14 @@ public class TabControlDlg extends Dialog {
|
|||
|
||||
/**
|
||||
* Basic constructor
|
||||
*
|
||||
*
|
||||
* @param parent
|
||||
* The parent shell
|
||||
*/
|
||||
private TabControlDlg(Shell parent) {
|
||||
super(parent, SWT.TITLE);
|
||||
|
||||
logs = new ArrayList<TextMsgLog>();
|
||||
logs = new ArrayList<>();
|
||||
|
||||
initShell();
|
||||
}
|
||||
|
@ -217,13 +218,13 @@ public class TabControlDlg extends Dialog {
|
|||
shell.setText("Log list for: " + log.getFullText());
|
||||
populateClearOptionsCombo(log);
|
||||
detailsText.setText(log.getLogText());
|
||||
clearOptionCbo.select(logs.get(index)
|
||||
.getClearOptionCboSelectedIndex());
|
||||
clearOptionCbo.select(
|
||||
logs.get(index).getClearOptionCboSelectedIndex());
|
||||
}
|
||||
});
|
||||
|
||||
detailsText = new StyledText(topComp, SWT.V_SCROLL | SWT.H_SCROLL
|
||||
| SWT.BORDER);
|
||||
detailsText = new StyledText(topComp,
|
||||
SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
|
||||
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||
gd.widthHint = 400;
|
||||
gd.heightHint = 285;
|
||||
|
@ -335,7 +336,7 @@ public class TabControlDlg extends Dialog {
|
|||
/**
|
||||
* Populates the clear options combo box with values of current LogDlg tab
|
||||
* being displayed, called when tabitem has changed
|
||||
*
|
||||
*
|
||||
* @param log
|
||||
* TextMsgLog that is in current tab.
|
||||
*/
|
||||
|
@ -384,11 +385,10 @@ public class TabControlDlg extends Dialog {
|
|||
*/
|
||||
private void setInitialDialogLocation() {
|
||||
Shell parent = getParent().getShell();
|
||||
Display display = parent.getDisplay();
|
||||
|
||||
// get any monitors height
|
||||
Monitor any = (display.getMonitors())[0];
|
||||
Rectangle monSize = any.getBounds();
|
||||
Monitor m = parent.getMonitor();
|
||||
Rectangle monSize = m.getClientArea();
|
||||
int monY = monSize.height;
|
||||
|
||||
Point p = parent.getLocation();
|
||||
|
@ -405,7 +405,7 @@ public class TabControlDlg extends Dialog {
|
|||
|
||||
/**
|
||||
* Check is the dialog is open or not.
|
||||
*
|
||||
*
|
||||
* @return True if shell is not null, not disposed and visible, false
|
||||
* otherwise.
|
||||
*/
|
||||
|
@ -420,7 +420,7 @@ public class TabControlDlg extends Dialog {
|
|||
/**
|
||||
* Return the tab folder that is contained in the shell, this is used if a
|
||||
* new TabItem is to be added to the dialog.
|
||||
*
|
||||
*
|
||||
* @return The tab folder.
|
||||
*/
|
||||
public TabFolder getTabFolder() {
|
||||
|
@ -429,9 +429,9 @@ public class TabControlDlg extends Dialog {
|
|||
|
||||
/**
|
||||
* Notify the TabControlDlg when a new tab has been added.
|
||||
*
|
||||
*
|
||||
* TODO: Replace with event handler?
|
||||
*
|
||||
*
|
||||
* @param log
|
||||
* The log that is the new tab.
|
||||
*/
|
||||
|
@ -444,7 +444,7 @@ public class TabControlDlg extends Dialog {
|
|||
|
||||
/**
|
||||
* Removes tab associated with Log
|
||||
*
|
||||
*
|
||||
* @param log
|
||||
*/
|
||||
public void removeTab(TextMsgLog log) {
|
||||
|
@ -467,21 +467,22 @@ public class TabControlDlg extends Dialog {
|
|||
* Gets the tab index to use for this textMsgLog's index. Say the log is Q3,
|
||||
* and Q1 and Q4 are up already, this function would return 1 because it is
|
||||
* the index the tab should be inserted at
|
||||
*
|
||||
*
|
||||
* @param textMsgIdx
|
||||
* index of textMsgIdx (1 for Q1, 2 for Q2, etc...)
|
||||
* @return index for tab
|
||||
*/
|
||||
public int getTabIndex(int textMsgIdx) {
|
||||
int i;
|
||||
for (i = 0; i < logs.size() && logs.get(i).getIndex() < textMsgIdx; ++i) {
|
||||
for (i = 0; i < logs.size()
|
||||
&& logs.get(i).getIndex() < textMsgIdx; ++i) {
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the details text box
|
||||
*
|
||||
*
|
||||
* @param details
|
||||
* details to display
|
||||
*/
|
||||
|
@ -495,7 +496,7 @@ public class TabControlDlg extends Dialog {
|
|||
|
||||
/**
|
||||
* Check if dialog is disposed
|
||||
*
|
||||
*
|
||||
* @return true if disposed, false if not
|
||||
*/
|
||||
public boolean isDisposed() {
|
||||
|
|
|
@ -19,10 +19,14 @@ Require-Bundle: org.eclipse.ui,
|
|||
org.slf4j;bundle-version="1.7.21",
|
||||
org.apache.derby;bundle-version="10.10.1",
|
||||
com.raytheon.uf.common.logback;bundle-version="1.15.0",
|
||||
com.raytheon.uf.common.time;bundle-version="1.15.0"
|
||||
com.raytheon.uf.common.time;bundle-version="1.15.0",
|
||||
org.jep,
|
||||
com.raytheon.uf.common.python;bundle-version="1.12.1174",
|
||||
com.raytheon.uf.common.python.concurrent
|
||||
Export-Package: com.raytheon.uf.viz.alertviz,
|
||||
com.raytheon.uf.viz.alertviz.config
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
com.raytheon.uf.viz.alertviz.config,
|
||||
com.raytheon.uf.viz.alertviz.python
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Import-Package: com.raytheon.uf.common.time
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Eclipse-RegisterBuddy: ch.qos.logback, com.raytheon.uf.common.logback
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -18,9 +18,6 @@
|
|||
# further licensing information.
|
||||
##
|
||||
|
||||
from com.raytheon.uf.viz.alertviz import AlertVizPythonCallback
|
||||
from com.raytheon.uf.viz.alertviz import AlertVizClient
|
||||
|
||||
import jep
|
||||
|
||||
#
|
||||
|
@ -32,18 +29,15 @@ import jep
|
|||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 07/09/09 chammack Initial Creation.
|
||||
# 03/24/17 DR 16895 D. Friedman Removed callbacks
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
##
|
||||
# This is a base file that is not intended to be overridden.
|
||||
##
|
||||
|
||||
class AlertVizProcessor:
|
||||
|
||||
|
||||
def process(self, statusMessage, alertMetadata, globalConfiguration):
|
||||
raise Exception("Method should be implemented: %s" % _functionId(obj, 1))
|
||||
|
||||
def createRunnableCallback(self, callback):
|
||||
proxy = jep.jproxy(callback, ['java.lang.Runnable'])
|
||||
return AlertVizPythonCallback(proxy)
|
||||
|
||||
def sendCallbackMessage(self, str):
|
||||
AlertVizClient.sendCallbackMessage(str)
|
||||
|
|
@ -31,8 +31,12 @@ import AlertVizProcessor
|
|||
#
|
||||
#
|
||||
#
|
||||
|
||||
##
|
||||
# This is a base file that is not intended to be overridden.
|
||||
##
|
||||
|
||||
class DebugProcessor(AlertVizProcessor.AlertVizProcessor):
|
||||
|
||||
|
||||
def process(self, statusMessage, alertMetadata, globalConfiguration):
|
||||
print "%s %s %s" % (statusMessage.getPriority(), statusMessage.getCategory(), statusMessage.getMessage())
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
##
|
||||
# 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
|
||||
# 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
|
||||
#
|
||||
# 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.
|
||||
##
|
||||
|
@ -31,7 +31,11 @@
|
|||
#
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
##
|
||||
# This is a base file that is not intended to be overridden.
|
||||
##
|
||||
|
||||
def process(statusMessage, alertMetadata, globalConfiguration):
|
||||
script = str(alertMetadata.getPythonScript())[:-3]
|
||||
module = __import__(script)
|
||||
|
|
|
@ -32,8 +32,13 @@ import subprocess
|
|||
#
|
||||
#
|
||||
#
|
||||
|
||||
##
|
||||
# This is a base file that is not intended to be overridden.
|
||||
##
|
||||
|
||||
class PyShellScriptWrapper(AlertVizProcessor.AlertVizProcessor):
|
||||
|
||||
|
||||
def process(self, statusMessage, alertMetadata, globalConfiguration):
|
||||
scriptName = str(statusMessage.getDetails())
|
||||
#print "script name: " + scriptName
|
||||
|
|
|
@ -31,10 +31,14 @@ import AlertVizProcessor
|
|||
#
|
||||
#
|
||||
#
|
||||
|
||||
##
|
||||
# This is a base file that is not intended to be overridden.
|
||||
##
|
||||
|
||||
class WriteToFileTest(AlertVizProcessor.AlertVizProcessor):
|
||||
|
||||
|
||||
def process(self, statusMessage, alertMetadata, globalConfiguration):
|
||||
testFile = open('/tmp/AlertVizPyTest.txt', 'a')
|
||||
testFile.write("AV Python Test -- %s %s %s \n" % (statusMessage.getPriority(), statusMessage.getCategory(), statusMessage.getMessage()))
|
||||
testFile.close()
|
||||
|
|
@ -22,9 +22,9 @@ package com.raytheon.uf.viz.alertviz;
|
|||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CopyOnWriteArraySet;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
|
@ -68,11 +68,11 @@ import com.raytheon.uf.viz.alertviz.config.Source;
|
|||
* Nov 12, 2015 4834 njensen Changed LocalizationOpFailedException to LocalizationException
|
||||
* Jan 11, 2016 5242 kbisanz Replaced calls to deprecated ILocalizationFile methods
|
||||
* Feb 12, 2016 4834 bsteffen Fix multiple saves of the customConfiguration.
|
||||
* Jun 14, 2017 6297 bsteffen Make listeners thread safe.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author mschenke
|
||||
* @version 1.0
|
||||
*/
|
||||
public class ConfigurationManager {
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
|
@ -134,8 +134,8 @@ public class ConfigurationManager {
|
|||
/** Initialize manager and load preferences */
|
||||
private ConfigurationManager() {
|
||||
// load all configurations
|
||||
configurationMap = new HashMap<ConfigContext, Configuration>();
|
||||
listeners = new HashSet<IConfigurationChangedListener>();
|
||||
configurationMap = new HashMap<>();
|
||||
listeners = new CopyOnWriteArraySet<>();
|
||||
current = null;
|
||||
try {
|
||||
context = JAXBContext.newInstance(Configuration.class,
|
||||
|
@ -144,13 +144,11 @@ public class ConfigurationManager {
|
|||
marshaller = context.createMarshaller();
|
||||
unmarshaller = context.createUnmarshaller();
|
||||
} catch (Exception e) {
|
||||
Container
|
||||
.logInternal(
|
||||
Priority.ERROR,
|
||||
"ConfigurationManager: exception creating "
|
||||
+ "marshalling/unmarshalling objects for Configuration, "
|
||||
+ "ForcedConfiguration, Category, and Source.",
|
||||
e);
|
||||
Container.logInternal(Priority.ERROR,
|
||||
"ConfigurationManager: exception creating "
|
||||
+ "marshalling/unmarshalling objects for Configuration, "
|
||||
+ "ForcedConfiguration, Category, and Source.",
|
||||
e);
|
||||
context = null;
|
||||
marshaller = null;
|
||||
unmarshaller = null;
|
||||
|
@ -183,7 +181,7 @@ public class ConfigurationManager {
|
|||
}
|
||||
} catch (NullPointerException ex) {
|
||||
statusHandler.handle(Priority.CRITICAL,
|
||||
"Unable to load configuration context " + context);
|
||||
"Unable to load configuration context " + context, ex);
|
||||
}
|
||||
return workstationContext;
|
||||
}
|
||||
|
@ -221,13 +219,13 @@ public class ConfigurationManager {
|
|||
* that result. preserve locking from the base
|
||||
* configuration.
|
||||
*/
|
||||
Configuration baseCustom = baseConfiguration.mergeUnder(
|
||||
custom, true);
|
||||
Configuration baseCustom = baseConfiguration
|
||||
.mergeUnder(custom, true);
|
||||
currentConfig = baseCustom.overlayWith(currentConfig, true);
|
||||
}
|
||||
}
|
||||
configurationMap.put(current, currentConfig);
|
||||
} else if (DEFAULT_BASE_CONFIG.equals(current) == false) {
|
||||
} else if (!DEFAULT_BASE_CONFIG.equals(current)) {
|
||||
current = DEFAULT_BASE_CONFIG;
|
||||
return getCurrentConfiguration();
|
||||
}
|
||||
|
@ -331,13 +329,15 @@ public class ConfigurationManager {
|
|||
* baseConfiguration.
|
||||
*/
|
||||
if ((fileContext.getLocalizationLevel() != LocalizationLevel.BASE)
|
||||
|| ((fileContext.getLocalizationLevel() == LocalizationLevel.BASE) && DEFAULT_BASE_CONFIG
|
||||
.getLocalizationFileName().equals(file.getPath()))) {
|
||||
|| ((fileContext
|
||||
.getLocalizationLevel() == LocalizationLevel.BASE)
|
||||
&& DEFAULT_BASE_CONFIG.getLocalizationFileName()
|
||||
.equals(file.getPath()))) {
|
||||
String fileName = file.getPath();
|
||||
LocalizationContext locContext = file.getContext();
|
||||
String name = fileName.substring(
|
||||
fileName.lastIndexOf(IPathManager.SEPARATOR) + 1, // win32
|
||||
fileName.lastIndexOf("."));
|
||||
fileName.lastIndexOf('.'));
|
||||
ConfigContext context = new ConfigContext(name, locContext);
|
||||
configurationMap.put(context, null);
|
||||
}
|
||||
|
@ -400,11 +400,11 @@ public class ConfigurationManager {
|
|||
EXTENSIONS, false, true);
|
||||
for (ILocalizationFile f : files) {
|
||||
// Merge other base files with the default.
|
||||
if (!DEFAULT_BASE_CONFIG.getLocalizationFileName().equals(
|
||||
f.getPath())) {
|
||||
if (!DEFAULT_BASE_CONFIG.getLocalizationFileName()
|
||||
.equals(f.getPath())) {
|
||||
Configuration fileConfig = retrieveConfiguration(f);
|
||||
Configuration mergeConfig = configuration.mergeUnder(
|
||||
fileConfig, true);
|
||||
Configuration mergeConfig = configuration.mergeUnder(fileConfig,
|
||||
true);
|
||||
configuration = mergeConfig.overlayWith(configuration, true);
|
||||
}
|
||||
}
|
||||
|
@ -430,8 +430,8 @@ public class ConfigurationManager {
|
|||
ILocalizationFile file = getLocalizationFile(cContext);
|
||||
try {
|
||||
// do not attempt to save to base
|
||||
if (file != null
|
||||
&& file.getContext().getLocalizationLevel() != LocalizationLevel.BASE) {
|
||||
if (file != null && file.getContext()
|
||||
.getLocalizationLevel() != LocalizationLevel.BASE) {
|
||||
serializeToFile(config, file);
|
||||
}
|
||||
} catch (SerializationException e) {
|
||||
|
@ -481,7 +481,8 @@ public class ConfigurationManager {
|
|||
} catch (LocalizationException | IOException | JAXBException e) {
|
||||
Container.logInternal(Priority.ERROR,
|
||||
"ConfigurationManager: Exception unmarshalling from file: "
|
||||
+ file.getPath(), e);
|
||||
+ file.getPath(),
|
||||
e);
|
||||
throw new SerializationException(e);
|
||||
}
|
||||
}
|
||||
|
@ -533,8 +534,8 @@ public class ConfigurationManager {
|
|||
.getCategories();
|
||||
Category cat = (Category) obj;
|
||||
if (isRemove) {
|
||||
customConfiguration.getCategories().remove(
|
||||
cat.getCategoryName());
|
||||
customConfiguration.getCategories()
|
||||
.remove(cat.getCategoryName());
|
||||
} else {
|
||||
categories.put(cat.getCategoryName(), cat);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,6 @@ Export-Package: com.raytheon.uf.viz.app.launcher.bundle,
|
|||
com.raytheon.uf.viz.app.launcher.handlers,
|
||||
com.raytheon.uf.viz.app.launcher.runner,
|
||||
com.raytheon.uf.viz.app.launcher.utilities
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Import-Package: com.raytheon.uf.common.ohd,
|
||||
com.raytheon.uf.common.util
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
|
|
@ -17,7 +17,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.8.2",
|
|||
com.raytheon.uf.viz.core;bundle-version="1.12.1174",
|
||||
com.raytheon.uf.common.units;bundle-version="1.0.0",
|
||||
com.raytheon.uf.common.auth;bundle-version="1.12.1174"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: org.apache.commons.compress.archivers,
|
||||
org.apache.commons.compress.archivers.tar
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -27,6 +27,7 @@ import org.eclipse.ui.PlatformUI;
|
|||
|
||||
import com.raytheon.uf.common.archive.request.ArchiveCaseCreationAuthRequest;
|
||||
import com.raytheon.uf.common.auth.user.IUser;
|
||||
import com.raytheon.uf.common.auth.util.PermissionUtils;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
|
@ -37,20 +38,20 @@ import com.raytheon.uf.viz.core.requests.ThriftClient;
|
|||
|
||||
/**
|
||||
* Action to bring up the Archive Case Creation dialog..
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* May 16, 2013 1966 rferrel Initial creation
|
||||
* Oct 02, 2013 2326 rferrel Check for administration authorization.
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------------------------
|
||||
* May 16, 2013 1966 rferrel Initial creation
|
||||
* Oct 02, 2013 2326 rferrel Check for administration authorization.
|
||||
* Jul 19, 2017 6288 randerso Changes for new roles/permissions framework
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author rferrel
|
||||
* @version 1.0
|
||||
*/
|
||||
public class ArchiveCaseCreationDialogAction extends AbstractHandler {
|
||||
private final IUFStatusHandler statusHandler = UFStatus
|
||||
|
@ -63,15 +64,9 @@ public class ArchiveCaseCreationDialogAction extends AbstractHandler {
|
|||
private String caseDir;
|
||||
|
||||
/** Case Administration permission */
|
||||
private final String PERMISSION = "archive.casecreation";
|
||||
private static final String PERMISSION = PermissionUtils
|
||||
.buildPermissionString("archive", "casecreation");
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
|
||||
* .ExecutionEvent)
|
||||
*/
|
||||
@Override
|
||||
public Object execute(ExecutionEvent event) throws ExecutionException {
|
||||
if (isAuthorized()) {
|
||||
|
@ -90,7 +85,7 @@ public class ArchiveCaseCreationDialogAction extends AbstractHandler {
|
|||
|
||||
/**
|
||||
* Is user authorized?
|
||||
*
|
||||
*
|
||||
* @return true if authorized
|
||||
*/
|
||||
private boolean isAuthorized() {
|
||||
|
@ -111,11 +106,10 @@ public class ArchiveCaseCreationDialogAction extends AbstractHandler {
|
|||
return true;
|
||||
}
|
||||
} else {
|
||||
statusHandler
|
||||
.handle(Priority.ERROR,
|
||||
String.format(
|
||||
"Cannot validate user expected response type ArchiveCaseCreationAuthRequest, received %s",
|
||||
o.getClass().getName()));
|
||||
statusHandler.handle(Priority.ERROR,
|
||||
String.format(
|
||||
"Cannot validate user expected response type ArchiveCaseCreationAuthRequest, received %s",
|
||||
o.getClass().getName()));
|
||||
}
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -27,6 +27,7 @@ import org.eclipse.ui.PlatformUI;
|
|||
|
||||
import com.raytheon.uf.common.archive.request.ArchiveAdminAuthRequest;
|
||||
import com.raytheon.uf.common.auth.user.IUser;
|
||||
import com.raytheon.uf.common.auth.util.PermissionUtils;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
|
@ -37,37 +38,31 @@ import com.raytheon.uf.viz.core.requests.ThriftClient;
|
|||
|
||||
/**
|
||||
* Action to display the Archive Retention dialog.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* May 16, 2013 1966 rferrel Initial creation
|
||||
* Oct 02, 2013 2326 rferrel Check for administration authorization.
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------------------------
|
||||
* May 16, 2013 1966 rferrel Initial creation
|
||||
* Oct 02, 2013 2326 rferrel Check for administration authorization.
|
||||
* Jul 19, 2017 6288 randerso Changes for new roles/permissions framework
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author rferrel
|
||||
* @version 1.0
|
||||
*/
|
||||
public class ArchiveRetentionDialogAction extends AbstractHandler {
|
||||
private final IUFStatusHandler statusHandler = UFStatus
|
||||
private static final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ArchiveRetentionDialogAction.class);
|
||||
|
||||
private ArchiveRetentionDlg dialog;
|
||||
|
||||
/** Retention Administration permission */
|
||||
private final String PERMISSION = "archive.retention";
|
||||
private static final String PERMISSION = PermissionUtils
|
||||
.buildPermissionString("archive", "retention");
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
|
||||
* .ExecutionEvent)
|
||||
*/
|
||||
@Override
|
||||
public Object execute(ExecutionEvent event) throws ExecutionException {
|
||||
if (isAuthorized()) {
|
||||
|
@ -86,7 +81,7 @@ public class ArchiveRetentionDialogAction extends AbstractHandler {
|
|||
|
||||
/**
|
||||
* Is user authorized?
|
||||
*
|
||||
*
|
||||
* @return true if authorized
|
||||
*/
|
||||
private boolean isAuthorized() {
|
||||
|
|
|
@ -566,7 +566,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg {
|
|||
if (saveAsDlg == null || saveAsDlg.isDisposed()) {
|
||||
saveAsDlg = new CaseLoadSaveDeleteDlg(shell,
|
||||
CaseLoadSaveDeleteDlg.Type.SaveAs);
|
||||
saveAsDlg.setCloseCallback(new ICloseCallback() {
|
||||
saveAsDlg.addCloseCallback(new ICloseCallback() {
|
||||
|
||||
@Override
|
||||
public void dialogClosed(Object returnValue) {
|
||||
|
@ -596,7 +596,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg {
|
|||
if (loadDlg == null || loadDlg.isDisposed()) {
|
||||
loadDlg = new CaseLoadSaveDeleteDlg(shell,
|
||||
CaseLoadSaveDeleteDlg.Type.Load);
|
||||
loadDlg.setCloseCallback(new ICloseCallback() {
|
||||
loadDlg.addCloseCallback(new ICloseCallback() {
|
||||
|
||||
@Override
|
||||
public void dialogClosed(Object returnValue) {
|
||||
|
@ -621,7 +621,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg {
|
|||
if (deleteDlg == null || deleteDlg.isDisposed()) {
|
||||
deleteDlg = new CaseLoadSaveDeleteDlg(shell,
|
||||
CaseLoadSaveDeleteDlg.Type.Delete);
|
||||
deleteDlg.setCloseCallback(new ICloseCallback() {
|
||||
deleteDlg.addCloseCallback(new ICloseCallback() {
|
||||
|
||||
@Override
|
||||
public void dialogClosed(Object returnValue) {
|
||||
|
@ -681,7 +681,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg {
|
|||
});
|
||||
}
|
||||
});
|
||||
generateCaseDlg.setCloseCallback(new ICloseCallback() {
|
||||
generateCaseDlg.addCloseCallback(new ICloseCallback() {
|
||||
|
||||
@Override
|
||||
public void dialogClosed(Object returnValue) {
|
||||
|
@ -724,7 +724,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg {
|
|||
setCursorBusy(true);
|
||||
if (caseNameDlg == null || caseNameDlg.isDisposed()) {
|
||||
caseNameDlg = new CaseNameDialog(shell, targetDir);
|
||||
caseNameDlg.setCloseCallback(new ICloseCallback() {
|
||||
caseNameDlg.addCloseCallback(new ICloseCallback() {
|
||||
|
||||
@Override
|
||||
public void dialogClosed(Object returnValue) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
|
|
@ -2,15 +2,14 @@ Manifest-Version: 1.0
|
|||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Automatic Transition
|
||||
Bundle-SymbolicName: com.raytheon.uf.viz.auto.transition;singleton:=true
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Version: 1.16.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Require-Bundle: com.raytheon.viz.ui;bundle-version="1.15.1",
|
||||
com.raytheon.uf.viz.core;bundle-version="1.15.1",
|
||||
com.raytheon.uf.common.time;bundle-version="1.14.0",
|
||||
com.raytheon.uf.common.geospatial;bundle-version="1.14.2",
|
||||
org.eclipse.core.runtime;bundle-version="3.8.0",
|
||||
com.raytheon.uf.viz.core.rsc;bundle-version="1.14.1",
|
||||
com.raytheon.uf.viz.core.rsc;bundle-version="1.16.1",
|
||||
javax.measure;bundle-version="1.0.0",
|
||||
com.raytheon.uf.common.colormap;bundle-version="1.15.0"
|
||||
Import-Package: com.raytheon.viz.core.rsc
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
point="com.raytheon.viz.ui.contextualMenu">
|
||||
<contextualMenu
|
||||
actionClass="com.raytheon.uf.viz.auto.transition.AutoTransitionAction"
|
||||
capabilityClass="com.raytheon.viz.core.rsc.BlendedResource"
|
||||
capabilityClass="com.raytheon.uf.viz.core.rsc.groups.BlendedResource"
|
||||
name="com.raytheon.uf.viz.auto.transition.AutoTransitionAction"
|
||||
sortID="50">
|
||||
</contextualMenu>
|
||||
|
|
|
@ -27,10 +27,10 @@ import com.raytheon.uf.viz.core.exception.VizException;
|
|||
import com.raytheon.uf.viz.core.procedures.ProcedureXmlManager;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceGroup;
|
||||
import com.raytheon.uf.viz.core.rsc.groups.BlendedResource;
|
||||
import com.raytheon.uf.viz.core.rsc.groups.BlendedResourceData;
|
||||
import com.raytheon.uf.viz.core.rsc.interrogation.Interrogatable;
|
||||
import com.raytheon.uf.viz.core.time.TimeMatchingJob;
|
||||
import com.raytheon.viz.core.rsc.BlendedResource;
|
||||
import com.raytheon.viz.core.rsc.BlendedResourceData;
|
||||
import com.raytheon.viz.ui.cmenu.AbstractRightClickAction;
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,7 +30,7 @@ import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
|||
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.BlendableCapability;
|
||||
import com.raytheon.viz.core.rsc.BlendedResource;
|
||||
import com.raytheon.uf.viz.core.rsc.groups.BlendedResource;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -28,7 +28,7 @@ import com.raytheon.uf.viz.core.drawables.ResourcePair;
|
|||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceList;
|
||||
import com.raytheon.viz.core.rsc.BlendedResourceData;
|
||||
import com.raytheon.uf.viz.core.rsc.groups.BlendedResourceData;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -34,7 +34,7 @@ Import-Package: com.raytheon.uf.common.dataplugin,
|
|||
org.geotools.referencing.datum,
|
||||
org.opengis.referencing.crs,
|
||||
org.osgi.framework
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.raytheon.uf.viz.aviation.advisory,
|
||||
com.raytheon.uf.viz.aviation.advisory.adapter,
|
||||
|
|
|
@ -18,31 +18,38 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" name="${name}" colorString="${color}">
|
||||
<dataAdapter xsi:type="airmetDataAdapter" hazardType="${hazardType}"/>
|
||||
<binOffset posOffset="20400" negOffset="1200"
|
||||
virtualOffset="-7200" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="airmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="${name}"
|
||||
colorString="${color}">
|
||||
<dataAdapter xsi:type="airmetDataAdapter"
|
||||
hazardType="${hazardType}" />
|
||||
<binOffset posOffset="20400"
|
||||
negOffset="1200" virtualOffset="-7200" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="airmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -18,105 +18,116 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF8800" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" name="C-SIGMET OUTLOOK" enableNonstandardInspect="true">
|
||||
<dataAdapter xsi:type="convSigmetOutlookDataAdapter"/>
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" name="1hr C-SIGMET Fcst">
|
||||
<dataAdapter xsi:type="convSigmetCastDataAdapter" forecast="true"/>
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF0000" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" name="C-SIGMET Nowcast">
|
||||
<dataAdapter xsi:type="convSigmetCastDataAdapter"/>
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFFFF" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" name="C-SIGMET Text">
|
||||
<dataAdapter xsi:type="convSigmetTextDataAdapter"/>
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0"
|
||||
contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF8800" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="C-SIGMET OUTLOOK"
|
||||
enableNonstandardInspect="true">
|
||||
<dataAdapter xsi:type="convSigmetOutlookDataAdapter" />
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0"
|
||||
contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true"
|
||||
name="1hr C-SIGMET Fcst">
|
||||
<dataAdapter xsi:type="convSigmetCastDataAdapter"
|
||||
forecast="true" />
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0"
|
||||
contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF0000" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="C-SIGMET Nowcast">
|
||||
<dataAdapter xsi:type="convSigmetCastDataAdapter" />
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0"
|
||||
contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFFFF" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="C-SIGMET Text">
|
||||
<dataAdapter xsi:type="convSigmetTextDataAdapter" />
|
||||
<binOffset posOffset="3000" negOffset="600"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="convsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -18,31 +18,37 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true" name="${name}" colorString="${color}">
|
||||
<dataAdapter xsi:type="nonConvSigmetDataAdapter" hazardType="${hazardType}"/>
|
||||
<binOffset posOffset="2700" negOffset="900"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="nonconvsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities/>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="advisoryResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="${name}"
|
||||
colorString="${color}">
|
||||
<dataAdapter xsi:type="nonConvSigmetDataAdapter"
|
||||
hazardType="${hazardType}" />
|
||||
<binOffset posOffset="2700" negOffset="900"
|
||||
virtualOffset="0" />
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="nonconvsigmet"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -18,7 +18,22 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuContributionFile>
|
||||
<include installTo="menu:Aviation?after=AviationProductsStart"
|
||||
fileName="menus/upperair/baseAviationProducts.xml" />
|
||||
<include installTo="menu:Aviation?after=ConvectionProductsStart"
|
||||
fileName="menus/upperair/baseAviationConvectionProducts.xml" />
|
||||
<include installTo="menu:Aviation?before=IcingProductsEnd"
|
||||
fileName="menus/upperair/baseAviationIcingProducts.xml" />
|
||||
<include installTo="menu:Aviation?before=TurbulenceProductsEnd"
|
||||
fileName="menus/upperair/baseAviationTurbulenceProducts.xml" />
|
||||
<include installTo="menu:Aviation?before=VisibilityProductsEnd"
|
||||
fileName="menus/upperair/baseAviationVisibilityProducts.xml" />
|
||||
<include installTo="menu:Aviation?before=TropicalCycloneEnd"
|
||||
fileName="menus/upperair/baseAviationTropicalCyclone.xml" />
|
||||
<include installTo="menu:Aviation?after=VolcanicAshStart"
|
||||
fileName="menus/upperair/baseAviationVolcanicAsh.xml" />
|
||||
</menuContributionFile>
|
|
@ -0,0 +1,29 @@
|
|||
<?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.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/ConvSigmet.xml"
|
||||
menuText="Convective SIGMET" id="ConvSigmet"/>
|
||||
</menuTemplate>
|
|
@ -0,0 +1,39 @@
|
|||
<?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.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET" id="SIGMETICING">
|
||||
<substitute key="hazardType" value="ICING" />
|
||||
<substitute key="color" value="#FFFFFF" />
|
||||
<substitute key="name" value="Icing SIGMET" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="AIRMET" id="AIRMETICING">
|
||||
<substitute key="hazardType" value="ICING" />
|
||||
<substitute key="color" value="#0000FF" />
|
||||
<substitute key="name" value="Icing AIRMET" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -0,0 +1,33 @@
|
|||
<?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.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET" id="SIGMETTTOPCYCLONE">
|
||||
<substitute key="hazardType" value="TROPICAL CYCLONE" />
|
||||
<substitute key="color" value="#00FFFF" />
|
||||
<substitute key="name" value="Tropical Cyclone SIGMET" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -0,0 +1,39 @@
|
|||
<?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.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET" id="SIGMETTURB">
|
||||
<substitute key="hazardType" value="TURBULENCE" />
|
||||
<substitute key="color" value="#FF4444" />
|
||||
<substitute key="name" value="Turbulence SIGMET" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="AIRMET" id="AIRMETTURB">
|
||||
<substitute key="hazardType" value="TURBULENCE" />
|
||||
<substitute key="color" value="#00FF00" />
|
||||
<substitute key="name" value="Turbulence AIRMET" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -0,0 +1,41 @@
|
|||
<?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.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="subMenu" menuText="AIRMET">
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="IFR" id="AIRMETIFR">
|
||||
<substitute key="hazardType" value="INSTRUMENT FLIGHT RULES" />
|
||||
<substitute key="color" value="#00FFFF" />
|
||||
<substitute key="name" value="IFR AIRMET" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="Mtn Obscn" id="AIRMETMTNOBSC">
|
||||
<substitute key="hazardType" value="MOUNTAIN OBSCURATION" />
|
||||
<substitute key="color" value="#FF0088" />
|
||||
<substitute key="name" value="Mtn Obscn AIRMET" />
|
||||
</contribute>
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -0,0 +1,33 @@
|
|||
<?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.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET" id="SIGMETVOLCANICASH">
|
||||
<substitute key="hazardType" value="VOLCANIC ASH CLOUD" />
|
||||
<substitute key="color" value="#00FF00" />
|
||||
<substitute key="name" value="Volcanic Ash SIGMET" />
|
||||
</contribute>
|
||||
</menuTemplate>
|
|
@ -4,7 +4,7 @@ Bundle-Name: Bufrsigwx Displays
|
|||
Bundle-SymbolicName: com.raytheon.uf.viz.bufrsigwx;singleton:=true
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.raytheon.uf.viz.bufrsigwx.common,
|
||||
com.raytheon.uf.viz.bufrsigwx.rsc,
|
||||
|
|
|
@ -18,122 +18,147 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF0000" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="CLOUD" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="CAT" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#00FF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="JETS" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFFFF" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="TROP" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF8800" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="SWBOTH" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="VTS" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF0000" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="CLOUD"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="CAT"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#00FF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="JETS"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFFFF" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="${wxLayer}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="TROP"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF8800" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="sigWxResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="bufrsigwx"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxLayer">
|
||||
<constraint constraintValue="SWBOTH"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="wxType">
|
||||
<constraint constraintValue="VTS"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -18,6 +18,11 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuContributionFile>
|
||||
<include installTo="menu:Aviation?before=SignificantWeatherEnd"
|
||||
fileName="menus/upperair/baseAviationBufrSigWx.xml" />
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/BufrSigWx.xml"
|
||||
menuText="Medium Level" id="SigWxMedium">
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -28,6 +28,7 @@ import org.eclipse.swt.graphics.RGB;
|
|||
import com.raytheon.uf.common.dataplugin.bufrsigwx.JetStreamData;
|
||||
import com.raytheon.uf.common.dataplugin.bufrsigwx.common.SigWxLayer;
|
||||
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
||||
import com.raytheon.uf.common.pointdata.PointDataContainer;
|
||||
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||
import com.raytheon.uf.viz.bufrsigwx.common.SigWxCommon;
|
||||
import com.raytheon.uf.viz.core.DrawableString;
|
||||
|
@ -44,28 +45,28 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
/**
|
||||
* Provides a resource that will display jet stream data for a given reference
|
||||
* time.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 09/24/2009 jsanchez Initial creation.
|
||||
* Sep 28, 2009 3099 bsteffen Updated to conform with common SigWxResource
|
||||
* Jul 29, 2014 3465 mapeters Updated deprecated drawString() and
|
||||
* Jul 29, 2014 3465 mapeters Updated deprecated drawString() and
|
||||
* drawStrings() calls.
|
||||
* Aug 04, 2014 3489 mapeters Updated deprecated getStringBounds() calls.
|
||||
*
|
||||
*
|
||||
* Sep 12, 2016 5886 tgurney Reuse wireframe shapes when possible
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author jsanchez
|
||||
* @version 1.0
|
||||
*/
|
||||
public class SigWxJetStreamResource extends SigWxResource {
|
||||
|
||||
private static UnitConverter meterToHft = SI.METER.getConverterTo(SI
|
||||
.HECTO(NonSI.FOOT));
|
||||
private static UnitConverter meterToHft = SI.METER
|
||||
.getConverterTo(SI.HECTO(NonSI.FOOT));
|
||||
|
||||
private static UnitConverter mpsToKnots = SI.METERS_PER_SECOND
|
||||
.getConverterTo(NonSI.KNOT);
|
||||
|
@ -88,6 +89,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
|
||||
private static final String TOP_HGT_STR = "isotach80Abv";
|
||||
|
||||
private IWireframeShape shape;
|
||||
|
||||
protected SigWxJetStreamResource(SigWxResourceData resourceData,
|
||||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
|
@ -110,25 +113,31 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps, PointDataView pdv) throws VizException {
|
||||
PaintProperties paintProps, PointDataContainer pdc)
|
||||
throws VizException {
|
||||
if (isUpdateNeeded()) {
|
||||
disposeShape();
|
||||
shape = target.createWireframeShape(false, descriptor);
|
||||
}
|
||||
RGB color = getCapability(ColorableCapability.class).getColor();
|
||||
|
||||
IWireframeShape shape = target.createWireframeShape(false, descriptor);
|
||||
shape.addLineSegment(makeLine(pdv));
|
||||
for (int i = 0; i < pdc.getCurrentSz(); i++) {
|
||||
PointDataView pdv = pdc.readRandom(i);
|
||||
if (isUpdateNeeded()) {
|
||||
shape.addLineSegment(makeLine(pdv));
|
||||
}
|
||||
JetStreamData[] jetData = makeJetStreamData(pdv);
|
||||
JetStreamData lastData = jetData[0];
|
||||
for (JetStreamData data : jetData) {
|
||||
paintJetStreamText(target, paintProps, color, data, lastData);
|
||||
lastData = data;
|
||||
}
|
||||
// If there is only one jetData you can't make any error head
|
||||
if (jetData.length > 1) {
|
||||
paintArrowHead(target, color, jetData[jetData.length - 2],
|
||||
jetData[jetData.length - 1]);
|
||||
}
|
||||
}
|
||||
target.drawWireframeShape(shape, color, 1.5f);
|
||||
shape.dispose();
|
||||
|
||||
JetStreamData[] jetData = makeJetStreamData(pdv);
|
||||
JetStreamData lastData = jetData[0];
|
||||
for (JetStreamData data : jetData) {
|
||||
paintJetStreamText(target, paintProps, color, data, lastData);
|
||||
lastData = data;
|
||||
}
|
||||
// If there is only one jetData you can't make any error head
|
||||
if (jetData.length > 1) {
|
||||
paintArrowHead(target, color, jetData[jetData.length - 2],
|
||||
jetData[jetData.length - 1]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -139,8 +148,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
String result = "";
|
||||
double[] point = null;
|
||||
try {
|
||||
point = descriptor.worldToPixel(new double[] { coord.asLatLon().x,
|
||||
coord.asLatLon().y, });
|
||||
point = descriptor.worldToPixel(
|
||||
new double[] { coord.asLatLon().x, coord.asLatLon().y, });
|
||||
} catch (Exception e) {
|
||||
return "";
|
||||
}
|
||||
|
@ -171,9 +180,9 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
|| data[j].getJetSpeed() == SigWxCommon.MISSING) {
|
||||
continue;
|
||||
}
|
||||
double dist = distance(point, SigWxCommon.lonLatToWorldPixel(
|
||||
descriptor, data[j].getLongitude(), data[j]
|
||||
.getLatitude()));
|
||||
double dist = distance(point,
|
||||
SigWxCommon.lonLatToWorldPixel(descriptor,
|
||||
data[j].getLongitude(), data[j].getLatitude()));
|
||||
if (dist < bestDistance) {
|
||||
bestIndex = j;
|
||||
bestDistance = dist;
|
||||
|
@ -188,14 +197,12 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
|
||||
if (speed != SigWxCommon.MISSING) {
|
||||
result += SigWxCommon.format(mpsToKnots.convert(speed),
|
||||
format)
|
||||
+ "kts ";
|
||||
format) + "kts ";
|
||||
}
|
||||
|
||||
if (fltLvl != SigWxCommon.MISSING) {
|
||||
result += "FL"
|
||||
+ SigWxCommon.format(meterToHft.convert(fltLvl),
|
||||
format);
|
||||
result += "FL" + SigWxCommon
|
||||
.format(meterToHft.convert(fltLvl), format);
|
||||
}
|
||||
|
||||
if (baseHgt != SigWxCommon.MISSING
|
||||
|
@ -203,9 +210,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
result += " DEPTH:"
|
||||
+ SigWxCommon.format(meterToHft.convert(baseHgt),
|
||||
format)
|
||||
+ "/"
|
||||
+ SigWxCommon.format(meterToHft.convert(topHgt),
|
||||
format);
|
||||
+ "/" + SigWxCommon
|
||||
.format(meterToHft.convert(topHgt), format);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -227,17 +233,10 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
JetStreamData[] data = new JetStreamData[numOfPoints];
|
||||
|
||||
for (int i = 0; i < numOfPoints; i++) {
|
||||
data[i] = new JetStreamData(hdf5Lons[i].floatValue(), hdf5Lats[i]
|
||||
.floatValue(), hdf5Speeds[i].floatValue(), hdf5Altitudes[i]
|
||||
.floatValue(), hdf5BotHgt[i].floatValue(), hdf5TopHgt[i]
|
||||
.floatValue()); // Should
|
||||
// the
|
||||
// hdf5BotHgt
|
||||
// and
|
||||
// hdf5TopHgt
|
||||
// be
|
||||
// used?
|
||||
|
||||
data[i] = new JetStreamData(hdf5Lons[i].floatValue(),
|
||||
hdf5Lats[i].floatValue(), hdf5Speeds[i].floatValue(),
|
||||
hdf5Altitudes[i].floatValue(), hdf5BotHgt[i].floatValue(),
|
||||
hdf5TopHgt[i].floatValue());
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
@ -250,8 +249,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
Coordinate[] js = new Coordinate[numOfPoints];
|
||||
|
||||
for (int i = 0; i < numOfPoints; i++) {
|
||||
js[i] = new Coordinate(hdf5Lons[i].floatValue(), hdf5Lats[i]
|
||||
.floatValue());
|
||||
js[i] = new Coordinate(hdf5Lons[i].floatValue(),
|
||||
hdf5Lats[i].floatValue());
|
||||
}
|
||||
|
||||
return js;
|
||||
|
@ -260,7 +259,7 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
/**
|
||||
* Calculates the direction of jet stream and passes the drawing to the
|
||||
* paintArrowhead method
|
||||
*
|
||||
*
|
||||
* @param target
|
||||
* @param color
|
||||
* the color of the arrow
|
||||
|
@ -272,18 +271,18 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
*/
|
||||
private void paintArrowHead(IGraphicsTarget target, RGB color,
|
||||
JetStreamData data1, JetStreamData data2) throws VizException {
|
||||
double[] locPixA = SigWxCommon.lonLatToWorldPixel(descriptor, data1
|
||||
.getLongitude(), data1.getLatitude());
|
||||
double[] locPixB = SigWxCommon.lonLatToWorldPixel(descriptor, data2
|
||||
.getLongitude(), data2.getLatitude());
|
||||
double dir = Math.toDegrees(Math.atan2(locPixA[1] - locPixB[1],
|
||||
locPixA[0] - locPixB[0]));
|
||||
double[] locPixA = SigWxCommon.lonLatToWorldPixel(descriptor,
|
||||
data1.getLongitude(), data1.getLatitude());
|
||||
double[] locPixB = SigWxCommon.lonLatToWorldPixel(descriptor,
|
||||
data2.getLongitude(), data2.getLatitude());
|
||||
double dir = Math.toDegrees(
|
||||
Math.atan2(locPixA[1] - locPixB[1], locPixA[0] - locPixB[0]));
|
||||
SigWxCommon.paintArrowHead(target, locPixB, 100.0, dir + 180, color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws the Jet Stream Data (flight level, jet speed, etc.) on CAVE
|
||||
*
|
||||
*
|
||||
* @param target
|
||||
* @param color
|
||||
* the color of the strings
|
||||
|
@ -299,8 +298,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
if (lat == SigWxCommon.MISSING || lon == SigWxCommon.MISSING) {
|
||||
return;
|
||||
}
|
||||
double[] locationPixel = SigWxCommon.lonLatToWorldPixel(descriptor,
|
||||
lon, lat);
|
||||
double[] locationPixel = SigWxCommon.lonLatToWorldPixel(descriptor, lon,
|
||||
lat);
|
||||
HorizontalAlignment halignLevel = HorizontalAlignment.RIGHT;
|
||||
VerticalAlignment valignLevel = VerticalAlignment.BOTTOM;
|
||||
HorizontalAlignment halignSpeed = HorizontalAlignment.LEFT;
|
||||
|
@ -333,7 +332,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
if (flightLevel != SigWxCommon.MISSING) {
|
||||
flightLevel = meterToHft.convert(flightLevel);
|
||||
String flightLevelStr = SigWxCommon.format(flightLevel, format);
|
||||
if (baseHgt != SigWxCommon.MISSING && topHgt != SigWxCommon.MISSING) {
|
||||
if (baseHgt != SigWxCommon.MISSING
|
||||
&& topHgt != SigWxCommon.MISSING) {
|
||||
baseHgt = meterToHft.convert(baseHgt);
|
||||
topHgt = meterToHft.convert(topHgt);
|
||||
String depthStr = SigWxCommon.format(baseHgt, format) + "/"
|
||||
|
@ -351,8 +351,8 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
tmpX -= width / 2;
|
||||
halignLevel = HorizontalAlignment.CENTER;
|
||||
}
|
||||
DrawableString string = new DrawableString(new String[] {
|
||||
flightLevelStr, depthStr }, color);
|
||||
DrawableString string = new DrawableString(
|
||||
new String[] { flightLevelStr, depthStr }, color);
|
||||
string.font = font;
|
||||
string.setCoordinates(tmpX, locationPixel[1]);
|
||||
string.horizontalAlignment = halignLevel;
|
||||
|
@ -382,7 +382,7 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
|
||||
/**
|
||||
* Calculates the dot product of a and b
|
||||
*
|
||||
*
|
||||
* @param a
|
||||
* {x1, y1}
|
||||
* @param b
|
||||
|
@ -390,12 +390,12 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
* @return the dot product of a and b
|
||||
*/
|
||||
private double dotProduct(double[] a, double[] b) {
|
||||
return (a[0] * b[0]) + (a[1] * b[1]);
|
||||
return a[0] * b[0] + a[1] * b[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the distance between a and b
|
||||
*
|
||||
*
|
||||
* @param a
|
||||
* {x1, y1}
|
||||
* @param b
|
||||
|
@ -411,13 +411,13 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
/*
|
||||
* Calculates the distance of the cursor away from the line between a and b.
|
||||
* Note: This code was ported from SigWxDepict.C
|
||||
*
|
||||
*
|
||||
* @param a the previous line coordinates
|
||||
*
|
||||
*
|
||||
* @param b the current line coordinates
|
||||
*
|
||||
*
|
||||
* @param p the coordinates of the cursor
|
||||
*
|
||||
*
|
||||
* @return the distance of the cursor away from the line
|
||||
*/
|
||||
private double distanceFromLine(double[] a, double[] b, double[] p) {
|
||||
|
@ -428,20 +428,20 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
double[] fb = new double[] { dx, dy };
|
||||
double[] fp = new double[] { p[0] - a[0], p[1] - a[1] };
|
||||
double d = distance(fa, fb);
|
||||
double m = (dotProduct(fb, fp) / (d * d));
|
||||
double m = dotProduct(fb, fp) / (d * d);
|
||||
double[] projP = new double[] { fb[0] * m, fb[1] * m };
|
||||
double dA = distance(fa, projP);
|
||||
double dB = distance(fb, projP);
|
||||
|
||||
if (dy == 0) {
|
||||
if (((p[1] < a[1] && p[1] < b[1]) || (p[1] > a[1] && p[1] > b[1]))
|
||||
if ((p[1] < a[1] && p[1] < b[1] || p[1] > a[1] && p[1] > b[1])
|
||||
&& Math.abs(p[1] - a[1]) > 4 && Math.abs(p[1] - b[1]) > 4) {
|
||||
return MAX_VALUE;
|
||||
} else {
|
||||
return Math.abs(p[1] - a[1]);
|
||||
}
|
||||
} else if (dx == 0) {
|
||||
if (((p[0] < a[0] && p[0] < b[0]) || (p[0] > a[0] && p[0] > b[0]))
|
||||
if ((p[0] < a[0] && p[0] < b[0] || p[0] > a[0] && p[0] > b[0])
|
||||
&& Math.abs(p[0] - a[0]) > 4 && Math.abs(p[0] - b[0]) > 4) {
|
||||
return MAX_VALUE;
|
||||
} else {
|
||||
|
@ -456,9 +456,23 @@ public class SigWxJetStreamResource extends SigWxResource {
|
|||
return distance(projP, fp);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getParameters() {
|
||||
return new String[] { LAT_STR, LON_STR, NUM_OF_POINTS_STR, SPD_STR,
|
||||
ALT_STR, TOP_HGT_STR, BOT_HGT_STR };
|
||||
}
|
||||
|
||||
}
|
||||
private void disposeShape() {
|
||||
if (shape != null) {
|
||||
shape.dispose();
|
||||
shape = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void disposeInternal() {
|
||||
disposeShape();
|
||||
super.disposeInternal();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -31,9 +31,10 @@ import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
|||
|
||||
import com.raytheon.uf.common.dataplugin.bufrsigwx.common.SigWxLayer;
|
||||
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
||||
import com.raytheon.uf.common.pointdata.PointDataContainer;
|
||||
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.viz.bufrsigwx.util.Declutter;
|
||||
import com.raytheon.uf.viz.bufrsigwx.util.Declutter.TextBoxData;
|
||||
import com.raytheon.uf.viz.core.IExtent;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle;
|
||||
|
@ -50,24 +51,27 @@ import com.vividsolutions.jts.geom.Point;
|
|||
import com.vividsolutions.jts.geom.Polygon;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* A base resource for polygon based sigWx data(CAT anc Clouds). This resource
|
||||
* does most of the work, but requires subclasses for some details such as
|
||||
* drawing the textBoxes and formating inspection data.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 25, 2009 3099 bsteffen Initial creation
|
||||
* Sep 28, 2009 3099 bsteffen Updated to conform with common SigWxResource
|
||||
*
|
||||
*
|
||||
* Sep 12, 2016 5886 tgurney Use isUpdateNeeded for performance
|
||||
* Sep 15, 2016 5886 tgurney Keep cached polygons when panning/zooming
|
||||
* Sep 19, 2016 5886 tgurney Use drawRect/drawLine instead of
|
||||
* wireframe shape for text boxes
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author bsteffen
|
||||
* @version 1.0
|
||||
*/
|
||||
public abstract class SigWxPolygonResource extends SigWxResource {
|
||||
|
||||
|
@ -91,27 +95,19 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
"\u007a\u007b", "\u007b\u007c", "\u007b\u007c", "\u007b\u007c",
|
||||
"\u007c\u007c\b6", "\u007c\u007c\u00b6", "\u007c\u007c\u00b6" };
|
||||
|
||||
private static UnitConverter meterToHft = SI.METER.getConverterTo(SI
|
||||
.HECTO(NonSI.FOOT));
|
||||
|
||||
protected List<PointDataView> pdvCache = new ArrayList<PointDataView>();
|
||||
|
||||
protected List<double[]> textLocCache = new ArrayList<double[]>();
|
||||
private static UnitConverter meterToHft = SI.METER
|
||||
.getConverterTo(SI.HECTO(NonSI.FOOT));
|
||||
|
||||
protected IExtent lastExtent;
|
||||
|
||||
protected DataTime lastDataTime;
|
||||
|
||||
protected IWireframeShape lastPolygons;
|
||||
|
||||
protected IWireframeShape lastTextBoxes;
|
||||
protected List<Declutter.TextBoxData> lastTextBoxes = new ArrayList<>();
|
||||
|
||||
protected Declutter declutter;
|
||||
|
||||
protected SymbolLoader symbolLoader;
|
||||
|
||||
private boolean hasUpdated = false;
|
||||
|
||||
protected SigWxPolygonResource(SigWxResourceData resourceData,
|
||||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
|
@ -128,10 +124,7 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
lastPolygons.dispose();
|
||||
lastPolygons = null;
|
||||
}
|
||||
if (lastTextBoxes != null) {
|
||||
lastTextBoxes.dispose();
|
||||
lastTextBoxes = null;
|
||||
}
|
||||
lastTextBoxes.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -144,8 +137,8 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
Polygon pixelPoly = worldToPixel(llPolygon);
|
||||
Point point;
|
||||
try {
|
||||
point = pixelPoly.getFactory().createPoint(
|
||||
coord.asPixel(descriptor.getGridGeometry()));
|
||||
point = pixelPoly.getFactory()
|
||||
.createPoint(coord.asPixel(descriptor.getGridGeometry()));
|
||||
} catch (Exception e) {
|
||||
throw new VizException("Error inspecting SigWx Data", e);
|
||||
}
|
||||
|
@ -164,60 +157,50 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps) throws VizException {
|
||||
// This is overridden so that we can synchronize the declutter, but
|
||||
// while Im at it I store some data so it does not have to be
|
||||
// recalculated on each call.
|
||||
PaintProperties paintProps, PointDataContainer pdc)
|
||||
throws VizException {
|
||||
RGB color = getCapability(ColorableCapability.class).getColor();
|
||||
IExtent curExtent = paintProps.getView().getExtent();
|
||||
DataTime curDataTime = paintProps.getDataTime();
|
||||
if (curDataTime == null || curExtent == null) {
|
||||
if (curExtent == null) {
|
||||
return;
|
||||
}
|
||||
if (!curExtent.equals(lastExtent) || !curDataTime.equals(lastDataTime)
|
||||
|| hasUpdated) {
|
||||
if (lastPolygons != null) {
|
||||
if (!curExtent.equals(lastExtent) || isUpdateNeeded()) {
|
||||
if (lastPolygons != null && isUpdateNeeded()) {
|
||||
lastPolygons.dispose();
|
||||
}
|
||||
if (lastTextBoxes != null) {
|
||||
lastTextBoxes.dispose();
|
||||
}
|
||||
pdvCache.clear();
|
||||
textLocCache.clear();
|
||||
lastTextBoxes.clear();
|
||||
lastExtent = curExtent;
|
||||
lastDataTime = curDataTime;
|
||||
declutter = new Declutter(paintProps.getClippingPane()
|
||||
.intersection(paintProps.getView().getExtent()));
|
||||
lastPolygons = target.createWireframeShape(false, descriptor);
|
||||
lastTextBoxes = target.createWireframeShape(false, descriptor);
|
||||
super.paintInternal(target, paintProps);
|
||||
hasUpdated = false;
|
||||
if (isUpdateNeeded()) {
|
||||
lastPolygons = target.createWireframeShape(false, descriptor);
|
||||
}
|
||||
for (int i = 0; i < pdc.getCurrentSz(); i++) {
|
||||
PointDataView pdv = pdc.readRandom(i);
|
||||
double[] scale = getScale(paintProps);
|
||||
Polygon polygon = getPolygon(pdv);
|
||||
if (isUpdateNeeded()) {
|
||||
lastPolygons.addLineSegment(polygon.getCoordinates());
|
||||
}
|
||||
double[] dimensions = getTextBoxDimensions(target, pdv);
|
||||
dimensions[0] = dimensions[0] * scale[0];
|
||||
dimensions[1] = dimensions[1] * scale[1];
|
||||
Declutter.TextBoxData textBox = declutter
|
||||
.infoBoxForPolygon2(worldToPixel(polygon), dimensions);
|
||||
lastTextBoxes.add(textBox);
|
||||
}
|
||||
}
|
||||
target.drawWireframeShape(lastPolygons, color, 1.5f, getLineStyle());
|
||||
target.drawWireframeShape(lastTextBoxes, color, 1.0f);
|
||||
double[] scale = getScale(paintProps);
|
||||
for (int i = 0; i < pdvCache.size(); i++) {
|
||||
drawText(target, paintProps, textLocCache.get(i), scale, color,
|
||||
pdvCache.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps, PointDataView pdv) throws VizException {
|
||||
|
||||
double[] scale = getScale(paintProps);
|
||||
|
||||
Polygon polygon = getPolygon(pdv);
|
||||
lastPolygons.addLineSegment(polygon.getCoordinates());
|
||||
double[] dimensions = getTextBoxDimensions(target, pdv);
|
||||
dimensions[0] = dimensions[0] * scale[0];
|
||||
dimensions[1] = dimensions[1] * scale[1];
|
||||
double[] textLoc = declutter.infoBoxForPolygon2(lastTextBoxes,
|
||||
worldToPixel(polygon), dimensions);
|
||||
if (textLoc.length > 1) {
|
||||
textLocCache.add(textLoc);
|
||||
pdvCache.add(pdv);
|
||||
for (int i = 0; i < lastTextBoxes.size(); i++) {
|
||||
TextBoxData textBox = lastTextBoxes.get(i);
|
||||
if (textBox != null) {
|
||||
textBox.line.basics.color = color;
|
||||
target.drawRect(textBox.box, color, 1.0f, 1.0);
|
||||
target.drawLine(textBox.line);
|
||||
drawText(target, paintProps, textBox.textLoc, scale, color,
|
||||
pdc.readRandom(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -296,8 +279,8 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
Coordinate[] llCoords = llPolygon.getCoordinates();
|
||||
Coordinate[] pixelCoords = new Coordinate[llCoords.length];
|
||||
for (int i = 0; i < llCoords.length; i++) {
|
||||
double[] pixelCoord = descriptor.worldToPixel(new double[] {
|
||||
llCoords[i].x, llCoords[i].y });
|
||||
double[] pixelCoord = descriptor.worldToPixel(
|
||||
new double[] { llCoords[i].x, llCoords[i].y });
|
||||
pixelCoords[i] = new Coordinate(pixelCoord[0], pixelCoord[1]);
|
||||
}
|
||||
GeometryFactory factory = new GeometryFactory();
|
||||
|
@ -305,13 +288,6 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
return factory.createPolygon(ring, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateRecords(DataTime dataTime) throws VizException {
|
||||
// Intercept this call so we can recalculate everything
|
||||
hasUpdated = true;
|
||||
super.updateRecords(dataTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getParameters() {
|
||||
// TODO Auto-generated method stub
|
||||
|
@ -321,6 +297,7 @@ public abstract class SigWxPolygonResource extends SigWxResource {
|
|||
@Override
|
||||
public void project(CoordinateReferenceSystem crs) throws VizException {
|
||||
disposeShapes();
|
||||
super.project(crs);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -26,6 +26,7 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
import org.eclipse.swt.graphics.Rectangle;
|
||||
import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.dataplugin.bufrsigwx.SigWxData;
|
||||
|
@ -41,63 +42,67 @@ import com.raytheon.uf.viz.core.drawables.PaintProperties;
|
|||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.map.MapDescriptor;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged;
|
||||
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged.ChangeType;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.viz.pointdata.PointDataRequest;
|
||||
|
||||
/**
|
||||
* Generic resource for SigWx data
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 28, 2009 3099 bsteffen Initial creation
|
||||
* Nov 05, 2015 5070 randerso Adjust font sizes for dpi scaling
|
||||
* Feb 04, 2015 5309 tgurney Remove dependency on dataURI
|
||||
*
|
||||
* Feb 04, 2016 5309 tgurney Remove dependency on dataURI
|
||||
* Sep 12, 2016 5886 tgurney Update paintInternal signature,
|
||||
* add needsUpdate flag,
|
||||
* fix point data container iteration.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author bsteffen
|
||||
* @version 1.0
|
||||
*/
|
||||
public abstract class SigWxResource extends
|
||||
AbstractVizResource<SigWxResourceData, MapDescriptor> {
|
||||
public abstract class SigWxResource
|
||||
extends AbstractVizResource<SigWxResourceData, MapDescriptor> {
|
||||
|
||||
protected static final String NO_DATA = "No Data Available";
|
||||
|
||||
private Map<DataTime, Collection<SigWxData>> recordsToParse = new HashMap<DataTime, Collection<SigWxData>>();
|
||||
private Map<DataTime, Collection<SigWxData>> recordsToParse = new HashMap<>();
|
||||
|
||||
private Map<DataTime, PointDataContainer> recordsToDisplay = new HashMap<DataTime, PointDataContainer>();
|
||||
private Map<DataTime, PointDataContainer> recordsToDisplay = new HashMap<>();
|
||||
|
||||
protected DataTime displayedDataTime;
|
||||
|
||||
protected IFont font;
|
||||
|
||||
protected DataTime prevDataTime = null;
|
||||
|
||||
private boolean needsUpdate = true;
|
||||
|
||||
protected SigWxResource(SigWxResourceData resourceData,
|
||||
LoadProperties loadProperties) {
|
||||
super(resourceData, loadProperties);
|
||||
resourceData.addChangeListener(new IResourceDataChanged() {
|
||||
@Override
|
||||
public void resourceChanged(ChangeType type, Object object) {
|
||||
if (type == ChangeType.DATA_UPDATE) {
|
||||
PluginDataObject[] pdo = (PluginDataObject[]) object;
|
||||
for (PluginDataObject p : pdo) {
|
||||
if (p instanceof SigWxData) {
|
||||
addRecord((SigWxData) p);
|
||||
}
|
||||
resourceData.addChangeListener((ChangeType type, Object object) -> {
|
||||
if (type == ChangeType.DATA_UPDATE) {
|
||||
PluginDataObject[] pdo = (PluginDataObject[]) object;
|
||||
for (PluginDataObject p : pdo) {
|
||||
if (p instanceof SigWxData) {
|
||||
addRecord((SigWxData) p);
|
||||
}
|
||||
}
|
||||
issueRefresh();
|
||||
}
|
||||
setUpdateNeeded(true);
|
||||
issueRefresh();
|
||||
});
|
||||
this.dataTimes = new ArrayList<DataTime>();
|
||||
this.dataTimes = new ArrayList<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new record to this resource
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*/
|
||||
protected void addRecord(SigWxData obj) {
|
||||
|
@ -106,24 +111,20 @@ public abstract class SigWxResource extends
|
|||
if (toParse == null) {
|
||||
dataTimes.add(dataTime);
|
||||
Collections.sort(this.dataTimes);
|
||||
toParse = new ArrayList<SigWxData>();
|
||||
toParse = new ArrayList<>();
|
||||
recordsToParse.put(dataTime, toParse);
|
||||
}
|
||||
toParse.add(obj);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see
|
||||
* com.raytheon.uf.viz.core.rsc.AbstractVizResource#paintInternal(com.raytheon
|
||||
* .uf.viz.core.IGraphicsTarget,
|
||||
* com.raytheon.uf.viz.core.drawables.PaintProperties)
|
||||
*/
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps) throws VizException {
|
||||
DataTime curDataTime = paintProps.getDataTime();
|
||||
if (prevDataTime == null || !prevDataTime.equals(curDataTime)) {
|
||||
setUpdateNeeded(true);
|
||||
}
|
||||
prevDataTime = curDataTime;
|
||||
if (curDataTime == null) {
|
||||
this.displayedDataTime = null;
|
||||
return;
|
||||
|
@ -136,10 +137,9 @@ public abstract class SigWxResource extends
|
|||
this.displayedDataTime = curDataTime;
|
||||
PointDataContainer pdc = recordsToDisplay.get(curDataTime);
|
||||
if (pdc != null) {
|
||||
for (int uriCounter = 0; uriCounter < pdc.getAllocatedSz(); uriCounter++) {
|
||||
paintInternal(target, paintProps, pdc.readRandom(uriCounter));
|
||||
}
|
||||
paintInternal(target, paintProps, pdc);
|
||||
}
|
||||
setUpdateNeeded(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -162,16 +162,17 @@ public abstract class SigWxResource extends
|
|||
/**
|
||||
* Process records from Records to parse and add the data to the pdc for
|
||||
* this dataTime
|
||||
*
|
||||
*
|
||||
* @param dataTime
|
||||
* @throws VizException
|
||||
*/
|
||||
protected void updateRecords(DataTime dataTime) throws VizException {
|
||||
// Request the point data
|
||||
PointDataContainer pdc = PointDataRequest.requestPointDataAllLevels(
|
||||
dataTime, resourceData.getMetadataMap().get("pluginName")
|
||||
.getConstraintValue(), getParameters(), null,
|
||||
resourceData.getMetadataMap());
|
||||
dataTime,
|
||||
resourceData.getMetadataMap().get("pluginName")
|
||||
.getConstraintValue(),
|
||||
getParameters(), null, resourceData.getMetadataMap());
|
||||
if (recordsToDisplay.containsKey(dataTime)) {
|
||||
recordsToDisplay.get(dataTime).combine(pdc);
|
||||
} else {
|
||||
|
@ -182,26 +183,27 @@ public abstract class SigWxResource extends
|
|||
|
||||
/**
|
||||
* Get the Point Data Parameters to request for this resource
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
protected abstract String[] getParameters();
|
||||
|
||||
/**
|
||||
* Paint a single set of point data to this resource
|
||||
*
|
||||
*
|
||||
* @param target
|
||||
* @param paintProps
|
||||
* @param pdv
|
||||
* @param pdc
|
||||
* @throws VizException
|
||||
*/
|
||||
protected abstract void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps, PointDataView pdv) throws VizException;
|
||||
PaintProperties paintProps, PointDataContainer pdc)
|
||||
throws VizException;
|
||||
|
||||
/**
|
||||
* Determine the appropriate scale to use on both axis for constant sized
|
||||
* objects
|
||||
*
|
||||
*
|
||||
* @param paintProps
|
||||
* @return
|
||||
*/
|
||||
|
@ -219,7 +221,8 @@ public abstract class SigWxResource extends
|
|||
StringBuilder result = new StringBuilder();
|
||||
PointDataContainer pdc = recordsToDisplay.get(this.displayedDataTime);
|
||||
if (pdc != null) {
|
||||
for (int uriCounter = 0; uriCounter < pdc.getAllocatedSz(); uriCounter++) {
|
||||
for (int uriCounter = 0; uriCounter < pdc
|
||||
.getCurrentSz(); uriCounter++) {
|
||||
String line = inspect(coord, pdc.readRandom(uriCounter));
|
||||
if (line != null && !line.isEmpty()) {
|
||||
if (result.length() != 0) {
|
||||
|
@ -234,7 +237,7 @@ public abstract class SigWxResource extends
|
|||
|
||||
/**
|
||||
* Determine if this resource has any info at the specified point
|
||||
*
|
||||
*
|
||||
* @param coord
|
||||
* @param pdv
|
||||
* @return
|
||||
|
@ -251,4 +254,17 @@ public abstract class SigWxResource extends
|
|||
recordsToParse.remove(dataTime);
|
||||
}
|
||||
|
||||
public boolean isUpdateNeeded() {
|
||||
return needsUpdate;
|
||||
}
|
||||
|
||||
public void setUpdateNeeded(boolean needsUpdate) {
|
||||
this.needsUpdate = needsUpdate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void project(CoordinateReferenceSystem crs) throws VizException {
|
||||
setUpdateNeeded(true);
|
||||
issueRefresh();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,26 +1,24 @@
|
|||
/**
|
||||
* 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.bufrsigwx.rsc;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
import javax.measure.converter.UnitConverter;
|
||||
import javax.measure.unit.NonSI;
|
||||
import javax.measure.unit.SI;
|
||||
|
@ -29,6 +27,7 @@ import org.eclipse.swt.graphics.RGB;
|
|||
|
||||
import com.raytheon.uf.common.dataplugin.bufrsigwx.TropHeightData;
|
||||
import com.raytheon.uf.common.dataplugin.bufrsigwx.common.SigWxLayer;
|
||||
import com.raytheon.uf.common.pointdata.PointDataContainer;
|
||||
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||
import com.raytheon.uf.viz.bufrsigwx.common.SigWxCommon;
|
||||
import com.raytheon.uf.viz.core.DrawableString;
|
||||
|
@ -43,8 +42,8 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
|
|||
/**
|
||||
* Provides a resource that will display troppopause height/locations data for a
|
||||
* given reference time.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
|
@ -52,16 +51,16 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
|
|||
* 09/25/2009 jsanchez Initial creation.
|
||||
* Sep 28, 2009 3099 bsteffen Updated to conform with common SigWxResource
|
||||
* Jul 29, 2014 #3465 mapeters Updated deprecated drawStrings() calls.
|
||||
*
|
||||
* Sep 12, 2016 5886 tgurney Update paintInternal() signature
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author jsanchez
|
||||
* @version 1.0
|
||||
*/
|
||||
public class SigWxTropHeightResource extends SigWxResource {
|
||||
|
||||
private static UnitConverter meterToHft = SI.METER.getConverterTo(SI
|
||||
.HECTO(NonSI.FOOT));
|
||||
private static UnitConverter meterToHft = SI.METER
|
||||
.getConverterTo(SI.HECTO(NonSI.FOOT));
|
||||
|
||||
private static final String format = "%3.0f";
|
||||
|
||||
|
@ -101,42 +100,33 @@ public class SigWxTropHeightResource extends SigWxResource {
|
|||
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps, PointDataView pdv) throws VizException {
|
||||
RGB color = getCapability(ColorableCapability.class).getColor();
|
||||
Number[] hdf5Lats = pdv.getNumberAllLevels(LAT_STR);
|
||||
Number[] hdf5Lons = pdv.getNumberAllLevels(LON_STR);
|
||||
Number[] hdf5Hgts = pdv.getNumberAllLevels(HGT_STR);
|
||||
int numOfPoints = pdv.getInt(NUM_OF_POINTS_STR);
|
||||
int tropType = pdv.getInt(TYPE_STR);
|
||||
TropHeightData data;
|
||||
for (int i = 0; i < numOfPoints; i++) {
|
||||
if (hdf5Hgts[i].floatValue() != SigWxCommon.MISSING) {
|
||||
data = new TropHeightData(hdf5Lons[i].floatValue(), hdf5Lats[i]
|
||||
.floatValue(), hdf5Hgts[i].floatValue(), tropType);
|
||||
paintTropHeights(target, color, data);
|
||||
PaintProperties paintProps, PointDataContainer pdc)
|
||||
throws VizException {
|
||||
|
||||
for (int i = 0; i < pdc.getCurrentSz(); i++) {
|
||||
PointDataView pdv = pdc.readRandom(i);
|
||||
RGB color = getCapability(ColorableCapability.class).getColor();
|
||||
Number[] hdf5Lats = pdv.getNumberAllLevels(LAT_STR);
|
||||
Number[] hdf5Lons = pdv.getNumberAllLevels(LON_STR);
|
||||
Number[] hdf5Hgts = pdv.getNumberAllLevels(HGT_STR);
|
||||
int numOfPoints = pdv.getInt(NUM_OF_POINTS_STR);
|
||||
int tropType = pdv.getInt(TYPE_STR);
|
||||
TropHeightData data;
|
||||
for (int j = 0; j < numOfPoints; j++) {
|
||||
if (hdf5Hgts[j].floatValue() != SigWxCommon.MISSING) {
|
||||
data = new TropHeightData(hdf5Lons[j].floatValue(),
|
||||
hdf5Lats[j].floatValue(), hdf5Hgts[j].floatValue(),
|
||||
tropType);
|
||||
paintTropHeights(target, color, data);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TropHeightComparator implements Comparator<TropHeightData> {
|
||||
|
||||
public int compare(TropHeightData o1, TropHeightData o2) {
|
||||
if (o1 == null && o2 == null) {
|
||||
return 0;
|
||||
} else if (o2 == null) {
|
||||
return 1;
|
||||
} else if (o1 == null) {
|
||||
return -1;
|
||||
}
|
||||
return o1.getHeight().compareTo(o2.getHeight());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws teh trop heights on CAVE
|
||||
*
|
||||
* Draws the trop heights on CAVE
|
||||
*
|
||||
* @param target
|
||||
* @param color
|
||||
* @param kind
|
||||
|
@ -150,8 +140,8 @@ public class SigWxTropHeightResource extends SigWxResource {
|
|||
if (lat == SigWxCommon.MISSING || lon == SigWxCommon.MISSING) {
|
||||
return;
|
||||
}
|
||||
double[] locationPixel = SigWxCommon.lonLatToWorldPixel(descriptor,
|
||||
lon, lat);
|
||||
double[] locationPixel = SigWxCommon.lonLatToWorldPixel(descriptor, lon,
|
||||
lat);
|
||||
double height = data.getHeight();
|
||||
|
||||
height = meterToHft.convert(height);
|
||||
|
@ -172,6 +162,7 @@ public class SigWxTropHeightResource extends SigWxResource {
|
|||
target.drawStrings(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getParameters() {
|
||||
return new String[] { LAT_STR, LON_STR, NUM_OF_POINTS_STR, HGT_STR,
|
||||
TYPE_STR };
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -21,6 +21,7 @@ package com.raytheon.uf.viz.bufrsigwx.rsc;
|
|||
|
||||
import org.eclipse.swt.graphics.RGB;
|
||||
|
||||
import com.raytheon.uf.common.pointdata.PointDataContainer;
|
||||
import com.raytheon.uf.common.pointdata.PointDataView;
|
||||
import com.raytheon.uf.viz.core.DrawableString;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
|
@ -35,22 +36,22 @@ import com.raytheon.uf.viz.core.rsc.capabilities.ColorableCapability;
|
|||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* Resource for SigWx VTS Data.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 28, 2009 3099 bsteffen Initial creation
|
||||
* Sep 28, 2009 3099 bsteffen Updated to conform with common SigWxResource
|
||||
* Jul 29, 2014 3465 mapeters Updated deprecated drawString() calls.
|
||||
*
|
||||
* Sep 12, 2016 5886 tgurney Update paintInternal() signature
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author bsteffen
|
||||
* @version 1.0
|
||||
*/
|
||||
public class SigWxVtsResource extends SigWxResource {
|
||||
|
||||
|
@ -86,42 +87,46 @@ public class SigWxVtsResource extends SigWxResource {
|
|||
|
||||
@Override
|
||||
protected void paintInternal(IGraphicsTarget target,
|
||||
PaintProperties paintProps, PointDataView pdv) throws VizException {
|
||||
PaintProperties paintProps, PointDataContainer pdc)
|
||||
throws VizException {
|
||||
|
||||
RGB color = getCapability(ColorableCapability.class).getColor();
|
||||
for (int i = 0; i < pdc.getCurrentSz(); i++) {
|
||||
PointDataView pdv = pdc.readRandom(i);
|
||||
RGB color = getCapability(ColorableCapability.class).getColor();
|
||||
|
||||
String featureName = pdv.getString(P_FEATURE_NAME);
|
||||
String text = "";
|
||||
Number lat = pdv.getNumber(P_LATITUDE);
|
||||
Number lon = pdv.getNumber(P_LONGITUDE);
|
||||
int metFeature = pdv.getInt(P_MET_FEATURE);
|
||||
int attribSig = pdv.getInt(P_ATTRIB_SIG);
|
||||
double[] loc = descriptor.worldToPixel(new double[] {
|
||||
lon.doubleValue(), lat.doubleValue() });
|
||||
double scale[] = getScale(paintProps);
|
||||
IImage image = null;
|
||||
if (metFeature == 17) {
|
||||
image = symbolLoader.getImage(target, color, VOLCANO_SYMBOL);
|
||||
} else if (attribSig == 1) {
|
||||
image = symbolLoader.getImage(target, color, STORM_SYMBOL);
|
||||
String featureName = pdv.getString(P_FEATURE_NAME);
|
||||
String text = "";
|
||||
Number lat = pdv.getNumber(P_LATITUDE);
|
||||
Number lon = pdv.getNumber(P_LONGITUDE);
|
||||
int metFeature = pdv.getInt(P_MET_FEATURE);
|
||||
int attribSig = pdv.getInt(P_ATTRIB_SIG);
|
||||
double[] loc = descriptor.worldToPixel(
|
||||
new double[] { lon.doubleValue(), lat.doubleValue() });
|
||||
double scale[] = getScale(paintProps);
|
||||
IImage image = null;
|
||||
if (metFeature == 17) {
|
||||
image = symbolLoader.getImage(target, color, VOLCANO_SYMBOL);
|
||||
} else if (attribSig == 1) {
|
||||
image = symbolLoader.getImage(target, color, STORM_SYMBOL);
|
||||
}
|
||||
if (image != null) {
|
||||
Coordinate ul = new Coordinate(loc[0], loc[1] - 6 * scale[1]);
|
||||
Coordinate ur = new Coordinate(loc[0] + 12 * scale[0], ul.y);
|
||||
Coordinate lr = new Coordinate(ur.x, loc[1] + 6 * scale[1]);
|
||||
Coordinate ll = new Coordinate(loc[0], lr.y);
|
||||
PixelCoverage extent = new PixelCoverage(ul, ur, lr, ll);
|
||||
target.drawRaster(image, extent, paintProps);
|
||||
loc[0] += 12 * scale[0];
|
||||
text = " " + featureName;
|
||||
} else {
|
||||
text = "??? " + featureName;
|
||||
}
|
||||
DrawableString string = new DrawableString(text, color);
|
||||
string.font = font;
|
||||
string.setCoordinates(loc[0], loc[1]);
|
||||
string.verticalAlignment = VerticalAlignment.MIDDLE;
|
||||
target.drawStrings(string);
|
||||
}
|
||||
if (image != null) {
|
||||
Coordinate ul = new Coordinate(loc[0], loc[1] - 6 * scale[1]);
|
||||
Coordinate ur = new Coordinate(loc[0] + 12 * scale[0], ul.y);
|
||||
Coordinate lr = new Coordinate(ur.x, loc[1] + 6 * scale[1]);
|
||||
Coordinate ll = new Coordinate(loc[0], lr.y);
|
||||
PixelCoverage extent = new PixelCoverage(ul, ur, lr, ll);
|
||||
target.drawRaster(image, extent, paintProps);
|
||||
loc[0] += 12 * scale[0];
|
||||
text = " " + featureName;
|
||||
} else {
|
||||
text = "??? " + featureName;
|
||||
}
|
||||
DrawableString string = new DrawableString(text, color);
|
||||
string.font = font;
|
||||
string.setCoordinates(loc[0], loc[1]);
|
||||
string.verticalAlignment = VerticalAlignment.MIDDLE;
|
||||
target.drawStrings(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/**
|
||||
* 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.
|
||||
**/
|
||||
|
@ -22,39 +22,50 @@ package com.raytheon.uf.viz.bufrsigwx.util;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import com.raytheon.uf.viz.core.DrawableLine;
|
||||
import com.raytheon.uf.viz.core.IExtent;
|
||||
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.PixelExtent;
|
||||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
import com.vividsolutions.jts.geom.GeometryFactory;
|
||||
import com.vividsolutions.jts.geom.LinearRing;
|
||||
import com.vividsolutions.jts.geom.Polygon;
|
||||
|
||||
|
||||
/**
|
||||
* Determines positioning for text boxes so they do not overlap
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 25, 2009 3099 bsteffen Initial creation
|
||||
*
|
||||
* Sep 19, 2016 5886 tgurney No longer use wireframe shapes
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author bsteffen
|
||||
* @version 1.0
|
||||
*/
|
||||
public class Declutter {
|
||||
|
||||
/**
|
||||
* Dumb container that stores the location and dimensions of a text box,
|
||||
* with an additional line coming off of it.
|
||||
*/
|
||||
public static class TextBoxData {
|
||||
public PixelExtent box;
|
||||
|
||||
public double[] textLoc;
|
||||
|
||||
public DrawableLine line;
|
||||
}
|
||||
|
||||
IExtent extent;
|
||||
|
||||
public Declutter(IExtent extent) {
|
||||
this.extent = extent;
|
||||
}
|
||||
|
||||
private Polygon getBox(Coordinate center, double[] dimensions) {
|
||||
private static Polygon getBox(Coordinate center, double[] dimensions) {
|
||||
Coordinate[] coords = new Coordinate[5];
|
||||
double x1 = center.x - dimensions[0] / 2;
|
||||
double x2 = center.x + dimensions[0] / 2;
|
||||
|
@ -69,14 +80,14 @@ public class Declutter {
|
|||
return factory.createPolygon(ring, null);
|
||||
}
|
||||
|
||||
private Collection<Polygon> boxes = new ArrayList<Polygon>();
|
||||
|
||||
public double[] infoBoxForPolygon2(IWireframeShape shape, Polygon polygon,
|
||||
double[] dimensions) throws VizException {
|
||||
private Collection<Polygon> boxes = new ArrayList<>();
|
||||
|
||||
public TextBoxData infoBoxForPolygon2(Polygon polygon,
|
||||
double[] boxDimensions) {
|
||||
Coordinate center = polygon.getCentroid().getCoordinate();
|
||||
Coordinate lastCoord = center;
|
||||
double boxRadius = Math.sqrt(dimensions[0] * dimensions[0]
|
||||
+ dimensions[1] * dimensions[1]);
|
||||
double boxRadius = Math.sqrt(boxDimensions[0] * boxDimensions[0]
|
||||
+ boxDimensions[1] * boxDimensions[1]);
|
||||
double distance = boxRadius * 0.8;
|
||||
for (Coordinate curCoord : polygon.getCoordinates()) {
|
||||
Coordinate thisCoord = curCoord;
|
||||
|
@ -88,24 +99,25 @@ public class Declutter {
|
|||
} else {
|
||||
thisCoord = curCoord;
|
||||
}
|
||||
if (!extent.contains(new double[] { thisCoord.x, thisCoord.y })) {
|
||||
if (!extent
|
||||
.contains(new double[] { thisCoord.x, thisCoord.y })) {
|
||||
continue;
|
||||
}
|
||||
double angle = Math.atan2(center.y - thisCoord.y, thisCoord.x
|
||||
- center.x);
|
||||
double angle = Math.atan2(center.y - thisCoord.y,
|
||||
thisCoord.x - center.x);
|
||||
|
||||
Coordinate boxCenter = new Coordinate(thisCoord.x
|
||||
+ Math.cos(angle) * distance, thisCoord.y
|
||||
- Math.sin(angle) * distance);
|
||||
Polygon box = getBox(boxCenter, dimensions);
|
||||
boolean flag = true;
|
||||
Coordinate boxCenter = new Coordinate(
|
||||
thisCoord.x + Math.cos(angle) * distance,
|
||||
thisCoord.y - Math.sin(angle) * distance);
|
||||
Polygon box = getBox(boxCenter, boxDimensions);
|
||||
boolean createTextBox = true;
|
||||
for (Coordinate coord : box.getCoordinates()) {
|
||||
if (!extent.contains(new double[] { coord.x, coord.y })) {
|
||||
flag = false;
|
||||
createTextBox = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!flag) {
|
||||
if (!createTextBox) {
|
||||
continue;
|
||||
}
|
||||
if (polygon.intersects(box)) {
|
||||
|
@ -113,11 +125,11 @@ public class Declutter {
|
|||
}
|
||||
for (Polygon oldBox : boxes) {
|
||||
if (oldBox.intersects(box)) {
|
||||
flag = false;
|
||||
createTextBox = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
if (createTextBox) {
|
||||
Coordinate[] coords = box.getCoordinates();
|
||||
Coordinate[] edgePoints = new Coordinate[4];
|
||||
edgePoints[0] = new Coordinate(coords[1].x, boxCenter.y);
|
||||
|
@ -134,20 +146,18 @@ public class Declutter {
|
|||
}
|
||||
}
|
||||
boxes.add(box);
|
||||
double[][] line = new double[5][];
|
||||
for (int i = 0; i < 5; i++) {
|
||||
line[i] = new double[] { coords[i].x, coords[i].y };
|
||||
}
|
||||
shape.addLineSegment(new double[][] {
|
||||
{ bestEdge.x, bestEdge.y },
|
||||
{ thisCoord.x, thisCoord.y } });
|
||||
shape.addLineSegment(line);
|
||||
Coordinate ul = coords[0];
|
||||
return new double[] { ul.x, ul.y };
|
||||
TextBoxData textBox = new TextBoxData();
|
||||
textBox.line = new DrawableLine();
|
||||
textBox.line.addPoint(bestEdge.x, bestEdge.y);
|
||||
textBox.line.addPoint(thisCoord.x, thisCoord.y);
|
||||
textBox.box = new PixelExtent(coords[0].x, coords[2].x,
|
||||
coords[1].y, coords[3].y);
|
||||
textBox.textLoc = new double[] { coords[0].x, coords[0].y };
|
||||
return textBox;
|
||||
}
|
||||
}
|
||||
}
|
||||
return new double[0];
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ Bundle-SymbolicName: com.raytheon.uf.viz.ccfp;singleton:=true
|
|||
Bundle-Version: 1.14.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Require-Bundle: com.raytheon.uf.viz.core
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: com.raytheon.uf.common.dataplugin,
|
||||
com.raytheon.uf.common.dataplugin.ccfp,
|
||||
|
|
|
@ -18,84 +18,97 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF00FF" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="4" validDuration="${validDuration}"
|
||||
displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="3" validDuration="${validDuration}"
|
||||
displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#ff7900" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="2" validDuration="${validDuration}"
|
||||
displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#ff0000" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="1" validDuration="${validDuration}"
|
||||
displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FF00FF" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="4"
|
||||
validDuration="${validDuration}" displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#FFFF00" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="3"
|
||||
validDuration="${validDuration}" displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#ff7900" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="2"
|
||||
validDuration="${validDuration}" displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability"
|
||||
colorAsString="#ff0000" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="ccfpResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true"
|
||||
retrieveData="true" coverageFilter="1"
|
||||
validDuration="${validDuration}" displayText="false">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="ccfp"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -17,7 +17,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.8.2",
|
|||
com.raytheon.uf.common.dataplugin.grid;bundle-version="1.0.0",
|
||||
com.raytheon.uf.viz.core;bundle-version="1.12.1174",
|
||||
javax.measure;bundle-version="1.0.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.raytheon.uf.viz.cloudheight.data,
|
||||
com.raytheon.uf.viz.cloudheight.rsc
|
||||
|
|
|
@ -18,8 +18,12 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority version
|
||||
of the file will completely replace a lower priority version of the file.
|
||||
-->
|
||||
<cloudHeightData>
|
||||
<nx>25</nx>
|
||||
<ny>25</ny>
|
||||
<displayOption>PEAK</displayOption>
|
||||
<nx>25</nx>
|
||||
<ny>25</ny>
|
||||
<displayOption>PEAK</displayOption>
|
||||
</cloudHeightData>
|
|
@ -17,6 +17,13 @@
|
|||
[Enter License Description here.]
|
||||
</license>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.dissemination"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.site"
|
||||
download-size="0"
|
||||
|
@ -24,61 +31,12 @@
|
|||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.edex.common"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.edex.core"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.edex.database"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.edex.uengine"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.edex.pointdata"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.awipstools"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.dataplugin.radar"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.edex.decodertools"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.dataplugin.text"
|
||||
download-size="0"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
|
|
|
@ -6,7 +6,7 @@ Bundle-Version: 1.14.0.qualifier
|
|||
Bundle-Vendor: RAYTHEON
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
com.raytheon.uf.viz.datacube
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: com.raytheon.uf.common.dataplugin,
|
||||
com.raytheon.uf.common.dataquery.requests,
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
||||
|
||||
<bean id="coopprecipDataCubeAdapter" class="com.raytheon.uf.viz.coopprecip.CoopPrecipDataCubeAdapter" />
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="coopprecipDataCubeAdapterRegistered"
|
||||
factory-bean="dataCubeAdapterRegistry"
|
||||
factory-method="registerAdapter">
|
||||
<constructor-arg ref="coopprecipDataCubeAdapter" />
|
||||
</bean>
|
||||
<bean id="coopprecipDataCubeAdapter" class="com.raytheon.uf.viz.coopprecip.CoopPrecipDataCubeAdapter" />
|
||||
|
||||
<bean id="coopprecipDataCubeAdapterRegistered"
|
||||
factory-bean="dataCubeAdapterRegistry"
|
||||
factory-method="registerAdapter">
|
||||
<constructor-arg ref="coopprecipDataCubeAdapter" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
|
@ -23,13 +23,6 @@
|
|||
<import feature="com.raytheon.uf.viz.localization.perspective.feature" version="1.0.0.qualifier"/>
|
||||
</requires>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.python.swt"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.xy"
|
||||
download-size="0"
|
||||
|
@ -184,13 +177,7 @@
|
|||
id="org.eclipse.jdt.debug"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.common.localization.python"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.drawing"
|
||||
|
@ -224,4 +211,18 @@
|
|||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.drawables.image.stipple"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.gl.image.stipple"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
||||
|
|
|
@ -118,4 +118,30 @@
|
|||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.beust.jcommander"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="com.google.protobuf"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.jdom2"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="org.joda.time"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
</feature>
|
||||
|
|
|
@ -4,7 +4,7 @@ Bundle-Name: Cwa Plug-in
|
|||
Bundle-SymbolicName: com.raytheon.uf.viz.cwa
|
||||
Bundle-Version: 1.15.0.qualifier
|
||||
Bundle-Vendor: RAYTHEON
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: com.raytheon.uf.common.dataplugin,
|
||||
com.raytheon.uf.common.dataplugin.cwa,
|
||||
|
|
|
@ -18,26 +18,32 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority version
|
||||
of the file will completely replace a lower priority version of the file.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="cwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="cwa" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<resourceData xsi:type="cwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="cwa"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -18,6 +18,10 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority version
|
||||
of the file will completely replace a lower priority version of the file.
|
||||
-->
|
||||
<menuContributionFile>
|
||||
<include installTo="menu:Aviation?before=CenterWeatherEnd"
|
||||
fileName="menus/upperair/baseAviationCWA.xml" />
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue