Пример #1
0
        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();
        }
Пример #2
0
 bool IDataDefinitionExport.Equals(IDataDefinitionExport compareWith)
 {
     return
         (Reference == compareWith.Reference &&
          ExportType == compareWith.ExportType &&
          Name == compareWith.Name);
 }
Пример #3
0
        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;
                }
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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;
        }
Пример #8
0
        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;
                }
            }
        }
Пример #9
0
        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);
        }