//#condition !(TinyMode || TinyModeExport || LightMode || LightModeExport)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.albite.dictionary;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
/**
*
* @author albus
*/
public class DictionaryManager {
private String folder = null;
private Dictionary[] dictionaries = null;
public final void reloadDictionaries(final String folder) {
if (folder != null
&& !folder.equals("")
&& !folder.equalsIgnoreCase(this.folder)) {
this.folder = folder;
reloadDictionaries();
}
}
public void closeDictionaries() {
if (dictionaries != null) {
for (int i = 0; i < dictionaries.length; i++) {
try {
dictionaries[i].close();
} catch (IOException e) {}
}
}
}
public final void reloadDictionaries() {
closeDictionaries();
final Vector dicts = new Vector();
if (folder == null) {
return;
}
try {
FileConnection f =
(FileConnection) Connector.open(folder, Connector.READ);
if (f.exists() && f.isDirectory()) {
final Enumeration filesList =
f.list("*" + Dictionary.FILE_EXTENSION, true);
while (filesList.hasMoreElements()) {
final String s = (String) filesList.nextElement();
try {
/*
* Trying to load dictionary
*/
final Dictionary dict =
new Dictionary(folder + s);
dicts.addElement(dict);
} catch (DictionaryException e) {
/*
* If a problem has occurred,
* don't add the dict.
*/
}
}
}
} catch (Exception e) {
/*
* Couldn't open the folder
*/
}
final int size = dicts.size();
if (size > 0) {
dictionaries = new Dictionary[size];
for (int i = 0; i < size; i++) {
dictionaries[i] = (Dictionary) dicts.elementAt(i);
}
} else {
dictionaries = null;
}
}
public final Dictionary[] getDictionaries() {
return dictionaries;
}
/**
* Unloads dicts' indices
*/
public final void unloadDictionaries() {
if (dictionaries != null) {
for (int i = 0; i < dictionaries.length; i++) {
dictionaries[i].unload();
}
}
}
}