private void run() {
//Create Statistics
StatisticsController controller = Lookup.getDefault().lookup(StatisticsController.class);
StatisticsControllerUI controllerUI = Lookup.getDefault().lookup(StatisticsControllerUI.class);
StatisticsBuilder builder = controller.getBuilder(statisticsUI.getStatisticsClass());
currentStatistics = builder.getStatistics();
if (currentStatistics != null) {
LongTaskListener listener = new LongTaskListener() {
public void taskFinished(LongTask task) {
showReport();
}
};
JPanel settingsPanel = statisticsUI.getSettingsPanel();
if (currentStatistics instanceof DynamicStatistics) {
DynamicSettingsPanel dynamicPanel = new DynamicSettingsPanel();
statisticsUI.setup(currentStatistics);
dynamicPanel.setup((DynamicStatistics) currentStatistics);
JPanel dynamicSettingsPanel = DynamicSettingsPanel.createCounpoundPanel(dynamicPanel, settingsPanel);
final DialogDescriptor dd = new DialogDescriptor(dynamicSettingsPanel, NbBundle.getMessage(StatisticsTopComponent.class, "StatisticsFrontEnd.settingsPanel.title", builder.getName()));
if (dynamicSettingsPanel instanceof ValidationPanel) {
ValidationPanel vp = (ValidationPanel) dynamicSettingsPanel;
vp.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
dd.setValid(!((ValidationPanel) e.getSource()).isProblem());
}
});
}
if (DialogDisplayer.getDefault().notify(dd).equals(NotifyDescriptor.OK_OPTION)) {
dynamicPanel.unsetup((DynamicStatistics) currentStatistics);
statisticsUI.unsetup();
controllerUI.execute(currentStatistics, listener);
}
} else {
if (settingsPanel != null) {
statisticsUI.setup(currentStatistics);
final DialogDescriptor dd = new DialogDescriptor(settingsPanel, NbBundle.getMessage(StatisticsTopComponent.class, "StatisticsFrontEnd.settingsPanel.title", builder.getName()));
if (settingsPanel instanceof ValidationPanel) {
ValidationPanel vp = (ValidationPanel) settingsPanel;
vp.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {