Example #1
0
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            if (ViewComboBox.SelectedItem == null)
            {
                return;
            }

            TreeViewItem selectedTreeViewItem = null;
            IQueryPanel  masterQueryPanel     = null;
            Guid         masterViewRelationID = Guid.Empty;

            if (ViewRelationsTreeView.SelectedItem != null)
            {
                selectedTreeViewItem = (TreeViewItem)ViewRelationsTreeView.SelectedItem;
                Guid detailQueryPanelID = ((ViewRelation)selectedTreeViewItem.Tag).DetailQueryPanelID;
                masterViewRelationID = ((ViewRelation)selectedTreeViewItem.Tag).ID;
                masterQueryPanel     = ApplicationContext.Current.SPCamlStudio.QueriesPanel.GetQueryPanel(detailQueryPanelID);
                //masterQueryPanel = (IQueryPanel)selectedTreeViewItem.Tag;
            }
            ComboBoxItem selectedComboBoxItem = (ComboBoxItem)ViewComboBox.SelectedItem;
            IQueryPanel  detailQueryPanel     = (IQueryPanel)selectedComboBoxItem.Tag;
            ViewRelation viewRelation         = ViewRelation.NewViewRelation();

            viewRelation.MasterViewRelationID = masterViewRelationID;
            viewRelation.DetailQueryPanelID   = detailQueryPanel.ID;
            viewRelation.Name           = detailQueryPanel.FileName;
            viewRelation.DetailSiteUrl  = detailQueryPanel.AttachedObject.GetWebUrl();
            viewRelation.DetailListName = detailQueryPanel.AttachedObject.GetListName();
            if (selectedComboBoxItem.Parent == null)
            {
                viewRelation.IsRoot = true;
            }

            TreeViewItem newTreeViewItem = new TreeViewItem()
            {
                Header = viewRelation.Name,
                Tag    = viewRelation
            };

            if (selectedTreeViewItem == null)
            {
                ViewRelationsTreeView.Items.Add(newTreeViewItem);
            }
            else
            {
                ViewRelationForm viewRelationForm = new ViewRelationForm();
                viewRelationForm.Initialize(masterQueryPanel, detailQueryPanel);
                viewRelationForm.Tag = viewRelation;
                if (viewRelationForm.ShowDialog(this.ParentWindow, "View Relation") == true)
                {
                    selectedTreeViewItem.Items.Add(newTreeViewItem);
                }
            }
        }
Example #2
0
        private string GenerateGridsScript(ItemCollection items)
        {
            StringBuilder sb = new StringBuilder();

            foreach (object t in items)
            {
                TreeViewItem treeviewItem = (TreeViewItem)t;
                ViewRelation viewRelation = (ViewRelation)treeviewItem.Tag;
                IQueryPanel  queryPanel   = ApplicationContext.Current.SPCamlStudio.QueriesPanel.GetQueryPanel(viewRelation.DetailQueryPanelID);
                string       appendix     = viewRelation.ID.ToString().Replace('-', '_');
                sb.AppendLine("var dataSourceBuilder" + appendix + " = new soby_CamlBuilder('" + viewRelation.DetailListName + "', '', 5, '" + viewRelation.DetailSiteUrl + "');");
                sb.AppendLine("dataSourceBuilder" + appendix + ".Filters = new CamlFilters(false);");
                sb.AppendLine("var spService" + appendix + " = new soby_SharePointService(dataSourceBuilder" + appendix + ");");
                sb.AppendLine("var sobyGrid" + appendix + " = new soby_DataGrid('#soby_GridDiv" + appendix + "', '" + viewRelation.DetailListName + "', spService" + appendix + ", 'There is no record found.')");
                List <CamlFieldRef> viewFields = queryPanel.GetViewFields();
                foreach (CamlFieldRef viewField in viewFields)
                {
                    sb.AppendLine("dataSourceBuilder" + appendix + ".AddViewField('" + viewField.Name + "', '" + viewField.Name + "', CamlFieldTypes.Text);");
                    sb.AppendLine("sobyGrid" + appendix + ".AddColumn('" + viewField.Name + "', '" + viewField.DisplayName + "');");
                }

                foreach (object z in treeviewItem.Items)
                {
                    TreeViewItem treeviewItem1 = (TreeViewItem)z;
                    ViewRelation viewRelation1 = (ViewRelation)treeviewItem1.Tag;
                    if ((from h in viewFields
                         where h.Name == viewRelation1.MasterFieldValueName
                         select h).ToList().Count == 0)
                    {
                        sb.AppendLine("dataSourceBuilder" + appendix + ".AddViewField('" + viewRelation1.MasterFieldValueName + "', '" + viewRelation1.MasterFieldValueName + "', CamlFieldTypes.Text);");
                    }
                }

                if (string.IsNullOrEmpty(viewRelation.MasterFieldDisplayName) == false)
                {
                    sb.AppendLine("sobyGrid" + viewRelation.MasterViewRelationID.ToString().Replace('-', '_') + ".AddDataRelation('" + viewRelation.MasterFieldDisplayName + "', '" + viewRelation.MasterFieldValueName + "', sobyGrid" + appendix + ".GridID, '" + viewRelation.DetailFieldName + "')");
                }
                else
                {
                    sb.AppendLine("sobyGrid" + appendix + ".Initialize(true);");
                }

                sb.Append(GenerateGridsScript(treeviewItem.Items));
            }

            return(sb.ToString());
        }
        public void ValidateButtonEnabilities()
        {
            IQueryPanel activeQueryPanel = ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel;

            if (activeQueryPanel == null)
            {
                ShowCriteriaPaneButton.IsEnabled = false;
                ShowCamlTextPaneButton.IsEnabled = false;
                ShowResultsPaneButton.IsEnabled  = false;
                ExecuteQueryButton.IsEnabled     = false;
                ValidateCamlButton.IsEnabled     = false;
            }
            else
            {
                ShowCriteriaPaneButton.IsEnabled = true;
                ShowCamlTextPaneButton.IsEnabled = true;
                ShowResultsPaneButton.IsEnabled  = true;
                ExecuteQueryButton.IsEnabled     = true;
                ValidateCamlButton.IsEnabled     = true;
            }

            Folder selectedObject = ApplicationContext.Current.SPCamlStudio.ServerObjectExplorer.SelectedObject;

            if (selectedObject != null &&
                (
                    (selectedObject as SPFolder) != null
                    ||
                    (selectedObject as Entities.SQLServer.SQLTable) != null
                    ||
                    (selectedObject as Entities.CRM.CRMEntity) != null
                )
                )
            {
                NewQueryButton.IsEnabled = true;
            }
            else
            {
                NewQueryButton.IsEnabled = false;
            }
        }
        public void Initialize(IQueryPanel masterQueryPanel, IQueryPanel detailQueryPanel)
        {
            _MasterQueryPanel = masterQueryPanel;
            _DetailQueryPanel = detailQueryPanel;

            List <CamlFieldRef> masterViewFields = _MasterQueryPanel.GetViewFields();
            List <CamlFieldRef> masterAllFields  = _MasterQueryPanel.GetAllFields();

            foreach (CamlFieldRef fieldRef in masterViewFields)
            {
                MasterFieldDisplayNameComboBox.Items.Add(new ComboBoxItem()
                {
                    Content = fieldRef.DisplayName,
                    Tag     = fieldRef
                });
            }

            foreach (CamlFieldRef fieldRef in masterAllFields)
            {
                MasterFieldValueNameComboBox.Items.Add(new ComboBoxItem()
                {
                    Content = fieldRef.DisplayName,
                    Tag     = fieldRef
                });
            }

            List <CamlFieldRef> detailViewFields = _DetailQueryPanel.GetAllFields();

            foreach (CamlFieldRef fieldRef in detailViewFields)
            {
                DetailFieldNameComboBox.Items.Add(new ComboBoxItem()
                {
                    Content = fieldRef.DisplayName,
                    Tag     = fieldRef
                });
            }
        }