public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { setContext(context); if (_restriction != null && _restriction.IsEnum) { MultipleSelectForm frm = new MultipleSelectForm("Please restriction values", _restriction.EnumRE.Values, "Val"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (_restriction.EnumValues.Contains(((MetaEV)frm.checkedListBox.Items[i]).Id)) frm.checkedListBox.SetItemChecked(i, true); } if (frm.ShowDialog() == DialogResult.OK) { _restriction.EnumValues = new List<string>(); foreach (object item in frm.CheckedItems) { _restriction.EnumValues.Add(((MetaEV) item).Id); } value = ""; //indicates a modification } } } finally { Cursor.Current = Cursors.Default; } return value; }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { var svc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (svc != null) { MetaColumn column = context.Instance as MetaColumn; List <string> vals = value as List <string>; if (column != null && vals != null) { List <MetaColumn> cols = new List <MetaColumn>(); foreach (var table in column.Source.MetaData.Tables) { foreach (var col in table.Columns.Where(i => i != column)) { if (!context.PropertyDescriptor.IsReadOnly || vals.Contains(col.GUID)) { cols.Add(col); } } } var frm = new MultipleSelectForm("Select the child columns", cols, "FullDisplayName"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (vals.Contains(((MetaColumn)frm.checkedListBox.Items[i]).GUID)) { frm.checkedListBox.SetItemChecked(i, true); } } if (context.PropertyDescriptor.IsReadOnly) { frm.Text = "Child Columns defined for Drill"; frm.okToolStripButton.Visible = false; frm.cancelToolStripButton.Text = "Close"; frm.checkedListBox.Enabled = false; frm.selectAllToolStripButton.Visible = false; } if (svc.ShowDialog(frm) == DialogResult.OK) { vals.Clear(); foreach (object item in frm.CheckedItems) { vals.Add(((MetaColumn)item).GUID); } column.UpdateEditor(); if (HelperEditor.HandlerInterface != null) { HelperEditor.HandlerInterface.SetModified(); } } } } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { var svc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (svc != null) { MetaColumn column = context.Instance as MetaColumn; List<string> vals = value as List<string>; if (column != null && vals != null) { List<MetaColumn> cols = new List<MetaColumn>(); foreach (var table in column.Source.MetaData.Tables) { foreach (var col in table.Columns.Where(i => i != column)) { if (!context.PropertyDescriptor.IsReadOnly || vals.Contains(col.GUID)) cols.Add(col); } } var frm = new MultipleSelectForm("Select the child columns", cols, "FullDisplayName"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (vals.Contains(((MetaColumn)frm.checkedListBox.Items[i]).GUID)) frm.checkedListBox.SetItemChecked(i, true); } if (context.PropertyDescriptor.IsReadOnly) { frm.Text = "Child Columns defined for Drill"; frm.okToolStripButton.Visible = false; frm.cancelToolStripButton.Text = "Close"; frm.checkedListBox.Enabled = false; frm.selectAllToolStripButton.Visible = false; } if (svc.ShowDialog(frm) == DialogResult.OK) { vals.Clear(); foreach (object item in frm.CheckedItems) { vals.Add(((MetaColumn)item).GUID); } column.UpdateEditor(); if (HelperEditor.HandlerInterface != null) HelperEditor.HandlerInterface.SetModified(); } } } return value; }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { if (context.Instance != null) { var config = (SealServerConfiguration)context.Instance; var displaySource = new List <StringDisplay>(); foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures).OrderBy(i => i.EnglishName)) { displaySource.Add(new StringDisplay() { Id = culture.EnglishName, Display = string.Format("{0} ({1})", culture.EnglishName, culture.NativeName) }); } MultipleSelectForm frm = new MultipleSelectForm("Please select the values", displaySource, "Display"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (config.WebCultures.Exists(j => j == ((StringDisplay)frm.checkedListBox.Items[i]).Id)) { frm.checkedListBox.SetItemChecked(i, true); } } if (frm.ShowDialog() == DialogResult.OK) { var result = new List <string>(); foreach (object item in frm.CheckedItems) { result.Add(((StringDisplay)item).Id); } value = result; } } } finally { Cursor.Current = Cursors.Default; } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { setContext(context); if (_view != null) { foreach (var model in _view.Report.Models) { model.InitCommonRestrictions(); } var restrictions = _view.Report.AllRestrictions.ToList(); MultipleSelectForm frm = new MultipleSelectForm("Please select the Restrictions", restrictions, "DisplayNameWithModel"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (_view.RestrictionsGUID.Contains(((ReportRestriction)frm.checkedListBox.Items[i]).GUID)) { frm.checkedListBox.SetItemChecked(i, true); } } if (frm.ShowDialog() == DialogResult.OK) { _view.RestrictionsGUID = new List <string>(); foreach (object item in frm.CheckedItems) { _view.RestrictionsGUID.Add(((ReportRestriction)item).GUID); } value = ""; //indicates a modification } } } finally { Cursor.Current = Cursors.Default; } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { setContext(context); if (_model != null && _model.Source != null) { var joins = _model.Source.MetaData.Joins.OrderBy(i => i.Name).ToList(); MultipleSelectForm frm = new MultipleSelectForm("Please select the Joins", joins, "Name"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (_model.JoinsToUse.Contains(((MetaJoin)frm.checkedListBox.Items[i]).GUID)) { frm.checkedListBox.SetItemChecked(i, true); } } if (frm.ShowDialog() == DialogResult.OK) { _model.JoinsToUse = new List <string>(); foreach (object item in frm.CheckedItems) { _model.JoinsToUse.Add(((MetaJoin)item).GUID); } value = ""; //indicates a modification } } } finally { Cursor.Current = Cursors.Default; } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { setContext(context); if (_restriction != null && _restriction.IsEnum) { MultipleSelectForm frm = new MultipleSelectForm("Please select the restriction values", _restriction.MetaEnumValuesRE, "DisplayRestriction"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (_restriction.EnumValues.Contains(((MetaEV)frm.checkedListBox.Items[i]).Id)) { frm.checkedListBox.SetItemChecked(i, true); } } if (frm.ShowDialog() == DialogResult.OK) { _restriction.EnumValues = new List <string>(); foreach (object item in frm.CheckedItems) { _restriction.EnumValues.Add(((MetaEV)item).Id); } value = ""; //indicates a modification } } } finally { Cursor.Current = Cursors.Default; } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { setContext(context); if (_emailDevice != null) { if (context.PropertyDescriptor.Name == "HelperTestEmail") { _emailDevice.SendTestEmail(); } } else if (_fileServerDevice != null) { if (context.PropertyDescriptor.Name == "HelperTestConnection") { _fileServerDevice.TestConnection(); } } else if (_metaConnection != null) { if (context.PropertyDescriptor.Name == "HelperCheckConnection") { _metaConnection.CheckConnection(); } if (context.PropertyDescriptor.Name == "HelperCreateFromExcelAccess") { string accessDriver = "Microsoft Access Driver (*.mdb)"; string excelDriver = "Microsoft Excel Driver (*.xls)"; try { List <string> drivers = Helper.GetSystemDriverList(); string accessDriver2 = "Microsoft Access Driver (*.mdb, *.accdb)"; if (drivers.Contains(accessDriver2)) { accessDriver = accessDriver2; } string excelDriver2 = "Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)"; if (drivers.Contains(excelDriver2)) { excelDriver = excelDriver2; } } catch { } OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Open an Excel or an MS Access File"; dlg.CheckFileExists = true; dlg.CheckPathExists = true; dlg.InitialDirectory = _metaConnection.Source.Repository.RepositoryPath; if (dlg.ShowDialog() == DialogResult.OK) { string ext = Path.GetExtension(dlg.FileName); string driver = ""; if (ext == ".xls" || ext == ".xlsx" || ext == ".xlsm" || ext == ".xlsb") { _metaConnection.DatabaseType = DatabaseType.MSExcel; driver = excelDriver; } else if (ext == ".mdb" || ext == ".accdb") { _metaConnection.DatabaseType = DatabaseType.MSAccess; driver = accessDriver; } else { throw new Exception("Please select an Excel or MS Access file"); } string path = dlg.FileName.Replace(_metaConnection.Source.Repository.RepositoryPath, Repository.SealRepositoryKeyword); _metaConnection.ConnectionString = string.Format(@"Provider=MSDASQL.1;Extended Properties=""DBQ={0};Driver={{{1}}};""", path, driver); setModified(); MessageBox.Show("The connection has been created successfully", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else if (_metaTable != null) { if (context.PropertyDescriptor.Name == "HelperRefreshColumns") { _metaTable.Refresh(); setModified(); initEntity(_metaTable); } if (context.PropertyDescriptor.Name == "HelperCheckTable") { _metaTable.CheckTable(null); } } else if (_metaEnum != null) { if (context.PropertyDescriptor.Name == "HelperRefreshEnum") { _metaEnum.RefreshEnum(); setModified(); } } else if (_metaColumn != null) { if (context.PropertyDescriptor.Name == "HelperCheckColumn") { _metaColumn.MetaTable.CheckTable(_metaColumn); } else if (context.PropertyDescriptor.Name == "HelperCreateEnum") { MetaEnum result = _metaColumn.Source.CreateEnumFromColumn(_metaColumn); _metaColumn.EnumGUID = result.GUID; initEntity(result); setModified(); } else if (context.PropertyDescriptor.Name == "HelperShowValues") { try { Cursor.Current = Cursors.WaitCursor; string result = _metaColumn.MetaTable.ShowValues(_metaColumn); ExecutionForm frm = new ExecutionForm(null); frm.Text = "Show values"; frm.cancelToolStripButton.Visible = false; frm.pauseToolStripButton.Visible = false; frm.logTextBox.Text = result; frm.logTextBox.SelectionStart = 0; frm.logTextBox.SelectionLength = 0; frm.ShowDialog(); } finally { Cursor.Current = Cursors.Default; } } else if (context.PropertyDescriptor.Name == "HelperCreateDrillDates") { var year = _metaColumn.MetaTable.Source.AddColumn(_metaColumn.MetaTable); year.DisplayName = _metaColumn.DisplayName + " Year"; year.Type = ColumnType.DateTime; year.DateTimeStandardFormat = DateTimeStandardFormat.Custom; year.Format = "yyyy"; var month = _metaColumn.MetaTable.Source.AddColumn(_metaColumn.MetaTable); month.DisplayName = _metaColumn.DisplayName + " Month"; month.Type = ColumnType.DateTime; month.DateTimeStandardFormat = DateTimeStandardFormat.Custom; month.Format = "MM/yyyy"; if (_metaColumn.MetaTable.Source.Connection.DatabaseType == DatabaseType.Oracle) { year.Name = string.Format("trunc({0},'year')", _metaColumn.Name); month.Name = string.Format("trunc({0},'month')", _metaColumn.Name); } else if (_metaColumn.MetaTable.Source.Connection.DatabaseType == DatabaseType.MSSQLServer) { year.Name = string.Format("DATETIME2FROMPARTS(year({0}),1,1,0,0,0,0,0)", _metaColumn.Name); month.Name = string.Format("DATETIME2FROMPARTS(year({0}),month({0}),1,0,0,0,0,0)", _metaColumn.Name); } else if (_metaColumn.MetaTable.Source.Connection.DatabaseType == DatabaseType.MSAccess) { year.Name = string.Format("DateSerial(DatePart('yyyy',{0}), 1, 1)", _metaColumn.Name); month.Name = string.Format("DateSerial(DatePart('yyyy',{0}), DatePart('m',{0}), 1)", _metaColumn.Name); } year.DrillChildren.Add(month.GUID); month.DrillChildren.Add(_metaColumn.GUID); initEntity(_metaColumn.MetaTable); setModified(); MessageBox.Show("A 'Year' column and a 'Month' column have been added to the table with a drill hierarchy.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (context.PropertyDescriptor.Name == "HelperCreateSubReport") { Report report = Report.Create(Repository.Create()); //Only on detail view report.Views.Clear(); report.AddView(ReportViewTemplate.ModelDetailName); report.Views[0].InitParameters(true); report.Views[0].Parameters.First(i => i.Name == "restriction_button").BoolValue = false; report.Sources.RemoveAll(i => i.MetaSourceGUID != _metaColumn.Source.GUID); if (report.Sources.Count == 0) { throw new Exception("Unable to create the detail report. Please save the Data Source first..."); } //And one model ReportModel model = report.Models[0]; model.SourceGUID = _metaColumn.Source.GUID; //Add all the element of the table foreach (var el in _metaColumn.MetaTable.Columns.OrderBy(i => i.DisplayOrder)) { ReportElement element = ReportElement.Create(); element.MetaColumnGUID = el.GUID; element.Name = el.Name; element.PivotPosition = (el == _metaColumn ? PivotPosition.Page : PivotPosition.Row); model.Elements.Add(element); } string entityName = _metaColumn.MetaTable.Name; if (entityName.EndsWith("s")) { entityName = entityName.Substring(0, entityName.Length - 1); } string path = Path.Combine(_metaColumn.MetaTable.Source.Repository.SubReportsFolder, Helper.CleanFileName(entityName + " Detail.") + Repository.SealReportFileExtension); path = FileHelper.GetUniqueFileName(path); var sr = new SubReport() { Path = path.Replace(_metaColumn.Source.Repository.RepositoryPath, Repository.SealRepositoryKeyword), Name = entityName + " Detail" }; //And the restriction, try to find out the table primary keys try { DataTable schemaTables = ((OleDbConnection)_metaColumn.Source.GetOpenConnection()).GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, null); Helper.DisplayDataTable(schemaTables); foreach (DataRow row in schemaTables.Rows) { string schema = ""; if (schemaTables.Columns.Contains("TABLE_SCHEMA")) { schema = row["TABLE_SCHEMA"].ToString(); } else if (schemaTables.Columns.Contains("TABLE_SCHEM")) { schema = row["TABLE_SCHEM"].ToString(); } string fullName = (!string.IsNullOrEmpty(schema) ? _metaColumn.Source.GetTableName(schema) + "." : "") + _metaColumn.Source.GetTableName(row["TABLE_NAME"].ToString()); if (row["TABLE_NAME"].ToString() == _metaColumn.MetaTable.Name || fullName == _metaColumn.MetaTable.Name) { var col = _metaColumn.MetaTable.Columns.FirstOrDefault(i => i.Name.ToLower() == row["COLUMN_NAME"].ToString().ToLower() || i.Name.ToLower().EndsWith("." + row["COLUMN_NAME"].ToString().ToLower())); if (col != null) { sr.Restrictions.Add(col.GUID); } else { //not all pk available.... sr.Restrictions.Clear(); break; } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } string message = ""; if (sr.Restrictions.Count == 0) { //no PK found, we add the value itself... sr.Restrictions.Add(_metaColumn.GUID); message = "The Sub-Report restriction is based on the Column."; } else { message = "The Sub-Report restrictions are based on the table Primary Keys."; } foreach (var guid in sr.Restrictions) { ReportRestriction restriction = ReportRestriction.CreateReportRestriction(); restriction.MetaColumnGUID = guid; restriction.PivotPosition = PivotPosition.Row; restriction.Prompt = PromptType.Prompt; restriction.Operator = Operator.Equal; model.Restrictions.Add(restriction); if (!string.IsNullOrEmpty(model.Restriction)) { model.Restriction += "\r\nAND "; } model.Restriction += ReportRestriction.kStartRestrictionChar + restriction.GUID + ReportRestriction.kStopRestrictionChar; } model.InitReferences(); report.SaveToFile(path); _metaColumn.SubReports.Add(sr); if (MessageBox.Show(string.Format("A Sub-Report named '{0}' has been created in the dedicated Repository folder.\r\n{1}\r\nDo you want to edit it using a new Report Designer ?", Path.GetFileName(path), message), "Information", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { Process.Start(path); } ; _metaColumn.UpdateEditor(); setModified(); } else if (context.PropertyDescriptor.Name == "HelperAddSubReport") { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = string.Format(Repository.SealRootProductName + " Reports files (*.{0})|*.{0}|All files (*.*)|*.*", Repository.SealReportFileExtension); dlg.Title = "Select a Sub-Report having prompted restrictions"; dlg.CheckFileExists = true; dlg.CheckPathExists = true; dlg.InitialDirectory = _metaColumn.Source.Repository.SubReportsFolder; if (dlg.ShowDialog() == DialogResult.OK) { Report report = Report.LoadFromFile(dlg.FileName, _metaColumn.Source.Repository, false); var sr = new SubReport() { Path = report.FilePath.Replace(_metaColumn.Source.Repository.RepositoryPath, Repository.SealRepositoryKeyword), Name = Path.GetFileNameWithoutExtension(dlg.FileName) }; bool tableOk = false; var restrList = new List <ReportRestriction>(); foreach (var model in report.Models.Where(i => i.Source.MetaSourceGUID == _metaColumn.Source.GUID)) { foreach (var restriction in model.Restrictions) { foreach (var table in _metaColumn.MetaTable.Source.MetaData.Tables) { var col = table.Columns.FirstOrDefault(i => i.GUID == restriction.MetaColumnGUID); if (col != null) { tableOk = true; if (!restrList.Exists(i => i.MetaColumnGUID == restriction.MetaColumnGUID)) { restrList.Add(restriction); } } } } } if (!tableOk) { throw new Exception("Unable to add this Sub-Report:\r\nThe report does not contain any restriction..."); } var frm = new MultipleSelectForm("Select the restrictions to include", restrList, "DisplayNameEl"); //select all by default for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { frm.checkedListBox.SetItemChecked(i, true); } if (frm.ShowDialog() == DialogResult.OK) { foreach (object item in frm.CheckedItems) { sr.Restrictions.Add(((ReportRestriction)item).MetaColumnGUID); } _metaColumn.SubReports.Add(sr); MessageBox.Show(string.Format("The Sub-Report named '{0}' has been added with {1} restriction(s).", Path.GetFileName(dlg.FileName), sr.Restrictions.Count), "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); _metaColumn.UpdateEditor(); setModified(); } } } else if (context.PropertyDescriptor.Name == "HelperOpenSubReportFolder") { Process.Start(_metaColumn.Source.Repository.SubReportsFolder); } } else if (_metaJoin != null) { if (context.PropertyDescriptor.Name == "HelperCheckJoin") { _metaJoin.CheckJoin(); } } else if (_model != null) { if (context.PropertyDescriptor.Name == "HelperViewJoins") { try { _model.JoinPaths = new StringBuilder(); _model.BuildQuery(); var frm = new ExecutionForm(null); frm.Text = "List of Joins"; frm.cancelToolStripButton.Visible = false; frm.pauseToolStripButton.Visible = false; frm.logTextBox.Text = _model.JoinPaths.ToString(); frm.logTextBox.SelectionStart = 0; frm.logTextBox.SelectionLength = 0; frm.ShowDialog(); } finally { _model.JoinPaths = null; } } } else if (_reportView != null) { if (context.PropertyDescriptor.Name == "HelperReloadConfiguration") { _reportView.ReloadConfiguration(); } else if (context.PropertyDescriptor.Name == "HelperResetParameters") { _reportView.InitParameters(true); setModified(); } else if (context.PropertyDescriptor.Name == "HelperResetPDFConfigurations") { _reportView.PdfConfigurations = new List <string>(); _reportView.PdfConverter = null; _reportView.Information = Helper.FormatMessage("The PDF configuration values have been reset"); setModified(); } else if (context.PropertyDescriptor.Name == "HelperResetExcelConfigurations") { _reportView.ExcelConfigurations = new List <string>(); _reportView.ExcelConverter = null; _reportView.Information = Helper.FormatMessage("The Excel configuration values have been reset"); setModified(); } } else if (_configuration != null) { if (context.PropertyDescriptor.Name == "HelperResetPDFConfigurations") { _configuration.PdfConfigurations = new List <string>(); _configuration.PdfConverter = null; } else if (context.PropertyDescriptor.Name == "HelperResetExcelConfigurations") { _configuration.ExcelConfigurations = new List <string>(); _configuration.ExcelConverter = null; } } else if (_reportSchedule != null) { if (HandlerInterface != null && context.PropertyDescriptor.Name == "HelperEditProperties") { HandlerInterface.EditSchedule(_reportSchedule); } else if (context.PropertyDescriptor.Name == "HelperRunTaskScheduler") { Process.Start(Path.Combine(Environment.SystemDirectory, "taskschd.msc"), "/s"); } } else if (_parameter != null) { if (context.PropertyDescriptor.Name == "HelperResetParameterValue") { _parameter.Value = _parameter.ConfigValue; setModified(); } } else if (_security != null) { if (context.PropertyDescriptor.Name == "HelperSimulateLogin") { SecurityUser user = new SecurityUser(_security); user.WebUserName = _security.TestUserName; user.WebPassword = _security.TestPassword; if (_security.TestCurrentWindowsUser) { user.WebPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); } user.Authenticate(); try { Cursor.Current = Cursors.WaitCursor; ExecutionForm frm = new ExecutionForm(null); frm.Text = "Test a login"; frm.cancelToolStripButton.Visible = false; frm.pauseToolStripButton.Visible = false; frm.logTextBox.Text = user.AuthenticationSummary; frm.logTextBox.SelectionStart = 0; frm.logTextBox.SelectionLength = 0; frm.ShowDialog(); } finally { Cursor.Current = Cursors.Default; } } } else if (_widget != null) { if (context.PropertyDescriptor.Name == "ExecReportPath") { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = string.Format(Repository.SealRootProductName + " Reports files (*.{0})|*.{0}|All files (*.*)|*.*", Repository.SealReportFileExtension); dlg.Title = "Select report to execute from the Widget"; dlg.CheckFileExists = true; dlg.CheckPathExists = true; dlg.InitialDirectory = Repository.Instance.ReportsFolder; if (dlg.ShowDialog() == DialogResult.OK) { Report report = Report.LoadFromFile(dlg.FileName, Repository.Instance, false); if (report.ExecutionView == null) { throw new Exception("This report has no view to execute..."); } _widget.ExecReportPath = report.FilePath.Replace(Repository.Instance.ReportsFolder, ""); _widget.ExecViewGUID = report.ExecutionView.GUID; _widget.UpdateEditor(); } } } } finally { Cursor.Current = Cursors.Default; } return(value); }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { Cursor.Current = Cursors.WaitCursor; try { setContext(context); if (context.Instance != null) { var displaySource = new List <IntDisplay>(); List <int> source = null; int startIndex = 0; var culture = new CultureInfo("en"); string[] names = new string[] { }; if (context.PropertyDescriptor.Name == "SealWeekdays") { names = culture.DateTimeFormat.DayNames; startIndex = 0; source = _schedule.Weekdays; } else if (context.PropertyDescriptor.Name == "SealMonths") { names = new List <string>(culture.DateTimeFormat.MonthNames).Take(12).ToArray(); startIndex = 1; source = _schedule.Months; } else if (context.PropertyDescriptor.Name == "SealDays") { List <string> names2 = new List <string>(); for (int i = 1; i <= 31; i++) { names2.Add(i.ToString()); } names2.Add("Last"); names = names2.ToArray(); startIndex = 1; source = _schedule.Days; } for (int i = 0; i < names.Length; i++) { displaySource.Add(new IntDisplay() { Id = startIndex + i, Display = names[i] }); } MultipleSelectForm frm = new MultipleSelectForm("Please select the values", displaySource, "Display"); //select existing values for (int i = 0; i < frm.checkedListBox.Items.Count; i++) { if (source.Contains(((IntDisplay)frm.checkedListBox.Items[i]).Id)) { frm.checkedListBox.SetItemChecked(i, true); } } if (frm.ShowDialog() == DialogResult.OK) { var result = new List <int>(); foreach (object item in frm.CheckedItems) { result.Add(((IntDisplay)item).Id); } _schedule.CalculateNextExecution(); value = result; } } } finally { Cursor.Current = Cursors.Default; } return(value); }
public bool addFromToolStripMenuItem_Click(object sender, EventArgs e) { bool isModified = false; object entity = mainTreeView.SelectedNode.Tag; MetaSource source = GetSource(mainTreeView.SelectedNode); if (source == null) return isModified; DbConnection connection = source.GetOpenConnection(); object selectSource = null; string name = ""; List<CheckBox> options = new List<CheckBox>(); CheckBox autoCreateColumns = new CheckBox() { Text = "Auto create table columns", Checked = true, AutoSize = true }; CheckBox autoCreateJoins = new CheckBox() { Text = "Auto create joins", Checked = true, AutoSize = true }; CheckBox useTableSchemaName = new CheckBox() { Text = "Use schema name", Checked = false, AutoSize = true }; CheckBox keepColumnNames = new CheckBox() { Text = "Keep column names", Checked = false, AutoSize = true }; try { Cursor.Current = Cursors.WaitCursor; if (entity is TableFolder) { DataTable schemaTables = connection.GetSchema("Tables"); List<MetaTable> tables = new List<MetaTable>(); addSchemaTables(connection.GetSchema("Tables"), tables, source); if (connection is OdbcConnection) { //Add views for odbc connections.. addSchemaTables(connection.GetSchema("Views"), tables, source); } selectSource = tables.OrderBy(i => i.AliasName).ToList(); name = "DisplayName"; options.Add(autoCreateColumns); options.Add(autoCreateJoins); if (tables.Count > 0 && tables[0].Name.Contains(".")) options.Add(useTableSchemaName); if (tables.Count > 0 ) options.Add(keepColumnNames); } else if (entity is MetaTable) { List<MetaColumn> columns = new List<MetaColumn>(); source.AddColumnsFromCatalog(columns, connection, ((MetaTable)entity)); selectSource = columns.OrderBy(i => i.Name).ToList(); name = "Name"; } else if (entity is JoinFolder) { List<MetaJoin> joins = GetJoins(connection, source); if (joins.Count == 0) { MessageBox.Show(connection is OleDbConnection ? "All Joins have been defined for the existing tables" : "Joins cannot be read from the database for 'Microsoft OleDB provider for ODBC drivers'...\r\nIf possible, use another OleDB provider for your connection.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); return isModified; } selectSource = joins.OrderBy(i => i.Name).ToList(); name = "Name"; } if (source != null && selectSource != null) { MultipleSelectForm frm = new MultipleSelectForm("Please select objects to add", selectSource, name); int index = 10; foreach (var checkbox in options) { checkbox.Location = new Point(index, 5); frm.optionPanel.Controls.Add(checkbox); index += checkbox.Width + 10; frm.Width = Math.Max(index + 5, frm.Width); } frm.optionPanel.Visible = (options.Count > 0); if (frm.ShowDialog() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; isModified = true; foreach (var item in frm.CheckedItems) { if (item is MetaTable) { MetaTable table = (MetaTable)item; if (!useTableSchemaName.Checked) { string[] names = table.Name.Split('.'); if (names.Length == 2) table.Name = names[1]; } if (source.MetaData.Tables.Exists(i => i.AliasName == table.AliasName)) { table.Alias = Helper.GetUniqueName(table.Name, (from i in source.MetaData.Tables select i.AliasName).ToList()); } if (keepColumnNames.Checked) { table.KeepColumnNames = true; } if (autoCreateColumns.Checked) { source.AddColumnsFromCatalog(table.Columns, connection, table); } source.MetaData.Tables.Add(table); } else if (item is MetaColumn) { MetaColumn column = (MetaColumn)item; ((MetaTable)entity).Columns.Add(column); } else if (item is MetaJoin) { MetaJoin join = (MetaJoin)item; join.Name = Helper.GetUniqueName(join.Name, (from i in source.MetaData.Joins select i.Name).ToList()); source.MetaData.Joins.Add(join); } } if (autoCreateJoins.Checked) { foreach (var join in GetJoins(connection, source)) { join.Name = Helper.GetUniqueName(join.Name, (from i in source.MetaData.Joins select i.Name).ToList()); source.MetaData.Joins.Add(join); } } } } } finally { Cursor.Current = Cursors.Default; } return isModified; }
public bool removeToolStripMenuItem_Click(object sender, EventArgs e) { bool isModified = false; string displayName = ""; IList selectSource = getRemoveSource(ref displayName); try { Cursor.Current = Cursors.WaitCursor; if (selectSource != null) { MultipleSelectForm frm = new MultipleSelectForm("Please select objects to remove", selectSource, displayName); if (frm.ShowDialog() == DialogResult.OK) { object entity = mainTreeView.SelectedNode.Tag; MetaSource source = GetSource(mainTreeView.SelectedNode); Cursor.Current = Cursors.WaitCursor; isModified = true; foreach (var item in frm.CheckedItems) { if (item is ReportSource) { Report.RemoveSource((ReportSource)item); } else if (item is MetaConnection) { source.RemoveConnection((MetaConnection)item); } else if (item is MetaTable) { source.RemoveTable((MetaTable)item); } else if (item is MetaJoin) { source.RemoveJoin((MetaJoin)item); } else if (item is MetaColumn) { ((MetaTable)entity).Columns.Remove((MetaColumn)item); } else if (item is MetaEnum) { source.RemoveEnum((MetaEnum)item); } else if (item is ReportModel) { Report.RemoveModel((ReportModel)item); } else if (entity is ViewFolder && item is ReportView) { Report.RemoveView(null, (ReportView)item); } else if (item is ReportView) { Report.RemoveView(((ReportView)entity), (ReportView)item); } else if (item is ReportTask) { Report.RemoveTask((ReportTask)item); } else if (item is ReportOutput) { Report.RemoveOutput((ReportOutput)item); } else if (item is ReportSchedule) { Report.RemoveSchedule((ReportSchedule)item); } } } } } finally { Cursor.Current = Cursors.Default; } return isModified; }