Browse Source

DragDrop for GroupColumns in ExplorerTree

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6441 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 15 years ago
parent
commit
2067762ad6
  1. 61
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs
  2. 64
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs

61
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs

@ -118,26 +118,44 @@ namespace ICSharpCode.Reports.Addin @@ -118,26 +118,44 @@ namespace ICSharpCode.Reports.Addin
ColumnNode node = (ColumnNode)drgevent.Data.GetData(typeof(ColumnNode));
Point pt = this.PointToClient (new Point( drgevent.X,drgevent.Y));
SectionNode sectionNode = this.GetNodeAt (pt) as SectionNode;
if (sectionNode != null) {
if ((sectionNode != null) && (!ExplorerTree.NodeExist (sectionNode,node.Text))) {
if (sectionNode == this.nodeGrouping) {
this.nodeSorting.Nodes.Clear();
AddGrouping(sectionNode,node);
} else {
AddSorting (sectionNode,node);
}
}
}
if (!ExplorerTree.NodeExist (sectionNode,node.Text)) {
SortColumnNode newNode = new SortColumnNode (node.Text,
private void AddSorting(SectionNode sectionNode, ColumnNode node)
{
SortColumnNode sortNode = new SortColumnNode (node.Text,
ExplorerTree.ascendingIcon,
ExplorerTree.sortColumnMenu);
newNode.SortDirection = ListSortDirection.Ascending;
this.SelectedNode = newNode;
this.CheckNode (newNode);
sectionNode.Nodes.Add(newNode);
this.reportModel.ReportSettings.SortColumnsCollection.Add(new SortColumn(newNode.Text,
sortNode.SortDirection = ListSortDirection.Ascending;
this.SelectedNode = sortNode;
sectionNode.Nodes.Add(sortNode);
this.reportModel.ReportSettings.SortColumnsCollection.Add(new SortColumn(sortNode.Text,
ListSortDirection.Ascending,
typeof(System.String),false));
this.OnPropertyChanged ("Sort_Group");
}
this.OnPropertyChanged ("Sorting");
}
private void AddGrouping(SectionNode sectionNode,ColumnNode node)
{
this.nodeSorting.Nodes.Clear();
GroupColumnNode groupNode = new GroupColumnNode(node.Text,ExplorerTree.ascendingIcon,
ExplorerTree.sortColumnMenu);
groupNode.SortDirection = ListSortDirection.Ascending;
this.SelectedNode = groupNode;
sectionNode.Nodes.Add(groupNode);
this.reportModel.ReportSettings.GroupColumnsCollection.Add(new GroupColumn(groupNode.Text, 1,ListSortDirection.Ascending));
this.OnPropertyChanged ("Grouping");
}
#endregion
@ -157,24 +175,6 @@ namespace ICSharpCode.Reports.Addin @@ -157,24 +175,6 @@ namespace ICSharpCode.Reports.Addin
}
private void CheckNode (TreeNode node)
{
SortColumnNode cn = node as SortColumnNode;
if (cn != null) {
if (node.Parent == nodeSorting) {
if (cn.SortDirection == ListSortDirection.Ascending) {
cn.ImageIndex = ascendingIcon;
} else {
cn.ImageIndex = descendingIcon;
}
} else if (node.Parent == this.nodeGrouping) {
cn.ImageIndex = clearIcon;
cn.SelectedImageIndex = clearIcon;
}
}
}
#region Update Sorting - Grouping
private ColumnCollection CollectSortColumns()
@ -445,11 +445,6 @@ namespace ICSharpCode.Reports.Addin @@ -445,11 +445,6 @@ namespace ICSharpCode.Reports.Addin
}
public ColumnCollection SortColumnCollection
{
get{return this.CollectSortColumns();}
}
#endregion
}

64
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs

@ -73,7 +73,7 @@ namespace ICSharpCode.Reports.Addin @@ -73,7 +73,7 @@ namespace ICSharpCode.Reports.Addin
}
}
void ActiveViewClosed (object source, ViewContentEventArgs e)
private void ActiveViewClosed (object source, ViewContentEventArgs e)
{
if (e.Content is ReportDesignerView) {
Console.WriteLine ("Designer closed");
@ -81,6 +81,7 @@ namespace ICSharpCode.Reports.Addin @@ -81,6 +81,7 @@ namespace ICSharpCode.Reports.Addin
}
}
#region Mouse
private void ReportExplorer_MouseDown (object sender, MouseEventArgs e)
@ -100,62 +101,6 @@ namespace ICSharpCode.Reports.Addin @@ -100,62 +101,6 @@ namespace ICSharpCode.Reports.Addin
#endregion
#region DragDrop
/*
void TreeViewItemDrag (object sender,ItemDragEventArgs e)
{
ColumnNode node = (ColumnNode)e.Item;
if (node != null) {
if (node.ImageIndex == ExplorerTree.ColumnIcon) {
this.treeView.SelectedNode = node;
if (node != null) {
this.treeView.DoDragDrop(node.DragDropDataObject,
DragDropEffects.Copy | DragDropEffects.Scroll);
}
}
}
}
*/
void TreeViewDragDrop (object sender,DragEventArgs e)
{
/*
if(e.Data.GetDataPresent(ReportExplorer.DragNodeDescription, false)){
Point pt = this.treeView.PointToClient (new Point( e.X,e.Y));
SectionTreeNode sectionNode = this.treeView.GetNodeAt (pt) as SectionTreeNode;
if (sectionNode != null) {
// If we dragdrop to GroupNode, remove all subnods in SortNode
if (this.treeView.IsGroupNode(sectionNode)) {
this.treeView.ClearSortNode();
}
ColumnsTreeNode t = (ColumnsTreeNode)e.Data.GetData(ReportExplorer.DragNodeDescription, true);
ColumnsTreeNode newNode = new ColumnsTreeNode (t.FieldName);
// Useless to add a node twice
if (!ExplorerTree.NodeExist (sectionNode,newNode)) {
newNode.SortDirection = ListSortDirection.Ascending;
newNode.ImageIndex = ExplorerTree.AscendingIcon;
newNode.SelectedImageIndex = ExplorerTree.AscendingIcon;
this.treeView.SelectedNode = (TreeNode)newNode;
this.treeView.CheckNode (newNode);
sectionNode.Nodes.Add(newNode);
ReportExplorer.NotifyReportView();
}
}
}
*/
}
#endregion
#region publics for Commands
// These public methods are all called from ExplorerCommands
@ -211,13 +156,10 @@ namespace ICSharpCode.Reports.Addin @@ -211,13 +156,10 @@ namespace ICSharpCode.Reports.Addin
public ReportModel ReportModel
{get {return this.reportModel;}}
public ColumnCollection SortColumnCollection
{
get {return this.explorerTree.SortColumnCollection;}
}
#region IPropertyChanged
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
private void NotifyReportView(string property)

Loading…
Cancel
Save