org.adoptopenjdk.jitwatch.ui.sandbox.VMLanguageList 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.sandbox;
import java.util.Collections;
import java.util.List;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
import org.adoptopenjdk.jitwatch.core.JITWatchConfig;
import org.adoptopenjdk.jitwatch.jvmlang.LanguageManager;
import org.adoptopenjdk.jitwatch.ui.stage.IStageClosedListener;
import org.adoptopenjdk.jitwatch.ui.stage.StageManager;
public class VMLanguageList extends FlowPane implements IStageClosedListener
{
private JITWatchConfig config;
private VMLanguageConfigStage openVMLCStage = null;
private Stage parent;
public VMLanguageList(Stage parent, final JITWatchConfig config)
{
this.config = config;
this.parent = parent;
setVgap(10);
setHgap(20);
setMaxWidth(600);
setPadding(new Insets(0,0,5,0));
updateList();
}
@Override
public void handleStageClosed(Stage stage)
{
openVMLCStage = null;
updateList();
}
private void updateList()
{
List vmLanguageList = config.getVMLanguageList();
Collections.sort(vmLanguageList);
getChildren().clear();
for (final String lang : vmLanguageList)
{
Button button = new Button(lang);
button.setPrefWidth(120);
if (!LanguageManager.isLanguageEnabled(lang))
{
button.setDisable(true);
}
button.setOnAction(new EventHandler()
{
@Override
public void handle(ActionEvent e)
{
if (openVMLCStage == null)
{
openVMLCStage = new VMLanguageConfigStage(VMLanguageList.this, config, lang);
StageManager.addAndShow(parent, openVMLCStage, VMLanguageList.this);
}
}
});
getChildren().add(button);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy