org.adoptopenjdk.jitwatch.ui.report.cell.MemberTableCell Maven / Gradle / Ivy
/*
* Copyright (c) 2013-2017 Chris Newland.
* Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
* Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
*/
package org.adoptopenjdk.jitwatch.ui.report.cell;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableCell;
import javafx.scene.layout.VBox;
import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_EMPTY;
import org.adoptopenjdk.jitwatch.model.Compilation;
import org.adoptopenjdk.jitwatch.model.IMetaMember;
import org.adoptopenjdk.jitwatch.report.Report;
import org.adoptopenjdk.jitwatch.ui.main.IStageAccessProxy;
import org.adoptopenjdk.jitwatch.ui.report.IReportRowBean;
public class MemberTableCell extends TableCell
{
private VBox vBox;
private Label lblMetaClass;
private Label lblMetaMember;
private Label lblCompilation;
private Button btnTriView;
private static IStageAccessProxy triViewAccessor;
public static void setTriViewAccessor(IStageAccessProxy triViewAccessor)
{
MemberTableCell.triViewAccessor = triViewAccessor;
}
public MemberTableCell()
{
vBox = new VBox();
lblMetaClass = new Label();
lblMetaMember = new Label();
lblCompilation = new Label();
btnTriView = new Button("View");
vBox.getChildren().add(lblMetaClass);
vBox.getChildren().add(lblMetaMember);
vBox.getChildren().add(lblCompilation);
vBox.getChildren().add(btnTriView);
vBox.setSpacing(5);
setGraphic(vBox);
}
@Override
protected void updateItem(final Report report, boolean empty)
{
if (report != null && report.getCaller() != null)
{
final IMetaMember member = report.getCaller();
btnTriView.setOnAction(new EventHandler()
{
@Override
public void handle(ActionEvent e)
{
if (report.getCompilationIndex() != -1)
{
member.setSelectedCompilation(report.getCompilationIndex());
}
triViewAccessor.openTriView(member, false, report.getBytecodeOffset());
}
});
lblMetaClass.setText(member.getMetaClass().getFullyQualifiedName());
lblMetaMember.setText(member.toStringUnqualifiedMethodName(false, false));
Compilation compilation = member.getCompilation(report.getCompilationIndex());
String compilationText = compilation != null ? "Compilation: " + compilation.getSignature() : S_EMPTY;
lblCompilation.setText(compilationText);
btnTriView.setText("View BCI " + report.getBytecodeOffset());
btnTriView.setVisible(true);
}
else
{
btnTriView.setVisible(false);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy