package org.reldb.dbrowser.ui.content.rel.script; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.graphics.Image; import org.reldb.dbrowser.ui.RevDatabase; import org.reldb.dbrowser.ui.content.rel.DbTreeAction; import org.reldb.dbrowser.ui.content.rel.DbTreeItem; import org.reldb.dbrowser.ui.content.rel.NewItemDialog; import org.reldb.dbrowser.ui.content.rel.RelPanel; import org.reldb.dbrowser.ui.content.rel.RenameItemDialog; public class ScriptRenamer extends DbTreeAction { public ScriptRenamer(RelPanel relPanel) { super(relPanel); } @Override public void go(DbTreeItem item, Image image) { RevDatabase database = new RevDatabase(relPanel.getConnection()); CTabItem tab = relPanel.getTab(item.getTabName()); if (tab != null) { relPanel.getTabFolder().setSelection(tab); MessageDialog.openInformation(relPanel.getShell(), "Note", "You must close the '" + item.getTabName() + "' tab first."); } else { RenameItemDialog namer = new RenameItemDialog(relPanel.getShell(), item.getName()); if (namer.open() != NewItemDialog.OK) return; if (database.scriptExists(namer.getName())) { MessageDialog.openInformation(relPanel.getShell(), "Note", "A script named " + namer.getName() + " already exists."); return; } boolean result = database.renameScript(item.getName(), namer.getName()); if (!result) { MessageDialog.openError(relPanel.getShell(), "Error", "Unable to rename script " + item.getName() + " to " + namer.getName() + "."); return; } relPanel.redisplayed(); } } }