Changeset 2599


Ignore:
Timestamp:
Feb 5, 2011, 7:35:03 PM (11 years ago)
Author:
matkovic
Message:

-WorkSpaceManager: Added Connector behavior like in 'AnotherEditor'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r2598 r2599  
    468468
    469469            //connector.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(connector_PreviewMouseLeftButtonDown);
    470             connector.PreviewDrop += new DragEventHandler(connector_Drop);
    471             connector.MouseLeftButtonDown += new MouseButtonEventHandler(connector_MouseLeftButtonDown);
     470            connector.MouseUp += new MouseButtonEventHandler(connector_MouseUp);
    472471            connector.MouseLeave += new MouseEventHandler(connector_MouseLeave);
    473472            connectorViewList.Add(connector);
    474473        }
    475474
    476         void connector_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    477         {
    478             ConnectorView connector = (sender as ConnectorView);
    479             if (ConnectorMouseLeftButtonDown != null)
    480             {
    481                 ConnectorMouseLeftButtonDown.Invoke(this, new ConnectorViewEventArgs() { connector = connector });
    482                 DataObject dragData = new DataObject("line", connector);
    483                 DragDrop.DoDragDrop(connector, dragData, DragDropEffects.Link);
    484                 //Mouse.AddMouseUpHandler(Parent, Parent_MouseUp);
    485             }
    486         }
    487 
    488         void connector_Drop(object sender, DragEventArgs e)
    489         {
    490             try
    491             {
    492                 if (e.Data.GetDataPresent("line"))
     475        void connector_MouseUp(object sender, MouseButtonEventArgs e)
     476        {
     477            if (IsLineDragging)
     478            {
     479                if (e.LeftButton == MouseButtonState.Released)
    493480                {
    494                     ConnectorView connector = e.Data.GetData("line") as ConnectorView;
     481                    ConnectorView connector = (sender as ConnectorView);
    495482                    if (ConnectorMouseLeftButtonDown != null)
    496483                    {
    497                         //Mouse.RemoveMouseUpHandler(Parent, Parent_MouseUp);
     484                        Mouse.RemoveMouseUpHandler(Parent, Parent_MouseUp);
    498485                        ConnectorMouseLeftButtonDown.Invoke(this, new ConnectorViewEventArgs() { connector = connector });
    499486                    }
    500487                }
    501488            }
    502             catch (Exception)
    503             { return; }
    504         }
    505 
    506         //void connector_MouseUp(object sender, MouseButtonEventArgs e)
    507         //{
    508         //    if (IsLineDragging)
    509         //    {
    510         //        if (e.LeftButton == MouseButtonState.Released)
    511         //        {
    512         //            ConnectorView connector = (sender as ConnectorView);
    513         //            if (ConnectorMouseLeftButtonDown != null)
    514         //            {
    515         //                //Mouse.RemoveMouseUpHandler(Parent, Parent_MouseUp);
    516         //                ConnectorMouseLeftButtonDown.Invoke(this, new ConnectorViewEventArgs() { connector = connector });
    517         //            }
    518         //        }
    519         //    }
    520         //    e.Handled = true;
    521         //}
    522 
    523         //void Parent_MouseUp(object sender, MouseButtonEventArgs e)
    524         //{
    525         //    if (IsLineDragging)
    526         //    {
    527         //        if (ReleaseDummyLine != null)
    528         //        {
    529         //            IsLineDragging = false;
    530         //            ReleaseDummyLine.Invoke(this, new EventArgs());
    531         //        }
    532         //    }
    533         //    Mouse.RemoveMouseUpHandler(Parent, Parent_MouseUp);
    534         //}
     489            e.Handled = true;
     490        }
     491
     492        void Parent_MouseUp(object sender, MouseButtonEventArgs e)
     493        {
     494            if (IsLineDragging)
     495            {
     496                if (ReleaseDummyLine != null)
     497                {
     498                    IsLineDragging = false;
     499                    Mouse.RemoveMouseUpHandler(Parent, Parent_MouseUp);
     500                    ReleaseDummyLine.Invoke(this, new EventArgs());
     501                }
     502            }
     503        }
    535504
    536505        public event EventHandler ReleaseDummyLine;
     
    546515                DragDrop.DoDragDrop(connector.Parent, dragData, DragDropEffects.Move);
    547516            }
    548             //if (e.LeftButton == MouseButtonState.Pressed && e.RightButton != MouseButtonState.Pressed)
    549             //{
    550             //    if (ConnectorMouseLeftButtonDown != null)
    551             //    {
    552             //        ConnectorMouseLeftButtonDown.Invoke(this, new ConnectorViewEventArgs() { connector = connector });
    553             //        DataObject dragData = new DataObject("line", connector);
    554             //        DragDrop.DoDragDrop(connector, dragData, DragDropEffects.None);
    555             //        //Mouse.AddMouseUpHandler(Parent, Parent_MouseUp);
    556             //    }
    557             //}
    558             //else
    559             //{ IsLineDragging = false; }
     517            if (e.LeftButton == MouseButtonState.Pressed && e.RightButton != MouseButtonState.Pressed)
     518            {
     519                if (ConnectorMouseLeftButtonDown != null)
     520                {
     521                    ConnectorMouseLeftButtonDown.Invoke(this, new ConnectorViewEventArgs() { connector = connector });
     522                    IsLineDragging = true;
     523                    Mouse.AddMouseUpHandler(Parent, Parent_MouseUp);
     524                }
     525            }
     526            else
     527            { IsLineDragging = false; }
    560528
    561529            e.Handled = true;
Note: See TracChangeset for help on using the changeset viewer.