クラス org.objectweb.cjdbc.console.views.InfoViewer

org.objectweb.cjdbc.console.views.InfoViewerに対する継承グラフ

Inheritance graph
[凡例]
org.objectweb.cjdbc.console.views.InfoViewerのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

Graphical SQL statistics viewer. Quick and dirty implementation.

作者:
Mathieu Peltier

Emmanuel Cecchet

バージョン:
1.0

InfoViewer.java57 行で定義されています。

Public メソッド

 InfoViewer (Object[][] data)
abstract String[] getColumnNames ()
int[] getTraceableColumns ()
abstract void setLabels ()
void updateData (Object[][] data)
String displayText (Object[][] data)
String displayText (String[][] data)
void display ()
String getFrameTitle ()
Object[][] getData ()

Protected メソッド

abstract Object[][] getDataTypes (Object[][] stats)

Protected 変数

String frameTitle
String infoViewerMenuBarString
String actionToolTipText
String actionErrorMessage
String actionSuccessMessage
String tableHeaderToolTipText

Private メソッド

void createAndShowGUI ()

Private 変数

InfoTableSorter sorter
JPanel panel
JFrame frame
InfoTableModel model
String[] columnNames
Object[][] data


コンストラクタとデストラクタ

org.objectweb.cjdbc.console.views.InfoViewer.InfoViewer Object  data[][]  ) 
 

Create a InfoViewer

引数:
data Stats to display in the table
InfoViewer.java81 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.columnNames, org.objectweb.cjdbc.console.views.InfoViewer.getColumnNames(), org.objectweb.cjdbc.console.views.InfoViewer.getDataTypes(), と org.objectweb.cjdbc.console.views.InfoViewer.setLabels().

00082 { 00083 if (data != null) 00084 { 00085 this.data = getDataTypes(data); 00086 columnNames = getColumnNames(); 00087 setLabels(); 00088 } 00089 }


メソッド

void org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI  )  [private]
 

For thread safety, this method should be invoked from the event-dispatching thread. InfoViewer.java146 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoTableSorter.addMouseListenerToHeaderInTable(), org.objectweb.cjdbc.console.views.InfoViewer.columnNames, org.objectweb.cjdbc.console.views.InfoViewer.data, org.objectweb.cjdbc.console.views.InfoViewer.frame, org.objectweb.cjdbc.console.views.InfoViewer.frameTitle, org.objectweb.cjdbc.console.views.InfoViewer.model, org.objectweb.cjdbc.console.views.InfoViewer.panel, org.objectweb.cjdbc.console.views.InfoViewer.sorter, と org.objectweb.cjdbc.console.views.InfoViewer.tableHeaderToolTipText.

参照元 org.objectweb.cjdbc.console.views.InfoViewer.display(), と org.objectweb.cjdbc.console.views.InfoViewer.updateData().

00147 { 00148 panel = new JPanel(new GridLayout(1, 0)); 00149 model = new InfoTableModel(data); 00150 00151 sorter = new InfoTableSorter(model); 00152 JTable table = new JTable(sorter); //NEW 00153 sorter.addMouseListenerToHeaderInTable(table); //ADDED 00154 // THIS 00155 table.setPreferredScrollableViewportSize(new Dimension(640, 200)); 00156 table.getColumnModel().getColumn(0).setPreferredWidth(340); 00157 for (int i = 1; i < columnNames.length; i++) 00158 table.getColumnModel().getColumn(i).setPreferredWidth(50); 00159 00160 //Set up tool tips for column headers. 00161 table.getTableHeader().setToolTipText(tableHeaderToolTipText); 00162 00163 //Create the scroll pane and add the table to it. 00164 JScrollPane scrollPane = new JScrollPane(table); 00165 00166 //Add the scroll pane to this panel. 00167 panel.add(scrollPane); 00168 00169 //Create and set up the window. 00170 frame = new JFrame(frameTitle); 00171 frame.setJMenuBar(new InfoViewerMenuBar()); 00172 frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); 00173 panel.setOpaque(true); // content panes must be opaque 00174 frame.setContentPane(panel); 00175 00176 //Display the window. 00177 frame.pack(); 00178 frame.setVisible(true); 00179 }

void org.objectweb.cjdbc.console.views.InfoViewer.display  ) 
 

Create the GUI and show it. InfoViewer.java282 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI().

参照元 org.objectweb.cjdbc.console.gui.CjdbcGui.publicActionViewCache(), org.objectweb.cjdbc.console.gui.CjdbcGui.publicActionViewCacheStats(), org.objectweb.cjdbc.console.gui.CjdbcGui.publicActionViewRecoveryLog(), と org.objectweb.cjdbc.console.gui.CjdbcGui.publicActionViewSQLStats().

00283 { 00284 //Schedule a job for the event-dispatching thread: 00285 //creating and showing this application's GUI. 00286 javax.swing.SwingUtilities.invokeLater(new Runnable() 00287 { 00288 public void run() 00289 { 00290 createAndShowGUI(); 00291 } 00292 }); 00293 }

String org.objectweb.cjdbc.console.views.InfoViewer.displayText String  data[][]  ) 
 

Format data for text consoles

引数:
data to display
戻り値:
a formatted string with tabs and end of line
InfoViewer.java201 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.getColumnNames().

00202 { 00203 if (data == null) 00204 { 00205 return ""; 00206 } 00207 00208 /* Lasse's version starts here */ 00209 00210 // constants used for formatting the output 00211 final String columnPadding = " "; 00212 final String nameValueSeparator = ": "; 00213 00214 // holds the column names 00215 String[] columns = getColumnNames(); 00216 00217 // solve the maximum length for column names 00218 // TODO: refactor this into its own method 00219 int maxNameLength = 0; 00220 for (int i = 0; i < columns.length; i++) 00221 { 00222 maxNameLength = Math.max(maxNameLength, columns[i].length()); 00223 } 00224 00225 // solve the maximum length for column values 00226 // TODO: refactor this into its own method 00227 int maxValueLength = 0; 00228 for (int i = 0; i < data.length; i++) 00229 { 00230 for (int j = 0; j < data[i].length; j++) 00231 { 00232 maxValueLength = Math.max(maxValueLength, data[i][j].length()); 00233 } 00234 } 00235 00236 // construct a separator line based on maximum column and value lengths 00237 // TODO: extract numbers into constants and this block into a new method 00238 char[] separator = new char[columnPadding.length() + maxNameLength 00239 + nameValueSeparator.length() + maxValueLength + 1]; /* 00240 * the newline 00241 * character 00242 */ 00243 for (int i = 0; i < separator.length; i++) 00244 { 00245 separator[i] = '-'; 00246 } 00247 separator[separator.length - 1] = '\n'; 00248 00249 // loop through all the data and print padded lines into the StringBuffer 00250 StringBuffer sb = new StringBuffer(); 00251 for (int i = 0; i < data.length; i++) 00252 { 00253 sb.append(separator); 00254 for (int j = 0; j < data[i].length; j++) 00255 { 00256 // create the padding needed for this particular column 00257 // TODO: extract this into its own method 00258 char[] namePadding = new char[maxNameLength - columns[j].length()]; 00259 for (int x = 0; x < namePadding.length; x++) 00260 { 00261 namePadding[x] = ' '; 00262 } 00263 00264 sb.append(columnPadding); 00265 sb.append(columns[j]); 00266 sb.append(nameValueSeparator); 00267 sb.append(namePadding); 00268 sb.append(data[i][j]); 00269 sb.append("\n"); 00270 } 00271 if (i + 1 == data.length) 00272 { 00273 sb.append(separator); 00274 } 00275 } 00276 return sb.toString(); 00277 }

String org.objectweb.cjdbc.console.views.InfoViewer.displayText Object  data[][]  ) 
 

Display text. This allows to show text without loading graphic contents

引数:
data to display
戻り値:
a formatted String
InfoViewer.java187 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.columnNames, org.objectweb.cjdbc.console.views.InfoViewer.getColumnNames(), org.objectweb.cjdbc.console.views.InfoViewer.getDataTypes(), と org.objectweb.cjdbc.console.views.InfoViewer.setLabels().

参照元 org.objectweb.cjdbc.console.text.Console.showInfo().

00188 { 00189 this.data = getDataTypes(data); 00190 columnNames = getColumnNames(); 00191 setLabels(); 00192 return displayText(getDataTypes(data)); 00193 }

abstract String [] org.objectweb.cjdbc.console.views.InfoViewer.getColumnNames  )  [pure virtual]
 

Get column names

戻り値:
a array of strings

org.objectweb.cjdbc.console.views.BackendViewer, org.objectweb.cjdbc.console.views.CacheStatsViewer, org.objectweb.cjdbc.console.views.CacheViewer, org.objectweb.cjdbc.console.views.ClientsViewer, org.objectweb.cjdbc.console.views.ControllerLoadViewer, org.objectweb.cjdbc.console.views.DatabasesViewer, org.objectweb.cjdbc.console.views.RecoveryLogViewer, org.objectweb.cjdbc.console.views.SchedulerViewer, と org.objectweb.cjdbc.console.views.SQLStatViewerで実装されています.

参照元 org.objectweb.cjdbc.console.views.InfoViewer.displayText(), と org.objectweb.cjdbc.console.views.InfoViewer.InfoViewer().

Object [][] org.objectweb.cjdbc.console.views.InfoViewer.getData  ) 
 

戻り値:
Returns the data.
InfoViewer.java468 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.data.

00469 { 00470 return data; 00471 }

abstract Object [][] org.objectweb.cjdbc.console.views.InfoViewer.getDataTypes Object  stats[][]  )  [protected, pure virtual]
 

Subclasses should overide this method to get coherent sorting

引数:
stats to display
戻り値:
same sized objects array but with proper types default is strings only

org.objectweb.cjdbc.console.views.BackendViewer, org.objectweb.cjdbc.console.views.CacheStatsViewer, org.objectweb.cjdbc.console.views.CacheViewer, org.objectweb.cjdbc.console.views.ClientsViewer, org.objectweb.cjdbc.console.views.ControllerLoadViewer, org.objectweb.cjdbc.console.views.DatabasesViewer, org.objectweb.cjdbc.console.views.RecoveryLogViewer, org.objectweb.cjdbc.console.views.SchedulerViewer, と org.objectweb.cjdbc.console.views.SQLStatViewerで実装されています.

参照元 org.objectweb.cjdbc.console.views.InfoViewer.displayText(), org.objectweb.cjdbc.console.views.InfoViewer.InfoViewer(), と org.objectweb.cjdbc.console.views.InfoViewer.updateData().

String org.objectweb.cjdbc.console.views.InfoViewer.getFrameTitle  ) 
 

戻り値:
Returns the frameTitle.
InfoViewer.java460 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.frameTitle.

00461 { 00462 return frameTitle; 00463 }

int [] org.objectweb.cjdbc.console.views.InfoViewer.getTraceableColumns  ) 
 

Return the list of traceable data for this viewer

戻り値:
an array of names

org.objectweb.cjdbc.console.views.BackendViewer, org.objectweb.cjdbc.console.views.CacheStatsViewer, org.objectweb.cjdbc.console.views.ControllerLoadViewer, org.objectweb.cjdbc.console.views.DatabasesViewer, と org.objectweb.cjdbc.console.views.SchedulerViewerで再定義されています。

InfoViewer.java112 行で定義されています。

00113 { 00114 return new int[0]; 00115 }

abstract void org.objectweb.cjdbc.console.views.InfoViewer.setLabels  )  [pure virtual]
 

Set the labels for the frame

org.objectweb.cjdbc.console.views.BackendViewer, org.objectweb.cjdbc.console.views.CacheStatsViewer, org.objectweb.cjdbc.console.views.CacheViewer, org.objectweb.cjdbc.console.views.ClientsViewer, org.objectweb.cjdbc.console.views.ControllerLoadViewer, org.objectweb.cjdbc.console.views.DatabasesViewer, org.objectweb.cjdbc.console.views.RecoveryLogViewer, org.objectweb.cjdbc.console.views.SchedulerViewer, と org.objectweb.cjdbc.console.views.SQLStatViewerで実装されています.

参照元 org.objectweb.cjdbc.console.views.InfoViewer.displayText(), と org.objectweb.cjdbc.console.views.InfoViewer.InfoViewer().

void org.objectweb.cjdbc.console.views.InfoViewer.updateData Object  data[][]  ) 
 

Update the data in the InfoTableModel and refresh the frame

引数:
data fresh and new
InfoViewer.java127 行で定義されています。

参照先 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI(), org.objectweb.cjdbc.console.views.InfoViewer.frame, org.objectweb.cjdbc.console.views.InfoViewer.getDataTypes(), org.objectweb.cjdbc.console.views.InfoViewer.model, と org.objectweb.cjdbc.console.views.InfoViewer.InfoTableModel.setData().

00128 { 00129 this.data = getDataTypes(data); 00130 if (frame != null) 00131 { 00132 frame.repaint(); 00133 frame.setVisible(true); 00134 model.setData(data); 00135 } 00136 else 00137 { 00138 createAndShowGUI(); 00139 } 00140 }


変数

String org.objectweb.cjdbc.console.views.InfoViewer.actionErrorMessage [protected]
 

InfoViewer.java70 行で定義されています。

String org.objectweb.cjdbc.console.views.InfoViewer.actionSuccessMessage [protected]
 

InfoViewer.java71 行で定義されています。

String org.objectweb.cjdbc.console.views.InfoViewer.actionToolTipText [protected]
 

InfoViewer.java69 行で定義されています。

String [] org.objectweb.cjdbc.console.views.InfoViewer.columnNames [private]
 

InfoViewer.java66 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI(), org.objectweb.cjdbc.console.views.InfoViewer.displayText(), と org.objectweb.cjdbc.console.views.InfoViewer.InfoViewer().

Object [][] org.objectweb.cjdbc.console.views.InfoViewer.data [private]
 

InfoViewer.java74 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI(), と org.objectweb.cjdbc.console.views.InfoViewer.getData().

JFrame org.objectweb.cjdbc.console.views.InfoViewer.frame [private]
 

InfoViewer.java62 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI(), と org.objectweb.cjdbc.console.views.InfoViewer.updateData().

String org.objectweb.cjdbc.console.views.InfoViewer.frameTitle [protected]
 

InfoViewer.java67 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI(), と org.objectweb.cjdbc.console.views.InfoViewer.getFrameTitle().

String org.objectweb.cjdbc.console.views.InfoViewer.infoViewerMenuBarString [protected]
 

InfoViewer.java68 行で定義されています。

InfoTableModel org.objectweb.cjdbc.console.views.InfoViewer.model [private]
 

InfoViewer.java63 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI(), と org.objectweb.cjdbc.console.views.InfoViewer.updateData().

JPanel org.objectweb.cjdbc.console.views.InfoViewer.panel [private]
 

InfoViewer.java61 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI().

InfoTableSorter org.objectweb.cjdbc.console.views.InfoViewer.sorter [private]
 

InfoViewer.java60 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI().

String org.objectweb.cjdbc.console.views.InfoViewer.tableHeaderToolTipText [protected]
 

InfoViewer.java72 行で定義されています。

参照元 org.objectweb.cjdbc.console.views.InfoViewer.createAndShowGUI().


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:34 2004に生成されました。 doxygen 1.3.8