Browse Source

Added a support for a selected vertex. The selected vertex got different color and can be deselected by clicking its again.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6079 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Tomáš Linhart 16 years ago
parent
commit
1c343c66bf
  1. 58
      src/AddIns/Analysis/CodeQuality/Src/Controls/DependencyGraphLayout.cs
  2. 8
      src/AddIns/Analysis/CodeQuality/Src/Controls/DependencyVertex.cs

58
src/AddIns/Analysis/CodeQuality/Src/Controls/DependencyGraphLayout.cs

@ -13,28 +13,26 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls @@ -13,28 +13,26 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls
{
public class DependencyGraphLayout : GraphLayout<DependencyVertex, DependencyEdge, DependencyGraph>
{
private Style _defaultVertexControlStyle;
public event MouseButtonEventHandler VertexClick;
public event MouseButtonEventHandler VertexRightClick;
public VertexControl SelectedVertexControl { get; set; }
public void ChangeGraph(DependencyGraph graph)
{
try
{
try {
if (graph != null && graph.VertexCount > 0)
{
Graph = graph;
}
}
catch
{
} // ignore it if it fails
} catch {} // ignore it if it fails
AttachEvents();
}
private void AttachEvents()
{
foreach (UIElement element in this.Children)
foreach (UIElement element in Children)
{
var vertex = element as VertexControl;
@ -247,8 +245,48 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls @@ -247,8 +245,48 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls
{
if (VertexClick != null)
VertexClick(sender, e);
var vertex = sender as VertexControl;
if (vertex != null)
{
if (SelectedVertexControl == vertex)
{
SelectedVertexControl.Style = _defaultVertexControlStyle;
SelectedVertexControl = null;
return;
}
if (SelectedVertexControl != null)
{
SelectedVertexControl.Style = vertex.Style;
}
// TODO: Implement SelectedVertex and change its color
SelectedVertexControl = vertex;
_defaultVertexControlStyle = vertex.Style;
// workaround which doesnt brake triggers of highlighting
var style = new Style();
foreach (Setter setter in vertex.Style.Setters)
{
style.Setters.Add(setter);
}
foreach (var trigger in vertex.Style.Triggers)
{
style.Triggers.Add(trigger);
}
style.Setters.Add(new Setter
{
Property = Control.BackgroundProperty,
Value = new SolidColorBrush(Color.FromRgb(255, 165, 0)) // orange
});
SelectedVertexControl.Style = style;
}
}
public void ResetGraph()

8
src/AddIns/Analysis/CodeQuality/Src/Controls/DependencyVertex.cs

@ -23,12 +23,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls @@ -23,12 +23,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls
{
var dependencyVertex = obj as DependencyVertex;
if (obj == null)
if (dependencyVertex == null)
return false;
else
{
return this.Node.Equals(dependencyVertex.Node);
}
return Node.Equals(dependencyVertex.Node);
}
public override int GetHashCode()

Loading…
Cancel
Save