Changeset 1457


Ignore:
Timestamp:
03/27/09 17:34:56 (12 years ago)
Author:
mstoeger
Message:

Implement Y-Axis Position (left/right) (#554)

Location:
trunk/sources
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Visualization.Test/LineChartTests.cs

    r1390 r1457  
    8484      yaxis1.Label = "Y-Axis 1";
    8585      yaxis2.Label = "Y-Axis 2";
     86
     87      yaxis1.Position = AxisPosition.Left;
     88      yaxis2.Position = AxisPosition.Right;
    8689
    8790      row1.Color = Color.Red;
     
    500503    }
    501504
    502 
    503 
    504505    [Test]
    505506    public void TestMainForm() {
  • trunk/sources/HeuristicLab.Visualization/HeuristicLab.Visualization.csproj

    r1350 r1457  
    44    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    55    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    6     <ProductVersion>9.0.21022</ProductVersion>
     6    <ProductVersion>9.0.30729</ProductVersion>
    77    <SchemaVersion>2.0</SchemaVersion>
    88    <ProjectGuid>{E392A1E2-DC95-4E33-B82E-8ED690EDA1AB}</ProjectGuid>
     
    7070    <Compile Include="AvgAggregator.cs" />
    7171    <Compile Include="AvgLineAggregator.cs" />
     72    <Compile Include="AxisPosition.cs" />
    7273    <Compile Include="AxisTicks.cs" />
    7374    <Compile Include="Canvas.cs" />
  • trunk/sources/HeuristicLab.Visualization/LineChart.cs

    r1390 r1457  
    66using HeuristicLab.Visualization.Legend;
    77using HeuristicLab.Visualization.Options;
     8using HeuristicLab.Visualization.Test;
    89
    910namespace HeuristicLab.Visualization {
     
    9394      canvas.AddShape(xAxis);
    9495
    95       int yAxesWidth = 0;
     96      int yAxesWidthLeft = 0;
     97      int yAxesWidthRight = 0;
    9698
    9799      foreach (YAxisDescriptor yAxisDescriptor in model.YAxes) {
     
    99101        if (yAxisDescriptor.ShowYAxis) {
    100102          canvas.AddShape(info.YAxis);
    101           yAxesWidth += YAxisWidth;
     103          info.YAxis.Position = yAxisDescriptor.Position;
     104          switch (yAxisDescriptor.Position) {
     105            case AxisPosition.Left:
     106              yAxesWidthLeft += YAxisWidth;
     107              break;
     108            case AxisPosition.Right:
     109              yAxesWidthRight += YAxisWidth;
     110              break;
     111            default:
     112              throw new NotImplementedException();
     113          }
    102114        }
    103115      }
     
    111123      titleShape.Y = canvasUI.Height - 10;
    112124
    113       RectangleD linesAreaBoundingBox = new RectangleD(yAxesWidth,
     125      RectangleD linesAreaBoundingBox = new RectangleD(yAxesWidthLeft,
    114126                                                       XAxisHeight,
    115                                                        canvasUI.Width,
     127                                                       canvasUI.Width - yAxesWidthRight,
    116128                                                       canvasUI.Height);
    117129
     
    126138
    127139      int yAxisLeft = 0;
     140      int yAxisRight = (int)linesAreaBoundingBox.X2;
     141
    128142      foreach (YAxisDescriptor yAxisDescriptor in model.YAxes) {
    129143        YAxisInfo info = GetYAxisInfo(yAxisDescriptor);
    130144        if (yAxisDescriptor.ShowYAxis) {
    131           info.YAxis.BoundingBox = new RectangleD(yAxisLeft,
    132                                                  linesAreaBoundingBox.Y1,
    133                                                  yAxisLeft + YAxisWidth,
    134                                                  linesAreaBoundingBox.Y2);
    135           yAxisLeft += YAxisWidth;
     145          switch (yAxisDescriptor.Position) {
     146            case AxisPosition.Left:
     147              info.YAxis.BoundingBox = new RectangleD(yAxisLeft,
     148                                                      linesAreaBoundingBox.Y1,
     149                                                      yAxisLeft + YAxisWidth,
     150                                                      linesAreaBoundingBox.Y2);
     151              yAxisLeft += YAxisWidth;
     152              break;
     153            case AxisPosition.Right:
     154              info.YAxis.BoundingBox = new RectangleD(yAxisRight,
     155                                                      linesAreaBoundingBox.Y1,
     156                                                      yAxisRight + YAxisWidth,
     157                                                      linesAreaBoundingBox.Y2);
     158              yAxisRight += YAxisWidth;
     159              break;
     160            default:
     161              throw new NotImplementedException();
     162          }
    136163        }
    137164      }
  • trunk/sources/HeuristicLab.Visualization/YAxis.cs

    r1343 r1457  
     1using System;
    12using System.Drawing;
    23using HeuristicLab.Visualization.LabelProvider;
     4using HeuristicLab.Visualization.Test;
    35
    46namespace HeuristicLab.Visualization {
     
    79
    810    private ILabelProvider labelProvider = new ContinuousLabelProvider("e4");
     11    private AxisPosition position = AxisPosition.Left;
    912
    1013    public ILabelProvider LabelProvider {
    1114      get { return labelProvider; }
    1215      set { labelProvider = value; }
     16    }
     17
     18    public AxisPosition Position {
     19      get { return position; }
     20      set { position = value; }
    1321    }
    1422
     
    1927                                              ClippingArea.Height,
    2028                                              ClippingArea.Y1)) {
    21         TextShape label = new TextShape(ClippingArea.X2 - 3, y,
    22                                         labelProvider.GetLabel(y));
    23         label.AnchorPositionX = AnchorPositionX.Right;
     29        double x;
     30        AnchorPositionX anchorPositionX;
     31
     32        switch (position) {
     33          case AxisPosition.Left:
     34            x = ClippingArea.X2 - 3;
     35            anchorPositionX = AnchorPositionX.Right;
     36            break;
     37          case AxisPosition.Right:
     38            x = ClippingArea.X1 + 3;
     39            anchorPositionX = AnchorPositionX.Left;
     40            break;
     41          default:
     42            throw new NotImplementedException();
     43        }
     44       
     45        TextShape label = new TextShape(x, y, labelProvider.GetLabel(y));
     46        label.AnchorPositionX = anchorPositionX;
    2447        label.AnchorPositionY = AnchorPositionY.Middle;
    2548        AddShape(label);
  • trunk/sources/HeuristicLab.Visualization/YAxisDescriptor.cs

    r1390 r1457  
    22using System.Collections.Generic;
    33using HeuristicLab.Visualization.LabelProvider;
     4using HeuristicLab.Visualization.Test;
    45
    56namespace HeuristicLab.Visualization {
     
    1213    private string label = "";
    1314    public bool ClipChangeable = true;
     15    private AxisPosition position = AxisPosition.Left;
    1416
    1517    public event YAxisDescriptorChangedHandler YAxisDescriptorChanged;
     
    7880    }
    7981
     82    public AxisPosition Position {
     83      get { return position; }
     84      set { position = value; }
     85    }
     86
    8087    public void AddDataRow(IDataRow row) {
    8188      if (row.YAxis != null) {
Note: See TracChangeset for help on using the changeset viewer.