< prev index next >

application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/ClassLoadingPage.java

Print this page

        

*** 129,138 **** --- 129,140 ---- private static final IItemFilter TABLE_FILTER = ItemFilters.or(JdkQueries.CLASS_LOAD.getFilter(), JdkQueries.CLASS_UNLOAD.getFilter()); private static final ItemHistogramBuilder CLASSLOADER_HISTOGRAM = new ItemHistogramBuilder(); private static final ItemListBuilder CLASS_LOADING_LIST = new ItemListBuilder(); private static final ItemListBuilder CLASS_UNLOADING_LIST = new ItemListBuilder(); + private static final ItemListBuilder CLASS_DEFINE_LIST = new ItemListBuilder(); + private static final ItemListBuilder CLASS_LOADER_STATISTICS_LIST = new ItemListBuilder(); private static final Map<String, Boolean> LEGEND_ITEMS = new LinkedHashMap<>(); private static final String LOADED_COUNT = "loadedCount"; //$NON-NLS-1$ private static final String UNLOADED_COUNT = "unloadedCount"; //$NON-NLS-1$ private static final String CLASS_LOAD = "classLoad"; //$NON-NLS-1$ private static final String CLASS_UNLOAD = "classUnload"; //$NON-NLS-1$
*** 156,166 **** CLASS_LOADING_LIST.addColumn(JfrAttributes.EVENT_THREAD); CLASS_UNLOADING_LIST.addColumn(JfrAttributes.EVENT_TIMESTAMP); CLASS_UNLOADING_LIST.addColumn(JfrAttributes.EVENT_THREAD); CLASS_UNLOADING_LIST.addColumn(JdkAttributes.CLASS_UNLOADED); CLASS_UNLOADING_LIST.addColumn(JdkAttributes.CLASS_DEFINING_CLASSLOADER); ! // FIXME: Need to make a label provider for this // FIXME: Want to have this in the same order LEGEND_ITEMS.put(JdkAttributes.CLASSLOADER_LOADED_COUNT.getIdentifier(), Boolean.TRUE); LEGEND_ITEMS.put(JdkAttributes.CLASSLOADER_UNLOADED_COUNT.getIdentifier(), Boolean.FALSE); --- 158,181 ---- CLASS_LOADING_LIST.addColumn(JfrAttributes.EVENT_THREAD); CLASS_UNLOADING_LIST.addColumn(JfrAttributes.EVENT_TIMESTAMP); CLASS_UNLOADING_LIST.addColumn(JfrAttributes.EVENT_THREAD); CLASS_UNLOADING_LIST.addColumn(JdkAttributes.CLASS_UNLOADED); CLASS_UNLOADING_LIST.addColumn(JdkAttributes.CLASS_DEFINING_CLASSLOADER); ! CLASS_DEFINE_LIST.addColumn(JdkAttributes.CLASS_DEFINING_CLASSLOADER); ! CLASS_DEFINE_LIST.addColumn(JdkAttributes.CLASS_DEFINED); ! CLASS_DEFINE_LIST.addColumn(JfrAttributes.EVENT_THREAD); ! CLASS_DEFINE_LIST.addColumn(JfrAttributes.START_TIME); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.ANONYMOUS_BLOCK_SIZE); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.ANONYMOUS_CHUNK_SIZE); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.ANONYMOUS_CLASS_COUNT); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.BLOCK_SIZE); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.CHUNK_SIZE); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.CLASS_COUNT); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.CLASS_LOADER_DATA); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.PARENT_CLASSLOADER); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JdkAttributes.CLASSLOADER); ! CLASS_LOADER_STATISTICS_LIST.addColumn(JfrAttributes.START_TIME); // FIXME: Need to make a label provider for this // FIXME: Want to have this in the same order LEGEND_ITEMS.put(JdkAttributes.CLASSLOADER_LOADED_COUNT.getIdentifier(), Boolean.TRUE); LEGEND_ITEMS.put(JdkAttributes.CLASSLOADER_UNLOADED_COUNT.getIdentifier(), Boolean.FALSE);
*** 171,182 **** --- 186,201 ---- private class ClassLoadingUi implements IPageUI { private final ChartCanvas classLoadingChart; private final ItemList classLoadingTable; private final ItemList classUnloadingTable; + private final ItemList classDefineTable; + private final ItemList classLoaderStatisticsTable; private FilterComponent classLoadingFilter; private FilterComponent classUnloadingFilter; + private FilterComponent classDefineFilter; + private FilterComponent classLoaderStatisticsFilter; private final SashForm sash; private final IPageContainer pageContainer; private IItemCollection selectionItems; private ItemHistogram classloaderHistogram; private FilterComponent classloaderHistogramFilter;
*** 257,266 **** --- 276,321 ---- classLoadingTableMm.add(classLoadingFilter.getShowSearchAction()); classLoadingFilter.loadState(state.getChild(CLASS_LOADING_FILTER)); DataPageToolkit.addTabItem(tabFolder, classLoadingFilter.getComponent(), Messages.ClassLoadingPage_CLASS_LOADING_TAB_TITLE); + classLoaderStatisticsTable = CLASS_LOADER_STATISTICS_LIST.buildWithoutBorder(tabFolder, + TableSettings.forState(state.getChild(CLASS_LOADER_STATISTICS_TABLE))); + classLoaderStatisticsTable.getManager().getViewer().addSelectionChangedListener(e -> pageContainer + .showSelection(ItemCollectionToolkit.build(classLoaderStatisticsTable.getSelection().get()))); + classLoaderStatisticsFilter = FilterComponent.createFilterComponent(classLoaderStatisticsTable, null, + getDataSource().getItems().apply(JdkFilters.CLASS_LOADER_STATISTICS), + pageContainer.getSelectionStore()::getSelections, this::onClassLoadFilterChange); + MCContextMenuManager classLoaderStatisticsTableMm = MCContextMenuManager + .create(classLoaderStatisticsTable.getManager().getViewer().getControl()); + ColumnMenusFactory.addDefaultMenus(classLoaderStatisticsTable.getManager(), classLoaderStatisticsTableMm); + SelectionStoreActionToolkit.addSelectionStoreActions(pageContainer.getSelectionStore(), classLoaderStatisticsTable, + Messages.ClassLoadingPage_CLASS_LOADER_STATISTICS_LIST_SELECTION, classLoaderStatisticsTableMm); + classLoaderStatisticsTableMm.add(classLoaderStatisticsFilter.getShowFilterAction()); + classLoaderStatisticsTableMm.add(classLoaderStatisticsFilter.getShowSearchAction()); + classLoaderStatisticsFilter.loadState(state.getChild(CLASS_LOADER_STATISTICS_FILTER)); + DataPageToolkit.addTabItem(tabFolder, classLoaderStatisticsFilter.getComponent(), + Messages.ClassLoadingPage_CLASS_LOADER_STATISTICS_TAB_TITLE); + + classDefineTable = CLASS_DEFINE_LIST.buildWithoutBorder(tabFolder, + TableSettings.forState(state.getChild(CLASS_DEFINE_TABLE))); + classDefineTable.getManager().getViewer().addSelectionChangedListener(e -> pageContainer + .showSelection(ItemCollectionToolkit.build(classDefineTable.getSelection().get()))); + classDefineFilter = FilterComponent.createFilterComponent(classDefineTable, null, + getDataSource().getItems().apply(JdkFilters.CLASS_DEFINE), + pageContainer.getSelectionStore()::getSelections, this::onClassLoadFilterChange); + MCContextMenuManager classDefineTableMm = MCContextMenuManager + .create(classDefineTable.getManager().getViewer().getControl()); + ColumnMenusFactory.addDefaultMenus(classDefineTable.getManager(), classDefineTableMm); + SelectionStoreActionToolkit.addSelectionStoreActions(pageContainer.getSelectionStore(), classDefineTable, + Messages.ClassLoadingPage_CLASS_DEFINE_LIST_SELECTION, classDefineTableMm); + classDefineTableMm.add(classDefineFilter.getShowFilterAction()); + classDefineTableMm.add(classDefineFilter.getShowSearchAction()); + classDefineFilter.loadState(state.getChild(CLASS_DEFINE_FILTER)); + DataPageToolkit.addTabItem(tabFolder, classDefineFilter.getComponent(), + Messages.ClassLoadingPage_CLASS_DEFINE_TAB_TITLE); + classUnloadingTable = CLASS_UNLOADING_LIST.buildWithoutBorder(tabFolder, TableSettings.forState(state.getChild(CLASS_UNLOADING_TABLE))); classUnloadingTable.getManager().getViewer().addSelectionChangedListener(e -> pageContainer .showSelection(ItemCollectionToolkit.build(classUnloadingTable.getSelection().get()))); classUnloadingFilter = FilterComponent.createFilterComponent(classUnloadingTable, null,
*** 285,298 **** --- 340,357 ---- addResultActions(form); onHistogramFilterChange(histogramFilter); onClassLoadFilterChange(classLoadTableFilter); onClassUnloadFilterChange(classUnloadTableFilter); + onClassDefineFilterChange(classDefineTableFilter); + onClassLoaderStatisticsFilterChange(classLoaderStatisticsTableFilter); classloaderHistogram.getManager().setSelectionState(histogramSelection); classLoadingTable.getManager().setSelectionState(classLoadingTableSelection); classUnloadingTable.getManager().setSelectionState(classUnloadingTableSelection); + classDefineTable.getManager().setSelectionState(classDefineTableSelection); + classLoaderStatisticsTable.getManager().setSelectionState(classLoaderStatisticsTableSelection); } private void onHistogramFilterChange(IItemFilter filter) { classloaderHistogramFilter.filterChangeHelper(filter, classloaderHistogram, getDataSource().getItems().apply(JdkFilters.CLASS_LOAD_OR_UNLOAD));
*** 300,309 **** --- 359,374 ---- classLoadingFilter.notifyListener(); } if (classUnloadingFilter != null) { classUnloadingFilter.notifyListener(); } + if (classDefineFilter != null) { + classDefineFilter.notifyListener(); + } + if (classLoaderStatisticsFilter != null) { + classLoaderStatisticsFilter.notifyListener(); + } histogramFilter = filter; } private void onClassLoadFilterChange(IItemFilter filter) { classLoadingFilter.filterChangeHelper(filter, classLoadingTable,
*** 315,342 **** --- 380,425 ---- classUnloadingFilter.filterChangeHelper(filter, classUnloadingTable, getDataSource().getItems().apply(JdkFilters.CLASS_UNLOAD)); classUnloadTableFilter = filter; } + private void onClassDefineFilterChange(IItemFilter filter) { + classDefineFilter.filterChangeHelper(filter, classDefineTable, + getDataSource().getItems().apply(JdkFilters.CLASS_DEFINE)); + classDefineTableFilter = filter; + } + + private void onClassLoaderStatisticsFilterChange(IItemFilter filter) { + classLoaderStatisticsFilter.filterChangeHelper(filter, classLoaderStatisticsTable, + getDataSource().getItems().apply(JdkFilters.CLASS_LOADER_STATISTICS)); + classLoaderStatisticsTableFilter = filter; + } + @Override public void saveTo(IWritableState state) { PersistableSashForm.saveState(sash, state.createChild(SASH)); classloaderHistogram.getManager().getSettings().saveState(state.createChild(HISTOGRAM)); classLoadingTable.getManager().getSettings().saveState(state.createChild(CLASS_LOADING_TABLE)); classUnloadingTable.getManager().getSettings().saveState(state.createChild(CLASS_UNLOADING_TABLE)); + classDefineTable.getManager().getSettings().saveState(state.createChild(CLASS_DEFINE_TABLE)); + classLoaderStatisticsTable.getManager().getSettings().saveState(state.createChild(CLASS_LOADER_STATISTICS_TABLE)); classloaderHistogramFilter.saveState(state.createChild(HISTOGRAM_FILTER)); classLoadingFilter.saveState(state.createChild(CLASS_LOADING_FILTER)); classUnloadingFilter.saveState(state.createChild(CLASS_UNLOADING_FILTER)); + classDefineFilter.saveState(state.createChild(CLASS_DEFINE_FILTER)); + classLoaderStatisticsFilter.saveState(state.createChild(CLASS_LOADER_STATISTICS_FILTER)); ActionToolkit.saveCheckState(state.createChild(CHART), allChartSeriesActions.stream()); saveToLocal(); } private void saveToLocal() { histogramSelection = classloaderHistogram.getManager().getSelectionState(); classLoadingTableSelection = classLoadingTable.getManager().getSelectionState(); classUnloadingTableSelection = classUnloadingTable.getManager().getSelectionState(); + classDefineTableSelection = classDefineTable.getManager().getSelectionState(); + classLoaderStatisticsTableSelection = classLoaderStatisticsTable.getManager().getSelectionState(); tabFolderIndex = tabFolder.getSelectionIndex(); flavorSelectorState = flavorSelector.getFlavorSelectorState(); } private void onShow(Boolean show) {
*** 415,439 **** --- 498,530 ---- private static final String SASH = "sash"; //$NON-NLS-1$ private static final String HISTOGRAM = "histogram"; //$NON-NLS-1$ private static final String HISTOGRAM_FILTER = "histogramFilter"; //$NON-NLS-1$ private static final String CLASS_LOADING_TABLE = "classLoadingTable"; //$NON-NLS-1$ private static final String CLASS_UNLOADING_TABLE = "classUnloadingTable"; //$NON-NLS-1$ + private static final String CLASS_DEFINE_TABLE = "classDefineTable"; //$NON-NLS-1$ + private static final String CLASS_LOADER_STATISTICS_TABLE = "classLoaderStatisticsTable"; //$NON-NLS-1$ private static final String CLASS_LOADING_FILTER = "classLoadingFilter"; //$NON-NLS-1$ private static final String CLASS_UNLOADING_FILTER = "classUnloadingFilter"; //$NON-NLS-1$ + private static final String CLASS_DEFINE_FILTER = "classDefineFilter"; //$NON-NLS-1$ + private static final String CLASS_LOADER_STATISTICS_FILTER = "classLoaderStatisticsFilter"; //$NON-NLS-1$ private static final String CHART = "chart"; //$NON-NLS-1$ @Override public IPageUI display(Composite parent, FormToolkit toolkit, IPageContainer pageContainer, IState state) { return new ClassLoadingUi(parent, toolkit, pageContainer, state); } private SelectionState histogramSelection; private SelectionState classLoadingTableSelection; private SelectionState classUnloadingTableSelection; + private SelectionState classDefineTableSelection; + private SelectionState classLoaderStatisticsTableSelection; private IItemFilter histogramFilter; private IItemFilter classLoadTableFilter; private IItemFilter classUnloadTableFilter; + private IItemFilter classDefineTableFilter; + private IItemFilter classLoaderStatisticsTableFilter; private int tabFolderIndex = 0; private IRange<IQuantity> timelineRange; private FlavorSelectorState flavorSelectorState; public ClassLoadingPage(IPageDefinition dpd, StreamModel items, IPageContainer editor) {
< prev index next >