public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { _editorService = provider.GetService(typeof(IWindowsFormsEditorService)) as IWindowsFormsEditorService; if (_editorService == null) { return(base.EditValue(context, provider, value)); } var report = GetReport(context); if (report == null) { return(base.EditValue(context, provider, value)); } var listBox = new ListBoxEx { BorderStyle = BorderStyle.None, PaintIndicatorSupported = true, ItemHeight = 20 }; listBox.Click += listBox_Click; listBox.PaintIndicator += listBox_PaintIndicator; listBox.Items.Add(EditorText); _dbFields = new List <FieldInfo>(); _dbFields.AddRange(report.DataSource.DataSourceInfo.ImageFields); foreach (var dbField in report.DataSource.DataSourceInfo.TextFields) { if (dbField.DataType == typeof(string)) { _dbFields.Add(dbField); } } listBox.Items.AddRange(_dbFields.Select(f => (object)f.Name).ToArray()); var itemsToDisplay = Math.Min(MaxDisplayListBoxItems, listBox.Items.Count); listBox.Height = itemsToDisplay * listBox.ItemHeight; if (value != null) { listBox.SelectedItem = value.ToString(); } _editorService.DropDownControl(listBox); if (listBox.SelectedIndex == 0) { value = base.EditValue(context, provider, value); } else if (listBox.SelectedIndex > 0) { var fieldName = listBox.SelectedItem.ToString(); value = PictureHolder.FromExpression(fieldName); } _dbFields = null; return(value); }
public void Init(FlexDesignerHostServices services, object propOwner, string propName, object value, bool supportExpression) { _propOwner = propOwner; _propName = propName; _pictureHolder = value as PictureHolder ?? PictureHolder.FromObject(null, null); _services = services; if (_services != null) { var grs = _services.GetService(typeof(IGetReportsService)) as IGetReportsService; if (grs != null) { _report = grs.Report; } } _canExpression = supportExpression && _report != null; if (_services != null) { var scriptService = _services.GetScriptEditorService(); _canEditScript = _canExpression && scriptService != null; } else { _canEditScript = false; } UpdateUI(); }
public void ApplyChanges() { if (radioNone.Checked) { _pictureHolder = PictureHolder.FromObject(null, null); } else if (radioFile.Checked) { _pictureHolder = PictureHolder.FromFile(txtFile.Text, C1FlexReport.GetActualBasePath(_report)); } else if (radioURL.Checked) { _pictureHolder = PictureHolder.FromUrl(txtURL.Text, C1FlexReport.GetActualBasePath(_report)); } else if (radioExpression.Checked) { _pictureHolder = PictureHolder.FromExpression(cmbExpression.Expression); } }
private string GetPictureSourceResourceName(PictureHolder picture) { if (picture == null) { return(null); } switch (picture.Type) { case PictureHolderType.File: return("PictureHolderSource_File.png"); case PictureHolderType.Url: return("PictureHolderSource_URL.png"); case PictureHolderType.Expression: return("PictureHolderSource_Expression.png"); case PictureHolderType.Image: return("PictureHolderSource_Image.png"); } return(null); }