< prev index next >

application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/views/stacktrace/StacktraceView.java

Print this page




 624         }
 625 
 626         @Override
 627         public void saveState(IMemento memento) {
 628                 memento.putString(COLUMNS_KEY, IntStream.of(getColumnWidths()).mapToObj(Integer::toString)
 629                                 .collect(Collectors.joining(COLUMNS_SEPARATOR)));
 630                 methodFormatter.saveState(memento.createChild(METHOD_FORMAT_KEY));
 631                 memento.putBoolean(THREAD_ROOT_KEY, threadRootAtTop);
 632                 memento.putBoolean(TREE_LAYOUT_KEY, treeLayout);
 633                 memento.putBoolean(REDUCED_TREE_KEY, reducedTree);
 634                 FrameSeparator frameSeparator = frameSeparatorManager.getFrameSeparator();
 635                 memento.putBoolean(FRAME_OPTIMIZATION_KEY, frameSeparator.isDistinguishFramesByOptimization());
 636                 memento.putString(FRAME_CATEGORIZATION_KEY, frameSeparator.getCategorization().name());
 637         }
 638 
 639         @Override
 640         public void selectionChanged(IWorkbenchPart part, ISelection selection) {
 641                 if (selection instanceof IStructuredSelection) {
 642                         Object first = ((IStructuredSelection) selection).getFirstElement();
 643                         IItemCollection items = AdapterUtil.getAdapter(first, IItemCollection.class);
 644                         if (items != null && !items.equals(itemsToShow)) {



 645                                 setItems(items);
 646                         }
 647                 }
 648         }
 649 
 650         private void setItems(IItemCollection items) {
 651                 itemsToShow = items;
 652                 rebuildModel();
 653         }
 654 
 655         private StacktraceModel createStacktraceModel() {
 656                 return new StacktraceModel(threadRootAtTop, frameSeparatorManager.getFrameSeparator(), itemsToShow);
 657         }
 658 
 659         private void rebuildModel() {
 660                 // Release old model before building the new
 661                 setViewerInput(null);
 662                 CompletableFuture<StacktraceModel> modelPreparer = getModelPreparer(createStacktraceModel(), !treeLayout);
 663                 modelPreparer.thenAcceptAsync(this::setModel, DisplayToolkit.inDisplayThread())
 664                                 .exceptionally(StacktraceView::handleModelBuildException);




 624         }
 625 
 626         @Override
 627         public void saveState(IMemento memento) {
 628                 memento.putString(COLUMNS_KEY, IntStream.of(getColumnWidths()).mapToObj(Integer::toString)
 629                                 .collect(Collectors.joining(COLUMNS_SEPARATOR)));
 630                 methodFormatter.saveState(memento.createChild(METHOD_FORMAT_KEY));
 631                 memento.putBoolean(THREAD_ROOT_KEY, threadRootAtTop);
 632                 memento.putBoolean(TREE_LAYOUT_KEY, treeLayout);
 633                 memento.putBoolean(REDUCED_TREE_KEY, reducedTree);
 634                 FrameSeparator frameSeparator = frameSeparatorManager.getFrameSeparator();
 635                 memento.putBoolean(FRAME_OPTIMIZATION_KEY, frameSeparator.isDistinguishFramesByOptimization());
 636                 memento.putString(FRAME_CATEGORIZATION_KEY, frameSeparator.getCategorization().name());
 637         }
 638 
 639         @Override
 640         public void selectionChanged(IWorkbenchPart part, ISelection selection) {
 641                 if (selection instanceof IStructuredSelection) {
 642                         Object first = ((IStructuredSelection) selection).getFirstElement();
 643                         IItemCollection items = AdapterUtil.getAdapter(first, IItemCollection.class);
 644                         if(items == null) {
 645                                 setItems(ItemCollectionToolkit.build(Stream.empty()));
 646                         }
 647                         else if (!items.equals(itemsToShow)) {
 648                                 setItems(items);
 649                         }
 650                 }
 651         }
 652 
 653         private void setItems(IItemCollection items) {
 654                 itemsToShow = items;
 655                 rebuildModel();
 656         }
 657 
 658         private StacktraceModel createStacktraceModel() {
 659                 return new StacktraceModel(threadRootAtTop, frameSeparatorManager.getFrameSeparator(), itemsToShow);
 660         }
 661 
 662         private void rebuildModel() {
 663                 // Release old model before building the new
 664                 setViewerInput(null);
 665                 CompletableFuture<StacktraceModel> modelPreparer = getModelPreparer(createStacktraceModel(), !treeLayout);
 666                 modelPreparer.thenAcceptAsync(this::setModel, DisplayToolkit.inDisplayThread())
 667                                 .exceptionally(StacktraceView::handleModelBuildException);


< prev index next >