Free cookie consent management tool by TermsFeed Policy Generator

Changeset 1109


Ignore:
Timestamp:
01/11/09 23:25:59 (15 years ago)
Author:
gkronber
Message:

worked on presentation layer for CEDMA (brushing) (#419)

Location:
branches/CEDMA-Refactoring-Ticket419
Files:
3 deleted
10 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Charting/BubbleChart.cs

    r1108 r1109  
    6565      entryToPrimitiveDictionary = new Dictionary<ResultsEntry, IPrimitive>();
    6666      this.results = results;
     67
     68      foreach (var resultsEntry in results.GetEntries()) {
     69        if(resultsEntry.Get(X_JITTER) ==null)
     70          resultsEntry.Set(X_JITTER, random.NextDouble() * 2.0 - 1.0);
     71        if(resultsEntry.Get(Y_JITTER) == null)
     72          resultsEntry.Set(Y_JITTER, random.NextDouble() * 2.0 - 1.0);
     73        records.Add(resultsEntry);
     74      }
     75
     76      results.Changed += new EventHandler(results_Changed);
    6777    }
    6878
     
    7585      : this(results, new PointD(x1, y1), new PointD(x2, y2)) {
    7686    }
    77 
    78     //void results_OnRecordAdded(object sender, RecordAddedEventArgs e) {
    79     //  lock(records) {
    80     //    records.Add(e.Record);
    81     //  }
    82     //}
    8387
    8488    public void SetBubbleSizeDimension(string dimension, bool inverted) {
     
    9498        this.yDimension = yDimension;
    9599
    96         foreach (var resultsEntry in results.SelectRows()) {
    97           resultsEntry.Set(X_JITTER, random.NextDouble() * 2.0 - 1.0);
    98           resultsEntry.Set(Y_JITTER, random.NextDouble() * 2.0 - 1.0);
    99           records.Add(resultsEntry);
    100         }
    101100        ResetViewSize();
    102101        Repaint();
     
    240239          }
    241240        }
    242         // results.FireChanged();
     241        if(primitives.Count() > 0) results.FireChanged();
    243242      } else {
    244243        base.MouseDrag(start, end, button);
     
    250249        ResultsEntry r = GetResultsEntry(point);
    251250        if (r != null) r.ToggleSelected();
    252         //        results.FireChanged();
     251        results.FireChanged();
    253252      } else {
    254253        base.MouseClick(point, button);
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Charting/BubbleChartView.cs

    r1108 r1109  
    1010using HeuristicLab.CEDMA.Charting;
    1111using HeuristicLab.CEDMA.Core;
     12using HeuristicLab.PluginInfrastructure;
    1213
    1314namespace HeuristicLab.CEDMA.Charting {
    14   public partial class BubbleChartView : ViewBase, IResultsView {
    15     private Results results;
     15  public class BubbleChartViewFactory : IResultsViewFactory {
     16    #region IResultsViewFactory Members
     17
     18    public string Name {
     19      get { return "Bubble chart"; }
     20    }
     21
     22    public IControl CreateView(Results results) {
     23      return new BubbleChartView(results);
     24    }
     25
     26    #endregion
     27  }
     28
     29  public partial class BubbleChartView : ViewBase {
     30    private Results Results {
     31      get { return (Results)Item; }
     32      set { Item = value; }
     33    }
    1634    private const string CONSTANT_SIZE = "<constant>";
    1735    private Label pleaseSelectAxisLabel = new Label();
    18 
    19     public BubbleChartView() {
     36    public BubbleChartView(Results results) {
    2037      InitializeComponent();
     38      Results = results;
     39      bubbleChartControl.Chart = new BubbleChart(Results, 0, 0, 100, 100);
     40      xAxisComboBox.Items.AddRange(Results.OrdinalVariables);
     41      xAxisComboBox.Items.AddRange(Results.CategoricalVariables);
     42      yAxisComboBox.Items.AddRange(Results.OrdinalVariables);
     43      yAxisComboBox.Items.AddRange(Results.CategoricalVariables);
     44      sizeComboBox.Items.Add(CONSTANT_SIZE);
     45      sizeComboBox.Items.AddRange(Results.OrdinalVariables);
     46      sizeComboBox.SelectedItem = sizeComboBox.Items[0];
     47      yAxisComboBox.SelectedItem = yAxisComboBox.Items[0];
     48      xAxisComboBox.SelectedItem = xAxisComboBox.Items[0];
    2149    }
    2250
     
    3159
    3260    private void jitterTrackBar_ValueChanged(object sender, EventArgs e) {
    33       if (bubbleChartControl.Chart != null) {
    34         double xJitterFactor = xTrackBar.Value / 100.0;
    35         double yJitterFactor = yTrackBar.Value / 100.0;
    36         bubbleChartControl.Chart.SetJitter(xJitterFactor, yJitterFactor);
    37       }
     61      double xJitterFactor = xTrackBar.Value / 100.0;
     62      double yJitterFactor = yTrackBar.Value / 100.0;
     63      bubbleChartControl.Chart.SetJitter(xJitterFactor, yJitterFactor);
    3864      UpdateChart();
    3965    }
    4066
    4167    private void sizeComboBox_SelectedIndexChanged(object sender, EventArgs e) {
    42       if (bubbleChartControl.Chart != null) {
    43         bubbleChartControl.Chart.SetBubbleSizeDimension((string)sizeComboBox.SelectedItem, invertCheckbox.Checked);
    44         UpdateChart();
    45       }
     68      bubbleChartControl.Chart.SetBubbleSizeDimension((string)sizeComboBox.SelectedItem, invertCheckbox.Checked);
     69      UpdateChart();
    4670    }
    47 
    48     #region IResultsView Members
    49 
    50     public Control Control {
    51       get { return this; }
    52     }
    53 
    54     string IResultsView.Name {
    55       get { return "Bubble chart"; }
    56     }
    57 
    58     public void ShowResults(Results results) {
    59       this.results = results;
    60       bubbleChartControl.Chart = new BubbleChart(results, 0, 0, 100, 100);
    61       xAxisComboBox.Items.AddRange(Results.OrdinalVariables);
    62       xAxisComboBox.Items.AddRange(Results.CategoricalVariables);
    63       yAxisComboBox.Items.AddRange(Results.OrdinalVariables);
    64       yAxisComboBox.Items.AddRange(Results.CategoricalVariables);
    65       sizeComboBox.Items.Add(CONSTANT_SIZE);
    66       sizeComboBox.Items.AddRange(Results.OrdinalVariables);
    67       sizeComboBox.SelectedItem = sizeComboBox.Items[0];
    68       yAxisComboBox.SelectedItem = yAxisComboBox.Items[0];
    69       xAxisComboBox.SelectedItem = xAxisComboBox.Items[0];
    70     }
    71 
    72     #endregion
    7371  }
    7472}
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.Designer.cs

    r1108 r1109  
    4545    /// </summary>
    4646    private void InitializeComponent() {
    47         this.editorGroupBox = new System.Windows.Forms.GroupBox();
    48         this.activateButton = new System.Windows.Forms.Button();
    49         this.resultsButton = new System.Windows.Forms.Button();
    50         this.SuspendLayout();
    51         //
    52         // editorGroupBox
    53         //
    54         this.editorGroupBox.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.editorGroupBox.Location = new System.Drawing.Point(0, 3);
    58         this.editorGroupBox.Name = "editorGroupBox";
    59         this.editorGroupBox.Size = new System.Drawing.Size(274, 119);
    60         this.editorGroupBox.TabIndex = 0;
    61         this.editorGroupBox.TabStop = false;
    62         this.editorGroupBox.Text = "&Editor:";
    63         //
    64         // activateButton
    65         //
    66         this.activateButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    67         this.activateButton.Location = new System.Drawing.Point(3, 128);
    68         this.activateButton.Name = "activateButton";
    69         this.activateButton.Size = new System.Drawing.Size(75, 23);
    70         this.activateButton.TabIndex = 2;
    71         this.activateButton.Text = "&Activate";
    72         this.activateButton.UseVisualStyleBackColor = true;
    73         this.activateButton.Click += new System.EventHandler(this.activateButton_Click);
    74         //
    75         // resultsButton
    76         //
    77         this.resultsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    78         this.resultsButton.Location = new System.Drawing.Point(84, 128);
    79         this.resultsButton.Name = "resultsButton";
    80         this.resultsButton.Size = new System.Drawing.Size(86, 23);
    81         this.resultsButton.TabIndex = 3;
    82         this.resultsButton.Text = "Show results";
    83         this.resultsButton.UseVisualStyleBackColor = true;
    84         this.resultsButton.Click += new System.EventHandler(this.resultsButton_Click);
    85         //
    86         // DataSetView
    87         //
    88         this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    89         this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    90         this.Controls.Add(this.resultsButton);
    91         this.Controls.Add(this.activateButton);
    92         this.Controls.Add(this.editorGroupBox);
    93         this.Name = "DataSetView";
    94         this.Size = new System.Drawing.Size(274, 154);
    95         this.ResumeLayout(false);
     47      this.editorGroupBox = new System.Windows.Forms.GroupBox();
     48      this.activateButton = new System.Windows.Forms.Button();
     49      this.resultsButton = new System.Windows.Forms.Button();
     50      this.progressBar = new System.Windows.Forms.ProgressBar();
     51      this.viewComboBox = new System.Windows.Forms.ComboBox();
     52      this.SuspendLayout();
     53      //
     54      // editorGroupBox
     55      //
     56      this.editorGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     57                  | System.Windows.Forms.AnchorStyles.Left)
     58                  | System.Windows.Forms.AnchorStyles.Right)));
     59      this.editorGroupBox.Location = new System.Drawing.Point(0, 3);
     60      this.editorGroupBox.Name = "editorGroupBox";
     61      this.editorGroupBox.Size = new System.Drawing.Size(381, 218);
     62      this.editorGroupBox.TabIndex = 0;
     63      this.editorGroupBox.TabStop = false;
     64      this.editorGroupBox.Text = "&Editor:";
     65      //
     66      // activateButton
     67      //
     68      this.activateButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     69      this.activateButton.Location = new System.Drawing.Point(0, 227);
     70      this.activateButton.Name = "activateButton";
     71      this.activateButton.Size = new System.Drawing.Size(75, 23);
     72      this.activateButton.TabIndex = 2;
     73      this.activateButton.Text = "&Activate";
     74      this.activateButton.UseVisualStyleBackColor = true;
     75      this.activateButton.Click += new System.EventHandler(this.activateButton_Click);
     76      //
     77      // resultsButton
     78      //
     79      this.resultsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     80      this.resultsButton.Location = new System.Drawing.Point(130, 254);
     81      this.resultsButton.Name = "resultsButton";
     82      this.resultsButton.Size = new System.Drawing.Size(86, 23);
     83      this.resultsButton.TabIndex = 3;
     84      this.resultsButton.Text = "Show results";
     85      this.resultsButton.UseVisualStyleBackColor = true;
     86      this.resultsButton.Click += new System.EventHandler(this.resultsButton_Click);
     87      //
     88      // progressBar
     89      //
     90      this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
     91                  | System.Windows.Forms.AnchorStyles.Right)));
     92      this.progressBar.Location = new System.Drawing.Point(222, 254);
     93      this.progressBar.Name = "progressBar";
     94      this.progressBar.Size = new System.Drawing.Size(156, 23);
     95      this.progressBar.TabIndex = 4;
     96      //
     97      // viewComboBox
     98      //
     99      this.viewComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     100      this.viewComboBox.FormattingEnabled = true;
     101      this.viewComboBox.Location = new System.Drawing.Point(3, 256);
     102      this.viewComboBox.Name = "viewComboBox";
     103      this.viewComboBox.Size = new System.Drawing.Size(121, 21);
     104      this.viewComboBox.TabIndex = 5;
     105      //
     106      // DataSetView
     107      //
     108      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     109      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     110      this.Controls.Add(this.viewComboBox);
     111      this.Controls.Add(this.progressBar);
     112      this.Controls.Add(this.resultsButton);
     113      this.Controls.Add(this.activateButton);
     114      this.Controls.Add(this.editorGroupBox);
     115      this.Name = "DataSetView";
     116      this.Size = new System.Drawing.Size(381, 280);
     117      this.ResumeLayout(false);
    96118
    97119    }
     
    102124    private System.Windows.Forms.Button activateButton;
    103125    private System.Windows.Forms.Button resultsButton;
     126    private System.Windows.Forms.ProgressBar progressBar;
     127    private System.Windows.Forms.ComboBox viewComboBox;
    104128  }
    105129}
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/DataSetView.cs

    r1106 r1109  
    2525using System.Drawing;
    2626using System.Data;
     27using System.Linq;
    2728using System.Text;
    2829using System.Windows.Forms;
     
    3839      set { dataSet = value; }
    3940    }
    40 
     41    private Results results;
    4142    public DataSetView() {
    4243      InitializeComponent();
     
    5556      problemControl.Dock = DockStyle.Fill;
    5657      editorGroupBox.Controls.Add(problemControl);
     58      PopulateViewComboBox();
     59      resultsButton.Enabled = viewComboBox.SelectedItem != null;
     60    }
     61
     62    private void PopulateViewComboBox() {
     63      DiscoveryService service = new DiscoveryService();
     64      IResultsViewFactory[] factories = service.GetInstances<IResultsViewFactory>();
     65      viewComboBox.DataSource = factories;
     66      viewComboBox.ValueMember = "Name";
    5767    }
    5868
     
    6373
    6474    private void resultsButton_Click(object sender, EventArgs e) {
    65       Results results = dataSet.GetResults();
    66       IControl resultsControl = new ResultsViewContainer(results);
    67       PluginManager.ControlManager.ShowControl(resultsControl);
     75      if (results == null)
     76        ReloadResults();
     77      try {
     78        IResultsViewFactory factory = (IResultsViewFactory)viewComboBox.SelectedItem;
     79        BackgroundWorker worker = new BackgroundWorker();
     80        worker.WorkerReportsProgress = true;
     81        worker.WorkerSupportsCancellation = true;
     82        worker.ProgressChanged += delegate(object progressChangedSender, ProgressChangedEventArgs progressChangedArgs) {
     83          progressBar.Value = progressChangedArgs.ProgressPercentage;
     84        };
     85        worker.DoWork += delegate(object doWorkSender, DoWorkEventArgs doWorkArgs) {
     86          worker.ReportProgress(10);
     87          results.GetEntries().Last(); // preload list by accessing last element
     88          worker.ReportProgress(100);
     89        };
     90        resultsButton.Enabled = false;
     91        worker.RunWorkerAsync();
     92        worker.RunWorkerCompleted += delegate(object completedSender, RunWorkerCompletedEventArgs compledArgs) {
     93          resultsButton.Enabled = true;
     94          progressBar.Value = 0;
     95          IControl control = factory.CreateView(results);
     96          PluginManager.ControlManager.ShowControl(control);
     97        };
     98      }
     99      catch (Exception ex) {
     100        string text = "Couldn't load selected view: " + viewComboBox.SelectedItem + "\n" + ex.Message;
     101        MessageBox.Show(text, "Unable to create view", MessageBoxButtons.OK, MessageBoxIcon.Error);
     102      }
     103    }
     104
     105    private void ReloadResults() {
     106      results = dataSet.GetResults();
    68107    }
    69108  }
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/HeuristicLab.CEDMA.Core.csproj

    r1108 r1109  
    7272  </ItemGroup>
    7373  <ItemGroup>
     74    <Compile Include="IResultsViewFactory.cs" />
    7475    <Compile Include="ResultsEntry.cs" />
    7576    <Compile Include="TableResultsView.cs">
     
    8384      <SubType>UserControl</SubType>
    8485    </Compile>
    85     <Compile Include="IResultsView.cs" />
    8686    <Compile Include="Problem.cs" />
    8787    <Compile Include="DataSet.cs" />
     
    109109    <Compile Include="ProblemInjector.cs" />
    110110    <Compile Include="Results.cs" />
    111     <Compile Include="ResultsViewContainer.cs">
    112       <SubType>UserControl</SubType>
    113     </Compile>
    114     <Compile Include="ResultsViewContainer.Designer.cs">
    115       <DependentUpon>ResultsViewContainer.cs</DependentUpon>
    116     </Compile>
    117111  </ItemGroup>
    118112  <ItemGroup>
     
    162156      <DependentUpon>ProblemView.cs</DependentUpon>
    163157    </EmbeddedResource>
    164     <EmbeddedResource Include="ResultsViewContainer.resx">
    165       <DependentUpon>ResultsViewContainer.cs</DependentUpon>
    166     </EmbeddedResource>
    167158  </ItemGroup>
    168159  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/IResultsViewFactory.cs

    r1108 r1109  
    2929using HeuristicLab.Operators;
    3030using System.Windows.Forms;
     31using HeuristicLab.PluginInfrastructure;
    3132
    3233namespace HeuristicLab.CEDMA.Core {
    33   public interface IResultsView {
    34     Control Control { get; }
     34  public interface IResultsViewFactory {
    3535    string Name { get; }
    36     void ShowResults(Results results);
     36    IControl CreateView(Results results);
    3737  }
    3838}
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Results.cs

    r1108 r1109  
    3636
    3737namespace HeuristicLab.CEDMA.Core {
    38   public class Results {
     38  public class Results : ItemBase {
    3939    public static string[] CategoricalVariables {
    4040      get { return new string[] { "TargetVariable" }; }
     
    6363    }
    6464
    65     public IEnumerable<ResultsEntry> SelectRows() {
     65    private List<ResultsEntry> entries = null;
     66    public IEnumerable<ResultsEntry> GetEntries() {
     67      if (entries == null)
     68        Reload();
     69      return entries.AsEnumerable();
     70    }
     71
     72    internal void Reload() {
     73      entries = SelectRows().ToList();
     74      FireChanged();
     75    }
     76
     77    private IEnumerable<ResultsEntry> SelectRows() {
    6678      if (store == null) yield break;
    6779
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ResultsEntry.cs

    r1108 r1109  
    3737
    3838    private bool selected = false;
    39     public bool Selected { get { return selected; } }
     39    public bool Selected {
     40      get { return selected; }
     41      set { selected = value; }
     42    }
    4043
    4144    private string uri;
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/TableResultsView.Designer.cs

    r1106 r1109  
    3939      this.dataGridView.Size = new System.Drawing.Size(450, 459);
    4040      this.dataGridView.TabIndex = 0;
     41      this.dataGridView.SelectionChanged += new System.EventHandler(this.dataGridView_SelectionChanged);
    4142      //
    4243      // TableResultsView
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/TableResultsView.cs

    r1108 r1109  
    99using HeuristicLab.Core;
    1010using HeuristicLab.CEDMA.Core;
     11using HeuristicLab.PluginInfrastructure;
    1112
    1213namespace HeuristicLab.CEDMA.Core {
    13   public partial class TableResultsView : ViewBase, IResultsView {
    14     private Results results;
    15     public TableResultsView() {
     14
     15  public partial class TableResultsView : ViewBase {
     16    private Results Results {
     17      get { return (Results)Item; }
     18      set { Item = value; }
     19    }
     20    private bool suppressEvents;
     21    public TableResultsView(Results results) {
     22      suppressEvents = false;
    1623      InitializeComponent();
     24      Results = results;
     25      results.Changed += new EventHandler(results_Changed);
    1726    }
    1827
    19     public Control Control {
    20       get { return this; }
    21     }
    22 
    23     string IResultsView.Name {
    24       get { return "Table"; }
    25     }
    26 
    27     public void ShowResults(Results results) {
    28       this.results = results;
     28    void results_Changed(object sender, EventArgs e) {
     29      if (suppressEvents) return;
    2930      UpdateControls();
    3031    }
    3132
    3233    protected override void UpdateControls() {
    33       base.UpdateControls();
    34       if (results == null) return;
     34      suppressEvents = true;
    3535      dataGridView.Rows.Clear();
    3636      dataGridView.Columns.Clear();
    37       List<string> attributeNames = results.SelectModelAttributes().ToList();
     37      List<string> attributeNames = Results.SelectModelAttributes().ToList();
    3838      foreach (var attribute in attributeNames) {
    3939        dataGridView.Columns.Add(attribute, attribute);
    4040      }
    4141
    42       var entries = results.SelectRows();
     42      var entries = Results.GetEntries();
    4343      foreach (var entry in entries) {
    4444        int rowIndex = dataGridView.Rows.Add();
     45        dataGridView.Rows[rowIndex].Tag = entry;
    4546        foreach (string attrName in attributeNames) {
    4647          dataGridView.Rows[rowIndex].Cells[attrName].Value = entry.Get(attrName);
    4748        }
    48         dataGridView.Rows.Add(row);
     49        if (entry.Selected) dataGridView.Rows[rowIndex].Selected = true;
    4950      }
    5051      dataGridView.Update();
     52      suppressEvents = false;
     53    }
     54
     55    private void dataGridView_SelectionChanged(object sender, EventArgs e) {
     56      if (suppressEvents) return;
     57      foreach (DataGridViewRow row in dataGridView.Rows) {
     58        ((ResultsEntry)row.Tag).Selected = row.Selected;
     59      }
     60      suppressEvents = true;
     61      Results.FireChanged();
     62      suppressEvents = false;
    5163    }
    5264  }
     65
     66  public class TablesResultsViewFactory : IResultsViewFactory {
     67    #region IResultsViewFactory Members
     68
     69    public string Name {
     70      get { return "Table"; }
     71    }
     72
     73    public IControl CreateView(Results results) {
     74      return new TableResultsView(results);
     75    }
     76
     77    #endregion
     78  }
    5379}
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.Grid/HeuristicLab.Grid.csproj

    r852 r1109  
    5656      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    5757    </Reference>
    58     <Reference Include="System.Data.SQLite, Version=1.0.51.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
     58    <Reference Include="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
    5959      <SpecificVersion>False</SpecificVersion>
    6060      <HintPath>..\HeuristicLab.SQLite\System.Data.SQLite.DLL</HintPath>
Note: See TracChangeset for help on using the changeset viewer.