/*
*-------------------
* The DetailPanels.java is part of ASH Viewer
*-------------------
*
* ASH Viewer is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ASH Viewer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ASH Viewer. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (c) 2009, Alex Kardapolov, All rights reserved.
*
*/
package org.ash.detail;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.ash.database.ASHDatabase;
import org.ash.gui.StatusBar;
import org.ash.util.Options;
import org.jfree.chart.ChartPanel;
public class DetailPanels extends JPanel{
/** The MainFrame. */
private JFrame mainFrame;
/** The database. */
private ASHDatabase database;
/** The tabbed pane */
private JTabbedPane tabsDetail;
/** The stacked chart main object for cpu. */
private StackedChartDetail cpuStackedChartMainObjectDetail;
/** The stacked chart main object for scheduler. */
private StackedChartDetail schedulerStackedChartMainObjectDetail;
/** The stacked chart main object for userIO. */
private StackedChartDetail userIOStackedChartMainObjectDetail;
/** The stacked chart main object for systemIO. */
private StackedChartDetail systemIOStackedChartMainObjectDetail;
/** The stacked chart main object for concurrency. */
private StackedChartDetail concurrencyStackedChartMainObjectDetail;
/** The stacked chart main object for application. */
private StackedChartDetail applicationStackedChartMainObjectDetail;
/** The stacked chart main object for commit. */
private StackedChartDetail commitStackedChartMainObjectDetail;
/** The stacked chart main object for configuration. */
private StackedChartDetail configurationStackedChartMainObjectDetail;
/** The stacked chart main object for administrative. */
private StackedChartDetail administrativeStackedChartMainObjectDetail;
/** The stacked chart main object for network. */
private StackedChartDetail networkStackedChartMainObjectDetail;
/** The stacked chart main object for queuning. */
private StackedChartDetail queuningStackedChartMainObjectDetail;
/** The stacked chart main object for cluster. */
private StackedChartDetail clusterStackedChartMainObjectDetail;
/** The stacked chart main object for other. */
private StackedChartDetail otherStackedChartMainObjectDetail;
/** The split pane main for cpu. */
private JSplitPane cpuSplitPaneMainDetail;
/** The split pane for scheduler. */
private JSplitPane schedulerSplitPaneMainDetail;
/** The split pane for userIO. */
private JSplitPane userIOSplitPaneMainDetail;
/** The split pane for systemIO. */
private JSplitPane systemIOSplitPaneMainDetail;
/** The split pane for concurrency. */
private JSplitPane concurrencySplitPaneMainDetail;
/** The split pane for application. */
private JSplitPane applicationSplitPaneMainDetail;
/** The split pane for commit. */
private JSplitPane commitSplitPaneMainDetail;
/** The split pane for configuration. */
private JSplitPane configurationSplitPaneMainDetail;
/** The split pane for administrative. */
private JSplitPane administrativeSplitPaneMainDetail;
/** The split pane for network. */
private JSplitPane networkSplitPaneMainDetail;
/** The split pane for queuning. */
private JSplitPane queuningSplitPaneMainDetail;
/** The split pane for cluster. */
private JSplitPane clusterSplitPaneMainDetail;
/** The split pane for other. */
private JSplitPane otherSplitPaneMainDetail;
/** The chart chart panel for cpu. */
private ChartPanel cpuChartPanel;
/** The chart chart panel for scheduler. */
private ChartPanel schedulerChartPanel;
/** The chart chart panel for userIO. */
private ChartPanel userIOChartPanel;
/** The chart chart panel for systemIO. */
private ChartPanel systemIOChartPanel;
/** The chart chart panel for concurrency. */
private ChartPanel concurrencyChartPanel;
/** The chart chart panel for application. */
private ChartPanel applicationChartPanel;
/** The chart chart panel for commit. */
private ChartPanel commitChartPanel;
/** The chart chart panel for configuration. */
private ChartPanel configurationChartPanel;
/** The chart chart panel for administrative. */
private ChartPanel administrativeChartPanel;
/** The chart chart panel for network. */
private ChartPanel networkChartPanel;
/** The chart chart panel for queuning. */
private ChartPanel queuningChartPanel;
/** The chart chart panel for cluster. */
private ChartPanel clusterChartPanel;
/** The chart chart panel for other. */
private ChartPanel otherChartPanel;
/** The top sqls and sessions for cpu. */
private GanttDetails cpuSqlsAndSessions;
/** The top sqls and sessions for scheduler. */
private GanttDetails schedulerSqlsAndSessions;
/** The top sqls and sessions for userIO. */
private GanttDetails userIOSqlsAndSessions;
/** The top sqls and sessions for systemIO. */
private GanttDetails systemIOSqlsAndSessions;
/** The top sqls and sessions for concurrency. */
private GanttDetails concurrencySqlsAndSessions;
/** The top sqls and sessions for application. */
private GanttDetails applicationSqlsAndSessions;
/** The top sqls and sessions for commit. */
private GanttDetails commitSqlsAndSessions;
/** The top sqls and sessions for configuration. */
private GanttDetails configurationSqlsAndSessions;
/** The top sqls and sessions for administrative. */
private GanttDetails administrativeSqlsAndSessions;
/** The top sqls and sessions for network. */
private GanttDetails networkSqlsAndSessions;
/** The top sqls and sessions for queuning. */
private GanttDetails queuningSqlsAndSessions;
/** The top sqls and sessions for cluster. */
private GanttDetails clusterSqlsAndSessions;
/** The top sqls and sessions for other. */
private GanttDetails otherSqlsAndSessions;
/** The status bar. */
private StatusBar statusBar;
/** The max cpu. */
private double maxCpu;
/** The divider. */
private int dividerLocation = 290;
/**
* Constructor DetailFrame
*
* @param mainFrame0
* @param database0
* @param statusBar0
*/
public DetailPanels(JFrame mainFrame0, ASHDatabase database0, StatusBar statusBar0){
this.mainFrame = mainFrame0;
this.database = database0;
this.statusBar = statusBar0;
this.tabsDetail = new JTabbedPane();
this.cpuStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("cpuLabel.text"));
this.schedulerStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("schedulerLabel.text"));
this.userIOStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("userIOLabel.text"));
this.systemIOStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("systemIOLabel.text"));
this.concurrencyStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("concurrencyLabel.text"));
this.applicationStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("applicationsLabel.text"));
this.commitStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("commitLabel.text"));
this.configurationStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("configurationLabel.text"));
this.administrativeStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("administrativeLabel.text"));
this.networkStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("networkLabel.text"));
this.queuningStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("queueningLabel.text"));
this.clusterStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("clusterLabel.text"));
this.otherStackedChartMainObjectDetail = new StackedChartDetail
(this.database, Options.getInstance().getResource("otherLabel.text"));
this.initialize();
}
/**
* Initialize DetailFrame
*/
private void initialize() {
this.setLayout(new BorderLayout());
this.setVisible(true);
this.cpuSplitPaneMainDetail = new JSplitPane();
this.schedulerSplitPaneMainDetail = new JSplitPane();
this.userIOSplitPaneMainDetail = new JSplitPane();
this.systemIOSplitPaneMainDetail = new JSplitPane();
this.concurrencySplitPaneMainDetail = new JSplitPane();
this.applicationSplitPaneMainDetail = new JSplitPane();
this.commitSplitPaneMainDetail = new JSplitPane();
this.configurationSplitPaneMainDetail = new JSplitPane();
this.administrativeSplitPaneMainDetail = new JSplitPane();
this.networkSplitPaneMainDetail = new JSplitPane();
this.queuningSplitPaneMainDetail = new JSplitPane();
this.clusterSplitPaneMainDetail = new JSplitPane();
this.otherSplitPaneMainDetail = new JSplitPane();
this.cpuChartPanel = this.cpuStackedChartMainObjectDetail.createChartPanel();
this.schedulerChartPanel = this.schedulerStackedChartMainObjectDetail.createChartPanel();
this.userIOChartPanel = this.userIOStackedChartMainObjectDetail.createChartPanel();
this.systemIOChartPanel = this.systemIOStackedChartMainObjectDetail.createChartPanel();
this.concurrencyChartPanel = this.concurrencyStackedChartMainObjectDetail.createChartPanel();
this.applicationChartPanel = this.applicationStackedChartMainObjectDetail.createChartPanel();
this.commitChartPanel = this.commitStackedChartMainObjectDetail.createChartPanel();
this.configurationChartPanel = this.configurationStackedChartMainObjectDetail.createChartPanel();
this.administrativeChartPanel = this.administrativeStackedChartMainObjectDetail.createChartPanel();
this.networkChartPanel = this.networkStackedChartMainObjectDetail.createChartPanel();
this.queuningChartPanel = this.queuningStackedChartMainObjectDetail.createChartPanel();
this.clusterChartPanel = this.clusterStackedChartMainObjectDetail.createChartPanel();
this.otherChartPanel = this.otherStackedChartMainObjectDetail.createChartPanel();
/** Gantt graph */
this.cpuSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("cpuLabel.text"));
this.schedulerSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("schedulerLabel.text"));
this.userIOSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("userIOLabel.text"));
this.systemIOSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("systemIOLabel.text"));
this.concurrencySqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("concurrencyLabel.text"));
this.applicationSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("applicationsLabel.text"));
this.commitSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("commitLabel.text"));
this.configurationSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("configurationLabel.text"));
this.administrativeSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("administrativeLabel.text"));
this.networkSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("networkLabel.text"));
this.queuningSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("queueningLabel.text"));
this.clusterSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("clusterLabel.text"));
this.otherSqlsAndSessions = new GanttDetails(this.mainFrame, this.database,
Options.getInstance().getResource("otherLabel.text"));
this.cpuSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.cpuSplitPaneMainDetail.add(this.cpuChartPanel, "top");
this.cpuSplitPaneMainDetail.add(this.cpuSqlsAndSessions, "bottom");
this.cpuSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.cpuSplitPaneMainDetail.setOneTouchExpandable(true);
this.schedulerSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.schedulerSplitPaneMainDetail.add(this.schedulerChartPanel, "top");
this.schedulerSplitPaneMainDetail.add(this.schedulerSqlsAndSessions, "bottom");
this.schedulerSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.schedulerSplitPaneMainDetail.setOneTouchExpandable(true);
this.userIOSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.userIOSplitPaneMainDetail.add(this.userIOChartPanel, "top");
this.userIOSplitPaneMainDetail.add(this.userIOSqlsAndSessions, "bottom");
this.userIOSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.userIOSplitPaneMainDetail.setOneTouchExpandable(true);
this.systemIOSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.systemIOSplitPaneMainDetail.add(this.systemIOChartPanel, "top");
this.systemIOSplitPaneMainDetail.add(this.systemIOSqlsAndSessions, "bottom");
this.systemIOSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.systemIOSplitPaneMainDetail.setOneTouchExpandable(true);
this.concurrencySplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.concurrencySplitPaneMainDetail.add(this.concurrencyChartPanel, "top");
this.concurrencySplitPaneMainDetail.add(this.concurrencySqlsAndSessions, "bottom");
this.concurrencySplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.concurrencySplitPaneMainDetail.setOneTouchExpandable(true);
this.applicationSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.applicationSplitPaneMainDetail.add(this.applicationChartPanel, "top");
this.applicationSplitPaneMainDetail.add(this.applicationSqlsAndSessions, "bottom");
this.applicationSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.applicationSplitPaneMainDetail.setOneTouchExpandable(true);
this.commitSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.commitSplitPaneMainDetail.add(this.commitChartPanel, "top");
this.commitSplitPaneMainDetail.add(this.commitSqlsAndSessions, "bottom");
this.commitSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.commitSplitPaneMainDetail.setOneTouchExpandable(true);
this.configurationSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.configurationSplitPaneMainDetail.add(this.configurationChartPanel, "top");
this.configurationSplitPaneMainDetail.add(this.configurationSqlsAndSessions, "bottom");
this.configurationSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.configurationSplitPaneMainDetail.setOneTouchExpandable(true);
this.administrativeSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.administrativeSplitPaneMainDetail.add(this.administrativeChartPanel, "top");
this.administrativeSplitPaneMainDetail.add(this.administrativeSqlsAndSessions, "bottom");
this.administrativeSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.administrativeSplitPaneMainDetail.setOneTouchExpandable(true);
this.networkSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.networkSplitPaneMainDetail.add(this.networkChartPanel, "top");
this.networkSplitPaneMainDetail.add(this.networkSqlsAndSessions, "bottom");
this.networkSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.networkSplitPaneMainDetail.setOneTouchExpandable(true);
this.queuningSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.queuningSplitPaneMainDetail.add(this.queuningChartPanel, "top");
this.queuningSplitPaneMainDetail.add(this.queuningSqlsAndSessions, "bottom");
this.queuningSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.queuningSplitPaneMainDetail.setOneTouchExpandable(true);
this.clusterSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.clusterSplitPaneMainDetail.add(this.clusterChartPanel, "top");
this.clusterSplitPaneMainDetail.add(this.clusterSqlsAndSessions, "bottom");
this.clusterSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.clusterSplitPaneMainDetail.setOneTouchExpandable(true);
this.otherSplitPaneMainDetail.setOrientation(JSplitPane.VERTICAL_SPLIT);
this.otherSplitPaneMainDetail.add(this.otherChartPanel, "top");
this.otherSplitPaneMainDetail.add(this.otherSqlsAndSessions, "bottom");
this.otherSplitPaneMainDetail.setDividerLocation(this.dividerLocation);
this.otherSplitPaneMainDetail.setOneTouchExpandable(true);
this.tabsDetail.add(this.cpuSplitPaneMainDetail,
Options.getInstance().getResource("cpuLabel.text"));
this.tabsDetail.add(this.schedulerSplitPaneMainDetail,
Options.getInstance().getResource("schedulerLabel.text"));
this.tabsDetail.add(this.userIOSplitPaneMainDetail,
Options.getInstance().getResource("userIOLabel.text"));
this.tabsDetail.add(this.systemIOSplitPaneMainDetail,
Options.getInstance().getResource("systemIOLabel.text"));
this.tabsDetail.add(this.concurrencySplitPaneMainDetail,
Options.getInstance().getResource("concurrencyLabel.text"));
this.tabsDetail.add(this.applicationSplitPaneMainDetail,
Options.getInstance().getResource("applicationsLabel.text"));
this.tabsDetail.add(this.commitSplitPaneMainDetail,
Options.getInstance().getResource("commitLabel.text"));
this.tabsDetail.add(this.configurationSplitPaneMainDetail,
Options.getInstance().getResource("configurationLabel.text"));
this.tabsDetail.add(this.administrativeSplitPaneMainDetail,
Options.getInstance().getResource("administrativeLabel.text"));
this.tabsDetail.add(this.networkSplitPaneMainDetail,
Options.getInstance().getResource("networkLabel.text"));
this.tabsDetail.add(this.queuningSplitPaneMainDetail,
Options.getInstance().getResource("queueningLabel.text"));
this.tabsDetail.add(this.clusterSplitPaneMainDetail,
Options.getInstance().getResource("clusterLabel.text"));
this.tabsDetail.add(this.otherSplitPaneMainDetail,
Options.getInstance().getResource("otherLabel.text"));
this.cpuChartPanel.addListenerReleaseMouse(this.cpuSqlsAndSessions);
this.schedulerChartPanel.addListenerReleaseMouse(this.schedulerSqlsAndSessions);
this.userIOChartPanel.addListenerReleaseMouse(this.userIOSqlsAndSessions);
this.systemIOChartPanel.addListenerReleaseMouse(this.systemIOSqlsAndSessions);
this.concurrencyChartPanel.addListenerReleaseMouse(this.concurrencySqlsAndSessions);
this.applicationChartPanel.addListenerReleaseMouse(this.applicationSqlsAndSessions);
this.commitChartPanel.addListenerReleaseMouse(this.commitSqlsAndSessions);
this.configurationChartPanel.addListenerReleaseMouse(this.configurationSqlsAndSessions);
this.administrativeChartPanel.addListenerReleaseMouse(this.administrativeSqlsAndSessions);
this.networkChartPanel.addListenerReleaseMouse(this.networkSqlsAndSessions);
this.queuningChartPanel.addListenerReleaseMouse(this.queuningSqlsAndSessions);
this.clusterChartPanel.addListenerReleaseMouse(this.clusterSqlsAndSessions);
this.otherChartPanel.addListenerReleaseMouse(this.otherSqlsAndSessions);
this.cpuChartPanel.addListenerReleaseMouse(this.statusBar);
this.schedulerChartPanel.addListenerReleaseMouse(this.statusBar);
this.userIOChartPanel.addListenerReleaseMouse(this.statusBar);
this.systemIOChartPanel.addListenerReleaseMouse(this.statusBar);
this.concurrencyChartPanel.addListenerReleaseMouse(this.statusBar);
this.applicationChartPanel.addListenerReleaseMouse(this.statusBar);
this.commitChartPanel.addListenerReleaseMouse(this.statusBar);
this.configurationChartPanel.addListenerReleaseMouse(this.statusBar);
this.administrativeChartPanel.addListenerReleaseMouse(this.statusBar);
this.networkChartPanel.addListenerReleaseMouse((Object)this.statusBar);
this.queuningChartPanel.addListenerReleaseMouse((Object)this.statusBar);
this.clusterChartPanel.addListenerReleaseMouse((Object)this.statusBar);
this.otherChartPanel.addListenerReleaseMouse((Object)this.statusBar);
ChangeListener changeListener = new ChangeListener() {
public void stateChanged(ChangeEvent changeEvent) {
JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource();
int index = sourceTabbedPane.getSelectedIndex();
statusBar.updateLabelStringDetail(
sourceTabbedPane.getTitleAt(index));
}
};
tabsDetail.addChangeListener(changeListener);
this.add(tabsDetail, BorderLayout.CENTER);
}
/**
* Load data to dataset
*/
public void loadDataToDataSet(){
this.database.saveStackedXYAreaChartDetail(
this.cpuStackedChartMainObjectDetail,
Options.getInstance().getResource("cpuLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.schedulerStackedChartMainObjectDetail,
Options.getInstance().getResource("schedulerLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.userIOStackedChartMainObjectDetail,
Options.getInstance().getResource("userIOLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.systemIOStackedChartMainObjectDetail,
Options.getInstance().getResource("systemIOLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.concurrencyStackedChartMainObjectDetail,
Options.getInstance().getResource("concurrencyLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.applicationStackedChartMainObjectDetail,
Options.getInstance().getResource("applicationsLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.commitStackedChartMainObjectDetail,
Options.getInstance().getResource("commitLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.configurationStackedChartMainObjectDetail,
Options.getInstance().getResource("configurationLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.administrativeStackedChartMainObjectDetail,
Options.getInstance().getResource("administrativeLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.networkStackedChartMainObjectDetail,
Options.getInstance().getResource("networkLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.queuningStackedChartMainObjectDetail,
Options.getInstance().getResource("queueningLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.clusterStackedChartMainObjectDetail,
Options.getInstance().getResource("clusterLabel.text"));
this.database.saveStackedXYAreaChartDetail(
this.otherStackedChartMainObjectDetail,
Options.getInstance().getResource("otherLabel.text"));
this.database.initialLoadingDataToChartPanelDataSetDetail();
this.cpuStackedChartMainObjectDetail.setTitle();
this.schedulerStackedChartMainObjectDetail.setTitle();
this.userIOStackedChartMainObjectDetail.setTitle();
this.systemIOStackedChartMainObjectDetail.setTitle();
this.concurrencyStackedChartMainObjectDetail.setTitle();
this.applicationStackedChartMainObjectDetail.setTitle();
this.commitStackedChartMainObjectDetail.setTitle();
this.configurationStackedChartMainObjectDetail.setTitle();
this.administrativeStackedChartMainObjectDetail.setTitle();
this.networkStackedChartMainObjectDetail.setTitle();
this.queuningStackedChartMainObjectDetail.setTitle();
this.clusterStackedChartMainObjectDetail.setTitle();
this.otherStackedChartMainObjectDetail.setTitle();
this.setThresholdMaxCpu();
}
/**
* Set the threshold max cpu (detail).
* @param maxCpu
*/
public void setThresholdMaxCpu(Double maxCpu){
this.maxCpu = maxCpu;
}
/**
* Set upper bound of range axis (detail)
* @param bound
*/
public void setUpperBoundOfRangeAxis(double bound){
this.cpuStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.schedulerStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.userIOStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.systemIOStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.concurrencyStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.applicationStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.commitStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.configurationStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.administrativeStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.networkStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.queuningStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.clusterStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
this.otherStackedChartMainObjectDetail.setUpperBoundOfRangeAxis(bound);
}
/**
* Get thumbnail details charts
*
* @return
*/
public JPanel getThumbnailDetailPanel(){
JPanel mainPanel = new JPanel(new GridLayout(3, 5));
BufferedImage thumbCpu =
this.cpuStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageCpu = new ImageIcon(thumbCpu);
mainPanel.add(new JButton(imageCpu));
BufferedImage thumbScheduler =
this.schedulerStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageScheduler = new ImageIcon(thumbScheduler);
mainPanel.add(new JButton(imageScheduler));
BufferedImage thumbUserIO =
this.userIOStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageUserIO = new ImageIcon(thumbUserIO);
mainPanel.add(new JButton(imageUserIO));
BufferedImage thumbSystemIO =
this.systemIOStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageSystemIO = new ImageIcon(thumbSystemIO);
mainPanel.add(new JButton(imageSystemIO));
BufferedImage thumbConcurrency =
this.concurrencyStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageConcurrency = new ImageIcon(thumbConcurrency);
mainPanel.add(new JButton(imageConcurrency));
BufferedImage thumbApplication =
this.applicationStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageApplication = new ImageIcon(thumbApplication);
mainPanel.add(new JButton(imageApplication));
BufferedImage thumbCommit =
this.commitStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageCommit = new ImageIcon(thumbCommit);
mainPanel.add(new JButton(imageCommit));
BufferedImage thumbConfiguration =
this.configurationStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageConfiguration = new ImageIcon(thumbConfiguration);
mainPanel.add(new JButton(imageConfiguration));
BufferedImage thumbAdministrative =
this.administrativeStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageAdministrative = new ImageIcon(thumbAdministrative);
mainPanel.add(new JButton(imageAdministrative));
BufferedImage thumbNetwork =
this.networkStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageNetwork = new ImageIcon(thumbNetwork);
mainPanel.add(new JButton(imageNetwork));
mainPanel.add(new JPanel());
BufferedImage thumbQueuning =
this.queuningStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageQueuning = new ImageIcon(thumbQueuning);
mainPanel.add(new JButton(imageQueuning));
BufferedImage thumbCluster =
this.clusterStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageCluster = new ImageIcon(thumbCluster);
mainPanel.add(new JButton(imageCluster));
BufferedImage thumbOther =
this.otherStackedChartMainObjectDetail.
createBufferedImage(120, 80, 360, 240,null);
ImageIcon imageOther = new ImageIcon(thumbOther);
mainPanel.add(new JButton(imageOther));
mainPanel.add(new JPanel());
return mainPanel;
}
/**
* Sets the threshold max cpu for all charts.
*/
private void setThresholdMaxCpu(){
this.cpuStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.schedulerStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.userIOStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.systemIOStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.concurrencyStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.applicationStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.commitStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.configurationStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.administrativeStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.networkStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.queuningStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.clusterStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
this.otherStackedChartMainObjectDetail.setThresholdMaxCpu(this.maxCpu);
}
/**
* Update xAxis label.
* @param time the time
*/
public void updatexAxisLabel(double time){
this.cpuStackedChartMainObjectDetail.updatexAxisLabel(time);
this.schedulerStackedChartMainObjectDetail.updatexAxisLabel(time);
this.userIOStackedChartMainObjectDetail.updatexAxisLabel(time);
this.systemIOStackedChartMainObjectDetail.updatexAxisLabel(time);
this.concurrencyStackedChartMainObjectDetail.updatexAxisLabel(time);
this.applicationStackedChartMainObjectDetail.updatexAxisLabel(time);
this.commitStackedChartMainObjectDetail.updatexAxisLabel(time);
this.configurationStackedChartMainObjectDetail.updatexAxisLabel(time);
this.administrativeStackedChartMainObjectDetail.updatexAxisLabel(time);
this.networkStackedChartMainObjectDetail.updatexAxisLabel(time);
this.queuningStackedChartMainObjectDetail.updatexAxisLabel(time);
this.clusterStackedChartMainObjectDetail.updatexAxisLabel(time);
this.otherStackedChartMainObjectDetail.updatexAxisLabel(time);
}
/**
* Set top sql value
* @param value
*/
public void setTopSqlsSqlText(int value){
this.cpuSqlsAndSessions.setTopSqlsSqlText(value);
this.schedulerSqlsAndSessions.setTopSqlsSqlText(value);
this.userIOSqlsAndSessions.setTopSqlsSqlText(value);
this.systemIOSqlsAndSessions.setTopSqlsSqlText(value);
this.concurrencySqlsAndSessions.setTopSqlsSqlText(value);
this.applicationSqlsAndSessions.setTopSqlsSqlText(value);
this.commitSqlsAndSessions.setTopSqlsSqlText(value);
this.configurationSqlsAndSessions.setTopSqlsSqlText(value);
this.administrativeSqlsAndSessions.setTopSqlsSqlText(value);
this.networkSqlsAndSessions.setTopSqlsSqlText(value);
this.queuningSqlsAndSessions.setTopSqlsSqlText(value);
this.clusterSqlsAndSessions.setTopSqlsSqlText(value);
this.otherSqlsAndSessions.setTopSqlsSqlText(value);
}
/**
* Select top sql plan
*
* @param value
*/
public void setSelectSqlPlan(boolean isSelect){
this.cpuSqlsAndSessions.setSelectSqlPlan(isSelect);
this.schedulerSqlsAndSessions.setSelectSqlPlan(isSelect);
this.userIOSqlsAndSessions.setSelectSqlPlan(isSelect);
this.systemIOSqlsAndSessions.setSelectSqlPlan(isSelect);
this.concurrencySqlsAndSessions.setSelectSqlPlan(isSelect);
this.applicationSqlsAndSessions.setSelectSqlPlan(isSelect);
this.commitSqlsAndSessions.setSelectSqlPlan(isSelect);
this.configurationSqlsAndSessions.setSelectSqlPlan(isSelect);
this.administrativeSqlsAndSessions.setSelectSqlPlan(isSelect);
this.networkSqlsAndSessions.setSelectSqlPlan(isSelect);
this.queuningSqlsAndSessions.setSelectSqlPlan(isSelect);
this.clusterSqlsAndSessions.setSelectSqlPlan(isSelect);
this.otherSqlsAndSessions.setSelectSqlPlan(isSelect);
}
/**
* Get name of selected tab
* @return name
*/
public String getCurrentTabName(){
return this.tabsDetail.getTitleAt(this.tabsDetail.getSelectedIndex());
}
}