private void lbxIDataDefinitionExport_DrawItem(object sender, DrawItemEventArgs e) { ListBox lbx = sender as ListBox; if (lbx.Items.Count == 0) { return; } IDataDefinitionExport lbi = lbx.Items[e.Index] as IDataDefinitionExport; int imageIndex = Convert.ToInt32(lbi.ExportType); if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) { e.Graphics.FillRectangle(new SolidBrush(SystemColors.MenuHighlight), e.Bounds); e.Graphics.DrawImage(imageList.Images[imageIndex], e.Bounds.X, e.Bounds.Y, lbx.ItemHeight, lbx.ItemHeight); e.Graphics.DrawString(lbi.Name, lbx.Font, new SolidBrush(SystemColors.ButtonHighlight), e.Bounds.X + lbx.ItemHeight, e.Bounds.Y); } else { e.Graphics.FillRectangle(new SolidBrush(SystemColors.Window), e.Bounds); e.Graphics.DrawImage(imageList.Images[imageIndex], e.Bounds.X, e.Bounds.Y, lbx.ItemHeight, lbx.ItemHeight); e.Graphics.DrawString(lbi.Name, lbx.Font, new SolidBrush(SystemColors.MenuText), e.Bounds.X + lbx.ItemHeight, e.Bounds.Y); } e.DrawFocusRectangle(); }
bool IDataDefinitionExport.Equals(IDataDefinitionExport compareWith) { return (Reference == compareWith.Reference && ExportType == compareWith.ExportType && Name == compareWith.Name); }
private void tvModelDatasources_DragDrop(object sender, DragEventArgs e) { TreeNode treeNode = null; IBaseNode baseNode = null; IDataDefinitionExport export = null; eDropMode dropMode = DropStrategy(e, ref treeNode, ref baseNode, ref export); if (treeNode != null) { tvModelDatasources.SelectedNode = treeNode; switch (dropMode) { case eDropMode.DropBaseNode: TreeNode newBaseNode = TreeNodeFromBaseNode(baseNode); Root.Nodes.Add(newBaseNode); tvModelDatasources.SelectedNode = newBaseNode; break; case eDropMode.DropExportMethod: case eDropMode.DropExportVariable: TreeNode newExport = TreeNodeFromDataDefinitionExport(export); tvModelDatasources.SelectedNode.Nodes.Add(newExport); tvModelDatasources.SelectedNode = newExport; break; } } }
private void lbxExports_DragDrop(object sender, DragEventArgs e) { IDataDefinitionExport export = e.Data.GetData(typeof(IDataDefinitionExportImpl)) as IDataDefinitionExport; if (export != null) { lbxExports.Items.Add(export); (baseNode as IDataDefinition).Exports.Add(export); } }
private TreeNode TreeNodeFromDataDefinitionExport(IDataDefinitionExport export) { int imageIndex = export.ExportType == eExportType.Variable ? EXPORT_VARIABLE_MAPPING : EXPORT_METHOD_MAPPING; TreeNode result = new TreeNode(export.Name); result.SelectedImageIndex = result.ImageIndex = imageIndex; result.Tag = export; return(result); }
protected bool TreeNodeContains(TreeNode treeNode, IDataDefinitionExport obj) { IDataDefinitionExport tag = treeNode.Tag as IDataDefinitionExport; if (tag != null && tag.Equals(obj)) { return(true); } foreach (TreeNode node in treeNode.Nodes) { if (TreeNodeContains(node, obj)) { return(true); } } return(false); }
private void lbxExports_DragOver(object sender, DragEventArgs e) { IDataDefinitionExport draggedItem = e.Data.GetData(typeof(IDataDefinitionExportImpl)) as IDataDefinitionExport; if (draggedItem == null) { e.Effect = DragDropEffects.None; return; } foreach (IDataDefinitionExport lbi in lbxExports.Items) { if (draggedItem.Equals(lbi)) { e.Effect = DragDropEffects.None; return; } } e.Effect = DragDropEffects.Copy; }
private void tvModelDatasources_DragOver(object sender, DragEventArgs e) { TreeNode treeNode = null; IBaseNode baseNode = null; IDataDefinitionExport export = null; eDropMode dropMode = DropStrategy(e, ref treeNode, ref baseNode, ref export); e.Effect = DragDropEffects.None; if (treeNode != null) { tvModelDatasources.SelectedNode = treeNode; switch (dropMode) { case eDropMode.DropBaseNode: case eDropMode.DropExportMethod: case eDropMode.DropExportVariable: e.Effect = DragDropEffects.Copy; break; } } }
protected eDropMode DropStrategy(DragEventArgs e, ref TreeNode treeNode, ref IBaseNode baseNode, ref IDataDefinitionExport export) { Point targetPoint = tvModelDatasources.PointToClient(new Point(e.X, e.Y)); treeNode = tvModelDatasources.GetNodeAt(targetPoint); if (treeNode != null) { baseNode = getIBaseNode(e); if (baseNode != null) { if (TreeNodeContains(Root, baseNode)) { return(eDropMode.Undefined); } return(eDropMode.DropBaseNode); } export = getIDataDefinitionExport(e); eDropMode result = eDropMode.Undefined; if (export != null) { if (isDomainObject(treeNode) && export.ExportType == eExportType.Method) { result = eDropMode.DropExportMethod; } if (isVariableDef(treeNode) && export.ExportType == eExportType.Variable) { result = eDropMode.DropExportVariable; } } TreeNode tn = treeNode.Tag is IDataDefinitionExport ? treeNode.Parent : treeNode; if (TreeNodeContains(tn, export)) { result = eDropMode.Undefined; } return(result); } return(eDropMode.Undefined); }