package net.sourceforge.squirrel_sql.client.session.mainpanel; import net.sourceforge.squirrel_sql.client.session.ISession; import net.sourceforge.squirrel_sql.client.session.SQLExecutionInfo; import net.sourceforge.squirrel_sql.fw.datasetviewer.DataSetException; import net.sourceforge.squirrel_sql.fw.datasetviewer.IDataSetUpdateableTableModel; import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetDataSet; import net.sourceforge.squirrel_sql.fw.datasetviewer.ResultSetMetaDataDataSet; import net.sourceforge.squirrel_sql.fw.id.IntegerIdentifierFactory; import java.util.ArrayList; public class ResultTabFactory { private IntegerIdentifierFactory _idFactory = new IntegerIdentifierFactory(); private ISession _session; private SQLResultExecuterPanelFacade _sqlResultExecuterPanelFacade; public ResultTabFactory(ISession session, SQLResultExecuterPanelFacade sqlResultExecuterPanelFacade) { _session = session; _sqlResultExecuterPanelFacade = sqlResultExecuterPanelFacade; } public ResultTab createResultTab(SQLExecutionInfo exInfo, IDataSetUpdateableTableModel creator, ResultSetDataSet rsds, ResultSetMetaDataDataSet mdds) throws DataSetException { final ResultTabListener resultTabListener = new ResultTabListener() { public void rerunSQL(String sql, IResultTab resultTab) { _sqlResultExecuterPanelFacade.rerunSQL(sql, resultTab); } }; ResultTab tab = new ResultTab(_session, _sqlResultExecuterPanelFacade, _idFactory.createIdentifier(), exInfo, creator, resultTabListener); tab.showResults(rsds, mdds, exInfo); return tab; } public ErrorPanel createErrorPanel(ArrayList<String> sqlExecErrorMsgs, String lastExecutedStatement) { ErrorPanelListener errorPanelListener = new ErrorPanelListener() { @Override public void removeErrorPanel(ErrorPanel errorPanel) { _sqlResultExecuterPanelFacade.removeErrorPanel(errorPanel); } }; return new ErrorPanel(_session, errorPanelListener, sqlExecErrorMsgs, lastExecutedStatement); } }