using System.Collections;
using System.Linq;
using Core.Common.Controls.TreeView;
using Core.Common.Gui.Properties;
using Core.Components.Charting.Data;
using Core.Components.OxyPlot.Forms;
namespace Core.Plugins.OxyPlot.Legend
{
///
/// This class describes the presentation of in a .
///
public class ChartNodePresenter : TreeViewNodePresenterBase
{
public override DragOperations CanDrop(object item, TreeNode sourceNode, TreeNode targetNode, DragOperations validOperations)
{
if (item is ChartData)
{
return validOperations;
}
return base.CanDrop(item, sourceNode, targetNode, validOperations);
}
public override bool CanInsert(object item, TreeNode sourceNode, TreeNode targetNode)
{
return item is ChartData;
}
public override void OnDragDrop(object item, object itemParent, BaseChart target, DragOperations operation, int position)
{
var draggedData = item as ChartData;
target.SetIndex(draggedData, target.Data.Count - 1 - position);
target.NotifyObservers();
}
public override void UpdateNode(TreeNode parentNode, TreeNode node, BaseChart nodeData)
{
node.Text = Properties.Resources.General_Chart;
node.Image = Resources.folder;
}
public override IEnumerable GetChildNodeObjects(BaseChart parentNodeData)
{
return parentNodeData.Data.Reverse();
}
}
}