Changeset 1717


Ignore:
Timestamp:
Jul 4, 2010, 3:31:42 AM (11 years ago)
Author:
matkovic
Message:

-added loading from Model
-added several images
-added Connector data presentation
-several style changes

Location:
trunk/CrypPlugins/WorkspaceManager
Files:
13 added
2 deleted
12 edited

Legend:

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

    r1715 r1717  
    100100        /// Is the Plugin actually minimized?
    101101        /// </summary>
    102         public bool Minimized { get; set; }
     102        public bool? Minimized { get; set; }
    103103
    104104        /// <summary>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/ConnectorView.xaml

    r1686 r1717  
    44             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    55             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    6              mc:Ignorable="d">
     6             mc:Ignorable="d" >
     7    <UserControl.Resources>
     8        <ResourceDictionary>
     9            <ResourceDictionary.MergedDictionaries>
     10                <ResourceDictionary Source="../Resource/Brushes.xaml"/>
     11            </ResourceDictionary.MergedDictionaries>
     12        </ResourceDictionary>
     13    </UserControl.Resources>
    714    <Grid>
     15        <Popup x:Name="BubblePopup" PopupAnimation="Fade" HorizontalOffset="-21" VerticalOffset="8" PlacementTarget="{Binding ElementName=Ellipse}" Placement="Top" StaysOpen="False" AllowsTransparency="True" Width="200" Height="100" >
     16            <Grid x:Name="BubbleGrid" Margin="2">
     17                <Grid.Effect>
     18                    <DropShadowEffect Opacity="0.8"></DropShadowEffect>
     19                </Grid.Effect>
     20                <Grid.LayoutTransform>
     21                    <ScaleTransform ScaleX="0.6" ScaleY="0.6"></ScaleTransform>
     22                </Grid.LayoutTransform>
     23                <Grid.RowDefinitions>
     24                    <RowDefinition Height="*"/>
     25                    <RowDefinition Height="40"/>
     26                </Grid.RowDefinitions>
     27                <Border Background="{StaticResource ResourceKey=BubblePopupLinearBrush}" BorderBrush="#f8f692" CornerRadius="10">
     28                    <Grid Margin="6">
     29                        <ScrollViewer>
     30                            <TextBlock x:Name="Content" Foreground="#444444" FontSize="16"
     31                                       Text="{Binding Path=Data, FallbackValue=N/A}" TextWrapping="Wrap"></TextBlock>
     32                        </ScrollViewer>
     33                    </Grid>
     34                </Border>
     35                <Path Fill="#ffffec" Stretch="Fill" Stroke="#f8f692" HorizontalAlignment="Left" Margin="30,-1.35,0,0" Width="25" Grid.Row="1" Data="M18,154.45381 L29.999666,187.66699 40.791059,154.54395">
     36                    <Path.RenderTransform>
     37                        <ScaleTransform ScaleY="0.5"></ScaleTransform>
     38                    </Path.RenderTransform>
     39                </Path>
     40            </Grid>
     41        </Popup>
    842        <Ellipse Width="10" Height="10" Fill="Black" Name="Ellipse"></Ellipse>
    9            
    1043    </Grid>
    1144</UserControl>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/ConnectorView.xaml.cs

    r1680 r1717  
    1515using System.ComponentModel;
    1616using WorkspaceManager.Model;
     17using System.Windows.Controls.Primitives;
    1718
    1819namespace WorkspaceManager.View.Container
     
    2324    public partial class ConnectorView : UserControl, IConnectable, IUpdateableView
    2425    {
    25         public static readonly DependencyProperty PositionOnWorkSpaceXProperty = DependencyProperty.Register("PositionOnWorkSpaceX", typeof(double), typeof(ConnectorView), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsMeasure));
    26         public static readonly DependencyProperty PositionOnWorkSpaceYProperty = DependencyProperty.Register("PositionOnWorkSpaceY", typeof(double), typeof(ConnectorView), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsMeasure));
     26        public static readonly DependencyProperty X = DependencyProperty.Register("PositionOnWorkSpaceX", typeof(double), typeof(ConnectorView), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsMeasure));
     27        public static readonly DependencyProperty Y = DependencyProperty.Register("PositionOnWorkSpaceY", typeof(double), typeof(ConnectorView), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.AffectsMeasure));
    2728
    2829        public event EventHandler<ConnectorViewEventArgs> OnConnectorMouseLeftButtonDown;
     
    3738        public double PositionOnWorkSpaceX
    3839        {
    39             get { return (double)base.GetValue(PositionOnWorkSpaceXProperty); }
     40            get { return (double)base.GetValue(X); }
    4041            set
    4142            {
    42                 base.SetValue(PositionOnWorkSpaceXProperty, value);
     43                ResetPopUp();
     44                base.SetValue(X, value);
    4345            }
    4446        }
     
    4749        public double PositionOnWorkSpaceY
    4850        {
    49             get { return (double)base.GetValue(PositionOnWorkSpaceYProperty); }
     51            get { return (double)base.GetValue(Y); }
    5052            set
    5153            {
    52                 base.SetValue(PositionOnWorkSpaceYProperty, value);
     54                ResetPopUp();
     55                base.SetValue(Y, value);
    5356            }
    5457        }
     
    6063        }
    6164
    62         public ConnectorView(Model.ConnectorModel cModel)
    63         {                       
     65        public ConnectorView(ConnectorModel Model)
     66        {
     67            setBaseControl(Model);
     68            InitializeComponent();
     69 
     70            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;
     73        }
     74
     75        private void setBaseControl(ConnectorModel Model)
     76        {
    6477            this.MouseLeftButtonDown += new MouseButtonEventHandler(ConnectorView_MouseLeftButtonDown);
    65             this.Model = cModel;
     78            this.MouseRightButtonDown += new MouseButtonEventHandler(ConnectorView_MouseRightButtonDown);
     79            this.MouseRightButtonUp += new MouseButtonEventHandler(ConnectorView_MouseRightButtonUp);
     80            this.MouseLeave += new MouseEventHandler(ConnectorView_MouseLeave);
     81            this.Model = Model;
     82            this.DataContext = Model;
    6683            this.Model.UpdateableView = this;
    67             InitializeComponent();
    68             Color color = ColorHelper.GetColor(cModel.ConnectorType);
    69             this.Ellipse.Fill = new SolidColorBrush(Color.FromArgb(color.A, color.R, color.G, color.B));
    70             this.Ellipse.ToolTip = cModel.ToolTip;
     84        }
     85
     86        void ConnectorView_MouseLeave(object sender, MouseEventArgs e)
     87        {
     88            BubblePopup.StaysOpen = false;
     89        }
     90
     91        void ConnectorView_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
     92        {
     93            BubblePopup.StaysOpen = false;
     94        }
     95
     96        void ConnectorView_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
     97        {
     98            this.BubblePopup.IsOpen = true;
     99            BubblePopup.StaysOpen = true;
    71100        }
    72101
     
    77106                this.OnConnectorMouseLeftButtonDown.Invoke(this, new ConnectorViewEventArgs { connector = this });
    78107            }
     108        }
     109
     110        public void ResetPopUp()
     111        {
     112            Random random = new Random();
     113            BubblePopup.PlacementRectangle = new Rect(new Point(random.NextDouble() / 1000, 0), new Size(75, 25));
    79114        }
    80115
     
    90125                ToolTip = model.Data;
    91126            }
     127
    92128        }
     129
    93130    }
    94131
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml

    r1686 r1717  
    66             xmlns:e="clr-namespace:WorkspaceManager.View.VisualComponents"
    77             xmlns:z="clr-namespace:WorkspaceManager.View.Converter"
    8              MinHeight="90" MinWidth="100" Width="100" Height="90"
    98             mc:Ignorable="d">
    10     <UserControl.Background>
    11         <SolidColorBrush Opacity="0.01" Color="#444444"></SolidColorBrush>
    12     </UserControl.Background>
    139    <UserControl.Resources>
    1410        <ResourceDictionary>
     
    2117    </UserControl.Resources>
    2218    <DockPanel Name="Root" LastChildFill="True">
    23         <StackPanel DockPanel.Dock="Right" Name="OutputConnectorPanel" Width="20" Height="{Binding ElementName=Window, Path=ActualHeight}" VerticalAlignment="Bottom"/>
    24         <StackPanel DockPanel.Dock="Left" Name="InputConnectorPanel" Width="20" Height="{Binding ElementName=Window, Path=ActualHeight}" VerticalAlignment="Bottom"/>
    25         <StackPanel DockPanel.Dock="Top" Name="ControlPanel" Visibility="Hidden" Orientation="Horizontal" HorizontalAlignment="Right">
    26             <Button Height="20" Width="20" Style="{StaticResource ResourceKey=SettingsPluginContainerButtonStyle}" Margin="0,0,0,0" Click="Button_Click_1">
    27                 <Button.RenderTransform>
    28                     <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
    29                 </Button.RenderTransform>
    30                 <Image Source="/WorkspaceManager;component/View/Image/setting.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
    31             </Button>
     19        <DockPanel x:Name="PluginBase" DockPanel.Dock="Left" VerticalAlignment="Top" MinHeight="90" MinWidth="90" Width="{Binding Path=Width,Mode=TwoWay}" Height="{Binding Path=Heigth,Mode=TwoWay}">
     20            <DockPanel.Background>
     21                <SolidColorBrush Opacity="0.01" Color="#444444"></SolidColorBrush>
     22            </DockPanel.Background>
     23            <StackPanel DockPanel.Dock="Right" Name="OutputConnectorPanel" />
     24            <StackPanel DockPanel.Dock="Left" Name="InputConnectorPanel" />
     25            <StackPanel DockPanel.Dock="Top" Name="ControlPanel" Visibility="Visible" Opacity="0" Orientation="Horizontal" HorizontalAlignment="Right">
     26
     27                <Button x:Name="ShowAllButton" Height="20" Width="20" Style="{StaticResource ResourceKey=DeletePluginContainerButtonStyle}" Margin="0,0,0,0" Click="ShowAllButton_Click">
     28                    <Button.RenderTransform>
     29                        <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
     30                    </Button.RenderTransform>
     31                    <Image Source="/WorkspaceManager;component/View/Image/showall.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
     32                </Button>
     33
     34                <Button Height="20" Width="20" Style="{StaticResource ResourceKey=SettingsPluginContainerButtonStyle}" Margin="0,0,0,0" Click="Button_Click_1">
     35                    <Button.RenderTransform>
     36                        <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
     37                    </Button.RenderTransform>
     38                    <Image Source="/WorkspaceManager;component/View/Image/setting.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
     39                </Button>
    3240       
    33             <Button Height="20" Width="20" Style="{StaticResource ResourceKey=DeletePluginContainerButtonStyle}" Margin="0,0,0,5" Click="Button_Click">
    34                 <Button.LayoutTransform>
    35                     <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
    36                 </Button.LayoutTransform>
    37                 <Image Source="/WorkspaceManager;component/View/Image/delete.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
    38             </Button>
    39         </StackPanel>
    40         <Grid DockPanel.Dock="Top" Width="{Binding ElementName=PresentationPanel, Path=ActualWidth}" Height="10">
    41             <ProgressBar Name="ProgressBarInit" Background="Black" Height="10" Width="Auto" Foreground="ForestGreen" Opacity="1" Maximum="1">
    42                 <ProgressBar.Resources>
    43                     <ResourceDictionary Source="/PresentationFramework.Aero;v3.0.0.0;31bf3856ad364e35;component/themes/aero.normalcolor.xaml"/>
    44                 </ProgressBar.Resources>
    45             </ProgressBar>
    46             <Label Name="Percentage" HorizontalAlignment="Center" FontSize="9" Margin="0,-10,0,0" Foreground="WhiteSmoke" ContentStringFormat="{}{0:F0} %" Content="{Binding ElementName=ProgressBarInit,Path=Value, Mode=OneWay, Converter={StaticResource ResourceKey=PercentageConverter}}"></Label>
    47         </Grid>
     41                <Button Height="20" Width="20" Style="{StaticResource ResourceKey=DeletePluginContainerButtonStyle}" Margin="0,0,0,5" Click="Button_Click">
     42                    <Button.LayoutTransform>
     43                        <ScaleTransform ScaleX="0.8" ScaleY="0.8"></ScaleTransform>
     44                    </Button.LayoutTransform>
     45                    <Image Source="/WorkspaceManager;component/View/Image/delete.png" HorizontalAlignment="Center" SnapsToDevicePixels="True" Margin="1,1,1,1"/>
     46                </Button>
     47            </StackPanel>
    4848       
     49            <!--<Border DockPanel.Dock="Bottom" Height="10" Width="{Binding ElementName=PresentationPanel, Path=ActualWidth}" Background="#82bbef" BorderBrush="#4c71bf" BorderThickness="1" Opacity="0.5" Margin="0,0,0,0">
     50                <StackPanel/>
     51            </Border>-->
    4952
    50         <!--<Border DockPanel.Dock="Bottom" Height="10" Width="{Binding ElementName=PresentationPanel, Path=ActualWidth}" Background="#82bbef" BorderBrush="#4c71bf" BorderThickness="1" Opacity="0.5" Margin="0,0,0,0">
    51             <StackPanel/>
    52         </Border>-->
    53        
    54         <Border Name="Window" CornerRadius="5" BorderThickness="2" BorderBrush="Beige">
     53            <Grid Name="MainGrid">
     54                <Ellipse Fill="Black" Width="10" Height="10" HorizontalAlignment="Left" VerticalAlignment="Top"></Ellipse>
     55                <Grid Margin="3">
     56                   
     57                    <Canvas Width="auto" Height="auto">
     58                        <Popup PlacementTarget="{Binding ElementName=MainGrid}" Placement="Left" x:Name="ProgressPopup" Width="45" Height="45" StaysOpen="True" IsOpen="True" AllowsTransparency="True">
     59                           
     60                        </Popup>
     61                    </Canvas>
     62                    <Border Name="Window" CornerRadius="5" BorderThickness="0" BorderBrush="Transparent" Margin="5">
     63                        <Border.Background>
     64                            <LinearGradientBrush Opacity="1" StartPoint="0,0" EndPoint="0,1">
     65                                <GradientBrush.GradientStops>
     66                                    <GradientStopCollection>
     67                                        <GradientStop x:Name="BorderGradientStop" Color="#00b4fb" Offset="0.0"/>
     68                                        <GradientStop x:Name="BorderGradientStopSecond" Color="#3300b4fb" Offset="1"/>
     69                                    </GradientStopCollection>
     70                                </GradientBrush.GradientStops>
     71                            </LinearGradientBrush>
     72                        </Border.Background>
     73                        <Border.Effect>
     74                            <DropShadowEffect BlurRadius="10" Direction="0" Color="Black" RenderingBias="Quality" ShadowDepth="0" ></DropShadowEffect>
     75                        </Border.Effect>
     76                        <Grid>
     77         
     78                            <Thumb Name="BottomDelta" IsEnabled="False" Opacity="0" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Cursor="SizeNS" DragDelta="Thumb_DragDelta"></Thumb>
     79                            <Thumb Name="RightDelta" IsEnabled="False" Opacity="0" HorizontalAlignment="Right" VerticalAlignment="Stretch" Cursor="SizeWE" DragDelta="Thumb_DragDelta"></Thumb>
     80                            <Thumb Name="BottomRightDelta" IsEnabled="False" Opacity="0" HorizontalAlignment="Right" VerticalAlignment="Bottom" Cursor="SizeNWSE" Height="15" Width="15" DragDelta="Thumb_DragDelta"></Thumb>
     81                       
     82                            <DockPanel Name="PresentationBase" Width="Auto" Height="Auto" LastChildFill="True" Margin="5,5,5,2">
     83                                <!--<Grid Name="PluginNamePlate" DockPanel.Dock="Top" Margin="2.5,1.25,2.5,1.25" Height="17" Opacity="0.5" Background="#82bbef">
     84                                    <Label Name="PluginName" FontSize="11" Margin="0,-3,0,0" FontFamily="Georgia" Foreground="WhiteSmoke" Content="test" HorizontalAlignment="left"></Label>
     85                                </Grid>-->
     86                                <Grid Name="MinMaxGrid" DockPanel.Dock="Bottom">
     87                                    <Border BorderBrush="#88ffffff" Background="#33ffffff" BorderThickness="0.5" CornerRadius="2.5"/>
     88                                    <Button Style="{StaticResource ResourceKey=MinMaxPluginContainerButtonStyle}" Margin="0,0,0,0" Click="MinMaxBorder_MouseLeftButtonDown">
     89                                        <Button.LayoutTransform>
     90                                            <ScaleTransform x:Name="MinMaxScale" ScaleX="0.92" ScaleY="0.92"></ScaleTransform>
     91                                        </Button.LayoutTransform>
     92                                        <Image SnapsToDevicePixels="True" x:Name="MinMaxImage" Source="/WorkspaceManager;component/View/Image/Max.png" HorizontalAlignment="Center" Height="10" Width="28" Margin="1,1,1,1"/>
     93                                    </Button>
     94                                </Grid>
     95                                <Border Name="PresentationPanel" Width="Auto" Height="Auto"  Background="Transparent" Margin="0,0,0,2.5"></Border>
     96                            </DockPanel>
     97                        </Grid>
     98                    </Border>
     99                    <Popup x:Name="BubblePopup" PopupAnimation="Fade" HorizontalOffset="-21" VerticalOffset="8" PlacementTarget="{Binding ElementName=ShowAllButton}" Placement="Top" StaysOpen="False" AllowsTransparency="True" Width="65" Height="65">
     100                        <Grid x:Name="BubbleGrid" Margin="2">
     101                            <Grid.Effect>
     102                                <DropShadowEffect Opacity="0.8"></DropShadowEffect>
     103                            </Grid.Effect>
     104                            <Grid.LayoutTransform>
     105                                <ScaleTransform ScaleX="0.6" ScaleY="0.6"></ScaleTransform>
     106                            </Grid.LayoutTransform>
     107                            <Grid.RowDefinitions>
     108                                <RowDefinition Height="*"/>
     109                                <RowDefinition Height="40"/>
     110                            </Grid.RowDefinitions>
     111                            <Border Background="{StaticResource ResourceKey=BubblePopupLinearBrush}" BorderBrush="#f8f692" CornerRadius="10">
     112                                <Grid Margin="6">
     113                                    <ScrollViewer>
     114                                        <TextBlock x:Name="Content" Foreground="#444444" FontSize="16"
     115                                           Text="When the Placement  property is set to Custom, the Popup  calls a defined instance of the CustomPopupPlacementCallback  delegate. This delegate returns a set of possible points that are relative to the top left corner of the target area and the top left corner of the Popup. The Popup  placement occurs at the point that provides the best visibility." TextWrapping="Wrap"></TextBlock>
     116                                    </ScrollViewer>
     117                                </Grid>
     118                            </Border>
     119                            <Path Fill="#ffffec" Stretch="Fill" Stroke="#f8f692" HorizontalAlignment="Left" Margin="30,-1.35,0,0" Width="25" Grid.Row="1" Data="M18,154.45381 L29.999666,187.66699 40.791059,154.54395">
     120                                <Path.RenderTransform>
     121                                    <ScaleTransform ScaleY="0.5"></ScaleTransform>
     122                                </Path.RenderTransform>
     123                            </Path>
     124                        </Grid>
     125                    </Popup>
     126                </Grid>
     127            </Grid>
     128        </DockPanel>
     129        <Border Name="ShowAllData" Visibility="Collapsed" MaxHeight="250" MaxWidth="150" MinWidth="140" Margin="7,26,0,0" VerticalAlignment="Top" CornerRadius="{Binding ElementName=Window,Path=CornerRadius}" BorderBrush="{Binding ElementName=Window,Path=BorderBrush}" BorderThickness="{Binding ElementName=Window,Path=BorderThickness}">
     130            <Border.Effect>
     131                <DropShadowEffect BlurRadius="10" Direction="0" Color="Black" RenderingBias="Quality" ShadowDepth="0" ></DropShadowEffect>
     132            </Border.Effect>
    55133            <Border.Background>
    56                 <LinearGradientBrush Opacity="1" StartPoint="0,0" EndPoint="0,1">
     134                <LinearGradientBrush Opacity="0.5" StartPoint="0,0" EndPoint="0,1">
    57135                    <GradientBrush.GradientStops>
    58136                        <GradientStopCollection>
    59                             <GradientStop x:Name="BorderGradientStop" Color="#00b4fb" Offset="0.0"/>
    60                             <GradientStop x:Name="BorderGradientStopSecond" Color="#3300b4fb" Offset="1"/>
     137                            <GradientStop Color="{Binding ElementName=BorderGradientStop, Path=Color}" Offset="0.0"/>
     138                            <GradientStop Color="{Binding ElementName=BorderGradientStopSecond, Path=Color}" Offset="1"/>
    61139                        </GradientStopCollection>
    62140                    </GradientBrush.GradientStops>
    63141                </LinearGradientBrush>
    64142            </Border.Background>
    65             <Grid>
    66                 <Thumb Name="BottomDelta" IsEnabled="False" Opacity="0" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Cursor="SizeNS" DragDelta="Thumb_DragDelta"></Thumb>
    67                 <Thumb Name="RightDelta" IsEnabled="False" Opacity="0" HorizontalAlignment="Right" VerticalAlignment="Stretch" Cursor="SizeWE" DragDelta="Thumb_DragDelta"></Thumb>
    68                 <Thumb Name="BottomRightDelta" IsEnabled="False" Opacity="0" HorizontalAlignment="Right" VerticalAlignment="Bottom" Cursor="SizeNWSE" Height="15" Width="15" DragDelta="Thumb_DragDelta"></Thumb>
    69                 <DockPanel Name="PresentationBase" Width="Auto" Height="Auto" LastChildFill="True" Margin="3">
    70                     <!--<Grid Name="PluginNamePlate" DockPanel.Dock="Top" Margin="2.5,1.25,2.5,1.25" Height="17" Opacity="0.5" Background="#82bbef">
    71                         <Label Name="PluginName" FontSize="11" Margin="0,-3,0,0" FontFamily="Georgia" Foreground="WhiteSmoke" Content="test" HorizontalAlignment="left"></Label>
    72                     </Grid>-->
    73                     <Border Name="MinMaxBorder" Height="7" DockPanel.Dock="Bottom" BorderBrush="#88FFFFFF" Background="#88444444" BorderThickness="1.7" CornerRadius="2" MouseLeftButtonDown="MinMaxBorder_MouseLeftButtonDown">
    74                         <Border.Triggers>
    75                             <EventTrigger RoutedEvent="MouseEnter">
    76                                 <BeginStoryboard Storyboard="{StaticResource ResourceKey=MaxMinColorAnimEnter}"/>
    77                             </EventTrigger>
    78                             <EventTrigger RoutedEvent="MouseLeave">
    79                                 <BeginStoryboard Storyboard="{StaticResource ResourceKey=MaxMinColorAnimLeave}"/>
    80                             </EventTrigger>
    81                         </Border.Triggers>
    82                     </Border>
    83                     <Border Name="PresentationPanel" Width="Auto" Height="Auto" Margin="2.5,2.5,2.5,2.5" Background="Transparent">
    84                         <Border.Effect>
    85                             <DropShadowEffect BlurRadius="2" Color="Black" ShadowDepth="0.1" Direction="90" Opacity="0.4"></DropShadowEffect>
    86                         </Border.Effect>
    87                     </Border>
    88                 </DockPanel>
    89             </Grid>
     143            <ScrollViewer VerticalScrollBarVisibility="Auto">
     144                <StackPanel x:Name="DataPresentationPanel" Orientation="Vertical" Margin="5">
     145               
     146                </StackPanel>
     147            </ScrollViewer>
    90148        </Border>
    91149    </DockPanel>
  • trunk/CrypPlugins/WorkspaceManager/View/Container/PluginContainerView.xaml.cs

    r1700 r1717  
    1616using WorkspaceManager.View.VisualComponents;
    1717using System.Windows.Controls.Primitives;
     18using System.Windows.Media.Animation;
    1819
    1920namespace WorkspaceManager.View.Container
     
    2425    public partial class PluginContainerView : UserControl, IDraggable, IUpdateableView
    2526    {
    26         public event EventHandler<ConnectorViewEventArgs> OnConnectorMouseLeftButtonDown;
     27        #region Events
     28        public event EventHandler<ConnectorViewEventArgs> ConnectorMouseLeftButtonDown;
    2729        public event EventHandler<PluginContainerViewDeleteViewEventArgs> Delete;
    2830        public event EventHandler<PluginContainerViewSettingsViewEventArgs> ShowSettings;
    29 
    30         private static double MinHeightBackup;
    31         private static double MinWidthBackup;
    32 
     31        #endregion
     32
     33        #region Private Variables
     34
     35        private static double MinHeight;
     36        private static double MinWidth;
     37        private bool p;
     38        #endregion
     39
     40        #region Properties
    3341        private Image icon;
    3442        public Image Icon
     
    5159            private set { connectorViewList = value; }
    5260        }
     61
    5362        private PluginModel model;
    5463        public PluginModel Model
     
    6069        public bool CanDrag { get; set; }
    6170
     71        #endregion
     72
     73        #region Contructors
    6274        public PluginContainerView()
    6375        {
    64             this.Loaded += new RoutedEventHandler(PluginContainerView_Loaded);
    65             this.RenderTransform = new TranslateTransform();
    6676            InitializeComponent();
    6777        }
    6878
    6979        public PluginContainerView(PluginModel model)
     80        {
     81            setBaseControl(model);
     82            InitializeComponent();
     83        }
     84        #endregion
     85
     86        #region Public Methods
     87        public void AddInputConnectorView(ConnectorView connector)
     88        {
     89            connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
     90            this.ConnectorViewList.Add(connector);
     91            this.DataPresentationPanel.Children.Add(new DataPresentation(connector));
     92            this.InputConnectorPanel.Children.Add(connector);
     93            this.SetAllConnectorPositionX();
     94        }
     95
     96
     97        public void AddOutputConnectorView(ConnectorView connector)
     98        {
     99            connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
     100            this.ConnectorViewList.Add(connector);
     101            this.DataPresentationPanel.Children.Add(new DataPresentation(connector));
     102            this.OutputConnectorPanel.Children.Add(connector);
     103            this.SetAllConnectorPositionX();
     104        }
     105
     106        public void SetPosition(Point value)
     107        {
     108            TranslateTransform pos = (this.RenderTransform as TranslateTransform);
     109            pos.X = value.X;
     110            pos.Y = value.Y;
     111            this.Model.Position = new Point(pos.X, pos.Y);
     112            this.SetAllConnectorPositionX();
     113        }
     114
     115        public Point GetPosition()
     116        {
     117            return new Point((this.RenderTransform as TranslateTransform).X, (this.RenderTransform as TranslateTransform).Y);
     118        }
     119
     120        #endregion
     121
     122        #region Private Methods
     123
     124        private void setBaseControl(PluginModel model)
    70125        {
    71126            this.Loaded += new RoutedEventHandler(PluginContainerView_Loaded);
    72127            this.MouseEnter += new MouseEventHandler(PluginContainerView_MouseEnter);
    73128            this.MouseLeave += new MouseEventHandler(PluginContainerView_MouseLeave);
    74             InitializeComponent();
    75             MinHeightBackup = this.MinHeight;
    76             MinWidthBackup = this.MinWidth;
     129            this.Model = model;
     130            this.Model.UpdateableView = this;
     131            this.DataContext = Model;
    77132            this.ConnectorViewList = new List<ConnectorView>();
    78133            this.RenderTransform = new TranslateTransform();
    79             this.model = model;
    80             this.model.UpdateableView = this;
    81             this.BorderGradientStop.Color = ColorHelper.GetColor(model.PluginType);
    82             this.BorderGradientStopSecond.Color = Color.FromArgb(100, this.BorderGradientStop.Color.R, this.BorderGradientStop.Color.G, this.BorderGradientStop.Color.B);
    83             this.Icon = model.getImage();
    84             this.PresentationPanel.Child = this.Icon;
    85            
    86         }
    87 
    88         void PluginContainerView_MouseLeave(object sender, MouseEventArgs e)
    89         {
    90             ControlPanel.Visibility = Visibility.Hidden;
    91         }
    92 
    93         void PluginContainerView_MouseEnter(object sender, MouseEventArgs e)
    94         {
    95             ControlPanel.Visibility = Visibility.Visible;
    96         }
    97 
    98         void PluginContainerView_Loaded(object sender, RoutedEventArgs e)
    99         {
    100 
    101             PresentationPanel.Child = Icon;
    102             //PluginName.Content = model.PluginType.Name.ToString();
    103 
    104             foreach (ConnectorModel Model in model.InputConnectors)
    105             {
    106                 AddInputConnectorView(new ConnectorView(Model));
    107             }
    108 
    109             foreach (ConnectorModel Model in model.OutputConnectors)
    110             {
    111                 AddOutputConnectorView(new ConnectorView(Model));
    112             }
    113         }
    114 
    115         public void AddInputConnectorView(ConnectorView connector)
    116         {
    117             connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
    118             this.ConnectorViewList.Add(connector);
    119             this.InputConnectorPanel.Children.Add(connector);
    120             this.SetAllConnectorPositionX();
    121         }
    122 
    123 
    124         public void AddOutputConnectorView(ConnectorView connector)
    125         {
    126             connector.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(connector_OnConnectorMouseLeftButtonDown);
    127             this.ConnectorViewList.Add(connector);
    128             this.OutputConnectorPanel.Children.Add(connector);
    129             this.SetAllConnectorPositionX();
    130         }
    131 
    132         public void SetPosition(Point value)
    133         {
    134             (this.RenderTransform as TranslateTransform).X = value.X;
    135             (this.RenderTransform as TranslateTransform).Y = value.Y;
    136             this.SetAllConnectorPositionX();
    137134        }
    138135
     
    172169                conn.PositionOnWorkSpaceY = y;
    173170            }
    174 
    175         }
    176 
    177         public Point GetPosition()
    178         {
    179             return new Point((this.RenderTransform as TranslateTransform).X, (this.RenderTransform as TranslateTransform).Y);
    180         }
     171        }
     172        #endregion
    181173
    182174        #region Controls
    183175
     176        void PluginContainerView_Loaded(object sender, RoutedEventArgs e)
     177        {
     178            MinHeight = this.PluginBase.MinHeight;
     179            MinWidth = this.PluginBase.MinWidth;
     180            this.BorderGradientStop.Color = ColorHelper.GetColor(this.Model.PluginType);
     181            this.BorderGradientStopSecond.Color = Color.FromArgb(100, this.BorderGradientStop.Color.R, this.BorderGradientStop.Color.G, this.BorderGradientStop.Color.B);
     182
     183            if (this.Model.Minimized == null || this.Model.Minimized == true)
     184            {
     185                this.Icon = this.Model.getImage();
     186                this.PresentationPanel.Child = this.Icon;
     187                this.Model.Minimized = true;
     188            }
     189            else if (this.Model.Minimized == false)
     190            {
     191                this.PluginBase.MinHeight = model.MinHeight;
     192                this.PluginBase.MinWidth = model.MinWidth;
     193                this.PluginBase.Width = model.MinWidth;
     194                this.PluginBase.Height = model.MinHeight;
     195                this.BottomDelta.IsEnabled = true;
     196                this.RightDelta.IsEnabled = true;
     197                this.BottomRightDelta.IsEnabled = true;
     198                this.PresentationPanel.Child = model.PluginPresentation;
     199                this.Model.Minimized = false;
     200                this.MinMaxImage.Source = new BitmapImage(new Uri("/WorkspaceManager;component/View/Image/Min.png", UriKind.RelativeOrAbsolute));
     201            }
     202
     203            foreach (ConnectorModel ConnectorModel in model.InputConnectors)
     204            {
     205                AddInputConnectorView(new ConnectorView(ConnectorModel));
     206            }
     207
     208            foreach (ConnectorModel ConnectorModel in model.OutputConnectors)
     209            {
     210                AddOutputConnectorView(new ConnectorView(ConnectorModel));
     211            }
     212        }
     213
    184214        void connector_OnConnectorMouseLeftButtonDown(object sender, ConnectorViewEventArgs e)
    185215        {
    186             if (this.OnConnectorMouseLeftButtonDown != null)
    187             {
    188                 this.OnConnectorMouseLeftButtonDown.Invoke(this, e);
    189             }
    190         }
    191 
    192         #endregion
     216            if (this.ConnectorMouseLeftButtonDown != null)
     217            {
     218                this.ConnectorMouseLeftButtonDown.Invoke(this, e);
     219            }
     220        }
    193221
    194222        private void delete()
     
    218246        }
    219247
    220         #region IUpdateableView Members
    221 
    222         public void update()
    223         {
    224             //Color the view corresponding to warning or error state
    225             if (model.State == PluginModelState.Warning)
    226             {
    227                 this.Window.Background = new SolidColorBrush(Colors.Yellow);
    228             }
    229             else if (model.State == PluginModelState.Error)
    230             {
    231                 this.Window.Background = new SolidColorBrush(Colors.Red);
    232             }
    233             else
    234             {
    235                 //todo: assign old color and appereance
    236             }
    237 
    238             //(ProgressBarPanel.Children[0] as CircularProgressBar).Percentage = model.PercentageFinished;
    239             ProgressBarInit.Value = model.PercentageFinished;
    240             Icon = model.getImage();
    241 
    242             if (PresentationPanel.Child is Image)
    243             {
    244                 PresentationPanel.Child = this.Icon;
    245             }
    246         }
    247 
    248         #endregion
     248        void PluginContainerView_MouseLeave(object sender, MouseEventArgs e)
     249        {
     250            (Resources["FadeIn"] as Storyboard).Stop(ControlPanel);
     251            ControlPanel.BeginStoryboard(Resources["FadeOut"] as Storyboard);
     252        }
     253
     254        void PluginContainerView_MouseEnter(object sender, MouseEventArgs e)
     255        {
     256            (Resources["FadeOut"] as Storyboard).Stop(ControlPanel);
     257            ControlPanel.BeginStoryboard(Resources["FadeIn"] as Storyboard);
     258        }
    249259
    250260        private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
    251261        {
    252262            Thumb t = sender as Thumb;
    253 
    254263            if (t.Cursor == Cursors.SizeWE)
    255264            {
    256                 if((this.ActualWidth + e.HorizontalChange) > 0)
    257                     this.Width = this.ActualWidth + e.HorizontalChange;
     265                if ((PluginBase.ActualWidth + e.HorizontalChange) > 0)
     266                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
    258267            }
    259268
    260269            if (t.Cursor == Cursors.SizeNS)
    261270            {
    262                 if((this.ActualHeight + e.VerticalChange) > 0)
    263                     this.Height = this.ActualHeight + e.VerticalChange;
     271                if ((PluginBase.ActualHeight + e.VerticalChange) > 0)
     272                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
    264273            }
    265274
    266275            if (t.Cursor == Cursors.SizeNWSE)
    267276            {
    268                 if ((this.ActualHeight + e.VerticalChange) > 0)
    269                     this.Height = this.ActualHeight + e.VerticalChange;
    270 
    271                 if ((this.ActualWidth + e.HorizontalChange) > 0)
    272                     this.Width = this.ActualWidth + e.HorizontalChange;
    273             }
    274         }
    275 
    276         private void MinMaxBorder_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
     277                if ((PluginBase.ActualHeight + e.VerticalChange) > 0)
     278                    PluginBase.Height = PluginBase.ActualHeight + e.VerticalChange;
     279
     280                if ((PluginBase.ActualWidth + e.HorizontalChange) > 0)
     281                    PluginBase.Width = PluginBase.ActualWidth + e.HorizontalChange;
     282            }
     283        }
     284
     285        private void MinMaxBorder_MouseLeftButtonDown(object sender, RoutedEventArgs e)
    277286        {
    278287            if (model.PluginPresentation != null && PresentationPanel.Child is Image)
    279288            {
    280                 MinMaxBorder.BorderThickness = new Thickness(3);
    281                 this.MinHeight = model.MinHeight;
    282                 this.MinWidth = model.MinWidth;
    283                 this.Width = model.MinWidth;
    284                 this.Height = model.MinHeight;
     289                PluginBase.MinHeight = model.MinHeight;
     290                PluginBase.MinWidth = model.MinWidth;
     291                PluginBase.Width = model.MinWidth;
     292                PluginBase.Height = model.MinHeight;
    285293                BottomDelta.IsEnabled = true;
    286294                RightDelta.IsEnabled = true;
    287295                BottomRightDelta.IsEnabled = true;
    288296                PresentationPanel.Child = model.PluginPresentation;
     297                model.Minimized = false;
     298                MinMaxImage.Source = new BitmapImage(new Uri("/WorkspaceManager;component/View/Image/Min.png", UriKind.RelativeOrAbsolute));
    289299                return;
    290300            }
     
    292302            if (PresentationPanel.Child is UserControl)
    293303            {
    294                 MinMaxBorder.BorderThickness = new Thickness(1.7);
    295                 this.MinHeight = MinWidthBackup;
    296                 this.MinWidth = MinWidthBackup;
    297                 this.Width = MinWidthBackup;
    298                 this.Height = MinWidthBackup;
     304                PluginBase.MinHeight = MinHeight;
     305                PluginBase.MinWidth = MinWidth;
     306                PluginBase.Width = MinWidth;
     307                PluginBase.Height = MinHeight;
    299308                BottomDelta.IsEnabled = false;
    300309                RightDelta.IsEnabled = false;
    301310                BottomRightDelta.IsEnabled = false;
    302311                PresentationPanel.Child = this.Icon;
     312                MinMaxImage.Source = new BitmapImage(new Uri("/WorkspaceManager;component/View/Image/Max.png", UriKind.RelativeOrAbsolute));
    303313                return;
    304314            }
    305315        }
    306316
     317        private void ShowAllButton_Click(object sender, RoutedEventArgs e)
     318        {
     319            if (ShowAllData.Visibility == Visibility.Collapsed)
     320            {
     321                ShowAllData.Visibility = Visibility.Visible;
     322                return;
     323            }
     324
     325            if (ShowAllData.Visibility == Visibility.Visible)
     326            {
     327                ShowAllData.Visibility = Visibility.Collapsed;
     328                return;
     329            }
     330        }
     331        #endregion
     332
     333        #region IUpdateableView Members
     334
     335        public void update()
     336        {
     337            //Color the view corresponding to warning or error state
     338            if (model.State == PluginModelState.Warning)
     339            {
     340                this.Window.Background = new SolidColorBrush(Colors.Yellow);
     341            }
     342            else if (model.State == PluginModelState.Error)
     343            {
     344                this.Window.Background = new SolidColorBrush(Colors.Red);
     345            }
     346            else
     347            {
     348                //todo: assign old color and appereance
     349            }
     350            Icon = model.getImage();
     351        }
     352
     353        #endregion
     354
     355
     356        internal void LoadConnection()
     357        {
     358            throw new NotImplementedException();
     359        }
    307360    }
    308361
  • trunk/CrypPlugins/WorkspaceManager/View/Container/WorkSpaceEditorView.xaml.cs

    r1681 r1717  
    2222namespace WorkspaceManager.View.Container
    2323{
     24    public enum EditorState
     25    {
     26        READY,
     27        BUSY
     28    };
    2429    /// <summary>
    2530    /// Interaction logic for WorkSpaceEditorView.xaml
    2631    /// </summary>
     32    ///
    2733    public partial class WorkSpaceEditorView : UserControl
    2834    {
    29         public enum EditorState
    30         {
    31             READY,
    32             BUSY
    33         };
    3435        private Point previousDragPoint = new Point();
    3536        private ConnectorView selectedConnector;
     
    5556
    5657        public WorkSpaceEditorView(WorkspaceModel WorkspaceModel)
     58        {
     59            setBaseControl(WorkspaceModel);
     60            InitializeComponent();
     61        }
     62
     63        private void setBaseControl(WorkspaceModel WorkspaceModel)
    5764        {
    5865            this.MouseLeftButtonDown += new MouseButtonEventHandler(WorkSpaceEditorView_OnMouseLeftButtonDown);
     
    6572            this.Model = WorkspaceModel;
    6673            this.State = EditorState.READY;
    67             InitializeComponent();
    6874        }
    6975
    7076        void PluginDelete(object sender, PluginContainerViewDeleteViewEventArgs e)
    71         {           
    72             Model.deletePluginModel(e.container.Model);
    73             root.Children.Remove(e.container);
     77        {
     78            if (this.State == EditorState.READY)
     79            {
     80                Model.deletePluginModel(e.container.Model);
     81                root.Children.Remove(e.container);
     82            }
    7483        }
    7584
     
    8089        public void AddPluginContainerView(Point position, PluginModel model)
    8190        {
    82             PluginContainerView newPluginContainerView = new PluginContainerView(model);
    83             newPluginContainerView.Delete += new EventHandler<PluginContainerViewDeleteViewEventArgs>(PluginDelete);
    84             newPluginContainerView.ShowSettings += new EventHandler<PluginContainerViewSettingsViewEventArgs>(shape_ShowSettings);
    85             newPluginContainerView.OnConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(shape_OnConnectorMouseLeftButtonDown);
    86             newPluginContainerView.MouseLeftButtonDown += new MouseButtonEventHandler(shape_MouseLeftButtonDown);
    87             newPluginContainerView.MouseLeftButtonUp += new MouseButtonEventHandler(shape_MouseLeftButtonUp);
    88             newPluginContainerView.SetPosition(position);
    89             this.root.Children.Add(newPluginContainerView);
    90             Canvas.SetZIndex(newPluginContainerView, 100);
     91            if (this.State == EditorState.READY)
     92            {
     93                PluginContainerView newPluginContainerView = new PluginContainerView(model);
     94                newPluginContainerView.Delete += new EventHandler<PluginContainerViewDeleteViewEventArgs>(PluginDelete);
     95                newPluginContainerView.ShowSettings += new EventHandler<PluginContainerViewSettingsViewEventArgs>(shape_ShowSettings);
     96                newPluginContainerView.ConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(shape_OnConnectorMouseLeftButtonDown);
     97                newPluginContainerView.MouseLeftButtonDown += new MouseButtonEventHandler(shape_MouseLeftButtonDown);
     98                newPluginContainerView.MouseLeftButtonUp += new MouseButtonEventHandler(shape_MouseLeftButtonUp);
     99                newPluginContainerView.SetPosition(position);
     100                this.root.Children.Add(newPluginContainerView);
     101                Canvas.SetZIndex(newPluginContainerView, 100);
     102            }
    91103        }
    92104
     
    98110        public void AddConnection(IConnectable source, IConnectable target)
    99111        {
    100             ConnectionModel connectionModel = this.Model.newConnectionModel(((ConnectorView)source).Model, ((ConnectorView)target).Model, ((ConnectorView)source).Model.ConnectorType);
    101             CryptoLineView conn = new CryptoLineView(connectionModel);
    102             connectionModel.UpdateableView = conn;
    103             connectionModel.OnDelete += DeleteConnection;
    104             conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
    105             conn.SetBinding(CryptoLineView.EndPointProperty, CreateConnectorBinding(target));
    106             root.Children.Add(conn);
    107             ConnectionList.Add(conn);
    108             Canvas.SetZIndex(conn, 0);           
     112            if (this.State == EditorState.READY)
     113            {
     114                ConnectionModel connectionModel = this.Model.newConnectionModel(((ConnectorView)source).Model, ((ConnectorView)target).Model, ((ConnectorView)source).Model.ConnectorType);
     115                CryptoLineView conn = new CryptoLineView(connectionModel);
     116                connectionModel.UpdateableView = conn;
     117                connectionModel.OnDelete += DeleteConnection;
     118                conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
     119                conn.SetBinding(CryptoLineView.EndPointProperty, CreateConnectorBinding(target));
     120                root.Children.Add(conn);
     121                ConnectionList.Add(conn);
     122                Canvas.SetZIndex(conn, 0);
     123            }
    109124        }
    110125
     
    122137        private void AddConnectionSource(IConnectable source, CryptoLineView conn)
    123138        {
    124             Color color = ColorHelper.GetColor((source as ConnectorView).Model.ConnectorType);
    125             conn.Stroke = new SolidColorBrush(color);
    126             conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
    127             conn.EndPoint = Mouse.GetPosition(this);
     139            if (this.State == EditorState.READY)
     140            {
     141                Color color = ColorHelper.GetColor((source as ConnectorView).Model.ConnectorType);
     142                conn.Stroke = new SolidColorBrush(color);
     143                conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(source));
     144                conn.EndPoint = Mouse.GetPosition(this);
     145            }
    128146        }
    129147
     
    135153            Binding binding = new Binding();
    136154            binding.Source = connectable;
    137             binding.Path = new PropertyPath(ConnectorView.PositionOnWorkSpaceXProperty);
     155            binding.Path = new PropertyPath(ConnectorView.X);
    138156            multiBinding.Bindings.Add(binding);
    139157
    140158            binding = new Binding();
    141159            binding.Source = connectable;
    142             binding.Path = new PropertyPath(ConnectorView.PositionOnWorkSpaceYProperty);
     160            binding.Path = new PropertyPath(ConnectorView.Y);
    143161            multiBinding.Bindings.Add(binding);
    144162
     
    169187        void shape_OnConnectorMouseLeftButtonDown(object sender, ConnectorViewEventArgs e)
    170188        {
    171             if (selectedConnector != null && WorkspaceModel.compatibleConnectors(selectedConnector.Model, e.connector.Model))
    172             {
     189            if (this.State == EditorState.READY)
     190            {
     191                if (selectedConnector != null && WorkspaceModel.compatibleConnectors(selectedConnector.Model, e.connector.Model))
     192                {
     193                    this.root.Children.Remove(dummyLine);
     194                    this.AddConnection(selectedConnector, e.connector);
     195                    this.selectedConnector = null;
     196                    return;
     197                }
     198
     199                if (selectedConnector == null && e.connector.Model.Outgoing)
     200                {
     201                    this.root.Children.Add(dummyLine);
     202                    this.selectedConnector = e.connector;
     203                    this.AddConnectionSource(e.connector, dummyLine);
     204                    return;
     205                }
     206            }
     207           
     208        }
     209
     210        void WorkSpaceEditorView_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
     211        {
     212            if (this.State == EditorState.READY)
     213            {
     214                this.selectedConnector = null;
    173215                this.root.Children.Remove(dummyLine);
    174                 this.AddConnection(selectedConnector, e.connector);
    175                 this.selectedConnector = null;
    176                 this.State = EditorState.READY;
    177                 return;
    178             }
    179 
    180             if (selectedConnector == null && e.connector.Model.Outgoing)
    181             {
    182                 this.root.Children.Add(dummyLine);
    183                 this.selectedConnector = e.connector;
    184                 this.AddConnectionSource(e.connector, dummyLine);
    185                 this.State = EditorState.BUSY;
    186                 return;
    187             }
    188            
    189         }
    190 
    191         void WorkSpaceEditorView_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
    192         {
    193             this.selectedConnector = null;
    194             this.root.Children.Remove(dummyLine);
     216            }
    195217        }
    196218
    197219        void WorkSpaceEditorView_MouseLeave(object sender, MouseEventArgs e)
    198220        {
    199             this.selectedPluginContainer = null;
    200             this.State = EditorState.READY;
     221            if (this.State == EditorState.READY)
     222            {
     223                this.selectedPluginContainer = null;
     224            }
    201225        }     
    202226
     
    220244            Canvas.SetZIndex(sender as PluginContainerView, 100);
    221245            this.selectedPluginContainer = null;
    222             this.State = EditorState.BUSY;
    223246        }
    224247
     
    227250            Canvas.SetZIndex(sender as PluginContainerView, 101);
    228251            this.selectedPluginContainer = sender as PluginContainerView;
    229             this.State = EditorState.BUSY;
    230252            PluginChangedEventArgs args = new PluginChangedEventArgs(this.selectedPluginContainer.Model.Plugin, this.selectedPluginContainer.Model.Name, DisplayPluginMode.Normal);
    231253            this.Model.WorkspaceManagerEditor.onSelectedPluginChanged(args);
     
    235257        void WorkSpaceEditorView_Drop(object sender, DragEventArgs e)
    236258        {
    237             DragDropDataObject obj = e.Data.GetData("Cryptool.PluginBase.Editor.DragDropDataObject") as DragDropDataObject;
    238             PluginModel pluginModel = Model.newPluginModel(DragDropDataObjectToPluginConverter.CreatePluginInstance(obj.AssemblyFullName, obj.TypeFullName));
    239             if(obj != null)
    240                 this.AddPluginContainerView(e.GetPosition(root), pluginModel);
     259            if (this.State == EditorState.READY)
     260            {
     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);
     265            }
    241266        }
    242267
    243268        void WorkSpaceEditorView_DragEnter(object sender, DragEventArgs e)
    244269        {
    245             e.Effects = DragDropEffects.Copy;
     270            if (this.State == EditorState.READY)
     271            {
     272                e.Effects = DragDropEffects.Copy;
     273            }
     274            else if (this.State == EditorState.BUSY)
     275            {
     276                e.Effects = DragDropEffects.None;
     277            }
    246278        }
    247279
     
    251283        {
    252284            this.InformationPanel.Visibility = Visibility.Hidden;
     285        }
     286
     287        internal void Load(WorkspaceModel WorkspaceModel)
     288        {
     289            this.Model = WorkspaceModel;
     290
     291            foreach (PluginModel model in this.Model.AllPluginModels)
     292            {
     293                this.loadPluginContainerView(model);
     294            }
     295            foreach(ConnectionModel connModel in WorkspaceModel.AllConnectionModels)
     296            {
     297                CryptoLineView conn = new CryptoLineView(connModel);
     298                connModel.UpdateableView = conn;
     299                connModel.OnDelete += DeleteConnection;
     300
     301                foreach (UIElement element in root.Children)
     302                {
     303                    PluginContainerView container = element as PluginContainerView;
     304                    if (container != null)
     305                    {
     306                        foreach (ConnectorView connector in container.ConnectorViewList)
     307                        {
     308                            if(connModel.From == connector.model)
     309                                conn.SetBinding(CryptoLineView.StartPointProperty, CreateConnectorBinding(connector));
     310                            else if(connModel.To == connector.model)
     311                                conn.SetBinding(CryptoLineView.EndPointProperty, CreateConnectorBinding(connector));
     312                        }
     313                    }
     314                }
     315
     316                root.Children.Add(conn);
     317                ConnectionList.Add(conn);
     318                Canvas.SetZIndex(conn, 0);
     319            }
     320        }
     321
     322        private void loadPluginContainerView(PluginModel model)
     323        {
     324            PluginContainerView newPluginContainerView = new PluginContainerView(model);
     325
     326            newPluginContainerView.Delete += new EventHandler<PluginContainerViewDeleteViewEventArgs>(PluginDelete);
     327            newPluginContainerView.ShowSettings += new EventHandler<PluginContainerViewSettingsViewEventArgs>(shape_ShowSettings);
     328            newPluginContainerView.ConnectorMouseLeftButtonDown += new EventHandler<ConnectorViewEventArgs>(shape_OnConnectorMouseLeftButtonDown);
     329            newPluginContainerView.MouseLeftButtonDown += new MouseButtonEventHandler(shape_MouseLeftButtonDown);
     330            newPluginContainerView.MouseLeftButtonUp += new MouseButtonEventHandler(shape_MouseLeftButtonUp);
     331            newPluginContainerView.SetPosition(model.Position);
     332            this.root.Children.Add(newPluginContainerView);
     333            Canvas.SetZIndex(newPluginContainerView, 100);
    253334        }
    254335    }
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Animations.xaml

    r1685 r1717  
    2222    </Storyboard>
    2323
     24    <Storyboard x:Key="FadeIn">
     25        <DoubleAnimation To="1" Duration="00:00:00.5" Storyboard.TargetProperty="Opacity"/>
     26    </Storyboard>
     27
     28    <Storyboard x:Key="FadeOut">
     29        <DoubleAnimation To="0" Duration="00:00:00.5" Storyboard.TargetProperty="Opacity"/>
     30    </Storyboard>
     31
    2432</ResourceDictionary>
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Brushes.xaml

    r1685 r1717  
    55        <GradientBrush.GradientStops>
    66            <GradientStopCollection>
    7                 <GradientStop Color="#0e0e0e" Offset="1.0"/>
    8                 <GradientStop Color="#555555" Offset="0.0"/>
     7                <GradientStop Color="#333333" Offset="1.0"/>
     8                <GradientStop Color="#666666" Offset="0.0"/>
    99            </GradientStopCollection>
    1010        </GradientBrush.GradientStops>
     
    1616                <GradientStop Color="#AA666666" Offset="1.0"/>
    1717                <GradientStop Color="#AA666666" Offset="0.0"/>
     18            </GradientStopCollection>
     19        </GradientBrush.GradientStops>
     20    </LinearGradientBrush>
     21
     22    <LinearGradientBrush x:Key="DataPresentationLinearBrush" StartPoint="0,0" EndPoint="0,1">
     23        <GradientBrush.GradientStops>
     24            <GradientStopCollection>
     25                <GradientStop Color="#444444" Offset="0.0"/>
     26                <GradientStop Color="#55444444" Offset="1.0"/>
     27            </GradientStopCollection>
     28        </GradientBrush.GradientStops>
     29    </LinearGradientBrush>
     30
     31    <LinearGradientBrush x:Key="DataPresentationNameLinearBrush" StartPoint="0,0" EndPoint="0,1">
     32        <GradientBrush.GradientStops>
     33            <GradientStopCollection>
     34                <GradientStop Color="#555555" Offset="1.0"/>
     35                <GradientStop Color="#333333" Offset="0.0"/>
     36            </GradientStopCollection>
     37        </GradientBrush.GradientStops>
     38    </LinearGradientBrush>
     39
     40    <LinearGradientBrush x:Key="BubblePopupLinearBrush" StartPoint="0,0" EndPoint="0,1">
     41        <GradientBrush.GradientStops>
     42            <GradientStopCollection>
     43                <GradientStop Color="#ffffb4" Offset="0.0"/>
     44                <GradientStop Color="#ffffec" Offset="1.0"/>
    1845            </GradientStopCollection>
    1946        </GradientBrush.GradientStops>
     
    3057    </RadialGradientBrush>
    3158
    32     <DrawingBrush x:Key="GridBrush" Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile" Opacity="0.10">
     59    <DrawingBrush x:Key="GridBrush" Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile" Opacity="0.05">
    3360        <DrawingBrush.Drawing>
    3461            <DrawingGroup>
  • trunk/CrypPlugins/WorkspaceManager/View/Resource/Styles.xaml

    r1595 r1717  
    8282                <ControlTemplate x:Name="TemplateBtn" TargetType="Button">
    8383                    <ControlTemplate.Resources>
    84                         <Storyboard x:Key="Anim" RepeatBehavior="Forever">
    85                             <DoubleAnimation From="0" To="360" Duration="00:00:2" Storyboard.TargetName="Rotate" Storyboard.TargetProperty="Angle" />
     84                        <Storyboard x:Key="Anim">
     85                            <DoubleAnimation RepeatBehavior="Forever" From="0" To="360" Duration="00:00:2" Storyboard.TargetName="Rotate" Storyboard.TargetProperty="Angle" />
    8686                            <DoubleAnimation To="2" Duration="00:00:00.15" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleY" />
    8787                            <DoubleAnimation To="2" Duration="00:00:00.15" Storyboard.TargetName="Scale" Storyboard.TargetProperty="ScaleX" />
     
    101101                            </TransformGroup>
    102102                        </Border.RenderTransform>
     103                        <ContentPresenter Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" Content="{TemplateBinding Content}"></ContentPresenter>
     104                    </Border>
     105                    <ControlTemplate.Triggers>
     106                        <Trigger Property="ButtonBase.IsMouseOver" Value="true">
     107                            <Trigger.EnterActions>
     108                                <BeginStoryboard Storyboard="{StaticResource ResourceKey=Anim}"></BeginStoryboard>
     109                            </Trigger.EnterActions>
     110                            <Trigger.ExitActions>
     111                                <BeginStoryboard Storyboard="{StaticResource ResourceKey=Anim2}"></BeginStoryboard>
     112                            </Trigger.ExitActions>
     113                        </Trigger>
     114                    </ControlTemplate.Triggers>
     115                </ControlTemplate>
     116            </Setter.Value>
     117        </Setter>
     118    </Style>
     119
     120    <Style TargetType="{x:Type Button}" x:Key="MinMaxPluginContainerButtonStyle">
     121        <Setter Property="Template">
     122            <Setter.Value>
     123                <ControlTemplate x:Name="TemplateBtn" TargetType="Button">
     124                    <ControlTemplate.Resources>
     125                        <Storyboard x:Key="Anim" RepeatBehavior="Forever">
     126                            <DoubleAnimation To="1" Duration="00:00:1.5" Storyboard.TargetName="MouseOverEffect" Storyboard.TargetProperty="Opacity" />
     127                        </Storyboard>
     128                        <Storyboard x:Key="Anim2">
     129                            <DoubleAnimation To="0" Duration="00:00:1.5" Storyboard.TargetName="MouseOverEffect" Storyboard.TargetProperty="Opacity" />
     130                        </Storyboard>
     131
     132                    </ControlTemplate.Resources>
     133                    <Border x:Name="Border">
     134                        <Border.Effect>
     135                            <DropShadowEffect x:Name="MouseOverEffect" Color="#c3edff" BlurRadius="10" ShadowDepth="0" RenderingBias="Quality" Opacity="0"></DropShadowEffect>
     136                        </Border.Effect>
    103137                        <ContentPresenter Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" Content="{TemplateBinding Content}"></ContentPresenter>
    104138                    </Border>
  • trunk/CrypPlugins/WorkspaceManager/View/VisualComponents/BottomBox.xaml.cs

    r1685 r1717  
    4545        private void Main_MouseEnter(object sender, MouseEventArgs e)
    4646        {
    47             if (Main.ActualHeight < 28)
    48             {
    49                 //Sub.Visibility = Visibility.Collapsed;
    50                 Main.BeginStoryboard((this.Resources["IncrementHeigth"] as Storyboard));
    51                 //(this.Resources["Up"] as Storyboard).Stop(Sub);
    52                 MainElementsBorder.Visibility = Visibility.Visible;
    53             }
     47            //Sub.Visibility = Visibility.Collapsed;
     48            Main.BeginStoryboard((this.Resources["IncrementHeigth"] as Storyboard));
     49            //(this.Resources["Up"] as Storyboard).Stop(Sub);
     50            MainElementsBorder.Visibility = Visibility.Visible;
    5451        }
    5552
    5653        private void Main_MouseLeave(object sender, MouseEventArgs e)
    5754        {
    58             if (Main.ActualHeight == 28)
    59             {
    60                 //Sub.Visibility = Visibility.Visible;
    61                 Main.BeginStoryboard((this.Resources["DecrementHeigth"] as Storyboard));
    62                 //Sub.BeginStoryboard((this.Resources["Up"] as Storyboard));
    63                 MainElementsBorder.Visibility = Visibility.Collapsed;
    64             }
     55            //Sub.Visibility = Visibility.Visible;
     56            Main.BeginStoryboard((this.Resources["DecrementHeigth"] as Storyboard));
     57            //Sub.BeginStoryboard((this.Resources["Up"] as Storyboard));
     58            MainElementsBorder.Visibility = Visibility.Collapsed;
    6559        }
    6660    }
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.cs

    r1711 r1717  
    6363            WorkspaceModel = new WorkspaceModel();
    6464            WorkspaceModel.WorkspaceManagerEditor = this;
    65             WorkspaceManagerEditorView = new WorkSpaceEditorView(WorkspaceModel);
     65            WorkspaceSpaceEditorView = new WorkSpaceEditorView(WorkspaceModel);
    6666            ExecutionEngine = new ExecutionEngine(this);
    6767            HasChanges = false;                               
     
    7171
    7272        private WorkspaceModel WorkspaceModel = null;
    73         private WorkSpaceEditorView WorkspaceManagerEditorView = null;
     73        private WorkSpaceEditorView WorkspaceSpaceEditorView = null;
    7474        private ExecutionEngine ExecutionEngine = null;
    7575        private bool executing = false;
     
    133133            try
    134134            {
     135                New();
    135136                GuiLogMessage("Loading Model: " + fileName, NotificationLevel.Info);               
    136137                WorkspaceModel = ModelPersistance.loadModel(fileName);
    137138                WorkspaceModel.WorkspaceManagerEditor = this;
    138                 WorkspaceManagerEditorView.Model = WorkspaceModel;
     139                WorkspaceSpaceEditorView.Load(WorkspaceModel);
    139140                HasChanges = false;
    140141            }
     
    324325        public System.Windows.Controls.UserControl Presentation
    325326        {
    326             get {return WorkspaceManagerEditorView;}
    327             set { WorkspaceManagerEditorView = (WorkSpaceEditorView)value; }
     327            get {return WorkspaceSpaceEditorView;}
     328            set { WorkspaceSpaceEditorView = (WorkSpaceEditorView)value; }
    328329        }
    329330
     
    361362
    362363                //Get the gui Thread
    363                 this.WorkspaceManagerEditorView.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
     364                this.WorkspaceSpaceEditorView.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    364365                {
    365                     this.WorkspaceManagerEditorView.root.IsEnabled = false;                    
     366                    this.WorkspaceSpaceEditorView.State = EditorState.BUSY;                   
    366367                }
    367368                , null);               
     
    424425                ExecutionEngine.Stop();
    425426                //Get the gui Thread
    426                 this.WorkspaceManagerEditorView.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
     427                this.WorkspaceSpaceEditorView.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    427428                {
    428                     this.WorkspaceManagerEditorView.root.IsEnabled = true;
     429                    this.WorkspaceSpaceEditorView.State = EditorState.READY;
    429430                }
    430431                , null);
  • trunk/CrypPlugins/WorkspaceManager/WorkspaceManager.csproj

    r1685 r1717  
    104104      <DependentUpon>WorkSpaceEditorView.xaml</DependentUpon>
    105105    </Compile>
     106    <Compile Include="View\Converter\ConnectorToColorConverter.cs" />
    106107    <Compile Include="View\Converter\ConnectorBindingConverter.cs" />
    107108    <Compile Include="View\Converter\DragDropDataObjectToPluginConverter.cs" />
     
    114115      <DependentUpon>CircularProgressBar.xaml</DependentUpon>
    115116    </Compile>
    116     <Compile Include="View\VisualComponents\CryptoLineView.cs" />
     117    <Compile Include="View\VisualComponents\CryptoLineView\CryptoLineView.cs" />
    117118    <Compile Include="View\VisualComponents\BottomBox.xaml.cs">
    118119      <DependentUpon>BottomBox.xaml</DependentUpon>
    119120    </Compile>
    120     <Compile Include="View\VisualComponents\FromTo.cs" />
     121    <Compile Include="View\VisualComponents\DataPresentation.xaml.cs">
     122      <DependentUpon>DataPresentation.xaml</DependentUpon>
     123    </Compile>
     124    <Compile Include="View\VisualComponents\CryptoLineView\FromTo.cs" />
     125    <Compile Include="View\VisualComponents\Search.xaml.cs">
     126      <DependentUpon>Search.xaml</DependentUpon>
     127    </Compile>
    121128    <Compile Include="WorkspaceManager.cs" />
    122129    <Compile Include="WorkspaceManagerSettings.cs" />
     
    170177      <Generator>MSBuild:Compile</Generator>
    171178    </Page>
     179    <Page Include="View\VisualComponents\DataPresentation.xaml">
     180      <SubType>Designer</SubType>
     181      <Generator>MSBuild:Compile</Generator>
     182    </Page>
     183    <Page Include="View\VisualComponents\Search.xaml">
     184      <SubType>Designer</SubType>
     185      <Generator>MSBuild:Compile</Generator>
     186    </Page>
    172187  </ItemGroup>
    173188  <ItemGroup>
     
    193208  <ItemGroup>
    194209    <Resource Include="View\Image\arrow.png" />
     210  </ItemGroup>
     211  <ItemGroup>
     212    <Resource Include="View\Image\max.png" />
     213    <Resource Include="View\Image\min.png" />
     214  </ItemGroup>
     215  <ItemGroup>
     216    <Resource Include="View\Image\showall.png" />
     217  </ItemGroup>
     218  <ItemGroup>
     219    <Resource Include="View\Image\error.png" />
     220    <Resource Include="View\Image\warning.png" />
    195221  </ItemGroup>
    196222  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Note: See TracChangeset for help on using the changeset viewer.