00001 /* 00002 * The information in this file is 00003 * Copyright(c) 2007 Ball Aerospace & Technologies Corporation 00004 * and is subject to the terms and conditions of the 00005 * GNU Lesser General Public License Version 2.1 00006 * The license text is available from 00007 * http://www.gnu.org/licenses/lgpl.html 00008 */ 00009 00010 #ifndef SPATIALDATAWINDOW_H 00011 #define SPATIALDATAWINDOW_H 00012 00013 #include "ColorType.h" 00014 #include "WorkspaceWindow.h" 00015 00016 #include <string> 00017 00018 class SpatialDataView; 00019 00020 /** 00021 * A window containing a spatial data view. 00022 * 00023 * The spatial data window is a type of workspace window that contains a spatial 00024 * data view. The class is provided for convenience when creating and using 00025 * product views. The window also provides a means to export a subset of the 00026 * raster data in the view. 00027 * 00028 * This subclass of Subject will notify upon the following conditions: 00029 * - Everything documented in WorkspaceWindow. 00030 * 00031 * @see WorkspaceWindow, SpatialDataView 00032 */ 00033 class SpatialDataWindow : public WorkspaceWindow 00034 { 00035 public: 00036 SETTING(OverviewTrailColor, SpatialDataWindow, ColorType, ColorType()) 00037 SETTING(OverviewTrailThreshold, SpatialDataWindow, unsigned int, 100) 00038 00039 /** 00040 * Returns the spatial data view contained in the window. 00041 * 00042 * @return A pointer to the spatial data view displayed in the window. 00043 * 00044 * @see SpatialDataView 00045 */ 00046 virtual SpatialDataView* getSpatialDataView() const = 0; 00047 00048 /** 00049 * Allows the user to export a subset of the raster element. 00050 * 00051 * This method invokes a dialog in which the user can graphically select 00052 * a subset area of the raster element in the view to export to either 00053 * another spatial data window or to a file. 00054 */ 00055 virtual void exportSubset() = 0; 00056 00057 /** 00058 * Toggles the display of the overview window. 00059 * 00060 * The overview window contains a small thumbnail view of the view in this 00061 * window. A selection box in the overview illustrates the displayed area of 00062 * this window. The display in this window can be panned and zoomed by 00063 * clicking a dragging the selection box in the overview. 00064 * 00065 * @param bShow 00066 * Set this value to TRUE to show the overview window or to FALSE to 00067 * hide the overview window. 00068 */ 00069 virtual void showOverviewWindow(bool bShow) = 0; 00070 00071 /** 00072 * Queries whether the overview window is displayed. 00073 * 00074 * @return TRUE if the overview window is displayed or FALSE if the overview 00075 * window is hidden. 00076 */ 00077 virtual bool isOverviewWindowShown() const = 0; 00078 00079 protected: 00080 /** 00081 * This should be destroyed by calling DesktopServices::deleteWindow. 00082 */ 00083 virtual ~SpatialDataWindow() {} 00084 }; 00085 00086 #endif