Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/11/15 13:53:10 (8 years ago)
Author:
jkarder
Message:

#2205: worked on optimization networks

  • refactored network visualization
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Networks.Views.NetworkVisualization.Views/3.3/ChartModes/AddNodesChartMode.cs

    r13077 r13135  
    2424using System.Drawing.Drawing2D;
    2525using System.Windows.Forms;
     26using HeuristicLab.Common;
    2627using HeuristicLab.Common.Resources;
    2728using HeuristicLab.Core.Networks;
     
    3637
    3738    public override Image Image { get { return VSImageLibrary.RadialChart; } }
    38     public override string ToolTip { get { return "Add Nodes"; } }
     39    public override string Text { get { return "Add &Nodes"; } }
     40    public override string ToolTipText { get { return "Add Nodes"; } }
    3941
    4042    public AddNodesChartMode(ChartControl control) : base(control) { }
    4143
    4244    public override void HandleOnMouseMove(object sender, MouseEventArgs e) {
    43       base.HandleOnMouseMove(sender, e);
     45      try {
     46        if (!(chartControl.Tag is IUserDefinedNetwork)) return;
    4447
    45       if (!(chartControl.Tag is IUserDefinedNetwork)) return;
    46 
    47       try {
    48         chartControl.PictureBox.Refresh();
     48        chartControl.RefreshPicture();
    4949
    5050        var size = new Size(200, 100);
    51         using (var graphics = chartControl.PictureBox.CreateGraphics())
     51
     52        using (var graphics = chartControl.CreatePictureGraphics())
    5253        using (var pen = new Pen(Color.Gray) { DashStyle = DashStyle.Dash }) {
    5354          graphics.DrawRectangle(pen,
     
    5758            size.Height);
    5859        }
     60
    5961      } finally {
    60         chartControl.PictureBox.Update();
     62        chartControl.UpdatePicture();
     63        base.HandleOnMouseMove(sender, e);
    6164      }
    6265    }
    6366
    64     public override void HandleOnMouseUp(object sender, MouseEventArgs e) {
    65       base.HandleOnMouseUp(sender, e);
     67    public override void HandleOnMouseDown(object sender, MouseEventArgs e) {
     68      try {
     69        switch (e.Button) {
     70          case MouseButtons.Left:
     71            var network = chartControl.Tag as IUserDefinedNetwork;
     72            if (network == null) return;
    6673
    67       switch (e.Button) {
    68         case MouseButtons.Left:
    69           var network = chartControl.Tag as IUserDefinedNetwork;
    70           if (network == null) return;
     74            var node = CreateNode(network);
     75            if (node == null) return;
    7176
    72           var node = CreateNode(network);
    73           var visualizableNode = node as IVisualizableNode;
    74           if (visualizableNode == null) return;
     77            var center = chartControl.Chart.TransformPixelToWorld(e.Location);
     78            var size = chartControl.Chart.TransformPixelToWorld(new Size(100, 50));
     79            var lowerLeft = center - new Offset(size);
     80            var upperRight = center + new Offset(size);
     81            node.VisualProperties = new NodeVisualProperties(new Point2D<double>(lowerLeft.X, lowerLeft.Y),
     82                                                             new Point2D<double>(upperRight.X, upperRight.Y));
     83            network.Nodes.Add(node);
     84            break;
     85        }
     86      } finally {
     87        base.HandleOnMouseDown(sender, e);
     88      }
     89    }
    7590
    76           var center = chartControl.Chart.TransformPixelToWorld(e.Location);
    77           var size = chartControl.Chart.TransformPixelToWorld(new Size(200, 100));
    78 
    79           visualizableNode.VisualProperties.X = center.X;
    80           visualizableNode.VisualProperties.Y = center.Y;
    81           visualizableNode.VisualProperties.Width = size.Width;
    82           visualizableNode.VisualProperties.Height = size.Height;
    83 
    84           network.Nodes.Add(node);
    85           break;
    86       }
     91    public override void HandleOnMouseLeave(object sender, EventArgs e) {
     92      chartControl.RefreshPicture();
     93      base.HandleOnMouseLeave(sender, e);
    8794    }
    8895
Note: See TracChangeset for help on using the changeset viewer.