protected virtual void OnCurrencyChanged(float amountBefore, CurrencyDecorator decorator) { if (decorator.currency == currency) { currencyUIElement.Repaint(decorator); } }
private double VisitImpl(Inquiry inq, Func <string, string> gen) { var val = 0D; IFundFormatter fmt = new BaseFundFormatter(); if (!double.IsNaN(inq.Ratio)) { fmt = new RatioDecorator(fmt, inq.Ratio); } var o = $"[{(inq.IsLeftExtended ? "" : m_Rng.StartDate.AsDate())}~{m_Rng.EndDate.AsDate()}] {(inq.General ? "G" : "")}"; var query = ParsingF.GroupedQuery( $"{gen(o)}`{(inq.ByCurrency ? "C" : "")}{(inq.ByTitle ? "t" : "")}{(inq.BySubTitle ? "s" : "")}{(inq.ByContent ? "c" : "")}{(inq.ByRemark ? "r" : "")}{(inq.ByCurrency || inq.ByTitle || inq.BySubTitle || inq.ByContent || inq.ByRemark ? "" : "v")}{(!inq.ByCurrency ? "X" : "")}"); var gq = m_Accountant.SelectVoucherDetailsGrouped(query); if (inq.ByCurrency) { foreach (var grp in gq.Items.Cast <ISubtotalCurrency>()) { var curr = grp.Currency; // ReSharper disable once PossibleInvalidOperationException var ratio = m_Accountant.From(m_Rng.EndDate.Value, curr) * m_Accountant.To(m_Rng.EndDate.Value, m_BaseCurrency); var theFmt = new CurrencyDecorator(fmt, curr, ratio); val += theFmt.GetFund(grp.Fund); m_Sb.Append( new SubtotalVisitor(Composite.Merge(m_Path, inq.Name), theFmt, inq.HideContent) .PresentSubtotal(grp, query.Subtotal, m_Serializer)); } } else { val += fmt.GetFund(gq.Fund); m_Sb.Append( new SubtotalVisitor(Composite.Merge(m_Path, inq.Name), fmt, inq.HideContent) .PresentSubtotal(gq, query.Subtotal, m_Serializer)); } return(val); }
public static void CurrencyDecorator(string name, CurrencyDecorator currencyDecorator) { EditorGUILayout.BeginHorizontal(); if (currencyDecorator.amount > 0f && currencyDecorator.currency == null) { GUI.color = Color.red; } ObjectPickerUtility.RenderObjectPickerForType <CurrencyDefinition>(string.Empty, currencyDecorator.currency, (val) => { currencyDecorator.currency = val; }); GUI.color = Color.white; var prevLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 60; currencyDecorator.amount = EditorGUILayout.FloatField("Amount", currencyDecorator.amount); EditorGUIUtility.labelWidth = prevLabelWidth; EditorGUILayout.EndHorizontal(); }
public void Repaint(CurrencyDecorator amount) { // TODO: Maybe add fractions conversion to lower values, as done in main system (1.12 silver is 1 silver and 12 copper). foreach (var currencyUI in currencies) { if (currencyUI.currency == null) { Debug.LogWarning("Empty currencyUIElement in group ", currencyUI.transform); continue; } if (currencyUI.currency == amount.currency) { currencyUI.currencyUIElement.Repaint(amount); } else { currencyUI.currencyUIElement.Reset(); } } }
public CurrencyDecoratorMessage(CurrencyDecorator <double> dec) { amount = (float)dec.amount; currencyGuid = dec.currency?.ID ?? Guid.Empty; }