package org.visualvm.demodescriptorprovider;
import org.visualvm.demodescriptorprovider.panels.MemoryMonitor5;
import org.visualvm.demodescriptorprovider.panels.MemoryMonitor2;
import org.visualvm.demodescriptorprovider.panels.MemoryMonitor1;
import org.visualvm.demodescriptorprovider.panels.MemoryMonitor4;
import org.visualvm.demodescriptorprovider.panels.MemoryMonitor3;
import com.sun.tools.visualvm.core.ui.DataSourceView;
import com.sun.tools.visualvm.core.ui.components.DataViewComponent;
import com.sun.tools.visualvm.core.ui.components.ScrollableContainer;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import org.openide.util.Utilities;
import org.netbeans.lib.profiler.ui.components.HTMLTextArea;
class DemoDataSourceView extends DataSourceView {
private DataViewComponent dvc;
private static final String IMAGE_PATH = "" +
"org/visualvm/demodescriptorprovider/icon.png"; // NOI18N
public DemoDataSourceView(DemoDataSource ds) {
super(ds, "Memory Monitor", new ImageIcon(
Utilities.loadImage(IMAGE_PATH, true)).getImage(), 60, true);
}
@Override
protected DataViewComponent createComponent() {
//Data area for master view:
MemoryMonitor1 panel1 = new MemoryMonitor1();
MemoryMonitor2 panel2 = new MemoryMonitor2();
MemoryMonitor3 panel3 = new MemoryMonitor3();
MemoryMonitor4 panel4 = new MemoryMonitor4();
MemoryMonitor5 panel5 = new MemoryMonitor5();
panel1.setPreferredSize(new Dimension(650, 200));
panel2.setPreferredSize(new Dimension(650, 200));
panel3.setPreferredSize(new Dimension(650, 200));
panel4.setPreferredSize(new Dimension(650, 200));
panel5.setPreferredSize(new Dimension(650, 200));
ScrollableContainer container1 = new ScrollableContainer(panel1);
JScrollPane jScrollPane1 = new JScrollPane(panel1);
JScrollPane jScrollPane2 = new JScrollPane(panel2);
JScrollPane jScrollPane3 = new JScrollPane(panel3);
JScrollPane jScrollPane4 = new JScrollPane(panel4);
JScrollPane jScrollPane5 = new JScrollPane(panel5);
JPanel panel = new JPanel();
final HTMLTextArea area = new HTMLTextArea();
area.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
panel.setBackground(area.getBackground());
area.setText("<a href=\"" + "hello" + "\">www.hello.org</a>");
panel.add(new ScrollableContainer(area), BorderLayout.CENTER);
//Master view:
DataViewComponent.MasterView masterView = new DataViewComponent.MasterView("", null, null);
//Configuration of master view:
DataViewComponent.MasterViewConfiguration masterConfiguration =
new DataViewComponent.MasterViewConfiguration(false);
//Add the master view and configuration view to the component:
dvc = new DataViewComponent(masterView, masterConfiguration);
//Add configuration details to the component, which are the show/hide checkboxes at the top:
dvc.configureDetailsArea(new DataViewComponent.DetailsAreaConfiguration(
"Show Code Cache", true), DataViewComponent.TOP_LEFT);
dvc.configureDetailsArea(new DataViewComponent.DetailsAreaConfiguration(
"Show Eden Space", true), DataViewComponent.TOP_RIGHT);
dvc.configureDetailsArea(new DataViewComponent.DetailsAreaConfiguration(
"Show Survivor Space", true), DataViewComponent.BOTTOM_LEFT);
dvc.configureDetailsArea(new DataViewComponent.DetailsAreaConfiguration(
"Show Gen", true), DataViewComponent.BOTTOM_RIGHT);
//Add detail views to the component:
dvc.addDetailsView(new DataViewComponent.DetailsView(
"Code Cache", null, 30, jScrollPane1, null), DataViewComponent.TOP_LEFT);
dvc.addDetailsView(new DataViewComponent.DetailsView(
"Eden Space", null, 30, jScrollPane2, null), DataViewComponent.TOP_RIGHT);
dvc.addDetailsView(new DataViewComponent.DetailsView(
"Survivor Space", null, 30, jScrollPane3, null), DataViewComponent.BOTTOM_LEFT);
dvc.addDetailsView(new DataViewComponent.DetailsView(
"Old Gen", null, 30, jScrollPane4, null), DataViewComponent.BOTTOM_RIGHT);
dvc.addDetailsView(new DataViewComponent.DetailsView(
"Perm Gen", null, 30, jScrollPane5, null), DataViewComponent.BOTTOM_RIGHT);
return dvc;
}
}