package rocks.inspectit.ui.rcp.details.generator.impl;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import rocks.inspectit.shared.all.communication.DefaultData;
import rocks.inspectit.shared.all.communication.data.SqlStatementData;
import rocks.inspectit.ui.rcp.details.DetailsCellContent;
import rocks.inspectit.ui.rcp.details.DetailsTable;
import rocks.inspectit.ui.rcp.details.YesNoDetailsCellContent;
import rocks.inspectit.ui.rcp.details.generator.IDetailsGenerator;
import rocks.inspectit.ui.rcp.repository.RepositoryDefinition;
/**
* SQL information details generator.
*
* @author Ivan Senic
*
*/
public class SqlDetailsGenerator implements IDetailsGenerator {
/**
* {@inheritDoc}
*/
@Override
public boolean canGenerateFor(DefaultData defaultData) {
return defaultData instanceof SqlStatementData;
}
/**
* {@inheritDoc}
*/
@Override
public DetailsTable generate(DefaultData defaultData, RepositoryDefinition repositoryDefinition, Composite parent, FormToolkit toolkit) {
SqlStatementData sqlStatementData = (SqlStatementData) defaultData;
DetailsTable table = new DetailsTable(parent, toolkit, "SQL Info", 1);
table.addContentRow("Is Prepared:", null, new DetailsCellContent[] { new YesNoDetailsCellContent(sqlStatementData.isPreparedStatement()) });
table.addContentRow("Database:", null, new DetailsCellContent[] { new DetailsCellContent(sqlStatementData.getDatabaseProductName()) });
table.addContentRow("Database version:", null, new DetailsCellContent[] { new DetailsCellContent(sqlStatementData.getDatabaseProductVersion()) });
table.addContentRow("Database URL:", null, new DetailsCellContent[] { new DetailsCellContent(sqlStatementData.getDatabaseUrl()) });
table.addContentRow("SQL:", null, new DetailsCellContent[] { new DetailsCellContent(sqlStatementData.getSqlWithParameterValues()) });
return table;
}
}