示例#1
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider,
                                         object value)
        {
            if ((context == null) || (provider == null))
            {
                return(base.EditValue(context, provider, value));
            }

            // Access the Property Browser's UI display service
            IWindowsFormsEditorService editorService =
                (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (editorService == null)
            {
                return(base.EditValue(context, provider, value));
            }

            // Create an instance of the UI editor form
            IReportItem iri = context.Instance as IReportItem;

            if (iri == null)
            {
                return(base.EditValue(context, provider, value));
            }
            PropertyReportItem pre = iri.GetPRI();

            string[]           names;
            PropertyBackground pb = value as PropertyBackground;

            if (pb != null)
            {
                names = pb.Names;
            }
            else
            {
                PropertyBackgroundImage pbi = value as PropertyBackgroundImage;
                if (pbi == null)
                {
                    return(base.EditValue(context, provider, value));
                }
                names = pbi.Names;
            }

            using (SingleCtlDialog scd = new SingleCtlDialog(pre.DesignCtl, pre.Draw, pre.Nodes,
                                                             SingleCtlTypeEnum.BackgroundCtl, names))
            {
                // Display the UI editor dialog
                if (editorService.ShowDialog(scd) == DialogResult.OK)
                {
                    // Return the new property value from the UI editor form
                    return(new PropertyBackground(pre));
                }

                return(base.EditValue(context, provider, value));
            }
        }
        internal PropertyBackground(PropertyReportItem ri, params string[] names)
        {
            pri = ri;
            _names = names;

            // now build the array used to get/set values
            _subitems = new string[names.Length + 2];
            int i = 0;
            foreach (string s in names)
                _subitems[i++] = s;

            _subitems[i++] = "Style";
        }
示例#3
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider,
                                         object value)
        {
            if ((context == null) || (provider == null))
            {
                return(base.EditValue(context, provider, value));
            }

            // Access the Property Browser's UI display service
            IWindowsFormsEditorService editorService =
                (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (editorService == null)
            {
                return(base.EditValue(context, provider, value));
            }

            // Create an instance of the UI editor form
            IReportItem iri = context.Instance as IReportItem;

            if (iri == null)
            {
                return(base.EditValue(context, provider, value));
            }
            PropertyReportItem pre = iri.GetPRI();

            PropertyAction pa = value as PropertyAction;

            if (pa == null)
            {
                return(base.EditValue(context, provider, value));
            }

            SingleCtlDialog scd = new SingleCtlDialog(pre.DesignCtl, pre.Draw, pre.Nodes, SingleCtlTypeEnum.InteractivityCtl, null);

            try
            {
                // Display the UI editor dialog
                if (editorService.ShowDialog(scd) == DialogResult.OK)
                {
                    // Return the new property value from the UI editor form
                    return(new PropertyAction(pre));
                }
            }
            finally
            {
                scd.Dispose();
            }
            return(base.EditValue(context, provider, value));
        }
示例#4
0
        internal PropertyPadding(PropertyReportItem ri, params string[] names)
        {
            _pri   = ri;
            _names = names;

            // now build the array used to get/set values
            _subitems = new string[names.Length + 2];
            int i = 0;

            foreach (string s in names)
            {
                _subitems[i++] = s;
            }

            _subitems[i++] = "Style";
        }
示例#5
0
        /// <summary>
        /// Our main function.  We display the vertices of a FunkyButton as properties by creating
        /// PropertyDescriptors for each one.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="component"></param>
        /// <param name="attrs"></param>
        /// <returns></returns>
        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attrs)
        {
            PropertyReportItem pri = component as PropertyReportItem;

            // we can get things besides PropertyReportItems here.  Since we want our Point types
            // to be expandable, the PropertyGrid will still ask this PropertyTab for the properties of
            // points, so we default to the standard way of getting properties from other types of objects.
            //
            if (pri == null)
            {
                TypeConverter tc = TypeDescriptor.GetConverter(component);
                if (tc != null)
                {
                    return(tc.GetProperties(context, component, attrs));
                }
                else
                {
                    return(TypeDescriptor.GetProperties(component, attrs));
                }
            }

            _pri = pri;
            XmlNode tnode = _pri.TableNode;

            // Get the collection of properties
            PropertyDescriptorCollection pdc = new PropertyDescriptorCollection(null);

            if (tnode == null) // return empty if no table
            {
                return(pdc);
            }

            PropertyDescriptorCollection bProps =
                TypeDescriptor.GetProperties(_pri, true);

            // For each property use a property descriptor of our own that is able to
            // be globalized
            foreach (PropertyDescriptor p in bProps)
            {
                if (p.Category != "Table")
                {
                    continue;
                }
                pdc.Add(p);
            }
            return(pdc);
        }
示例#6
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider,
                                         object value)
        {
            if ((context == null) || (provider == null))
            {
                return(base.EditValue(context, provider, value));
            }

            // Access the Property Browser's UI display service
            IWindowsFormsEditorService editorService =
                (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (editorService == null)
            {
                return(base.EditValue(context, provider, value));
            }

            // Create an instance of the UI editor form
            IReportItem iri = context.Instance as IReportItem;

            if (iri == null)
            {
                return(base.EditValue(context, provider, value));
            }
            PropertyReportItem pri = iri.GetPRI();

            PropertyExpr pe = value as PropertyExpr;

            if (pe == null)
            {
                return(base.EditValue(context, provider, value));
            }

            using (DialogExprEditor de = new DialogExprEditor(pri.Draw, pe.Expression, pri.Node))
            {
                // Display the UI editor dialog
                if (editorService.ShowDialog(de) == DialogResult.OK)
                {
                    // Return the new property value from the UI editor form
                    return(new PropertyExpr(de.Expression));
                }

                return(base.EditValue(context, provider, value));
            }
        }
        internal PropertyAppearance(PropertyReportItem ri, params string[] names)
        {
            pri = ri;
            _names = names;

            // now build the array used to get/set values
            if (names != null)
            {
                _subitems = new string[names.Length + 2];
                int i = 0;
                foreach (string s in names)
                    _subitems[i++] = s;

                _subitems[i++] = "Style";
            }
            else
                _subitems = new string[] { "Style", "" };
        }
示例#8
0
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            PropertyReportItem pr = context.Instance as PropertyReportItem;

            if (pr == null)
            {
                return(base.GetStandardValues(context));
            }

            // Populate with the list of datasets
            ArrayList ar = new ArrayList();

            ar.Add("");         // add an empty string to the collection
            object[] dsn = pr.Draw.DataSetNames;
            if (dsn != null)
            {
                ar.AddRange(dsn);
            }
            return(new StandardValuesCollection(ar));
        }
        internal PropertyAppearance(PropertyReportItem ri, params string[] names)
        {
            pri    = ri;
            _names = names;

            // now build the array used to get/set values
            if (names != null)
            {
                _subitems = new string[names.Length + 2];
                int i = 0;
                foreach (string s in names)
                {
                    _subitems[i++] = s;
                }

                _subitems[i++] = "Style";
            }
            else
            {
                _subitems = new string[] { "Style", "" }
            };
        }
示例#10
0
        internal PropertyBackgroundImage(PropertyReportItem ri, string[] names)
        {
            pri    = ri;
            _names = names;
            if (names == null)
            {
                _subitems = new string[] { "Style", "BackgroundImage", "" };
            }
            else
            {
                // now build the array used to get/set values
                _subitems = new string[names.Length + 3];
                int i = 0;
                foreach (string s in names)
                {
                    _subitems[i++] = s;
                }

                _subitems[i++] = "Style";
                _subitems[i++] = "BackgroundImage";
            }
        }
 internal PropertyVisibility(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#12
0
        public override object EditValue(ITypeDescriptorContext context,
                                         IServiceProvider provider,
                                         object value)
        {
            if ((context == null) || (provider == null))
            {
                return(base.EditValue(context, provider, value));
            }

            // Access the Property Browser's UI display service
            IWindowsFormsEditorService editorService =
                (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (editorService == null)
            {
                return(base.EditValue(context, provider, value));
            }

            // Create an instance of the UI editor form
            IReportItem iri = context.Instance as IReportItem;

            if (iri == null)
            {
                return(base.EditValue(context, provider, value));
            }
            PropertyReportItem pri = iri.GetPRI();

            PropertyTable pt = value as PropertyTable;

            if (pt == null)
            {
                return(base.EditValue(context, provider, value));
            }

            //SingleCtlDialog scd = new SingleCtlDialog(pri.DesignCtl, pri.Draw, pri.Nodes, SingleCtlTypeEnum.BorderCtl, pb.Names);
            DesignCtl     dc = pri.DesignCtl;
            DesignXmlDraw dp = dc.DrawCtl;

            if (dp.SelectedCount != 1)
            {
                return(base.EditValue(context, provider, value));
            }
            XmlNode riNode = dp.SelectedList[0];
            XmlNode table  = dp.GetTableFromReportItem(riNode);

            if (table == null)
            {
                return(base.EditValue(context, provider, value));
            }
            XmlNode tc = dp.GetTableColumn(riNode);
            XmlNode tr = dp.GetTableRow(riNode);

            List <XmlNode> ar = new List <XmlNode>();             // need to put this is a list for dialog to handle

            ar.Add(table);
            dc.UndoObject.StartUndoGroup(Strings.PropertyTableUIEditor_EditValue_TableDialog);
            using (PropertyDialog pd = new PropertyDialog(dp, ar, PropertyTypeEnum.ReportItems, tc, tr))
            {
                // Display the UI editor dialog
                DialogResult dr = editorService.ShowDialog(pd);
                dc.UndoObject.EndUndoGroup(pd.Changed || dr == DialogResult.OK);
                if (pd.Changed || dr == DialogResult.OK)
                {
                    dp.Invalidate();
                    return(new PropertyTable(dp, dc, pt.Nodes));
                }

                return(base.EditValue(context, provider, value));
            }
        }
 internal PropertyBackground(PropertyReportItem ri)
 {
     pri = ri;
     _names = null;
     _subitems = new string[] { "Style", "" };
 }
 internal PropertyAppearance(PropertyReportItem ri)
 {
     pri = ri;
     _names = null;
     _subitems = new string[] { "Style", "" };
 }
示例#15
0
 internal PropertySize(PropertyReportItem pri, string h, string w)
 {
     _pri = pri;
     _h = h;
     _w = w;
 }
 internal PropertyLocation(PropertyReportItem pri, string x, string y)
 {
     _pri  = pri;
     _left = x;
     _top  = y;
 }
示例#17
0
 internal PropertyAction(PropertyReportItem ri)
 {
     pri = ri;
 }
 internal PropertyAppearance(PropertyReportItem ri)
 {
     pri       = ri;
     _names    = null;
     _subitems = new string[] { "Style", "" };
 }
示例#19
0
 internal PropertySize(PropertyReportItem pri, string h, string w)
 {
     _pri = pri;
     _h   = h;
     _w   = w;
 }
示例#20
0
 internal PropertyFilters(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#21
0
        /// <summary>
        /// The Table contains a PropertyReportItem
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public override bool CanExtend(object o)
        {
            PropertyReportItem pri = o as PropertyReportItem;

            return(!(pri == null || pri.TableNode == null));
        }
示例#22
0
 internal PropertySorting(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#23
0
 internal PropertyGrouping(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#24
0
 internal PropertyPadding(PropertyReportItem pri)
 {
     _pri = pri;
     _names = null;
     _subitems = new string[] { "Style", "" };
 }
示例#25
0
 internal PropertyBackground(PropertyReportItem ri)
 {
     pri       = ri;
     _names    = null;
     _subitems = new string[] { "Style", "" };
 }
示例#26
0
 internal PropertySorting(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#27
0
 internal PropertyLocation(PropertyReportItem pri, string x, string y)
 {
     _pri = pri;
     _left = x;
     _top = y;
 }
示例#28
0
 internal PropertyFilters(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#29
0
 internal PropertyAction(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#30
0
 internal PropertyGrouping(PropertyReportItem ri)
 {
     pri = ri;
 }
示例#31
0
 internal PropertyPadding(PropertyReportItem pri)
 {
     _pri      = pri;
     _names    = null;
     _subitems = new string[] { "Style", "" };
 }
示例#32
0
        /// <summary>
        /// Our main function.  We display the vertices of a FunkyButton as properties by creating
        /// PropertyDescriptors for each one.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="component"></param>
        /// <param name="attrs"></param>
        /// <returns></returns>
        public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object component, Attribute[] attrs)
        {
            PropertyReportItem pri = component as PropertyReportItem;

            // we can get things besides PropertyReportItems here.  Since we want our Point types
            // to be expandable, the PropertyGrid will still ask this PropertyTab for the properties of
            // points, so we default to the standard way of getting properties from other types of objects.
            //
            if (pri == null)
            {

                TypeConverter tc = TypeDescriptor.GetConverter(component);
                if (tc != null)
                {
                    return tc.GetProperties(context, component, attrs);
                }
                else
                {
                    return TypeDescriptor.GetProperties(component, attrs);
                }
            }

            _pri = pri;
            XmlNode tnode = _pri.TableNode;

            // Get the collection of properties
            PropertyDescriptorCollection pdc = new PropertyDescriptorCollection(null);

            if (tnode == null) // return empty if no table
                return pdc;

            PropertyDescriptorCollection bProps =
                              TypeDescriptor.GetProperties(_pri, true);

            // For each property use a property descriptor of our own that is able to
            // be globalized
            foreach (PropertyDescriptor p in bProps)
            {
                if (p.Category != "Table")
                    continue;
                pdc.Add(p);
            }
            return pdc;
        }
示例#33
0
 internal PropertyVisibility(PropertyReportItem ri)
 {
     pri = ri;
 }
        internal PropertyBackgroundImage(PropertyReportItem ri, string[] names)
        {
            pri = ri;
            _names = names;
            if (names == null)
            {
                _subitems = new string[] { "Style", "BackgroundImage", "" };
            }
            else
            {
                // now build the array used to get/set values
                _subitems = new string[names.Length + 3];
                int i = 0;
                foreach (string s in names)
                    _subitems[i++] = s;

                _subitems[i++] = "Style";
                _subitems[i++] = "BackgroundImage";
            }
        }