Exemple #1
0
        /// <summary>
        /// handles the expression window gettign focus
        /// </summary>
        public void OnEnter()
        {
            ThemeManager.SetupTextEditor(AceTextEditor, Syntax.Json);
            ThemeManager.SetupTextEditor(LanguageTextEditor, Syntax.Json);
            ThemeManager.SetupTextEditor(CodeTextEditor, Syntax.Javascript);
            ThemeManager.SetupSearchPanel(acePanel, langPanel, codePanel);

            if (AddonManager.CurrentAddon != null)
            {
                _expressions = AddonManager.CurrentAddon.Expressions;
                ExpressionListBox.ItemsSource = _expressions;

                if (_expressions.Any())
                {
                    ExpressionListBox.SelectedIndex = 0;
                    _selectedExpression             = _expressions.Values.First();
                    AceTextEditor.Text      = _selectedExpression.Ace;
                    LanguageTextEditor.Text = _selectedExpression.Language;
                    CodeTextEditor.Text     = _selectedExpression.Code;
                    Category.Text           = _selectedExpression.Category;
                }
            }
            else
            {
                ExpressionListBox.ItemsSource = null;
                AceTextEditor.Text            = string.Empty;
                LanguageTextEditor.Text       = string.Empty;
                CodeTextEditor.Text           = string.Empty;
            }

            folding.UpdateFoldings(aceFoldingManager, CodeTextEditor.Document);
        }
Exemple #2
0
        /// <summary>
        /// handles switching expression
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ExpressionListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (ExpressionListBox.SelectedIndex == -1)
            {
                //ignore
                return;
            }

            //save current selection
            if (_selectedExpression != null)
            {
                _selectedExpression.Ace               = AceTextEditor.Text;
                _selectedExpression.Language          = LanguageTextEditor.Text;
                _selectedExpression.Code              = CodeTextEditor.Text;
                _selectedExpression.Category          = Category.Text;
                _expressions[_selectedExpression.Id]  = _selectedExpression;
                AddonManager.CurrentAddon.Expressions = _expressions;
                DataAccessFacade.Insatnce.AddonData.Upsert(AddonManager.CurrentAddon);
            }

            var selectedKey = ((KeyValuePair <string, Expression>)ExpressionListBox.SelectedItem).Key;

            _selectedExpression = _expressions[selectedKey];

            Category.Text           = _selectedExpression.Category;
            AceTextEditor.Text      = _selectedExpression.Ace;
            LanguageTextEditor.Text = _selectedExpression.Language;
            CodeTextEditor.Text     = _selectedExpression.Code;

            folding.UpdateFoldings(aceFoldingManager, CodeTextEditor.Document);
        }
Exemple #3
0
        /// <summary>
        /// handles the save button in add expression child window
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SaveExpressionButton_Click(object sender, RoutedEventArgs e)
        {
            var id             = ExpressionIdText.Text.ToLower().Replace(" ", "-");
            var category       = ExpressionCategoryText.Text;
            var returntype     = ReturnTypeDropdown.Text;
            var translatedname = TranslatedName.Text;
            var isvariadic     = TranslatedName.Text;
            var desc           = DescriptionText.Text.Replace("\"", "\\\"");

            if (_expressions.ContainsKey(id))
            {
                NotificationManager.PublishErrorNotification("expression id already exists");
                return;
            }

            var expression = new Expression
            {
                Id                   = id.Trim().ToLower(),
                Category             = category.Trim().ToLower(),
                ReturnType           = returntype,
                IsVariadicParameters = isvariadic,
                TranslatedName       = translatedname,
                Description          = desc
            };

            expression.Ace      = TemplateHelper.ExpAces(expression);
            expression.Language = TemplateCompiler.Insatnce.CompileTemplates(AddonManager.CurrentAddon.Template.ExpressionLanguage, expression);
            expression.Code     = TemplateCompiler.Insatnce.CompileTemplates(AddonManager.CurrentAddon.Template.ActionCode, expression);

            _expressions.Add(id, expression);
            ExpressionListBox.Items.Refresh();
            ExpressionListBox.SelectedIndex       = _expressions.Count - 1;
            AddonManager.CurrentAddon.Expressions = _expressions;
            NewExpressionWindow.IsOpen            = false;
        }
Exemple #4
0
 /// <summary>
 /// clears all inputs on expression window
 /// </summary>
 public void Clear()
 {
     _expressions                  = new Dictionary <string, Expression>();
     _selectedExpression           = null;
     ExpressionListBox.ItemsSource = null;
     AceTextEditor.Text            = string.Empty;
     CodeTextEditor.Text           = string.Empty;
     LanguageTextEditor.Text       = string.Empty;
     Category.Text                 = string.Empty;
 }
Exemple #5
0
        /// <summary>
        /// removes selected expression
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RemoveExpression_OnClick(object sender, RoutedEventArgs e)
        {
            if (_selectedExpression != null)
            {
                _expressions.Remove(_selectedExpression.Id);
                ExpressionListBox.ItemsSource = _expressions;
                ExpressionListBox.Items.Refresh();

                //clear editors
                AceTextEditor.Text      = string.Empty;
                LanguageTextEditor.Text = string.Empty;
                CodeTextEditor.Text     = string.Empty;
                _selectedExpression     = null;
            }
            else
            {
                NotificationManager.PublishErrorNotification("failed to remove condition, no condition selected");
            }
        }