string GetNameFromType(Constant.NodeTypeDefine type) { string name = ""; switch (type) { case Constant.NodeTypeDefine.dict: name = "dict"; break; case Constant.NodeTypeDefine.text: name = "string"; break; case Constant.NodeTypeDefine.number: name = "number"; break; case Constant.NodeTypeDefine.boolean: name = "bool"; break; case Constant.NodeTypeDefine.array: name = "array"; break; case Constant.NodeTypeDefine.datetime: name = "datetime"; break; default: break; } return(name); }
private void btnApplyType_Click(object sender, EventArgs e) { if (cmbBoxNodeType.SelectedIndex < 0) { return; } if (treeViewAdvControl.SelectedNode == null) { ShowErrorMsg(CDefines.GetDStr("NothingSelected")); return; } Constant.NodeTypeDefine newtype = GetTypeFromName(cmbBoxNodeType.SelectedItem.ToString()); PlistNodeData data = GetNodeData(treeViewAdvControl.SelectedNode); if (data.nodeType == newtype) { return; } object oldvalue = data.GetOldValue(); data.nodeType = newtype; data.SetNewValue(oldvalue); RefreshEditPanel(); RefreshTreeIcon(newtype); }
Node AddNodeAndValue(Node parent, string nodename, object nodevalue) { if (string.IsNullOrEmpty(nodename)) { new Exception("node name can not be empty!"); } Node nodeAdded = null; if (parent != null) { PlistNodeData data = parent.Tag as PlistNodeData; if (!CheckAddNodePossible(data.nodeType)) { ShowErrorMsg(CDefines.GetDStr("AddChildFailure")); return(null); } nodeAdded = AddChild(parent, nodename); } else { nodeAdded = AddRoot(nodename); } Constant.NodeTypeDefine itemtype = GetItemTypeByValue(nodevalue); PlistNodeData nodedata = InitNodeData(itemtype, nodename); nodedata.SetNewValue(nodevalue); nodeAdded.Tag = nodedata; nodeAdded.Image = imageListToolbar.Images[nodedata.nodeType.ToString()]; haveUnsavedChanges = true; return(nodeAdded); }
private PlistNodeData InitNodeData(Constant.NodeTypeDefine nodetype, string key) { PlistNodeData data = new PlistNodeData(); data.nodeType = nodetype; data.key = key; return(data); }
bool CheckAddNodePossible(Constant.NodeTypeDefine selectedType) { if (selectedType == Constant.NodeTypeDefine.dict || selectedType == Constant.NodeTypeDefine.array) { return(true); } return(false); }
private void treeViewAdvControl_DragDrop(object sender, DragEventArgs e) { TreeViewAdv _tree = treeViewAdvControl; _tree.BeginUpdate(); TreeNodeAdv[] nodes = (TreeNodeAdv[])e.Data.GetData(typeof(TreeNodeAdv[])); Node dropNode = _tree.DropPosition.Node.Tag as Node; if (_tree.DropPosition.Position == NodePosition.Inside) { Constant.NodeTypeDefine nodetype = (dropNode.Tag as PlistNodeData).nodeType; if (nodetype == Constant.NodeTypeDefine.array || nodetype == Constant.NodeTypeDefine.dict) { foreach (TreeNodeAdv n in nodes) { (n.Tag as Node).Parent = dropNode; } _tree.DropPosition.Node.IsExpanded = true; } } else { Node parent = dropNode.Parent; Node nextItem = dropNode; if (_tree.DropPosition.Position == NodePosition.After) { nextItem = dropNode.NextNode; } foreach (TreeNodeAdv node in nodes) { (node.Tag as Node).Parent = null; } int index = -1; index = parent.Nodes.IndexOf(nextItem); foreach (TreeNodeAdv node in nodes) { Node item = node.Tag as Node; if (index == -1) { parent.Nodes.Add(item); } else { parent.Nodes.Insert(index, item); index++; } } } _tree.EndUpdate(); }
Constant.NodeTypeDefine GetTypeFromName(string name) { Constant.NodeTypeDefine nodetype = Constant.NodeTypeDefine.unknown; switch (name) { case "dict": nodetype = Constant.NodeTypeDefine.dict; break; case "string": nodetype = Constant.NodeTypeDefine.text; break; case "number": case "integer": case "real": nodetype = Constant.NodeTypeDefine.number; break; case "bool": nodetype = Constant.NodeTypeDefine.boolean; break; case "array": nodetype = Constant.NodeTypeDefine.array; break; case "datetime": case "date": nodetype = Constant.NodeTypeDefine.datetime; break; default: nodetype = Constant.NodeTypeDefine.unknown; break; } return(nodetype); }
private Node DataParser(string key, XElement xe, Node parent = null) { Node nodeAdded = parent == null?AddRoot(key) : AddChild(parent, key); Constant.NodeTypeDefine nodetype = GetTypeFromName(xe.Name.LocalName); string temp = xe.Name.LocalName.ToLower(); if (temp == "true" || temp == "false") { nodetype = Constant.NodeTypeDefine.boolean; } PlistNodeData data = InitNodeData(nodetype, key); switch (nodetype) { case Constant.NodeTypeDefine.boolean: data.value_bool = Convert.ToBoolean(xe.Name.LocalName); break; case Constant.NodeTypeDefine.number: data.value_number = Convert.ToDouble(xe.Value); break; case Constant.NodeTypeDefine.text: data.value_string = xe.Value; break; case Constant.NodeTypeDefine.datetime: data.value_date = Convert.ToDateTime(xe.Value); break; default: break; } nodeAdded.Tag = data; nodeAdded.Image = imageListToolbar.Images[data.nodeType.ToString()]; return(nodeAdded); }
private void ImportCSV(Node parent, Constant.NodeTypeDefine parenttype) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "(CSV 逗号分隔文件)|*.csv"; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { CsvLib.CsvStreamReader csvreader = new CsvLib.CsvStreamReader(dlg.FileName, Encoding.Default); if (parent == null) { ImportCSVAsDict(csvreader); return; } if (parenttype == Constant.NodeTypeDefine.array) { ImportCSVAsArray(csvreader, parent); } else if (parenttype == Constant.NodeTypeDefine.dict) { ImportCSVAsDict(csvreader); } } }
private PlistNodeData InitNodeData(string nodename) { Constant.NodeTypeDefine nodetype = GetTypeFromName(nodename); return(InitNodeData(nodetype, nodename)); }
private void RefreshTreeIcon(Constant.NodeTypeDefine nodeType) { Node nodeSelected = (treeViewAdvControl.SelectedNode.Tag as Node); nodeSelected.Image = imageListToolbar.Images[nodeType.ToString()]; }