public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            TextBox textBox = null;

            foreach (var tb in VisualTreeHelperUtil.GetControlsDecendant <TextBox>(this).Where(uie => uie.Focusable))
            {
                textBox       = tb;
                tb.GotFocus  += (sender, e) => OnControlGotFous((UIElement)sender);
                tb.LostFocus +=
                    delegate
                {
                    IsOrHisChildrenAreFocused = IsOrHisChildrenAreFocused;
                    if (SelectedItem == null)
                    {
                        SelectedItem = Items[0];
                    }
                };
            }
            if (textBox != null)
            {
                textBox.Focus();
                textBox.SelectAll();
            }
        }
Example #2
0
 internal ListViewItem GetListViewItem(PropertyBase property)
 {
     return((from lvi in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView)
             let uiProperty = lvi.Content as UIProperty
                              where uiProperty != null && uiProperty.BusinessInstance == property
                              select lvi).First());
 }
Example #3
0
        internal ListViewItem GetListViewItem(ComplexProperty complexProperty, out int index)
        {
            var value = (from lvi in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView)
                         let uiRelatedProperty = lvi.Content as UIRelatedProperty
                                                 where uiRelatedProperty != null
                                                 select new { ListViewItem = lvi, UIRelatedProperty = uiRelatedProperty }).Select((lvi, i) => new { ListViewItem = lvi, Index = i }).First(lvi => lvi.ListViewItem.UIRelatedProperty.BusinessInstance == complexProperty);

            index = value.Index;
            return(value.ListViewItem.ListViewItem);
        }
        private bool RenameProperty(object listViewItem)
        {
            var editableTextBlock = VisualTreeHelperUtil.GetControlsDecendant <EditableTextBlock>(listViewItem).First();

            if (editableTextBlock != null)
            {
                editableTextBlock.Edit();
                return(true);
            }
            return(false);
        }
Example #5
0
        internal ListViewItem GetListViewItem(NavigationProperty navigationProperty, out int index)
        {
            foreach (ListViewItem lvia in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView))
            {
                lvia.ToString();
            }

            var value = (from lvi in VisualTreeHelperUtil.GetControlsDecendant <ListViewItem>(propertiesListView)
                         let uiRelatedProperty = lvi.Content as UIRelatedProperty
                                                 where uiRelatedProperty != null
                                                 select new { ListViewItem = lvi, UIRelatedProperty = uiRelatedProperty }).Select((lvi, i) => new { ListViewItem = lvi, Index = i }).First(lvi => lvi.ListViewItem.UIRelatedProperty.BusinessInstance == navigationProperty);

            index = value.Index; // +navigationProperty.EntityType.ComplexProperties.Count;
            return(value.ListViewItem.ListViewItem);
        }
        protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnPreviewMouseLeftButtonDown(e);

            foreach (var relation in VisualTreeHelperUtil.GetControlsDecendant <RelationBase>(this))
            {
                relation.IsSelected = false;
            }

            var typeDesigner = VisualTreeHelperUtil.GetControlAscendant <TypeBaseDesigner>(e.OriginalSource);

            _moveEntityType = typeDesigner != null && VisualTreeHelperUtil.GetControlAscendant <ListView>(e.OriginalSource) == null && VisualTreeHelperUtil.GetControlAscendant <TextBox>(e.OriginalSource) == null;
            if (_moveEntityType)
            {
                _moveEntityTypeStartPoint = e.GetPosition(this);
                Cursor = Cursors.ScrollAll;
            }
        }
Example #7
0
        internal void DrawAssociation(TypeBaseDesigner otherTypeDesigner, NavigationProperty navigationProperty)
        {
            var csdlAssociation = navigationProperty.Association;
            int otherTypeDesignerItemIndex;
            var otherNavigationProperty = csdlAssociation.PropertiesEnd.First(np => np != navigationProperty);
            var otherListViewItem       = otherTypeDesigner.GetListViewItem(otherNavigationProperty, out otherTypeDesignerItemIndex);
            int typeDesignerItemIndex;
            var typeDesignerListViewItem = GetListViewItem(navigationProperty, out typeDesignerItemIndex);

            ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations.Association association;
            if (csdlAssociation.PropertyEnd1 == navigationProperty)
            {
                association = new ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations.Association(csdlAssociation, Designer, this, otherTypeDesigner, typeDesignerListViewItem, otherListViewItem, typeDesignerItemIndex, otherTypeDesignerItemIndex);
            }
            else
            {
                association = new ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations.Association(csdlAssociation, Designer, otherTypeDesigner, this, otherListViewItem, typeDesignerListViewItem, otherTypeDesignerItemIndex, typeDesignerItemIndex);
            }
            var relationContener = new RelationContener(association);

            Designer.Children.Add(relationContener);
            relationContener.SetBinding(Canvas.LeftProperty, new Binding {
                Source = association, Path = new PropertyPath("CanvasLeft")
            });
            relationContener.SetBinding(Canvas.TopProperty, new Binding {
                Source = association, Path = new PropertyPath("CanvasTop")
            });
            AddRelationContenerByRelatedProperty(UIType.Properties[navigationProperty], relationContener);
            otherTypeDesigner.AddRelationContenerByRelatedProperty(otherTypeDesigner.UIType.Properties[otherNavigationProperty], relationContener);
            NotifyCollectionChangedEventHandler mappingCollectionChanged = delegate
            {
                VisualTreeHelperUtil.GetControlsDecendant <EditableTextBlock>(otherListViewItem).First().GetBindingExpression(EditableTextBlock.OpacityProperty).UpdateTarget();
                VisualTreeHelperUtil.GetControlsDecendant <EditableTextBlock>(typeDesignerListViewItem).First().GetBindingExpression(EditableTextBlock.OpacityProperty).UpdateTarget();
            };

            csdlAssociation.PropertyEnd1.Mapping.CollectionChanged += mappingCollectionChanged;
            csdlAssociation.PropertyEnd2.Mapping.CollectionChanged += mappingCollectionChanged;
        }