/// <summary> /// Cette méthode vérifie si le presse-papier contient un type de donnés et /// renvoie un objet de ce type /// </summary> /// <param name="format">Le format du type de données</param> /// <returns>L'objet présent dans le presse-papiers</returns> public static List <Domain.IHierarchyObject> GetHierarchyObject(string format) { List <Domain.IHierarchyObject> copiedElements = new List <Domain.IHierarchyObject>(0); if (format == null) { return(copiedElements); } if (System.Windows.Clipboard.ContainsData(format)) { try { if (System.Windows.Clipboard.GetData(format) is IList) { copiedElements = (List <Domain.IHierarchyObject>)System.Windows.Clipboard.GetData(format); } else { copiedElements.Add(System.Windows.Clipboard.GetData(format) as Domain.IHierarchyObject); } return(copiedElements); } catch (Exception) { Kernel.Util.MessageDisplayer.DisplayError("Error copy", "Unable to paste " + format.Split('.')[1]); return(null); } } else if (System.Windows.Clipboard.ContainsText()) { string name = System.Windows.Clipboard.GetText(); if (format.Equals(GROUP_CLIPBOARD_FORMAT)) { foreach (string copies in ExcelCellsCopies(name)) { Domain.BGroup group = new Domain.BGroup(); group.name = copies; group.subjectType = Domain.SubjectType.DEFAULT.label; copiedElements.Add(group as Domain.BGroup); } return(copiedElements); } if (format.Equals(ATTRIBUTE_CLIPBOARD_FORMAT)) { List <String> listeResult = ExcelCellsCopies(name); if (listeResult[0] == IS_PARENT_CHILD_MODE) { listeResult.RemoveAt(0); } foreach (string copies in listeResult) { Domain.Attribute attribute = new Domain.Attribute(); attribute.name = copies; copiedElements.Add(attribute as Domain.Attribute); } return(copiedElements); } if (format.Equals(ATTRIBUTE_VALUE_CLIPBOARD_FORMAT)) { Kernel.Domain.AttributeValue parent = null; List <String> listeResult = ExcelCellsCopies(name); if (listeResult == null) { return(null); } if (listeResult[0] == IS_PARENT_CHILD_MODE) { parent = new Domain.AttributeValue() { name = listeResult[1] }; listeResult.RemoveAt(0); listeResult.RemoveAt(0); } foreach (string copies in listeResult) { Domain.AttributeValue value = new Domain.AttributeValue(); value.name = copies; if (parent != null) { parent.AddChild(value as Domain.AttributeValue); } else { copiedElements.Add(value as Domain.AttributeValue); } } if (parent != null) { copiedElements.Add(parent as Domain.AttributeValue); } return(copiedElements); // List<String> listeResult = ExcelGetCellsCopies(name); // List<Kernel.Domain.AttributeValue> Liste = ExcelGetCellsCopies(name, ATTRIBUTE_VALUE_CLIPBOARD_FORMAT); //if (listeResult == null) return null; //if (listeResult[0] == IS_PARENT_CHILD_MODE) //{ // parent = new Domain.AttributeValue() // { // name = listeResult[1] // }; // listeResult.RemoveAt(0); // listeResult.RemoveAt(0); //} //foreach (string copies in listeResult) //{ // Domain.AttributeValue value = new Domain.AttributeValue(); // value.name = copies; // if (parent != null) parent.AddChild(value as Domain.AttributeValue); // else copiedElements.Add(value as Domain.AttributeValue); //} //if (parent != null) copiedElements.Add(parent as Domain.AttributeValue); //return copiedElements; } } return(null); }
public static List <Object> GetTextDatas(string format) { List <Object> datas = new List <Object>(0); if (format != null && System.Windows.Clipboard.ContainsText()) { string name = System.Windows.Clipboard.GetText(); if (format.Equals(GROUP_CLIPBOARD_FORMAT)) { foreach (string copies in ExcelCellsCopies(name)) { Domain.BGroup group = new Domain.BGroup(); group.name = copies; group.subjectType = Domain.SubjectType.DEFAULT.label; datas.Add(group as Domain.BGroup); } } else if (format.Equals(MEASURE_CLIPBOARD_FORMAT)) { Kernel.Domain.Measure parent = null; List <String> listeResult = ExcelCellsCopies(name); if (listeResult == null) { return(null); } if (listeResult[0] == IS_PARENT_CHILD_MODE) { parent = new Domain.Measure() { name = listeResult[1] }; listeResult.RemoveAt(0); listeResult.RemoveAt(0); } foreach (string copies in listeResult) { Domain.Measure value = new Domain.Measure(); value.name = copies.Trim(); if (parent != null) { parent.AddChild(value as Domain.Measure); } else { datas.Add(value as Domain.Measure); } } if (parent != null) { datas.Add(parent as Domain.Measure); } } else if (format.Equals(ATTRIBUTE_CLIPBOARD_FORMAT)) { List <String> listeResult = ExcelCellsCopies(name); if (listeResult[0] == IS_PARENT_CHILD_MODE) { listeResult.RemoveAt(0); } foreach (string copies in listeResult) { Domain.Attribute attribute = new Domain.Attribute(); attribute.name = copies; datas.Add(attribute as Domain.Attribute); } } else if (format.Equals(ATTRIBUTE_VALUE_CLIPBOARD_FORMAT)) { Kernel.Domain.AttributeValue parent = null; List <String> listeResult = ExcelCellsCopies(name); if (listeResult == null) { return(null); } if (listeResult[0] == IS_PARENT_CHILD_MODE) { parent = new Domain.AttributeValue() { name = listeResult[1] }; listeResult.RemoveAt(0); listeResult.RemoveAt(0); } foreach (string copies in listeResult) { Domain.AttributeValue value = new Domain.AttributeValue(); value.name = copies; if (parent != null) { parent.AddChild(value as Domain.AttributeValue); } else { datas.Add(value as Domain.AttributeValue); } } if (parent != null) { datas.Add(parent as Domain.AttributeValue); } } } return(datas); }