Browse Source

Some fixes to the diagram code; Some progress with the class editor (mostly conversion to TreeViewAdv); Some FxCop fixes.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2451 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Itar Bar-Haim 19 years ago
parent
commit
17a6e5e55b
  1. 2
      src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Shapes/VectorShape.cs
  2. 2
      src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/CanvasItem.cs
  3. 5
      src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/ClassCanvas.cs
  4. 8
      src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassDiagramViewContent.cs
  5. 2
      src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassEditorPad.cs
  6. 18
      src/AddIns/DisplayBindings/ClassDiagram/ClassEditor/ClassEditor.Designer.cs
  7. 17
      src/AddIns/DisplayBindings/ClassDiagram/ClassEditor/ClassEditor.cs
  8. 33
      src/AddIns/DisplayBindings/ClassDiagram/ClassEditor/ClassEditor.resx
  9. 46
      src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/BaseRectangle.cs
  10. 6
      src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/Drawables/DrawableRectangle.cs
  11. 1
      src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/IRectangle.cs
  12. 12
      src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/ItemsStack.cs

2
src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Shapes/VectorShape.cs

@ -17,7 +17,7 @@ namespace ClassDiagram
{ {
public abstract class VectorShape : BaseRectangle, IDrawableRectangle public abstract class VectorShape : BaseRectangle, IDrawableRectangle
{ {
public VectorShape () protected VectorShape ()
{ {
KeepAspectRatio = true; KeepAspectRatio = true;
} }

2
src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/CanvasItem.cs

@ -333,7 +333,7 @@ namespace ClassDiagram
decorator.HandleMouseDown(pos); decorator.HandleMouseDown(pos);
} }
bool hit = HitTest(pos); //bool hit = HitTest(pos);
if (DragAreaHitTest(pos)) if (DragAreaHitTest(pos))
{ {

5
src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/ClassCanvas.cs

@ -182,6 +182,7 @@ namespace ClassDiagram
public void SetRecommendedGraphicsAttributes (Graphics graphics) public void SetRecommendedGraphicsAttributes (Graphics graphics)
{ {
if (graphics == null) return;
graphics.CompositingQuality = CompositingQuality.HighSpeed; graphics.CompositingQuality = CompositingQuality.HighSpeed;
//graphics.SmoothingMode = SmoothingMode.AntiAlias; //graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.SmoothingMode = SmoothingMode.HighQuality;
@ -200,6 +201,7 @@ namespace ClassDiagram
private void PictureBox1Paint (object sender, PaintEventArgs e) private void PictureBox1Paint (object sender, PaintEventArgs e)
{ {
// System.Diagnostics.Debug.WriteLine("ClassCanvas.PictureBox1Paint");
Size bbox = GetDiagramPixelSize(); Size bbox = GetDiagramPixelSize();
pictureBox1.Width = bbox.Width + 100; pictureBox1.Width = bbox.Width + 100;
@ -367,7 +369,6 @@ namespace ClassDiagram
if (!value && redrawNeeded) if (!value && redrawNeeded)
{ {
redrawNeeded = false; redrawNeeded = false;
this.Invalidate(true);
HandleRedraw (this, EventArgs.Empty); HandleRedraw (this, EventArgs.Empty);
} }
} }
@ -389,6 +390,8 @@ namespace ClassDiagram
redrawNeeded = true; redrawNeeded = true;
return; return;
} }
// System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
// System.Diagnostics.Debug.WriteLine(st.ToString());
this.Invalidate(true); this.Invalidate(true);
} }

8
src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassDiagramViewContent.cs

@ -73,12 +73,17 @@ namespace ClassDiagramAddin
void OnParseInformationUpdated(object sender, ParseInformationEventArgs e) void OnParseInformationUpdated(object sender, ParseInformationEventArgs e)
{ {
System.Diagnostics.Debug.WriteLine("ClassDiagramViewContent.OnParseInformationUpdated");
if (e == null) return; if (e == null) return;
if (e.CompilationUnit == null) return; if (e.CompilationUnit == null) return;
if (e.CompilationUnit.ProjectContent == null) return; if (e.CompilationUnit.ProjectContent == null) return;
if (e.CompilationUnit.ProjectContent.Classes == null) return; if (e.CompilationUnit.ProjectContent.Classes == null) return;
if (e.CompilationUnit.ProjectContent != projectContent) return; if (e.CompilationUnit.ProjectContent != projectContent) return;
//TODO - this is a wrong way to handle changed parse informtation.
// the correct way is to mark removed classes as missing, and to
// update changed classes that exist in the diagram.
/*
List<CanvasItem> addedItems = new List<CanvasItem>(); List<CanvasItem> addedItems = new List<CanvasItem>();
foreach (IClass ct in e.CompilationUnit.ProjectContent.Classes) foreach (IClass ct in e.CompilationUnit.ProjectContent.Classes)
{ {
@ -101,6 +106,7 @@ namespace ClassDiagramAddin
canvas.RemoveCanvasItem(cci); canvas.RemoveCanvasItem(cci);
} }
} }
*/
} }
private void PlaceNewItems (ICollection<CanvasItem> items) private void PlaceNewItems (ICollection<CanvasItem> items)

2
src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassEditorPad.cs

@ -58,7 +58,7 @@ namespace ClassDiagramAddin
ICompilationUnit compUnit = e.Method.DeclaringType.CompilationUnit; ICompilationUnit compUnit = e.Method.DeclaringType.CompilationUnit;
FileService.JumpToFilePosition(compUnit.FileName, FileService.JumpToFilePosition(compUnit.FileName,
e.Parameter.Region.BeginLine - 1, e.Parameter.Region.BeginLine - 1,
e.Parameter.Region.BeginColumn - 1); e.Parameter.Region.BeginColumn);
} }
private void EditorClassMemberAdded (object sender, IMemberEventArgs e) private void EditorClassMemberAdded (object sender, IMemberEventArgs e)

18
src/AddIns/DisplayBindings/ClassDiagram/ClassEditor/ClassEditor.Designer.cs generated

@ -46,6 +46,7 @@ namespace ClassDiagram
this._type = new Aga.Controls.Tree.NodeControls.NodeComboBox(); this._type = new Aga.Controls.Tree.NodeControls.NodeComboBox();
this._modifiers = new Aga.Controls.Tree.NodeControls.NodeComboBox(); this._modifiers = new Aga.Controls.Tree.NodeControls.NodeComboBox();
this._summary = new Aga.Controls.Tree.NodeControls.NodeTextBox(); this._summary = new Aga.Controls.Tree.NodeControls.NodeTextBox();
this._paramModifiers = new Aga.Controls.Tree.NodeControls.NodeComboBox();
this.SuspendLayout(); this.SuspendLayout();
// //
// membersList // membersList
@ -70,6 +71,7 @@ namespace ClassDiagram
this.membersList.NodeControls.Add(this._type); this.membersList.NodeControls.Add(this._type);
this.membersList.NodeControls.Add(this._modifiers); this.membersList.NodeControls.Add(this._modifiers);
this.membersList.NodeControls.Add(this._summary); this.membersList.NodeControls.Add(this._summary);
this.membersList.NodeControls.Add(this._paramModifiers);
this.membersList.Search.BackColor = System.Drawing.Color.Pink; this.membersList.Search.BackColor = System.Drawing.Color.Pink;
this.membersList.Search.FontColor = System.Drawing.Color.Black; this.membersList.Search.FontColor = System.Drawing.Color.Black;
this.membersList.SelectedNode = null; this.membersList.SelectedNode = null;
@ -128,10 +130,13 @@ namespace ClassDiagram
// _modifiers // _modifiers
// //
this._modifiers.DataPropertyName = "MemberModifier"; this._modifiers.DataPropertyName = "MemberModifier";
this._modifiers.DropDownItems.Add("Public");
this._modifiers.DropDownItems.Add("Private");
this._modifiers.DropDownItems.Add("Protected");
this._modifiers.DropDownItems.Add("Internal");
this._modifiers.EditEnabled = true; this._modifiers.EditEnabled = true;
this._modifiers.ParentColumn = this.modifierCol; this._modifiers.ParentColumn = this.modifierCol;
this._modifiers.Trimming = System.Drawing.StringTrimming.EllipsisCharacter; this._modifiers.Trimming = System.Drawing.StringTrimming.EllipsisCharacter;
this._modifiers.EditorShowing += new System.ComponentModel.CancelEventHandler(this._modifiersEditorShowing);
// //
// _summary // _summary
// //
@ -140,6 +145,16 @@ namespace ClassDiagram
this._summary.ParentColumn = this.summaryCol; this._summary.ParentColumn = this.summaryCol;
this._summary.Trimming = System.Drawing.StringTrimming.EllipsisCharacter; this._summary.Trimming = System.Drawing.StringTrimming.EllipsisCharacter;
// //
// _paramModifiers
//
this._paramModifiers.DataPropertyName = "MemberModifier";
this._paramModifiers.DropDownItems.Add("In");
this._paramModifiers.DropDownItems.Add("Out");
this._paramModifiers.DropDownItems.Add("Ref");
this._paramModifiers.DropDownItems.Add("Params");
this._paramModifiers.DropDownItems.Add("Optional");
this._paramModifiers.ParentColumn = this.modifierCol;
//
// ClassEditor // ClassEditor
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -149,6 +164,7 @@ namespace ClassDiagram
this.Size = new System.Drawing.Size(603, 299); this.Size = new System.Drawing.Size(603, 299);
this.ResumeLayout(false); this.ResumeLayout(false);
} }
private Aga.Controls.Tree.NodeControls.NodeComboBox _paramModifiers;
private Aga.Controls.Tree.NodeControls.NodeIcon _icon; private Aga.Controls.Tree.NodeControls.NodeIcon _icon;
private Aga.Controls.Tree.NodeControls.NodeComboBox _modifiers; private Aga.Controls.Tree.NodeControls.NodeComboBox _modifiers;
private Aga.Controls.Tree.NodeControls.NodeComboBox _type; private Aga.Controls.Tree.NodeControls.NodeComboBox _type;

17
src/AddIns/DisplayBindings/ClassDiagram/ClassEditor/ClassEditor.cs

@ -98,19 +98,8 @@ namespace ClassDiagram
if (iconIndex > -1) if (iconIndex > -1)
icon = ClassBrowserIconService.ImageList.Images[iconIndex]; icon = ClassBrowserIconService.ImageList.Images[iconIndex];
if (methodMember != null) if (methodMember != null) memberName = ambience.Convert(methodMember);
{ if (eventMember != null) memberName = ambience.Convert(eventMember);
if (methodMember.IsConstructor)
{
if (methodMember.DeclaringType != null)
memberName = methodMember.DeclaringType.Name;
else
memberName = methodMember.Name;
}
else
memberName = methodMember.Name;
}
if (eventMember != null) memberName = eventMember.Name;
if (propertyMember != null) memberName = ambience.Convert(propertyMember); if (propertyMember != null) memberName = ambience.Convert(propertyMember);
if (fieldMember != null) memberName = ambience.Convert(fieldMember); if (fieldMember != null) memberName = ambience.Convert(fieldMember);
} }
@ -532,6 +521,8 @@ namespace ClassDiagram
} }
else if (parameterItem != null) else if (parameterItem != null)
{ {
_modifiers.DropDownItems.Clear();
_modifiers.DropDownItems.Add(ParameterModifiers.In); _modifiers.DropDownItems.Add(ParameterModifiers.In);
_modifiers.DropDownItems.Add(ParameterModifiers.Out); _modifiers.DropDownItems.Add(ParameterModifiers.Out);
_modifiers.DropDownItems.Add(ParameterModifiers.Ref); _modifiers.DropDownItems.Add(ParameterModifiers.Ref);

33
src/AddIns/DisplayBindings/ClassDiagram/ClassEditor/ClassEditor.resx

@ -117,37 +117,4 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ClassEditor.OpenBrace" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAEtJREFUOE9j/P//
PwNFAGQALgw0OA6IgdJ41ODRrAzSDDKEXAMI2g72Ph4XgGzH6/xRAyBRO8wDkeKERFlShuZSgq7AGQv4
MhCyHADpzI8LoRhpHQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ClassEditor.CloseBrace" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAFJJREFUOE9j/P//
PwNFAGQALgw0GGR6HF41BAyIgxqijNMSfAZAvYfXFTidDzMY6gIgF7tXRw0Ahi+RsTAMAhFncsYbBqB8
QFFSpjgzEYohkDwAfDKPC3ze7YgAAAAASUVORK5CYII=
</value>
</data>
<data name="ClassEditor.Comma" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADhJREFUOE9j/P//
PwNFAGQAJZgizWDXU2L7qAGQ2BsNRCLCAJhPQJkFGF7YkzzBQKTIAEKaqRKNABFqxFkudmmJAAAAAElF
TkSuQmCC
</value>
</data>
<data name="ClassEditor.EmptyBraces" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAGFJREFUOE9j/P//
PwNFAGQAMgYaFgfEQCEMcZBNcRjiaJqVQZqxKoQaDJRTRtFDjO0wNdgMR3c+yHYM56MZgCI/agAwyNBi
YRgEItZkTEpCIiYpi+JMytCcSX5mQs9pxPABw+lNu0PRCSMAAAAASUVORK5CYII=
</value>
</data>
</root> </root>

46
src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/BaseRectangle.cs

@ -26,7 +26,14 @@ namespace Tools.Diagrams
public IRectangle Container public IRectangle Container
{ {
get { return container; } get { return container; }
set { container = value; } set
{
if (container != null)
container.AbsolutePositionChanged -= HandleAbsolutePositionChanged;
container = value;
if (container != null)
container.AbsolutePositionChanged += HandleAbsolutePositionChanged;
}
} }
#region Geometry #region Geometry
@ -34,13 +41,24 @@ namespace Tools.Diagrams
public virtual float X public virtual float X
{ {
get { return x; } get { return x; }
set { x = value; }
set
{
if (x == value) return;
x = value;
OnAbsolutePositionChanged();
}
} }
public virtual float Y public virtual float Y
{ {
get { return y; } get { return y; }
set { y = value; } set
{
if (y == value) return;
y = value;
OnAbsolutePositionChanged();
}
} }
public virtual float AbsoluteX public virtual float AbsoluteX
@ -65,11 +83,19 @@ namespace Tools.Diagrams
} }
} }
public void ResetActualSize()
{
aw = float.NaN;
ah = float.NaN;
OnActualSizeChanged();
}
public virtual float ActualWidth public virtual float ActualWidth
{ {
get { return aw; } get { return aw; }
set set
{ {
if (aw == value) return;
aw = value; aw = value;
if (keepAspectRatio) if (keepAspectRatio)
ah = aw * (GetAbsoluteContentHeight() / GetAbsoluteContentWidth()); ah = aw * (GetAbsoluteContentHeight() / GetAbsoluteContentWidth());
@ -83,6 +109,7 @@ namespace Tools.Diagrams
get { return ah; } get { return ah; }
set set
{ {
if (ah == value) return;
ah = value; ah = value;
if (keepAspectRatio) if (keepAspectRatio)
aw = ah * (GetAbsoluteContentWidth() / GetAbsoluteContentHeight()); aw = ah * (GetAbsoluteContentWidth() / GetAbsoluteContentHeight());
@ -96,6 +123,7 @@ namespace Tools.Diagrams
get { return w; } get { return w; }
set set
{ {
if (w == value) return;
w = value; w = value;
OnSizeChanged(); OnSizeChanged();
OnWidthChanged(); OnWidthChanged();
@ -107,6 +135,7 @@ namespace Tools.Diagrams
get { return h; } get { return h; }
set set
{ {
if (h == value) return;
h = value; h = value;
OnSizeChanged(); OnSizeChanged();
OnHeightChanged(); OnHeightChanged();
@ -147,6 +176,16 @@ namespace Tools.Diagrams
set { keepAspectRatio = value; } set { keepAspectRatio = value; }
} }
protected virtual void HandleAbsolutePositionChanged(object sender, EventArgs e)
{
OnAbsolutePositionChanged();
}
protected virtual void OnAbsolutePositionChanged()
{
AbsolutePositionChanged(this, EventArgs.Empty);
}
protected virtual void OnSizeChanged() {} protected virtual void OnSizeChanged() {}
protected virtual void OnWidthChanged() protected virtual void OnWidthChanged()
{ {
@ -180,6 +219,7 @@ namespace Tools.Diagrams
get { return true; } get { return true; }
} }
public event EventHandler AbsolutePositionChanged = delegate {};
public event EventHandler WidthChanged = delegate {}; public event EventHandler WidthChanged = delegate {};
public event EventHandler HeightChanged = delegate {}; public event EventHandler HeightChanged = delegate {};
public event EventHandler ActualWidthChanged = delegate {}; public event EventHandler ActualWidthChanged = delegate {};

6
src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/Drawables/DrawableRectangle.cs

@ -48,6 +48,12 @@ namespace Tools.Diagrams.Drawables
set { strokePen = value; } set { strokePen = value; }
} }
protected override void OnAbsolutePositionChanged()
{
base.OnAbsolutePositionChanged();
path = null;
}
protected override void OnActualSizeChanged() protected override void OnActualSizeChanged()
{ {
path = null; path = null;

1
src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/IRectangle.cs

@ -111,6 +111,7 @@ namespace Tools.Diagrams
bool IsHResizable { get; } bool IsHResizable { get; }
bool IsVResizable { get; } bool IsVResizable { get; }
event EventHandler AbsolutePositionChanged;
event EventHandler WidthChanged; event EventHandler WidthChanged;
event EventHandler HeightChanged; event EventHandler HeightChanged;
event EventHandler ActualWidthChanged; event EventHandler ActualWidthChanged;

12
src/AddIns/DisplayBindings/ClassDiagram/DiagramRouter/ItemsStack.cs

@ -36,6 +36,7 @@ namespace Tools.Diagrams
public void Add (T item) public void Add (T item)
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.Add");
items.Add(item); items.Add(item);
item.Container = this; item.Container = this;
modified = true; modified = true;
@ -43,6 +44,7 @@ namespace Tools.Diagrams
public void Remove (T item) public void Remove (T item)
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.Remove");
items.Remove(item); items.Remove(item);
item.Container = null; item.Container = null;
modified = true; modified = true;
@ -50,6 +52,7 @@ namespace Tools.Diagrams
public void Clear() public void Clear()
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.Clear");
items.Clear(); items.Clear();
modified = true; modified = true;
} }
@ -59,6 +62,7 @@ namespace Tools.Diagrams
get { return axis; } get { return axis; }
set set
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.set_OrientationAxis curr: " + axis + "; new: " + value);
axis = value; axis = value;
modified = true; modified = true;
} }
@ -279,14 +283,13 @@ namespace Tools.Diagrams
protected override void OnActualSizeChanged() protected override void OnActualSizeChanged()
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.OnActualSizeChanged");
modified = true; modified = true;
} }
protected override void OnSizeChanged() protected override void OnSizeChanged()
{ {
modified = true; ResetActualSize();
base.ActualWidth = float.NaN;
base.ActualHeight = float.NaN;
} }
#region Geometry #region Geometry
@ -296,6 +299,7 @@ namespace Tools.Diagrams
get { return minHeight; } get { return minHeight; }
set set
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.set_MinHeight curr: " + minHeight + "; new: " + value);
minHeight = value; minHeight = value;
modified = true; modified = true;
} }
@ -306,6 +310,7 @@ namespace Tools.Diagrams
get { return minWidth; } get { return minWidth; }
set set
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.set_MinWidth curr: " + minWidth + "; new: " + value);
minWidth = value; minWidth = value;
modified = true; modified = true;
} }
@ -357,6 +362,7 @@ namespace Tools.Diagrams
get { return spacing; } get { return spacing; }
set set
{ {
// System.Diagnostics.Debug.WriteLine("ItemStack.set_Spacing curr: " + spacing + "; new: " + value);
spacing = value; spacing = value;
modified = true; modified = true;
} }

Loading…
Cancel
Save