예제 #1
0
        private void checkInButton_Click(object sender, EventArgs e)
        {
            _msg.Items.Add("CHECKING IN DATA..."); _msg.Refresh();
            ArcPad_CheckIn(_axf);

            // OPTIONAL: Display data in ArcMap.
            MiscClass.OpenDataInArcMap(_feats, ref _msg);
        }
예제 #2
0
        private void openAxfButton_Click(object sender, EventArgs e)
        {
            _msg.Items.Add("OPENING AXF..."); _msg.Refresh();
            MiscClass.OpenAxf(_axf);
            this.checkInButton.Enabled = true;

            _msg.Items.Add(">>>>>>>>>>>>>>>"); _msg.Refresh();
        }
예제 #3
0
        public ArcPadSampleForm()
        {
            InitializeComponent();

            _msg = this.msgListBox;

            this.checkOutButton.Enabled    = false;
            this.openAxfButton.Enabled     = false;
            this.checkInButton.Enabled     = false;
            this.pyOptionsGroupBox.Enabled = false;

            MiscClass.GetToolboxPath();
            _gpManaged = new Geoprocessor {
                OverwriteOutput = true
            };
            _gpUnManaged = new GeoProcessorClass {
                OverwriteOutput = true
            };
        }
예제 #4
0
        private void mxdButton_Click(object sender, EventArgs e)
        {
            _msg.Items.Add("PREPARING DATA..."); _msg.Refresh();
            _gdb = Path.Combine(MiscClass.Data, "Riverside.gdb");
            _axf = _gdb.Replace(".gdb", ".axf");

            _msg.Items.Add("GDB Path: ..\\" + MiscClass.SimplifyPath(_gdb, 3));
            _msg.Items.Add("AXF Path: ..\\" + MiscClass.SimplifyPath(_axf, 3)); _msg.Refresh();

            IWorkspace ws = MiscClass.OpenGeodatabaseWorkspace(_gdb);

            string[] gdbFeatures = MiscClass.GetFeatures(ws, ref _gpManaged);

            _feats = gdbFeatures.ToArray();
            foreach (string feat in _feats)
            {
                _msg.Items.Add("Feature Class: ..\\" + MiscClass.SimplifyPath(feat, 4)); _msg.Refresh();
            }

            this.checkOutButton.Enabled = true;
            _msg.Items.Add(">>>>>>>>>>>>>>>"); _msg.Refresh();
        }
예제 #5
0
        private static void ArcPad_CheckOut(string[] features, string axf, string schemaOnly = "#", string password = "******", string encrypt = "#")
        {
            if (_useArcObjects)
            {
                if (_useManaged)
                {
                    const String  tool       = "ArcPadCheckout_ArcPad";
                    IVariantArray parameters = new VarArrayClass();

                    parameters.Add(string.Join(";", features));
                    parameters.Add(schemaOnly);
                    parameters.Add(password);
                    parameters.Add(encrypt);
                    parameters.Add(axf);

                    if (File.Exists(axf))
                    {
                        File.Delete(axf);
                    }

                    try
                    {
                        _msg.Items.Add("Executing GP using Geoprocessor (Managed) class in ArcObjects");
                        //_gpManaged.AddToolbox(MiscClass.ArcPadTbxPath);
                        //_msg.Items.Add("Adding Toolbox ..\\" + MiscClass.SimplifyPath(MiscClass.ArcPadTbxPath, 4));
                        _msg.Refresh();

                        var pResult = (IGeoProcessorResult2)_gpManaged.Execute(tool, parameters, null);
                        Messages(pResult);
                    }
                    catch (Exception ex) { Messages(ex, ref _gpManaged); }
                    finally
                    {
                        _gpManaged.ClearMessages();
                        //_gpManaged.RemoveToolbox(MiscClass.ArcPadTbxPath);
                    }

                    parameters.RemoveAll();
                }
                else
                {
                    const String  tool       = "ArcPadCheckout_ArcPad";
                    IVariantArray parameters = new VarArrayClass();

                    parameters.Add(string.Join(";", features));
                    parameters.Add(schemaOnly);
                    parameters.Add(password);
                    parameters.Add(encrypt);
                    parameters.Add(axf);

                    if (File.Exists(axf))
                    {
                        File.Delete(axf);
                    }

                    try
                    {
                        _msg.Items.Add("Executing GP using IGeoProcessor (Un-Managed) class in ArcObjects");
                        //_gpUnManaged.AddToolbox(MiscClass.ArcPadTbxPath);
                        //_msg.Items.Add("Adding Toolbox ..\\" + MiscClass.SimplifyPath(MiscClass.ArcPadTbxPath, 4));
                        _msg.Refresh();

                        var pResult = (IGeoProcessorResult2)_gpUnManaged.Execute(tool, parameters, null);
                        Messages(pResult);
                    }
                    catch (Exception ex) { Messages(ex, ref _gpUnManaged); }
                    finally
                    {
                        _gpUnManaged.ClearMessages();
                        //_gpUnManaged.RemoveToolbox(MiscClass.ArcPadTbxPath);
                    }

                    parameters.RemoveAll();
                }
            }
            else
            {
                string pyPath = MiscClass.CreateCheckoutScript(features, axf, schemaOnly, password, encrypt, _useArcpy);

                if (File.Exists(axf))
                {
                    File.Delete(axf);
                }

                _msg.Items.Add("Executing GP using " + ((_useArcpy) ? "arcpy" : "arcgisscripting") + " class in Python");
                _msg.Refresh();

                string command = string.Format("\"{0}\"", pyPath);
                string message = MiscClass.ExecuteCommand(command);

                if (message == string.Empty)
                {
                    _msg.Items.Add("Unhandled exception during execution. Most likely python exe crashed.");
                }
                Messages(message, new[] { '\r', '\n' });
            }
        }