Skip to content

Commit

Permalink
Worked on flexible row coloring for data rows (#925)
Browse files Browse the repository at this point in the history
git-svn-id: https://src.heuristiclab.com/svn/core/trunk@4777 2abd9481-f8db-48e9-bd25-06bc13291c1b
  • Loading branch information
s-wagner committed Nov 12, 2010
1 parent 0e7b524 commit 853bc0c
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 33 deletions.
25 changes: 17 additions & 8 deletions sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,15 +163,24 @@ public override IOperation Apply() {
if (!results.ContainsKey("Alleles")) {
allelesTable = new DataTable("Alleles");
results.Add(new Result("Alleles", allelesTable));

allelesTable.Rows.Add(new DataRow("Unique Alleles"));
DataRowVisualProperties visualProperties = new DataRowVisualProperties();
visualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Line;
visualProperties.SecondYAxis = true;
visualProperties.StartIndexZero = true;
allelesTable.Rows.Add(new DataRow("Unique Alleles of Best Known Solution", null, visualProperties));
allelesTable.Rows.Add(new DataRow("Fixed Alleles", null, visualProperties));
allelesTable.Rows.Add(new DataRow("Fixed Alleles of Best Known Solution", null, visualProperties));
allelesTable.Rows.Add(new DataRow("Lost Alleles of Best Known Solution", null, visualProperties));

allelesTable.Rows.Add(new DataRow("Unique Alleles of Best Known Solution", null));
allelesTable.Rows["Unique Alleles of Best Known Solution"].VisualProperties.SecondYAxis = true;
allelesTable.Rows["Unique Alleles of Best Known Solution"].VisualProperties.StartIndexZero = true;

allelesTable.Rows.Add(new DataRow("Fixed Alleles", null));
allelesTable.Rows["Fixed Alleles"].VisualProperties.SecondYAxis = true;
allelesTable.Rows["Fixed Alleles"].VisualProperties.StartIndexZero = true;

allelesTable.Rows.Add(new DataRow("Fixed Alleles of Best Known Solution", null));
allelesTable.Rows["Fixed Alleles of Best Known Solution"].VisualProperties.SecondYAxis = true;
allelesTable.Rows["Fixed Alleles of Best Known Solution"].VisualProperties.StartIndexZero = true;

allelesTable.Rows.Add(new DataRow("Lost Alleles of Best Known Solution", null));
allelesTable.Rows["Lost Alleles of Best Known Solution"].VisualProperties.SecondYAxis = true;
allelesTable.Rows["Lost Alleles of Best Known Solution"].VisualProperties.StartIndexZero = true;
} else {
allelesTable = (DataTable)results["Alleles"].Value;
}
Expand Down
15 changes: 7 additions & 8 deletions sources/HeuristicLab.Analysis/3.3/DataRow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,13 @@ private IEnumerable<double> StorableValues {
}
#endregion

#region Storing & Cloning
[StorableConstructor]
private DataRow(bool deserializing) : base(deserializing) { }
private DataRow(DataRow original, Cloner cloner)
: base(original, cloner) {
this.VisualProperties = (DataRowVisualProperties)cloner.Clone(original.visualProperties);
this.values = new ObservableList<double>(original.values);
}
public override IDeepCloneable Clone(Cloner cloner) {
return new DataRow(this, cloner);
}
#endregion
public DataRow()
: base() {
VisualProperties = new DataRowVisualProperties();
Expand All @@ -92,10 +87,10 @@ public DataRow(string name, string description)
VisualProperties = new DataRowVisualProperties();
values = new ObservableList<double>();
}
public DataRow(string name, string description, DataRowVisualProperties visualProperties)
public DataRow(string name, string description, IEnumerable<double> values)
: base(name, description) {
VisualProperties = visualProperties;
values = new ObservableList<double>();
VisualProperties = new DataRowVisualProperties();
this.values = new ObservableList<double>(values);
}

// BackwardsCompatibility3.3
Expand All @@ -106,6 +101,10 @@ private void AfterDeserialization() {
}
#endregion

public override IDeepCloneable Clone(Cloner cloner) {
return new DataRow(this, cloner);
}

public event EventHandler VisualPropertiesChanged;
private void OnVisualPropertiesChanged() {
EventHandler handler = VisualPropertiesChanged;
Expand Down
9 changes: 4 additions & 5 deletions sources/HeuristicLab.Analysis/3.3/DataRowVisualProperties.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ private bool StorableStartIndexZero {
}
#endregion

#region Storing & Cloning
[StorableConstructor]
protected DataRowVisualProperties(bool deserializing) : base() { }
protected DataRowVisualProperties(DataRowVisualProperties original, Cloner cloner)
Expand All @@ -113,10 +112,6 @@ protected DataRowVisualProperties(DataRowVisualProperties original, Cloner clone
this.color = original.color;
this.startIndexZero = original.startIndexZero;
}
public override IDeepCloneable Clone(Cloner cloner) {
return new DataRowVisualProperties(this, cloner);
}
#endregion
public DataRowVisualProperties() {
chartType = DataRowChartType.Line;
secondYAxis = false;
Expand All @@ -130,6 +125,10 @@ public DataRowVisualProperties(DataRowChartType chartType, bool secondYAxis, Col
this.startIndexZero = startIndexZero;
}

public override IDeepCloneable Clone(Cloner cloner) {
return new DataRowVisualProperties(this, cloner);
}

public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName) {
PropertyChangedEventHandler handler = PropertyChanged;
Expand Down
21 changes: 9 additions & 12 deletions sources/HeuristicLab.Analysis/3.3/PopulationDiversityAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,12 @@ public override IOperation Apply() {
if (!results.ContainsKey("Average Minimum/Average/Maximum Solution Similarity")) {
minAvgMaxSimilarityDataTable = new DataTable("Average Minimum/Average/Maximum Solution Similarity");
results.Add(new Result("Average Minimum/Average/Maximum Solution Similarity", minAvgMaxSimilarityDataTable));
DataRowVisualProperties visualProperties = new DataRowVisualProperties();
visualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Line;
visualProperties.StartIndexZero = true;
minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Minimum Solution Similarity", null, visualProperties));
minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Average Solution Similarity", null, visualProperties));
minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Maximum Solution Similarity", null, visualProperties));
minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Minimum Solution Similarity", null));
minAvgMaxSimilarityDataTable.Rows["Average Minimum Solution Similarity"].VisualProperties.StartIndexZero = true;
minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Average Solution Similarity", null));
minAvgMaxSimilarityDataTable.Rows["Average Average Solution Similarity"].VisualProperties.StartIndexZero = true;
minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Maximum Solution Similarity", null));
minAvgMaxSimilarityDataTable.Rows["Average Maximum Solution Similarity"].VisualProperties.StartIndexZero = true;
} else {
minAvgMaxSimilarityDataTable = (DataTable)results["Average Minimum/Average/Maximum Solution Similarity"].Value;
}
Expand All @@ -185,15 +185,12 @@ public override IOperation Apply() {

// store minimum, average, maximum similarities data table
DataTable minAvgMaxSimilaritiesDataTable = new DataTable("Minimum/Average/Maximum Solution Similarities");
minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Minimum Solution Similarity"));
minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Minimum Solution Similarity", null, minSimilarities));
minAvgMaxSimilaritiesDataTable.Rows["Minimum Solution Similarity"].VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Points;
minAvgMaxSimilaritiesDataTable.Rows["Minimum Solution Similarity"].Values.AddRange(minSimilarities);
minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Average Solution Similarity"));
minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Average Solution Similarity", null, avgSimilarities));
minAvgMaxSimilaritiesDataTable.Rows["Average Solution Similarity"].VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Points;
minAvgMaxSimilaritiesDataTable.Rows["Average Solution Similarity"].Values.AddRange(avgSimilarities);
minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Maximum Solution Similarity"));
minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Maximum Solution Similarity", null, maxSimilarities));
minAvgMaxSimilaritiesDataTable.Rows["Maximum Solution Similarity"].VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Points;
minAvgMaxSimilaritiesDataTable.Rows["Maximum Solution Similarity"].Values.AddRange(maxSimilarities);
if (!results.ContainsKey("Minimum/Average/Maximum Solution Similarities")) {
results.Add(new Result("Minimum/Average/Maximum Solution Similarities", minAvgMaxSimilaritiesDataTable));
} else {
Expand Down

0 comments on commit 853bc0c

Please sign in to comment.