Exemplo n.º 1
0
        private void nodeTextBoxObjId_DrawText(object sender, Aga.Controls.Tree.NodeControls.DrawTextEventArgs e)
        {
            DataTreeNode      node       = e.Node.Tag as DataTreeNode;
            ObjectRefTreeNode objRefNode = node as ObjectRefTreeNode;

            if (e.Text == "0")
            {
                e.TextColor = SystemColors.GrayText;
            }
            else if (objRefNode != null)
            {
                if (this.IsObjectIdExisting(objRefNode.ObjId))
                {
                    e.TextColor = Color.Blue;
                }
                else
                {
                    e.TextColor = Color.Red;
                }
            }
            else
            {
                e.TextColor = Color.Black;
            }
        }
Exemplo n.º 2
0
            public object Clone()
            {
                DataTreeNode result = new DataTreeNode(AddBufferOffset, Length);

                result.TotalLength = TotalLength;
                return(result);
            }
Exemplo n.º 3
0
        public void OpenFile(string filePath, bool reset = true)
        {
            if (reset)
            {
                Reset();
            }

            // Determine current configuration
            ConfigurationList.Instance.DetermineCurrentConfiguration(filePath);

            // Create the node
            var node = DataNodeFactory.Create(filePath);

            // Wrap the node and add it to the tree view
            var wrappedNode = new DataTreeNode(node);

            mTreeView.Nodes.Add(wrappedNode);

            // Restore menu items
            mSaveToolStripMenuItem.Enabled   = true;
            mSaveAsToolStripMenuItem.Enabled = true;
            mCloseToolStripMenuItem.Enabled  = true;

            // Update the title to have the name of node
            Text = $"Miku Miku Model - {node.Name}";

            // Update the file path for the save method
            mCurrentlyOpenFilePath = filePath;

            // Expand the node
            // TODO: Expanding a large farc archive will lock up the program
            wrappedNode.Expand();
        }
Exemplo n.º 4
0
        public Task <int> InvokeAsync(InvocationContext context)
        {
            var console = context.Console.Out;
            var file    = context.ParseResult.ValueForOption <string>("file");

            object loaded;

            try
            {
                loaded = Proto.ProtoIo.LoadModel(file, new ConsoleLogger(console));
            }
            catch (Exception ex)
            {
                console.WriteLine($"Error loading {file}: {ex}");
                return(Task.FromResult(1));
            }

            if (!(loaded is Kit kit))
            {
                console.WriteLine($"File did not parse as a kit file");
                return(Task.FromResult(1));
            }

            var dataNode = new DataTreeNode(kit.Data, kit.KitRoot);
            var json     = ConvertToJson(dataNode);

            console.WriteLine(json.ToString(Formatting.Indented));
            return(Task.FromResult(0));
        }
Exemplo n.º 5
0
        private void treeView_SelectionChanged(object sender, EventArgs e)
        {
            TreeNodeAdv  viewSelNode = this.treeView.SelectedNode;
            DataTreeNode selNode     = viewSelNode != null ? viewSelNode.Tag as DataTreeNode : null;

            this.propertyGrid.SelectObject(selNode != null ? selNode.Data : null);
        }
Exemplo n.º 6
0
        private DataTreeNode <Tuple <Exception, TreeNode> > GetExceptionTreeViewNode(Exception exc)
        {
            TreeNode treeNode   = new TreeNode(exc.GetType().Name);
            var      childNodes = new List <DataTreeNode <Tuple <Exception, TreeNode> > >();

            if (exc.InnerException != null)
            {
                var childNode = GetExceptionTreeViewNode(exc.InnerException);
                childNodes.Add(childNode);

                ExceptionsFlatList.Add(childNode);
                treeNode.Nodes.Add(childNode.Data.Item2);
            }

            var aggExc = exc as AggregateException;

            if (aggExc?.InnerExceptions != null)
            {
                foreach (var innerExc in aggExc.InnerExceptions)
                {
                    var childNode = GetExceptionTreeViewNode(innerExc);
                    childNodes.Add(childNode);

                    ExceptionsFlatList.Add(childNode);
                    treeNode.Nodes.Add(childNode.Data.Item2);
                }
            }

            var rootNode = new DataTreeNode <Tuple <Exception, TreeNode> >(
                new Tuple <Exception, TreeNode>(
                    exc, treeNode));

            return(rootNode);
        }
Exemplo n.º 7
0
        private void PopulateTreeView(int parentId, DataTreeNode parentNode)
        {
            String    Sequel          = "SELECT PARAMETRE_ID,SEVIYE_ADI,UST_SEVIYE_ID, SEVIYE FROM PARAMETRE WHERE UST_SEVIYE_ID=" + parentId + " AND AKTIF=1 ORDER BY SEVIYE_ADI";
            DataTable parametreTreeDt = new DataTable();

            parametreTreeDt = manager.BasitSorguDT(Sequel, analizConStr);
            //TreeNode childNode;
            nodMuyum = false;
            foreach (DataRow dr in parametreTreeDt.Rows)
            {
                int    parametreId = int.Parse(dr["PARAMETRE_ID"].ToString());
                string seviyeAdi   = dr["SEVIYE_ADI"].ToString();
                int    ustSeviyeId = int.Parse(dr["UST_SEVIYE_ID"].ToString());
                int    seviye      = int.Parse(dr["SEVIYE"].ToString());
                int    isparent    = 0;

                ParametreSanal parametreSanal = new ParametreSanal(parametreId, seviyeAdi, ustSeviyeId, seviye, isparent);
                DataTreeNode   node1          = new DataTreeNode(parametreSanal);
                if (parentNode == null)
                {
                    treeView1.Nodes.Add(node1);
                }
                else
                {
                    parentNode.Nodes.Add(node1);
                }
                PopulateTreeView(Convert.ToInt32(dr["PARAMETRE_ID"].ToString()), node1);
                nodMuyum = true;
            }
        }
Exemplo n.º 8
0
        private void ShowException(DataTreeNode <Tuple <Exception, TreeNode> > dataNode)
        {
            var exc = dataNode.Data.Item1;

            textBoxExceptionMessage.Text    = exc.Message;
            textBoxExceptionType.Text       = exc.GetType().FullName;
            textBoxExceptionStackTrace.Text = exc.StackTrace;
        }
Exemplo n.º 9
0
 private void SetIcons(DataTreeNode node)
 {
     SetIcon(node);
     foreach (var child in node.Nodes)
     {
         SetIcons((DataTreeNode)child);
     }
 }
Exemplo n.º 10
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            DataTreeNode treeViewNode = (DataTreeNode)e.Node; // <--- Node DataTreeNode tipinde

            txtPARAMETRE_ID.DataBindings.Clear();
            txtSEVIYE_ADI.DataBindings.Clear();
            txtUST_SEVIYE_ID.DataBindings.Clear();
            txtSEVIYE.DataBindings.Clear();
            txtISPARENT.DataBindings.Clear();

            txtPARAMETRE_ID.DataBindings.Add("Text", treeViewNode.Data, "PARAMETRE_ID");
            txtSEVIYE_ADI.DataBindings.Add("Text", treeViewNode.Data, "SEVIYE_ADI");
            txtUST_SEVIYE_ID.DataBindings.Add("Text", treeViewNode.Data, "UST_SEVIYE_ID");
            txtSEVIYE.DataBindings.Add("Text", treeViewNode.Data, "SEVIYE");
            txtISPARENT.DataBindings.Add("Text", treeViewNode.Data, "ISPARENT");


            //MessageBox.Show(((System.Windows.Forms.TreeView)sender).SelectedNode.FullPath.ToString());
            //MessageBox.Show(((System.Windows.Forms.TreeView)sender).SelectedNode.Text.ToString());


            if (e.Node.Parent == null)  // || e.Node.Parent.GetType() == typeof(TreeNode))
            {
                cmbSeviye.SelectedIndex    = int.Parse(txtSEVIYE.Text.ToString());
                cmbUstSeviye.SelectedValue = txtPARAMETRE_ID.Text;
            }
            else
            {
                nodMuyum = true;
                //MessageBox.Show("This is parent node.");
                if (e.Node.Parent.GetType() == typeof(DataTreeNode))
                {
                    //if (e.Node.LastNode != null)
                    {
                        cmbSeviye.SelectedIndex = int.Parse(txtSEVIYE.Text.ToString());
                    }
                    cmbUstSeviye.SelectedValue = txtPARAMETRE_ID.Text;


                    if (!nodMuyum)
                    {
                        cmbSeviye.SelectedIndex    = int.Parse(txtSEVIYE.Text.ToString()) - 1;
                        cmbUstSeviye.SelectedValue = txtUST_SEVIYE_ID.Text;
                    }
                }
                else
                {
                    //cmbUstSeviye.SelectedValue = txtUST_SEVIYE_ID.Text;
                }
                //cmbUstSeviye.SelectedText = e.Node.Parent.Text.ToString();
            }

            //cmbSeviye.SelectedIndex = int.Parse(txtSEVIYE.Text.ToString());
            //cmbUstSeviye.SelectedValue = txtPARAMETRE_ID.Text;
            //cmbSeviye.Refresh();
        }
Exemplo n.º 11
0
        private void RetriveChildrenNodes(DataTreeNode node)
        {
            this.nodeToExpand = node;
            object rootId = null;

            if (this.nodeToExpand != null)
            {
                rootId = (this.nodeToExpand.DataSource as TreeViewObjectPickerForm.DataTreeNodeModel).InnerDataRow;
            }
            this.ObjectPicker.PerformQuery(rootId, string.Empty);
            this.InProgress = true;
        }
Exemplo n.º 12
0
        public Project(string path)
        {
            _projectLocation = path;
            _hasMadeChanges  = true;

            _rootNode = new DataTreeNode("Project", null, false, false);

            _rootNode.Nodes.Add(new DataTreeNode("Game Properties", new GameProperties(), false, false));
            _rootNode.Nodes.Add(new DataTreeNode("Game Flags", new FlagCollection(), false, false));

            _openPanels = new Dictionary <object, DockContent>();
        }
Exemplo n.º 13
0
        private void nodeTextBoxType_DrawText(object sender, Aga.Controls.Tree.NodeControls.DrawTextEventArgs e)
        {
            DataTreeNode   node    = e.Node.Tag as DataTreeNode;
            ObjectTreeNode objNode = node as ObjectTreeNode;

            if (objNode != null && objNode.ResolvedMember == null)
            {
                e.TextColor = Color.Red;
            }
            else
            {
                e.TextColor = Color.Black;
            }
        }
Exemplo n.º 14
0
        protected override TreeNode GetTreeNode(Item item, System.Web.UI.Control parent)
        {
            DataTreeNode dataTreeNode = (DataTreeNode)base.GetTreeNode(item, parent);

            foreach (string fieldName in ColumnNames.Keys)
            {
                if (PredefinedFieldNames.IndexOf(fieldName) != -1)
                {
                    string fieldValue = GetPredefinedFieldValue(item, fieldName);
                    dataTreeNode.ColumnValues[fieldName] = fieldValue;
                }
            }
            return(dataTreeNode);
        }
Exemplo n.º 15
0
        private static JObject ConvertToJson(DataTreeNode container)
        {
            var ret = new JObject();

            foreach (var child in container.Children)
            {
                ret.Add(child.SchemaNode.Name, ConvertToJson(child));
            }
            foreach (var detail in container.Details)
            {
                ret.Add(detail.Description, ConvertToJson(detail));
            }
            return(ret);
        }
Exemplo n.º 16
0
        private void resultTreeView_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            if (this.ObjectPicker.DataTableLoader.Refreshing)
            {
                e.Cancel = true;
                return;
            }
            DataTreeNode dataTreeNode = e.Node as DataTreeNode;

            TreeViewObjectPickerForm.DataTreeNodeModel dataTreeNodeModel = dataTreeNode.DataSource as TreeViewObjectPickerForm.DataTreeNodeModel;
            if (!dataTreeNodeModel.IsChildrenReady)
            {
                e.Cancel = true;
                this.RetriveChildrenNodes(dataTreeNode);
            }
        }
Exemplo n.º 17
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            DataTreeNode node = (DataTreeNode)e.Node; // <--- Node DataTreeNode tipinde

            txtPARAMETRE_ID.DataBindings.Clear();
            txtSEVIYE_ADI.DataBindings.Clear();
            txtUST_SEVIYE_ID.DataBindings.Clear();
            txtSEVIYE.DataBindings.Clear();
            txtISPARENT.DataBindings.Clear();

            txtPARAMETRE_ID.DataBindings.Add("Text", node.Data, "PARAMETRE_ID");
            txtSEVIYE_ADI.DataBindings.Add("Text", node.Data, "SEVIYE_ADI");
            txtUST_SEVIYE_ID.DataBindings.Add("Text", node.Data, "UST_SEVIYE_ID");
            txtSEVIYE.DataBindings.Add("Text", node.Data, "SEVIYE");
            txtISPARENT.DataBindings.Add("Text", node.Data, "ISPARENT");
        }
Exemplo n.º 18
0
        protected override async Task <int> InvokeAsync(InvocationContext context, IStandardStreamWriter console, RolandMidiClient client)
        {
            using (var device = new DeviceController(client))
            {
                var schema    = device.Schema;
                var channel   = context.ParseResult.ValueForOption <int>("channel");
                var keys      = context.ParseResult.ValueForOption <string>("keys");
                var targetKit = context.ParseResult.ValueForOption <int>("kit");
                if (targetKit < 1 || targetKit + 1 > schema.Kits)
                {
                    console.WriteLine($"Kit {targetKit} is out of range for {schema.Identifier.Name} for this command.");
                    console.WriteLine("Note that one extra kit is required after the specified one.");
                    return(1);
                }

                // Detect the current kit
                var currentKit = await device.GetCurrentKitAsync(CancellationToken.None);

                // Copy current kit to target kit and target kit + 1
                var kit = await device.LoadKitAsync(currentKit, progressHandler : null, CreateCancellationToken());

                var dataNode = new DataTreeNode(kit.Data, kit.KitRoot);
                await device.SaveDescendants(dataNode, schema.GetKitRoot(targetKit).Container.Address, progressHandler : null, CreateCancellationToken());

                await device.SaveDescendants(dataNode, schema.GetKitRoot(targetKit + 1).Container.Address, progressHandler : null, CreateCancellationToken());

                await device.SetCurrentKitAsync(targetKit, CancellationToken.None);

                var programChangeCommand = (byte)(0xc0 | (channel - 1));

                // Now listen for the foot switch...
                client.MessageReceived += async(sender, message) =>
                {
                    if (message.Data.Length == 2 && message.Data[0] == programChangeCommand)
                    {
                        console.WriteLine("Turning the page...");
                        SendKeysUtilities.SendWait(keys);
                        await device.SetCurrentKitAsync(targetKit, CancellationToken.None);
                    }
                };
                console.WriteLine("Listening for foot switch");
                await Task.Delay(TimeSpan.FromHours(1));
            }
            return(0);

            CancellationToken CreateCancellationToken() => new CancellationTokenSource(10000).Token;
        }
Exemplo n.º 19
0
        public void Duplicate(TreeNode node)
        {
            if (node == null)
            {
                return;
            }

            if (!(node is DataTreeNode dataNode))
            {
                return;
            }

            if (!dataNode.IsEditable)
            {
                return;
            }

            if (!dataNode.IsMovable)
            {
                return;
            }

            // to duplicate easily, we'll just serialize and deserialize the data
            var json = JsonConvert.SerializeObject(dataNode.Data, new JsonSerializerSettings
            {
                TypeNameHandling           = TypeNameHandling.All,
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            });
            var copy = JsonConvert.DeserializeObject(json, new JsonSerializerSettings
            {
                TypeNameHandling           = TypeNameHandling.All,
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            });

            var copyNode = new DataTreeNode(dataNode.Text + " - Copy", copy);

            node.Parent.Nodes.Add(copyNode);

            dataNode.Expand();

            Save(false, true);
            SetIcon(copyNode);

            copyNode.BeginEdit();
        }
Exemplo n.º 20
0
        public void ShowTreeNodesRecursive(DataTreeNode oParentNode, string aranan)
        {
            //debug
            //Console.WriteLine(oParentNode.Text);
            //MessageBox.Show(((System.Windows.Forms.TreeView)sender).SelectedNode.Text.ToString());
            //MessageBox.Show(treeView1.SelectedNode.FullPath.ToString());

            if (oParentNode.FullPath.ToString() == aranan)
            {
                treeView1.SelectedNode           = oParentNode;
                treeView1.SelectedNode.BackColor = Color.Blue;
            }
            // Start recursion on all subnodes.
            foreach (DataTreeNode oSubNode in oParentNode.Nodes)
            {
                ShowTreeNodesRecursive(oSubNode, aranan);
            }
        }
Exemplo n.º 21
0
        public void LoadFile(string filePath)
        {
            if (!File.Exists(filePath))
            {
                throw new FileNotFoundException("Can't open Resource file. File not found.", filePath);
            }

            this.ClearData();
            this.actionRenameType.Enabled = true;
            this.actionSave.Enabled       = true;
            this.filePath = filePath;
            using (FileStream fileStream = File.OpenRead(this.filePath))
            {
                using (var formatter = Formatter.CreateMeta(fileStream))
                {
                    DataNode dataNode;
                    try
                    {
                        this.treeView.BeginUpdate();
                        while ((dataNode = formatter.ReadObject <DataNode>()) != null)
                        {
                            DataTreeNode data = this.AddData(dataNode);
                            this.rootData.Add(data);
                        }
                    }
                    catch (EndOfStreamException) {}
                    catch (Exception e)
                    {
                        Log.Editor.WriteError("Can't load file {0} because an error occurred in the process: \n{1}",
                                              this.filePath,
                                              Log.Exception(e));
                        return;
                    }
                    finally
                    {
                        foreach (DataTreeNode n in this.rootData)
                        {
                            this.dataModel.Nodes.Add(n);
                        }
                        this.treeView.EndUpdate();
                    }
                }
            }
        }
Exemplo n.º 22
0
        protected DataTreeNode AddData(DataNode data)
        {
            // Register type data layout nodes
            if (data is TypeDataLayoutNode)
            {
                this.typeDataLayout[(data.Parent as ObjectNode).TypeString] = data as TypeDataLayoutNode;
            }

            DataTreeNode dataNode = DataTreeNode.Create(data);

            foreach (DataNode child in data.SubNodes)
            {
                DataTreeNode childDataNode = this.AddData(child);
                childDataNode.Parent = dataNode;
            }
            this.UpdateTypeDataLayout(dataNode, false);

            return(dataNode);
        }
Exemplo n.º 23
0
        private ModuleData(TreeNode logicalSchemaRoot)
        {
            PhysicalRoot = logicalSchemaRoot.Container;
            if (!(PhysicalRoot is ContainerBase containerBase))
            {
                throw new ArgumentException("Invalid root for ModuleData");
            }
            var schema          = PhysicalRoot.Schema;
            var fieldContainers = containerBase.DescendantsAndSelf().OfType <FieldContainer>().ToList();

            // First populate the containers
            var fieldMap = new SortedDictionary <FieldContainer, IReadOnlyList <IDataField> >(FieldContainer.AddressComparer);

            foreach (var fieldContainer in fieldContainers)
            {
                fieldMap[fieldContainer] = fieldContainer.Fields.ToReadOnlyList(field => DataFieldBase.CreateDataField(field, schema));
            }
            fieldsByFieldContainer = fieldMap;

            IEnumerable <DataFieldBase> allFields = fieldsByFieldContainer.SelectMany(pair => pair.Value).Cast <DataFieldBase>();

            // Now resolve fields
            foreach (var pair in fieldsByFieldContainer)
            {
                foreach (var field in pair.Value.Cast <DataFieldBase>())
                {
                    field.ResolveFields(this, pair.Key);
                }
            }

            // Reset all fields to default values.
            foreach (var pair in fieldsByFieldContainer)
            {
                foreach (var field in pair.Value)
                {
                    field.Reset();
                }
            }

            // Note: must populate this *after* containers.
            LogicalRoot = new DataTreeNode(this, logicalSchemaRoot);
        }
Exemplo n.º 24
0
        private void Open(DataTreeNode dataNode)
        {
            if (dataNode?.Data == null)
            {
                //dataNode.Toggle();
                return;
            }

            var data = dataNode.Data;

            if (_openPanels.ContainsKey(data))
            {
                _openPanels[data].Show();
                return;
            }

            if (data.GetType() == typeof(Script))
            {
                OpenEditor <ScriptEditor, Script>(dataNode);
            }
        }
Exemplo n.º 25
0
        private ModuleData(TreeNode logicalSchemaRoot)
        {
            var schema          = logicalSchemaRoot.Container.Schema;
            var fieldContainers = logicalSchemaRoot.DescendantFieldContainers().ToList();

            originalSegmentsByFieldContainer = new Dictionary <FieldContainer, DataSegment>();

            // First populate the containers
            var fieldMap = new SortedDictionary <FieldContainer, IReadOnlyList <IDataField> >(FieldContainer.AddressComparer);

            foreach (var fieldContainer in fieldContainers)
            {
                fieldMap[fieldContainer] = fieldContainer.Fields.ToReadOnlyList(field => DataFieldBase.CreateDataField(field, schema));
                originalSegmentsByFieldContainer[fieldContainer] = new DataSegment(fieldContainer.Address, new byte[fieldContainer.Size]);
            }
            fieldsByFieldContainer = fieldMap;

            IEnumerable <DataFieldBase> allFields = fieldsByFieldContainer.SelectMany(pair => pair.Value).Cast <DataFieldBase>();

            // Now resolve fields
            foreach (var pair in fieldsByFieldContainer)
            {
                foreach (var field in pair.Value.Cast <DataFieldBase>())
                {
                    field.ResolveFields(this, pair.Key);
                }
            }

            // Reset all fields to default values.
            foreach (var pair in fieldsByFieldContainer)
            {
                foreach (var field in pair.Value)
                {
                    field.Reset();
                }
            }

            // Note: must populate this *after* containers.
            LogicalRoot = new DataTreeNode(this, logicalSchemaRoot);
        }
Exemplo n.º 26
0
        private void treeDataDoldur()
        {
            treeView1.Nodes.Clear();
            String    Sequel      = "SELECT PARAMETRE_ID,SEVIYE_ADI,UST_SEVIYE_ID, SEVIYE FROM PARAMETRE WHERE UST_SEVIYE_ID=0 AND AKTIF=1 ORDER BY SEVIYE_ADI";
            DataTable ParametreDt = new DataTable();

            ParametreDt = manager.BasitSorguDT(Sequel, analizConStr);
            foreach (DataRow dr in ParametreDt.Rows)
            {
                int    parametreId = int.Parse(dr["PARAMETRE_ID"].ToString());
                string seviyeAdi   = dr["SEVIYE_ADI"].ToString();
                int    ustSeviyeId = int.Parse(dr["UST_SEVIYE_ID"].ToString());
                int    seviye      = int.Parse(dr["SEVIYE"].ToString());
                int    isParent    = 1;

                ParametreSanal parametreSanal = new ParametreSanal(parametreId, seviyeAdi, ustSeviyeId, seviye, isParent);
                DataTreeNode   node1          = new DataTreeNode(parametreSanal);
                treeView1.Nodes.Add(node1);
                PopulateTreeView(Convert.ToInt32(dr["PARAMETRE_ID"].ToString()), node1);
            }
            treeView1.LineColor = Color.Teal;
            treeView1.CollapseAll();
            //treeView1.ExpandAll();
        }
Exemplo n.º 27
0
 private void SetIcon(DataTreeNode node, int index)
 {
     node.ImageIndex         = index;
     node.StateImageIndex    = index;
     node.SelectedImageIndex = index;
 }
			public object Clone ()
			{
				DataTreeNode result = new DataTreeNode (AddBufferOffset, Length);
				result.TotalLength = TotalLength;
				return result;
			}
Exemplo n.º 29
0
        public void AssignTree(DockPanel panel, TreeView treeView, TreeView filter, Control bar, Control bar2)
        {
            _dockPanel = panel;
            _bar       = bar;
            _bar2      = bar2;

            MoveBar(-10000, 0);

            _dockPanel.ActivePaneChanged += (sender, args) => { Save(false, true); };

            treeView.Nodes.Clear();

            treeView.LabelEdit = true;

            treeView.BeforeLabelEdit += (sender, args) =>
            {
                var node = args.Node;

                if (node == null)
                {
                    return;
                }

                if (node is DataTreeNode dataNode)
                {
                    if (!dataNode.IsEditable)
                    {
                        args.CancelEdit = true;
                    }
                }
            };

            treeView.AfterLabelEdit += (sender, args) =>
            {
                if (args.Label == null || args.Label.Trim() == string.Empty)
                {
                    args.CancelEdit = true;
                    return;
                }

                var node = args.Node;

                if (node == null)
                {
                    return;
                }

                if (node is DataTreeNode dataNode)
                {
                    if (!dataNode.IsEditable)
                    {
                        args.CancelEdit = true;
                        return;
                    }

                    dataNode.Text = args.Label;

                    if (dataNode.Data != null)
                    {
                        if (_openPanels.ContainsKey(dataNode.Data))
                        {
                            _openPanels[dataNode.Data].Text = dataNode.Text;
                        }
                    }

                    Save(false, true);
                }
            };

            treeView.DoubleClick += (sender, args) =>
            {
                var node = treeView.SelectedNode;

                if (node == null)
                {
                    return;
                }

                if (node is DataTreeNode dataNode)
                {
                    Open(dataNode);
                }
            };

            filter.DoubleClick += (sender, args) =>
            {
                var node = filter.SelectedNode;

                if (node == null)
                {
                    return;
                }

                if (node is DataTreeNode dataNode)
                {
                    Open(dataNode);
                }
            };

            treeView.AllowDrop = true;

            treeView.ItemDrag += (sender, args) =>
            {
                if (((DataTreeNode)args.Item).IsMovable)
                {
                    treeView.DoDragDrop(args.Item, DragDropEffects.Move);
                }
            };

            treeView.DragEnter += (sender, args) => { args.Effect = DragDropEffects.Move; };

            treeView.DragOver += (sender, args) =>
            {
                var target      = treeView.PointToClient(new Point(args.X, args.Y));
                var targetNode  = (DataTreeNode)treeView.GetNodeAt(target);
                var draggedNode = (DataTreeNode)args.Data.GetData(typeof(DataTreeNode));
                var buffer      = 6;

                if (targetNode == null)
                {
                    return;
                }

                var targetNodePosition = targetNode.Bounds;

                if (hovered != null && hovered != targetNode)
                {
                    hovered.BackColor = Color.White;
                    hovered.ForeColor = Color.Black;
                }

                if (targetNode.Parent == null ||
                    targetNode.Parent != null && targetNode.Data != null &&
                    targetNode.Data.GetType() == typeof(GameProperties))
                {
                    MoveBar(-10000, 0);
                    return;
                }

                targetNode.BackColor = SystemColors.Highlight;
                targetNode.ForeColor = SystemColors.HighlightText;

                if (target.Y < targetNodePosition.Top + buffer)
                {
                    // move above
                    MoveBar(targetNodePosition.Top, targetNodePosition.Left);
                }
                else if (target.Y > targetNodePosition.Bottom - buffer)
                {
                    // move below
                    MoveBar(targetNodePosition.Bottom, targetNodePosition.Left);
                }
                else
                {
                    if (CanDropInto(targetNode, draggedNode))
                    {
                        MoveBar(targetNodePosition.Top, targetNodePosition.Left, true, treeView.ItemHeight);
                    }
                    else
                    {
                        MoveBar(-10000, 0);
                    }
                }

                hovered = targetNode;
            };

            treeView.DragDrop += (sender, args) =>
            {
                var target      = treeView.PointToClient(new Point(args.X, args.Y));
                var targetNode  = (DataTreeNode)treeView.GetNodeAt(target);
                var draggedNode = (DataTreeNode)args.Data.GetData(typeof(DataTreeNode));

                if (targetNode == null)
                {
                    return;
                }

                var targetNodePosition = targetNode.Bounds;
                var buffer             = 6;

                MoveBar(-10000, 0);

                if (hovered != null)
                {
                    hovered.BackColor = Color.White;
                    hovered.ForeColor = Color.Black;
                }

                if (targetNode != null)
                {
                    targetNode.BackColor = Color.White;
                    targetNode.ForeColor = Color.Black;
                }

                if (draggedNode != null)
                {
                    draggedNode.BackColor = Color.White;
                    draggedNode.ForeColor = Color.Black;
                }

                if (!(!draggedNode.Equals(targetNode) && targetNode != null))
                {
                    return;
                }

                if (!draggedNode.IsMovable)
                {
                    return;
                }

                if (target.Y < targetNodePosition.Top + buffer)
                {
                    // do not allow moving above properties
                    if (targetNode.Parent != null && targetNode.Data != null &&
                        targetNode.Data.GetType() == typeof(GameProperties))
                    {
                        return;
                    }

                    // move above
                    if (targetNode.Parent != null)
                    {
                        draggedNode.Remove();
                        targetNode.Parent.Nodes.Insert(targetNode.Index, draggedNode);
                    }
                }
                else if (target.Y > targetNodePosition.Bottom - buffer)
                {
                    // move below
                    if (targetNode.Parent != null)
                    {
                        draggedNode.Remove();
                        targetNode.Parent.Nodes.Insert(targetNode.Index + 1, draggedNode);
                    }
                }
                else
                {
                    if (!CanDropInto(targetNode, draggedNode))
                    {
                        return;
                    }

                    draggedNode.Remove();
                    targetNode.Nodes.Add(draggedNode);
                    targetNode.Expand();
                }

                Save(false, true);
            };

            var imageList = new ImageList();

            imageList.Images.Add(Resources.SourceConrolFolder_16x);
            imageList.Images.Add(Resources.FolderClosed_16x);
            imageList.Images.Add(Resources.FolderOpened_16x);
            imageList.Images.Add(Resources.Settings_16x);
            imageList.Images.Add(Resources.Script_16x);

            treeView.ImageList = imageList;

            treeView.AfterExpand   += UpdateIcon;
            treeView.AfterCollapse += UpdateIcon;

            treeView.Nodes.Add(_rootNode);
            _rootNode.Expand();

            SetIcons(_rootNode);
        }
Exemplo n.º 30
0
        protected override async Task <int> InvokeAsync(InvocationContext context, IStandardStreamWriter console, DeviceController device)
        {
            var kit                   = context.ParseResult.ValueForOption <int>("kit");
            var triggerRoot           = device.Schema.GetTriggerRoot(kit, trigger: 1);
            var deviceData            = ModuleData.FromLogicalRootNode(triggerRoot);
            var modelData             = ModuleData.FromLogicalRootNode(triggerRoot);
            var defaultValuesSnapshot = modelData.CreateSnapshot();

            var deviceDataRoot = new DataTreeNode(deviceData, triggerRoot);
            await device.LoadDescendants(deviceDataRoot, targetAddress : null, progressHandler : null, CancellationToken.None);

            var originalSnapshot     = deviceData.CreateSnapshot();
            var instrumentField      = device.Schema.GetMainInstrumentField(kit, trigger: 1);
            var modelInstrumentField = (InstrumentDataField)modelData.GetDataField(instrumentField);

            var instrumentContainers = triggerRoot.DescendantFieldContainers();

            var differences = new List <Difference>();
            var logger      = new ConsoleLogger(console);

            try
            {
                // Reset the device to an empty snapshot
                deviceData.LoadSnapshot(defaultValuesSnapshot, logger);
                await device.SaveDescendants(deviceDataRoot, targetAddress : null, progressHandler : null, CancellationToken.None);

                foreach (var instrument in device.Schema.PresetInstruments)
                {
                    // Make the change on the real module and load the data.
                    // Assumption: the segment containing the instrument itself (e.g. KitPadInst) doesn't
                    // have any implicit model changes to worry about.
                    await device.SetInstrumentAsync(kit, trigger : 1, instrument, CancellationToken.None);

                    await device.LoadDescendants(deviceDataRoot, targetAddress : null, progressHandler : null, CancellationToken.None);

                    // Make the change in the model.
                    modelData.LoadSnapshot(defaultValuesSnapshot, logger);
                    modelInstrumentField.Instrument = instrument;

                    // Compare the two.
                    bool anyDifferences = false;
                    foreach (var container in instrumentContainers)
                    {
                        // We won't compare InstrumentDataField, TempoDataField or StringDataField this way, but that's okay.
                        var realFields  = deviceData.GetDataFields(container).SelectMany(ExpandOverlays).OfType <NumericDataFieldBase>().ToList();
                        var modelFields = modelData.GetDataFields(container).SelectMany(ExpandOverlays).OfType <NumericDataFieldBase>().ToList();
                        if (realFields.Count != modelFields.Count)
                        {
                            console.WriteLine($"Major failure: for instrument {instrument.Id} ({instrument.Group} / {instrument.Name}), found {realFields.Count} real fields and {modelFields.Count} model fields in container {container.Path}");
                            return(1);
                        }

                        foreach (var pair in realFields.Zip(modelFields))
                        {
                            var real  = pair.First;
                            var model = pair.Second;
                            if (real.SchemaField != model.SchemaField)
                            {
                                console.WriteLine($"Major failure: for instrument {instrument.Id} ({instrument.Group} / {instrument.Name}), mismatched schema field for {container.Path}: {real.SchemaField.Name} != {model.SchemaField.Name}");
                                return(1);
                            }
                            var realValue      = real.RawValue;
                            var predictedValue = model.RawValue;
                            if (realValue != predictedValue)
                            {
                                anyDifferences = true;
                                differences.Add(new Difference(instrument, container, real.SchemaField, realValue, predictedValue));
                            }
                        }
                    }
                    console.Write(anyDifferences ? "!" : ".");
                }
            }
            finally
            {
                // Restore the original data
                deviceData.LoadSnapshot(originalSnapshot, logger);
                await device.SaveDescendants(deviceDataRoot, targetAddress : null, progressHandler : null, CancellationToken.None);
            }
            console.WriteLine();
            foreach (var difference in differences)
            {
                console.WriteLine(difference.ToString());
            }
            console.WriteLine($"Total differences: {differences.Count}");
            return(0);

            IEnumerable <IDataField> ExpandOverlays(IDataField field) =>
            field is OverlayDataField odf ? odf.CurrentFieldList.Fields : Enumerable.Repeat(field, 1);
        }
Exemplo n.º 31
0
        private void treeDataDoldur()
        {
            treeView1.Nodes.Clear();
            String Sequel = "";

            if (Manager.NodTasi == null)
            {
                Sequel = "SELECT PARAMETRE_ID,SEVIYE_ADI,UST_SEVIYE_ID, SEVIYE FROM PARAMETRE WHERE UST_SEVIYE_ID=0 AND AKTIF=1 ORDER BY SEVIYE_ADI";
            }
            else
            {
                bool   arama = true;
                string yol   = "";
                arananYol = "";
                string    sorgu  = "";
                DataTable yolSor = new DataTable();

                sorgu = "SELECT * FROM PARAMETRE WHERE PARAMETRE_ID=" + Manager.NodTasi.ToString();

                yolSor = manager.BasitSorguDT(sorgu, analizConStr);

                if (yolSor == null || yolSor.Rows.Count == 0)
                {
                    MessageBox.Show("Yol Değerine Ait Bir Tanım Bulunamadı!");
                    Manager.NodTasi = null;
                    this.Dispose();
                    return;
                }

                yol       = yolSor.Rows[0]["PARAMETRE_ID"].ToString();
                arananYol = yolSor.Rows[0]["SEVIYE_ADI"].ToString();

                if (yolSor.Rows[0]["UST_SEVIYE_ID"].ToString() != "0")
                {
                    do
                    {
                        sorgu     = "SELECT * FROM PARAMETRE WHERE PARAMETRE_ID=" + yolSor.Rows[0]["UST_SEVIYE_ID"].ToString();
                        yolSor    = manager.BasitSorguDT(sorgu, analizConStr);
                        arananYol = yolSor.Rows[0]["SEVIYE_ADI"].ToString() + @"\" + arananYol;
                        if (yolSor.Rows[0]["UST_SEVIYE_ID"].ToString() == "0")
                        {
                            yol   = yolSor.Rows[0]["PARAMETRE_ID"].ToString();
                            arama = false;
                        }
                    } while (arama);
                }
                Sequel = "SELECT PARAMETRE_ID,SEVIYE_ADI,UST_SEVIYE_ID, SEVIYE FROM PARAMETRE WHERE PARAMETRE_ID=" + yol + " AND UST_SEVIYE_ID=0 AND AKTIF=1 ORDER BY SEVIYE_ADI";
            }
            DataTable dt = new DataTable();

            dt = manager.BasitSorguDT(Sequel, analizConStr);
            foreach (DataRow dr in dt.Rows)
            {
                int    parametreId = int.Parse(dr["PARAMETRE_ID"].ToString());
                string seviyeAdi   = dr["SEVIYE_ADI"].ToString();
                int    ustSeviyeId = int.Parse(dr["UST_SEVIYE_ID"].ToString());
                int    seviye      = int.Parse(dr["SEVIYE"].ToString());
                int    isParent    = 1;

                ParametreSanal parametreSanal = new ParametreSanal(parametreId, seviyeAdi, ustSeviyeId, seviye, isParent);
                DataTreeNode   node1          = new DataTreeNode(parametreSanal);
                treeView1.Nodes.Add(node1);
                PopulateTreeView(Convert.ToInt32(dr["PARAMETRE_ID"].ToString()), node1);
            }
            treeView1.LineColor = Color.Teal;
            nodeBul(arananYol);
            //treeView1.CollapseAll();
            //treeView1.ExpandAll();
        }