Пример #1
0
        internal ImageTileSetModelNode(DappleModel oModel, String strName)
            : base(oModel)
        {
            m_strName = strName;

            MarkLoaded();
        }
Пример #2
0
        internal AvailableServersModelNode(DappleModel oModel)
            : base(oModel)
        {
            m_oDAPRootNode = new DapServerRootModelNode(m_oModel);
            AddChildSilently(m_oDAPRootNode);

            if (PersonalDapServerModelNode.PersonalDapRunning)
            {
                m_oPersonalDAPServer = new PersonalDapServerModelNode(m_oModel);
                AddChildSilently(m_oPersonalDAPServer);
                m_oPersonalDAPServer.BeginLoad();
            }

            m_oTileRootNode = new ImageTileSetRootModelNode(m_oModel);
            AddChildSilently(m_oTileRootNode);

            m_oVERootNode = new VERootModelNode(m_oModel);
            AddChildSilently(m_oVERootNode);

            m_oWMSRootNode = new WMSRootModelNode(m_oModel);
            AddChildSilently(m_oWMSRootNode);

            m_oArcIMSRootNode = new ArcIMSRootModelNode(m_oModel);
            AddChildSilently(m_oArcIMSRootNode);

            MarkLoaded();
        }
Пример #3
0
        internal static ServerModelNode AddServerToHomeView(DappleModel oModel, LayerBuilder oLayer)
        {
            const bool Enabled = true;
            const bool DontAddToHomeViewYet     = false;
            const bool DontSubmitToDappleSearch = false;

            ServerModelNode result = null;

            // --- Add the server to the model ---

            if (oLayer is ArcIMSQuadLayerBuilder)
            {
                ArcIMSQuadLayerBuilder castLayer = oLayer as ArcIMSQuadLayerBuilder;
                result = oModel.AddArcIMSServer(new ArcIMSServerUri(castLayer.ServerURL), Enabled, DontAddToHomeViewYet, DontSubmitToDappleSearch);
            }
            else if (oLayer is DAPQuadLayerBuilder)
            {
                DAPQuadLayerBuilder castLayer = oLayer as DAPQuadLayerBuilder;
                result = oModel.AddDAPServer(new DapServerUri(castLayer.ServerURL), Enabled, DontAddToHomeViewYet, DontSubmitToDappleSearch);
            }
            else if (oLayer is WMSQuadLayerBuilder)
            {
                WMSQuadLayerBuilder castLayer = oLayer as WMSQuadLayerBuilder;
                result = oModel.AddWMSServer(new WMSServerUri(castLayer.ServerURL), Enabled, DontAddToHomeViewYet, DontSubmitToDappleSearch);
            }
            else
            {
                throw new ApplicationException("Don't know how to get the server of type " + oLayer.GetType().ToString());
            }

            result.AddToHomeView();

            return(result);
        }
Пример #4
0
        internal VELayerModelNode(DappleModel oModel, VELayerType eLayerType)
            : base(oModel)
        {
            m_eLayerType = eLayerType;

            MarkLoaded();
        }
Пример #5
0
        internal AvailableServersModelNode(DappleModel oModel)
            : base(oModel)
        {
            m_oDAPRootNode = new DapServerRootModelNode(m_oModel);
            AddChildSilently(m_oDAPRootNode);

            if (PersonalDapServerModelNode.PersonalDapRunning)
            {
                m_oPersonalDAPServer = new PersonalDapServerModelNode(m_oModel);
                AddChildSilently(m_oPersonalDAPServer);
                m_oPersonalDAPServer.BeginLoad();
            }

            m_oTileRootNode = new ImageTileSetRootModelNode(m_oModel);
            AddChildSilently(m_oTileRootNode);

            m_oVERootNode = new VERootModelNode(m_oModel);
            AddChildSilently(m_oVERootNode);

            m_oWMSRootNode = new WMSRootModelNode(m_oModel);
            AddChildSilently(m_oWMSRootNode);

            m_oArcIMSRootNode = new ArcIMSRootModelNode(m_oModel);
            AddChildSilently(m_oArcIMSRootNode);

            MarkLoaded();
        }
Пример #6
0
        internal VELayerModelNode(DappleModel oModel, VELayerType eLayerType)
            : base(oModel)
        {
            m_eLayerType = eLayerType;

            MarkLoaded();
        }
Пример #7
0
        internal override LayerBuilder getBuilder(DappleModel oModel)
        {
            oModel.AddArcIMSServer(m_oServer as ArcIMSServerUri, true, false, false);

            GeographicBoundingBox oLayerBounds = new GeographicBoundingBox();
            double dMinScale, dMaxScale;
            if (!Double.TryParse(getAttribute("minx"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.West)) return null;
            if (!Double.TryParse(getAttribute("miny"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.South)) return null;
            if (!Double.TryParse(getAttribute("maxx"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.East)) return null;
            if (!Double.TryParse(getAttribute("maxy"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.North)) return null;
            if (!Double.TryParse(getAttribute("minscale"), NumberStyles.Any, CultureInfo.InvariantCulture, out dMinScale)) return null;
            if (!Double.TryParse(getAttribute("maxscale"), NumberStyles.Any, CultureInfo.InvariantCulture, out dMaxScale)) return null;

            return new ArcIMSQuadLayerBuilder(
                m_oServer as ArcIMSServerUri,
                getAttribute("servicename"),
                getAttribute("title"),
                getAttribute("layerid"),
                oLayerBounds,
                new ArcIMSFeatureCoordSys(new CultureInfo("en-US")),
                MainForm.WorldWindowSingleton,
                null,
                dMinScale,
                dMaxScale,
                new CultureInfo("en-US"));
        }
Пример #8
0
        internal DapDatasetModelNode(DappleModel oModel, DataSet oDataSet)
            : base(oModel)
        {
            m_oDataSet = oDataSet;

            MarkLoaded();
        }
Пример #9
0
        internal MessageModelNode(DappleModel oModel, String strMessage)
            : base(oModel)
        {
            m_strMessage = strMessage;

            MarkLoaded();
        }
Пример #10
0
        internal VERootModelNode(DappleModel oModel)
            : base(oModel)
        {
            AddChildSilently(new VELayerModelNode(m_oModel, VELayerModelNode.VELayerType.Map));
            AddChildSilently(new VELayerModelNode(m_oModel, VELayerModelNode.VELayerType.Hybrid));
            AddChildSilently(new VELayerModelNode(m_oModel, VELayerModelNode.VELayerType.Satelite));

            MarkLoaded();
        }
Пример #11
0
        internal WMSLayerModelNode(DappleModel oModel, WMSLayer oData)
            : base(oModel)
        {
            m_oData   = oData;
            m_oBounds = new GeographicBoundingBox((double)m_oData.North, (double)m_oData.South, (double)m_oData.West, (double)m_oData.East);

            m_oViewLegend = new ToolStripMenuItem("View Legend...", IconKeys.ImageList.Images[IconKeys.ViewLegendMenuItem], new EventHandler(c_miViewLegend_Click));

            MarkLoaded();
        }
Пример #12
0
        internal DapDirectoryModelNode(DappleModel oModel, CatalogFolder oFolder)
            : base(oModel)
        {
            m_oFolder = oFolder;

            foreach (CatalogFolder oSubFolder in m_oFolder.Folders)
            {
                AddChildSilently(new DapDirectoryModelNode(m_oModel, oSubFolder));
            }
        }
Пример #13
0
        internal ArcIMSLayerModelNode(DappleModel oModel, String strTitle, String strID, GeographicBoundingBox oBounds, double dMinScale, double dMaxScale, CultureInfo oCultureInfo)
            : base(oModel)
        {
            m_strTitle = strTitle;
            m_strID = strID;
            m_oBounds = oBounds;
            m_dMinScale = dMinScale;
            m_dMaxScale = dMaxScale;
            m_oCultureInfo = oCultureInfo;

            MarkLoaded();
        }
Пример #14
0
        internal ArcIMSLayerModelNode(DappleModel oModel, String strTitle, String strID, GeographicBoundingBox oBounds, double dMinScale, double dMaxScale, CultureInfo oCultureInfo)
            : base(oModel)
        {
            m_strTitle     = strTitle;
            m_strID        = strID;
            m_oBounds      = oBounds;
            m_dMinScale    = dMinScale;
            m_dMaxScale    = dMaxScale;
            m_oCultureInfo = oCultureInfo;

            MarkLoaded();
        }
Пример #15
0
        internal ServerModelNode(DappleModel oModel, bool blEnabled)
            : base(oModel)
        {
            m_blEnabled   = blEnabled;
            m_blFavourite = false;

            m_oEnable       = new ToolStripMenuItem("Enable", IconKeys.ImageList.Images[IconKeys.EnableServerMenuItem], new EventHandler(c_miToggle_Click));
            m_oSetFavourite = new ToolStripMenuItem("Set as Favorite", IconKeys.ImageList.Images[IconKeys.MakeServerFavouriteMenuItem], new EventHandler(c_miSetFavourite_Click));
            m_oRefresh      = new ToolStripMenuItem("Refresh", IconKeys.ImageList.Images[IconKeys.RefreshServerMenuItem], new EventHandler(c_miRefresh_Click));
            m_oDisable      = new ToolStripMenuItem("Disable", IconKeys.ImageList.Images[IconKeys.DisableServerMenuItem], new EventHandler(c_miToggle_Click));
            m_oRemove       = new ToolStripMenuItem("Remove", IconKeys.ImageList.Images[IconKeys.RemoveServerMenuItem], new EventHandler(c_miRemove_Click));
            m_oProperties   = new ToolStripMenuItem("Properties", IconKeys.ImageList.Images[IconKeys.ViewServerPropertiesMenuItem], new EventHandler(c_miProperties_Click));
        }
Пример #16
0
        internal ImageTileLayerModelNode(DappleModel oModel, String strName, Uri oUri, String strExtension, double dLZTS, String strDataset, int iLevels, GeographicBoundingBox oBounds, int iDistanceAboveSurface, int iTextureSize)
            : base(oModel)
        {
            m_strName = strName;
            m_oUri = oUri;
            m_strExtension = strExtension;
            m_dLZTS = dLZTS;
            m_strDataset = strDataset;
            m_iLevels = iLevels;
            m_oBounds = oBounds;
            m_iDistanceAboveSurface = iDistanceAboveSurface;
            m_iTextureSize = iTextureSize;

            MarkLoaded();
        }
Пример #17
0
        internal ImageTileLayerModelNode(DappleModel oModel, String strName, Uri oUri, String strExtension, double dLZTS, String strDataset, int iLevels, GeographicBoundingBox oBounds, int iDistanceAboveSurface, int iTextureSize)
            : base(oModel)
        {
            m_strName               = strName;
            m_oUri                  = oUri;
            m_strExtension          = strExtension;
            m_dLZTS                 = dLZTS;
            m_strDataset            = strDataset;
            m_iLevels               = iLevels;
            m_oBounds               = oBounds;
            m_iDistanceAboveSurface = iDistanceAboveSurface;
            m_iTextureSize          = iTextureSize;

            MarkLoaded();
        }
Пример #18
0
        internal WMSFolderModelNode(DappleModel oModel, WMSLayer oData)
            : base(oModel)
        {
            m_oData = oData;

            foreach (WMSLayer oLayer in m_oData.ChildLayers)
            {
                if (oLayer.ChildLayers == null)
                {
                    AddChildSilently(new WMSLayerModelNode(m_oModel, oLayer));
                }
                else
                {
                    AddChildSilently(new WMSFolderModelNode(m_oModel, oLayer));
                }
            }
            if (oData.Name != null)
            {
                AddChildSilently(new WMSLayerModelNode(m_oModel, oData));
            }

            MarkLoaded();
        }
Пример #19
0
        internal WMSFolderModelNode(DappleModel oModel, WMSLayer oData)
            : base(oModel)
        {
            m_oData = oData;

            foreach (WMSLayer oLayer in m_oData.ChildLayers)
            {
                if (oLayer.ChildLayers == null)
                {
                    AddChildSilently(new WMSLayerModelNode(m_oModel, oLayer));
                }
                else
                {
                    AddChildSilently(new WMSFolderModelNode(m_oModel, oLayer));
                }
            }
            if (oData.Name != null)
            {
                AddChildSilently(new WMSLayerModelNode(m_oModel, oData));
            }

            MarkLoaded();
        }
Пример #20
0
 internal DapBrowserMapModelNode(DappleModel oModel, Server oData)
     : base(oModel)
 {
     m_oData = oData;
 }
Пример #21
0
 internal ModelNode(DappleModel oModel)
 {
     m_oModel = oModel;
 }
Пример #22
0
 internal WMSServerModelNode(DappleModel oModel, WMSServerUri oUri, bool blEnabled)
     : base(oModel, blEnabled)
 {
     m_oUri     = oUri;
     m_strTitle = oUri.ServerTreeDisplayName;
 }
Пример #23
0
 internal DapServerRootModelNode(DappleModel oModel)
     : base(oModel)
 {
     MarkLoaded();
 }
Пример #24
0
 internal DapServerModelNode(DappleModel oModel, DapServerUri oUri, bool blEnabled)
     : base(oModel, blEnabled)
 {
     m_oUri = oUri;
     m_strTitle = m_oUri.ServerTreeDisplayName;
 }
Пример #25
0
        internal DapDatasetModelNode(DappleModel oModel, DataSet oDataSet)
            : base(oModel)
        {
            m_oDataSet = oDataSet;

            MarkLoaded();
        }
Пример #26
0
 internal LoadingModelNode(DappleModel oModel)
     : base(oModel, "Loading...")
 {
 }
Пример #27
0
 internal ArcIMSRootModelNode(DappleModel oModel)
     : base(oModel)
 {
     MarkLoaded();
 }
Пример #28
0
 internal ArcIMSServerModelNode(DappleModel oModel, ArcIMSServerUri oUri, bool blEnabled)
     : base(oModel, blEnabled)
 {
     m_oUri = oUri;
 }
Пример #29
0
        internal MainForm(string strView,
            string strGeoTiff, string strGeotiffName, bool bGeotiffTmp,
            string strKMLFile, string strKMLName, bool blKMLTmp,
            string strLastView, Dapple.Extract.Options.Client.ClientType eClientType, RemoteInterface oMRI, GeographicBoundingBox oAoi, string strAoiCoordinateSystem, string strMapFileName)
        {
            if (String.Compare(Path.GetExtension(strView), ViewExt, true) == 0 && File.Exists(strView))
                this.openView = strView;

            m_strOpenGeoTiffFile = strGeoTiff;
            m_strOpenGeoTiffName = strGeotiffName;
            m_blOpenGeoTiffTmp = bGeotiffTmp;

            m_strOpenKMLFile = strKMLFile;
            m_strOpenKMLName = strKMLName;
            m_blOpenKMLTmp = blKMLTmp;

            this.lastView = strLastView;
            s_oMontajRemoteInterface = oMRI;

            // Establish the version number string used for user display,
            // such as the Splash and Help->About screens.
            // To change the Application.ProductVersion make the
            // changes in \WorldWind\AssemblyInfo.cs
            // For alpha/beta versions, include " alphaN" or " betaN"
            // at the end of the format string.
            Version ver = new Version(Application.ProductVersion);
            Release = string.Format(CultureInfo.InvariantCulture, "{0}.{1}.{2}", ver.Major, ver.Minor, ver.Build);
            if (ver.Build % 2 != 0)
                Release += " (BETA)";

            // Name the main thread.
            System.Threading.Thread.CurrentThread.Name = ThreadNames.EventDispatch;

            // Copy/Update any configuration files and other files if needed now
            CurrentSettingsDirectory = Path.Combine(UserPath, "Config");
            Directory.CreateDirectory(CurrentSettingsDirectory);
            Settings.CachePath = Path.Combine(UserPath, "Cache");
            Directory.CreateDirectory(Settings.CachePath);
            this.metaviewerDir = Path.Combine(UserPath, "Metadata");
            Directory.CreateDirectory(this.metaviewerDir);
            string[] cfgFiles = Directory.GetFiles(Path.Combine(DirectoryPath, "Config"), "*.xml");
            foreach (string strCfgFile in cfgFiles)
            {
                string strUserCfg = Path.Combine(CurrentSettingsDirectory, Path.GetFileName(strCfgFile));
                if (!File.Exists(strUserCfg))
                    File.Copy(strCfgFile, strUserCfg);
            }
            string[] metaFiles = Directory.GetFiles(Path.Combine(Path.Combine(DirectoryPath, "Data"), "MetaViewer"), "*.*");
            foreach (string strMetaFile in metaFiles)
            {
                string strUserMeta = Path.Combine(this.metaviewerDir, Path.GetFileName(strMetaFile));
                File.Copy(strMetaFile, strUserMeta, true);
            }

            // --- Set up a new user's favorites list and home view ---

            /*if (!File.Exists(Path.Combine(CurrentSettingsDirectory, "user.dapple_serverlist")))
            {
                File.Copy(Path.Combine(Path.Combine(DirectoryPath, "Data"), "default.dapple_serverlist"), Path.Combine(CurrentSettingsDirectory, "user.dapple_serverlist"));
            }*/
            HomeView.CreateDefault();

            InitSettings();

            if (Settings.NewCachePath.Length > 0)
            {
                try
                {
                    // We want to make sure the new cache path is writable
                    Directory.CreateDirectory(Settings.NewCachePath);
                    if (Directory.Exists(Settings.CachePath))
                        Utility.FileSystem.DeleteFolderGUI(this, Settings.CachePath, "Deleting Existing Cache");
                    Settings.CachePath = Settings.NewCachePath;
                }
                catch
                {
                }
                Settings.NewCachePath = "";
            }

            if (Settings.ConfigurationWizardAtStartup)
            {
                Wizard frm = new Wizard(Settings);
                frm.ShowDialog(this);
                Settings.ConfigurationWizardAtStartup = false;
            }

            if (Settings.ConfigurationWizardAtStartup)
            {
                // If the settings file doesn't exist, then we are using the
                // default settings, and the default is to show the Configuration
                // Wizard at startup. We only want that to happen the first time
                // World Wind is started, so change the setting to false(the user
                // can change it to true if they want).
                if (!File.Exists(Settings.FileName))
                {
                    Settings.ConfigurationWizardAtStartup = false;
                }
                ConfigurationWizard.Wizard wizard = new ConfigurationWizard.Wizard(Settings);
                wizard.TopMost = true;
                wizard.ShowInTaskbar = true;
                wizard.ShowDialog();
                // TODO: should settings be saved now, in case of program crashes,
                //	   and so that XML file on disk matches in-memory settings?
            }

            //#if !DEBUG
            using (this.splashScreen = new Splash())
            {
                this.splashScreen.Owner = this;
                this.splashScreen.Show();

                Application.DoEvents();
                //#endif

                // --- setup the list of images used for the different datatypes ---

                s_oImageList.ColorDepth = ColorDepth.Depth32Bit;
                s_oImageList.ImageSize = new Size(16, 16);
                s_oImageList.TransparentColor = Color.Transparent;

                s_oImageList.Images.Add(EnabledServerIconKey, Resources.enserver);
                s_oImageList.Images.Add(DisabledServerIconKey, Resources.disserver);
                s_oImageList.Images.Add(OfflineServerIconKey, Resources.offline);
                s_oImageList.Images.Add(DapIconKey, Resources.dap);
                s_oImageList.Images.Add(DapDatabaseIconKey, Resources.dap_database);
                s_oImageList.Images.Add(DapDocumentIconKey, Resources.dap_document);
                s_oImageList.Images.Add(DapGridIconKey, Resources.dap_grid);
                s_oImageList.Images.Add(DapMapIconKey, Resources.dap_map);
                s_oImageList.Images.Add(DapPictureIconKey, Resources.dap_picture);
                s_oImageList.Images.Add(DapPointIconKey, Resources.dap_point);
                s_oImageList.Images.Add(DapSpfIconKey, Resources.dap_spf);
                s_oImageList.Images.Add(DapVoxelIconKey, Resources.dap_voxel);
                s_oImageList.Images.Add(FolderIconKey, Resources.folder);
                s_oImageList.Images.Add(DapArcGisIconKey, global::Dapple.Properties.Resources.dap_arcgis);
                s_oImageList.Images.Add(KmlIconKey, Resources.kml);
                s_oImageList.Images.Add(ErrorIconKey, global::Dapple.Properties.Resources.error);
                s_oImageList.Images.Add(LayerIconKey, global::Dapple.Properties.Resources.layer);
                s_oImageList.Images.Add(LiveMapsIconKey, global::Dapple.Properties.Resources.live);
                s_oImageList.Images.Add(TileIconKey, global::Dapple.Properties.Resources.tile);
                s_oImageList.Images.Add(GeorefImageIconKey, global::Dapple.Properties.Resources.georef_image);
                s_oImageList.Images.Add(WmsIconKey, Resources.wms);
                s_oImageList.Images.Add(ArcImsIconKey, global::Dapple.Properties.Resources.arcims);
                s_oImageList.Images.Add(BlueMarbleIconKey, Dapple.Properties.Resources.blue_marble);
                s_oImageList.Images.Add(DesktopCatalogerIconKey, Dapple.Properties.Resources.dcat);

                c_oWorldWindow = new WorldWindow();
            #if !DEBUG
                Utility.AbortUtility.ProgramAborting += new MethodInvoker(c_oWorldWindow.KillD3DAndWorkerThread);
            #endif
                c_oWorldWindow.AllowDrop = true;
                c_oWorldWindow.DragOver += new DragEventHandler(c_oWorldWindow_DragOver);
                c_oWorldWindow.DragDrop += new DragEventHandler(c_oWorldWindow_DragDrop);
                c_oWorldWindow.Resize += new EventHandler(c_oWorldWindow_Resize);
                InitializeComponent();
                this.SuspendLayout();
                c_oLayerList.ImageList = s_oImageList;

            /*#if DEBUG
                // --- Make the server tree HOOGE ---
                this.splitContainerMain.SplitterDistance = 400;
                this.splitContainerLeftMain.SplitterDistance = 400;
            #endif*/

                this.Icon = new System.Drawing.Icon(@"app.ico");
                DappleToolStripRenderer oTSR = new DappleToolStripRenderer();
                c_tsSearch.Renderer = oTSR;
                c_tsLayers.Renderer = oTSR;
                c_tsOverview.Renderer = oTSR;
                c_tsMetadata.Renderer = oTSR;

                c_tsNavigation.Renderer = new BorderlessToolStripRenderer();

                // set Upper and Lower limits for Cache size control, in bytes
                long CacheUpperLimit = (long)Settings.CacheSizeGigaBytes * 1024L * 1024L * 1024L;
                long CacheLowerLimit = (long)Settings.CacheSizeGigaBytes * 768L * 1024L * 1024L;	//75% of upper limit

                try
                {
                    Directory.CreateDirectory(Settings.CachePath);
                }
                catch
                {
                    // We get here when people used a cache drive that since dissappeared (e.g. USB flash)
                    // Revert to default cache directory in this case

                    Settings.CachePath = Path.Combine(UserPath, "Cache");
                    Directory.CreateDirectory(Settings.CachePath);
                }

                //Set up the cache
                c_oWorldWindow.Cache = new Cache(
                    Settings.CachePath,
                    CacheLowerLimit,
                    CacheUpperLimit,
                    Settings.CacheCleanupInterval,
                    Settings.TotalRunTime);

                #region Plugin + World Init.

                WorldWind.Terrain.TerrainTileService terrainTileService = new WorldWind.Terrain.TerrainTileService("http://worldwind25.arc.nasa.gov/wwelevation/wwelevation.aspx", "srtm30pluszip", 20, 150, "bil", 12, Path.Combine(Settings.CachePath, "Earth\\TerrainAccessor\\SRTM"), TimeSpan.FromMinutes(30), "Int16");
                WorldWind.Terrain.TerrainAccessor terrainAccessor = new WorldWind.Terrain.NltTerrainAccessor("SRTM", -180, -90, 180, 90, terrainTileService, null);

                WorldWind.World world = new WorldWind.World("Earth",
                    new Point3d(0, 0, 0), Quaternion4d.RotationYawPitchRoll(0, 0, 0),
                    (float)6378137,
                    System.IO.Path.Combine(c_oWorldWindow.Cache.CacheDirectory, "Earth"),
                    terrainAccessor);

                c_oWorldWindow.CurrentWorld = world;
                c_oWorldWindow.DrawArgs.WorldCamera.CameraChanged += new EventHandler(c_oWorldWindow_CameraChanged);

                string strPluginsDir = Path.Combine(DirectoryPath, "Plugins");

                this.scalebarPlugin = new NASA.Plugins.ScaleBarLegend();
                this.scalebarPlugin.PluginLoad(this, strPluginsDir);
                this.scalebarPlugin.IsVisible = World.Settings.ShowScaleBar;

                this.starsPlugin = new Stars3D.Plugin.Stars3D();
                this.starsPlugin.PluginLoad(this, Path.Combine(strPluginsDir, "Stars3D"));

                this.compassPlugin = new Murris.Plugins.Compass();
                this.compassPlugin.PluginLoad(this, Path.Combine(strPluginsDir, "Compass"));

                String szGlobalCloudsCacheDir = Path.Combine(Settings.CachePath, @"Plugins\GlobalClouds");
                Directory.CreateDirectory(szGlobalCloudsCacheDir);
                String szGlobalCloudsPluginDir = Path.Combine(CurrentSettingsDirectory, @"Plugins\GlobalClouds");
                Directory.CreateDirectory(szGlobalCloudsPluginDir);

                if (!File.Exists(Path.Combine(szGlobalCloudsPluginDir, Murris.Plugins.GlobalCloudsLayer.serverListFileName)))
                {
                    File.Copy(Path.Combine(Path.Combine(strPluginsDir, "GlobalClouds"), Murris.Plugins.GlobalCloudsLayer.serverListFileName), Path.Combine(szGlobalCloudsPluginDir, Murris.Plugins.GlobalCloudsLayer.serverListFileName));
                }

                this.cloudsPlugin = new Murris.Plugins.GlobalClouds(szGlobalCloudsCacheDir);
                this.cloudsPlugin.PluginLoad(this, szGlobalCloudsPluginDir);

                this.skyPlugin = new Murris.Plugins.SkyGradient();
                this.skyPlugin.PluginLoad(this, Path.Combine(strPluginsDir, "SkyGradient"));

                this.threeDConnPlugin = new ThreeDconnexion.Plugin.TDxWWInput();
                this.threeDConnPlugin.PluginLoad(this, Path.Combine(strPluginsDir, "3DConnexion"));

                ThreadPool.QueueUserWorkItem(LoadPlacenames);

                c_scWorldMetadata.Panel1.Controls.Add(c_oWorldWindow);
                c_oWorldWindow.Dock = DockStyle.Fill;

                #endregion

                float[] verticalExaggerationMultipliers = { 0.0f, 1.0f, 1.5f, 2.0f, 3.0f, 5.0f, 7.0f, 10.0f };
                foreach (float multiplier in verticalExaggerationMultipliers)
                {
                    ToolStripMenuItem curItem = new ToolStripMenuItem(multiplier.ToString("f1", System.Threading.Thread.CurrentThread.CurrentCulture) + "x", null, new EventHandler(menuItemVerticalExaggerationChange));
                    c_miVertExaggeration.DropDownItems.Add(curItem);
                    curItem.CheckOnClick = true;
                    if (Math.Abs(multiplier - World.Settings.VerticalExaggeration) < 0.1f)
                        curItem.Checked = true;
                }

                this.c_miShowCompass.Checked = World.Settings.ShowCompass;
                this.c_miShowDLProgress.Checked = World.Settings.ShowDownloadIndicator;
                this.c_miShowCrosshair.Checked = World.Settings.ShowCrosshairs;
                this.c_miShowInfoOverlay.Checked = World.Settings.ShowPosition;
                this.c_miShowGridlines.Checked = World.Settings.ShowLatLonLines;
                this.c_miShowGlobalClouds.Checked = World.Settings.ShowClouds;
                if (World.Settings.EnableSunShading)
                {
                    if (!World.Settings.SunSynchedWithTime)
                        this.c_miSunshadingEnabled.Checked = true;
                    else
                        this.c_miSunshadingSync.Checked = true;
                }
                else
                    this.c_miSunshadingDisabled.Checked = true;
                this.c_miShowAtmoScatter.Checked = World.Settings.EnableAtmosphericScattering;

                this.c_miAskLastViewAtStartup.Checked = Settings.AskLastViewAtStartup;
                if (!Settings.AskLastViewAtStartup)
                    this.c_miOpenLastViewAtStartup.Checked = Settings.LastViewAtStartup;

                #region OverviewPanel

                // Fix: earlier versions of Dapple set the DataPath as an absolute reference, so if Dapple was uninstalled, OMapple could not find
                // the file for the overview control.  To fix this, switch the variable to a relative reference if the absolute one doesn't resolve.
                // Dapple will still work; the relative reference will be from whatever directory Dapple is being run.
                if (!Directory.Exists(Settings.DataPath)) Settings.DataPath = "Data";

                #endregion

                c_oWorldWindow.MouseEnter += new EventHandler(this.c_oWorldWindow_MouseEnter);
                c_oWorldWindow.MouseLeave += new EventHandler(this.c_oWorldWindow_MouseLeave);
                c_oOverview.AOISelected += new Overview.AOISelectedDelegate(c_oOverview_AOISelected);

                #region Search view setup

                this.c_oServerList = new ServerList();
                m_oModel = new DappleModel(c_oLayerList);
                m_oModel.SelectedNodeChanged += new EventHandler(m_oModel_SelectedNodeChanged);
                c_oLayerList.Attach(m_oModel);
                NewServerTree.View.ServerTree newServerTree = new NewServerTree.View.ServerTree();
                newServerTree.Attach(m_oModel);
                c_oServerList.Attach(m_oModel);
                c_oLayerList.LayerSelectionChanged += new EventHandler(c_oLayerList_LayerSelectionChanged);

                m_oMetadataDisplay = new MetadataDisplayThread(this);
                m_oMetadataDisplay.AddBuilder(null);
                c_oServerList.LayerList = c_oLayerList;
                c_oLayerList.GoTo += new LayerList.GoToHandler(this.GoTo);

                c_oLayerList.ViewMetadata += new ViewMetadataHandler(m_oMetadataDisplay.AddBuilder);
                c_oServerList.ViewMetadata += new ViewMetadataHandler(m_oMetadataDisplay.AddBuilder);
                c_oServerList.LayerSelectionChanged += new EventHandler(c_oServerList_LayerSelectionChanged);

                this.cServerViewsTab = new JanaTab();
                this.cServerViewsTab.SetImage(0, Resources.tab_tree);
                this.cServerViewsTab.SetImage(1, Resources.tab_list);
                this.cServerViewsTab.SetToolTip(0, "Server tree view");
                this.cServerViewsTab.SetToolTip(1, "Server list view");
                this.cServerViewsTab.SetNameAndText(0, "TreeView");
                this.cServerViewsTab.SetNameAndText(1, "ListView");
                this.cServerViewsTab.SetPage(0, newServerTree);
                this.cServerViewsTab.SetPage(1, this.c_oServerList);
                cServerViewsTab.PageChanged += new JanaTab.PageChangedDelegate(ServerPageChanged);

                c_oDappleSearch = new DappleSearchList();
                c_oDappleSearch.LayerSelectionChanged += new EventHandler(c_oDappleSearch_LayerSelectionChanged);
                c_oDappleSearch.Attach(m_oModel, c_oLayerList);

                c_tcSearchViews.TabPages[0].Controls.Add(cServerViewsTab);
                cServerViewsTab.Dock = DockStyle.Fill;
                c_tcSearchViews.TabPages[1].Controls.Add(c_oDappleSearch);
                c_oDappleSearch.Dock = DockStyle.Fill;

                c_oLayerList.SetBaseLayer(new BlueMarbleBuilder());

                this.ResumeLayout(false);

                #endregion

                this.PerformLayout();

                while (!this.splashScreen.IsDone)
                    System.Threading.Thread.Sleep(50);

                // Force initial render to avoid showing random contents of frame buffer to user.
                c_oWorldWindow.Render();
                WorldWindow.Focus();

                #region OM Forked Process configuration

                if (IsRunningAsDapClient)
                {
                    c_oLayerList.OMFeaturesEnabled = true;
                    this.MinimizeBox = false;

                    if (oAoi != null && !string.IsNullOrEmpty(strAoiCoordinateSystem))
                    {
                        s_oOMMapExtentNative = oAoi;
                        s_strAoiCoordinateSystem = strAoiCoordinateSystem;
                        s_strOpenMapFileName = strMapFileName;

                        s_oOMMapExtentWGS84 = s_oOMMapExtentNative.Clone() as GeographicBoundingBox;
                        s_oMontajRemoteInterface.ProjectBoundingRectangle(strAoiCoordinateSystem, ref s_oOMMapExtentWGS84.West, ref s_oOMMapExtentWGS84.South, ref s_oOMMapExtentWGS84.East, ref s_oOMMapExtentWGS84.North, Dapple.Extract.Resolution.WGS_84);
                    }
                    s_eClientType = eClientType;

                    c_miLastView.Enabled = false;
                    c_miLastView.Visible = false;
                    c_miDappleHelp.Visible = false;
                    c_miDappleHelp.Enabled = false;
                    toolStripSeparator10.Visible = false;
                    c_miOpenImage.Visible = false;
                    c_miOpenImage.Enabled = false;
                    c_miOpenKeyhole.Visible = false;
                    c_miOpenKeyhole.Enabled = false;

                    // Hide and disable the file menu
                    c_miFile.Visible = false;
                    c_miFile.Enabled = false;
                    c_miOpenSavedView.Visible = false;
                    c_miOpenSavedView.Enabled = false;
                    c_miOpenHomeView.Visible = false;
                    c_miOpenHomeView.Enabled = false;
                    c_miSetHomeView.Visible = false;
                    c_miSetHomeView.Enabled = false;
                    c_miSaveView.Visible = false;
                    c_miSaveView.Enabled = false;
                    c_miSendViewTo.Visible = false;
                    c_miSendViewTo.Enabled = false;
                    c_miOpenKeyhole.Visible = false;
                    c_miOpenKeyhole.Enabled = false;

                    // Show the OM help menu
                    c_miGetDatahelp.Enabled = true;
                    c_miGetDatahelp.Visible = true;

                    // Don't let the user check for updates.  EVER.
                    c_miCheckForUpdates.Visible = false;
                    c_miCheckForUpdates.Enabled = false;
                }
                else
                {
                    c_miExtractLayers.Visible = false;
                    c_miExtractLayers.Enabled = false;
                }

                #endregion

                loadCountryList();
                populateAoiComboBox();
                LoadMRUList();
                CenterNavigationToolStrip();
                //#if !DEBUG

                c_tbSearchKeywords.Text = NO_SEARCH;
            }
            //#endif
        }
Пример #30
0
 internal WMSRootModelNode(DappleModel oModel)
     : base(oModel)
 {
     MarkLoaded();
 }
Пример #31
0
        internal WMSLayerModelNode(DappleModel oModel, WMSLayer oData)
            : base(oModel)
        {
            m_oData = oData;
            m_oBounds = new GeographicBoundingBox((double)m_oData.North, (double)m_oData.South, (double)m_oData.West, (double)m_oData.East);

            m_oViewLegend = new ToolStripMenuItem("View Legend...", IconKeys.ImageList.Images[IconKeys.ViewLegendMenuItem], new EventHandler(c_miViewLegend_Click));

            MarkLoaded();
        }
Пример #32
0
 internal void Attach(DappleModel oModel, LayerList oList)
 {
     m_oModel = oModel;
     m_hLayerList = oList;
 }
Пример #33
0
 internal override LayerBuilder getBuilder(DappleModel oModel)
 {
     if (String.Compare(m_oServer.Host, VirtualEarthMapType.road.ToString(), true) == 0)
         return new VEQuadLayerBuilder("Virtual Earth Map", VirtualEarthMapType.road, MainForm.WorldWindowSingleton, true, null);
     else if (String.Compare(m_oServer.Host, VirtualEarthMapType.aerial.ToString(), true) == 0)
         return new VEQuadLayerBuilder("Virtual Earth Satellite", VirtualEarthMapType.aerial, MainForm.WorldWindowSingleton, true, null);
     else if (String.Compare(m_oServer.Host, VirtualEarthMapType.hybrid.ToString(), true) == 0)
         return new VEQuadLayerBuilder("Virtual Earth Map & Satellite", VirtualEarthMapType.hybrid, MainForm.WorldWindowSingleton, true, null);
     else
         return null;
 }
Пример #34
0
 internal ArcIMSServiceModelNode(DappleModel oModel, String strServiceName, CultureInfo oCultureInfo)
     : base(oModel)
 {
     m_strServiceName = strServiceName;
     m_oCultureInfo   = oCultureInfo;
 }
Пример #35
0
 internal ImageTileSetRootModelNode(DappleModel oModel)
     : base(oModel)
 {
     MarkLoaded();
 }
Пример #36
0
 internal DapServerRootModelNode(DappleModel oModel)
     : base(oModel)
 {
     MarkLoaded();
 }
Пример #37
0
 internal LoadingModelNode(DappleModel oModel)
     : base(oModel, "Loading...")
 {
 }
Пример #38
0
 internal ImageTileSetRootModelNode(DappleModel oModel)
     : base(oModel)
 {
     MarkLoaded();
 }
Пример #39
0
        internal DapDirectoryModelNode(DappleModel oModel, CatalogFolder oFolder)
            : base(oModel)
        {
            m_oFolder = oFolder;

            foreach (CatalogFolder oSubFolder in m_oFolder.Folders)
            {
                AddChildSilently(new DapDirectoryModelNode(m_oModel, oSubFolder));
            }
        }
Пример #40
0
 internal LayerModelNode(DappleModel oModel)
     : base(oModel)
 {
 }
Пример #41
0
 internal DapBrowserMapModelNode(DappleModel oModel, Server oData)
     : base(oModel)
 {
     m_oData = oData;
 }
Пример #42
0
        internal override LayerBuilder getBuilder(DappleModel oModel)
        {
            DapServerModelNode oServerMN = oModel.AddDAPServer(m_oServer as DapServerUri, true, false, false) as DapServerModelNode;
            oServerMN.WaitForLoad();
            if (oServerMN.LoadState == LoadState.LoadFailed) return null;

            Geosoft.GX.DAPGetData.Server oServer = oServerMN.Server;
            return new DAPBrowserMapBuilder(MainForm.WorldWindowSingleton, oServer, null);
        }
Пример #43
0
 internal PersonalDapServerModelNode(DappleModel oModel)
     : base(oModel, new DapServerUri("http://localhost:10205/"), true)
 {
 }
Пример #44
0
 internal override LayerBuilder getBuilder(DappleModel oModel)
 {
     return new KML.KMLLayerBuilder(m_oServer.LocalPath, MainForm.WorldWindowSingleton, null);
 }
Пример #45
0
        internal override LayerBuilder getBuilder(DappleModel oModel)
        {
            WMSServerModelNode oServer = oModel.AddWMSServer(m_oServer as WMSServerUri, true, false, false) as WMSServerModelNode;
            if (oServer.Enabled == false)
                if (DialogResult.Yes == MessageBox.Show(String.Format(CultureInfo.InvariantCulture, "The WMS server {1} is in your server list, but is disabled.{2}'{0}' cannot be displayed unless the server is re-enabled.{2}{2}Do you wish to enable {1}?", getAttribute("layer"), m_oServer.ServerTreeDisplayName, Environment.NewLine),
                    "Server is Disabled", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1))
                    oModel.ToggleServer(oServer, true);
                else
                    return null;

            oServer.WaitForLoad();
            if (oServer.LoadState == LoadState.LoadFailed)
            {
                Program.ShowMessageBox(String.Format(CultureInfo.InvariantCulture, "'{0}' could not be added. Connection with the server at URL '{1}' failed. Refreshing the server from the Servers tab may resolve this problem.", getAttribute("layer"), m_oServer.ServerTreeDisplayName),
                    "Dataset Could Not Be Added", MessageBoxButtons.OK, MessageBoxDefaultButton.Button1, MessageBoxIcon.Error);
                return null;
            }

            WMSLayerModelNode oLayer = oServer.GetLayer(getAttribute("layer"));
            if (oLayer == null) throw new ArgumentException("'" + getAttribute("layer") + "' was not found. This dataset may have been deleted or moved." + Environment.NewLine + Environment.NewLine + "Please check with the publisher of " + m_oServer.ServerTreeDisplayName + " for more information.");
            WMSServerBuilder oDummyServer = new WMSServerBuilder(null, m_oServer as WMSServerUri, oServer.CapabilitiesFilename, true);
            return new WMSQuadLayerBuilder(oLayer.LayerData, MainForm.WorldWindowSingleton, oDummyServer, null);
        }
Пример #46
0
 internal ErrorModelNode(DappleModel oModel, String strMessage, String strAdditionalInfo)
     : base(oModel, strMessage)
 {
     m_strAdditionalInfo = strAdditionalInfo;
 }
Пример #47
0
        internal override LayerBuilder getBuilder(DappleModel oModel)
        {
            DataSet hDataSet = new DataSet();
            hDataSet.Name = getAttribute("datasetname");
            hDataSet.Url = m_oServer.ToBaseUri();
            hDataSet.Type = getAttribute("type");
            hDataSet.Title = getAttribute("title");
            hDataSet.Edition = getAttribute("edition");
            hDataSet.Hierarchy = getAttribute("hierarchy");

            if (hasAttribute("stylesheet"))
                hDataSet.Stylesheet = getAttribute("stylesheet");

            double minX, minY, maxX, maxY;
            if (!Double.TryParse(getAttribute("west"), NumberStyles.Any, CultureInfo.InvariantCulture, out minX)) return null;
            if (!Double.TryParse(getAttribute("south"), NumberStyles.Any, CultureInfo.InvariantCulture, out minY)) return null;
            if (!Double.TryParse(getAttribute("east"), NumberStyles.Any, CultureInfo.InvariantCulture, out maxX)) return null;
            if (!Double.TryParse(getAttribute("north"), NumberStyles.Any, CultureInfo.InvariantCulture, out maxY)) return null;
            hDataSet.Boundary = new Geosoft.Dap.Common.BoundingBox(maxX, maxY, minX, minY);

            int height, size, levels;
            double lvl0tilesize;
            if (!Int32.TryParse(getAttribute("height"), NumberStyles.Any, CultureInfo.InvariantCulture, out height)) return null;
            if (!Int32.TryParse(getAttribute("size"), NumberStyles.Any, CultureInfo.InvariantCulture, out size)) return null;
            if (!Int32.TryParse(getAttribute("levels"), NumberStyles.Any, CultureInfo.InvariantCulture, out levels)) return null;
            if (!Double.TryParse(getAttribute("lvl0tilesize"), NumberStyles.Any, CultureInfo.InvariantCulture, out lvl0tilesize)) return null;

            DapServerModelNode oServerMN = oModel.AddDAPServer(m_oServer as DapServerUri, true, false, false) as DapServerModelNode;
            oServerMN.WaitForLoad();
            if (oServerMN.LoadState == LoadState.LoadFailed) return null;

            Geosoft.GX.DAPGetData.Server oServer = oServerMN.Server;
            return new DAPQuadLayerBuilder(hDataSet, MainForm.WorldWindowSingleton, oServer, null, height, size, lvl0tilesize, levels);
        }
Пример #48
0
        internal VERootModelNode(DappleModel oModel)
            : base(oModel)
        {
            AddChildSilently(new VELayerModelNode(m_oModel, VELayerModelNode.VELayerType.Map));
            AddChildSilently(new VELayerModelNode(m_oModel, VELayerModelNode.VELayerType.Hybrid));
            AddChildSilently(new VELayerModelNode(m_oModel, VELayerModelNode.VELayerType.Satelite));

            MarkLoaded();
        }
Пример #49
0
 internal abstract LayerBuilder getBuilder(DappleModel oModel);
Пример #50
0
        internal MessageModelNode(DappleModel oModel, String strMessage)
            : base(oModel)
        {
            m_strMessage = strMessage;

            MarkLoaded();
        }
Пример #51
0
        internal override LayerBuilder getBuilder(DappleModel oModel)
        {
            GeographicBoundingBox oLayerBounds = new GeographicBoundingBox();
            bool blTerrainMapped;
            int iHeight, iLevels, iSize;
            double dLvl0Tilesie;

            if (!Double.TryParse(getAttribute("west"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.West)) return null;
            if (!Double.TryParse(getAttribute("south"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.South)) return null;
            if (!Double.TryParse(getAttribute("east"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.East)) return null;
            if (!Double.TryParse(getAttribute("north"), NumberStyles.Any, CultureInfo.InvariantCulture, out oLayerBounds.North)) return null;
            if (!Int32.TryParse(getAttribute("height"), NumberStyles.Any, CultureInfo.InvariantCulture, out iHeight)) return null;
            if (!Int32.TryParse(getAttribute("levels"), NumberStyles.Any, CultureInfo.InvariantCulture, out iLevels)) return null;
            if (!Int32.TryParse(getAttribute("size"), NumberStyles.Any, CultureInfo.InvariantCulture, out iSize)) return null;
            if (!Boolean.TryParse(getAttribute("terrainmapped"), out blTerrainMapped)) return null;
            if (!Double.TryParse(getAttribute("lvl0tilesize"), NumberStyles.Any, CultureInfo.InvariantCulture, out dLvl0Tilesie)) return null;

            return new NltQuadLayerBuilder(
                getAttribute("name"),
                iHeight,
                blTerrainMapped,
                oLayerBounds,
                dLvl0Tilesie,
                iLevels,
                iSize,
                m_oServer.ToBaseUri(),
                getAttribute("datasetname"),
                getAttribute("imgfileext"),
                255,
                MainForm.WorldWindowSingleton,
                null);
        }
Пример #52
0
 internal ErrorModelNode(DappleModel oModel, String strMessage, String strAdditionalInfo)
     : base(oModel, strMessage)
 {
     m_strAdditionalInfo = strAdditionalInfo;
 }
Пример #53
0
        internal ImageTileSetModelNode(DappleModel oModel, String strName)
            : base(oModel)
        {
            m_strName = strName;

            MarkLoaded();
        }
Пример #54
0
 internal InformationModelNode(DappleModel oModel, String strMessage)
     : base(oModel, strMessage)
 {
 }
Пример #55
0
 internal PersonalDapServerModelNode(DappleModel oModel)
     : base(oModel, new DapServerUri("http://localhost:10205/"), true)
 {
 }
Пример #56
0
 internal InformationModelNode(DappleModel oModel, String strMessage)
     : base(oModel, strMessage)
 {
 }