public abstract T generate(final Project project, final Editor editor, final PsiFile file);
public void navigate(final DomElement element) {
if (element != null && element.isValid()) {
final DomElement copy = element.createStableCopy();
final DomElementNavigationProvider navigateProvider = getNavigationProviderName(element.getManager().getProject());
if (navigateProvider != null && navigateProvider.canNavigate(copy)) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
doNavigate(navigateProvider, copy);
}
});