package ch.uzh.ifi.attempto.acewiki.gf;
import ch.uzh.ifi.attempto.acewiki.core.EditorController;
public class GfEditorControllerFactory {
public static final int MAX_MENU_GROUP_COUNT = 7;
/**
* <p>Creates an {@code EditorController} on the basis of the grammar and
* the current language. The grammar determines the largest categories to
* show (other tokens go into the default category) and the category
* labels which respect the current language.</p>
*/
public static EditorController createFromCats(GfGrammar grammar, String language) {
EditorController ec = new EditorController();
int shift = 0;
int menuGroupCount = 1;
ec.setAutocompleteTokens(".", "?");
ec.setDefaultMenuGroup("..."); // TODO: localize
ec.addMenuGroup("...", shift);
for (String cat : grammar.getLargestCategories(MAX_MENU_GROUP_COUNT)) {
if (++menuGroupCount > MAX_MENU_GROUP_COUNT) {
break;
}
shift += 60;
String menuGroup = grammar.getCategoryName(cat, language);
ec.addMenuGroup(menuGroup, shift);
ec.addPlainCategory(cat, menuGroup);
}
return ec;
}
}