Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1652 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61shortcuts
14 changed files with 867 additions and 144 deletions
@ -0,0 +1,423 @@ |
|||||||
|
/* |
||||||
|
* Created by SharpDevelop. |
||||||
|
* User: Forstmeier Peter |
||||||
|
* Date: 01.08.2006 |
||||||
|
* Time: 15:48 |
||||||
|
* |
||||||
|
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
||||||
|
*/ |
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Data; |
||||||
|
using System.Drawing; |
||||||
|
using System.ComponentModel; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.Core; |
||||||
|
using SharpReportCore; |
||||||
|
|
||||||
|
namespace SharpReportAddin{ |
||||||
|
/// <summary>
|
||||||
|
/// Description of ExplorerTree.
|
||||||
|
/// </summary>
|
||||||
|
internal class ExplorerTree:TreeView{ |
||||||
|
private SectionTreeNode nodeRoot; |
||||||
|
private SectionTreeNode nodeModel; |
||||||
|
private SectionTreeNode nodeLayout; |
||||||
|
private SectionTreeNode nodeAvailableFields; |
||||||
|
private SectionTreeNode nodeSorting; |
||||||
|
private SectionTreeNode nodeGrouping; |
||||||
|
private TreeNode nodeFunction; |
||||||
|
private TreeNode nodeParams; |
||||||
|
|
||||||
|
private const int folderClosed = 0; |
||||||
|
private const int folderOpen = 1; |
||||||
|
private const int clearIcon = 2; |
||||||
|
|
||||||
|
private const int ascendingIcon = 4; |
||||||
|
private const int descendingIcon = 5; |
||||||
|
private const int storedprocIcon = 7; |
||||||
|
|
||||||
|
private const int columnIcon = 8; |
||||||
|
private const int functionIcon = 9; |
||||||
|
|
||||||
|
public ExplorerTree():base(){ |
||||||
|
LabelEdit = true; |
||||||
|
AllowDrop = true; |
||||||
|
HideSelection = false; |
||||||
|
Dock = DockStyle.Fill; |
||||||
|
Scrollable = true; |
||||||
|
this.MouseDown += new MouseEventHandler(TreeMouseDown ); |
||||||
|
this.InitImageList(); |
||||||
|
BuildNodes(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#region Contextmenu
|
||||||
|
|
||||||
|
private void TreeMouseDown(object sender, System.Windows.Forms.MouseEventArgs e){ |
||||||
|
|
||||||
|
TreeNode node = this.GetNodeAt(PointToClient(Cursor.Position)); |
||||||
|
if (node != null) { |
||||||
|
this.SelectedNode = node; |
||||||
|
CheckNode (node); |
||||||
|
if (e.Button == MouseButtons.Right) { |
||||||
|
AbstractFieldsNode abstrNode = node as AbstractFieldsNode; |
||||||
|
if (abstrNode != null) { |
||||||
|
if (abstrNode.ContextmenuAddinTreePath.Length > 0) { |
||||||
|
ContextMenuStrip ctMen = MenuService.CreateContextMenu (this,abstrNode.ContextmenuAddinTreePath); |
||||||
|
ctMen.Show (this,new Point (e.X,e.Y)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
public bool CheckForExist (SectionTreeNode sec,ColumnsTreeNode col) { |
||||||
|
if (sec.Nodes.Count > 0) { |
||||||
|
for (int i = 0;i < sec.Nodes.Count ;i++ ) { |
||||||
|
if (sec.Nodes[i].Text == col.Text) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
return false; |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
public void CheckNode (TreeNode node) { |
||||||
|
ColumnsTreeNode cn = node as ColumnsTreeNode; |
||||||
|
|
||||||
|
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; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Update ReportModel
|
||||||
|
|
||||||
|
private void UpdateSorting (ReportModel model) { |
||||||
|
model.ReportSettings.SortColumnCollection.Clear(); |
||||||
|
if (this.nodeSorting.Nodes.Count > 0) { |
||||||
|
SortColumn sc; |
||||||
|
AbstractColumn af; |
||||||
|
foreach (ColumnsTreeNode cn in this.nodeSorting.Nodes) { |
||||||
|
af = model.ReportSettings.AvailableFieldsCollection.Find(cn.Text); |
||||||
|
if (af != null) { |
||||||
|
sc = new SortColumn (cn.Text, |
||||||
|
cn.SortDirection, |
||||||
|
af.DataType); |
||||||
|
} else { |
||||||
|
sc = new SortColumn (cn.Text, |
||||||
|
cn.SortDirection, |
||||||
|
typeof(System.String)); |
||||||
|
} |
||||||
|
model.ReportSettings.SortColumnCollection.Add(sc); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void UpdateGrouping (ReportModel model) { |
||||||
|
model.ReportSettings.GroupColumnsCollection.Clear(); |
||||||
|
if (this.nodeGrouping.Nodes.Count > 0) { |
||||||
|
GroupColumn gc; |
||||||
|
for (int i = 0;i < this.nodeGrouping.Nodes.Count ;i++ ) { |
||||||
|
ColumnsTreeNode cn = (ColumnsTreeNode)this.nodeGrouping.Nodes[i]; |
||||||
|
gc = new GroupColumn (cn.Text,i,cn.SortDirection); |
||||||
|
model.ReportSettings.GroupColumnsCollection.Add(gc); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Commands
|
||||||
|
|
||||||
|
public void CollectModel (ReportModel model) { |
||||||
|
UpdateSorting(model); |
||||||
|
UpdateGrouping(model); |
||||||
|
MessageBox.Show (model.DetailSection.Items.Count.ToString()); |
||||||
|
} |
||||||
|
|
||||||
|
public void ClearAndFill() { |
||||||
|
this.Nodes.Clear(); |
||||||
|
this.BuildNodes(); |
||||||
|
} |
||||||
|
|
||||||
|
public void ToggleOrder() { |
||||||
|
if (this.SelectedNode is ColumnsTreeNode) { |
||||||
|
ColumnsTreeNode cn = (ColumnsTreeNode)this.SelectedNode; |
||||||
|
if (cn.SortDirection == ListSortDirection.Ascending) { |
||||||
|
cn.SortDirection = ListSortDirection.Descending; |
||||||
|
cn.ImageIndex = descendingIcon; |
||||||
|
cn.SelectedImageIndex = descendingIcon; |
||||||
|
} else { |
||||||
|
cn.SortDirection = ListSortDirection.Ascending; |
||||||
|
cn.ImageIndex = ascendingIcon; |
||||||
|
cn.SelectedImageIndex = ascendingIcon; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
public int FolderClosed { |
||||||
|
get { |
||||||
|
return folderClosed; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public int FolderOpen { |
||||||
|
get { |
||||||
|
return folderOpen; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int ClearIcon { |
||||||
|
get { |
||||||
|
return clearIcon; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int AscendingIcon { |
||||||
|
get { |
||||||
|
return ascendingIcon; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int DescendingIcon { |
||||||
|
get { |
||||||
|
return descendingIcon; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int StoredprocIcon { |
||||||
|
get { |
||||||
|
return storedprocIcon; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int ColumnIcon { |
||||||
|
get { |
||||||
|
return columnIcon; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public int FunctionIcon { |
||||||
|
get { |
||||||
|
return functionIcon; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#region FillTree
|
||||||
|
|
||||||
|
private void SetAvailableFields (ReportModel model) { |
||||||
|
|
||||||
|
this.nodeAvailableFields.Nodes.Clear(); |
||||||
|
|
||||||
|
foreach (AbstractColumn af in model.ReportSettings.AvailableFieldsCollection){ |
||||||
|
ColumnsTreeNode node = new ColumnsTreeNode(af.ColumnName); |
||||||
|
node.Tag = this.nodeAvailableFields; |
||||||
|
|
||||||
|
//we don't like ContextMenu here
|
||||||
|
node.ContextmenuAddinTreePath = ""; |
||||||
|
switch (model.ReportSettings.CommandType) { |
||||||
|
case CommandType.Text:{ |
||||||
|
node.ImageIndex = columnIcon; |
||||||
|
node.SelectedImageIndex = columnIcon; |
||||||
|
break; |
||||||
|
} |
||||||
|
case CommandType.StoredProcedure: { |
||||||
|
node.ImageIndex = storedprocIcon ; |
||||||
|
node.SelectedImageIndex = storedprocIcon ; |
||||||
|
break; |
||||||
|
} |
||||||
|
default:{ |
||||||
|
node.ImageIndex = columnIcon; |
||||||
|
node.SelectedImageIndex = columnIcon; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
this.nodeAvailableFields.Nodes.Add(node); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void SetSortFields(ColumnCollection collection){ |
||||||
|
ColumnsTreeNode node; |
||||||
|
|
||||||
|
this.nodeSorting.Nodes.Clear(); |
||||||
|
|
||||||
|
foreach (SortColumn sc in collection) { |
||||||
|
node = new ColumnsTreeNode(sc.ColumnName,sc.SortDirection); |
||||||
|
if (node.SortDirection == ListSortDirection.Ascending) { |
||||||
|
node.ImageIndex = 4; |
||||||
|
node.SelectedImageIndex = 4; |
||||||
|
} else { |
||||||
|
node.ImageIndex = descendingIcon; |
||||||
|
node.SelectedImageIndex = descendingIcon; |
||||||
|
} |
||||||
|
this.nodeSorting.Nodes.Add(node); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private void SetGroupFields(ColumnCollection collection){ |
||||||
|
ColumnsTreeNode node; |
||||||
|
|
||||||
|
this.nodeGrouping.Nodes.Clear(); |
||||||
|
foreach (GroupColumn gc in collection) { |
||||||
|
node = new ColumnsTreeNode(gc.ColumnName); |
||||||
|
if (node.SortDirection == ListSortDirection.Ascending) { |
||||||
|
node.ImageIndex = ascendingIcon; |
||||||
|
node.SelectedImageIndex = ascendingIcon; |
||||||
|
} else { |
||||||
|
node.ImageIndex = descendingIcon; |
||||||
|
node.SelectedImageIndex = descendingIcon; |
||||||
|
} |
||||||
|
this.nodeGrouping.Nodes.Add(node); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private void SetParamFields (AbstractParametersCollection collection){ |
||||||
|
ColumnsTreeNode node; |
||||||
|
|
||||||
|
this.nodeParams.Nodes.Clear(); |
||||||
|
foreach (SqlParameter par in collection) { |
||||||
|
node = new ColumnsTreeNode(par.ParameterName); |
||||||
|
node.Tag = par; |
||||||
|
// No ContextMenu for Parameters
|
||||||
|
node.ContextmenuAddinTreePath = String.Empty; |
||||||
|
node.SelectedImageIndex = columnIcon; |
||||||
|
node.ImageIndex = columnIcon; |
||||||
|
this.nodeParams.Nodes.Add (node); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void SetFunctions(ReportSectionCollection collection){ |
||||||
|
AbstractFieldsNode node; |
||||||
|
this.nodeFunction.Nodes.Clear(); |
||||||
|
foreach (SharpReport.ReportSection section in collection) { |
||||||
|
foreach (BaseReportObject item in section.Items) { |
||||||
|
BaseFunction func = item as BaseFunction; |
||||||
|
if (func != null) { |
||||||
|
node = new ColumnsTreeNode (ResourceService.GetString(func.LocalisedName)); |
||||||
|
// No ContextMenu for Functions included in the Report
|
||||||
|
node.ContextmenuAddinTreePath = String.Empty; |
||||||
|
node.SelectedImageIndex = functionIcon; |
||||||
|
node.ImageIndex = functionIcon; |
||||||
|
this.nodeFunction.Nodes.Add(node); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void FillTree (ReportModel model) { |
||||||
|
this.BeginUpdate(); |
||||||
|
try { |
||||||
|
SetAvailableFields(model); |
||||||
|
SetGroupFields(model.ReportSettings.GroupColumnsCollection); |
||||||
|
SetSortFields(model.ReportSettings.SortColumnCollection); |
||||||
|
SetParamFields (model.ReportSettings.SqlParametersCollection); |
||||||
|
SetFunctions(model.SectionCollection); |
||||||
|
this.EndUpdate(); |
||||||
|
} catch (Exception ) { |
||||||
|
throw; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Build Basic Tree
|
||||||
|
|
||||||
|
private void BuildNodes() { |
||||||
|
BeginUpdate(); |
||||||
|
this.Nodes.Clear(); |
||||||
|
this.nodeRoot = new SectionTreeNode("Report"); |
||||||
|
|
||||||
|
this.nodeModel = new SectionTreeNode("Model"); |
||||||
|
|
||||||
|
nodeAvailableFields = new SectionTreeNode(ResourceService.GetString("SharpReport.FieldsExplorer.AvailableFields")); |
||||||
|
nodeAvailableFields.ImageIndex = folderClosed; |
||||||
|
nodeAvailableFields.SelectedImageIndex = folderOpen; |
||||||
|
// we don't like a ContextMenu here
|
||||||
|
nodeAvailableFields.ContextmenuAddinTreePath = ""; |
||||||
|
this.nodeModel.Nodes.Add(this.nodeAvailableFields); |
||||||
|
|
||||||
|
|
||||||
|
nodeSorting = new SectionTreeNode (ResourceService.GetString("SharpReport.FieldsExplorer.Sorting")); |
||||||
|
nodeSorting.ImageIndex = folderClosed; |
||||||
|
nodeSorting.SelectedImageIndex = folderOpen; |
||||||
|
this.nodeModel.Nodes.Add(this.nodeSorting); |
||||||
|
|
||||||
|
nodeGrouping = new SectionTreeNode (ResourceService.GetString("SharpReport.FieldsExplorer.Grouping")); |
||||||
|
nodeGrouping.ImageIndex = folderClosed; |
||||||
|
nodeGrouping.SelectedImageIndex = folderOpen; |
||||||
|
this.nodeModel.Nodes.Add(this.nodeGrouping); |
||||||
|
|
||||||
|
nodeFunction = new TreeNode(ResourceService.GetString("SharpReport.FieldsExplorer.Functions")); |
||||||
|
nodeFunction.ImageIndex = folderClosed; |
||||||
|
nodeFunction.SelectedImageIndex = folderOpen; |
||||||
|
this.nodeModel.Nodes.Add(this.nodeFunction); |
||||||
|
|
||||||
|
nodeParams = new TreeNode(ResourceService.GetString("SharpReport.FieldsExplorer.Parameters")); |
||||||
|
nodeParams.ImageIndex = folderClosed; |
||||||
|
nodeParams.SelectedImageIndex = folderOpen; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
this.nodeModel.Nodes.Add(this.nodeParams); |
||||||
|
|
||||||
|
this.nodeRoot.Nodes.Add(nodeModel); |
||||||
|
|
||||||
|
|
||||||
|
this.nodeLayout = new SectionTreeNode("Layout"); |
||||||
|
|
||||||
|
this.nodeRoot.Nodes.Add(nodeLayout); |
||||||
|
Nodes.Add (this.nodeRoot); |
||||||
|
this.EndUpdate(); |
||||||
|
} |
||||||
|
|
||||||
|
void InitImageList() { |
||||||
|
ImageList imageList = new ImageList(); |
||||||
|
imageList.ColorDepth = ColorDepth.Depth32Bit; |
||||||
|
imageList.ImageSize = new System.Drawing.Size(16, 16); |
||||||
|
|
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.ClosedFolderBitmap")); |
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.OpenFolderBitmap")); |
||||||
|
imageList.Images.Add(new Bitmap(1, 1)); |
||||||
|
|
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.SelectionArrow")); |
||||||
|
|
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.SharpReport.Ascending")); |
||||||
|
|
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.SharpReport.Descending")); |
||||||
|
//Table's or procedure
|
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.SharpQuery.Table")); |
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.SharpQuery.Procedure")); |
||||||
|
|
||||||
|
//Parameters
|
||||||
|
imageList.Images.Add(IconService.GetBitmap("Icons.16x16.SharpQuery.Column")); |
||||||
|
|
||||||
|
//Function
|
||||||
|
imageList.Images.Add(ResourceService.GetIcon("Icons.16x16.SharpReport.Function")); |
||||||
|
this.ImageList = imageList; |
||||||
|
} |
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,202 @@ |
|||||||
|
/* |
||||||
|
* Created by SharpDevelop. |
||||||
|
* User: Forstmeier Helmut |
||||||
|
* Date: 01.08.2006 |
||||||
|
* Time: 13:09 |
||||||
|
* |
||||||
|
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
||||||
|
*/ |
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Drawing; |
||||||
|
using System.ComponentModel; |
||||||
|
using System.Windows.Forms; |
||||||
|
|
||||||
|
using ICSharpCode.SharpDevelop.Gui; |
||||||
|
|
||||||
|
using SharpReportCore; |
||||||
|
|
||||||
|
namespace SharpReportAddin |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Description of the pad content
|
||||||
|
/// </summary>
|
||||||
|
public class ReportExplorer : AbstractPadContent{ |
||||||
|
|
||||||
|
Panel contentPanel = new Panel(); |
||||||
|
ExplorerTree treeView = new ExplorerTree(); |
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a new ReportExplorer object
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
public ReportExplorer():base(){ |
||||||
|
this.contentPanel.Controls.Add(this.treeView); |
||||||
|
this.treeView.ItemDrag += TreeViewItemDrag; |
||||||
|
this.treeView.DragDrop += TreeViewDragDrop; |
||||||
|
this.treeView.DragOver += TreeViewDragOver; |
||||||
|
} |
||||||
|
|
||||||
|
#region DragDrop
|
||||||
|
|
||||||
|
void TreeViewItemDrag (object sender,ItemDragEventArgs e) { |
||||||
|
|
||||||
|
if (e.Item is ColumnsTreeNode) { |
||||||
|
ColumnsTreeNode node = (ColumnsTreeNode)e.Item; |
||||||
|
// for now, only dragging of Columns is allowed
|
||||||
|
if (node.ImageIndex == this.treeView.ColumnIcon) { |
||||||
|
this.treeView.SelectedNode = node; |
||||||
|
if (node != null) { |
||||||
|
this.treeView.DoDragDrop(node.DragDropDataObject, |
||||||
|
DragDropEffects.Copy | DragDropEffects.Scroll); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void TreeViewDragOver (object sender,DragEventArgs e) { |
||||||
|
|
||||||
|
TreeNode node = this.treeView.GetNodeAt(this.treeView.PointToClient(new Point (e.X,e.Y))); |
||||||
|
|
||||||
|
node.EnsureVisible(); |
||||||
|
if (node.Nodes.Count > 0) { |
||||||
|
node.Expand(); |
||||||
|
} |
||||||
|
if(e.Data.GetDataPresent("SharpReportAddin.ColumnsTreeNode", false)){ |
||||||
|
//If we are in the AvailableFields Section we can't drop
|
||||||
|
if (node is SectionTreeNode){ |
||||||
|
e.Effect = DragDropEffects.Copy | DragDropEffects.Scroll; |
||||||
|
} else { |
||||||
|
e.Effect = DragDropEffects.None; |
||||||
|
} |
||||||
|
} else { |
||||||
|
e.Effect = DragDropEffects.None; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void TreeViewDragDrop (object sender,DragEventArgs e) { |
||||||
|
if(e.Data.GetDataPresent("SharpReportAddin.ColumnsTreeNode", false)){ |
||||||
|
Point pt = this.treeView.PointToClient (new Point( e.X,e.Y)); |
||||||
|
|
||||||
|
SectionTreeNode node = this.treeView.GetNodeAt (pt) as SectionTreeNode; |
||||||
|
if (node != null) { |
||||||
|
|
||||||
|
ColumnsTreeNode t = (ColumnsTreeNode)e.Data.GetData("SharpReportAddin.ColumnsTreeNode", true); |
||||||
|
ColumnsTreeNode dest = new ColumnsTreeNode (t.Text); |
||||||
|
|
||||||
|
// Useless to add a node twice
|
||||||
|
if (!this.treeView.CheckForExist (node,dest)) { |
||||||
|
dest.SortDirection = ListSortDirection.Ascending; |
||||||
|
dest.ImageIndex = this.treeView.AscendingIcon; |
||||||
|
dest.SelectedImageIndex = this.treeView.AscendingIcon; |
||||||
|
this.treeView.SelectedNode = (TreeNode)dest; |
||||||
|
this.treeView.CheckNode (dest); |
||||||
|
node.Nodes.Add(dest); |
||||||
|
NotifyReportView(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// private static bool CheckForExist (SectionTreeNode sec,ColumnsTreeNode col) {
|
||||||
|
// if (sec.Nodes.Count > 0) {
|
||||||
|
// for (int i = 0;i < sec.Nodes.Count ;i++ ) {
|
||||||
|
// if (sec.Nodes[i].Text == col.Text) {
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region publics for Commands
|
||||||
|
|
||||||
|
// These public methods are all called from ExplorerCommands
|
||||||
|
public void ClearAndRebuildTree() { |
||||||
|
this.treeView.ClearAndFill(); |
||||||
|
} |
||||||
|
|
||||||
|
public void ClearNodes () { |
||||||
|
if (this.treeView.SelectedNode is SectionTreeNode) { |
||||||
|
if (this.treeView.SelectedNode.Nodes.Count > 0) { |
||||||
|
this.treeView.SelectedNode.Nodes.Clear(); |
||||||
|
NotifyReportView(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void ToggleOrder () { |
||||||
|
this.treeView.ToggleOrder(); |
||||||
|
this.NotifyReportView(); |
||||||
|
} |
||||||
|
|
||||||
|
public void RemoveNode() { |
||||||
|
if (this.treeView.SelectedNode != null) { |
||||||
|
TreeNode parent = this.treeView.SelectedNode.Parent; |
||||||
|
this.treeView.SelectedNode.Remove(); |
||||||
|
this.treeView.SelectedNode = parent; |
||||||
|
NotifyReportView(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void NotifyReportView() { |
||||||
|
if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent is SharpReportView) { |
||||||
|
WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContent.IsDirty = true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void Update (ReportModel model){ |
||||||
|
this.treeView.CollectModel(model); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#region properties
|
||||||
|
|
||||||
|
public ReportModel ReportModel { |
||||||
|
set { |
||||||
|
this.treeView.FillTree(value); |
||||||
|
} |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region AbstractPadContent
|
||||||
|
/// <summary>
|
||||||
|
/// The <see cref="System.Windows.Forms.Control"/> representing the pad
|
||||||
|
/// </summary>
|
||||||
|
public override Control Control { |
||||||
|
get { |
||||||
|
return this.contentPanel; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Refreshes the pad
|
||||||
|
/// </summary>
|
||||||
|
public override void RedrawContent(){ |
||||||
|
} |
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cleans up all used resources
|
||||||
|
/// </summary>
|
||||||
|
public override void Dispose(){ |
||||||
|
this.contentPanel.Dispose(); |
||||||
|
} |
||||||
|
#endregion
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue