001/* 002 * This file is part of McIDAS-V 003 * 004 * Copyright 2007-2025 005 * Space Science and Engineering Center (SSEC) 006 * University of Wisconsin - Madison 007 * 1225 W. Dayton Street, Madison, WI 53706, USA 008 * https://www.ssec.wisc.edu/mcidas/ 009 * 010 * All Rights Reserved 011 * 012 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and 013 * some McIDAS-V source code is based on IDV and VisAD source code. 014 * 015 * McIDAS-V is free software; you can redistribute it and/or modify 016 * it under the terms of the GNU Lesser Public License as published by 017 * the Free Software Foundation; either version 3 of the License, or 018 * (at your option) any later version. 019 * 020 * McIDAS-V is distributed in the hope that it will be useful, 021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 023 * GNU Lesser Public License for more details. 024 * 025 * You should have received a copy of the GNU Lesser Public License 026 * along with this program. If not, see https://www.gnu.org/licenses/. 027 */ 028 029package edu.wisc.ssec.mcidasv; 030 031import java.awt.Color; 032import java.awt.Dimension; 033 034import ucar.unidata.idv.IdvConstants; 035import ucar.unidata.util.PatternFileFilter; 036 037/** 038 * Application wide constants. 039 */ 040public interface Constants extends IdvConstants { 041 042 /** Path to a skin that creates a window with an empty comp group. */ 043 String BLANK_COMP_GROUP = 044 "/edu/wisc/ssec/mcidasv/resources/skins/window/comptest.xml"; 045 046 /** Name of a thing that contains the data choosers and field selector. */ 047 String DATASELECTOR_NAME = "McIDAS-V - Data Explorer"; 048 049 /** 050 * A thing that contains one or more of the things named 051 * {@code PANEL_NAME}. One of these can be either in a tab 052 * or in it's own window. 053 */ 054 String DISPLAY_NAME = "Display"; 055 056 /** Name of a thing that contains the display/layer controls. */ 057 String DISPLAYCONTROLLER_NAME = "Display Controller"; 058 059 /** Macro for the build date. */ 060 String MACRO_BUILDDATE = "%BUILDDATE%"; 061 062 /** Macro for the copyright year in the about HTML file. */ 063 String MACRO_COPYRIGHT_YEAR = "%COPYRIGHT_YEAR%"; 064 065 /** Macro for the IDV version in the about HTML file. */ 066 String MACRO_IDV_VERSION = "%IDVVERSION%"; 067 068 /** Macro for the version in the about HTML file. */ 069 String MACRO_VERSION = "%MCVERSION%"; 070 071 /** Macro for the VisAD version in the about HTML file. */ 072 String MACRO_VISAD_VERSION = "%VISADVERSION%"; 073 074 /** Macro for granule count (only applies for swath data). */ 075 String MACRO_GRANULE_COUNT = "%granulecount%"; 076 077 /** Default size for GUI elements. */ 078 int ELEMENT_WIDTH = 90; 079 int GAP_RELATED = 6; 080 int GAP_UNRELATED = (GAP_RELATED * 2); 081 int ELEMENT_DOUBLE_WIDTH = ELEMENT_WIDTH * 2; 082 int ELEMENT_ONEHALF_WIDTH = (int)Math.round(ELEMENT_WIDTH * 1.5); 083 int ELEMENT_HALF_WIDTH = Math.round(ELEMENT_WIDTH / 2); 084 int ELEMENT_DOUBLEDOUBLE_WIDTH = (ELEMENT_DOUBLE_WIDTH * 2) + ELEMENT_WIDTH + (GAP_RELATED * 3) + 24; 085 086 /** 087 * Common line styles used in various UI controls 088 */ 089 090 String [] lineStyles = new String[] { "_____", "_ _ _", ".....", "_._._" }; 091 092 /** Icon locations for buttons. */ 093 String ICON_APPLY_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/action_go.gif"; 094 String ICON_ACCEPT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/accept.png"; 095 String ICON_CANCEL_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/stop-loads16.png"; 096 String ICON_EXCLAMATION_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/exclamation.png"; 097 String ICON_INFORMATION_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/information.png"; 098 String ICON_ERROR_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/error.png"; 099 String ICON_HELP_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/show-help16.png"; 100 String ICON_ADD_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/add.png"; 101 String ICON_DELETE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/delete.png"; 102 String ICON_CONNECT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/connect.png"; 103 String ICON_DISCONNECT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/disconnect.png"; 104 String ICON_UNDO_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/arrow_undo.png"; 105 String ICON_REDO_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/arrow_redo.png"; 106 String ICON_REFRESH_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/view-refresh16.png"; 107 String ICON_OPEN_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/document-open16.png"; 108 String ICON_SAVE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/save-as-fave-bundle16.png"; 109 String ICON_SAVEAS_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/document-save16.png"; 110 String ICON_PREFERENCES_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/preferences-system16.png"; 111 String ICON_NEWWINDOW_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/application_add.png"; 112 String ICON_NEWTAB_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/tab_add.png"; 113 String ICON_NEXT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/resultset_next.png"; 114 String ICON_PREVIOUS_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/resultset_previous.png"; 115 String ICON_RANDOM_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/view-refresh16.png"; 116 String ICON_HELPTIPS_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/dialog-information16.png"; 117 String ICON_CONSOLE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/utilities-system-monitor16.png"; 118 String ICON_CHECKVERSION_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/preferences-desktop-multimedia16.png"; 119 String ICON_FORUMS_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/report_go.png"; 120 String ICON_SUPPORT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/email_go.png"; 121 String ICON_DATAEXPLORER_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/mcidasv-round16.png"; 122 String ICON_LOCALDATA_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/show-data16.png"; 123 String ICON_COLORTABLE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/x-office-presentation16.png"; 124 String ICON_LAYOUTEDIT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/accessories-text-editor16.png"; 125 String ICON_RANGEANDBEARING_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/network-wireless16.png"; 126 String ICON_LOCATION_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/start-here16.png"; 127 String ICON_BACKGROUND_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/background-image16.png"; 128 String ICON_USERSGUIDE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/book_open.png"; 129 String ICON_GETTINGSTARTED_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/book_next.png"; 130 String ICON_NOTE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/note.png"; 131 String ICON_MCIDASV_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/mcidasv-round16.png"; 132 String ICON_MCIDASV_DEFAULT = "/edu/wisc/ssec/mcidasv/resources/icons/prefs/mcidasv-default-logo.png"; 133 134 String ICON_DEFAULTLAYOUT_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/key.png"; 135 String ICON_DEFAULTLAYOUTADD_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/key_add.png"; 136 String ICON_DEFAULTLAYOUTDELETE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/key_delete.png"; 137 138 String ICON_REMOVE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/edit-cut16.png"; 139 String ICON_REMOVELAYERS_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/remove-layers16.png"; 140 String ICON_REMOVEDATA_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/remove-data16.png"; 141 String ICON_REMOVELAYERSDATA_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/remove-layers-data16.png"; 142 143 String ICON_FAVORITE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/fave-bundle16.png"; 144 String ICON_FAVORITESAVE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/save-as-fave-bundle16.png"; 145 String ICON_FAVORITEMANAGE_SMALL = "/edu/wisc/ssec/mcidasv/resources/icons/buttons/manage-favorite16.png"; 146 147 String ICON_CANCEL = "/edu/wisc/ssec/mcidasv/resources/icons/toolbar/stop-load22.png"; 148 String ICON_HELP = "/edu/wisc/ssec/mcidasv/resources/icons/toolbar/show-help22.png"; 149 String ICON_REFRESH = "/edu/wisc/ssec/mcidasv/resources/icons/toolbar/view-refresh22.png"; 150 String ICON_UPDATE = "/edu/wisc/ssec/mcidasv/resources/icons/toolbar/system-software-update22.png"; 151 String ICON_OPEN = "/edu/wisc/ssec/mcidasv/resources/icons/toolbar/document-open22.png"; 152 String ICON_SAVE = "/edu/wisc/ssec/mcidasv/resources/icons/toolbar/document-save22.png"; 153 154 /** 155 * Java OS descriptor for the Max OSX operating system. This should be 156 * constant for any machine running java on OSX. 157 */ 158 String OS_OSX = "Mac OS X"; 159 160 /** 161 * Name of thing that contains the actual VisAD display, the animation 162 * control, view and projection menus, and the toolbar. 163 */ 164 String PANEL_NAME = "Panel"; 165 166 /** Server preference manager. */ 167 String PREF_LIST_ADDE_SERVERS = "ADDE Servers"; 168 169 /** Server state preference ID prefix. Holds the last server/group used. */ 170 String PREF_SERVERSTATE = "idv.chooser.adde.serverstate"; 171 172 /** 173 * The server/group to use if there is no value associated with 174 * {@link #PREF_SERVERSTATE}. 175 */ 176 String[] DEFAULT_SERVERSTATE = new String[] { "adde.ucar.edu", "RTIMAGES" }; 177 178 /** Advanced preferences for IDV, Java, and McIDAS-X. */ 179 String PREF_LIST_ADVANCED = "Advanced"; 180 181 /** Advanced preferences for IDV, Java, and McIDAS-X. */ 182 String PREF_LIST_LOCAL_ADDE = "Local Data"; 183 184 /** Preferences for which display types to allow. */ 185 String PREF_LIST_AVAILABLE_DISPLAYS = "Available Displays"; 186 187 /** Preferences for which data choosers should show up. */ 188 String PREF_LIST_DATA_CHOOSERS = "Data Sources"; 189 190 /** Name of panel containing preferences related to data formatting. */ 191 String PREF_LIST_FORMATS_DATA = "Formats & Data"; 192 193 /** Name of panel that holds the "general" sorts of user preferences. */ 194 String PREF_LIST_GENERAL = "General"; 195 196 /** Panel name for the different nav control scheme preferences. */ 197 String PREF_LIST_NAV_CONTROLS = "Navigation Controls"; 198 199 /** Pref for image chooser to include system servers. */ 200 String PREF_SYSTEMSERVERSIMG = 201 "mcidasv.chooser.adde.image.servers.system"; 202 203 /** Preferences for configuring what appears in the toolbar. */ 204 String PREF_LIST_TOOLBAR = "Toolbar Options"; 205 206 /** Name of different preferences for configuring how tabs/windows look. */ 207 String PREF_LIST_VIEW = "Display Window"; 208 209 /** Preference ID for limiting # of new windows when loading bundles. */ 210 String PREF_OPEN_LIMIT_WIN = "mcv.open.limitwin"; 211 212 /** Name of the version check user preference. */ 213 String PREF_VERSION_CHECK = "mcidasv.doversioncheck"; 214 215 /** Name of the pre-release check user preference. */ 216 String PREF_PRERELEASE_CHECK = "mcidasv.doprereleasecheck"; 217 218 /** Name of the {@literal "remove all data warning"} preference. */ 219 String PREF_CONFIRM_REMOVE_DATA = 220 "mcv.warn.remove.data.all"; 221 222 /** Name of the {@literal "remove all layers warning"} preference. */ 223 String PREF_CONFIRM_REMOVE_LAYERS = 224 "mcv.warn.remove.layers.all"; 225 226 /** Name of the {@literal "remove everything warning"} preference. */ 227 String PREF_CONFIRM_REMOVE_BOTH = 228 "mcv.warn.remove.everything"; 229 230 /** 231 * Preference for controlling the automated saving of the default layout. 232 */ 233 String PREF_AUTO_SAVE_DEFAULT_LAYOUT = "mcidasv.defaultlayout.autosave"; 234 235 String PREF_SAVE_DASHBOARD_VIZ = "mcidasv.dashboard.savevisibility"; 236 237 /** Preference for saving image preview default. */ 238 String PREF_IMAGE_PREVIEW = "mcidasv.chooser.adde.preview"; 239 240 /** Used to alert user they are modifying default color table */ 241 String PREF_MODIFY_DEFAULT_COLOR_TABLE = "mcidasv.default.colortable.modify"; 242 243 /** Whether or not to show the McIDAS-V {@literal "system"} bundles. */ 244 String PREF_SHOW_SYSTEM_BUNDLES = "mcidasv.showsystembundles"; 245 246 String PREF_NUM_IMAGE_PRESET_IMGCHOOSER = "mcidasv.numentries.imgchooser"; 247 248 String PREF_NUM_IMAGE_PRESET_RADARCHOOSER = "mcidasv.numentries.rdrchooser"; 249 250 251 /** 252 * Show large or small icons. If PREF_TBM_ICONS is disabled, this pref 253 * has no meaning. 254 */ 255 String PREF_TBM_SIZE = "tbm.icon.size"; 256 257 /** Property name for for the path to about dialog template. */ 258 String PROP_ABOUTTEXT = "mcidasv.about.text"; 259 260 /** Path to the main McIDAS-V icon. */ 261 String PROP_APP_ICON = "mcidasv.window.icon"; 262 263 /** When was visad.jar built? */ 264 String PROP_VISAD_DATE = "visad.build.date"; 265 266 /** What version of VisAD lives within visad.jar? */ 267 String PROP_VISAD_REVISION = "visad.build.revision"; 268 269 /** Was there a problem determing VisAD's version? */ 270 String PROP_VISAD_PARSE_FAIL = "visad.build.parsefail"; 271 272 /** What exactly broke the version extraction? */ 273 String PROP_VISAD_ORIGINAL = "visad.build.contents"; 274 275 /** When was McIDAS-V built? */ 276 String PROP_BUILD_DATE = "mcidasv.build.date"; 277 278 /** Property name for the copyright year. */ 279 String PROP_COPYRIGHT_YEAR = "mcidasv.copyright.year"; 280 281 /** Property name for the McIDAS-V homepage URL. */ 282 String PROP_HOMEPAGE = "mcidasv.homepage"; 283 284 /** Specifies use of {@code edu.wisc.ssec.mcidasv.ui.TabbedUIManager}. */ 285 String PROP_TABBED_UI = "mcidasv.tabbedDisplay"; 286 287 /** Property name for the major version number. */ 288 String PROP_VERSION_MAJOR = "mcidasv.version.major"; 289 290 /** Property name for the minor version number. */ 291 String PROP_VERSION_MINOR = "mcidasv.version.minor"; 292 293 /** Property name for the version release number. */ 294 String PROP_VERSION_RELEASE = "mcidasv.version.release"; 295 296 /** Property name for the path to version file. */ 297 String PROP_VERSIONFILE = "mcidasv.version.file"; 298 299 /** Property that determines whether the view panel should pop up. */ 300 String PROP_VP_SHOWPOPUP = 301 "idv.ui.viewpanel.showpopup"; 302 303 /** Property for whether view panel categories will be shown. */ 304 String PROP_VP_SHOWCATS = 305 "idv.ui.viewpanel.showcategories"; 306 307 /** Typo was found in IDV code. */ 308 String PROP_VP_CATOPEN = "viewpanel.catgegory.open"; 309 310 /** 311 * Property used to restore the size and position of the dashboard upon 312 * start. 313 */ 314 String PROP_DASHBOARD_BOUNDS = "mcidasv.dashboard.bounds"; 315 316 /** Property used to store and retrieve color selection history. */ 317 String PROP_RECENT_COLORS = "mcidasv.colorchooser.recentcolors"; 318 319 /** 320 * Property used to store and retrieve the {@literal "0-360"} checkbox 321 * value. 322 */ 323 String PROP_HYDRA_360 = "mcidasv.hydra.multispectral.use360"; 324 325 /** 326 * Property indicating how many source granules made up a swath data 327 * source. 328 */ 329 String PROP_GRANULE_COUNT = "mcidasv.swath.granulecount"; 330 331 /** Application property file name. */ 332 String PROPERTIES_FILE = 333 "/edu/wisc/ssec/mcidasv/resources/mcidasv.properties"; 334 335 /** McIDAS-V base URL. */ 336 String HOMEPAGE_URL = "https://www.ssec.wisc.edu/mcidas/software/v"; 337 338 /** Location of latest version file under base URL. */ 339 String VERSION_URL = "stable/version.txt"; 340 String VERSION_HANDLER_URL = "stable/version.php"; 341 342 /** Location of latest pre-release directory under base URL. */ 343 String PRERELEASE_URL = "prerelease/"; 344 345 /** Location of latest notice file under base URL. */ 346 String NOTICE_URL = "stable/notice.txt"; 347 348 /** 349 * {@literal "Scrub strings"} are simple string substitutions for things 350 * like labels. 351 */ 352 String SCRUB_STRINGS_FILE = 353 "/edu/wisc/ssec/mcidasv/resources/scrubstrings.xml"; 354 355 /** Where to look for javahelp. */ 356 String DEFAULT_DOCPATH = "/docs/userguide"; 357 358 /** File suffix for bundle files. */ 359 String SUFFIX_MCV = ".mcv"; 360 361 /** File suffix for compressed bundle files. */ 362 String SUFFIX_MCVZ = ".mcvz"; 363 364 /** File filter used for bundle files. */ 365 PatternFileFilter FILTER_MCV = 366 new PatternFileFilter("(.+\\.mcv$)", 367 "McIDAS-V Bundles (*.mcv)", SUFFIX_MCV); 368 369 /** File filter used for bundle files. */ 370 PatternFileFilter FILTER_MCVZ = 371 new PatternFileFilter("(.+\\.mcvz$)", "McIDAS-V Zipped Data Bundles (*.mcvz)", SUFFIX_MCVZ); 372 373 /** File filter used for bundle files. */ 374 PatternFileFilter FILTER_MCVMCVZ = 375 new PatternFileFilter("(.+\\.mcv$|.+\\.mcvz$)", "All McIDAS-V Bundles (*.mcv,*.mcvz)", SUFFIX_MCV); 376 377 /** Default port for local ADDE servers. */ 378 String LOCAL_ADDE_PORT = "8112"; 379 380 String PROP_CHAN = "selectedchannel"; 381 382 /** Preference to store what ADDE servers to show. */ 383 String PROP_SERVERS = "idv.serverstoshow"; 384 385 /** Preference to store whether to show all ADDE servers. */ 386 String PROP_SERVERS_ALL = "idv.serverstoshow.all"; 387 388 /** Name to store the total system memory. */ 389 String PROP_SYSMEM = "idv.sysmem"; 390 391 /** Default map z-level */ 392 double DEFAULT_MAP_Z_LEVEL = -0.99d; 393 394 /** Maximum amount of memory 32bit JREs can address, in megabytes. */ 395 int MAX_MEMORY_32BIT = 1536; 396 397 /** A particular shade of blue we are using for branding. */ 398 Color MCV_BLUE = new Color(96, 176, 224); 399 Color MCV_BLUE_DARK = new Color(0, 96, 255); 400 401 /** default color picker size */ 402 Dimension DEFAULT_COLOR_PICKER_SIZE = new Dimension(24, 20); 403 404 /** Identifier for the {@literal "monitor panel"} window component. */ 405 String COMP_MONITORPANEL = "mcv.monitorpanel"; 406 407 /** Default user directory name */ 408 String USER_DIRECTORY_NAME = "McIDAS-V"; 409 410 /** Tooltip for adaptive resolution menu items. */ 411 String TOOLTIP_PROGRESSIVE_RESOLUTION = "This feature can be turned on or off in the \"Display Window\" section of the User Preferences."; 412 413 /** EventBus topic for signaling that directory monitors may begin. */ 414 String EVENT_FILECHOOSER_START = "FileChooser.StartWatchService"; 415 416 /** EventBus topic for signaling that directory monitors should stop. */ 417 String EVENT_FILECHOOSER_STOP = "FileChooser.StopWatchService"; 418}