return mssqlMenu;
}
private JMenu addToMssqlCatalogMenu(JMenu menu) {
final IApplication app = getApplication();
final ActionCollection coll = app.getActionCollection();
final MssqlPlugin plugin = this;
final JMenu mssqlMenu;
if (menu == null)
mssqlMenu = _resources.createMenu(MssqlResources.IMenuResourceKeys.MSSQL);
else
mssqlMenu = menu;
_resources.addToMenu(coll.get(ShrinkDatabaseAction.class),mssqlMenu);
_resources.addToMenu(coll.get(TruncateLogAction.class),mssqlMenu);
final JMenu shrinkDBFileMenu = _resources.createMenu(MssqlResources.IMenuResourceKeys.SHRINKDBFILE);
shrinkDBFileMenu.addMenuListener(new MenuListener() {
public void menuSelected(MenuEvent e) {
final JMenu menu = (JMenu) e.getSource();
menu.removeAll();
removeActionsOfType(coll,ShrinkDatabaseFileAction.class);
final ObjectTreeNode[] nodes = _treeAPI.getSelectedNodes();
if (nodes.length != 1)
return;
try {
if (nodes[0].getDatabaseObjectType() != DatabaseObjectType.CATALOG)
return;
DatabaseFileInfo info = MssqlIntrospector.getDatabaseFileInfo(nodes[0].toString(), _session.getSQLConnection());
Object[] files = info.getDataFiles();
for (int i = 0; i < files.length; i++) {
DatabaseFile file = (DatabaseFile) files[i];
final ShrinkDatabaseFileAction shrinkDatabaseFileAction = new ShrinkDatabaseFileAction(app,_resources,plugin,nodes[0].toString(),file);
shrinkDatabaseFileAction.setSession(_session);
coll.add(shrinkDatabaseFileAction);
_resources.addToMenu(shrinkDatabaseFileAction,menu);
}
menu.addSeparator();
files = info.getLogFiles();
for (int i = 0; i < files.length; i++) {
DatabaseFile file = (DatabaseFile) files[i];
final ShrinkDatabaseFileAction shrinkDatabaseFileAction = new ShrinkDatabaseFileAction(app,_resources,plugin,nodes[0].toString(),file);
shrinkDatabaseFileAction.setSession(_session);
coll.add(shrinkDatabaseFileAction);
_resources.addToMenu(shrinkDatabaseFileAction,menu);
}
}
catch (java.sql.SQLException ex) {
s_log.error("Exception while attempting to shrink database file", ex);