Beispiel #1
0
 private bool SaveTransparentGif(Bitmap bitmap, IFolderProjectItem folder, string name, ref bool overwrite)
 {
     System.Drawing.Image image = ReduceColors(bitmap, 0x100, 5, this._imageInfo.TransparentColor);
     try
     {
         MemoryStream stream = new MemoryStream();
         image.Save(stream, ImageFormat.Gif);
         stream.Flush();
         stream.Capacity = (int)stream.Length;
         folder.AddDocument(name, stream.GetBuffer());
     }
     finally
     {
         image.Dispose();
     }
     return(false);
 }
                GetStandardValues(ITypeDescriptorContext context)
                {
                    MyList          myList = (MyList)context.Instance;
                    IWebApplication webApp =
                        (IWebApplication)myList._parent.Component.Site.GetService(
                            typeof(IWebApplication));

                    ArrayList          xmlFiles = new ArrayList();
                    IFolderProjectItem rootItem =
                        (IFolderProjectItem)webApp.RootProjectItem;

                    foreach (IProjectItem item in rootItem.Children)
                    {
                        if (String.Equals(Path.GetExtension(item.Name),
                                          ".xml",
                                          StringComparison.CurrentCultureIgnoreCase))
                        {
                            xmlFiles.Add(item.Name);
                        }
                    }

                    return(new StandardValuesCollection(xmlFiles));
                }
Beispiel #3
0
        private void OnOKButtonClick(object sender, EventArgs e)
        {
            System.Drawing.Image defaultPlusImage;
            string str = this._folderNameTextBox.Text.Trim();

            if (str.Length == 0)
            {
                UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_MissingFolderName"));
                return;
            }
            if (str.IndexOfAny(Path.GetInvalidPathChars()) != -1)
            {
                UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidFolderName", new object[] { str }));
                return;
            }
            IWebApplication service = (IWebApplication)this._treeView.Site.GetService(typeof(IWebApplication));

            if (service == null)
            {
                UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_ErrorWriting"));
                return;
            }
            IFolderProjectItem rootProjectItem    = (IFolderProjectItem)service.RootProjectItem;
            IProjectItem       projectItemFromUrl = service.GetProjectItemFromUrl(Path.Combine("~/", str));

            if ((projectItemFromUrl != null) && !(projectItemFromUrl is IFolderProjectItem))
            {
                UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_DocumentExists", new object[] { str }));
                return;
            }
            IFolderProjectItem folder = (IFolderProjectItem)projectItemFromUrl;

            if (folder == null)
            {
                if (UIServiceHelper.ShowMessage(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_NonExistentFolderName", new object[] { str }), System.Design.SR.GetString("TreeViewImageGenerator_Title"), MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    try
                    {
                        folder = rootProjectItem.AddFolder(str);
                        goto Label_015A;
                    }
                    catch
                    {
                        UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_ErrorCreatingFolder", new object[] { str }));
                    }
                }
                return;
            }
Label_015A:
            defaultPlusImage = this._imageInfo.ExpandImage;
            if (defaultPlusImage == null)
            {
                defaultPlusImage = this.DefaultPlusImage;
            }
            System.Drawing.Image collapseImage = this._imageInfo.CollapseImage;
            if (collapseImage == null)
            {
                collapseImage = this.DefaultMinusImage;
            }
            System.Drawing.Image noExpandImage = this._imageInfo.NoExpandImage;
            int width = this._imageInfo.Width;

            if (width < 1)
            {
                UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidValue", new object[] { "Width" }));
            }
            else
            {
                int height = this._imageInfo.Height;
                if (height < 1)
                {
                    UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidValue", new object[] { "Height" }));
                }
                else
                {
                    int lineWidth = this._imageInfo.LineWidth;
                    if (lineWidth < 1)
                    {
                        UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_InvalidValue", new object[] { "LineWidth" }));
                    }
                    else
                    {
                        int   lineStyle = (int)this._imageInfo.LineStyle;
                        Color lineColor = this._imageInfo.LineColor;
                        this._progressBar.Value        = 0;
                        this._progressBar.Visible      = true;
                        this._progressBarLabel.Visible = true;
                        try
                        {
                            bool     overwrite = false;
                            bool     flag2     = false;
                            Bitmap   image     = new Bitmap(width, height);
                            Graphics g         = Graphics.FromImage(image);
                            g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height);
                            this.RenderImage(g, 0, 0, width, height, 'i', lineStyle, lineWidth, lineColor, null);
                            string name = "i.gif";
                            flag2 |= this.SaveTransparentGif(image, folder, "i.gif", ref overwrite);
                            this._progressBar.Value++;
                            string str3 = "-rtl ";
                            for (int i = 0; i < str3.Length; i++)
                            {
                                image = new Bitmap(width, height);
                                g     = Graphics.FromImage(image);
                                g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height);
                                this.RenderImage(g, 0, 0, width, height, str3[i], lineStyle, lineWidth, lineColor, collapseImage);
                                g.Dispose();
                                name = "minus.gif";
                                if (str3[i] == '-')
                                {
                                    name = "dash" + name;
                                }
                                else if (str3[i] != ' ')
                                {
                                    name = str3[i] + name;
                                }
                                flag2 |= this.SaveTransparentGif(image, folder, name, ref overwrite);
                                this._progressBar.Value++;
                            }
                            for (int j = 0; j < str3.Length; j++)
                            {
                                image = new Bitmap(width, height);
                                g     = Graphics.FromImage(image);
                                g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height);
                                this.RenderImage(g, 0, 0, width, height, str3[j], lineStyle, lineWidth, lineColor, defaultPlusImage);
                                g.Dispose();
                                name = "plus.gif";
                                if (str3[j] == '-')
                                {
                                    name = "dash" + name;
                                }
                                else if (str3[j] != ' ')
                                {
                                    name = str3[j] + name;
                                }
                                flag2 |= this.SaveTransparentGif(image, folder, name, ref overwrite);
                                this._progressBar.Value++;
                            }
                            for (int k = 0; k < str3.Length; k++)
                            {
                                image = new Bitmap(width, height);
                                g     = Graphics.FromImage(image);
                                g.FillRectangle(new SolidBrush(this._imageInfo.TransparentColor), 0, 0, width, height);
                                this.RenderImage(g, 0, 0, width, height, str3[k], lineStyle, lineWidth, lineColor, noExpandImage);
                                g.Dispose();
                                name = ".gif";
                                if (str3[k] == '-')
                                {
                                    name = "dash" + name;
                                }
                                else if (str3[k] == ' ')
                                {
                                    name = "noexpand" + name;
                                }
                                else
                                {
                                    name = str3[k] + name;
                                }
                                flag2 |= this.SaveTransparentGif(image, folder, name, ref overwrite);
                                this._progressBar.Value++;
                            }
                            this._progressBar.Visible      = false;
                            this._progressBarLabel.Visible = false;
                            if (flag2)
                            {
                                UIServiceHelper.ShowMessage(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_LineImagesGenerated", new object[] { str }));
                            }
                        }
                        catch
                        {
                            this._progressBar.Visible      = false;
                            this._progressBarLabel.Visible = false;
                            UIServiceHelper.ShowError(base.ServiceProvider, System.Design.SR.GetString("TreeViewImageGenerator_ErrorWriting", new object[] { str }));
                            return;
                        }
                        this._treeView.LineImagesFolder = "~/" + str;
                        base.DialogResult = DialogResult.OK;
                        base.Close();
                    }
                }
            }
        }
 private bool SaveTransparentGif(Bitmap bitmap, IFolderProjectItem folder, string name, ref bool overwrite)
 {
     System.Drawing.Image image = ReduceColors(bitmap, 0x100, 5, this._imageInfo.TransparentColor);
     try
     {
         MemoryStream stream = new MemoryStream();
         image.Save(stream, ImageFormat.Gif);
         stream.Flush();
         stream.Capacity = (int) stream.Length;
         folder.AddDocument(name, stream.GetBuffer());
     }
     finally
     {
         image.Dispose();
     }
     return false;
 }