Changeset 1760


Ignore:
Timestamp:
Aug 5, 2010, 9:03:30 AM (11 years ago)
Author:
matkovic
Message:

-Style changes
-Images added
-Various changes

Location:
trunk/CrypPlugins/WorkspaceManager
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/WorkspaceManager/Model/ConnectorModel.cs

    r1755 r1760  
    104104
    105105        /// <summary>
     106        /// The Orientation of this ConnectorModel
     107        /// </summary>
     108        public ConnectorOrientation Orientation = ConnectorOrientation.Unset;
     109
     110        /// <summary>
    106111        /// Creates a new ConnectorModel
    107112        /// </summary>
     
    246251                    if (this.UpdateableView != null)
    247252                    {
    248                         ((ConnectorView)this.UpdateableView).Ellipse.Fill = new SolidColorBrush(ColorHelper.GetColor(this.ConnectorType));
     253                        ((ConnectorView)this.UpdateableView).ConnectorRep.Fill = new SolidColorBrush(ColorHelper.GetColor(this.ConnectorType));
    249254                    }
    250255                }
  • trunk/CrypPlugins/WorkspaceManager/View/Container/ConnectorView.xaml

    r1717 r1760  
    4040            </Grid>
    4141        </Popup>
    42         <Ellipse Width="10" Height="10" Fill="Black" Name="Ellipse"></Ellipse>
     42        <Path Name="ConnectorRep" Margin="1,1,1,1" Fill="Black" Stretch="Fill" Stroke="#373e43" StrokeThickness="1" Width="10" Height="15" Data="M18,154.45381 L29.999666,187.66699 40.791059,154.54395">
     43            <Path.Effect>
     44                <DropShadowEffect ShadowDepth="0" BlurRadius="3.5"></DropShadowEffect>
     45            </Path.Effect>
     46            <Path.LayoutTransform>
     47                <TransformGroup>
     48                    <ScaleTransform x:Name="Scale"></ScaleTransform>
     49                    <RotateTransform x:Name="Rotation"></RotateTransform>
     50                </TransformGroup>
     51            </Path.LayoutTransform>
     52        </Path>
    4353    </Grid>
    4454</UserControl>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/ConnectorView.xaml.cs

    r1717 r1760  
    1919namespace WorkspaceManager.View.Container
    2020{
     21    public enum ConnectorOrientation
     22    {
     23        North,
     24        South,
     25        West,
     26        East,
     27        Unset
     28    };
     29
    2130    /// <summary>
    2231    /// Interaction logic for ConnectorView.xaml
     
    5766        }
    5867
     68        private ConnectorOrientation orientation;
     69        public ConnectorOrientation Orientation
     70        {
     71            get
     72            {
     73                return orientation;
     74            }
     75            set
     76            {
     77                orientation = value;
     78                switch (value)
     79                {
     80                    case ConnectorOrientation.West:
     81                        if (model.Outgoing)
     82                            Rotation.Angle = 90;
     83                        else
     84                            Rotation.Angle = -90;
     85                        break;
     86                    case ConnectorOrientation.East:
     87                        if (model.Outgoing)
     88                            Rotation.Angle = -90;
     89                        else
     90                            Rotation.Angle = 90;
     91                        break;
     92                    case ConnectorOrientation.North:
     93                        if (model.Outgoing)
     94                            Rotation.Angle = 180;
     95                        else
     96                            Rotation.Angle = 0;
     97                        break;
     98                    case ConnectorOrientation.South:
     99                        if (model.Outgoing)
     100                            Rotation.Angle = 0;
     101                        else
     102                            Rotation.Angle = 180;
     103                        break;
     104                }
     105
     106                this.Model.Orientation = value;
     107            }
     108        }
     109
    59110        public ConnectorView()
    60111        {
     
    67118            setBaseControl(Model);
    68119            InitializeComponent();
    69  
     120
     121            if (Model.IsMandatory)
     122            {
     123                Scale.ScaleX = 1.35;
     124                Scale.ScaleY = 1.35;
     125            }
     126
     127            if (Model.Orientation == ConnectorOrientation.Unset)
     128            {
     129                if (model.Outgoing)
     130                    this.Orientation = ConnectorOrientation.East;
     131                else
     132                    this.Orientation = ConnectorOrientation.West;
     133            }
     134            else
     135                this.Orientation = Model.Orientation;
     136
    70137            Color color = ColorHelper.GetColor(Model.ConnectorType);
    71             this.Ellipse.Fill = new SolidColorBrush(Color.FromArgb(color.A, color.R, color.G, color.B));
    72             this.Ellipse.ToolTip = Model.ToolTip;
     138            this.ConnectorRep.Fill = new SolidColorBrush(Color.FromArgb(color.A, color.R, color.G, color.B));
     139            this.ConnectorRep.ToolTip = Model.ToolTip;
    73140        }
    74141
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml

    r1747 r1760  
    5252
    5353            <Grid Name="MainGrid">
    54                 <Ellipse Fill="Black" Width="10" Height="10" HorizontalAlignment="Left" VerticalAlignment="Top"></Ellipse>
     54                <Grid Name="ConnectorPanel" Panel.ZIndex="120">
     55                    <StackPanel x:Name="West" Background="{StaticResource ResourceKey=CheatBrush}" Orientation="Vertical" HorizontalAlignment="Left" Width="22" Height="{Binding ElementName=Window, Path=ActualHeight}"></StackPanel>
     56                    <StackPanel x:Name="East" Background="{StaticResource ResourceKey=CheatBrush}" Orientation="Vertical" HorizontalAlignment="Right" Width="22" Height="{Binding ElementName=Window, Path=ActualHeight}"></StackPanel>
     57                    <StackPanel x:Name="North" Background="{StaticResource ResourceKey=CheatBrush}" Orientation="Horizontal" VerticalAlignment="Top" Height="22" Width="{Binding ElementName=Window, Path=ActualWidth}"></StackPanel>
     58                    <StackPanel x:Name="South" Background="{StaticResource ResourceKey=CheatBrush}" Orientation="Horizontal" VerticalAlignment="Bottom" Height="22" Width="{Binding ElementName=Window, Path=ActualWidth}"></StackPanel>
     59
     60                </Grid>
    5561                <Grid Margin="3">
    5662                   
     
    6066                        </Popup>
    6167                    </Canvas>
    62                     <Border Name="Window" BorderThickness="0" BorderBrush="Transparent" Margin="5">
     68                    <Border Name="Window" BorderThickness="0" BorderBrush="Transparent" Margin="8">
    6369                        <Grid>
    6470
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r1747 r1760  
    2020namespace WorkspaceManager.View.Container
    2121{
     22
    2223    /// <summary>
    2324    /// Interaction logic for PluginContainerView.xaml
     
    3536        private static double MinHeight;
    3637        private static double MinWidth;
    37         private bool p;
     38
    3839        #endregion
    3940
     
    8283            InitializeComponent();
    8384
     85            West.Drop += new DragEventHandler(Connector_Drop);
     86            East.Drop += new DragEventHandler(Connector_Drop);
     87            North.Drop += new DragEventHandler(Connector_Drop);
     88            South.Drop += new DragEventHandler(Connector_Drop);
     89
    8490            foreach (ConnectorModel ConnectorModel in model.InputConnectors)
    8591            {
    86                 AddInputConnectorView(new ConnectorView(ConnectorModel));
     92                ConnectorView connector = new ConnectorView(ConnectorModel);
     93                AddConnectorView(connector);
    8794            }
    8895
    8996            foreach (ConnectorModel ConnectorModel in model.OutputConnectors)
    9097            {
    91                 AddOutputConnectorView(new ConnectorView(ConnectorModel));
    92             }
    93         }
     98                ConnectorView connector = new ConnectorView(ConnectorModel);
     99                AddConnectorView(connector);
     100            }
     101        }
     102
     103        void Connector_Drop(object sender, DragEventArgs e)
     104        {
     105            StackPanel panel = sender as StackPanel;
     106            if (e.Data.GetDataPresent("connector"))
     107            {
     108                ConnectorView connector = e.Data.GetData("connector") as ConnectorView;
     109                if (panel.Children.Contains(connector))
     110                    return;
     111
     112                switch (connector.Orientation)
     113                {
     114                    case ConnectorOrientation.West:
     115                        this.West.Children.Remove(connector);
     116                        break;
     117                    case ConnectorOrientation.East:
     118                        this.East.Children.Remove(connector);
     119                        break;
     120                    case ConnectorOrientation.North:
     121                        this.North.Children.Remove(connector);
     122                        break;
     123                    case ConnectorOrientation.South:
     124                        this.South.Children.Remove(connector);
     125                        break;
     126                }
     127
     128                switch (panel.Name)
     129                {
     130                    case "West":
     131                        connector.Orientation = ConnectorOrientation.West;
     132                        this.West.Children.Add(connector);
     133                        break;
     134                    case "East":
     135                        connector.Orientation = ConnectorOrientation.East;
     136                        this.East.Children.Add(connector);
     137                        break;
     138                    case "North":
     139                        connector.Orientation = ConnectorOrientation.North;
     140                        this.North.Children.Add(connector);
     141                        break;
     142                    case "South":
     143                        connector.Orientation = ConnectorOrientation.South;
     144                        this.South.Children.Add(connector);
     145                        break;
     146                }
     147
     148                SetAllConnectorPositionX();
     149                e.Handled = true;
     150            }
     151        }
     152
    94153        #endregion
    95154
    96155        #region Public Methods
    97         public void AddInputConnectorView(ConnectorView connector)
    98         {
     156        public void AddConnectorView(ConnectorView connector)
     157        {
     158            switch (connector.Orientation)
     159            {
     160                case ConnectorOrientation.West:
     161                    this.West.Children.Add(connector);
     162                    break;
     163                case ConnectorOrientation.East:
     164                    this.East.Children.Add(connector);
     165                    break;
     166                case ConnectorOrientation.North:
     167                    this.North.Children.Add(connector);
     168                    break;
     169                case ConnectorOrientation.South:
     170                    this.South.Children.Add(connector);
     171                    break;
     172            }
     173
    99174            connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
    100             this.ConnectorViewList.Add(connector);
    101             this.InputConnectorPanel.Children.Add(connector);
    102         }
    103 
    104 
    105         public void AddOutputConnectorView(ConnectorView connector)
    106         {
    107             connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
    108             this.ConnectorViewList.Add(connector);
    109             this.OutputConnectorPanel.Children.Add(connector);
     175            connectorViewList.Add(connector);
    110176        }
    111177
     
    148214                double x, y;
    149215
    150                 foreach (ConnectorView conn in InputConnectorPanel.Children)
     216                foreach (ConnectorView conn in West.Children)
    151217                {
    152                     gTransform = this.InputConnectorPanel.TransformToVisual(this);
    153                     gTransformSec = conn.TransformToVisual(this.InputConnectorPanel);
     218                    gTransform = this.West.TransformToVisual(this);
     219                    gTransformSec = conn.TransformToVisual(this.West);
    154220
    155221                    point = gTransform.Transform(new Point(0, 0));
     
    163229                }
    164230
    165                 foreach (ConnectorView conn in OutputConnectorPanel.Children)
     231                foreach (ConnectorView conn in East.Children)
    166232                {
    167                     gTransform = this.OutputConnectorPanel.TransformToVisual(this);
    168                     gTransformSec = conn.TransformToVisual(this.OutputConnectorPanel);
     233                    gTransform = this.East.TransformToVisual(this);
     234                    gTransformSec = conn.TransformToVisual(this.East);
     235
     236                    point = gTransform.Transform(new Point(0, 0));
     237                    relativePoint = gTransformSec.Transform(new Point(0, 0));
     238
     239                    x = (RenderTransform as TranslateTransform).X + point.X + relativePoint.X;
     240                    y = (RenderTransform as TranslateTransform).Y + point.Y + relativePoint.Y;
     241
     242                    conn.PositionOnWorkSpaceX = x;
     243                    conn.PositionOnWorkSpaceY = y;
     244                }
     245
     246                foreach (ConnectorView conn in North.Children)
     247                {
     248                    gTransform = this.North.TransformToVisual(this);
     249                    gTransformSec = conn.TransformToVisual(this.North);
     250
     251                    point = gTransform.Transform(new Point(0, 0));
     252                    relativePoint = gTransformSec.Transform(new Point(0, 0));
     253
     254                    x = (RenderTransform as TranslateTransform).X + point.X + relativePoint.X;
     255                    y = (RenderTransform as TranslateTransform).Y + point.Y + relativePoint.Y;
     256
     257                    conn.PositionOnWorkSpaceX = x;
     258                    conn.PositionOnWorkSpaceY = y;
     259                }
     260
     261                foreach (ConnectorView conn in South.Children)
     262                {
     263                    gTransform = this.South.TransformToVisual(this);
     264                    gTransformSec = conn.TransformToVisual(this.South);
    169265
    170266                    point = gTransform.Transform(new Point(0, 0));
     
    219315        void connector_OnConnectorMouseLeftButtonDown(object sender, ConnectorViewEventArgs e)
    220316        {
     317            DataObject dragData = new DataObject("connector", e.connector);
     318            DragDrop.DoDragDrop(e.connector.Parent, dragData, DragDropEffects.Move);
     319
    221320            if (this.ConnectorMouseLeftButtonDown != null)
    222             {
    223321                this.ConnectorMouseLeftButtonDown.Invoke(this, e);
    224             }
    225322        }
    226323
     
    228325        {
    229326            if (this.Delete != null)
    230             {
    231327                this.Delete.Invoke(this, new PluginContainerViewDeleteViewEventArgs { container = this });
    232             }
    233328        }
    234329
     
    236331        {
    237332            if (this.ShowSettings != null)
    238             {
    239333                this.ShowSettings.Invoke(this, new PluginContainerViewSettingsViewEventArgs { container = this });
    240             }
    241334        }
    242335
     
    276369                if ((PluginBase.ActualHeight + e.VerticalChange) > 0)
    277370                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
    278 
    279371            }
    280372
     
    320412            }
    321413
    322             foreach (ConnectorView connector in connectorViewList)
    323             {
    324                 this.DataPresentationPanel.Children.Add(new DataPresentation(connector));
    325             }
     414            //foreach (ConnectorView connector in connectorViewList)
     415            //{
     416            //    this.DataPresentationPanel.Children.Add(new DataPresentation(connector));
     417            //}
    326418
    327419            this.SetAllConnectorPositionX();
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml

    r1747 r1760  
    77             xmlns:f="clr-namespace:WorkspaceManager.View.Container"
    88             xmlns:p="clr-namespace:WorkspaceManager.Properties"
     9             xmlns:z="clr-namespace:WorkspaceManager.View.Converter"
    910             AllowDrop="True"
    1011             mc:Ignorable="d"
     
    1617                <ResourceDictionary Source="../Resource/Animations.xaml"/>
    1718            </ResourceDictionary.MergedDictionaries>
     19            <z:ScaleToPercentageConverter x:Key="PercentageConverter"></z:ScaleToPercentageConverter>
    1820        </ResourceDictionary>
    1921    </UserControl.Resources>
    2022    <Grid>
    21         <Grid Background="{StaticResource ResourceKey=EditorBackgroundRadientBrush}">
     23        <Grid Background="WhiteSmoke">
     24            <DockPanel Height="auto" Width="auto" Panel.ZIndex="100">
     25                <e:BottomBox DockPanel.Dock="Top" VerticalAlignment="Top"></e:BottomBox>
     26            </DockPanel>
    2227            <Border>
    23                 <Canvas Name="root">
    24                     <Canvas.LayoutTransform>
    25                         <TransformGroup>
     28                <Border.Background>
     29                    <ImageBrush ImageSource="/WorkspaceManager;component/View/Image/bg.png" Opacity="0.95" Stretch="UniformToFill"/>
     30                </Border.Background>
     31                <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
     32                    <Grid Name="root" Background="{StaticResource ResourceKey=GridBrush}" RenderTransformOrigin="0.5, 0.5">
     33                        <Grid.LayoutTransform>
    2634                            <ScaleTransform x:Name="Scale" ScaleX="{Binding Source={x:Static p:Settings.Default}, Path=EditScale, Mode=OneWay}" ScaleY="{Binding Source={x:Static p:Settings.Default}, Path=EditScale, Mode=OneWay}"></ScaleTransform>
    27                         </TransformGroup>
    28                     </Canvas.LayoutTransform>
    29                 </Canvas>
     35                        </Grid.LayoutTransform>
     36                    </Grid>
     37                </ScrollViewer>
    3038            </Border>
    31             <DockPanel Height="auto" Width="auto">
    32                 <e:BottomBox DockPanel.Dock="Bottom" VerticalAlignment="Bottom"></e:BottomBox>
    33             </DockPanel>
     39            <StackPanel Margin="0,0,0,0" Name="MainElementsBorder" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom">
     40                <StackPanel.LayoutTransform>
     41                    <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
     42                </StackPanel.LayoutTransform>
     43                <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
     44                    <Label Foreground="WhiteSmoke" VerticalAlignment="Top" ContentStringFormat="{}{0:F0} %" Content="{Binding Source={x:Static p:Settings.Default}, Path=EditScale, Mode=OneWay, Converter={StaticResource ResourceKey=PercentageConverter}}" Width="42"></Label>
     45                </Border>
     46                <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
     47                    <Button Height="18" Margin="5,2,5,0" Style="{StaticResource ResourceKey=ScalePluginContainerButtonStyle}" Click="Button_Click_1">
     48                        <Image VerticalAlignment="Top" Source="/WorkspaceManager;component/View/Image/reduce.png" Width="18" Height="18"></Image>
     49                    </Button>
     50                </Border>
     51                <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
     52                    <Slider Name="SliderEditorSize" Ticks="1,2" TickPlacement="BottomRight" Style="{StaticResource ResourceKey=SliderStyle}"
     53                                    Minimum="0.5" Maximum="2" Width="100" Height="22"
     54                                    Value="{Binding Source={x:Static p:Settings.Default}, Path=EditScale, Mode=TwoWay}"/>
     55                </Border>
     56                <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
     57                    <Button Height="18" Margin="5,2,5,0" Style="{StaticResource ResourceKey=ScalePluginContainerButtonStyle}" Click="Button_Click">
     58                        <Image VerticalAlignment="Top" Source="/WorkspaceManager;component/View/Image/increase.png" Width="18" Height="18"></Image>
     59                    </Button>
     60                </Border>
     61            </StackPanel>
    3462        </Grid>
    3563       
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml.cs

    r1717 r1760  
    8080                Model.deletePluginModel(e.container.Model);
    8181                root.Children.Remove(e.container);
     82                Model.WorkspaceManagerEditor.HasChanges = true;
    8283            }
    8384        }
     
    100101                this.root.Children.Add(newPluginContainerView);
    101102                Canvas.SetZIndex(newPluginContainerView, 100);
     103                Model.WorkspaceManagerEditor.HasChanges = true;
    102104            }
    103105        }
     
    108110        }
    109111
    110         public void AddConnection(IConnectable source, IConnectable target)
     112        public void AddConnection(ConnectorView source, ConnectorView target)
    111113        {
    112114            if (this.State == EditorState.READY)
     
    135137        }
    136138
    137         private void AddConnectionSource(IConnectable source, CryptoLineView conn)
     139        private void AddConnectionSource(ConnectorView source, CryptoLineView conn)
    138140        {
    139141            if (this.State == EditorState.READY)
     
    146148        }
    147149
    148         private MultiBinding CreateConnectorBinding(IConnectable connectable)
     150        private MultiBinding CreateConnectorBinding(ConnectorView connectable)
    149151        {
    150152            MultiBinding multiBinding = new MultiBinding();
    151153            multiBinding.Converter = new ConnectorBindingConverter();
     154            multiBinding.ConverterParameter = connectable;
    152155
    153156            Binding binding = new Binding();
     
    170173            binding.Path = new PropertyPath(FrameworkElement.ActualWidthProperty);
    171174            multiBinding.Bindings.Add(binding);
     175
    172176
    173177            return multiBinding;
     
    230234            {
    231235                point = selectedPluginContainer.GetPosition();
    232                 this.selectedPluginContainer.SetPosition(new Point(point.X + Mouse.GetPosition(root).X - previousDragPoint.X, point.Y + Mouse.GetPosition(root).Y - previousDragPoint.Y));
    233             }
     236                this.selectedPluginContainer.SetPosition(new Point((Math.Round((Mouse.GetPosition(root).X - previousDragPoint.X) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale,
     237                                                            (Math.Round((Mouse.GetPosition(root).Y - previousDragPoint.Y) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale));
     238                Model.WorkspaceManagerEditor.HasChanges = true;
     239                //this.selectedPluginContainer.SetPosition(new Point((Math.Round(( Mouse.GetPosition(root).X )/Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale,
     240                //                                            (Math.Round(( Mouse.GetPosition(root).Y ) / Properties.Settings.Default.GridScale)) * Properties.Settings.Default.GridScale));
     241            }
     242
     243
    234244
    235245            if (selectedConnector != null && root.Children.Contains(dummyLine))
     
    237247                this.dummyLine.EndPoint = Mouse.GetPosition(root);
    238248            }
    239             this.previousDragPoint = Mouse.GetPosition(root);
    240249        }
    241250
     
    246255        }
    247256
     257        private void Button_Click(object sender, RoutedEventArgs e)
     258        {
     259            SliderEditorSize.Value += 0.3;
     260        }
     261
     262        private void Button_Click_1(object sender, RoutedEventArgs e)
     263        {
     264            SliderEditorSize.Value -= 0.3;
     265        }
     266
    248267        void shape_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    249268        {
    250             Canvas.SetZIndex(sender as PluginContainerView, 101);
    251269            this.selectedPluginContainer = sender as PluginContainerView;
     270            this.previousDragPoint = Mouse.GetPosition(selectedPluginContainer);
     271            Canvas.SetZIndex(selectedPluginContainer, 101);
     272
    252273            PluginChangedEventArgs args = new PluginChangedEventArgs(this.selectedPluginContainer.Model.Plugin, this.selectedPluginContainer.Model.Name, DisplayPluginMode.Normal);
    253274            this.Model.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     275
    254276            e.Handled = true;
    255277        }
     
    259281            if (this.State == EditorState.READY)
    260282            {
    261                 DragDropDataObject obj = e.Data.GetData("Cryptool.PluginBase.Editor.DragDropDataObject") as DragDropDataObject;
    262                 PluginModel pluginModel = Model.newPluginModel(DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName));
    263                 if (obj != null)
    264                     this.AddPluginContainerView(e.GetPosition(root), pluginModel);
     283                if (e.Data.GetDataPresent("Cryptool.PluginBase.Editor.DragDropDataObject"))
     284                {
     285                    DragDropDataObject obj = e.Data.GetData("Cryptool.PluginBase.Editor.DragDropDataObject") as DragDropDataObject;
     286                    PluginModel pluginModel = Model.newPluginModel(DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName));
     287                    if (obj != null)
     288                        this.AddPluginContainerView(e.GetPosition(root), pluginModel);
     289                    Model.WorkspaceManagerEditor.HasChanges = true;
     290                }
     291                else
     292                    return;
    265293            }
    266294        }
     
    293321                this.loadPluginContainerView(model);
    294322            }
    295             foreach(ConnectionModel connModel in WorkspaceModel.AllConnectionModels)
     323            foreach (ConnectionModel connModel in WorkspaceModel.AllConnectionModels)
    296324            {
    297325                CryptoLineView conn = new CryptoLineView(connModel);
     
    306334                        foreach (ConnectorView connector in container.ConnectorViewList)
    307335                        {
    308                             if(connModel.From == connector.model)
     336                            if (connModel.From == connector.Model)
    309337                                conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(connector));
    310                             else if(connModel.To == connector.model)
     338                            else if (connModel.To == connector.Model)
    311339                                conn.SetBinding(CryptoLineView.EndPointProperty, CreateConnectorBinding(connector));
    312340                        }
     
    333361            Canvas.SetZIndex(newPluginContainerView, 100);
    334362        }
     363
     364        internal void ResetConnections()
     365        {
     366            foreach (CryptoLineView line in ConnectionList)
     367            {
     368                line.Reset();
     369            }
     370        }
    335371    }
    336372}
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Brushes.xaml

    r1747 r1760  
    22    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    33
    4     <LinearGradientBrush x:Key="EditorBackgroundLinearBrush" StartPoint="0,0" EndPoint="0,1">
     4    <LinearGradientBrush x:Key="EditorBackgroundLinearBrush" StartPoint="0,0" EndPoint="0,1" Opacity="0.8">
    55        <GradientBrush.GradientStops>
    66            <GradientStopCollection>
    7                 <GradientStop Color="#333333" Offset="1.0"/>
    8                 <GradientStop Color="#666666" Offset="0.0"/>
     7                <GradientStop Color="#192533" Offset="1.0"/>
     8                <GradientStop Color="#3e464d" Offset="0.0"/>
    99            </GradientStopCollection>
    1010        </GradientBrush.GradientStops>
     
    1414        <GradientBrush.GradientStops>
    1515            <GradientStopCollection>
    16                 <GradientStop Color="#AA666666" Offset="1.0"/>
    17                 <GradientStop Color="#AA666666" Offset="0.0"/>
     16                <GradientStop Color="#26282a" Offset="1.0"/>
     17                <GradientStop Color="#36393c" Offset="0.0"/>
    1818            </GradientStopCollection>
    1919        </GradientBrush.GradientStops>
    2020    </LinearGradientBrush>
     21
     22    <SolidColorBrush x:Key="CheatBrush" Opacity="0.01" Color="#444444"></SolidColorBrush>
    2123
    2224    <LinearGradientBrush x:Key="DataPresentationLinearBrush" StartPoint="0,0" EndPoint="0,1">
     
    5759    </RadialGradientBrush>
    5860
    59     <DrawingBrush x:Key="GridBrush" Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile" Opacity="0.05">
     61    <DrawingBrush x:Key="GridBrush" Viewport="0,0,6,6" ViewportUnits="Absolute" TileMode="Tile" Opacity="0.085">
    6062        <DrawingBrush.Drawing>
    6163            <DrawingGroup>
    62                 <GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="WhiteSmoke" />
    63                 <GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="WhiteSmoke" />
     64                <GeometryDrawing Geometry="M0,0 L1,0 1,0.1, 0,0.1Z" Brush="White" />
     65                <GeometryDrawing Geometry="M0,0 L0,1 0.1,1, 0.1,0Z" Brush="White" />
    6466            </DrawingGroup>
    6567        </DrawingBrush.Drawing>
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/BottomBox.xaml

    r1685 r1760  
    44    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    55    xmlns:z="clr-namespace:WorkspaceManager.View.Converter"
    6     xmlns:p="clr-namespace:WorkspaceManager.Properties"
    7     Width="auto">
     6    xmlns:p="clr-namespace:WorkspaceManager.Properties">
    87    <UserControl.Resources>
    98        <ResourceDictionary>
     
    1615    </UserControl.Resources>
    1716   
    18     <UserControl.LayoutTransform>
    19         <ScaleTransform ScaleX="0.85" ScaleY="0.85"></ScaleTransform>
    20     </UserControl.LayoutTransform>
    21    
    2217    <UserControl.Effect>
    23         <DropShadowEffect BlurRadius="10" Color="Black" ShadowDepth="0.5" Direction="90" Opacity="0.4"></DropShadowEffect>
     18        <DropShadowEffect BlurRadius="10" Color="Black" ShadowDepth="0.5" Direction="90" Opacity="1"></DropShadowEffect>
    2419    </UserControl.Effect>
    2520
    26     <DockPanel Name="Root" MouseEnter="Main_MouseEnter" MouseLeave="Main_MouseLeave">
     21    <DockPanel Name="Root">
    2722        <DockPanel.Background>
    2823            <SolidColorBrush Opacity="0.01" Color="#444444"></SolidColorBrush>
    2924        </DockPanel.Background>
    30         <Border Name="Main" Height="10" DockPanel.Dock="Bottom" VerticalAlignment="Bottom" ClipToBounds="True" Background="{StaticResource ResourceKey=BottomBoxBrushLinearBrush}" BorderBrush="#bfd0f5" BorderThickness="0.5" CornerRadius="15,15,0,0">
    31             <StackPanel Name="MainElementsBorder" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Visibility="Collapsed">
    32                 <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
    33                     <Label Foreground="WhiteSmoke" VerticalAlignment="Top" ContentStringFormat="{}{0:F0} %" Content="{Binding Source={x:Static p:Settings.Default}, Path=EditScale, Mode=OneWay, Converter={StaticResource ResourceKey=PercentageConverter}}" Width="42"></Label>
    34                 </Border>
    35                 <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
    36                     <Button Height="18" Margin="5,2,5,0" Style="{StaticResource ResourceKey=ScalePluginContainerButtonStyle}" Click="Button_Click_1">
    37                         <Image VerticalAlignment="Top" Source="/WorkspaceManager;component/View/Image/reduce.png" Width="18" Height="18"></Image>
     25        <Border Name="Main" Height="25" Width="300" DockPanel.Dock="Bottom" VerticalAlignment="Bottom" ClipToBounds="True" Background="{StaticResource ResourceKey=BottomBoxBrushLinearBrush}" BorderBrush="#bfd0f5" BorderThickness="0.65" CornerRadius="0,0,5,5">
     26            <Border Opacity="0.85" CornerRadius="0,0,0,5" Width="30" HorizontalAlignment="Left" Margin="0.65">
     27                <Border.Background>
     28                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
     29                        <GradientBrush.GradientStops>
     30                            <GradientStopCollection>
     31                                <GradientStop Color="#0b85f8" Offset="-1"/>
     32                                <GradientStop Color="#333333" Offset="1.0"/>
     33                            </GradientStopCollection>
     34                        </GradientBrush.GradientStops>
     35                    </LinearGradientBrush>
     36                </Border.Background>
     37                <StackPanel HorizontalAlignment="left">
     38                    <Button Height="18" Margin="5,2,5,0" Style="{StaticResource ResourceKey=ScalePluginContainerButtonStyle}">
     39                        <Image VerticalAlignment="Top" Source="/WorkspaceManager;component/View/Image/ct.png"></Image>
    3840                    </Button>
    39                 </Border>
    40                 <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
    41                     <Slider Name="SliderEditorSize" Ticks="1,2" TickPlacement="BottomRight" Style="{StaticResource ResourceKey=SliderStyle}"
    42                                     Minimum="0.5" Maximum="2" Width="100" Height="22"
    43                                     Value="{Binding Source={x:Static p:Settings.Default}, Path=EditScale, Mode=TwoWay}"/>
    44                 </Border>
    45                 <Border Margin="1,1,1,1" Opacity="0.85" CornerRadius="5,5,0,0">
    46                     <Button Height="18" Margin="5,2,5,0" Style="{StaticResource ResourceKey=ScalePluginContainerButtonStyle}" Click="Button_Click">
    47                         <Image VerticalAlignment="Top" Source="/WorkspaceManager;component/View/Image/increase.png" Width="18" Height="18"></Image>
    48                     </Button>
    49                 </Border>
    50             </StackPanel>
     41                </StackPanel>
     42            </Border>
     43           
    5144        </Border>
    5245
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/BottomBox.xaml.cs

    r1717 r1760  
    2929        void BottomBox_Loaded(object sender, RoutedEventArgs e)
    3030        {
    31             if (MainElementsBorder.Visibility == Visibility.Collapsed)
    32                 Main_MouseLeave(null, null);
    33         }
    3431
    35         private void Button_Click(object sender, RoutedEventArgs e)
    36         {
    37             SliderEditorSize.Value += 0.3;
    38         }
    39 
    40         private void Button_Click_1(object sender, RoutedEventArgs e)
    41         {
    42             SliderEditorSize.Value -= 0.3;
    4332        }
    4433
     
    4837            Main.BeginStoryboard((this.Resources["IncrementHeigth"] as Storyboard));
    4938            //(this.Resources["Up"] as Storyboard).Stop(Sub);
    50             MainElementsBorder.Visibility = Visibility.Visible;
    5139        }
    5240
     
    5644            Main.BeginStoryboard((this.Resources["DecrementHeigth"] as Storyboard));
    5745            //Sub.BeginStoryboard((this.Resources["Up"] as Storyboard));
    58             MainElementsBorder.Visibility = Visibility.Collapsed;
    5946        }
    6047    }
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/CryptoLineView/CryptoLineView.cs

    r1756 r1760  
    3030            private set { model = value; }
    3131        }
    32         private static double offset = 7.5;
     32        private static double offset = 6;
    3333
    3434        #endregion
     
    167167                if(isBetween(down.Y, up.Y, left.Y) && isBetween(left.X, right.X, up.X))
    168168                {
    169                     if (StartPoint.Y == StartPointSec.Y && StartPoint.X > StartPointSec.X)
     169                    if (StartPoint.Y == StartPointSec.Y
     170                        && (((StartPoint.X >= StartPointSec.X && StartPointSec.X >= EndPoint.X))
     171                        || ((StartPoint.X <= StartPointSec.X && StartPointSec.X <= EndPoint.X))))
    170172                    {
    171                         intersectPoint = new IntersectPoint(new Point(up.X, left.Y));
    172                         //intersectPoint.Mode = IntersectPointMode.InnerIntersect;
     173                        intersectPoint = new IntersectPoint(new Point(up.X, left.Y), IntersectPointMode.NormalIntersect);
    173174                    }
    174175                    else
    175176                    {
    176                         intersectPoint = new IntersectPoint(new Point(up.X, left.Y));
     177                        intersectPoint = new IntersectPoint(new Point(up.X, left.Y), IntersectPointMode.NormalIntersect);
    177178                    }
    178179                    return true;
     
    214215                    foreach (IntersectPoint interPoint in fromTo.Intersection)
    215216                    {
    216                         if (intersectPoint.Mode == IntersectPointMode.NormalIntersect)
     217                        switch (fromTo.DirSort)
    217218                        {
    218                             switch (fromTo.DirSort)
    219                             {
    220                                 case DirSort.X_ASC:
     219                            case DirSort.X_ASC:
     220                                if (intersectPoint.Mode == IntersectPointMode.NormalIntersect)
     221                                {
    221222                                    context.LineTo(new Point(interPoint.Point.X - offset, interPoint.Point.Y), true, true);
    222223                                    context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y - offset), new Point(interPoint.Point.X + offset, interPoint.Point.Y), true, true);
    223                                     break;
    224                                 case DirSort.X_DESC:
     224                                }
     225                                else if (intersectPoint.Mode == IntersectPointMode.InnerIntersect)
     226                                {
     227                                    context.LineTo(new Point(interPoint.Point.X - 4, interPoint.Point.Y), true, true);
     228                                    context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y - 5), new Point(interPoint.Point.X + 4, interPoint.Point.Y), true, true);
     229                                    context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y + 5), new Point(interPoint.Point.X - 4, interPoint.Point.Y), true, true);
     230                                }
     231                                break;
     232                            case DirSort.X_DESC:
     233                                if (intersectPoint.Mode == IntersectPointMode.NormalIntersect)
     234                                {
    225235                                    context.LineTo(new Point(interPoint.Point.X + offset, interPoint.Point.Y), true, true);
    226236                                    context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y - offset), new Point(interPoint.Point.X - offset, interPoint.Point.Y), true, true);
    227                                     break;
    228                                 //case DirSort.Y_ASC:
    229                                 //    context.LineTo(new Point(interPoint.X, interPoint.Y - offset), true, true);
    230                                 //    context.QuadraticBezierTo(new Point(interPoint.X + offset, interPoint.Y), new Point(interPoint.X, interPoint.Y + offset), true, true);
    231                                 //    break;
    232                                 //case DirSort.Y_DESC:
    233                                 //    context.LineTo(new Point(interPoint.X, interPoint.Y + offset), true, true);
    234                                 //    context.QuadraticBezierTo(new Point(interPoint.X + offset, interPoint.Y), new Point(interPoint.X, interPoint.Y - offset), true, true);
    235                                 //    break;
    236                             }
    237                         }
    238                         else if (intersectPoint.Mode == IntersectPointMode.InnerIntersect)
    239                         {
    240                             context.LineTo(new Point(interPoint.Point.X - offset, interPoint.Point.Y), true, true);
    241                             context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y - offset), new Point(interPoint.Point.X + offset, interPoint.Point.Y), true, true);
    242                             context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y - offset), new Point(interPoint.Point.X - offset, interPoint.Point.Y), true, true);
     237                                }
     238                                else if (intersectPoint.Mode == IntersectPointMode.InnerIntersect)
     239                                {
     240                                    context.LineTo(new Point(interPoint.Point.X + 4, interPoint.Point.Y), true, true);
     241                                    context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y - 5), new Point(interPoint.Point.X - 4, interPoint.Point.Y), true, true);
     242                                    context.QuadraticBezierTo(new Point(interPoint.Point.X, interPoint.Point.Y + 5), new Point(interPoint.Point.X + 4, interPoint.Point.Y), true, true);
     243                                }
     244                                break;
     245                            //case DirSort.Y_ASC:
     246                            //    context.LineTo(new Point(interPoint.X, interPoint.Y - offset), true, true);
     247                            //    context.QuadraticBezierTo(new Point(interPoint.X + offset, interPoint.Y), new Point(interPoint.X, interPoint.Y + offset), true, true);
     248                            //    break;
     249                            //case DirSort.Y_DESC:
     250                            //    context.LineTo(new Point(interPoint.X, interPoint.Y + offset), true, true);
     251                            //    context.QuadraticBezierTo(new Point(interPoint.X + offset, interPoint.Y), new Point(interPoint.X, interPoint.Y - offset), true, true);
     252                            //    break;
    243253                        }
    244254                    }
     
    283293
    284294        #endregion
     295
     296        internal void Reset()
     297        {
     298            Color color = ColorHelper.GetColor(Model.ConnectionType);
     299            Stroke = new SolidColorBrush(color);
     300        }
    285301    }
    286302}
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/CryptoLineView/IntersectPoint.cs

    r1756 r1760  
    1515    public class IntersectPoint
    1616    {
    17         public Point Point { get; set; }
    18         public IntersectPointMode Mode { get; set; }
     17        public Point Point { get; private set; }
     18        public IntersectPointMode Mode { get; private set; }
    1919
    20         public IntersectPoint(Point point)
     20        public IntersectPoint(Point point, IntersectPointMode mode)
    2121        {
    22             this.Mode = IntersectPointMode.NormalIntersect;
     22            this.Mode = mode;
    2323            this.Point = point;
    2424        }
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.cs

    r1755 r1760  
    366366                this.WorkspaceSpaceEditorView.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    367367                {
     368                    this.WorkspaceSpaceEditorView.ResetConnections();
    368369                    this.WorkspaceSpaceEditorView.State = EditorState.BUSY;                   
    369370                }
     
    429430                this.WorkspaceSpaceEditorView.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    430431                {
     432                    this.WorkspaceSpaceEditorView.ResetConnections();
    431433                    this.WorkspaceSpaceEditorView.State = EditorState.READY;
    432434                }
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.csproj

    r1756 r1760  
    225225    <Resource Include="View\Image\search.png" />
    226226  </ItemGroup>
     227  <ItemGroup>
     228    <Resource Include="View\Image\bg.png" />
     229  </ItemGroup>
     230  <ItemGroup>
     231    <Resource Include="View\Image\ct.png" />
     232  </ItemGroup>
    227233  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    228234  <!--<PropertyGroup>
Note: See TracChangeset for help on using the changeset viewer.