예제 #1
0
 private static void SetPositionText(TextBox t, double value)
 {
     if (t != null)
     {
         t.Text = GUIConversion.GetLengthMeasureText(value);
     }
 }
예제 #2
0
 public void InitializeMargins(double top, double left, double bottom, double right)
 {
     _edTopMargin.Text    = GUIConversion.ToString(top);
     _edBottomMargin.Text = GUIConversion.ToString(bottom);
     _edRightMargin.Text  = GUIConversion.ToString(right);
     _edLeftMargin.Text   = GUIConversion.ToString(left);
 }
예제 #3
0
        public override bool Apply(bool disposeController)
        {
            _doc.Font               = _view.LabelFont;
            _doc.Brush              = _view.LabelMaterial;
            _doc.AlignmentX         = (Alignment)_alignmentChoicesX.FirstSelectedNode.Tag;
            _doc.AlignmentY         = (Alignment)_alignmentChoicesY.FirstSelectedNode.Tag;
            _doc.AlignmentZ         = (Alignment)_alignmentChoicesZ.FirstSelectedNode.Tag;
            _doc.AutomaticAlignment = _view.AutomaticAlignment;
            _doc.RotationX          = _view.RotationX;
            _doc.RotationY          = _view.RotationY;
            _doc.RotationZ          = _view.RotationZ;
            _doc.OffsetX            = _view.OffsetX;
            _doc.OffsetY            = _view.OffsetY;
            _doc.OffsetZ            = _view.OffsetZ;
            _doc.BackgroundStyle    = _view.Background;

            if (GUIConversion.TryParseMultipleAltaxoVariant(_view.SuppressedLabelsByValue, out var varVals))
            {
                _doc.SuppressedLabels.ByValues.Clear();
                foreach (AltaxoVariant v in varVals)
                {
                    _doc.SuppressedLabels.ByValues.Add(v);
                }
            }
            else
            {
                return(false);
            }

            if (GUIConversion.TryParseMultipleInt32(_view.SuppressedLabelsByNumber, out var intVals))
            {
                _doc.SuppressedLabels.ByNumbers.Clear();
                foreach (int v in intVals)
                {
                    _doc.SuppressedLabels.ByNumbers.Add(v);
                }
            }
            else
            {
                return(false);
            }

            _doc.PrefixText = _view.PrefixText;
            _doc.SuffixText = _view.PostfixText;

            var labelSideNode = _labelSides.FirstSelectedNode;

            if (null != labelSideNode)
            {
                _doc.LabelSide = (CSAxisSide?)labelSideNode.Tag;
            }

            if (null != _labelFormattingSpecificController && !_labelFormattingSpecificController.Apply(disposeController))
            {
                return(false);
            }

            return(ApplyEnd(true, disposeController));
        }
예제 #4
0
        public virtual bool EhValue3Changed(string txt)
        {
            if (!GUIConversion.IsTimeSpan(txt))
            {
                return(true);
            }

            GUIConversion.IsTimeSpan(txt, out _span);
            return(false);
        }
예제 #5
0
 public bool EhRightMarginChanged(string val)
 {
     if (!GUIConversion.IsDouble(val, out var v))
     {
         Current.Gui.ErrorMessageBox("You have to provide an numeric value here");
         return(true);
     }
     _tempDoc.RightMargin = v / 100.0;
     return(false);
 }
예제 #6
0
        public override bool Apply(bool disposeController)
        {
            _doc.Font  = _view.LabelFont;
            _doc.Brush = _view.LabelBrush.Clone();
            _doc.HorizontalAlignment = (StringAlignment)_horizontalAlignmentChoices.FirstSelectedNode.Tag;
            _doc.VerticalAlignment   = (StringAlignment)_verticalAlignmentChoices.FirstSelectedNode.Tag;
            _doc.AutomaticAlignment  = _view.AutomaticAlignment;
            _doc.Rotation            = _view.Rotation;
            _doc.XOffset             = _view.XOffset;
            _doc.YOffset             = _view.YOffset;
            _doc.BackgroundStyle     = _view.Background;

            if (GUIConversion.TryParseMultipleAltaxoVariant(_view.SuppressedLabelsByValue, out var varVals))
            {
                _doc.SuppressedLabels.ByValues.Clear();
                foreach (AltaxoVariant v in varVals)
                {
                    _doc.SuppressedLabels.ByValues.Add(v);
                }
            }
            else
            {
                return(false);
            }

            if (GUIConversion.TryParseMultipleInt32(_view.SuppressedLabelsByNumber, out var intVals))
            {
                _doc.SuppressedLabels.ByNumbers.Clear();
                foreach (int v in intVals)
                {
                    _doc.SuppressedLabels.ByNumbers.Add(v);
                }
            }
            else
            {
                return(false);
            }

            _doc.PrefixText = _view.PrefixText;
            _doc.SuffixText = _view.PostfixText;

            var labelSideNode = _labelSides.FirstSelectedNode;

            if (null != labelSideNode)
            {
                _doc.LabelSide = (CSAxisSide?)labelSideNode.Tag;
            }

            if (null != _labelFormattingSpecificController && !_labelFormattingSpecificController.Apply(disposeController))
            {
                return(false);
            }

            return(ApplyEnd(true, disposeController));
        }
예제 #7
0
        protected override void Initialize(bool initData)
        {
            base.Initialize(initData);

            if (initData)
            {
                // Label sides
                _labelSides = new Collections.SelectableListNodeList
                {
                    new Collections.SelectableListNode("Automatic", null, null == _doc.LabelSide)
                };
                var list = new List <Collections.SelectableListNode>();
                if (_doc.CachedAxisInformation != null)
                {
                    list.Add(new Collections.SelectableListNode(_doc.CachedAxisInformation.NameOfFirstDownSide, CSAxisSide.FirstDown, _doc.LabelSide == CSAxisSide.FirstDown));
                    list.Add(new Collections.SelectableListNode(_doc.CachedAxisInformation.NameOfFirstUpSide, CSAxisSide.FirstUp, _doc.LabelSide == CSAxisSide.FirstUp));
                }
                list.Sort((x, y) => string.Compare(x.Text, y.Text));
                _labelSides.AddRange(list);

                // horizontal and vertical alignment
                _horizontalAlignmentChoices = new Collections.SelectableListNodeList(_doc.HorizontalAlignment);
                _verticalAlignmentChoices   = new Collections.SelectableListNodeList(_doc.VerticalAlignment);

                // label formatting type
                var labelTypes = Altaxo.Main.Services.ReflectionService.GetNonAbstractSubclassesOf(typeof(Altaxo.Graph.Gdi.LabelFormatting.ILabelFormatting));
                _labelStyles = new Collections.SelectableListNodeList();
                for (int i = 0; i < labelTypes.Length; ++i)
                {
                    _labelStyles.Add(new Collections.SelectableListNode(labelTypes[i].Name, labelTypes[i], labelTypes[i] == _doc.LabelFormat.GetType()));
                }

                _labelFormattingSpecificController = (IMVCANController)Current.Gui.GetControllerAndControl(new object[] { _doc.LabelFormat }, typeof(IMVCANController), UseDocument.Directly);
            }

            if (null != _view)
            {
                _view.LabelFont  = _doc.Font;
                _view.LabelBrush = _doc.Brush.Clone();
                _view.HorizontalAlignment_Initialize(_horizontalAlignmentChoices);
                _view.VerticalAlignment_Initialize(_verticalAlignmentChoices);
                _view.AutomaticAlignment       = _doc.AutomaticAlignment;
                _view.Rotation                 = (float)_doc.Rotation;
                _view.XOffset                  = _doc.XOffset;
                _view.YOffset                  = _doc.YOffset;
                _view.Background               = _doc.BackgroundStyle;
                _view.SuppressedLabelsByValue  = GUIConversion.ToString(_doc.SuppressedLabels.ByValues);
                _view.SuppressedLabelsByNumber = GUIConversion.ToString(_doc.SuppressedLabels.ByNumbers);
                _view.PrefixText               = _doc.PrefixText;
                _view.PostfixText              = _doc.SuffixText;
                _view.LabelSides               = _labelSides;
                _view.LabelStyle_Initialize(_labelStyles);
                _view.LabelFormattingSpecificGuiControl = null == _labelFormattingSpecificController ? null : _labelFormattingSpecificController.ViewObject;
            }
        }
 void ILayerPositionViewEventSink.EhView_TopChanged(string txt, ref bool bCancel)
 {
     if (m_TopType == XYPlotLayerPositionType.AbsoluteValue)
     {
         bCancel = !GUIConversion.GetLengthMeasureValue(txt, ref m_Top);
     }
     else
     {
         bCancel = !GUIConversion.GetPercentMeasureValue(txt, ref m_Top);
     }
 }
예제 #9
0
 private void EhMajorSpanValidating(string txt, CancelEventArgs e)
 {
     if (GUIConversion.IsDoubleOrNull(txt, out var val))
     {
         _doc.MajorTickSpan = val;
     }
     else
     {
         e.Cancel = true;
     }
 }
예제 #10
0
        public virtual bool EhValue2Changed(string txt)
        {
            if (!GUIConversion.IsDateTime(txt))
            {
                return(true);
            }

            GUIConversion.IsDateTime(txt, out _end);
            _endChanged = true;
            return(false);
        }
        public virtual bool EhValue1Changed(string txt)
        {
            if (!GUIConversion.IsDouble(txt))
            {
                return(true);
            }

            GUIConversion.IsDouble(txt, out _org);
            _orgChanged = true;
            return(false);
        }
예제 #12
0
 private void EhMinorTicksValidating(string txt, CancelEventArgs e)
 {
     if (GUIConversion.IsInt32OrNull(txt, out var val))
     {
         _doc.MinorTicks = val;
     }
     else
     {
         e.Cancel = true;
     }
 }
예제 #13
0
 private void EhMajorSpanValidating(string txt, CancelEventArgs e)
 {
     if (GUIConversion.IsInt32OrNull(txt, out var val))
     {
         _doc.DecadesPerMajorTick = val;
     }
     else
     {
         e.Cancel = true;
     }
 }
예제 #14
0
 public void EhView_HeightChanged(string txt, ref bool bCancel)
 {
     if (m_HeightType == XYPlotLayerSizeType.AbsoluteValue)
     {
         bCancel = !GUIConversion.GetLengthMeasureValue(txt, ref m_Height);
     }
     else
     {
         bCancel = !GUIConversion.GetPercentMeasureValue(txt, ref m_Height);
     }
 }
예제 #15
0
        public bool EhBottomMarginChanged(string val)
        {
            double v;

            if (!GUIConversion.IsDouble(val, out v))
            {
                Current.Gui.ErrorMessageBox("You have to provide an numeric value here");
                return(true);
            }
            _tempDoc.BottomMargin = v;
            return(false);
        }
예제 #16
0
 private void EhIntervalValidating(CancelEventArgs e)
 {
     if (_currentMethod == EquallySpacedIntervalSpecificationMethod.StartEndInterval)
     {
         if (((_end > _start) && _interval < 0) || ((_end < _start) && _interval > 0))
         {
             _interval = -_interval;
             _count    = GetCount();
         }
         RoundCountToIntegerAndAdjustInterval();
         _view.InitializeInterval(GUIConversion.ToString(_interval));
         _view.InitializeCount(GUIConversion.ToString(_count));
     }
 }
예제 #17
0
        private void _edNumberOfColumns_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            int val;

            if (!GUIConversion.IsInteger(this._edNumberOfColumns.Text, out val))
            {
                e.Cancel = true;
                return;
            }

            if (_controller != null)
            {
                e.Cancel |= _controller.EhNumberOfColumnsChanged(val);
            }
        }
예제 #18
0
        private void EhIntervalChanged(string text)
        {
            if (_currentMethod == EquallySpacedIntervalSpecificationMethod.StartEndCount)
            {
                return;
            }

            if (!GUIConversion.IsDouble(text, out var interval))
            {
                return;
            }
            _interval = interval;

            ChangeDependentVariable();
        }
        public override bool EhValue3Changed(string txt)
        {
            if (!GUIConversion.IsDouble(txt))
            {
                return(true);
            }

            double val;

            GUIConversion.IsDouble(txt, out val);
            if (val > 0)
            {
                _span = val;
            }
            return(val <= 0);
        }
예제 #20
0
        public bool EhColumnSpacingChanged(string val)
        {
            if (!GUIConversion.IsDouble(val, out var v))
            {
                Current.Gui.ErrorMessageBox("You have to provide an numeric value here");
                return(true);
            }
            if (v < 0)
            {
                Current.Gui.ErrorMessageBox("Please provide a value >=0 here");
                return(true);
            }

            _tempDoc.ColumnSpacing = v / 100.0;
            return(false);
        }
예제 #21
0
        protected virtual void InitView()
        {
            _view.SetLabel1("Org:");
            _view.SetLabel2("End:");
            _view.SetLabel3("Span:");

            _view.SetChoice1(_choices, (int)_orgRescaling);
            _view.SetChoice2(_choices, (int)_endRescaling);
            _view.SetChoice3(_choices, (int)_spanRescaling);


            _view.SetValue1(GUIConversion.ToString(_org));
            _view.SetValue2(GUIConversion.ToString(_end));
            _view.SetValue3(GUIConversion.ToString(_span));

            SetEnableState();
        }
예제 #22
0
        private void EhCountValidating(CancelEventArgs e)
        {
            switch (_currentMethod)
            {
            case EquallySpacedIntervalSpecificationMethod.StartCountInterval:
            case EquallySpacedIntervalSpecificationMethod.EndCountInterval:
                RoundCountToInteger();
                _view.InitializeCount(GUIConversion.ToString(_count));
                break;

            case EquallySpacedIntervalSpecificationMethod.StartEndCount:
                RoundCountToIntegerAndAdjustInterval();
                _view.InitializeInterval(GUIConversion.ToString(_interval));
                _view.InitializeCount(GUIConversion.ToString(_count));
                break;
            }
        }
예제 #23
0
        protected override void Initialize(bool initData)
        {
            base.Initialize(initData);
            if (initData)
            {
                _currentMethod = _doc.Method;
                _start         = _doc.Start;
                _end           = _doc.End;
                _count         = _doc.Count;
                _interval      = _doc.Interval;
            }
            if (null != _view)
            {
                _view.InitializeMethod(_currentMethod);
                EhMethodChanged(_currentMethod);

                // Start, End, Count, Interval initialisieren
                string sStart = null, sEnd = null, sCount = null, sInterval = null;

                if (!double.IsNaN(_start))
                {
                    sStart = GUIConversion.ToString(_start);
                }

                if (!double.IsNaN(_end))
                {
                    sStart = GUIConversion.ToString(_end);
                }

                if (!double.IsNaN(_count))
                {
                    sStart = GUIConversion.ToString(_count);
                }

                if (!double.IsNaN(_interval))
                {
                    sStart = GUIConversion.ToString(_interval);
                }

                _view.InitializeStart(sStart);
                _view.InitializeStart(sEnd);
                _view.InitializeStart(sCount);
                _view.InitializeStart(sInterval);
            }
        }
예제 #24
0
 private void EhTransformationOffsetValidating(string txt, CancelEventArgs e)
 {
     if (GUIConversion.IsDouble(txt, out var val))
     {
         if (!val.IsFinite())
         {
             e.Cancel = true;
         }
         else
         {
             _doc.TransformationOffset = val;
         }
     }
     else
     {
         e.Cancel = true;
     }
 }
예제 #25
0
        public bool EhNumberOfRowsChanged(string val)
        {
            int v;

            if (!GUIConversion.IsInteger(val, out v))
            {
                Current.Gui.ErrorMessageBox("You have to provide an integer value here");
                return(true);
            }
            if (v < 1)
            {
                Current.Gui.ErrorMessageBox("Please provide a value >0 here");
                return(true);
            }
            _tempDoc.NumberOfRows = v;
            SetEnableConditions();
            return(false);
        }
예제 #26
0
        public override bool Apply(bool disposeController)
        {
            if (!GUIConversion.IsDouble(_view.SourceDpiResolution, out var sr))
            {
                return(false);
            }
            if (!GUIConversion.IsDouble(_view.DestinationDpiResolution, out var dr))
            {
                return(false);
            }

            if (!(sr > 0))
            {
                return(false);
            }
            if (!(dr > 0))
            {
                return(false);
            }

            var imgfmt = (ImageFormat)_imageFormat.FirstSelectedNode.Tag;
            var pixfmt = (PixelFormat)_pixelFormat.FirstSelectedNode.Tag;

            if (!_doc.TrySetImageAndPixelFormat(imgfmt, pixfmt))
            {
                Current.Gui.ErrorMessageBox("This combination of image and pixel format is not working!");
                return(false);
            }

            _doc.SourceDpiResolution      = sr;
            _doc.DestinationDpiResolution = dr;

            if (_view.BackgroundBrush.IsVisible)
            {
                _doc.BackgroundBrush = _view.BackgroundBrush;
            }
            else
            {
                _doc.BackgroundBrush = null;
            }

            return(ApplyEnd(true, disposeController));
        }
예제 #27
0
 private void EhDivideByValidating(string txt, CancelEventArgs e)
 {
     if (GUIConversion.IsDouble(txt, out var val))
     {
         double val1 = val;
         if (val == 0 || !val1.IsFinite())
         {
             e.Cancel = true;
         }
         else
         {
             _doc.TransformationDivider = val1;
         }
     }
     else
     {
         e.Cancel = true;
     }
 }
예제 #28
0
        protected override void Initialize(bool initData)
        {
            base.Initialize(initData);

            if (_view != null)
            {
                _view.MajorTicks = GUIConversion.ToString(_doc.MajorTickSpan);
                _view.MinorTicks = _doc.MinorTicks;
                _view.ZeroLever  = _doc.ZeroLever;
                _view.MinGrace   = _doc.OrgGrace;
                _view.MaxGrace   = _doc.EndGrace;

                _snapTicksToOrg.Clear();
                _snapTicksToEnd.Clear();

                foreach (BoundaryTickSnapping s in Enum.GetValues(typeof(BoundaryTickSnapping)))
                {
                    _snapTicksToOrg.Add(new SelectableListNode(Current.Gui.GetUserFriendlyName(s), s, s == _doc.SnapOrgToTick));
                    _snapTicksToEnd.Add(new SelectableListNode(Current.Gui.GetUserFriendlyName(s), s, s == _doc.SnapEndToTick));
                }

                _view.SnapTicksToOrg = _snapTicksToOrg;
                _view.SnapTicksToEnd = _snapTicksToEnd;

                _view.TargetNumberMajorTicks = _doc.TargetNumberOfMajorTicks;
                _view.TargetNumberMinorTicks = _doc.TargetNumberOfMinorTicks;

                _view.TransfoOffset = GUIConversion.ToString(_doc.TransformationOffset);
                _view.DivideBy      = GUIConversion.ToString(_doc.TransformationDivider);
                _view.TransfoOperationIsMultiply = _doc.TransformationOperationIsMultiply;

                _view.SuppressMajorTickValues    = GUIConversion.ToString(_doc.SuppressedMajorTicks.ByValues);
                _view.SuppressMinorTickValues    = GUIConversion.ToString(_doc.SuppressedMinorTicks.ByValues);
                _view.SuppressMajorTicksByNumber = GUIConversion.ToString(_doc.SuppressedMajorTicks.ByNumbers);
                _view.SuppressMinorTicksByNumber = GUIConversion.ToString(_doc.SuppressedMinorTicks.ByNumbers);

                _view.AddMajorTickValues = GUIConversion.ToString(_doc.AdditionalMajorTicks.Values);
                _view.AddMinorTickValues = GUIConversion.ToString(_doc.AdditionalMinorTicks.Values);
            }
        }
        public override bool Apply(bool disposeController)
        {
            if (!GUIConversion.IsDouble(_view.SourceDpiResolution, out var sr))
            {
                return(false);
            }

            if (!(sr > 0))
            {
                return(false);
            }

            var backcolor = _view.BackgroundColor;

            if (backcolor.Color.A != 255)
            {
                Current.Gui.ErrorMessageBox("Background color must be fully opaque. Please select an opaque (non-transparent) color");
                return(false);
            }

            _doc.SourceDpiResolution = sr;
            _doc.OutputScalingFactor = _view.OutputScaling;
            _doc.BackgroundColorForFormatsWithoutAlphaChannel = backcolor;
            _doc.RenderEnhancedMetafile = _view.RenderEnhancedMetafile;
            _doc.RenderEnhancedMetafileAsVectorFormat = _view.RenderEnhancedMetafileAsVectorFormat;
            _doc.RenderWindowsMetafile = _view.RenderWindowsMetafile;
            _doc.RenderBitmap          = _view.RenderBitmap;

            if (_view.BackgroundBrush.IsVisible)
            {
                _doc.BackgroundBrush = _view.BackgroundBrush;
            }
            else
            {
                _doc.BackgroundBrush = null;
            }

            return(ApplyEnd(true, disposeController));
        }
예제 #30
0
        private SelectableListNodeList GetResolutions(double actualResolution)
        {
            var resolutions = new SortedList <double, object>();

            foreach (int res in Resolutions)
            {
                resolutions.Add(res, null);
            }

            if (!resolutions.ContainsKey(actualResolution))
            {
                resolutions.Add(actualResolution, null);
            }

            var result = new SelectableListNodeList();

            foreach (double res in resolutions.Keys)
            {
                result.Add(new SelectableListNode(GUIConversion.ToString(res), res, res == actualResolution));
            }

            return(result);
        }