Ignore:
Timestamp:
Jan 19, 2011, 11:43:55 AM (11 years ago)
Author:
matkovic
Message:

-fixed a Line issue
-Path finding only at "Mouse-Drop"

File:
1 edited

Legend:

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

    r2280 r2383  
    2424using System.Collections.ObjectModel;
    2525using Cryptool.PluginBase.Control;
     26using System.Collections;
    2627namespace WorkspaceManager.View.Container
    2728{
     
    106107           typeof(PluginContainerView),
    107108           new UIPropertyMetadata(Visibility.Collapsed, null));
     109
     110        public static readonly DependencyProperty IsDragStartedDependencyProperty = DependencyProperty.Register("IsDragStarted", typeof(bool), typeof(PluginContainerView), null);
     111
     112        [TypeConverter(typeof(bool))]
     113        public bool IsDragStarted
     114        {
     115            get { return (bool)base.GetValue(IsDragStartedDependencyProperty); }
     116            set
     117            {
     118                base.SetValue(IsDragStartedDependencyProperty, value);
     119            }
     120        }
    108121
    109122
     
    527540            this.CTextBox.Text = Model.Name;
    528541            this.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(PluginContainerView_MouseLeftButtonDown);
     542            this.PreviewMouseLeftButtonUp += new MouseButtonEventHandler(PluginContainerView_PreviewMouseLeftButtonUp);
    529543            //this.MouseEnter += new MouseEventHandler(PluginContainerView_MouseEnter);
    530544            //this.MouseLeave += new MouseEventHandler(PluginContainerView_MouseLeave);
     545        }
     546
     547        void PluginContainerView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
     548        {
     549            IsDragStarted = false;
    531550        }
    532551
     
    543562        void PluginContainerView_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    544563        {
    545             if (!Model.WorkspaceModel.SelectedPluginsList.Contains(this) && Model.WorkspaceModel.WorkspaceEditor.IsKeyMultiKeyDown)
     564            if (!Model.WorkspaceModel.SelectedPluginsList.Contains(this) && Model.WorkspaceModel.WorkspaceEditor.IsCtrlToggled)
    546565            {
    547566                Model.WorkspaceModel.SelectedPluginsList.Add(this);
    548567                IsSelected = true;
    549568            }
    550             else if (!Model.WorkspaceModel.WorkspaceEditor.IsKeyMultiKeyDown)
     569            else if (!Model.WorkspaceModel.WorkspaceEditor.IsCtrlToggled)
    551570            {
    552571                foreach (PluginContainerView plugin in Model.WorkspaceModel.SelectedPluginsList)
     
    558577                IsSelected = true;
    559578            }
     579
     580            IsDragStarted = true;
    560581        }
    561582
     
    889910        private void Thumb_DragDelta_1(object sender, DragDeltaEventArgs e)
    890911        {
    891             foreach (PluginContainerView plugin in Model.WorkspaceModel.SelectedPluginsList)
    892             {
    893                 plugin.SetPosition(new Point((Math.Round((Canvas.GetLeft(plugin) + e.HorizontalChange) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale,
    894                                                                 (Math.Round((Canvas.GetTop(plugin) + e.VerticalChange) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale));
    895 
    896                 if (plugin.GetPosition().X == 0 || plugin.GetPosition().Y == 0)
    897                     break;
     912            List<PluginContainerView> list = new List<PluginContainerView>(Model.WorkspaceModel.SelectedPluginsList);
     913            list.Sort((a,b) => a.GetPosition().X.CompareTo(b.GetPosition().X));
     914            foreach (PluginContainerView plugin in list)
     915            {
     916                Point p = new Point((Math.Round((Canvas.GetLeft(plugin) + e.HorizontalChange) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale,
     917                                                                (Math.Round((Canvas.GetTop(plugin) + e.VerticalChange) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale);
     918
     919                if (p.X <= 0 || p.Y <= 0)
     920                    break;
     921
     922                plugin.SetPosition(p);
     923
    898924            }
    899925
Note: See TracChangeset for help on using the changeset viewer.