void selectOneDeselectResetOthers(ToolStripItemCollection allDropDownItems, object sender, List <string> groupLabeledTextboxes) { MenuItemLabeledTextBox mniltbToSelect = sender as MenuItemLabeledTextBox; if (mniltbToSelect == null) { string msg = "SENDER_MUSTBE_LabeledTextBoxControl_GOT " + mniltbToSelect.GetType(); Assembler.PopupException(msg); return; } foreach (ToolStripItem eachMni in allDropDownItems) { MenuItemLabeledTextBox eachMniAsLTB = eachMni as MenuItemLabeledTextBox; if (eachMniAsLTB == null) { continue; } if (eachMniAsLTB == mniltbToSelect) { continue; } if (groupLabeledTextboxes.Contains(eachMniAsLTB.Name) == false) { continue; } eachMniAsLTB.InputFieldValue = ""; //eachMniAsLTB.Selected = false; eachMniAsLTB.BackColor = Color.White; //eachMniAsLTB.ForeColor = Color.Black; } //mniltbNameToSelect.Selected = true; mniltbToSelect.BackColor = Color.Gainsboro; //mniltbNameToSelect.ForeColor = Color.White; }
void mnitlbAll_UserTyped(object sender, LabeledTextBoxUserTypedArgs e) { try { string userTyped = e.StringUserTyped; int userTypedInteger; bool validInteger = Int32.TryParse(userTyped, out userTypedInteger); if (validInteger == false) { e.HighlightTextWithRed = true; return; } if (userTypedInteger <= 0) { e.HighlightTextWithRed = true; return; } MenuItemLabeledTextBox mniTypedAsLTB = sender as MenuItemLabeledTextBox; if (mniTypedAsLTB == null) { string msg = "SENDER_MUSTBE_LabeledTextBoxControl_GOT " + mniTypedAsLTB.GetType(); Assembler.PopupException(msg); return; } BarScale barScaleTyped; switch (mniTypedAsLTB.Name) { case "mnitlbMinutes": barScaleTyped = BarScale.Minute; break; case "mnitlbHourly": barScaleTyped = BarScale.Hour; break; case "mnitlbDaily": barScaleTyped = BarScale.Daily; break; case "mnitlbWeekly": barScaleTyped = BarScale.Weekly; break; case "mnitlbMonthly": barScaleTyped = BarScale.Monthly; break; //case "mnitlbQuarterly": barScaleTyped = BarScale.Quarterly; break; case "mnitlbYearly": barScaleTyped = BarScale.Yearly; break; default: string msg = "SENDER_UNEXPECTED_NAME " + mniTypedAsLTB.Name; Assembler.PopupException(msg); return; } this.selectOneDeselectResetOthers(this.DdbBars.DropDownItems, mniTypedAsLTB, this.GroupScaleLabeledTextboxes); BarScaleInterval scaleIntervalUserEntered = new BarScaleInterval(barScaleTyped, userTypedInteger); ContextChart context = this.ChartFormManager.ContextCurrentChartOrStrategy; context.ScaleInterval = scaleIntervalUserEntered; this.ChartFormManager.PopulateSelectorsFromCurrentChartOrScriptContextLoadBarsSaveBacktestIfStrategy("mniltbAll_UserTyped"); } catch (Exception ex) { Assembler.PopupException("mniltbMinutes_UserTyped()", ex); } }
void mniltbDelay_UserTyped(object sender, LabeledTextBoxUserTypedArgs e) { MenuItemLabeledTextBox mnilbDelay = sender as MenuItemLabeledTextBox; string typed = e.StringUserTyped; int typedMsec = this.DataSnapshot.TreeRefreshDelayMsec; bool parsed = Int32.TryParse(typed, out typedMsec); if (parsed == false) { mnilbDelay.InputFieldValue = this.DataSnapshot.TreeRefreshDelayMsec.ToString(); mnilbDelay.TextRed = true; return; } this.DataSnapshot.TreeRefreshDelayMsec = typedMsec; mnilbDelay.TextRed = false; this.DataSnapshotSerializer.Serialize(); e.RootHandlerShouldCloseParentContextMenuStrip = true; }
ContextScript ScriptContextFromLabeledTextBoxTag(object sender) { // rightClick => [Default] => Duplicate To => onKeyPress() // TextBox <= LabeledTextBox[DuplicateTo] <= ParentControlHost.Owner[Default] <= Tag[ScriptContext"DEFAULT"] // TextBox txt = sender as TextBox; // LabeledTextBox lblTxt = txt.Parent as LabeledTextBox; // ToolStripControlHost mniOpening = lblTxt.ParentToolStripControlHost; MenuItemLabeledTextBox mniltbScriptContextRenameTo = sender as MenuItemLabeledTextBox; ContextMenuStrip mniParent = mniltbScriptContextRenameTo.Owner as ContextMenuStrip; // found in debugger ContextScript ctxToLoad = mniParent.Tag as ContextScript; if (ctxToLoad == null) { string msg = "mniltb[" + mniltbScriptContextRenameTo.Name + "].Tag[" + mniltbScriptContextRenameTo.Tag + "] is not a ScriptContext"; Assembler.PopupException(msg); return(null); } return(ctxToLoad); }
public void PropagateContextScriptToLTB(ContextScript ctxScript) { if (ctxScript.ScaleInterval.Scale == BarScale.Unknown) { string msg = "TODO: figure out why deserialized / userSelected strategyClicked[" + this.ChartFormManager.Executor.Strategy + "].ScriptContextCurrent.ScaleInterval[" + ctxScript.ScaleInterval + "] has BarScale.Unknown #4"; Assembler.PopupException(msg); } else { MenuItemLabeledTextBox mnitlbForScale = null; switch (ctxScript.ScaleInterval.Scale) { case BarScale.Minute: mnitlbForScale = this.mnitlbMinutes; break; case BarScale.Hour: mnitlbForScale = this.mnitlbDaily; break; case BarScale.Daily: mnitlbForScale = this.mnitlbHourly; break; case BarScale.Weekly: mnitlbForScale = this.mnitlbWeekly; break; case BarScale.Monthly: mnitlbForScale = this.mnitlbMonthly; break; //case BarScale.Quarterly mnitlbForScale = this.mnitlbQuarterly; break; case BarScale.Yearly: mnitlbForScale = this.mnitlbYearly; break; default: string msg = "SCALE_UNHANDLED_NO_TEXTBOX_TO_POPULATE " + ctxScript.ScaleInterval.Scale; Assembler.PopupException(msg); break; } if (mnitlbForScale != null) { mnitlbForScale.InputFieldValue = ctxScript.ScaleInterval.Interval.ToString(); mnitlbForScale.BackColor = Color.Gainsboro; } } this.mniShowBarRange.Checked = ctxScript.ShowRangeBar; switch (ctxScript.DataRange.Range) { case BarRange.AllData: this.mnitlbShowLastBars.InputFieldValue = ""; this.mnitlbShowLastBars.BackColor = Color.White; break; case BarRange.DateRange: this.ChartControl.RangeBar.ValueMin = ctxScript.DataRange.StartDate; this.ChartControl.RangeBar.ValueMax = ctxScript.DataRange.EndDate; this.mnitlbShowLastBars.InputFieldValue = ""; this.mnitlbShowLastBars.BackColor = Color.White; break; case BarRange.RecentBars: this.mnitlbShowLastBars.InputFieldValue = ctxScript.DataRange.RecentBars.ToString(); this.mnitlbShowLastBars.BackColor = Color.Gainsboro; //this.mniShowBarRange.Checked = false; break; default: string msg = "DATE_RANGE_UNHANDLED_RECENT_TIMEUNITS_NYI " + ctxScript.DataRange; Assembler.PopupException(msg); break; } this.ChartControl.RangeBarCollapsed = !this.mniShowBarRange.Checked; switch (ctxScript.PositionSize.Mode) { case PositionSizeMode.SharesConstantEachTrade: this.mnitlbPositionSizeSharesConstantEachTrade.InputFieldValue = ctxScript.PositionSize.SharesConstantEachTrade.ToString(); this.mnitlbPositionSizeSharesConstantEachTrade.BackColor = Color.Gainsboro; this.mnitlbPositionSizeDollarsEachTradeConstant.BackColor = Color.White; break; case PositionSizeMode.DollarsConstantForEachTrade: this.mnitlbPositionSizeDollarsEachTradeConstant.InputFieldValue = ctxScript.PositionSize.DollarsConstantEachTrade.ToString(); this.mnitlbPositionSizeDollarsEachTradeConstant.BackColor = Color.Gainsboro; this.mnitlbPositionSizeSharesConstantEachTrade.BackColor = Color.White; break; default: string msg = "POSITION_SIZE_UNHANDLED_NYI " + ctxScript.PositionSize.Mode; Assembler.PopupException(msg); break; } DataSourcesForm.Instance.DataSourcesTreeControl.SelectSymbol(ctxScript.DataSourceName, ctxScript.Symbol); StrategiesForm.Instance.StrategiesTreeControl.SelectStrategy(this.ChartFormManager.Executor.Strategy); this.PropagateSelectorsDisabledIfStreamingForCurrentChart(); }