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();
            }
        }
Exemple #2
0
        //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();
            }
        }
Exemple #4
0
        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");
            }
        }
Exemple #5
0
        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();
            }
        }
Exemple #6
0
 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()));
        }
Exemple #9
0
        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();
        }
Exemple #10
0
 private void txtBalance_Enter(object sender, EventArgs e)
 {
     if (FormState != FormStates.fsView)
     {
         IAppHandler.SetLabelColorOnEnter(lblBalance);
     }
 }
Exemple #11
0
 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();
     }
 }
Exemple #14
0
        private void IReportForm_SetupData()
        {
            foreach (JkFormParameter param in Parameters)
            {
                param.Value = IAppHandler.ConvertMaskValue(param.Value).ToString();
            }

            CreateReportParameters();
        }
Exemple #15
0
 public static void RegisterAppHandler(IAppHandler handler)
 {
     if (s_Handlers.ContainsKey(handler.Name))
     {
         s_Handlers[handler.Name] = handler;
     }
     else
     {
         s_Handlers.Add(handler.Name, handler);
     }
 }
Exemple #16
0
 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);
                }
            }
        }
Exemple #19
0
        private void IMasterForm_AfterSave()
        {
            if (FormState == FormStates.fsNew)
            {
                foreach (JkSeriesProvider series in IAppHandler.FindControlByType("JkSeriesProvider", this))
                {
                    series.UpdateSeries();
                }
            }

            RefreshDataSet();
        }
Exemple #20
0
 private void GenerateReport()
 {
     try
     {
         IAppHandler.StartBusy("Generating report");
         RefreshReport();
     }
     finally
     {
         IAppHandler.EndBusy("Generating report");
     }
 }
Exemple #21
0
 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;
                    }
                }
            }
        }
Exemple #23
0
 //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();
        }
Exemple #25
0
        //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);
                    }
                }
            }
        }
Exemple #30
0
        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;
                    }
                }
            }
        }
Exemple #31
0
        //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");
            }
        }
Exemple #33
0
        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();
        }
Exemple #34
0
 /// <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);
     }
 }
Exemple #35
0
 /// <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);
     }
 }
Exemple #36
0
        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;
 }
Exemple #38
0
 public IApp Create(IAppHandler aHandler)
 {
     return (new ManualsApp(aHandler));
 }
Exemple #39
0
 public ManualsApp(IAppHandler aHandler)
 {
     iXapp = new ManualsXapp(aHandler);
 }