private void OpenDatabase() { // Preguntamos si se quiere salvar lo actual. SaveDatabase(); // Abrimos la base de datos. string file; if (DatabaseOpenDialog.Show(mainWindow, out file) == ResponseType.Ok) { // El usuario acepta la apertura del archivo. MathTextDatabase database = MathTextDatabase.Load(file); if (database == null) { // No se abrio un archivo de base de datos, informamos. OkDialog.Show(this.mainWindow, MessageType.Warning, "El archivo «{0}» no contiene una base de datos " + "correcta, y no se pudo abrir.", file); return; } SetDatabase(database); SetTitle(file); databaseModified = false; LogLine("¡Base de datos «" + file + "» cargada correctamente!"); } }
/// <summary> /// Cargamos la base de datos que vamos a utilizar para intentar /// reconocer las imagenes como caracteres. /// </summary> /// <param name="path"> /// La ruta del fichero donde esta la base de datos. /// </param> public void LoadDatabase(string path) { MathTextDatabase database = MathTextDatabase.Load(path); database.StepDone += new ProcessingStepDoneHandler(OnProcessingStepDone); databases.Add(database); }
/// <summary> /// Añade una base de datos a la lista. /// </summary> /// <param name="databasePath"> /// La ruta de la base de datos. /// </param> private void AddDatabase(string databasePath) { MathTextDatabase database = MathTextDatabase.Load(databasePath); if (database == null) { // No se abrio un archivo de base de datos, informamos. OkDialog.Show(this.databaseManagerDialog, MessageType.Warning, "El archivo «{0}» no contiene una base de datos correcta, y no se pudo abrir.", databasePath); return; } DatabaseFileInfo databaseInfo = new DatabaseFileInfo(); databaseInfo.Database = database; databaseInfo.Path = databasePath; if (!databaseFilesInfo.Contains(databaseInfo)) { // Lo añadimos a la coleccion. databaseFilesInfo.Add(databaseInfo); TreeIter newItem = databasesLS.AppendValues(Path.GetFileName(databasePath), database.DatabaseTypeShortDescription, databasePath, databaseInfo); // Seleccionamos la fila añadida. databasesTV.Selection.SelectIter(newItem); TreePath newPath = databasesLS.GetPath(newItem); databasesTV.ScrollToCell(newPath, databasesTV.Columns[0], true, 1.0f, 0.0f); } else { OkDialog.Show(this.databaseManagerDialog, MessageType.Info, "La base de datos del fichero «{0}» ya se encuentra en la lista y no se añadirá de nuevo.", Path.GetFileName(databasePath)); } }