SybaseASEExceptionFormatter formatter = new SybaseASEExceptionFormatter();
session.setExceptionFormatter(formatter);
// Add context menu items to the object tree's view and procedure nodes.
IObjectTreeAPI otApi = session.getSessionInternalFrame().getObjectTreeAPI();
otApi.addToPopup(DatabaseObjectType.VIEW, new ScriptSybaseASEViewAction(getApplication(), _resources, session));
otApi.addToPopup(DatabaseObjectType.PROCEDURE, new ScriptSybaseASEProcedureAction(getApplication(), _resources, session));
otApi.addDetailTab(DatabaseObjectType.VIEW,
new ViewSourceTab(i18n.SHOW_VIEW_SOURCE, stmtSep));
TableWithChildNodesExpander tableExp = new TableWithChildNodesExpander();
tableExp.setTableIndexExtractor(new SybaseTableIndexExtractorImpl());
tableExp.setTableTriggerExtractor(new SybaseTableTriggerExtractorImpl());
otApi.addExpander(DatabaseObjectType.TABLE, tableExp);
otApi.addDetailTab(DatabaseObjectType.INDEX, new DatabaseObjectInfoTab());
//otApi.addDetailTab(DatabaseObjectType.INDEX, new IndexDetailsTab());
otApi.addDetailTab(DatabaseObjectType.TRIGGER, new DatabaseObjectInfoTab());
otApi.addDetailTab(DatabaseObjectType.TRIGGER_TYPE_DBO, new DatabaseObjectInfoTab());
otApi.addDetailTab(DatabaseObjectType.TRIGGER,
new TriggerSourceTab(i18n.TRIGGER_HINT, stmtSep));
return new PluginSessionCallback()
{