Changeset 10269


Ignore:
Timestamp:
12/23/13 11:42:24 (9 years ago)
Author:
bburlacu
Message:

#1772: Added HeuristicLab.Problems.DataAnalysis.Symbolic and HeuristicLab.Problems.DataAnalysis.Symbolic.Views and integrated some modifications from the old branch.

Location:
branches/HeuristicLab.EvolutionTracking
Files:
64 added
6 deleted
14 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj

    r8600 r10269  
    4141    <DebugType>full</DebugType>
    4242    <Optimize>false</Optimize>
    43     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     43    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4444    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4545    <ErrorReport>prompt</ErrorReport>
     
    5050    <DebugType>pdbonly</DebugType>
    5151    <Optimize>true</Optimize>
    52     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     52    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5353    <DefineConstants>TRACE</DefineConstants>
    5454    <ErrorReport>prompt</ErrorReport>
     
    5858  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    5959    <DebugSymbols>true</DebugSymbols>
    60     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     60    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6161    <DefineConstants>DEBUG;TRACE</DefineConstants>
    6262    <DebugType>full</DebugType>
     
    6666  </PropertyGroup>
    6767  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    68     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     68    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6969    <DefineConstants>TRACE</DefineConstants>
    7070    <Optimize>true</Optimize>
     
    7676  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    7777    <DebugSymbols>true</DebugSymbols>
    78     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     78    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7979    <DefineConstants>DEBUG;TRACE</DefineConstants>
    8080    <DebugType>full</DebugType>
     
    8484  </PropertyGroup>
    8585  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    86     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     86    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8787    <DefineConstants>TRACE</DefineConstants>
    8888    <Optimize>true</Optimize>
     
    9393  </PropertyGroup>
    9494  <ItemGroup>
     95    <Reference Include="HeuristicLab.Collections-3.3">
     96      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     97      <Private>False</Private>
     98    </Reference>
     99    <Reference Include="HeuristicLab.Common-3.3">
     100      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     101      <Private>False</Private>
     102    </Reference>
     103    <Reference Include="HeuristicLab.Common.Resources-3.3">
     104      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     105      <Private>False</Private>
     106    </Reference>
     107    <Reference Include="HeuristicLab.Core-3.3">
     108      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
     109      <Private>False</Private>
     110    </Reference>
     111    <Reference Include="HeuristicLab.Core.Views-3.3">
     112      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath>
     113      <Private>False</Private>
     114    </Reference>
     115    <Reference Include="HeuristicLab.Data-3.3">
     116      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     117      <Private>False</Private>
     118    </Reference>
     119    <Reference Include="HeuristicLab.Data.Views-3.3">
     120      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data.Views-3.3.dll</HintPath>
     121      <Private>False</Private>
     122    </Reference>
     123    <Reference Include="HeuristicLab.MainForm-3.3">
     124      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
     125      <Private>False</Private>
     126    </Reference>
     127    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3">
     128      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
     129      <Private>False</Private>
     130    </Reference>
     131    <Reference Include="HeuristicLab.Operators-3.3">
     132      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     133      <Private>False</Private>
     134    </Reference>
     135    <Reference Include="HeuristicLab.Optimization-3.3">
     136      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     137      <Private>False</Private>
     138    </Reference>
     139    <Reference Include="HeuristicLab.Optimization.Views-3.3">
     140      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Views-3.3.dll</HintPath>
     141      <Private>False</Private>
     142    </Reference>
     143    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     144      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     145      <Private>False</Private>
     146    </Reference>
     147    <Reference Include="HeuristicLab.Random-3.3">
     148      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
     149      <Private>False</Private>
     150    </Reference>
     151    <Reference Include="HeuristicLab.Visualization.ChartControlsExtensions-3.3">
     152      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Visualization.ChartControlsExtensions-3.3.dll</HintPath>
     153      <Private>False</Private>
     154    </Reference>
    95155    <Reference Include="System" />
    96156    <Reference Include="System.Core">
     
    162222    <Compile Include="VisualSymbolicExpressionTreeNode.cs" />
    163223    <Compile Include="VisualSymbolicExpressionTreeNodeConnection.cs" />
    164   </ItemGroup>
    165   <ItemGroup>
    166     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    167       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    168       <Name>HeuristicLab.Collections-3.3</Name>
    169       <Private>False</Private>
    170     </ProjectReference>
    171     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    172       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    173       <Name>HeuristicLab.Common.Resources-3.3</Name>
    174       <Private>False</Private>
    175     </ProjectReference>
    176     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    177       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    178       <Name>HeuristicLab.Common-3.3</Name>
    179       <Private>False</Private>
    180     </ProjectReference>
    181     <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
    182       <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
    183       <Name>HeuristicLab.Core.Views-3.3</Name>
    184       <Private>False</Private>
    185     </ProjectReference>
    186     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    187       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    188       <Name>HeuristicLab.Core-3.3</Name>
    189       <Private>False</Private>
    190     </ProjectReference>
    191     <ProjectReference Include="..\..\HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj">
    192       <Project>{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}</Project>
    193       <Name>HeuristicLab.Data.Views-3.3</Name>
    194       <Private>False</Private>
    195     </ProjectReference>
    196     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    197       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    198       <Name>HeuristicLab.Data-3.3</Name>
    199       <Private>False</Private>
    200     </ProjectReference>
    201     <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
    202       <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
    203       <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
    204       <Private>False</Private>
    205     </ProjectReference>
    206     <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">
    207       <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>
    208       <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>
    209       <Private>False</Private>
    210     </ProjectReference>
    211     <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">
    212       <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>
    213       <Name>HeuristicLab.MainForm-3.3</Name>
    214       <Private>False</Private>
    215     </ProjectReference>
    216     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    217       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    218       <Name>HeuristicLab.Operators-3.3</Name>
    219       <Private>False</Private>
    220     </ProjectReference>
    221     <ProjectReference Include="..\..\HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj">
    222       <Project>{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}</Project>
    223       <Name>HeuristicLab.Optimization.Views-3.3</Name>
    224       <Private>False</Private>
    225     </ProjectReference>
    226     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    227       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    228       <Name>HeuristicLab.Optimization-3.3</Name>
    229       <Private>False</Private>
    230     </ProjectReference>
    231     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    232       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    233       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    234       <Private>False</Private>
    235     </ProjectReference>
    236     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
    237       <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
    238       <Name>HeuristicLab.Random-3.3</Name>
    239       <Private>False</Private>
    240     </ProjectReference>
    241     <ProjectReference Include="..\..\HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj">
    242       <Project>{315BDA09-3F4F-49B3-9790-B37CFC1C5750}</Project>
    243       <Name>HeuristicLab.Visualization.ChartControlsExtensions-3.3</Name>
    244       <Private>False</Private>
    245     </ProjectReference>
    246224  </ItemGroup>
    247225  <ItemGroup>
     
    267245    </BootstrapperPackage>
    268246  </ItemGroup>
     247  <ItemGroup>
     248    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
     249      <Project>{06d4a186-9319-48a0-bade-a2058d462eea}</Project>
     250      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
     251    </ProjectReference>
     252    <ProjectReference Include="..\..\HeuristicLab.EvolutionTracking\3.4\HeuristicLab.EvolutionTracking-3.4.csproj">
     253      <Project>{1f75cea3-464f-4a6f-b2f0-04b9841ebc16}</Project>
     254      <Name>HeuristicLab.EvolutionTracking-3.4</Name>
     255    </ProjectReference>
     256  </ItemGroup>
    269257  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    270258  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
     
    276264  -->
    277265  <PropertyGroup>
    278    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
     266    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
    279267set ProjectDir=$(ProjectDir)
    280268set SolutionDir=$(SolutionDir)
     
    283271call PreBuildEvent.cmd
    284272</PreBuildEvent>
    285 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
     273    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
    286274export ProjectDir=$(ProjectDir)
    287275export SolutionDir=$(SolutionDir)
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj

    r9828 r10269  
    4141    <DebugType>full</DebugType>
    4242    <Optimize>false</Optimize>
    43     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     43    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4444    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4545    <ErrorReport>prompt</ErrorReport>
     
    5151    <DebugType>pdbonly</DebugType>
    5252    <Optimize>true</Optimize>
    53     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     53    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5454    <DefineConstants>TRACE</DefineConstants>
    5555    <ErrorReport>prompt</ErrorReport>
     
    5959  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    6060    <DebugSymbols>true</DebugSymbols>
    61     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     61    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6262    <DefineConstants>DEBUG;TRACE</DefineConstants>
    6363    <DebugType>full</DebugType>
     
    6767  </PropertyGroup>
    6868  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    69     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     69    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7070    <DefineConstants>TRACE</DefineConstants>
    7171    <Optimize>true</Optimize>
     
    7777  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    7878    <DebugSymbols>true</DebugSymbols>
    79     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     79    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8080    <DefineConstants>DEBUG;TRACE</DefineConstants>
    8181    <DebugType>full</DebugType>
     
    8585  </PropertyGroup>
    8686  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    87     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     87    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8888    <DefineConstants>TRACE</DefineConstants>
    8989    <Optimize>true</Optimize>
     
    9494  </PropertyGroup>
    9595  <ItemGroup>
     96    <Reference Include="HeuristicLab.Analysis-3.3">
     97      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis-3.3.dll</HintPath>
     98      <Private>False</Private>
     99    </Reference>
     100    <Reference Include="HeuristicLab.Collections-3.3">
     101      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     102      <Private>False</Private>
     103    </Reference>
     104    <Reference Include="HeuristicLab.Common-3.3">
     105      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     106      <Private>False</Private>
     107    </Reference>
     108    <Reference Include="HeuristicLab.Common.Resources-3.3">
     109      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     110      <Private>False</Private>
     111    </Reference>
     112    <Reference Include="HeuristicLab.Core-3.3">
     113      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
     114    </Reference>
     115    <Reference Include="HeuristicLab.Data-3.3">
     116      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     117      <Private>False</Private>
     118    </Reference>
     119    <Reference Include="HeuristicLab.Operators-3.3">
     120      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     121      <Private>False</Private>
     122    </Reference>
     123    <Reference Include="HeuristicLab.Optimization-3.3">
     124      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     125      <Private>False</Private>
     126    </Reference>
     127    <Reference Include="HeuristicLab.Optimization.Operators-3.3">
     128      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Operators-3.3.dll</HintPath>
     129      <Private>False</Private>
     130    </Reference>
     131    <Reference Include="HeuristicLab.Parameters-3.3">
     132      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
     133      <Private>False</Private>
     134    </Reference>
     135    <Reference Include="HeuristicLab.Persistence-3.3">
     136      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     137      <Private>False</Private>
     138    </Reference>
     139    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     140      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     141      <Private>False</Private>
     142    </Reference>
     143    <Reference Include="HeuristicLab.Random-3.3">
     144      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
     145      <Private>False</Private>
     146    </Reference>
    96147    <Reference Include="System" />
    97148    <Reference Include="System.Core">
     
    135186    <Compile Include="Creators\RampedHalfAndHalfTreeCreator.cs" />
    136187    <Compile Include="Formatters\SymbolicExpressionTreeGraphvizFormatter.cs" />
     188    <Compile Include="Interfaces\IFragment.cs" />
     189    <Compile Include="Interfaces\ILayoutAdapter.cs" />
     190    <Compile Include="Interfaces\ILayoutNode.cs" />
    137191    <Compile Include="Interfaces\IReadOnlySymbol.cs" />
    138192    <Compile Include="Interfaces\ISymbolicExpressionGrammar.cs" />
    139193    <Compile Include="Interfaces\ISymbolicExpressionGrammarBase.cs" />
    140194    <Compile Include="Interfaces\ISymbolicExpressionTreeGrammar.cs" />
     195    <Compile Include="Interfaces\ISymbolicExpressionTreeNodeComparer.cs" />
     196    <Compile Include="Interfaces\ISymbolicExpressionTreeNodeSimilarityComparer.cs" />
    141197    <Compile Include="Interfaces\Operators\ISymbolicExpressionTreeArchitectureAlteringOperator.cs" />
    142198    <Compile Include="Interfaces\Operators\ISymbolicExpressionTreeGrammarBasedOperator.cs" />
     
    154210    <Compile Include="Interfaces\ISymbolicExpressionTreeStringFormatter.cs" />
    155211    <Compile Include="Interfaces\Operators\ISymbolicExpressionTreeSizeConstraintOperator.cs" />
     212    <Compile Include="LayoutEngines\LayoutNode.cs" />
     213    <Compile Include="LayoutEngines\ReingoldTilfordLayoutEngine.cs" />
     214    <Compile Include="LayoutEngines\SymbolicExpressionTreeLayoutAdapter.cs" />
    156215    <Compile Include="Manipulators\ChangeNodeTypeManipulation.cs" />
    157216    <Compile Include="Interfaces\Operators\ISymbolicExpressionTreeManipulator.cs" />
     
    195254  </ItemGroup>
    196255  <ItemGroup>
    197     <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
    198       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
    199       <Name>HeuristicLab.Analysis-3.3</Name>
    200       <Private>False</Private>
    201     </ProjectReference>
    202     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    203       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    204       <Name>HeuristicLab.Collections-3.3</Name>
    205       <Private>False</Private>
    206     </ProjectReference>
    207     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    208       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    209       <Name>HeuristicLab.Common.Resources-3.3</Name>
    210       <Private>False</Private>
    211     </ProjectReference>
    212     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    213       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    214       <Name>HeuristicLab.Common-3.3</Name>
    215       <Private>False</Private>
    216     </ProjectReference>
    217     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    218       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    219       <Name>HeuristicLab.Core-3.3</Name>
    220       <Private>False</Private>
    221     </ProjectReference>
    222     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    223       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    224       <Name>HeuristicLab.Data-3.3</Name>
    225       <Private>False</Private>
    226     </ProjectReference>
    227     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    228       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    229       <Name>HeuristicLab.Operators-3.3</Name>
    230       <Private>False</Private>
    231     </ProjectReference>
    232     <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj">
    233       <Project>{25087811-F74C-4128-BC86-8324271DA13E}</Project>
    234       <Name>HeuristicLab.Optimization.Operators-3.3</Name>
    235       <Private>False</Private>
    236     </ProjectReference>
    237     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    238       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    239       <Name>HeuristicLab.Optimization-3.3</Name>
    240       <Private>False</Private>
    241     </ProjectReference>
    242     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    243       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
    244       <Name>HeuristicLab.Parameters-3.3</Name>
    245       <Private>False</Private>
    246     </ProjectReference>
    247     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    248       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    249       <Name>HeuristicLab.Persistence-3.3</Name>
    250       <Private>False</Private>
    251     </ProjectReference>
    252     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    253       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    254       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    255       <Private>False</Private>
    256     </ProjectReference>
    257     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
    258       <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
    259       <Name>HeuristicLab.Random-3.3</Name>
    260       <Private>False</Private>
    261     </ProjectReference>
    262   </ItemGroup>
    263   <ItemGroup>
    264256    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
    265257      <Visible>False</Visible>
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.Designer.cs

    r10264 r10269  
    1 #region License Information
    2 /* HeuristicLab
    3  * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    4  *
    5  * This file is part of HeuristicLab.
    6  *
    7  * HeuristicLab is free software: you can redistribute it and/or modify
    8  * it under the terms of the GNU General Public License as published by
    9  * the Free Software Foundation, either version 3 of the License, or
    10  * (at your option) any later version.
    11  *
    12  * HeuristicLab is distributed in the hope that it will be useful,
    13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15  * GNU General Public License for more details.
    16  *
    17  * You should have received a copy of the GNU General Public License
    18  * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
    19  */
    20 #endregion
    21 
    22 namespace HeuristicLab.EvolutionaryTracking.Views {
     1namespace HeuristicLab.EvolutionaryTracking.Views {
    232  partial class GenealogyGraphChart {
    243    /// <summary>
     
    4524    /// </summary>
    4625    private void InitializeComponent() {
    47       ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
    48       this.SuspendLayout();
    49       //
    50       // pictureBox
    51       //
    52       this.pictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
    53       this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
    54       //
    55       // GenealogyGraphChart
    56       //
    57       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     26      components = new System.ComponentModel.Container();
    5827      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    59       this.Name = "GenealogyGraphChart";
    60       this.Controls.SetChildIndex(this.pictureBox, 0);
    61       ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
    62       this.ResumeLayout(false);
    63 
    6428    }
    6529
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs

    r10264 r10269  
    1 #region License Information
    2 /* HeuristicLab
    3  * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    4  *
    5  * This file is part of HeuristicLab.
    6  *
    7  * HeuristicLab is free software: you can redistribute it and/or modify
    8  * it under the terms of the GNU General Public License as published by
    9  * the Free Software Foundation, either version 3 of the License, or
    10  * (at your option) any later version.
    11  *
    12  * HeuristicLab is distributed in the hope that it will be useful,
    13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15  * GNU General Public License for more details.
    16  *
    17  * You should have received a copy of the GNU General Public License
    18  * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
    19  */
    20 #endregion
    21 
    22 using System;
     1using System;
    232using System.Collections.Generic;
    243using System.Drawing;
     
    276using System.Windows.Forms;
    287using HeuristicLab.Common;
    29 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    308using HeuristicLab.Visualization;
    319
    3210namespace HeuristicLab.EvolutionaryTracking.Views {
    3311  public partial class GenealogyGraphChart : ChartControl {
    34     private Dictionary<string, VisualGenealogyGraphNode> visualNodeMap; // map the uid of the genealogy graph vertex with a visual node (in this way each node is uniquely determined)
    35     private Dictionary<Tuple<VisualGenealogyGraphNode, VisualGenealogyGraphNode>, VisualGenealogyGraphArc> visualArcMap;
    36     private const int Diameter = 20; // node diameter
    37     private int x, y; // coordinates for positioning each node
    38     private const int Cx = 30, Cy = 30; // position increments
    39     private VisualGenealogyGraphNode selectedGenealogyGraphNode;
    40     public VisualGenealogyGraphNode SelectedGenealogyGraphNode { get { return selectedGenealogyGraphNode; } }
    41     private Visualization.Rectangle targetRectangle; // provides a  rectangle mark of the currently selected genealogy graph node
     12    private GenealogyGraph genealogyGraph;
     13
     14    private const double XIncrement = 30;
     15    private const double YIncrement = 30;
     16    private const double Diameter = 20;
     17
     18    public GenealogyGraph GenealogyGraph {
     19      get { return genealogyGraph; }
     20      set {
     21        if (value == null) return;
     22        genealogyGraph = value;
     23        Clear();
     24        DrawGraph(XIncrement, YIncrement, Diameter);
     25      }
     26    }
     27
     28    private void Clear() {
     29      if (nodeMap == null)
     30        nodeMap = new Dictionary<IGenealogyGraphNode, VisualGenealogyGraphNode>();
     31      else nodeMap.Clear();
     32
     33      if (arcMap == null)
     34        arcMap = new Dictionary<Tuple<VisualGenealogyGraphNode, VisualGenealogyGraphNode>, VisualGenealogyGraphArc>();
     35      else arcMap.Clear();
     36
     37      Chart.Group.Clear();
     38    }
     39
     40    private Dictionary<IGenealogyGraphNode, VisualGenealogyGraphNode> nodeMap;
     41    private Dictionary<Tuple<VisualGenealogyGraphNode, VisualGenealogyGraphNode>, VisualGenealogyGraphArc> arcMap;
    4242
    4343    public bool SimpleLineages { get; set; }
    4444    public bool LockGenealogy { get; set; }
    45 
    46     private bool drawing;
    47 
    48     private SymbolicExpressionTreeGenealogyGraph graph;
    49     public SymbolicExpressionTreeGenealogyGraph Graph {
    50       get { return graph; }
    51       internal set {
    52         graph = value;
    53         if (graph == null) return;
    54 
    55         visualNodeMap = new Dictionary<string, VisualGenealogyGraphNode>();
    56         visualArcMap = new Dictionary<Tuple<VisualGenealogyGraphNode, VisualGenealogyGraphNode>, VisualGenealogyGraphArc>();
    57 
    58         Chart.Group.Clear();
    59         DrawGraph();
    60       }
    61     }
    62 
    63     private VisualGenealogyGraphNode GetVisualGenealogyGraphNode(IVertex node) {
    64       VisualGenealogyGraphNode visualNode;
    65       visualNodeMap.TryGetValue(node.Id, out visualNode);
    66       return visualNode;
    67     }
    68 
    69     private VisualGenealogyGraphArc GetVisualGenealogyGraphArc(IVertex source, IVertex target) {
    70       VisualGenealogyGraphNode visualSource;
    71       VisualGenealogyGraphNode visualTarget;
    72       visualNodeMap.TryGetValue(source.Id, out visualSource);
    73       visualNodeMap.TryGetValue(target.Id, out visualTarget);
    74       if (visualSource != null && visualTarget != null) {
    75         VisualGenealogyGraphArc visualArc;
    76         visualArcMap.TryGetValue(
    77           new Tuple<VisualGenealogyGraphNode, VisualGenealogyGraphNode>(visualSource, visualTarget), out visualArc);
    78         if (visualArc != null) return visualArc;
    79       }
    80       return null;
    81     }
     45    private Visualization.Rectangle TargetRectangle { get; set; }
     46
     47    private VisualGenealogyGraphNode GetMappedNode(IGenealogyGraphNode node) {
     48      VisualGenealogyGraphNode v;
     49      nodeMap.TryGetValue(node, out v);
     50      return v;
     51    }
     52
     53    private VisualGenealogyGraphArc GetMappedArc(IGenealogyGraphNode source, IGenealogyGraphNode target) {
     54      VisualGenealogyGraphNode visualSource, visualTarget;
     55      nodeMap.TryGetValue(source, out visualSource);
     56      nodeMap.TryGetValue(target, out visualTarget);
     57
     58      if (visualSource == null || visualTarget == null) return null;
     59
     60      VisualGenealogyGraphArc arc;
     61      arcMap.TryGetValue(new Tuple<VisualGenealogyGraphNode, VisualGenealogyGraphNode>(visualSource, visualTarget), out arc);
     62      return arc;
     63    }
     64
     65    private bool DrawInProgress { get; set; } // do not try to update the chart while the drawing is not finished
     66    private VisualGenealogyGraphNode SelectedVisualNode { get; set; }
    8267
    8368    public event MouseEventHandler GenealogyGraphNodeClicked;
     
    8873
    8974    public GenealogyGraphChart() {
    90       //      InitializeComponent();
    91       Chart = new Chart(0, 0, PreferredSize.Width, PreferredSize.Height);
    92       x = 0;
    93       y = PreferredSize.Height + Cx + 2 * Diameter;
    94       Chart.Mode = ChartMode.Select;
    95     }
    96 
    97     public void DrawGraph() {
    98       if (graph == null) return;
     75      InitializeComponent();
     76    }
     77
     78    protected virtual void DrawGraph(double xIncrement, double yIncrement, double diameter) {
    9979      Chart.UpdateEnabled = false;
    100 
    101       drawing = true;
    102 
    103       var layers = Graph.Nodes.GroupBy(n => n.Rank).OrderBy(g => g.Key).Select(g => new { Rank = g.Key, Nodes = g.ToList() }).ToList();
    104 
    105       y = PreferredSize.Height + Cx + 2 * Diameter;
    106 
    107       for (int i = 0; i != layers.Count; ++i) {
    108         x = 0;
    109         layers[i].Nodes.Sort((b, a) => Graph.Compare(a, b));
    110         double rank = Math.Floor(layers[i].Rank);
    111         if (layers[i].Rank.IsAlmost(rank)) {
    112           var visualTextNode = new VisualGenealogyGraphTextLabel(Chart, x, y + 2, x + Diameter, y + Diameter) {
    113             FontBrush = new SolidBrush(Color.Black),
    114             Font = new Font("Arial", Diameter - 4, FontStyle.Regular, GraphicsUnit.Pixel),
    115             Text = String.Format("{0:0}", rank)
    116           };
    117           Chart.Group.Add(visualTextNode);
    118         }
    119 
    120         // sort descending by quality (using comparison defined in GenealogyGraphNode class)
    121         x += (int)Math.Floor(1.5 * Cx); // reset horizontal coordinate
    122 
    123         foreach (var node in layers[i].Nodes) {
     80      DrawInProgress = true;
     81
     82      var ranks = GenealogyGraph.Ranks.Select(t => new { Rank = t.Key, Nodes = t.Value }).OrderBy(p => p.Rank).ToList();
     83      double x = 0;
     84      double y = PreferredSize.Height + yIncrement + 2 * diameter;
     85
     86      foreach (var rank in ranks) {
     87        var nodes = rank.Nodes.ToList();
     88        nodes.Sort((a, b) => b.CompareTo(a)); // sort descending by quality
     89        var nl = Environment.NewLine;
     90
     91        foreach (var node in nodes) {
    12492          var pen = new Pen(Color.LightGray);
    125           var nl = Environment.NewLine;
    126           var visualNode = new VisualGenealogyGraphNode(Chart, x, y, x + Diameter, y + Diameter, pen, null) {
     93
     94          var visualNode = new VisualGenealogyGraphNode(Chart, x, y, x + diameter, y + diameter, pen, null) {
    12795            Data = node,
    12896            ToolTipText = "Rank: " + node.Rank + nl +
     
    13199          };
    132100          Chart.Group.Add(visualNode);
    133           visualNodeMap.Add(node.Id, visualNode);
    134 
    135           x += Cx; // increment horizontal coordinate
    136         }
    137 
    138         y -= Cy; // decrement vertical coordinate (because the origin is upside down)
    139 
    140         // connect elites from successive layers with visual arcs
    141         if (i == 0) continue;
    142         var currLayer = layers[i].Nodes;
    143         var prevLayer = layers[i - 1].Nodes;
    144         foreach (var n in currLayer) {
    145           foreach (var m in prevLayer) {
    146             if (n.SymbolicExpressionTree != m.SymbolicExpressionTree) continue;
    147             var v1 = GetVisualGenealogyGraphNode(n);
    148             var v2 = GetVisualGenealogyGraphNode(m);
    149 
    150             var pen = new Pen(Color.LightGray);
    151             visualArcMap[Tuple.Create(v2, v1)] = AddArc(Chart, v2, v1, pen);
    152           }
    153         }
    154       }
    155       // add arcs separately (to avoid some ordering problems)
    156       foreach (SymbolicExpressionTreeGenealogyGraphNode node in Graph.Nodes) {
    157         VisualGenealogyGraphNode visualNode = GetVisualGenealogyGraphNode(node);
    158         if (node.InEdges == null) continue;
    159 
    160         foreach (Arc arc in node.InEdges) {
    161           var visualParent = GetVisualGenealogyGraphNode(arc.Source);
     101          nodeMap.Add(node, visualNode);
     102
     103          x += xIncrement;
     104        }
     105        y -= yIncrement;
     106      }
     107      // add arcs
     108      foreach (var node in GenealogyGraph.Nodes) {
     109        if (node.InArcs == null) continue;
     110        var visualNode = nodeMap[node];
     111        if (visualNode == null) continue;
     112        foreach (var arc in node.InArcs) {
     113          var parent = arc.Source;
     114          var visualParent = GetMappedNode(parent);
     115          if (visualParent == null) continue;
    162116          var pen = new Pen(Color.Transparent);
    163           visualArcMap[Tuple.Create(visualParent, visualNode)] = AddArc(Chart, visualParent, visualNode, pen);
    164         }
    165       }
    166 
    167       // highlight the most recent common ancestor ("eve" individual)
    168       //      var eve = graph.MostRecentCommonAncestor();
    169       //      if (eve != null) {
    170       //        var visualGraphNode = GetVisualGenealogyGraphNode(eve);
    171 
    172       //        var brush = new SolidBrush(Color.BlueViolet);
    173       //        visualGraphNode.FontBrush = brush;
    174       //      }
    175 
    176       Chart.UpdateEnabled = true;
    177       Chart.EnforceUpdate();
    178 
    179       drawing = false;
    180     }
    181 
    182     // add an arc between the source and the target nodes, using the specified pen color
    183     // adds the arc to the arc lists of both nodes and to the primitive group of the chart
    184     private static VisualGenealogyGraphArc AddArc(IChart chart, VisualGenealogyGraphNode source, VisualGenealogyGraphNode target, Pen pen, Brush brush = null) {
    185       var arc = new VisualGenealogyGraphArc(chart, source, target, pen) { Brush = brush };
    186       arc.UpdatePosition();
    187       source.OutgoingArcs.Add(arc);
    188       target.IncomingArcs.Add(arc);
    189       chart.Group.Add(arc);
    190       return arc;
    191     }
    192 
    193     protected override void pictureBox_MouseMove(object sender, MouseEventArgs e) {
    194       if (!drawing) {
     117          var visualArc = AddArc(Chart, visualParent, visualNode, pen);
     118          arcMap.Add(Tuple.Create(visualParent, visualNode), visualArc);
     119        }
     120      }
     121      // TODO: connect elites
     122
     123      Chart.UpdateEnabled = true;
     124      Chart.EnforceUpdate();
     125
     126      DrawInProgress = false;
     127    }
     128
     129    protected override void pictureBox_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) {
     130      if (!DrawInProgress) {
    195131        switch (e.Button) {
    196132          case MouseButtons.Left:
     
    203139            break;
    204140        }
    205         base.pictureBox_MouseMove(sender, e);
    206       }
     141      }
     142      base.pictureBox_MouseMove(sender, e);
    207143    }
    208144
     
    213149        return;
    214150      }
    215 
    216151      if (Chart.Mode != ChartMode.Select) {
    217152        base.pictureBox_MouseUp(sender, e);
    218153        return;
    219154      }
    220 
    221155      var visualNodes = Chart.GetAllPrimitives(e.Location).Where(p => p is VisualGenealogyGraphNode).ToList();
    222156      if (visualNodes.Count <= 0) {
    223         selectedGenealogyGraphNode = null;
     157        SelectedVisualNode = null;
    224158        return;
    225159      }
    226       if (selectedGenealogyGraphNode == visualNodes[0]) return;
    227       selectedGenealogyGraphNode = visualNodes[0] as VisualGenealogyGraphNode;
    228       if (selectedGenealogyGraphNode == null) return;
     160      if (SelectedVisualNode == visualNodes[0]) return;
     161      SelectedVisualNode = visualNodes[0] as VisualGenealogyGraphNode;
     162      if (SelectedVisualNode == null) return;
    229163
    230164      if (!LockGenealogy) {
     
    233167        if (ModifierKeys != Keys.Shift)
    234168          // clear colors
    235           ClearAllNodes();
     169          ClearPrimitives();
    236170        // use a rectangle to highlight the currently selected genealogy graph node
    237         var gNode = selectedGenealogyGraphNode.Data;
    238         var visualNode = GetVisualGenealogyGraphNode(gNode);
     171        var gNode = SelectedVisualNode.Data;
     172        var visualNode = GetMappedNode(gNode);
    239173
    240174        DrawLineage(visualNode, n => SimpleLineages ? n.IncomingArcs.Take(1) : n.IncomingArcs, a => a.Source);
     
    249183      Chart.EnforceUpdate();
    250184
    251       if (selectedGenealogyGraphNode != null)
     185      if (SelectedVisualNode != null)
    252186        /* emit clicked event */
    253         OnGenealogyGraphNodeClicked(selectedGenealogyGraphNode, e);
     187        OnGenealogyGraphNodeClicked(SelectedVisualNode, e);
     188
     189      base.pictureBox_MouseUp(sender, e);
    254190    }
    255191
     
    273209
    274210    void MarkSelectedNode() {
    275       var center = selectedGenealogyGraphNode.Center;
    276       var size = selectedGenealogyGraphNode.Size;
     211      var center = SelectedVisualNode.Center;
     212      var size = SelectedVisualNode.Size;
    277213      double x1 = center.X - size.Width / 2;
    278214      double x2 = x1 + size.Width;
    279215      double y1 = center.Y - size.Height / 2;
    280216      double y2 = y1 + size.Height;
    281       if (targetRectangle == null) {
    282         targetRectangle = new Visualization.Rectangle(Chart, x1, y1, x2, y2, new Pen(Color.Black), null);
    283         Chart.Group.Add(targetRectangle);
     217      if (TargetRectangle == null) {
     218        TargetRectangle = new Visualization.Rectangle(Chart, x1, y1, x2, y2, new Pen(Color.Black), null);
     219        Chart.Group.Add(TargetRectangle);
    284220      } else {
    285         targetRectangle.SetPosition(x1, y1, x2, y2);
    286       }
    287     }
    288 
    289     public void ClearAllNodes() {
     221        TargetRectangle.SetPosition(x1, y1, x2, y2);
     222      }
     223    }
     224
     225
     226    private static VisualGenealogyGraphArc AddArc(IChart chart, VisualGenealogyGraphNode source, VisualGenealogyGraphNode target, Pen pen, Brush brush = null) {
     227      var arc = new VisualGenealogyGraphArc(chart, source, target, pen) { Brush = brush };
     228      arc.UpdatePosition();
     229      source.OutgoingArcs.Add(arc);
     230      target.IncomingArcs.Add(arc);
     231      chart.Group.Add(arc);
     232      return arc;
     233    }
     234
     235    public virtual void ClearPrimitives() {
    290236      foreach (var primitive in Chart.Group.Primitives) {
    291237        if (primitive is VisualGenealogyGraphArc) {
    292           var arc = primitive as VisualGenealogyGraphArc;
    293           var sourceData = arc.Source.Data.SymbolicExpressionTree;
    294           var targetData = arc.Target.Data.SymbolicExpressionTree;
    295           primitive.Pen.Brush = sourceData != targetData ? new SolidBrush(Color.Transparent) : new SolidBrush(Color.LightGray);
     238          primitive.Pen.Brush = new SolidBrush(Color.Transparent);
    296239        } else {
    297240          primitive.Brush = null;
     
    299242      }
    300243    }
    301 
    302     public void HighlightNodes(IEnumerable<SymbolicExpressionTreeGenealogyGraphNode> nodes) {
     244    public void HighlightNodes(IEnumerable<IGenealogyGraphNode> nodes) {
    303245      Chart.UpdateEnabled = false;
    304       ClearAllNodes();
     246      ClearPrimitives();
    305247      foreach (var node in nodes) {
    306         GetVisualGenealogyGraphNode(node).Brush = new SolidBrush(node.GetColor());
    307       }
    308       Chart.UpdateEnabled = true;
    309       Chart.EnforceUpdate();
    310     }
    311 
    312     // TODO: optimize and reduce complexity of this method
    313     public void HighlightNodes(IEnumerable<ISymbolicExpressionTree> trees) {
    314       foreach (var tree in trees) {
    315         var graphNodes = graph.GetGraphNodes(tree);
    316         foreach (var graphNode in graphNodes) {
    317           GetVisualGenealogyGraphNode(graphNode).Brush = new SolidBrush(graphNode.GetColor());
    318         }
    319       }
    320     }
    321 
    322     public void HighlightArcs(IEnumerable<IEdge> arcs, Color color) {
    323       foreach (var a in arcs) {
    324         var arc = GetVisualGenealogyGraphArc(a.Source, a.Target);
    325         if (arc != null) {
    326           var source = arc.Source.Data;
    327           var target = arc.Target.Data;
    328           var start = new Point((int)arc.Start.X, (int)arc.Start.Y);
    329           var end = new Point((int)arc.End.X, (int)arc.End.Y);
    330           arc.Pen.Brush = new LinearGradientBrush(start, end, source.GetColor(), target.GetColor());
    331         }
    332       }
    333     }
    334 
    335     public void HighlightNode(SymbolicExpressionTreeGenealogyGraphNode graphNode, Color color) {
    336       GetVisualGenealogyGraphNode(graphNode).Brush = new SolidBrush(color);
    337     }
    338 
     248        GetMappedNode(node).Brush = new SolidBrush(node.GetColor());
     249      }
     250      Chart.UpdateEnabled = true;
     251      Chart.EnforceUpdate();
     252    }
    339253    public void HighlightAll() {
    340254      Chart.UpdateEnabled = false;
    341       foreach (var visualNode in visualNodeMap.Values) {
     255      foreach (var visualNode in nodeMap.Values) {
    342256        visualNode.Brush = new SolidBrush(visualNode.Data.GetColor());
    343257      }
    344       foreach (var arc in visualArcMap.Values) {
     258      foreach (var arc in arcMap.Values) {
    345259        var source = arc.Source.Data;
    346260        var target = arc.Target.Data;
     
    352266      Chart.EnforceUpdate();
    353267    }
    354 
    355     public void HighlightInDegree() {
    356       Chart.UpdateEnabled = false;
    357       ClearAllNodes();
    358       double max = Graph.Nodes.Max(x => x.InEdges == null ? 0 : x.InEdges.Count);
    359       foreach (var graphNode in Graph.Nodes) {
    360         var visualNode = GetVisualGenealogyGraphNode(graphNode);
    361         double deg = graphNode.InEdges == null ? 0 : graphNode.InEdges.Count;
    362         int index = (int)(deg / max * ColorGradient.Colors.Count);
    363         if (index == ColorGradient.Colors.Count) --index;
    364         var color = ColorGradient.Colors[index];
    365         visualNode.Brush = new SolidBrush(color);
    366       }
    367       Chart.UpdateEnabled = true;
    368       Chart.EnforceUpdate();
    369     }
    370 
    371     public void HighlightOutDegree() {
    372       Chart.UpdateEnabled = false;
    373       ClearAllNodes();
    374       var graphNodes = Graph.Nodes;
    375       double max = graphNodes.Max(x => x.OutEdges == null ? 0 : x.OutEdges.Count);
    376       foreach (var graphNode in graphNodes) {
    377         var visualNode = GetVisualGenealogyGraphNode(graphNode);
    378         double deg = graphNode.OutEdges == null ? 0 : graphNode.OutEdges.Count;
    379         int index = (int)(deg / max * ColorGradient.Colors.Count);
    380         if (index == ColorGradient.Colors.Count) --index;
    381         var color = ColorGradient.Colors[index];
    382         visualNode.Brush = new SolidBrush(color);
    383       }
    384       Chart.UpdateEnabled = true;
    385       Chart.EnforceUpdate();
    386     }
    387268  }
    388269
    389270  internal static class Util {
    390     public static Color GetColor(this SymbolicExpressionTreeGenealogyGraphNode node) {
     271    public static Color GetColor(this IGenealogyGraphNode node) {
    391272      var colorIndex = (int)(node.Quality * ColorGradient.Colors.Count);
    392273      if (colorIndex >= ColorGradient.Colors.Count) --colorIndex;
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs

    r10264 r10269  
    2828    private void InitializeComponent() {
    2929      this.components = new System.ComponentModel.Container();
    30       this.splitContainer = new System.Windows.Forms.SplitContainer();
    31       this.symbolicExpressionTreeChart = new HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views.SymbolicExpressionTreeChart();
    3230      this.topControlBox = new System.Windows.Forms.Panel();
    3331      this.graphControlsGroupBox = new System.Windows.Forms.GroupBox();
     
    3533      this.highlightAllButton = new System.Windows.Forms.Button();
    3634      this.simpleLineagesCheckBox = new System.Windows.Forms.CheckBox();
    37       this.groupBox1 = new System.Windows.Forms.GroupBox();
    38       this.matchConstantsCheckBox = new System.Windows.Forms.CheckBox();
    39       this.matchVariableWeightsCheckBox = new System.Windows.Forms.CheckBox();
    40       this.matchVariableNamesCheckBox = new System.Windows.Forms.CheckBox();
    4135      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
    4236      this.genealogyGraphChart = new HeuristicLab.EvolutionaryTracking.Views.GenealogyGraphChart();
    43       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
    44       this.splitContainer.Panel1.SuspendLayout();
    45       this.splitContainer.Panel2.SuspendLayout();
    46       this.splitContainer.SuspendLayout();
    4737      this.topControlBox.SuspendLayout();
    4838      this.graphControlsGroupBox.SuspendLayout();
    49       this.groupBox1.SuspendLayout();
    5039      this.SuspendLayout();
    51       //
    52       // splitContainer
    53       //
    54       this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    55             | System.Windows.Forms.AnchorStyles.Left)
    56             | System.Windows.Forms.AnchorStyles.Right)));
    57       this.splitContainer.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    58       this.splitContainer.Location = new System.Drawing.Point(3, 53);
    59       this.splitContainer.Name = "splitContainer";
    60       //
    61       // splitContainer.Panel1
    62       //
    63       this.splitContainer.Panel1.Controls.Add(this.genealogyGraphChart);
    64       this.splitContainer.Panel1MinSize = 50;
    65       //
    66       // splitContainer.Panel2
    67       //
    68       this.splitContainer.Panel2.Controls.Add(this.symbolicExpressionTreeChart);
    69       this.splitContainer.Panel2MinSize = 50;
    70       this.splitContainer.Size = new System.Drawing.Size(1066, 722);
    71       this.splitContainer.SplitterDistance = 488;
    72       this.splitContainer.TabIndex = 7;
    73       //
    74       // symbolicExpressionTreeChart
    75       //
    76       this.symbolicExpressionTreeChart.BackgroundColor = System.Drawing.Color.White;
    77       this.symbolicExpressionTreeChart.Dock = System.Windows.Forms.DockStyle.Fill;
    78       this.symbolicExpressionTreeChart.LineColor = System.Drawing.Color.Black;
    79       this.symbolicExpressionTreeChart.Location = new System.Drawing.Point(0, 0);
    80       this.symbolicExpressionTreeChart.Name = "symbolicExpressionTreeChart";
    81       this.symbolicExpressionTreeChart.Size = new System.Drawing.Size(572, 720);
    82       this.symbolicExpressionTreeChart.Spacing = 5;
    83       this.symbolicExpressionTreeChart.SuspendRepaint = false;
    84       this.symbolicExpressionTreeChart.TabIndex = 2;
    85       this.symbolicExpressionTreeChart.TextFont = new System.Drawing.Font("Times New Roman", 8F);
    86       this.symbolicExpressionTreeChart.Tree = null;
    8740      //
    8841      // topControlBox
     
    14194      this.simpleLineagesCheckBox.CheckedChanged += new System.EventHandler(this.simpleLineagesCheckBox_CheckedChanged);
    14295      //
    143       // groupBox1
    144       //
    145       this.groupBox1.Controls.Add(this.matchConstantsCheckBox);
    146       this.groupBox1.Controls.Add(this.matchVariableWeightsCheckBox);
    147       this.groupBox1.Controls.Add(this.matchVariableNamesCheckBox);
    148       this.groupBox1.Location = new System.Drawing.Point(104, 1);
    149       this.groupBox1.Name = "groupBox1";
    150       this.groupBox1.Size = new System.Drawing.Size(325, 44);
    151       this.groupBox1.TabIndex = 12;
    152       this.groupBox1.TabStop = false;
    153       this.groupBox1.Text = "Matching constraints";
    154       //
    155       // matchConstantsCheckBox
    156       //
    157       this.matchConstantsCheckBox.AutoSize = true;
    158       this.matchConstantsCheckBox.Checked = true;
    159       this.matchConstantsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
    160       this.matchConstantsCheckBox.Location = new System.Drawing.Point(6, 19);
    161       this.matchConstantsCheckBox.Name = "matchConstantsCheckBox";
    162       this.matchConstantsCheckBox.Size = new System.Drawing.Size(102, 17);
    163       this.matchConstantsCheckBox.TabIndex = 5;
    164       this.matchConstantsCheckBox.Text = "Constant values";
    165       this.matchConstantsCheckBox.UseVisualStyleBackColor = true;
    166       this.matchConstantsCheckBox.CheckedChanged += new System.EventHandler(this.matchConstantsCheckBox_CheckedChanged);
    167       //
    168       // matchVariableWeightsCheckBox
    169       //
    170       this.matchVariableWeightsCheckBox.AutoSize = true;
    171       this.matchVariableWeightsCheckBox.Checked = true;
    172       this.matchVariableWeightsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
    173       this.matchVariableWeightsCheckBox.Location = new System.Drawing.Point(114, 19);
    174       this.matchVariableWeightsCheckBox.Name = "matchVariableWeightsCheckBox";
    175       this.matchVariableWeightsCheckBox.Size = new System.Drawing.Size(103, 17);
    176       this.matchVariableWeightsCheckBox.TabIndex = 6;
    177       this.matchVariableWeightsCheckBox.Text = "Variable weights";
    178       this.matchVariableWeightsCheckBox.UseVisualStyleBackColor = true;
    179       this.matchVariableWeightsCheckBox.CheckedChanged += new System.EventHandler(this.matchVariableWeightsCheckBox_CheckedChanged);
    180       //
    181       // matchVariableNamesCheckBox
    182       //
    183       this.matchVariableNamesCheckBox.AutoSize = true;
    184       this.matchVariableNamesCheckBox.Checked = true;
    185       this.matchVariableNamesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
    186       this.matchVariableNamesCheckBox.Location = new System.Drawing.Point(223, 19);
    187       this.matchVariableNamesCheckBox.Name = "matchVariableNamesCheckBox";
    188       this.matchVariableNamesCheckBox.Size = new System.Drawing.Size(98, 17);
    189       this.matchVariableNamesCheckBox.TabIndex = 7;
    190       this.matchVariableNamesCheckBox.Text = "Variable names";
    191       this.matchVariableNamesCheckBox.UseVisualStyleBackColor = true;
    192       this.matchVariableNamesCheckBox.CheckedChanged += new System.EventHandler(this.matchVariableNamesCheckBox_CheckedChanged);
    193       //
    19496      // genealogyGraphChart
    19597      //
     98      this.genealogyGraphChart.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
     99            | System.Windows.Forms.AnchorStyles.Right)));
    196100      this.genealogyGraphChart.BackColor = System.Drawing.SystemColors.Control;
    197       this.genealogyGraphChart.Dock = System.Windows.Forms.DockStyle.Fill;
    198       this.genealogyGraphChart.Location = new System.Drawing.Point(0, 0);
     101      this.genealogyGraphChart.Chart = null;
     102      this.genealogyGraphChart.GenealogyGraph = null;
     103      this.genealogyGraphChart.Location = new System.Drawing.Point(3, 51);
    199104      this.genealogyGraphChart.LockGenealogy = false;
    200105      this.genealogyGraphChart.Name = "genealogyGraphChart";
    201106      this.genealogyGraphChart.ScaleOnResize = true;
    202107      this.genealogyGraphChart.SimpleLineages = false;
    203       this.genealogyGraphChart.Size = new System.Drawing.Size(486, 720);
    204       this.genealogyGraphChart.TabIndex = 2;
     108      this.genealogyGraphChart.Size = new System.Drawing.Size(1066, 724);
     109      this.genealogyGraphChart.TabIndex = 7;
    205110      //
    206111      // GenealogyGraphView
     
    208113      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    209114      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    210       this.Controls.Add(this.groupBox1);
    211       this.Controls.Add(this.splitContainer);
     115      this.Controls.Add(this.genealogyGraphChart);
    212116      this.Controls.Add(this.topControlBox);
    213117      this.Name = "GenealogyGraphView";
    214118      this.Size = new System.Drawing.Size(1072, 778);
    215       this.splitContainer.Panel1.ResumeLayout(false);
    216       this.splitContainer.Panel2.ResumeLayout(false);
    217       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
    218       this.splitContainer.ResumeLayout(false);
    219119      this.topControlBox.ResumeLayout(false);
    220120      this.graphControlsGroupBox.ResumeLayout(false);
    221       this.groupBox1.ResumeLayout(false);
    222       this.groupBox1.PerformLayout();
    223121      this.ResumeLayout(false);
    224122
     
    227125    #endregion
    228126
    229     private System.Windows.Forms.SplitContainer splitContainer;
    230     private SymbolicExpressionTreeChart symbolicExpressionTreeChart;
    231 
    232     private GenealogyGraphChart genealogyGraphChart;
    233127    private System.Windows.Forms.ToolTip toolTip;
    234128    private System.Windows.Forms.Panel topControlBox;
    235     private System.Windows.Forms.GroupBox groupBox1;
    236     private System.Windows.Forms.CheckBox matchConstantsCheckBox;
    237     private System.Windows.Forms.CheckBox matchVariableWeightsCheckBox;
    238     private System.Windows.Forms.CheckBox matchVariableNamesCheckBox;
    239129    private System.Windows.Forms.GroupBox graphControlsGroupBox;
    240130    private System.Windows.Forms.Button highlightAllButton;
    241131    private System.Windows.Forms.CheckBox simpleLineagesCheckBox;
    242132    private System.Windows.Forms.CheckBox lockGenealogyCheckBox;
     133    private GenealogyGraphChart genealogyGraphChart;
    243134
    244135  }
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.cs

    r10264 r10269  
    2121
    2222using System;
    23 using System.Collections.Generic;
    24 using System.Drawing;
    2523using System.Linq;
    2624using System.Windows.Forms;
    2725using HeuristicLab.Core.Views;
    28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    29 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views;
    3026using HeuristicLab.MainForm;
    31 using HeuristicLab.Problems.DataAnalysis.Symbolic;
    3227
    3328namespace HeuristicLab.EvolutionaryTracking.Views {
    34   [View("SymbolicExpressionTreeGenealogyGraph")]
    35   [Content(typeof(SymbolicExpressionTreeGenealogyGraph), IsDefaultView = true)]
     29  [View("GenealogyGraph")]
     30  [Content(typeof(GenealogyGraph), IsDefaultView = true)]
    3631  public sealed partial class GenealogyGraphView : ItemView {
    37     private VisualSymbolicExpressionTreeNode selectedVisualSymbExprTreeNode;
    38     private SymbolicExpressionTreeNodeSimilarityComparer comparer;
    39     private Dictionary<ISymbolicExpressionTreeNode, ISymbolicExpressionTreeNode> clonedNodes;
    40 
    41     public new SymbolicExpressionTreeGenealogyGraph Content {
    42       get { return (SymbolicExpressionTreeGenealogyGraph)base.Content; }
     32    public new GenealogyGraph Content {
     33      get { return (GenealogyGraph)base.Content; }
    4334      set { base.Content = value; }
    4435    }
     
    5142      this.simpleLineagesCheckBox.Image = Common.Resources.VSImageLibrary.ArrowDown;
    5243      this.lockGenealogyCheckBox.Image = Common.Resources.VSImageLibrary.ProtectForm;
    53 
    54       comparer = new SymbolicExpressionTreeNodeSimilarityComparer {
    55         MatchConstantValues = true,
    56         MatchVariableWeights = true,
    57         MatchVariableNames = true
    58       };
    5944    }
    6045
    6146    protected override void DeregisterContentEvents() {
    6247      // TODO: Deregister your event handlers here
    63       genealogyGraphChart.GenealogyGraphNodeClicked -= graphChart_GenealogyGraphNodeClicked;
    64       symbolicExpressionTreeChart.SymbolicExpressionTreeNodeClicked -= treeChart_SymbolicExpressionTreeNodeClicked;
    65       symbolicExpressionTreeChart.SymbolicExpressionTreeNodeDoubleClicked -= treeChart_SymbolicExpressionTreeNodeDoubleClicked;
    66       Content.GraphUpdated -= genealogyGraphUpdated;
     48      Content.GraphUpdated -= GenealogyGraphUpdated;
    6749      base.DeregisterContentEvents();
    6850    }
     
    7153      base.RegisterContentEvents();
    7254      // TODO: Register your event handlers here
    73       genealogyGraphChart.GenealogyGraphNodeClicked += graphChart_GenealogyGraphNodeClicked;
    74       symbolicExpressionTreeChart.SymbolicExpressionTreeNodeClicked += treeChart_SymbolicExpressionTreeNodeClicked;
    75       symbolicExpressionTreeChart.SymbolicExpressionTreeNodeDoubleClicked += treeChart_SymbolicExpressionTreeNodeDoubleClicked;
    76       Content.GraphUpdated += genealogyGraphUpdated;
     55      Content.GraphUpdated += GenealogyGraphUpdated;
    7756    }
    7857
     
    8160    protected override void OnContentChanged() {
    8261      base.OnContentChanged();
    83       if (Content == null)
    84         genealogyGraphChart.Graph = null;
    85       else {
    86         genealogyGraphChart.Graph = Content;
    87         //        var best = Content.Nodes.OrderByDescending(x => x.Quality).First();
    88         //        symbolicExpressionTreeChart.Tree = best.SymbolicExpressionTree;
    89       }
     62      genealogyGraphChart.GenealogyGraph = Content ?? null;
    9063    }
    91 
    9264    private void Content_GraphChanged(object sender, EventArgs e) {
    9365    }
    94 
    9566    protected override void SetEnabledStateOfControls() {
    9667      base.SetEnabledStateOfControls();
     
    10071
    10172    #region Event Handlers (child controls)
    102 
    103     // TODO: Put event handlers of child controls here.
    104     private void graphChart_GenealogyGraphNodeClicked(object sender, MouseEventArgs e) {
    105       // the type hierarchy goes like this: VisualGenealogyGraphNode --> GenealogyGraphNode --> SymbolicExpressionTree
    106       var visualGenealogyGraphNode = (VisualGenealogyGraphNode)sender;
    107       var genealogyGraphNode = visualGenealogyGraphNode.Data;
    108       symbolicExpressionTreeChart.Tree = genealogyGraphNode.SymbolicExpressionTree;
    109 
    110       if (genealogyGraphNode.InEdges == null) return;
    111       var arc = genealogyGraphNode.InEdges.Last(x => x.Source != x.Target);
    112       if (arc == null || arc.Data == null) return;
    113       var fragment = (IFragment)arc.Data;
    114       if (fragment.Root == null) return;
    115       foreach (var node in fragment.Root.IterateNodesBreadth()) {
    116         var visualSymbExprTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node);
    117         visualSymbExprTreeNode.LineColor = Color.OrangeRed;
    118       }
    119       symbolicExpressionTreeChart.Repaint();
     73    private void GenealogyGraphUpdated(object sender, EventArgs args) {
     74      genealogyGraphChart.GenealogyGraph = Content;
    12075    }
    121 
    122     private void genealogyGraphUpdated(object sender, EventArgs args) {
    123       genealogyGraphChart.Graph = Content;
    124     }
    125 
    126     private void treeChart_SymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
    127       genealogyGraphChart.Chart.UpdateEnabled = false;
    128       switch (e.Button) {
    129         case MouseButtons.Left: {
    130             selectedVisualSymbExprTreeNode = (VisualSymbolicExpressionTreeNode)sender;
    131             if (selectedVisualSymbExprTreeNode == null) return;
    132             ISymbolicExpressionTreeNode selectedSubtree = selectedVisualSymbExprTreeNode.SymbolicExpressionTreeNode;
    133             var clonedSubtree = (ISymbolicExpressionTreeNode)selectedSubtree.Clone();
    134             // map original nodes to cloned nodes
    135             clonedNodes = selectedSubtree.IterateNodesPrefix()
    136                                          .Zip(clonedSubtree.IterateNodesPrefix(), (original, clone) => new { original, clone })
    137                                          .ToDictionary(p => p.original, p => p.clone);
    138 
    139             foreach (var node in symbolicExpressionTreeChart.Tree.IterateNodesPrefix()) {
    140               symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node).FillColor = Color.Transparent;
    141             }
    142             foreach (var node in selectedSubtree.IterateNodesPrefix()) {
    143               symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node).FillColor = Color.LightBlue;
    144             }
    145             break;
    146           }
    147         case MouseButtons.Middle: {
    148             var visualNode = (VisualSymbolicExpressionTreeNode)sender;
    149             if (selectedVisualSymbExprTreeNode == null || selectedVisualSymbExprTreeNode == visualNode) return;
    150             var selectedNode = visualNode.SymbolicExpressionTreeNode;
    151             if (clonedNodes.ContainsKey(selectedNode)) {
    152               var selectedClone = clonedNodes[selectedNode];
    153               var parent = selectedClone.Parent;
    154               if (parent == null) break;
    155               int index = parent.IndexOfSubtree(selectedClone);
    156               if (index == -1) break;
    157               parent.RemoveSubtree(parent.IndexOfSubtree(selectedClone));
    158               foreach (var node in selectedNode.IterateNodesPrefix()) {
    159                 symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node).FillColor = Color.Transparent;
    160               }
    161             }
    162             break;
    163           }
    164       }
    165       if (selectedVisualSymbExprTreeNode == null || clonedNodes == null) return;
    166       // update visual graph nodes that contain matching trees
    167       MatchNodesAndRepaint();
    168       // refresh the tree chart
    169       symbolicExpressionTreeChart.Repaint();
    170     }
    171 
    17276    void MatchNodesAndRepaint() {
    17377      genealogyGraphChart.Chart.UpdateEnabled = false;
    174       genealogyGraphChart.ClearAllNodes(); // clear node colors
    175       var fragment = new Fragment { Root = clonedNodes[selectedVisualSymbExprTreeNode.SymbolicExpressionTreeNode] };
    176       var fragmentLength = fragment.Length;
    177       // highlight nodes
    178       genealogyGraphChart.HighlightNodes(from node in genealogyGraphChart.Graph.Nodes
    179                                          let tree = node.SymbolicExpressionTree
    180                                          where tree.Length >= fragmentLength
    181                                          where tree.Root.ContainsFragment(fragment, comparer)
    182                                          select tree);
    183       // highlight edges that contain a matching fragment
    184       var fragmentSimilarityComparer = new SymbolicExpressionTreeFragmentSimilarityComparer {
    185         SimilarityComparer = comparer
    186       };
    187       var matchingEdges = genealogyGraphChart.Graph.Nodes.Where(n => n.InEdges != null)
    188                            .SelectMany(n => n.InEdges).Where(edge => edge.Data != null && ((IFragment)edge.Data).Root != null)
    189                            .Where(edge => fragmentSimilarityComparer.Equals(fragment, (IFragment)edge.Data));
    190       genealogyGraphChart.HighlightArcs(matchingEdges, Color.DodgerBlue);
    191 
     78      genealogyGraphChart.ClearPrimitives(); // clear node colors
    19279
    19380      genealogyGraphChart.Chart.UpdateEnabled = true;
     
    19885    }
    19986    #endregion
    200 
    201     private void matchConstantsCheckBox_CheckedChanged(object sender, EventArgs e) {
    202       comparer.MatchConstantValues = matchConstantsCheckBox.Checked;
    203       if (selectedVisualSymbExprTreeNode != null)
    204         MatchNodesAndRepaint();
    205     }
    206 
    207     private void matchVariableWeightsCheckBox_CheckedChanged(object sender, EventArgs e) {
    208       comparer.MatchVariableWeights = matchVariableWeightsCheckBox.Checked;
    209       if (selectedVisualSymbExprTreeNode != null)
    210         MatchNodesAndRepaint();
    211     }
    212 
    213     private void matchVariableNamesCheckBox_CheckedChanged(object sender, EventArgs e) {
    214       comparer.MatchVariableNames = matchVariableNamesCheckBox.Checked;
    215       if (selectedVisualSymbExprTreeNode != null)
    216         MatchNodesAndRepaint();
    217     }
    218 
    21987    private void simpleLineagesCheckBox_CheckedChanged(object sender, EventArgs e) {
    22088      genealogyGraphChart.SimpleLineages = simpleLineagesCheckBox.Checked;
     
    22290
    22391    private void highlightAllButton_Click(object sender, EventArgs e) {
    224       symbolicExpressionTreeChart.Repaint();
    225       genealogyGraphChart.HighlightAll();
    22692    }
    22793
     
    23197
    23298    private void highlightRootParentsButton_Click(object sender, EventArgs e) {
    233       var nodes = genealogyGraphChart.Graph.Nodes.Where(n => n.InEdges != null && n.InEdges.Count == 2).Select(n => (SymbolicExpressionTreeGenealogyGraphNode)n.InEdges[0].Source).ToList();
     99      var nodes = genealogyGraphChart.GenealogyGraph.Nodes.Where(n => n.InArcs != null && n.InArcs.Count == 2).Select(n => (GenealogyGraphNode)n.InArcs[0].Source).ToList();
    234100      genealogyGraphChart.HighlightNodes(nodes);
    235101    }
    236102
    237103    private void highlightSecondaryParentsButton_Click(object sender, EventArgs e) {
    238       var nodes = genealogyGraphChart.Graph.Nodes.Where(n => n.InEdges != null && n.InEdges.Count == 2).Select(n => (SymbolicExpressionTreeGenealogyGraphNode)n.InEdges[1].Source).ToList();
     104      var nodes = genealogyGraphChart.GenealogyGraph.Nodes.Where(n => n.InArcs != null && n.InArcs.Count == 2).Select(n => (GenealogyGraphNode)n.InArcs[1].Source).ToList();
    239105      genealogyGraphChart.HighlightNodes(nodes);
    240106    }
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/HeuristicLab.EvolutionTracking.Views-3.4.csproj

    r10265 r10269  
    99    <OutputType>Library</OutputType>
    1010    <AppDesignerFolder>Properties</AppDesignerFolder>
    11     <RootNamespace>HeuristicLab.EvolutionaryTracking.Views</RootNamespace>
    12     <AssemblyName>HeuristicLab.EvolutionaryTracking.Views-3.4</AssemblyName>
     11    <RootNamespace>HeuristicLab.EvolutionTracking.Views</RootNamespace>
     12    <AssemblyName>HeuristicLab.EvolutionTracking.Views-3.4</AssemblyName>
    1313    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    1414    <FileAlignment>512</FileAlignment>
     
    110110  <ItemGroup>
    111111    <Compile Include="AncestryLayoutAdapter.cs" />
    112     <Compile Include="ExtendedSymbolicExpressionTreeCanvas.cs">
    113       <SubType>UserControl</SubType>
    114     </Compile>
    115112    <Compile Include="FrequentFragmentsDialog.cs">
    116113      <SubType>Form</SubType>
     
    125122      <DependentUpon>GenealogyGraphChart.cs</DependentUpon>
    126123    </Compile>
    127     <Compile Include="GenealogyGraphDialog.cs">
    128       <SubType>Form</SubType>
    129     </Compile>
    130     <Compile Include="GenealogyGraphDialog.designer.cs">
    131       <DependentUpon>GenealogyGraphDialog.cs</DependentUpon>
    132     </Compile>
    133124    <Compile Include="GenealogyGraphView.cs">
    134125      <SubType>UserControl</SubType>
     
    136127    <Compile Include="GenealogyGraphView.Designer.cs">
    137128      <DependentUpon>GenealogyGraphView.cs</DependentUpon>
    138     </Compile>
    139     <Compile Include="LineageExplorerView.cs">
    140       <SubType>UserControl</SubType>
    141     </Compile>
    142     <Compile Include="LineageExplorerView.Designer.cs">
    143       <DependentUpon>LineageExplorerView.cs</DependentUpon>
    144129    </Compile>
    145130    <Compile Include="Plugin.cs" />
     
    158143  </ItemGroup>
    159144  <ItemGroup>
    160     <ProjectReference Include="..\..\HeuristicLab.EvolutionaryTracking\3.4\HeuristicLab.EvolutionTracking-3.4.csproj">
     145    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj">
     146      <Project>{423bd94f-963a-438e-ba45-3bb3d61cd03b}</Project>
     147      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4</Name>
     148    </ProjectReference>
     149    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
     150      <Project>{06d4a186-9319-48a0-bade-a2058d462eea}</Project>
     151      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
     152    </ProjectReference>
     153    <ProjectReference Include="..\..\HeuristicLab.EvolutionTracking\3.4\HeuristicLab.EvolutionTracking-3.4.csproj">
    161154      <Project>{1f75cea3-464f-4a6f-b2f0-04b9841ebc16}</Project>
    162155      <Name>HeuristicLab.EvolutionTracking-3.4</Name>
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/Primitives/LabeledEllipse.cs

    r10265 r10269  
    2323using System.Drawing;
    2424using System.Linq;
     25using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    2526using HeuristicLab.Visualization;
    2627
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/Primitives/LabeledRectangle.cs

    r10265 r10269  
    2323using System.Drawing;
    2424using System.Linq;
     25using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    2526using HeuristicLab.Visualization;
    2627using Rectangle = HeuristicLab.Visualization.Rectangle;
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/VisualGenealogyGraphNode.cs

    r10264 r10269  
    2727namespace HeuristicLab.EvolutionaryTracking.Views {
    2828  public class VisualGenealogyGraphNode : Ellipse {
    29     public SymbolicExpressionTreeGenealogyGraphNode Data { get; internal set; }
     29    public IGenealogyGraphNode Data { get; internal set; }
    3030    private List<VisualGenealogyGraphArc> incomingArcs = new List<VisualGenealogyGraphArc>();
    3131    private List<VisualGenealogyGraphArc> outgoingArcs = new List<VisualGenealogyGraphArc>();
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/HeuristicLab.EvolutionTracking-3.4.csproj

    r10267 r10269  
    131131  </ItemGroup>
    132132  <ItemGroup>
    133     <Compile Include="Analyzers\BuildingBlocks\RelevantBuildingBlocksAnalyzer.cs" />
    134     <Compile Include="Analyzers\BuildingBlocks\Poly10BuildingBlocksAnalyzer.cs" />
    135     <Compile Include="Analyzers\SymbolicExpressionTreePruningAnalyzer.cs" />
    136     <Compile Include="Analyzers\SymbolicExpressionTreeShapeAnalyzer.cs" />
    137     <Compile Include="Analyzers\SymbolicExpressionTreeEvolvabilityAnalyzer.cs" />
    138     <Compile Include="Analyzers\Fragments\SymbolicExpressionTreeRelativeFragmentDepthAnalyzer.cs" />
    139     <Compile Include="Analyzers\Fragments\SymbolicExpressionTreeFragmentLengthsAnalyzer.cs" />
    140     <Compile Include="Analyzers\SymbolicExpressionTreeFrequentPatternsAnalyzer.cs" />
    141     <Compile Include="Analyzers\Fragments\SymbolicExpressionTreeFragmentsAnalyzer.cs" />
    142     <Compile Include="FPGraph.cs" />
    143     <Compile Include="Interfaces\IEdge.cs" />
    144     <Compile Include="LineageExplorer.cs" />
    145     <Compile Include="Operators\LineageAggregator.cs" />
    146     <Compile Include="Operators\SymbolicExpressionTreeFPBuilder.cs" />
    147     <Compile Include="Operators\SymbolicExpressionTreeGenealogyGraphBuilder.cs" />
    148     <Compile Include="Analyzers\SymbolicExpressionTreePopulationDiversityAnalyzer.cs" />
    149     <Compile Include="Analyzers\SymbolicExpressionTreeRelativeLengthAnalyzer.cs" />
    150     <Compile Include="GenericGraph\GenericGraph.cs" />
    151     <Compile Include="GenericGraph\Arc.cs" />
    152     <Compile Include="GenericGraph\Vertex.cs" />
    153     <Compile Include="Interfaces\IGenericGraph.cs" />
    154     <Compile Include="Interfaces\IVertex.cs" />
    155     <Compile Include="Interfaces\ISymbolicExpressionTreeGenealogyGraph.cs" />
    156     <Compile Include="Operators\CleanupOperator.cs" />
    157     <Compile Include="Operators\SymbolicExpressionTreeSymbolGraphBuilder.cs" />
    158     <Compile Include="Operators\Util.cs" />
    159     <Compile Include="Plugin.cs" />
     133    <Compile Include="DirectedGraph\Arc.cs" />
     134    <Compile Include="DirectedGraph\DirectedGraph.cs" />
     135    <Compile Include="DirectedGraph\Interfaces\IArc.cs" />
     136    <Compile Include="DirectedGraph\Interfaces\IDirectedGraph.cs" />
     137    <Compile Include="DirectedGraph\Interfaces\IVertex.cs" />
     138    <Compile Include="DirectedGraph\Vertex.cs" />
     139    <Compile Include="EvolutionTrackingOperators\EvolutionTrackingAfterCreationOperator.cs" />
     140    <Compile Include="EvolutionTrackingOperators\EvolutionTrackingAfterCrossoverOperator.cs" />
     141    <Compile Include="EvolutionTrackingOperators\EvolutionTrackingOperator.cs" />
     142    <Compile Include="FPGraph.cs">
     143      <SubType>Code</SubType>
     144    </Compile>
     145    <Compile Include="GenealogyGraph\GenealogyGraph.cs" />
     146    <Compile Include="GenealogyGraph\GenealogyGraphArc.cs" />
     147    <Compile Include="GenealogyGraph\GenealogyGraphNode.cs" />
     148    <Compile Include="GenealogyGraph\Interfaces\IGenealogyGraph.cs" />
     149    <Compile Include="GenealogyGraph\Interfaces\IGenealogyGraphArc.cs" />
     150    <Compile Include="GenealogyGraph\Interfaces\IGenealogyGraphNode.cs" />
     151    <Compile Include="Plugin.cs">
     152      <SubType>Code</SubType>
     153    </Compile>
    160154    <Compile Include="Properties\AssemblyInfo.cs" />
    161     <Compile Include="SymbolGraph.cs" />
    162     <Compile Include="SymbolicExpressionTreeGenealogyGraph\SymbolicExpressionTreeGenealogyGraph.cs" />
    163     <Compile Include="SymbolicExpressionTreeGenealogyGraph\SymbolicExpressionTreeGenealogyGraphNode.cs" />
     155    <Compile Include="SymbolGraph.cs">
     156      <SubType>Code</SubType>
     157    </Compile>
    164158  </ItemGroup>
    165   <ItemGroup />
    166159  <ItemGroup>
    167     <WCFMetadata Include="Service References\" />
     160    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
     161      <Project>{06d4a186-9319-48a0-bade-a2058d462eea}</Project>
     162      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
     163    </ProjectReference>
    168164  </ItemGroup>
    169165  <ItemGroup>
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/HeuristicLab.EvolutionTracking-3.4.csproj.user

    r10265 r10269  
    22<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    33  <PropertyGroup>
    4     <ProjectView>ProjectFiles</ProjectView>
     4    <ProjectView>ShowAllFiles</ProjectView>
    55  </PropertyGroup>
    66</Project>
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj

    r9828 r10269  
    4141    <DebugType>full</DebugType>
    4242    <Optimize>false</Optimize>
    43     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     43    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4444    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4545    <ErrorReport>prompt</ErrorReport>
     
    5050    <DebugType>pdbonly</DebugType>
    5151    <Optimize>true</Optimize>
    52     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     52    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5353    <DefineConstants>TRACE</DefineConstants>
    5454    <ErrorReport>prompt</ErrorReport>
     
    5858  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    5959    <DebugSymbols>true</DebugSymbols>
    60     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     60    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6161    <DefineConstants>DEBUG;TRACE</DefineConstants>
    6262    <DebugType>full</DebugType>
     
    6666  </PropertyGroup>
    6767  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    68     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     68    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6969    <DefineConstants>TRACE</DefineConstants>
    7070    <Optimize>true</Optimize>
     
    7676  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    7777    <DebugSymbols>true</DebugSymbols>
    78     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     78    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7979    <DefineConstants>DEBUG;TRACE</DefineConstants>
    8080    <DebugType>full</DebugType>
     
    8484  </PropertyGroup>
    8585  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    86     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     86    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8787    <DefineConstants>TRACE</DefineConstants>
    8888    <Optimize>true</Optimize>
     
    9393  </PropertyGroup>
    9494  <ItemGroup>
    95     <Reference Include="ALGLIB-3.7.0, Version=3.7.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    96       <HintPath>..\..\bin\ALGLIB-3.7.0.dll</HintPath>
     95    <Reference Include="ALGLIB-3.7.0">
     96      <HintPath>..\..\..\..\trunk\sources\bin\ALGLIB-3.7.0.dll</HintPath>
     97      <Private>False</Private>
     98    </Reference>
     99    <Reference Include="HeuristicLab.Analysis-3.3">
     100      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis-3.3.dll</HintPath>
     101      <Private>False</Private>
     102    </Reference>
     103    <Reference Include="HeuristicLab.Collections-3.3">
     104      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     105      <Private>False</Private>
     106    </Reference>
     107    <Reference Include="HeuristicLab.Common-3.3">
     108      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     109      <Private>False</Private>
     110    </Reference>
     111    <Reference Include="HeuristicLab.Common.Resources-3.3">
     112      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     113      <Private>False</Private>
     114    </Reference>
     115    <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     116      <SpecificVersion>False</SpecificVersion>
     117      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
     118      <Private>False</Private>
     119    </Reference>
     120    <Reference Include="HeuristicLab.Data-3.3">
     121      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     122      <Private>False</Private>
     123    </Reference>
     124    <Reference Include="HeuristicLab.Operators-3.3">
     125      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     126      <Private>False</Private>
     127    </Reference>
     128    <Reference Include="HeuristicLab.Optimization-3.3">
     129      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     130      <Private>False</Private>
     131    </Reference>
     132    <Reference Include="HeuristicLab.Optimization.Operators-3.3">
     133      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Operators-3.3.dll</HintPath>
     134      <Private>False</Private>
     135    </Reference>
     136    <Reference Include="HeuristicLab.Parameters-3.3">
     137      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
     138      <Private>False</Private>
     139    </Reference>
     140    <Reference Include="HeuristicLab.Persistence-3.3">
     141      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     142      <Private>False</Private>
     143    </Reference>
     144    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     145      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     146      <Private>False</Private>
     147    </Reference>
     148    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4">
     149      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>
     150      <Private>False</Private>
     151    </Reference>
     152    <Reference Include="HeuristicLab.Problems.Instances-3.3">
     153      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances-3.3.dll</HintPath>
     154      <Private>False</Private>
     155    </Reference>
     156    <Reference Include="HeuristicLab.Random-3.3">
     157      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
    97158      <Private>False</Private>
    98159    </Reference>
     
    125186      <SubType>Code</SubType>
    126187    </Compile>
     188    <Compile Include="SlidingWindow\GenerationalSlidingWindowAnalyzer.cs" />
     189    <Compile Include="SlidingWindow\OffspringSelectionSlidingWindowAnalyzer.cs" />
     190    <Compile Include="SlidingWindow\SlidingWindowAnalyzer.cs" />
     191    <Compile Include="SlidingWindow\SlidingWindowData.cs" />
     192    <Compile Include="SlidingWindow\SlidingWindowQualitiesAnalyzer.cs" />
     193    <Compile Include="SlidingWindow\SlidingWindowVisualizer.cs" />
     194    <Compile Include="SymbolicDataAnalysisSolutionPruningOptimizer.cs" />
    127195    <Compile Include="Analyzers\SymbolicDataAnalysisVariableFrequencyAnalyzer.cs" />
    128196    <Compile Include="Analyzers\SymbolicDataAnalysisAlleleFrequencyAnalyzer.cs" />
     
    253321  </ItemGroup>
    254322  <ItemGroup>
    255     <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
    256       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
    257       <Name>HeuristicLab.Analysis-3.3</Name>
    258       <Private>False</Private>
    259     </ProjectReference>
    260     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    261       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    262       <Name>HeuristicLab.Collections-3.3</Name>
    263       <Private>False</Private>
    264     </ProjectReference>
    265     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    266       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    267       <Name>HeuristicLab.Common.Resources-3.3</Name>
    268       <Private>False</Private>
    269     </ProjectReference>
    270     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    271       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    272       <Name>HeuristicLab.Common-3.3</Name>
    273       <Private>False</Private>
    274     </ProjectReference>
    275     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    276       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    277       <Name>HeuristicLab.Core-3.3</Name>
    278       <Private>False</Private>
    279     </ProjectReference>
    280     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    281       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    282       <Name>HeuristicLab.Data-3.3</Name>
    283       <Private>False</Private>
    284     </ProjectReference>
    285323    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
    286324      <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
     
    288326      <Private>False</Private>
    289327    </ProjectReference>
    290     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    291       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    292       <Name>HeuristicLab.Operators-3.3</Name>
    293       <Private>False</Private>
    294     </ProjectReference>
    295     <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj">
    296       <Project>{25087811-F74C-4128-BC86-8324271DA13E}</Project>
    297       <Name>HeuristicLab.Optimization.Operators-3.3</Name>
    298       <Private>False</Private>
    299     </ProjectReference>
    300     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    301       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    302       <Name>HeuristicLab.Optimization-3.3</Name>
    303     </ProjectReference>
    304     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    305       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
    306       <Name>HeuristicLab.Parameters-3.3</Name>
    307       <Private>False</Private>
    308     </ProjectReference>
    309     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    310       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    311       <Name>HeuristicLab.Persistence-3.3</Name>
    312       <Private>False</Private>
    313     </ProjectReference>
    314     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    315       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    316       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    317       <Private>False</Private>
    318     </ProjectReference>
    319     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
    320       <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
    321       <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
    322       <Private>False</Private>
    323     </ProjectReference>
    324     <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
    325       <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
    326       <Name>HeuristicLab.Problems.Instances-3.3</Name>
    327       <Private>False</Private>
    328     </ProjectReference>
    329     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
    330       <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
    331       <Name>HeuristicLab.Random-3.3</Name>
     328    <ProjectReference Include="..\..\HeuristicLab.EvolutionTracking\3.4\HeuristicLab.EvolutionTracking-3.4.csproj">
     329      <Project>{1f75cea3-464f-4a6f-b2f0-04b9841ebc16}</Project>
     330      <Name>HeuristicLab.EvolutionTracking-3.4</Name>
    332331      <Private>False</Private>
    333332    </ProjectReference>
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Tracking.sln

    r10265 r10269  
    1313  EndProjectSection
    1414EndProject
    15 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.EvolutionTracking-3.4", "HeuristicLab.EvolutionaryTracking\3.4\HeuristicLab.EvolutionTracking-3.4.csproj", "{1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}"
     15Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj", "{06D4A186-9319-48A0-BADE-A2058D462EEA}"
    1616EndProject
    17 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.EvolutionTracking.Views-3.4", "HeuristicLab.EvolutionaryTracking.Views\3.4\HeuristicLab.EvolutionTracking.Views-3.4.csproj", "{318DFE8C-CA23-4F1B-A4AC-62B425060241}"
     17Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj", "{423BD94F-963A-438E-BA45-3BB3D61CD03B}"
     18EndProject
     19Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.EvolutionTracking-3.4", "HeuristicLab.EvolutionTracking\3.4\HeuristicLab.EvolutionTracking-3.4.csproj", "{1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}"
     20EndProject
     21Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.EvolutionTracking.Views-3.4", "HeuristicLab.EvolutionTracking.Views\3.4\HeuristicLab.EvolutionTracking.Views-3.4.csproj", "{318DFE8C-CA23-4F1B-A4AC-62B425060241}"
     22EndProject
     23Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj", "{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}"
    1824EndProject
    1925Global
     
    2935  EndGlobalSection
    3036  GlobalSection(ProjectConfigurationPlatforms) = postSolution
     37    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     38    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
     39    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
     40    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Mixed Platforms.Build.0 = Debug|x86
     41    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.ActiveCfg = Debug|x64
     42    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.Build.0 = Debug|x64
     43    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.ActiveCfg = Debug|x86
     44    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.Build.0 = Debug|x86
     45    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
     46    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Any CPU.Build.0 = Release|Any CPU
     47    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Mixed Platforms.ActiveCfg = Release|x86
     48    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Mixed Platforms.Build.0 = Release|x86
     49    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.ActiveCfg = Release|x64
     50    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.Build.0 = Release|x64
     51    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.ActiveCfg = Release|x86
     52    {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.Build.0 = Release|x86
     53    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     54    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|Any CPU.Build.0 = Debug|Any CPU
     55    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
     56    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|Mixed Platforms.Build.0 = Debug|x86
     57    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|x64.ActiveCfg = Debug|x64
     58    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|x64.Build.0 = Debug|x64
     59    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|x86.ActiveCfg = Debug|x86
     60    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|x86.Build.0 = Debug|x86
     61    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|Any CPU.ActiveCfg = Release|Any CPU
     62    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|Any CPU.Build.0 = Release|Any CPU
     63    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|Mixed Platforms.ActiveCfg = Release|x86
     64    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|Mixed Platforms.Build.0 = Release|x86
     65    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|x64.ActiveCfg = Release|x64
     66    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|x64.Build.0 = Release|x64
     67    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|x86.ActiveCfg = Release|x86
     68    {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|x86.Build.0 = Release|x86
    3169    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    3270    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|Any CPU.Build.0 = Debug|Any CPU
    3371    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
    3472    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
    35     {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|x64.ActiveCfg = Debug|Any CPU
     73    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|x64.ActiveCfg = Debug|x64
     74    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|x64.Build.0 = Debug|x64
    3675    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Debug|x86.ActiveCfg = Debug|Any CPU
    3776    {1F75CEA3-464F-4A6F-B2F0-04B9841EBC16}.Release|Any CPU.ActiveCfg = Release|Any CPU
     
    4685    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
    4786    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
    48     {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Debug|x64.ActiveCfg = Debug|Any CPU
     87    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Debug|x64.ActiveCfg = Debug|x64
     88    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Debug|x64.Build.0 = Debug|x64
    4989    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Debug|x86.ActiveCfg = Debug|Any CPU
    5090    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Release|Any CPU.ActiveCfg = Release|Any CPU
     
    5595    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Release|x64.Build.0 = Release|x64
    5696    {318DFE8C-CA23-4F1B-A4AC-62B425060241}.Release|x86.ActiveCfg = Release|Any CPU
     97    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
     98    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Any CPU.Build.0 = Debug|Any CPU
     99    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
     100    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Mixed Platforms.Build.0 = Debug|x86
     101    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.ActiveCfg = Debug|x64
     102    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.Build.0 = Debug|x64
     103    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.ActiveCfg = Debug|x86
     104    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.Build.0 = Debug|x86
     105    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Any CPU.ActiveCfg = Release|Any CPU
     106    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Any CPU.Build.0 = Release|Any CPU
     107    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Mixed Platforms.ActiveCfg = Release|x86
     108    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Mixed Platforms.Build.0 = Release|x86
     109    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.ActiveCfg = Release|x64
     110    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.Build.0 = Release|x64
     111    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.ActiveCfg = Release|x86
     112    {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.Build.0 = Release|x86
    57113  EndGlobalSection
    58114  GlobalSection(SolutionProperties) = preSolution
Note: See TracChangeset for help on using the changeset viewer.