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