コード例 #1
0
        private void OnPageClosing(PageCloseReasons_e reason, PageClosingArg arg)
        {
            if (reason == PageCloseReasons_e.Okay)
            {
                if (!m_Data.Macros.Macros.Macros.Any())
                {
                    arg.Cancel       = true;
                    arg.ErrorMessage = "Select macros to run";
                }

                switch (m_Data.Input.Scope)
                {
                case InputScope_e.Selection:
                    if (!m_Data.Input.Components.Any())
                    {
                        arg.Cancel       = true;
                        arg.ErrorMessage = "Select components to process";
                    }
                    break;

                case InputScope_e.AllReferences:
                    if (!m_Data.Input.AllDocuments.References.Any(d => d.IsChecked))
                    {
                        arg.Cancel       = true;
                        arg.ErrorMessage = "Select at least one reference to process";
                    }
                    break;
                }
            }
        }
コード例 #2
0
ファイル: SwAddInSample.cs プロジェクト: persadewh/xcad
 private void OnClosed(PageCloseReasons_e reason)
 {
     if (reason == PageCloseReasons_e.Okay)
     {
         //var feat = Application.Documents.Active.Features.CreateCustomFeature<SimpleMacroFeature>();
         var feat = Application.Documents.Active.Features.CreateCustomFeature <SampleMacroFeature, PmpMacroFeatData>(m_MacroFeatPmpData);
     }
 }
コード例 #3
0
 private void OnPageClosing(PageCloseReasons_e reason, PageClosingArg arg)
 {
     if (m_LastError != null)
     {
         arg.ErrorMessage = m_LastError.Message;
         arg.Cancel       = true;
     }
 }
コード例 #4
0
        private void OnPageClosed(PageCloseReasons_e reason)
        {
            if (reason == PageCloseReasons_e.Okay)
            {
                try
                {
                    IXDocument[] docs    = null;
                    var          rootDoc = m_Data.Input.Document;

                    switch (m_Data.Input.Scope)
                    {
                    case InputScope_e.AllReferences:
                        docs = m_Data.Input.AllDocuments.References
                               .Where(d => d.IsChecked).Select(d => d.Document).ToArray();
                        break;

                    case InputScope_e.Selection:
                        docs = m_Data.Input.Components
                               .Distinct(new ComponentDocumentSafeEqualityComparer())
                               .Select(c => c.ReferencedDocument).ToArray();
                        break;

                    default:
                        throw new NotSupportedException();
                    }

                    var input = docs.ToList();
                    ProcessInput?.Invoke(m_Host.Extension.Application, input);

                    var exec = new AssemblyBatchRunJobExecutor(m_Host.Extension.Application, m_MacroRunnerSvc,
                                                               input.ToArray(), m_Logger, m_Data.Macros.Macros.Macros.Select(x => x.Data).ToArray(),
                                                               m_Data.Options.ActivateDocuments, m_Data.Options.AllowReadOnly,
                                                               m_Data.Options.AllowRapid, m_Data.Options.AutoSave);

                    var vm = new JobResultVM(rootDoc.Title, exec, m_CadDesc, m_Logger);

                    using (var cancelHandler = new EscapeBatchExecutorCancelHandler(exec, m_Host.Extension.Application, m_Dispatcher))
                    {
                        vm.TryRunBatch();
                    }

                    var wnd = m_Host.Extension.CreatePopupWindow <ResultsWindow>();
                    wnd.Control.Title       = $"{rootDoc.Title} batch job result";
                    wnd.Control.DataContext = vm;
                    wnd.Show();
                }
                catch (OperationCanceledException)
                {
                }
                catch (Exception ex)
                {
                    m_Msg.ShowError(ex);
                    m_Logger.Log(ex);
                }
            }
        }
コード例 #5
0
 //---
 //--- Closed
 private void OnClosed(PageCloseReasons_e reason)
 {
     if (reason == PageCloseReasons_e.Okay)
     {
         //TODO: do work
     }
     else
     {
         //TODO: release resources
     }
 }
コード例 #6
0
ファイル: PMPageAddIn.cs プロジェクト: xarial/xcad-examples
        private void OnPageClosed(PageCloseReasons_e reason)
        {
            if (reason == PageCloseReasons_e.Okay)
            {
                var res = new StringBuilder();

                ComposeResult(m_Data, res, 0);

                Application.ShowMessageBox(res.ToString());
            }
        }
コード例 #7
0
ファイル: PMPageAddIn.cs プロジェクト: xarial/xcad-examples
 private void OnPageClosing(PageCloseReasons_e reason, PageClosingArg arg)
 {
     if (reason == PageCloseReasons_e.Okay)
     {
         if (m_Data.DisableClosing)
         {
             arg.Cancel       = true;
             arg.ErrorTitle   = "xCAD.NET PMPage Example";
             arg.ErrorMessage = m_Data.CloseErrorMessage;
         }
     }
 }
コード例 #8
0
 //---
 //--- Closing
 private void OnClosing(PageCloseReasons_e reason, PageClosingArg arg)
 {
     if (reason == PageCloseReasons_e.Okay)
     {
         if (string.IsNullOrEmpty(m_Data.Text))
         {
             arg.Cancel       = true;
             arg.ErrorTitle   = "Insert Note Error";
             arg.ErrorMessage = "Please specify the note text";
         }
     }
 }
コード例 #9
0
        private void OnPageClosing(PageCloseReasons_e reason, PageClosingArg arg)
        {
            if (reason == PageCloseReasons_e.Okay)
            {
                if (!m_Data.Macros.Macros.Any())
                {
                    arg.Cancel       = true;
                    arg.ErrorMessage = "Select macros to run";
                }

                if (!m_Data.Components.Any() && !m_Data.ProcessAllFiles)
                {
                    arg.Cancel       = true;
                    arg.ErrorMessage = "Select components to process";
                }
            }
        }
コード例 #10
0
 private void OnInsertQrCodePageClosing(PageCloseReasons_e reason, PageClosingArg arg)
 {
     if (reason == PageCloseReasons_e.Okay)
     {
         try
         {
             if (string.IsNullOrEmpty(m_QrDataProvider.GetData(m_CurDrawing, m_CurInsertQrCodePageData.Source)))
             {
                 throw new UserException("Data for QR code is empty");
             }
         }
         catch (Exception ex)
         {
             m_Logger.Log(ex);
             arg.Cancel       = true;
             arg.ErrorMessage = ex.ParseUserError();
         }
     }
 }
コード例 #11
0
        private void OnPageClosed(PageCloseReasons_e reason)
        {
            var data = Definition.ConvertPageToParams(m_CurPageData);

            EditingCompleted?.Invoke(m_App, CurModel, m_EditingFeature, data, m_CurPageData, reason);

            ShowEditBodies();

            HidePreviewBodies();

            m_PreviewBodies = null;

            if (reason == PageCloseReasons_e.Okay)
            {
                if (m_EditingFeature == null)
                {
                    var feat = CurModel.Features.PreCreateCustomFeature <TData>();
                    feat.DefinitionType = m_DefType;
                    feat.Parameters     = data;
                    CurModel.Features.Add(feat);

                    if (feat == null)
                    {
                        throw new NullReferenceException("Failed to create custom feature");
                    }

                    FeatureInserted?.Invoke(m_App, CurModel, feat, data, m_CurPageData);
                }
                else
                {
                    m_EditingFeature.Parameters = data;
                }
            }
            else
            {
                if (m_EditingFeature != null)
                {
                    m_EditingFeature.Parameters = null;
                }
            }
        }
コード例 #12
0
        private void OnPageClosed(PageCloseReasons_e reason)
        {
            EditingCompleted?.Invoke(m_App, CurModel, m_EditingFeature);

            foreach (var body in m_EditBodies.ValueOrEmpty())
            {
                body.Visible = true;
            }

            HidePreviewBodies();

            m_EditBodies    = null;
            m_PreviewBodies = null;

            if (reason == PageCloseReasons_e.Okay)
            {
                if (m_EditingFeature == null)
                {
                    var feat = CurModel.Features.PreCreateCustomFeature <TData>();
                    feat.DefinitionType = m_DefType;
                    feat.Parameters     = Definition.ConvertPageToParams(m_CurData);
                    CurModel.Features.Add(feat);

                    if (feat == null)
                    {
                        throw new NullReferenceException("Failed to create custom feature");
                    }
                }
                else
                {
                    m_EditingFeature.Parameters = Definition.ConvertPageToParams(m_CurData);
                }
            }
            else
            {
                if (m_EditingFeature != null)
                {
                    m_EditingFeature.Parameters = null;
                }
            }
        }
コード例 #13
0
        private void OnPageClosing(PageCloseReasons_e reason, PageClosingArg arg)
        {
            if (EditingCompleting != null)
            {
                try
                {
                    var data = Definition.ConvertPageToParams(m_CurPageData);
                    EditingCompleting.Invoke(m_App, CurModel, m_EditingFeature, data, m_CurPageData, reason);
                }
                catch (Exception ex)
                {
                    m_LastError = ex;
                }
            }

            if (m_LastError != null)
            {
                arg.ErrorMessage = m_LastError.Message;
                arg.Cancel       = true;
            }
        }
コード例 #14
0
        private void OnInserQrCodePageClosed(PageCloseReasons_e reason)
        {
            try
            {
                m_CurPreviewer.Dispose();
                m_CurPreviewer = null;

                if (reason == PageCloseReasons_e.Okay)
                {
                    OnInsertQrCode();
                }
                else if (reason == PageCloseReasons_e.Cancel)
                {
                    OnCancelInsertQrCode();
                }
            }
            catch (Exception ex)
            {
                m_Logger.Log(ex);
                m_MsgSvc.ShowError(ex);
            }
        }
コード例 #15
0
        private void OnPageClosed(PageCloseReasons_e reason)
        {
            if (reason == PageCloseReasons_e.Okay)
            {
                try
                {
                    IXDocument[] docs = null;
                    var          assm = m_Host.Extension.Application.Documents.Active as IXAssembly;

                    if (m_Data.ProcessAllFiles)
                    {
                        docs = assm.Dependencies;
                    }
                    else
                    {
                        docs = m_Data.Components.Select(c => c.Document)
                               .Distinct(new DocumentEqualityComparer()).ToArray();
                    }

                    var exec = new AssemblyBatchRunJobExecutor(m_Host.Extension.Application, m_MacroRunnerSvc,
                                                               docs, m_Data.Macros.Macros, m_Data.ActivateDocuments);

                    var vm = new JobResultVM(assm.Title, exec);

                    exec.ExecuteAsync().Wait();

                    var wnd = m_Host.Extension.CreatePopupWindow <ResultsWindow>();
                    wnd.Control.Title       = $"{assm.Title} batch job result";
                    wnd.Control.DataContext = vm;
                    wnd.Show();
                }
                catch (Exception ex)
                {
                    m_Msg.ShowError(ex.ParseUserError(out string callStack));
                    m_Logger.Log(callStack);
                }
            }
        }
コード例 #16
0
        private void OnClosed(PageCloseReasons_e reason)
        {
            var selGrp = m_DataModelCascading.Groups;

            var selOpt = default(Enum);

            switch (selGrp)
            {
            case Groups_e.GroupA:
                selOpt = m_DataModelCascading.GroupA;
                break;

            case Groups_e.GroupB:
                selOpt = m_DataModelCascading.GroupB;
                break;

            case Groups_e.GroupC:
                selOpt = m_DataModelCascading.GroupC;
                break;
            }

            Application.ShowMessageBox($"Selected group: {selGrp}, selected option {selOpt}");
        }
コード例 #17
0
 public override void OnEditingCompleted(IXApplication app, IXDocument doc, IXCustomFeature <CabinetSizeData> feat,
                                         CabinetSizeData data, CabinetConfiguratorPage page, PageCloseReasons_e reason)
 {
     page.Order.Db.Dispose();
 }
コード例 #18
0
ファイル: Overview.cs プロジェクト: xarial/xcad
 private void OnPageClosed(PageCloseReasons_e reason)
 {
     Debug.Print($"Text: {m_Data.Simple.Text}");
     Debug.Print($"Size: {m_Data.Simple.Size}");
     Debug.Print($"Number: {m_Data.Simple.Number}");
 }
コード例 #19
0
 private void OnToggleGroupPageClosed(PageCloseReasons_e reason)
 {
 }
コード例 #20
0
 private void OnComboBoxPageClosed(PageCloseReasons_e reason)
 {
     var x = m_PmpComboBoxData;
 }
コード例 #21
0
ファイル: SwAddInSample.cs プロジェクト: persadewh/xcad
 private void OnPage1Closed(PageCloseReasons_e reason)
 {
 }