[Squirrel-sql-commits] sql12/plugins/oracle/src/net/sourceforge/squirrel_sql/plugins/oracle/SGAtrac
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Gerd W. <ger...@us...> - 2006-11-17 01:36:35
|
Update of /cvsroot/squirrel-sql/sql12/plugins/oracle/src/net/sourceforge/squirrel_sql/plugins/oracle/SGAtrace In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv12204/plugins/oracle/src/net/sourceforge/squirrel_sql/plugins/oracle/SGAtrace Modified Files: SGATraceInternalFrame.java I18NStrings.properties SGATracePanel.java Log Message: Improved handling of extra internal frames of Oracle plugin, bug fixes and clean up. Index: SGATraceInternalFrame.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/oracle/src/net/sourceforge/squirrel_sql/plugins/oracle/SGAtrace/SGATraceInternalFrame.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SGATraceInternalFrame.java 29 Oct 2005 19:22:39 -0000 1.2 --- SGATraceInternalFrame.java 17 Nov 2006 01:36:31 -0000 1.3 *************** *** 18,145 **** * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - import java.awt.event.ActionEvent; - import java.awt.event.ActionListener; - import java.awt.BorderLayout; ! import javax.swing.Icon; ! import javax.swing.JCheckBox; ! import javax.swing.JLabel; ! import javax.swing.JPanel; ! import javax.swing.JSpinner; ! import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameEvent; ! import net.sourceforge.squirrel_sql.fw.id.IIdentifier; ! import net.sourceforge.squirrel_sql.fw.gui.ToolBar; ! import net.sourceforge.squirrel_sql.fw.util.Resources; ! import net.sourceforge.squirrel_sql.fw.util.StringManager; ! import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; ! import net.sourceforge.squirrel_sql.client.IApplication; ! import net.sourceforge.squirrel_sql.client.session.ISession; ! import net.sourceforge.squirrel_sql.client.gui.session.BaseSessionInternalFrame; - public class SGATraceInternalFrame extends BaseSessionInternalFrame - { - private static final StringManager s_stringMgr = - StringManagerFactory.getStringManager(SGATraceInternalFrame.class); ! /** Application API. */ ! private final IApplication _app; ! /** ID of the session for this window. */ ! private IIdentifier _sessionId; ! private SGATracePanel _sgaTracePanel; ! /** Toolbar for window. */ ! private SGATraceToolBar _toolBar; ! private Resources _resources; ! public SGATraceInternalFrame(ISession session, Resources resources) ! { ! super(session, session.getTitle(), true, true, true, true); ! _app = session.getApplication(); ! _resources = resources; ! _sessionId = session.getIdentifier(); ! setVisible(false); ! createGUI(session); ! } - public SGATracePanel getSGATracePanel() - { - return _sgaTracePanel; - } ! private void createGUI(ISession session) ! { ! setVisible(false); ! addInternalFrameListener(new InternalFrameAdapter() { ! public void internalFrameClosing(InternalFrameEvent e) { ! //Turn off auto refresh when we are shutting down. ! _sgaTracePanel.setAutoRefresh(false); ! } ! }); - Icon icon = _resources.getIcon(getClass(), "frameIcon"); //i18n - if (icon != null) - { - setFrameIcon(icon); - } ! _sgaTracePanel = new SGATracePanel(getSession()); ! _toolBar = new SGATraceToolBar(getSession()); ! JPanel contentPanel = new JPanel(new BorderLayout()); ! contentPanel.add(_toolBar, BorderLayout.NORTH); ! contentPanel.add(_sgaTracePanel, BorderLayout.CENTER); ! setContentPane(contentPanel); ! validate(); ! } ! /** The class representing the toolbar at the top of a SGA Trace internal frame*/ ! private class SGATraceToolBar extends ToolBar ! { ! SGATraceToolBar(ISession session) ! { ! super(); ! createGUI(session); ! } ! private void createGUI(ISession session) ! { ! IApplication app = session.getApplication(); ! setUseRolloverButtons(true); ! setFloatable(false); ! add(new GetSGATraceAction(app, _resources, _sgaTracePanel)); ! //Create checkbox for enabling auto refresh ! // i18n[oracle.enableAutoRefresh=Enable auto refresh] ! final JCheckBox autoRefresh = new JCheckBox(s_stringMgr.getString("oracle.enableAutoRefresh"), false); ! autoRefresh.addActionListener(new ActionListener() { ! public void actionPerformed(ActionEvent e) { ! _sgaTracePanel.setAutoRefresh(autoRefresh.isSelected()); ! } ! }); ! add(autoRefresh); ! //Create spinner for update period ! final SpinnerNumberModel model = new SpinnerNumberModel(10, 1, 60, 5); ! final JSpinner refreshRate = new JSpinner(model); ! refreshRate.addChangeListener(new ChangeListener() { ! public void stateChanged(ChangeEvent e) { ! _sgaTracePanel.setAutoRefreshPeriod(model.getNumber().intValue()); ! } ! }); ! add(refreshRate); ! // i18n[oracle.refreshSecons=(seconds)] ! add(new JLabel(s_stringMgr.getString("oracle.refreshSecons"))); ! } ! } } --- 18,153 ---- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + import net.sourceforge.squirrel_sql.client.IApplication; + import net.sourceforge.squirrel_sql.client.session.ISession; + import net.sourceforge.squirrel_sql.fw.util.Resources; + import net.sourceforge.squirrel_sql.fw.util.StringManager; + import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + import net.sourceforge.squirrel_sql.plugins.oracle.OracleInternalFrame; + import net.sourceforge.squirrel_sql.plugins.oracle.OracleInternalFrameCallback; ! import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameEvent; + import java.awt.*; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; ! public class SGATraceInternalFrame extends OracleInternalFrame ! { ! private static final String PREF_PART_SGA_FRAME = "SGAFrame"; + private static final StringManager s_stringMgr = + StringManagerFactory.getStringManager(SGATraceInternalFrame.class); ! private SGATracePanel _sgaTracePanel; ! /** ! * Toolbar for window. ! */ ! private SGATraceToolBar _toolBar; ! private Resources _resources; ! public SGATraceInternalFrame(ISession session, Resources resources) ! { ! // I18n[oracle.sgaTitle=Oracle SGA trace for: {0}] ! super(session, s_stringMgr.getString("oracle.sgaTitle", session.getTitle())); ! _resources = resources; ! createGUI(session); ! } ! public SGATracePanel getSGATracePanel() ! { ! return _sgaTracePanel; ! } ! private void createGUI(ISession session) ! { ! addInternalFrameListener(new InternalFrameAdapter() ! { ! public void internalFrameClosing(InternalFrameEvent e) ! { ! SGATraceInternalFrame.super.internalFrameClosing(_toolBar.isStayOnTop(), _sgaTracePanel.getAutoRefreshPeriod()); ! _sgaTracePanel.setAutoRefresh(false); ! } ! }); ! Icon icon = _resources.getIcon(getClass(), "frameIcon"); //i18n ! if (icon != null) ! { ! setFrameIcon(icon); ! } ! OracleInternalFrameCallback cb = new OracleInternalFrameCallback() ! { ! ! public void createPanelAndToolBar(boolean stayOnTop, int autoRefeshPeriod) ! { ! _sgaTracePanel = new SGATracePanel(getSession(), autoRefeshPeriod); ! _toolBar = new SGATraceToolBar(getSession(), stayOnTop, autoRefeshPeriod); ! JPanel contentPanel = new JPanel(new BorderLayout()); ! contentPanel.add(_toolBar, BorderLayout.NORTH); ! contentPanel.add(_sgaTracePanel, BorderLayout.CENTER); ! setContentPane(contentPanel); ! } ! }; + initFromPrefs(PREF_PART_SGA_FRAME, cb); ! } ! /** ! * The class representing the toolbar at the top of a SGA Trace internal frame ! */ ! private class SGATraceToolBar extends OracleToolBar ! { ! SGATraceToolBar(ISession session, boolean stayOnTop, int autoRefeshPeriod) ! { ! super(); ! createGUI(session, stayOnTop, autoRefeshPeriod); ! } ! private void createGUI(ISession session, boolean stayOnTop, int autoRefeshPeriod) ! { ! IApplication app = session.getApplication(); ! setUseRolloverButtons(true); ! setFloatable(false); ! add(new GetSGATraceAction(app, _resources, _sgaTracePanel)); ! addStayOnTop(stayOnTop); ! ! //Create checkbox for enabling auto refresh ! // i18n[oracle.enableAutoRefresh=Enable auto refresh] ! final JCheckBox autoRefresh = new JCheckBox(s_stringMgr.getString("oracle.enableAutoRefresh"), false); ! autoRefresh.addActionListener(new ActionListener() ! { ! public void actionPerformed(ActionEvent e) ! { ! _sgaTracePanel.setAutoRefresh(autoRefresh.isSelected()); ! } ! }); ! add(autoRefresh); ! ! //Create spinner for update period ! final SpinnerNumberModel model = new SpinnerNumberModel(autoRefeshPeriod, 1, 60, 5); ! final JSpinner refreshRate = new JSpinner(model); ! refreshRate.addChangeListener(new ChangeListener() ! { ! public void stateChanged(ChangeEvent e) ! { ! _sgaTracePanel.setAutoRefreshPeriod(model.getNumber().intValue()); ! } ! }); ! add(refreshRate); ! // i18n[oracle.refreshSecons=(seconds)] ! add(new JLabel(s_stringMgr.getString("oracle.refreshSecons"))); ! } ! } } Index: SGATracePanel.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/oracle/src/net/sourceforge/squirrel_sql/plugins/oracle/SGAtrace/SGATracePanel.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SGATracePanel.java 21 Jul 2006 11:11:58 -0000 1.6 --- SGATracePanel.java 17 Nov 2006 01:36:31 -0000 1.7 *************** *** 18,21 **** --- 18,22 ---- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + import java.awt.BorderLayout; import java.sql.PreparedStatement; *************** *** 41,262 **** public class SGATracePanel extends JPanel { ! private static final StringManager s_stringMgr = ! StringManagerFactory.getStringManager(SGATracePanel.class); ! /** Logger for this class. */ ! private static final ILogger s_log = LoggerController.createLogger(SGATracePanel.class); ! private static final String sgaTraceSQL = ! " SELECT a.SQL_Text, "+ ! " a.First_Load_Time, "+ ! " b.username, "+ ! " a.Parse_Calls, "+ ! " a.Executions, "+ ! " a.Sorts, "+ ! " a.Disk_Reads, "+ ! " a.Buffer_Gets, "+ ! " a.Rows_Processed, "+ ! " DECODE ( a.Executions, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Sorts / a.Executions, "+ ! " 3 ) ), "+ ! " DECODE ( a.Executions, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Disk_Reads / a.Executions, "+ ! " 3 ) ), "+ ! " DECODE ( a.Executions, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Buffer_Gets / a.Executions, "+ ! " 3 ) ), "+ ! " DECODE ( a.Executions, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Rows_Processed / a.Executions, "+ ! " 3 ) ), "+ ! " DECODE ( a.Rows_Processed, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Sorts / a.Rows_Processed, "+ ! " 3 ) ), "+ ! " DECODE ( a.Rows_Processed, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Disk_Reads / a.Rows_Processed, "+ ! " 3 ) ) , "+ ! " DECODE ( a.Rows_Processed, "+ ! " 0, "+ ! " 'N/A', "+ ! " ROUND ( a.Buffer_Gets / a.Rows_Processed, "+ ! " 3 ) ), "+ ! " a.Address || ':' || a.Hash_Value "+ ! " FROM v$sqlarea a, "+ ! " sys.all_users b "+ ! " WHERE a.parsing_user_id = b.user_id "; ! /** Current session. */ ! private ISession _session; ! private AutoWidthResizeTable _sgaTrace; ! private boolean hasResized = false; ! private Timer _refreshTimer = new Timer(true); ! private boolean _autoRefresh = false; ! private int _refreshPeriod = 10; ! public class RefreshTimerTask extends TimerTask { ! public void run() { ! populateSGATrace(); ! } ! } ! /** ! * Ctor. ! * ! * @param session Current session. ! * ! * @throws IllegalArgumentException ! * Thrown if a <TT>null</TT> <TT>ISession</TT> passed. ! */ ! public SGATracePanel(ISession session) ! { ! super(); ! _session = session; ! createGUI(); ! } ! /** Current session. */ ! public ISession getSession() { ! return _session; ! } ! private void resetTimer() { ! if (_refreshTimer != null) { ! _refreshTimer.cancel(); ! //Nil out the timer so that it can be gc'd ! _refreshTimer = null; ! } ! if (_autoRefresh && (_refreshPeriod > 0)) { ! _refreshTimer = new Timer(true); ! _refreshTimer.scheduleAtFixedRate(new RefreshTimerTask(), ! _refreshPeriod * 1000, ! _refreshPeriod * 1000); ! } ! } ! public void setAutoRefresh(boolean enable) { ! if (enable != _autoRefresh) { ! _autoRefresh = enable; ! resetTimer(); ! } ! } ! public boolean getAutoRefesh() { ! return _autoRefresh; ! } ! public void setAutoRefreshPeriod(int seconds) { ! if (_refreshPeriod != seconds) { ! _refreshPeriod = seconds; ! resetTimer(); ! } ! } ! public int getAutoRefreshPeriod() { ! return _refreshPeriod; ! } ! protected DefaultTableModel createTableModel() { ! DefaultTableModel tm = new DefaultTableModel(); ! // i18n[oracle.sqlText=SQL Text] ! tm.addColumn(s_stringMgr.getString("oracle.sqlText")); ! // i18n[oracle.firstLoadTime=First Load Time] ! tm.addColumn(s_stringMgr.getString("oracle.firstLoadTime")); ! // i18n[oracle.parseSchema=Parse Schema] ! tm.addColumn(s_stringMgr.getString("oracle.parseSchema")); ! // i18n[oracle.parseCalla=Parse Calls] ! tm.addColumn(s_stringMgr.getString("oracle.parseCalla")); ! // i18n[oracle.execution=Executions] ! tm.addColumn(s_stringMgr.getString("oracle.execution")); ! // i18n[oracle.sorts=Sorts] ! tm.addColumn(s_stringMgr.getString("oracle.sorts")); ! // i18n[oracle.diskReads=Disk Reads] ! tm.addColumn(s_stringMgr.getString("oracle.diskReads")); ! // i18n[oracle.bufferGets=Buffer Gets] ! tm.addColumn(s_stringMgr.getString("oracle.bufferGets")); ! // i18n[oracle.rows=Rows] ! tm.addColumn(s_stringMgr.getString("oracle.rows")); ! // i18n[oracle.sortsPerExec=Sorts per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.sortsPerExec")); ! // i18n[oracle.diskReadsPerExec=Disk Reads per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.diskReadsPerExec")); ! // i18n[oracle.bufferPerExec=Buffer Gets per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.bufferPerExec")); ! // i18n[oracle.rowsPerExec=Rows per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.rowsPerExec")); ! // i18n[oracle.sortsPerExec=Sorts per Row] ! tm.addColumn(s_stringMgr.getString("oracle.sortsPerExec")); ! // i18n[oracle.diskReadsPerRow=Disk Reads per Row] ! tm.addColumn(s_stringMgr.getString("oracle.diskReadsPerRow")); ! // i18n[oracle.buffer.getsPerRow=Buffer Gets per Row] ! tm.addColumn(s_stringMgr.getString("oracle.buffer.getsPerRow")); ! return tm; ! } ! public synchronized void populateSGATrace() { ! if (!OraclePlugin.checkObjectAccessible(_session, sgaTraceSQL)) { ! return; ! } ! try { ! PreparedStatement s = _session.getSQLConnection().getConnection().prepareStatement(sgaTraceSQL); ! if (s.execute()) { ! ResultSet rs = s.getResultSet(); ! DefaultTableModel tm = createTableModel(); ! while (rs.next()) { ! String sqlText = rs.getString(1); ! String flt = rs.getString(2); ! String schema = rs.getString(3); ! String calls = rs.getString(4); ! String executions = rs.getString(5); ! String sorts = rs.getString(6); ! String diskReads = rs.getString(7); ! String bufGets = rs.getString(8); ! String rows = rs.getString(9); ! String sortsExec = rs.getString(10); ! String diskReadsExec = rs.getString(11); ! String rowsExec = rs.getString(12); ! String sortsRows = rs.getString(13); ! String diskReadsRow = rs.getString(14); ! String bufGetsRow = rs.getString(15); ! //Should probably create my own table model but i am being a bit slack. ! tm.addRow(new Object[] {sqlText, flt, schema, calls, executions, ! sorts, diskReads, bufGets, rows, sortsExec, ! diskReadsExec, rowsExec, sortsRows, diskReadsRow, ! bufGetsRow}); ! } ! _sgaTrace.setModel(tm); ! if (!hasResized) { ! hasResized = true; ! _sgaTrace.resizeColumnWidth(300); ! } } ! } catch (SQLException ex) { ! _session.getMessageHandler().showErrorMessage(ex); ! } ! } ! private void createGUI() ! { ! final IApplication app = _session.getApplication(); ! setLayout(new BorderLayout()); ! _sgaTrace = new AutoWidthResizeTable(new DefaultTableModel()); ! _sgaTrace.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ! add(new JScrollPane(_sgaTrace)); ! populateSGATrace(); } --- 42,290 ---- public class SGATracePanel extends JPanel { ! private static final StringManager s_stringMgr = ! StringManagerFactory.getStringManager(SGATracePanel.class); ! /** ! * Logger for this class. ! */ ! private static final ILogger s_log = LoggerController.createLogger(SGATracePanel.class); ! private static final String sgaTraceSQL = ! " SELECT a.SQL_Text, " + ! " a.First_Load_Time, " + ! " b.username, " + ! " a.Parse_Calls, " + ! " a.Executions, " + ! " a.Sorts, " + ! " a.Disk_Reads, " + ! " a.Buffer_Gets, " + ! " a.Rows_Processed, " + ! " DECODE ( a.Executions, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Sorts / a.Executions, " + ! " 3 ) ), " + ! " DECODE ( a.Executions, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Disk_Reads / a.Executions, " + ! " 3 ) ), " + ! " DECODE ( a.Executions, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Buffer_Gets / a.Executions, " + ! " 3 ) ), " + ! " DECODE ( a.Executions, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Rows_Processed / a.Executions, " + ! " 3 ) ), " + ! " DECODE ( a.Rows_Processed, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Sorts / a.Rows_Processed, " + ! " 3 ) ), " + ! " DECODE ( a.Rows_Processed, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Disk_Reads / a.Rows_Processed, " + ! " 3 ) ) , " + ! " DECODE ( a.Rows_Processed, " + ! " 0, " + ! " 'N/A', " + ! " ROUND ( a.Buffer_Gets / a.Rows_Processed, " + ! " 3 ) ), " + ! " a.Address || ':' || a.Hash_Value " + ! " FROM v$sqlarea a, " + ! " sys.all_users b " + ! " WHERE a.parsing_user_id = b.user_id "; ! /** ! * Current session. ! */ ! private ISession _session; ! private AutoWidthResizeTable _sgaTrace; ! private boolean hasResized = false; ! private Timer _refreshTimer = new Timer(true); ! private boolean _autoRefresh = false; ! private int _refreshPeriod = 10; ! public class RefreshTimerTask extends TimerTask ! { ! public void run() ! { ! populateSGATrace(); ! } ! } ! /** ! * Ctor. ! * ! * @param autoRefeshPeriod ! * @param session Current session. ! * @throws IllegalArgumentException Thrown if a <TT>null</TT> <TT>ISession</TT> passed. ! */ ! public SGATracePanel(ISession session, int autoRefeshPeriod) ! { ! super(); ! _session = session; ! _refreshPeriod = autoRefeshPeriod; ! createGUI(); ! } ! /** ! * Current session. ! */ ! public ISession getSession() ! { ! return _session; ! } ! private void resetTimer() ! { ! if (_refreshTimer != null) ! { ! _refreshTimer.cancel(); ! //Nil out the timer so that it can be gc'd ! _refreshTimer = null; ! } ! if (_autoRefresh && (_refreshPeriod > 0)) ! { ! _refreshTimer = new Timer(true); ! _refreshTimer.scheduleAtFixedRate(new RefreshTimerTask(), ! _refreshPeriod * 1000, ! _refreshPeriod * 1000); ! } ! } ! public void setAutoRefresh(boolean enable) ! { ! if (enable != _autoRefresh) ! { ! _autoRefresh = enable; ! resetTimer(); ! } ! } ! public boolean getAutoRefesh() ! { ! return _autoRefresh; ! } ! public void setAutoRefreshPeriod(int seconds) ! { ! if (_refreshPeriod != seconds) ! { ! _refreshPeriod = seconds; ! resetTimer(); ! } ! } ! public int getAutoRefreshPeriod() ! { ! return _refreshPeriod; ! } ! protected DefaultTableModel createTableModel() ! { ! DefaultTableModel tm = new DefaultTableModel(); ! // i18n[oracle.sqlText=SQL Text] ! tm.addColumn(s_stringMgr.getString("oracle.sqlText")); ! // i18n[oracle.firstLoadTime=First Load Time] ! tm.addColumn(s_stringMgr.getString("oracle.firstLoadTime")); ! // i18n[oracle.parseSchema=Parse Schema] ! tm.addColumn(s_stringMgr.getString("oracle.parseSchema")); ! // i18n[oracle.parseCalla=Parse Calls] ! tm.addColumn(s_stringMgr.getString("oracle.parseCalla")); ! // i18n[oracle.execution=Executions] ! tm.addColumn(s_stringMgr.getString("oracle.execution")); ! // i18n[oracle.sorts=Sorts] ! tm.addColumn(s_stringMgr.getString("oracle.sorts")); ! // i18n[oracle.diskReads=Disk Reads] ! tm.addColumn(s_stringMgr.getString("oracle.diskReads")); ! // i18n[oracle.bufferGets=Buffer Gets] ! tm.addColumn(s_stringMgr.getString("oracle.bufferGets")); ! // i18n[oracle.rows=Rows] ! tm.addColumn(s_stringMgr.getString("oracle.rows")); ! // i18n[oracle.sortsPerExec=Sorts per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.sortsPerExec")); ! // i18n[oracle.diskReadsPerExec=Disk Reads per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.diskReadsPerExec")); ! // i18n[oracle.bufferPerExec=Buffer Gets per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.bufferPerExec")); ! // i18n[oracle.rowsPerExec=Rows per Exec] ! tm.addColumn(s_stringMgr.getString("oracle.rowsPerExec")); ! // i18n[oracle.sortsPerExec=Sorts per Row] ! tm.addColumn(s_stringMgr.getString("oracle.sortsPerExec")); ! // i18n[oracle.diskReadsPerRow=Disk Reads per Row] ! tm.addColumn(s_stringMgr.getString("oracle.diskReadsPerRow")); ! // i18n[oracle.buffer.getsPerRow=Buffer Gets per Row] ! tm.addColumn(s_stringMgr.getString("oracle.buffer.getsPerRow")); ! return tm; ! } ! public synchronized void populateSGATrace() ! { ! if (!OraclePlugin.checkObjectAccessible(_session, sgaTraceSQL)) ! { ! return; ! } ! try ! { ! PreparedStatement s = _session.getSQLConnection().getConnection().prepareStatement(sgaTraceSQL); ! if (s.execute()) ! { ! ResultSet rs = s.getResultSet(); ! DefaultTableModel tm = createTableModel(); ! while (rs.next()) ! { ! String sqlText = rs.getString(1); ! String flt = rs.getString(2); ! String schema = rs.getString(3); ! String calls = rs.getString(4); ! String executions = rs.getString(5); ! String sorts = rs.getString(6); ! String diskReads = rs.getString(7); ! String bufGets = rs.getString(8); ! String rows = rs.getString(9); ! String sortsExec = rs.getString(10); ! String diskReadsExec = rs.getString(11); ! String rowsExec = rs.getString(12); ! String sortsRows = rs.getString(13); ! String diskReadsRow = rs.getString(14); ! String bufGetsRow = rs.getString(15); ! //Should probably create my own table model but i am being a bit slack. ! tm.addRow(new Object[]{sqlText, flt, schema, calls, executions, ! sorts, diskReads, bufGets, rows, sortsExec, ! diskReadsExec, rowsExec, sortsRows, diskReadsRow, ! bufGetsRow}); } ! _sgaTrace.setModel(tm); ! if (!hasResized) ! { ! hasResized = true; ! _sgaTrace.resizeColumnWidth(300); ! } ! } ! } ! catch (SQLException ex) ! { ! _session.getMessageHandler().showErrorMessage(ex); ! } ! } ! private void createGUI() ! { ! final IApplication app = _session.getApplication(); ! setLayout(new BorderLayout()); ! _sgaTrace = new AutoWidthResizeTable(new DefaultTableModel()); ! _sgaTrace.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); ! add(new JScrollPane(_sgaTrace)); ! populateSGATrace(); } Index: I18NStrings.properties =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/plugins/oracle/src/net/sourceforge/squirrel_sql/plugins/oracle/SGAtrace/I18NStrings.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** I18NStrings.properties 21 Jul 2006 11:11:58 -0000 1.2 --- I18NStrings.properties 17 Nov 2006 01:36:31 -0000 1.3 *************** *** 21,32 **** oracle.refreshSecons=(seconds) - # A T T E N T I O N: REPLACES SAME KEY ABOVE - oracle.sortsPerExec=Sorts per Row - - # - #Missing/changed properties generated by I18n Plugin on Sat Oct 29 21:10:25 CEST 2005 - # oracle.buffer getsPerRow=Buffer Gets per Row ! # A T T E N T I O N: REPLACES SAME KEY ABOVE ! oracle.sortsPerExec=Sorts per Exec --- 21,25 ---- oracle.refreshSecons=(seconds) oracle.buffer getsPerRow=Buffer Gets per Row ! oracle.sgaTitle=Oracle SGA trace for: {0} \ No newline at end of file |