package rocks.inspectit.ui.rcp.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.handlers.HandlerUtil;
import rocks.inspectit.shared.all.communication.data.InvocationSequenceData;
import rocks.inspectit.shared.all.communication.data.SqlStatementData;
import rocks.inspectit.ui.rcp.util.ClipboardUtil;
/**
* Handler that copies the SQL Query string to the clipboard.
*
* @author Ivan Senic
*
*/
public class CopySqlQueryHandler extends AbstractHandler implements IHandler {
/**
* {@inheritDoc}
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Object firstElement = ((StructuredSelection) HandlerUtil.getCurrentSelection(event)).getFirstElement();
if (firstElement instanceof InvocationSequenceData) {
InvocationSequenceData data = (InvocationSequenceData) firstElement;
SqlStatementData sqlStatementData = data.getSqlStatementData();
if (null == sqlStatementData) {
return null;
}
ClipboardUtil.textToClipboard(HandlerUtil.getActiveShell(event).getDisplay(), data.getSqlStatementData().getSqlWithParameterValues());
}
if (firstElement instanceof SqlStatementData) {
SqlStatementData sqlStatementData = (SqlStatementData) firstElement;
ClipboardUtil.textToClipboard(HandlerUtil.getActiveShell(event).getDisplay(), sqlStatementData.getSqlWithParameterValues());
}
return null;
}
}