protected virtual void OnSetupData() { //load all lookups foreach (JkLookUpComboBox comboBox in IAppHandler.FindControlByType("JkLookUpComboBox", this)) { comboBox.LoadData(); } //clear all datatables VMasterDataTable.Clear(); foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { DataSet.DataTable.Clear(); } if (CommandText != null && CommandText != "") { VTransactionHandler.LoadData(CommandText, ref VMasterDataTable, this.Parameters); } if (SetupData != null) { SetupData(); } }
//this procedure will assign the color of its corresponding label //when its corresponding control has been focused private void SetLabelsColor() { if (!LabelColorsEventAssigned) { foreach (JkMasterColumn column in MasterColumns) { if (!String.IsNullOrWhiteSpace(column.LabelName) && !String.IsNullOrWhiteSpace(column.ControlName)) { Control label = splitContainer.Panel2.Controls.Find(column.LabelName, true).First(); Control control = splitContainer.Panel2.Controls.Find(column.ControlName, true).First(); if (label != null && control != null) { control.Enter += (obj, e) => { if (FormState != FormStates.fsView) { IAppHandler.SetLabelColorOnEnter(label as Label); } }; control.Leave += (obj, e) => { IAppHandler.SetLabelColorOnLeave(label as Label); }; } } } LabelColorsEventAssigned = true; } }
public void CreateColumns() { ITransactionHandler VTransactionHandler = new ITransactionHandler(); DataTable dt = new DataTable(); try { VTransactionHandler.LoadData(CommandText, ref dt, this.Parameters); foreach (DataColumn dc in dt.Columns) { JkColumn column = new JkColumn(); column.Name = dc.ColumnName; column.Caption = dc.ColumnName; column.DataType = IAppHandler.ConvertTypeToSqlType(dc.DataType); column.Width = 100; column.FooterType = JkColumn.ColumnFooterTypes.ftNone; if (dc.ColumnName.Contains("Id")) { column.Visible = false; } if (Columns.Find(col => col.Name == column.Name) == null) { _Columns.Add(column); } } } finally { dt.Dispose(); } }
private void ReQuery(object sender, EventArgs e) { try { IAppHandler.StartBusy("Fetching record"); switch (Convert.ToInt16((sender as ToolStripButton).Tag)) { case 1: KeyId = 0; break; case 2: KeyId -= 1; break; case 3: KeyId += 1; break; case 4: KeyId = KeyList.Count - 1; break; } Parameters[0].Value = Convert.ToString(KeyList[KeyId]); Run(); } finally { IAppHandler.EndBusy("Fetching record"); } }
protected override void Preview() { base.Preview(); //print the first item on selection String reportFormName = VLookupProvider.DataSetLookup(VLookupProvider.dstSystemPrintouts, "FormCaption", this.Caption, "PrintoutFormName").ToString(); IParentForm reportForm = IAppHandler.FindForm(reportFormName, "Printout", true); if (reportForm == null) { IMessageHandler.ShowError(ISystemMessages.PrintoutNotSet); } else { IAppHandler.AddUsedForm(this); this.Hide(); if (reportForm.Parameters.Find(p => p.Name == "Id") != null) { reportForm.Parameters.Find(p => p.Name == "Id").Value = this.Parameters.Find(pa => pa.Name == "Id").Value; } (reportForm as IReportForm).PrintoutHeader = this.Caption; reportForm.Run(); } }
private void txtConfirmPassword_Enter(object sender, EventArgs e) { if (FormState != FormStates.fsView) { IAppHandler.SetLabelColorOnEnter(lblConfirmPassword); } }
//check if all required columns are filled up private void IMasterDetailForm_ValidateSave() { foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { foreach (JkDetailColumn column in DataSet.Columns) { if (column.Required) { foreach (DataRow row in DataSet.DataTable.Rows) { if (row.RowState != DataRowState.Deleted) { if (((row[column.Name] == null || row[column.Name] == DBNull.Value) && String.IsNullOrWhiteSpace(column.ControlName)) || (!String.IsNullOrWhiteSpace(column.ControlName) && int.Parse(row[column.Name].ToString()) == 0)) { IMessageHandler.Inform(ISystemMessages.FillRequiredFieldOnGridMessage(column.Caption)); ValidationFails = true; return; } } } } } } }
public static DialogResult ShowSelection(String FormName, String FilterName = null, List <String> Filters = null) { IPopupForm selection = null; selection = Activator.CreateInstance(Type.GetType("Jk_Accounting_Software.External.Popup." + FormName)) as IPopupForm; if (selection == null) { IMessageHandler.Inform(ISystemMessages.NoFormFound(FormName)); return(DialogResult.Cancel); } try { IAppHandler.StartBusy("Opening filter selection"); selection.StartPosition = FormStartPosition.CenterScreen; selection.Text = IAppHandler.ApplicationText; selection.LoadData(); selection.LoadFilter(FilterName, Filters); } finally { IAppHandler.EndBusy("Opening filter selection"); } return(selection.ShowDialog(IAppHandler.FindActiveForm())); }
private void IMasterForm_SetupData() { foreach (JkLookUpComboBox comboBox in IAppHandler.FindControlByType("JkLookUpComboBox", this)) { if (FormState == FormStates.fsView) { comboBox.RemoveFilterOnDataSource(); } else { comboBox.FilterDataSource(); } } if (FormState == FormStates.fsNew) { AssignControlsDefaultValue(); } else { AssignValuesToControls(); } InitSeriesProviders(); }
private void txtBalance_Enter(object sender, EventArgs e) { if (FormState != FormStates.fsView) { IAppHandler.SetLabelColorOnEnter(lblBalance); } }
public static void RegisterAppHandler(IAppHandler handler) { if (s_Handlers.ContainsKey(handler.Name)) s_Handlers[handler.Name] = handler; else s_Handlers.Add(handler.Name, handler); }
public void Run() { try { IAppHandler.StartBusy("Preparing controls"); if (!this.Visible) { this.Show(); } IAppHandler.SuspendDrawing(this); EditingReady = false; //setup data first before controls, since there are //controls which are dependent on data OnSetupData(); OnSetupControl(); } finally { IAppHandler.ResumeDrawing(this); EditingReady = true; IAppHandler.EndBusy("Preparing controls"); } }
private void IMasterDetailForm_BeforeSave() { //remove temporary columns so that it will not cause //malfuction on DataAdapter.Update function foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { DataSet.RemoveTemporaryColumns(); } }
private void IReportForm_SetupData() { foreach (JkFormParameter param in Parameters) { param.Value = IAppHandler.ConvertMaskValue(param.Value).ToString(); } CreateReportParameters(); }
public static void RegisterAppHandler(IAppHandler handler) { if (s_Handlers.ContainsKey(handler.Name)) { s_Handlers[handler.Name] = handler; } else { s_Handlers.Add(handler.Name, handler); } }
private void reportViewer_ReportRefresh(object sender, CancelEventArgs e) { try { IAppHandler.StartBusy("Reloading report"); } finally { IAppHandler.EndBusy("Reloading report"); } }
public static void RegisterAppHandler(IAppHandler handler) { if (s_Handlers.ContainsKey(handler.HandlerName)) s_Handlers[handler.HandlerName] = handler; else { ReflectedController reflected = new ReflectedController(handler.GetType()); handler.ActionMethods = reflected.Parmses; s_Handlers.Add(handler.HandlerName, handler); } }
protected override void SaveDetail() { base.SaveDetail(); foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { if (!String.IsNullOrWhiteSpace(DataSet.CommandText) && DataSet.LinkToMaster) { VTransactionHandler.SaveDetail(DataSet.CommandText, DataSet.DataTable, Parameters, DataSet.Parameters); } } }
private void IMasterForm_AfterSave() { if (FormState == FormStates.fsNew) { foreach (JkSeriesProvider series in IAppHandler.FindControlByType("JkSeriesProvider", this)) { series.UpdateSeries(); } } RefreshDataSet(); }
private void GenerateReport() { try { IAppHandler.StartBusy("Generating report"); RefreshReport(); } finally { IAppHandler.EndBusy("Generating report"); } }
public static void RegisterAppHandler(IAppHandler handler) { if (s_Handlers.ContainsKey(handler.HandlerName)) { s_Handlers[handler.HandlerName] = handler; } else { ReflectedController reflected = new ReflectedController(handler.GetType()); handler.ActionMethods = reflected.Parmses; s_Handlers.Add(handler.HandlerName, handler); } }
private void IMasterDetailForm_SetupData() { foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { if (!String.IsNullOrWhiteSpace(DataSet.CommandText) && DataSet.LinkToMaster) { DataSet.Parameters.Find(dp => dp.Name == "Id").Value = Parameters.Find(p => p.Name == "Id").Value; if (!String.IsNullOrWhiteSpace(DataSet.CommandText)) { DataSet.DataTable = VTransactionHandler.LoadData(DataSet.CommandText, DataSet.Parameters); DataSet.AddTemporaryColumns(); DataSet.GridView.DataSource = DataSet.DataTable; } //For further update on this code, I'm still not sure if this will fit on all scenarios foreach (DataColumn column in DataSet.DataTable.Columns) { if (!column.AllowDBNull && column.DataType.ToString() == "System.Int32" && !column.AutoIncrement) { if (FormState == FormStates.fsNew) { column.DefaultValue = -1; } else { column.DefaultValue = Parameters.Find(p => p.Name == "Id").Value; } } } } //load data from lookup to grid foreach (DataGridViewColumn column in DataSet.GridView.Columns) { if (column.GetType().ToString().Contains("DataGridViewComboBoxColumn")) { DataGridViewComboBoxColumn comboBox = column as DataGridViewComboBoxColumn; JkLookUpComboBox lookUp = (Controls.Find(DataSet.Columns.Find(dc => dc.Name == column.DataPropertyName).ControlName, true).First() as JkLookUpComboBox); if (lookUp.Items.Count == 0) { lookUp.LoadData(); } comboBox.DataSource = lookUp.DataSource; comboBox.DisplayMember = lookUp.DisplayText; comboBox.ValueMember = lookUp.Key; } } } }
//Gets the value from MasterColumn then assign it to controls such as textbox private void AssignValuesToControls() { if (VMasterDataTable.Rows.Count > 0) { foreach (JkMasterColumn column in MasterColumns) { column.Value = VMasterDataTable.Rows[0][column.Name]; if (!String.IsNullOrWhiteSpace(column.ControlName)) { IAppHandler.SetControlsValue(Controls.Find(column.ControlName, true).First(), column.Value); } } } }
public void CloseForm() { VMasterDataTable.Clear(); foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { DataSet.DataTable.Clear(); } if (IAppHandler.OpenPreviousForm(this) != null) { IAppHandler.OpenPreviousForm(this).Run(); } this.Dispose(); }
//This will update the value on MasterColumns and DataTables before performing Save or Edit private void SetColumnsValue() { DataRow row = null; if (FormState == FormStates.fsNew) { row = VMasterDataTable.NewRow(); } else { row = VMasterDataTable.Rows.Find(IAppHandler.ConvertMaskValue(Parameters[0].Value)); row.BeginEdit(); } foreach (JkMasterColumn col in MasterColumns) { if (String.IsNullOrWhiteSpace(col.ControlName)) { if (!String.IsNullOrWhiteSpace(col.DefaultValue)) { if ((col.Name == "CreatedById" || col.Name == "DateCreated") && FormState == FormStates.fsEdit) { col.Value = col.Value; } else { col.Value = IAppHandler.ConvertMaskValue(col.DefaultValue); } } } else { col.Value = IAppHandler.GetControlsValue(Controls.Find(col.ControlName, true).First()); } row[col.Name] = col.Value ?? DBNull.Value; } if (FormState == FormStates.fsNew) { VMasterDataTable.Rows.Add(row); } else { row.EndEdit(); } }
private void AssignMaskedParameters() { JkDataSet dataset = null; foreach (Control control in Controls) { if (control.GetType().Name == "JkDataSet") { dataset = (control as JkDataSet); foreach (JkDataSetParameter param in dataset.Parameters) { param.Value = IAppHandler.ConvertMaskValue(param.Value).ToString(); } dataset.Open(); } } }
protected override void UpdateControls() { base.UpdateControls(); foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { if (FormState == FormStates.fsView) { DataSet.GridView.EditMode = DataGridViewEditMode.EditProgrammatically; } else { DataSet.GridView.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; } DataSet.GridView.AllowUserToAddRows = FormState != FormStates.fsView; DataSet.GridView.AllowUserToDeleteRows = FormState != FormStates.fsView; } }
private void IMasterDetailForm_SetupControl() { foreach (JkDetailDataSet DataSet in IAppHandler.FindControlByType("JkDetailDataSet", this)) { //workaround to hide columns that are generated automatically by .Net foreach (DataGridViewColumn column in DataSet.GridView.Columns) { if (!String.IsNullOrWhiteSpace(column.DataPropertyName)) { column.Visible = DataSet.Columns.Find(c => c.Name == column.DataPropertyName).Visible; } } //workaround to fix temporary columns that are not recomputing //after cancelling a transaction DataSet.GridView.ComputeFooterValues(); } splitContainerMasterDetail.Panel1.Focus(); }
//loads selection for printout private void LoadPrintoutSelection() { if (FormState == FormStates.fsView && !IsListForm()) { foreach (DataRow row in VLookupProvider.dstSystemPrintouts.DataTable.Select(String.Format("FormCaption = '{0}'", this.Caption))) { ToolStripMenuItem item = new ToolStripMenuItem(); item.Name = "toolStripMenuItemPrint" + row["Report"].ToString().Replace(" ", ""); item.Text = row["Report"].ToString(); item.Tag = row["PrintoutFormName"].ToString(); item.Click += (obj, ea) => { IParentForm reportForm = IAppHandler.FindForm(item.Tag.ToString(), "Printout", true); if (reportForm == null) { IMessageHandler.ShowError(ISystemMessages.PrintoutNotSet); } else { IAppHandler.AddUsedForm(this); this.Hide(); if (reportForm.Parameters.Find(p => p.Name == "Id") != null) { reportForm.Parameters.Find(p => p.Name == "Id").Value = this.Parameters.Find(pa => pa.Name == "Id").Value; } (reportForm as IReportForm).PrintoutHeader = this.Caption; reportForm.Run(); } }; if (btnPreview.DropDownItems.Find(item.Name, true).Length == 0) { btnPreview.DropDownItems.Add(item); } } } }
private void IMasterForm_ValidateSave() { ValidationFails = false; Object value = null; foreach (JkMasterColumn column in MasterColumns) { if (!String.IsNullOrWhiteSpace(column.ControlName) && column.Required) { value = IAppHandler.GetControlsValue(Controls.Find(column.ControlName, true).First()); if (String.IsNullOrWhiteSpace(Convert.ToString(value))) { IMessageHandler.Inform(ISystemMessages.FillRequiredFieldMessage); ValidationFails = true; return; } } } }
//Gets the default value set from MasterColumn then assign it to controls upon creating new transaction private void AssignControlsDefaultValue() { Control control; foreach (JkMasterColumn column in MasterColumns) { column.Value = null; if (!String.IsNullOrWhiteSpace(column.ControlName)) { control = Controls.Find(column.ControlName, true).First(); if (String.IsNullOrWhiteSpace(column.DefaultValue)) { IAppHandler.ClearControlsValue(control); } else { IAppHandler.SetControlsValue(control, IAppHandler.ConvertMaskValue(column.DefaultValue)); } } } }
private void btnDone_Click(object sender, EventArgs e) { dataGridView.EndEdit(); if (dstMaster.DataTable.Select("Selected = 1").Length == 0) { IMessageHandler.Inform(ISystemMessages.SelectAtLeastOne); return; } try { IAppHandler.StartBusy("Filtering report"); DialogResult = DialogResult.OK; PerformOperation(); this.Close(); } finally { IAppHandler.EndBusy("Filtering report"); } }
public App(string virtualDirectory, string localDirectory) { this.fHandlers = new List<IAppHandler>(); if (!virtualDirectory.StartsWith("/")) virtualDirectory = "/" + virtualDirectory; this.Mime = new HttpMimeMap(); this.LocalDirectory = localDirectory; this.VirtualDirectory = virtualDirectory.StartsWith("/") ? virtualDirectory.ToLower() : "/" + virtualDirectory.ToLower(); this.Folder = new AppFolder(this); this.DefaultPages = new List<string>(); this.Active = true; // Generate the key this.Oid = this.GenerateKey(); // Load the configuration from the local directory this.fConfig = AppConfig.Load(this); // Store the list of hosts in the AppDomain var hosts = fConfig.Hosts.ToArray(); AppDomain.CurrentDomain.SetData("hosts", hosts); // Create a new scope and attach it to the context. var context = new ScriptContext(); this.fScope = new AppScope(this, context); // Prepare new handlers var handlers = new IAppHandler[] { new HandlerResource(), new HandlerApp(), new HandlerView(), new HandlerElement(), new HandlerCss(), new HandlerJs() }; // Register other handlers if (handlers != null && handlers.Length > 0) { for (int i = 0; i < handlers.Length; ++i) this.Register(handlers[i]); } // Populate the repositories this.Folder.Invalidate(); }
/// <summary> /// Unregisters a web handler that handles a particular type of resource /// </summary> public void Unregister(IAppHandler handler) { if (Handlers.Contains(handler)) { handler.OnUnregister(this); fHandlers.Remove(handler); } }
/// <summary> /// Registers a Web handler to handle a particular type of resource /// </summary> /// <param name="handler">Web handler to register</param> public void Register(IAppHandler handler) { if (!Handlers.Contains(handler)) { handler.OnRegister(this); fHandlers.Add(handler); } }
public ManualsXapp(IAppHandler aHandler) { iHandler = aHandler; iXappMimeTypes = new Dictionary<string, string>(); iXappMimeTypes.Add(".css", "text/css"); iGitMimeTypes = new Dictionary<string, string>(); iGitMimeTypes.Add(".md", "text/md"); iGitMimeTypes.Add(".html", "text/html"); iGitMimeTypes.Add(".css", "text/css"); iGitMimeTypes.Add(".js", "text/javascript"); iGitMimeTypes.Add(".jpg", "image/jpg"); iGitMimeTypes.Add(".png", "image/png"); iResourceFolder = new ResourceFolder("http", iXappMimeTypes, iHandler.AppRoot); iGitPath = Path.Combine(iHandler.DataRoot, "GitManuals"); iRepository = GitFactory.Open(iGitPath, "git://github.com/cropotkin/Documentation.git"); iRepository.Fetch(); iMarkdown = new Markdown(); iAdvancedModule = new AdvancedModule("openhome.org.advanced", iHandler.AppRoot); iHandler.RegisterXapp(this, "xapp/main.css", iAdvancedModule); }
public HandlerResponse BindParamToAction(MethodInfo methodInfo, HttpContext context, IAppHandler instance) { ParameterInfo[] parameterInfos = methodInfo.GetParameters(); /*获取ajax请求的数据*/ StreamReader reader = new StreamReader(context.Request.InputStream); string bodyText = reader.ReadToEnd(); // string bodyText = "{ \"result\":{ \"Result\":-1,\"Message\":\"不支持GET请求\",\"PostTime\":\"2012-2-2\"},\"ido\":233}"; // string bodyText = "{ \"Result\":-1,\"Message\":\"不支持GET请求\",\"PostTime\":\"2012-2-2\",\"ido\":236}"; if (String.IsNullOrEmpty(bodyText)) return new HandlerResponse().GetDefaultResponse(); /*将数据转换到字典*/ JavaScriptSerializer jss = new JavaScriptSerializer(); Dictionary<string, object> dictionary = jss.Deserialize<Dictionary<string, object>>(bodyText); object[] parameters = new object[parameterInfos.Length]; int index = 0; foreach (ParameterInfo info in parameterInfos) { parameters[index] = AddValueToPamars(info.Name, info.ParameterType, dictionary); index++; } var invoker = FastReflectionCaches.MethodInvokerCache.Get(methodInfo); object result = invoker.Invoke(instance, parameters); return (HandlerResponse)result; }
public IApp Create(IAppHandler aHandler) { return (new ManualsApp(aHandler)); }
public ManualsApp(IAppHandler aHandler) { iXapp = new ManualsXapp(aHandler); }