Changeset 1640


Ignore:
Timestamp:
Jun 15, 2010, 7:49:47 AM (12 years ago)
Author:
matkovic
Message:

-ProgresBar added
-few updates added
-Orthogonal PolyLines added(experimental)

Location:
trunk/CrypPlugins/WorkspaceManager
Files:
9 edited

Legend:

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

    r1621 r1640  
    2424        /// <param name="obj"></param>
    2525        /// <returns></returns>
    26         public static Color GetDataColor(Type type)
     26        public static Color GetColor(Type type)
    2727        {
    2828            if (type.FullName == "System.String")
     
    5757            else
    5858            {
     59                if (type.GetInterface(typeof(IEncryption).Name) != null)
     60                {
     61                    EncryptionTypeAttribute eta = type.GetEncryptionTypeAttribute();
     62                    switch (eta.EncryptionType)
     63                    {
     64                        case EncryptionType.Asymmetric:
     65                            return Colors.MediumSeaGreen;
     66
     67                        case EncryptionType.Classic:
     68                            return Colors.LightBlue;
     69
     70                        case EncryptionType.SymmetricBlock:
     71                            return Colors.LightYellow;
     72
     73                        case EncryptionType.SymmetricStream:
     74                            return Colors.LightSteelBlue;
     75
     76                        case EncryptionType.Hybrid:
     77                            return Colors.Khaki;
     78                    }
     79                }
     80
     81                if (type.GetInterface(typeof(IGenerator).Name) != null)
     82                {
     83                    return Colors.LemonChiffon;
     84                }
     85
     86                if (type.GetInterface(typeof(IHash).Name) != null)
     87                {
     88                    return Colors.Orange;
     89                }
     90
     91                if (type.GetInterface(typeof(IStatistic).Name) != null)
     92                {
     93                    return Colors.Violet;
     94                }
     95
     96                if (type.GetInterface(typeof(IAnalysisMisc).Name) != null)
     97                {
     98                    return Colors.Turquoise;
     99                }
     100
    59101                return Colors.Black;
    60102            }
    61103        }
    62 
    63         /// <summary>
    64         /// Return color from a giving PluginType
    65         /// </summary>
    66         /// <param name="type"></param>
    67         /// <returns></returns>
    68         public static Color GetPluginTypeColor(Type type)
    69         {
    70             if (type.GetInterface(typeof(IEncryption).Name) != null)
    71             {
    72                 EncryptionTypeAttribute eta = type.GetEncryptionTypeAttribute();
    73                 switch (eta.EncryptionType)
    74                 {
    75                     case EncryptionType.Asymmetric:
    76                         return Colors.MediumSeaGreen;
    77 
    78                     case EncryptionType.Classic:
    79                         return Colors.LightBlue;
    80 
    81                     case EncryptionType.SymmetricBlock:
    82                         return Colors.LightYellow;
    83 
    84                     case EncryptionType.SymmetricStream:
    85                         return Colors.LightSteelBlue;
    86 
    87                     case EncryptionType.Hybrid:
    88                         return Colors.Khaki;
    89                 }
    90             }
    91 
    92             if (type.GetInterface(typeof(IGenerator).Name) != null)
    93             {
    94                 return Colors.LemonChiffon;
    95             }
    96 
    97             if (type.GetInterface(typeof(IHash).Name) != null)
    98             {
    99                 return Colors.Orange;
    100             }
    101 
    102             if (type.GetInterface(typeof(IStatistic).Name) != null)
    103             {
    104                 return Colors.Violet;
    105             }
    106 
    107             if (type.GetInterface(typeof(IAnalysisMisc).Name) != null)
    108             {
    109                 return Colors.Turquoise;
    110             }
    111 
    112             return Colors.Black;
    113         }
    114104    }
    115105}
  • trunk/CrypPlugins/WorkspaceManager/Model/PluginModel.cs

    r1637 r1640  
    8989        /// The execution state of the progress of the wrapped plugin
    9090        /// </summary>
    91         public double PercentageFinished { private get; set; }
     91        public double PercentageFinished { get; set; }
    9292
    9393        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/ConnectorView.xaml.cs

    r1621 r1640  
    2121    /// Interaction logic for ConnectorView.xaml
    2222    /// </summary>
    23     public partial class ConnectorView : UserControl, IConnectable
     23    public partial class ConnectorView : UserControl, IConnectable, IUpdateableView
    2424    {
    2525        public static readonly DependencyProperty PositionOnWorkSpaceXProperty = DependencyProperty.Register("PositionOnWorkSpaceX", typeof(double), typeof(ConnectorView), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsMeasure));
     
    6565            this.Model = cModel;
    6666            InitializeComponent();
    67             Color color = ColorHelper.GetDataColor(cModel.ConnectorType);
     67            Color color = ColorHelper.GetColor(cModel.ConnectorType);
    6868            this.Ellipse.Fill = new SolidColorBrush(Color.FromArgb(color.A, color.R, color.G, color.B));
    6969            this.Ellipse.ToolTip = cModel.ToolTip;
     
    8282            get { throw new NotImplementedException(); }
    8383        }
     84
     85        public void update()
     86        {
     87            if (model.HasLastData)
     88            {
     89                ToolTip = model.LastData;
     90            }
     91        }
    8492    }
    8593
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml

    r1621 r1640  
    55             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    66             xmlns:e="clr-namespace:WorkspaceManager.View.Container"
    7              MinHeight="100" MinWidth="130"
     7             MinHeight="100" MinWidth="130" Width="130" Height="100"
    88             mc:Ignorable="d">
    99    <UserControl.Background>
     
    4242        <Border Name="Window" Background="{StaticResource ResourceKey=GlassBrush}" CornerRadius="7" BorderBrush="#82bbef" BorderThickness="1.3">
    4343            <Grid>
     44                <ProgressBar Name="ProgressBar" Foreground="Green" Background="{Binding ElementName=PluginNamePlate, Path=Fill}" Opacity="0.3" >
     45                    <ProgressBar.Resources>
     46                        <ResourceDictionary Source="/PresentationFramework.Aero;v3.0.0.0;31bf3856ad364e35;component/themes/aero.normalcolor.xaml"/>
     47                    </ProgressBar.Resources>
     48                </ProgressBar>
    4449                <Thumb Name="BottomDelta" Opacity="0" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Cursor="SizeNS" DragDelta="Thumb_DragDelta"></Thumb>
    4550                <Thumb Name="RightDelta" Opacity="0" HorizontalAlignment="Right" VerticalAlignment="Stretch" Cursor="SizeWE" DragDelta="Thumb_DragDelta" ></Thumb>
     
    5459                    <Label Name="PluginName" FontSize="11" Margin="3,-2,0,0" FontFamily="Georgia" Foreground="WhiteSmoke" Content="test" HorizontalAlignment="left"></Label>
    5560
    56                     <Grid Grid.Row="1" Name="PresentationPanel" Width="Auto" Height="Auto" MaxHeight="70" MaxWidth="70" Margin="5,0,5,5" Background="Transparent">
     61                    <Grid Grid.Row="1" Name="PresentationPanel" Width="Auto" Height="Auto" Margin="5,0,5,5" Background="Transparent">
    5762                        <Grid.Effect>
    5863                            <DropShadowEffect BlurRadius="2" Color="Black" ShadowDepth="0.1" Direction="90" Opacity="0.4"></DropShadowEffect>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r1621 r1640  
    5858            this.MouseEnter += new MouseEventHandler(PluginContainerView_MouseEnter);
    5959            this.MouseLeave += new MouseEventHandler(PluginContainerView_MouseLeave);
     60            InitializeComponent();
    6061            this.ConnectorViewList = new List<ConnectorView>();
    6162            this.RenderTransform = new TranslateTransform();
    6263            this.model = model;
    6364            this.model.UpdateableView = this;
    64             InitializeComponent();
    65 
    66             Window.BorderBrush = new SolidColorBrush(ColorHelper.GetPluginTypeColor(model.PluginType));
    67             PluginNamePlate.Fill = Window.BorderBrush;
     65            this.Window.BorderBrush = new SolidColorBrush(ColorHelper.GetColor(model.PluginType));
     66            this.PluginNamePlate.Fill = Window.BorderBrush;
    6867
    6968            if (model.PluginPresentation != null)
     
    212211        public void update()
    213212        {
     213            ProgressBar.Value = model.PercentageFinished;
    214214            if (model.PluginPresentation == null)
    215215            {
     
    246246                if ((this.ActualWidth + e.HorizontalChange) > 0)
    247247                    this.Width = this.ActualWidth + e.HorizontalChange;
     248            }
     249
     250            if ((ActualWidth > MinWidth || ActualHeight > MinHeight) && (model.PluginPresentation != null && !PresentationPanel.Children.Contains(model.PluginPresentation)))
     251            {
     252                PresentationPanel.Children.Clear();
     253                PresentationPanel.Children.Add(model.PluginPresentation);
     254            }
     255            else if(PresentationPanel.Children.Contains(model.PluginPresentation))
     256            {
     257                PresentationPanel.Children.Clear();
     258                img = model.getImage();
     259                img.Stretch = Stretch.Uniform;
     260                PresentationPanel.Children.Add(img);
    248261            }
    249262        }
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml.cs

    r1627 r1640  
    122122        private void AddConnectionSource(IConnectable source, CryptoLineView conn)
    123123        {
    124             Color color = ColorHelper.GetDataColor((source as ConnectorView).Model.ConnectorType);
     124            Color color = ColorHelper.GetColor((source as ConnectorView).Model.ConnectorType);
    125125            conn.Stroke = new SolidColorBrush(color);
    126126            conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Brushes.xaml

    r1595 r1640  
    4141    </DrawingBrush>
    4242
    43     <SolidColorBrush x:Key="GlassBrush" Opacity="0.6" Color="#444444"></SolidColorBrush>
     43    <SolidColorBrush x:Key="GlassBrush" Opacity="0.55" Color="#000000"></SolidColorBrush>
    4444
    4545    <LinearGradientBrush x:Key="BottomBoxBackgroundBrush" StartPoint="0,0" EndPoint="0,1">
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/CryptoLineView.cs

    r1621 r1640  
    1010using WorkspaceManager.View.Interface;
    1111using WorkspaceManager.Model;
     12using System.Windows.Documents;
     13using System.Collections.Generic;
    1214
    1315namespace WorkspaceManager.View.VisualComponents
     
    1820
    1921        private Point iPoint = new Point();
     22        private List<FromTo> pointList = new List<FromTo>();
    2023
    2124        private ConnectionModel model;
     
    6366        {
    6467            this.Model = connectionModel;
    65             Color color = ColorHelper.GetDataColor(connectionModel.ConnectionType);
     68            Color color = ColorHelper.GetColor(connectionModel.ConnectionType);
    6669            Stroke = new SolidColorBrush(color);
    6770            StrokeThickness = 2;
     
    163166                        double cost = Math.Cos(theta);
    164167
     168            makeOrthogonalPoints();
     169            foreach (var element in (Parent as Panel).Children)
     170            {
     171                if (element is CryptoLineView && !element.Equals(this))
     172                {
     173                    CryptoLineView result = element as CryptoLineView;
     174                    foreach (FromTo fromTo in pointList)
     175                    {
     176                        foreach (FromTo resultFromTo in result.pointList)
     177                        {
     178                            if (findIntersection(fromTo.From, fromTo.To, resultFromTo.From, resultFromTo.To))
     179                            {
     180                                fromTo.Intersection.Add(iPoint);
     181                            }
     182                        }
     183                    }
     184                }
     185            }
     186
    165187            context.BeginFigure(StartPoint, true, false);
    166188
    167             foreach (var element in (Parent as Panel).Children)
    168             {
    169                 if (element is CryptoLineView && !element.Equals(this))
    170                 {
    171                     if (findIntersection(StartPoint, EndPoint, (element as CryptoLineView).StartPoint, (element as CryptoLineView).EndPoint))
     189            foreach (FromTo fromTo in pointList)
     190            {
     191                if (fromTo.Intersection.Count > 0)
     192                {
     193                    foreach (Point interPoint in fromTo.Intersection)
    172194                    {
    173                         if (StartPoint.X == EndPoint.X)
     195                        if (fromTo.From.X == fromTo.To.X)
    174196                        {
    175197                            context.LineTo(new Point(iPoint.X, iPoint.Y - offset), true, true);
    176198                            context.QuadraticBezierTo(new Point(iPoint.X + offset, iPoint.Y), new Point(iPoint.X, iPoint.Y + offset), true, true);
    177                             continue;
    178199                        }
    179                         if (StartPoint.Y == EndPoint.Y)
     200                        else if (fromTo.From.Y == fromTo.To.Y)
    180201                        {
    181202                            context.LineTo(new Point(iPoint.X - offset, iPoint.Y), true, true);
    182203                            context.QuadraticBezierTo(new Point(iPoint.X, iPoint.Y + offset), new Point(iPoint.X + offset, iPoint.Y), true, true);
    183                             continue;
    184204                        }
     205                        context.LineTo(fromTo.To, true, true);
    185206                    }
     207
     208                }
     209                else
     210                {
     211                    context.LineTo(fromTo.To, true, true);
    186212                }
    187213            }
     
    190216            //    pt05.X + ( cost - offset * sint),
    191217            //    pt05.Y + ( sint + offset * cost));
    192             context.LineTo(EndPoint, true, true);
     218            //context.LineTo(EndPoint, true, true);
    193219                }
     220
     221        private void makeOrthogonalPoints()
     222        {
     223            if (StartPoint.X < EndPoint.X)
     224            {
     225                pointList.Clear();
     226                pointList.Add(new FromTo(StartPoint, new Point((EndPoint.X + StartPoint.X) / 2, StartPoint.Y)));
     227                pointList.Add(new FromTo(new Point((EndPoint.X + StartPoint.X) / 2, StartPoint.Y), new Point((EndPoint.X + StartPoint.X) / 2, EndPoint.Y)));
     228                pointList.Add(new FromTo(new Point((EndPoint.X + StartPoint.X) / 2, EndPoint.Y), EndPoint));
     229            }
     230            else
     231            {
     232                if (StartPoint.X > EndPoint.X)
     233                {
     234                    pointList.Clear();
     235                    pointList.Add(new FromTo(StartPoint, new Point((StartPoint.X + EndPoint.X) / 2, StartPoint.Y)));
     236                    pointList.Add(new FromTo(new Point((StartPoint.X + EndPoint.X) / 2, StartPoint.Y), new Point((StartPoint.X + EndPoint.X) / 2, EndPoint.Y)));
     237                    pointList.Add(new FromTo(new Point((StartPoint.X + EndPoint.X) / 2, EndPoint.Y), EndPoint));
     238                }
     239            }
     240        }
    194241               
    195242                #endregion
     
    199246        public void update()
    200247        {
    201            
     248            Stroke = Brushes.Green;
    202249        }
    203250
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.csproj

    r1639 r1640  
    115115      <DependentUpon>BottomBox.xaml</DependentUpon>
    116116    </Compile>
     117    <Compile Include="View\VisualComponents\FromTo.cs" />
    117118    <Compile Include="WorkspaceManager.cs" />
    118119    <Compile Include="WorkspaceManagerSettings.cs" />
Note: See TracChangeset for help on using the changeset viewer.