Beispiel #1
0
        private ContextMenuStrip CalculationGroupContextContextMenuStrip(ClosingStructuresCalculationGroupContext context,
                                                                         object parentData,
                                                                         TreeViewControl treeViewControl)
        {
            CalculationGroup group         = context.WrappedData;
            IInquiryHelper   inquiryHelper = GetInquiryHelper();
            var  builder       = new RiskeerContextMenuBuilder(Gui.Get(context, treeViewControl));
            bool isNestedGroup = parentData is ClosingStructuresCalculationGroupContext;

            StructuresCalculation <ClosingStructuresInput>[] calculations = group
                                                                            .GetCalculations()
                                                                            .Cast <StructuresCalculation <ClosingStructuresInput> >().ToArray();

            if (!isNestedGroup)
            {
                builder.AddOpenItem()
                .AddSeparator();
            }

            builder.AddImportItem()
            .AddExportItem()
            .AddSeparator();

            if (isNestedGroup)
            {
                builder.AddDuplicateCalculationItem(group, context)
                .AddSeparator();
            }
            else
            {
                builder.AddCustomItem(CreateGenerateClosingStructuresCalculationsItem(context))
                .AddSeparator();
            }

            builder.AddCreateCalculationGroupItem(group)
            .AddCreateCalculationItem(context, AddCalculation, CalculationType.Probabilistic)
            .AddSeparator();

            if (isNestedGroup)
            {
                builder.AddRenameItem();
            }

            builder.AddUpdateForeshoreProfileOfCalculationsItem(calculations, inquiryHelper,
                                                                SynchronizeCalculationWithForeshoreProfileHelper.UpdateForeshoreProfileDerivedCalculationInput)
            .AddCustomItem(CreateUpdateAllStructuresItem(calculations))
            .AddSeparator()
            .AddValidateAllCalculationsInGroupItem(
                context,
                ValidateAllInCalculationGroup,
                EnableValidateAndCalculateMenuItemForCalculationGroup)
            .AddPerformAllCalculationsInGroupItem(
                context,
                CalculateAllInCalculationGroup,
                EnableValidateAndCalculateMenuItemForCalculationGroup)
            .AddSeparator()
            .AddClearAllCalculationOutputInGroupItem(group)
            .AddClearIllustrationPointsOfCalculationsInGroupItem(() => IllustrationPointsHelper.HasIllustrationPoints(calculations),
                                                                 CreateChangeHandler(inquiryHelper, calculations));

            if (isNestedGroup)
            {
                builder.AddDeleteItem();
            }
            else
            {
                builder.AddRemoveAllChildrenItem();
            }

            return(builder.AddSeparator()
                   .AddCollapseAllItem()
                   .AddExpandAllItem()
                   .AddSeparator()
                   .AddPropertiesItem()
                   .Build());
        }
Beispiel #2
0
        private ContextMenuStrip CalculationGroupContextContextMenuStrip(WaveImpactAsphaltCoverCalculationGroupContext nodeData,
                                                                         object parentData, TreeViewControl treeViewControl)
        {
            CalculationGroup group         = nodeData.WrappedData;
            IInquiryHelper   inquiryHelper = GetInquiryHelper();

            var  builder       = new RiskeerContextMenuBuilder(Gui.Get(nodeData, treeViewControl));
            bool isNestedGroup = parentData is WaveImpactAsphaltCoverCalculationGroupContext;

            WaveImpactAsphaltCoverWaveConditionsCalculation[] calculations = group
                                                                             .GetCalculations()
                                                                             .OfType <WaveImpactAsphaltCoverWaveConditionsCalculation>().ToArray();

            StrictContextMenuItem generateCalculationsItem = CreateGenerateWaveConditionsCalculationsItem(nodeData);

            builder.AddImportItem()
            .AddExportItem()
            .AddSeparator();

            if (isNestedGroup)
            {
                builder.AddDuplicateCalculationItem(group, nodeData)
                .AddSeparator();
            }
            else
            {
                builder.AddCustomItem(generateCalculationsItem)
                .AddSeparator();
            }

            builder.AddCreateCalculationGroupItem(group)
            .AddCreateCalculationItem(nodeData, AddWaveConditionsCalculation, CalculationType.Hydraulic)
            .AddSeparator();

            if (isNestedGroup)
            {
                builder.AddRenameItem();
            }

            builder.AddUpdateForeshoreProfileOfCalculationsItem(calculations, inquiryHelper,
                                                                SynchronizeCalculationWithForeshoreProfileHelper.UpdateForeshoreProfileDerivedCalculationInput)
            .AddSeparator()
            .AddValidateAllCalculationsInGroupItem(nodeData,
                                                   ValidateAllInCalculationGroup,
                                                   EnableValidateAndCalculateMenuItemForCalculationGroup)
            .AddPerformAllCalculationsInGroupItem(nodeData,
                                                  CalculateAllInCalculationGroup,
                                                  EnableValidateAndCalculateMenuItemForCalculationGroup)
            .AddSeparator()
            .AddClearAllCalculationOutputInGroupItem(group);

            if (isNestedGroup)
            {
                builder.AddDeleteItem();
            }
            else
            {
                builder.AddRemoveAllChildrenItem();
            }

            return(builder.AddSeparator()
                   .AddCollapseAllItem()
                   .AddExpandAllItem()
                   .AddSeparator()
                   .AddPropertiesItem()
                   .Build());
        }