public String computeThreads(boolean showThreads) { String threadsWindowRes = Icons.getResource(ProfilerIcons.WINDOW_THREADS); return "<b><img border='0' align='bottom' src='nbresloc:/" + threadsWindowRes + "'> " // NOI18N + Bundle.OverviewController_ThreadsString() + "</b><br><hr>" // NOI18N + (showThreads ? getStackTrace() : (" <a href='" + SHOW_THREADS_URL + "'>" + Bundle.OverviewController_ShowThreadsLinkString() + "</a><br> ")); // NOI18N // NOTE: the above HTML string should be terminated by newline to workaround HTML rendering bug // in JDK 5, see Issue 120157 }
public String computeSystemProperties(boolean showSystemProperties) { Properties sysprops = getSystemProperties(); if (sysprops == null) { return Bundle.OverviewController_NotAvailableMsg(); } String propertiesRes = Icons.getResource(HeapWalkerIcons.PROPERTIES); return "<b><img border='0' align='bottom' src='nbresloc:/" + propertiesRes + "'> " // NOI18N + Bundle.OverviewController_SystemPropertiesString() + "</b><br><hr>" // NOI18N + (showSystemProperties ? formatSystemProperties(sysprops) : (" <a href='" + SHOW_SYSPROPS_URL + "'>" + Bundle.OverviewController_ShowSysPropsLinkString() + "</a>")); // NOI18N }
// ~ Constructors // ------------------------------------------------------------------------------------------------------------- public TakeSnapshotAction() { listener = Lookup.getDefault().lookup(Listener.class); listener.setDelegate(this); setIcon(Icons.getIcon(ProfilerIcons.SNAPSHOT_TAKE)); putValue("iconBase", Icons.getResource(ProfilerIcons.SNAPSHOT_TAKE)); // NOI18N }
public String computeEnvironment() { Properties sysprops = getSystemProperties(); if (sysprops == null) { return Bundle.OverviewController_NotAvailableMsg(); } String patchLevel = sysprops.getProperty("sun.os.patch.level", ""); // NOI18N String os = " " // NOI18N + Bundle.OverviewController_OsItemString( sysprops.getProperty( "os.name", Bundle.OverviewController_NotAvailableMsg()), // NOI18N sysprops.getProperty("os.version", ""), // NOI18N ("unknown".equals(patchLevel) ? "" : patchLevel) // NOI18N ); String arch = " " // NOI18N + Bundle.OverviewController_ArchitectureItemString( sysprops.getProperty( "os.arch", Bundle.OverviewController_NotAvailableMsg()), // NOI18N sysprops.getProperty("sun.arch.data.model", "?") + "bit" // NOI18N ); String jdk = " " // NOI18N + Bundle.OverviewController_JavaHomeItemString( sysprops.getProperty( "java.home", Bundle.OverviewController_NotAvailableMsg())); // NOI18N String version = " " // NOI18N + Bundle.OverviewController_JavaVersionItemString( sysprops.getProperty( "java.version", Bundle.OverviewController_NotAvailableMsg())); // NOI18N String jvm = " " // NOI18N + Bundle.OverviewController_JvmItemString( sysprops.getProperty( "java.vm.name", Bundle.OverviewController_NotAvailableMsg()), // NOI18N sysprops.getProperty("java.vm.version", ""), // NOI18N sysprops.getProperty("java.vm.info", "") // NOI18N ); String vendor = " " // NOI18N + Bundle.OverviewController_JavaVendorItemString( sysprops.getProperty( "java.vendor", Bundle.OverviewController_NotAvailableMsg())); // NOI18N String sysinfoRes = Icons.getResource(HeapWalkerIcons.SYSTEM_INFO); return "<b><img border='0' align='bottom' src='nbresloc:/" + sysinfoRes + "'> " // NOI18N + Bundle.OverviewController_EnvironmentString() + "</b><br><hr>" + os + "<br>" + arch + "<br>" + jdk + "<br>" + version + "<br>" + jvm + "<br>" + vendor; // NOI18N }
public String computeSummary() { File file = heapFragmentWalker.getHeapDumpFile(); Heap heap = heapFragmentWalker.getHeapFragment(); HeapSummary hsummary = heap.getSummary(); long finalizers = computeFinalizers(heap); int nclassloaders = 0; JavaClass cl = heap.getJavaClassByName("java.lang.ClassLoader"); // NOI18N NumberFormat numberFormat = (NumberFormat) NumberFormat.getInstance().clone(); numberFormat.setMaximumFractionDigits(1); oome = getOOMEThread(heap); if (cl != null) { nclassloaders = cl.getInstancesCount(); Collection<JavaClass> jcs = cl.getSubClasses(); for (JavaClass jc : jcs) { nclassloaders += jc.getInstancesCount(); } } String filename = " " // NOI18N + Bundle.OverviewController_FileItemString( file != null && file.exists() ? file.getAbsolutePath() : Bundle.OverviewController_NotAvailableMsg()); String filesize = " " // NOI18N + Bundle.OverviewController_FileSizeItemString( file != null && file.exists() ? numberFormat.format(file.length() / (1024 * 1024.0)) + " MB" : // NOI18N Bundle.OverviewController_NotAvailableMsg()); String dateTaken = " " // NOI18N + Bundle.OverviewController_DateTakenItemString( new Date(hsummary.getTime()).toString()); String liveBytes = " " // NOI18N + Bundle.OverviewController_TotalBytesItemString( numberFormat.format(hsummary.getTotalLiveBytes())); String liveClasses = " " // NOI18N + Bundle.OverviewController_TotalClassesItemString( numberFormat.format(heap.getAllClasses().size())); String liveInstances = " " // NOI18N + Bundle.OverviewController_TotalInstancesItemString( numberFormat.format(hsummary.getTotalLiveInstances())); String classloaders = " " // NOI18N + Bundle.OverviewController_ClassloadersItemString(numberFormat.format(nclassloaders)); String gcroots = " " // NOI18N + Bundle.OverviewController_GcRootsItemString( numberFormat.format(heap.getGCRoots().size())); String finalizersInfo = " " // NOI18N + Bundle.OverviewController_FinalizersItemString(numberFormat.format(finalizers)); String oomeString = ""; if (oome != null) { Instance thread = oome.getInstance(); String threadName = htmlize(getThreadName(thread)); String threadUrl = "<a href='" + THREAD_URL_PREFIX + thread.getJavaClass().getName() + "/" + thread.getInstanceId() + "'>" + threadName + "</a>"; // NOI18N oomeString = "<br><br> " // NOI18N + Bundle.OverviewController_OOMELabelString() + "<br> " + Bundle.OverviewController_OOMEItemString(threadUrl); } String memoryRes = Icons.getResource(ProfilerIcons.HEAP_DUMP); return "<b><img border='0' align='bottom' src='nbresloc:/" + memoryRes + "'> " // NOI18N + Bundle.OverviewController_SummaryString() + "</b><br><hr>" + dateTaken + "<br>" + filename + "<br>" + filesize + "<br><br>" + liveBytes // NOI18N + "<br>" + liveClasses + "<br>" + liveInstances + "<br>" + classloaders + "<br>" + gcroots + "<br>" + finalizersInfo + oomeString; // NOI18N }
private void initComponents() { treeCellRenderer.setLeafIcon(null); treeCellRenderer.setClosedIcon(null); treeCellRenderer.setOpenIcon(null); fieldsListTableModel.setRealColumnVisibility(2, false); fieldsListTableModel.setRealColumnVisibility(4, false); if (retainedSizeSupported) fieldsListTableModel.setRealColumnVisibility( 5, referencesBrowserController .getReferencesControllerHandler() .getHeapFragmentWalker() .getRetainedSizesStatus() == HeapFragmentWalker.RETAINED_SIZES_COMPUTED); fieldsListTable = new JTreeTable(fieldsListTableModel) { public void doLayout() { int columnsWidthsSum = 0; int realFirstColumn = -1; TableColumnModel colModel = getColumnModel(); for (int i = 0; i < fieldsListTableModel.getColumnCount(); i++) { if (fieldsListTableModel.getRealColumn(i) == 0) { realFirstColumn = i; } else { columnsWidthsSum += colModel.getColumn(i).getPreferredWidth(); } } if (realFirstColumn != -1) { colModel.getColumn(realFirstColumn).setPreferredWidth(getWidth() - columnsWidthsSum); } super.doLayout(); } }; fieldsListTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fieldsListTable.setGridColor(UIConstants.TABLE_VERTICAL_GRID_COLOR); fieldsListTable.setSelectionBackground(UIConstants.TABLE_SELECTION_BACKGROUND_COLOR); fieldsListTable.setSelectionForeground(UIConstants.TABLE_SELECTION_FOREGROUND_COLOR); fieldsListTable.setShowHorizontalLines(UIConstants.SHOW_TABLE_HORIZONTAL_GRID); fieldsListTable.setShowVerticalLines(UIConstants.SHOW_TABLE_VERTICAL_GRID); fieldsListTable.setRowMargin(UIConstants.TABLE_ROW_MARGIN); fieldsListTable.setRowHeight(UIUtils.getDefaultRowHeight() + 2); fieldsListTable.getTree().setLargeModel(true); fieldsListTable.getTree().setToggleClickCount(0); fieldsListTable.getColumnModel().getColumn(0).setMinWidth(150); fieldsListTable .getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "DEFAULT_ACTION"); // NOI18N fieldsListTable .getActionMap() .put( "DEFAULT_ACTION", // NOI18N new AbstractAction() { public void actionPerformed(ActionEvent e) { performDefaultAction(); } }); // Disable traversing table cells using TAB and Shift+TAB Set keys = new HashSet( fieldsListTable.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); keys.add(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0)); fieldsListTable.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, keys); keys = new HashSet( fieldsListTable.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS)); keys.add(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK)); fieldsListTable.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, keys); setColumnsData(); tablePopup = createTablePopup(); cornerPopup = new JPopupMenu(); JTreeTablePanel tablePanel = new JTreeTablePanel(fieldsListTable); tablePanel.setCorner( JScrollPane.UPPER_RIGHT_CORNER, createHeaderPopupCornerButton(cornerPopup)); dataPanel = new JPanel(new BorderLayout()); dataPanel.add(tablePanel, BorderLayout.CENTER); noDataPanel = new JPanel(new BorderLayout()); noDataPanel.setBorder(BorderFactory.createLoweredBevelBorder()); HTMLTextArea hintArea = new HTMLTextArea(); hintArea.setBorder(BorderFactory.createEmptyBorder(10, 8, 8, 8)); String instancesRes = Icons.getResource(HeapWalkerIcons.INSTANCES); String hintText = Bundle.ReferencesBrowserControllerUI_NoInstanceSelectedMsg( "<img border='0' align='bottom' src='nbresloc:/" + instancesRes + "'>"); // NOI18N hintArea.setText(hintText); noDataPanel.add(hintArea, BorderLayout.CENTER); contents = new CardLayout(); setLayout(contents); add(noDataPanel, NO_DATA); add(dataPanel, DATA); fieldsListTable.addMouseListener(new FieldsListTableMouseListener()); fieldsListTable.addKeyListener(new FieldsListTableKeyListener()); }