Enum rename Label string

mail@pastecode.io avatar
unknown
csharp
23 days ago
6.6 kB
3
Indexable
Never
public enum MyEnum
{
    A,
    B,
    C,

    X,
    Y,
    Z
}

//This namespace holds Strategies in this folder and is required. Do not change it.
namespace NinjaTrader.NinjaScript.Strategies
{
    public class MyXConverterStrat : Strategy
    {  
        private string xX, yY;
        
        private string Btn1Lbl, Btn2Lbl;
        
        private int _button1Ticks, _button2Ticks;
        
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                ...
              
                st1EnumVar      = MyEnum.X;
                nd2EnumVar      = MyEnum.B;
                
                foreach (string value in Enum.GetNames(typeof(MyEnum)))
                {
                    MyEnum enumValue = (MyEnum)Enum.Parse(typeof(MyEnum), value);
                
                    if (xEnum == enumValue)
                        btn1Lbl = value;
                
                    if (YEnum == enumValue)
                        btn2Lbl = value;
                }
                
                
                Button1Label    = Btn1Lbl;
                Button2Label    = Btn2Lbl;

                _button1Ticks   = 4;
                _button2Ticks   = 2;
				
				Button1Color	= Brushes.ForestGreen;
				Button2Color	= Brushes.Crimson;
              
              ...
            }
            
            ...
            

            protected void CreateWPFControls()
            {                
                #region BUTTONS ARRAY AND LOOP

					MyEnum[] MyEnumArray1 = new MyEnum[] 
					{
						MyEnum.B,
						MyEnum.C,
					};
					
					foreach (var value in MyEnumArray1)
					{
						Print("value " + value);
						Print("st1EnumVar " + st1EnumVar);
						Print("nd2EnumVar " + nd2EnumVar);
						
						xX = ( ( st1EnumVar == value ) ? ( " + " + _button1Ticks.ToString() ) : string.Empty );
						yY = ( ( nd2EnumVar == value ) ? ( " + " + _button2Ticks.ToString() ) : string.Empty );
						
						Print("xX " + xX);
						Print("yY " + yY);
						
					}

                    // all of the buttons are basically the same so to save lines of code I decided to use a loop over an array
                    buttonsArray = new System.Windows.Controls.Button[2];

                    for (int i = 0; i < 2; ++i)
                    {
                        System.Windows.Media.Brush ButtonBackground;
                        string ButtonLabels, ButtonTicks;
                        
                        switch(i)
                        {
                          case 0:
                            ButtonLabels        = Button1Label;
                            ButtonBackground    = Button1Color;
                            ButtonTicks         = xX;
                            break;
                          case 1:
                            ButtonLabels        = Button2Label;
                            ButtonBackground    = Button2Color;
                            ButtonTicks         = yY;
                            break;    
                          default:
                            ButtonLabels        = "";
                            ButtonBackground    = null;
                            ButtonTicks         = "1";                        
                            break;
                        }
                        
                        buttonsArray[i]    = new System.Windows.Controls.Button()    
                        {
                            Content            = string.Format("{0}{1}",ButtonLabels,ButtonTicks),
                            Height            = 25,
                            Margin            = new Thickness(0,0,0,0),
                            Padding            = new Thickness(0,0,0,0),
                            Style            = basicButtonStyle,
                            FontFamily         = new FontFamily("Agency Fb"),
                            FontSize         = 11,
                            FontWeight        = FontWeights.Bold
                        };

                        buttonsArray[i].BorderBrush    = Brushes.DimGray;
                        buttonsArray[i].Background = ButtonBackground;
                        
                    }
                    
                #endregion
                
            }
            
            
            ...
        }
              
        ...      
              
        #region Properties
        
        [Display(Name="st1EnumVar Button Methods", Description="", Order=1, GroupName="Button Parameters")]
        [RefreshProperties(RefreshProperties.All)]
        public MyEnum st1EnumVar
        { get; set; }
        
        [Display(Name="nd2EnumVar Button Methods", Description="", Order=2, GroupName="Button Parameters")]
        [RefreshProperties(RefreshProperties.All)]
        public MyEnum nd2EnumVar
        { get; set; }
        
        
        [NinjaScriptProperty]
        [Display(Name="Label Button 1", Order=3, GroupName="Buttons Parameters")]
        public string Button1Label
        { get; set; }
        
        [NinjaScriptProperty]
        [Display(Name="Label Button 2", Order=4, GroupName="Buttons Parameters")]
        public string Button2Label
        { get; set; }
        
        
        [NinjaScriptProperty]
        [Range(0, int.MaxValue)]
        [Display(Name="Button1Ticks", Order=5, GroupName="Buttons Parameters")]
        public int _Button1Ticks
        {

            get { return _button1Ticks; }

            set { _button1Ticks = value; }
        }
        
        [NinjaScriptProperty]
        [Range(0, int.MaxValue)]
        [Display(Name="Button2Ticks", Order=6, GroupName="Buttons Parameters")]
        public int _Button2Ticks
        {

            get { return _button2Ticks; }

            set { _button2Ticks = value; }
        }
	        
		[NinjaScriptProperty]
		[XmlIgnore]
		[Display(Name="Button1Color", Order=7, GroupName="Buttons Parameters")]
		public System.Windows.Media.Brush Button1Color
		{ get; set; }

		[Browsable(false)]
		public string Button1ColorSerializable
		{
			get { return Serialize.BrushToString(Button1Color); }
			set { Button1Color = Serialize.StringToBrush(value); }
		}
	        
		[NinjaScriptProperty]
		[XmlIgnore]
		[Display(Name="Button2Color", Order=8, GroupName="Buttons Parameters")]
		public System.Windows.Media.Brush Button2Color
		{ get; set; }

		[Browsable(false)]
		public string Button2ColorSerializable
		{
			get { return Serialize.BrushToString(Button2Color); }
			set { Button2Color = Serialize.StringToBrush(value); }
		}
        
        #endregion
    }
    
}
Leave a Comment