package net.sourceforge.sqlexplorer.history.actions; import net.sourceforge.sqlexplorer.IConstants; import net.sourceforge.sqlexplorer.Messages; import net.sourceforge.sqlexplorer.history.SQLHistoryElement; import net.sourceforge.sqlexplorer.plugin.SQLExplorerPlugin; import net.sourceforge.sqlexplorer.plugin.editors.SQLEditor; import net.sourceforge.sqlexplorer.util.ImageUtil; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.widgets.TableItem; import org.eclipse.ui.IWorkbenchPage; public class AppendToEditorAction extends AbstractHistoryContextAction { private ImageDescriptor _imageOpenInEditor = ImageUtil.getDescriptor("Images.AppendToEditor"); public ImageDescriptor getImageDescriptor() { return _imageOpenInEditor; } public String getText() { return Messages.getString("SQLHistoryView.AppendToEditor"); } public boolean isEnabled() { TableItem[] ti = _table.getSelection(); if (ti == null || ti.length == 0) { return false; } IWorkbenchPage page = SQLExplorerPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (page == null) { return false; } if (page.getActiveEditor() == null) { return false; } if (!(page.getActiveEditor() instanceof SQLEditor)) { return false; } return true; } public void run() { try { TableItem[] ti = _table.getSelection(); if (ti == null || ti.length == 0) { return; } String queryDelimiter = SQLExplorerPlugin.getDefault().getPluginPreferences().getString( IConstants.SQL_QRY_DELIMITER); StringBuffer copiedText = new StringBuffer(); for (int i = 0; i < ti.length; i++) { SQLHistoryElement el = (SQLHistoryElement) ti[i].getData(); copiedText.append(el.getRawSQLString()); copiedText.append(queryDelimiter); if (ti.length > 1) { copiedText.append("\n"); } } IWorkbenchPage page = SQLExplorerPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (page == null) { return; } SQLEditor editorPart = (SQLEditor) page.getActiveEditor(); editorPart.setText(editorPart.getSQLToBeExecuted() + "\n" + copiedText.toString()); } catch (Throwable e) { SQLExplorerPlugin.error("Error creating sql editor", e); } } }