예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
        }