in PluginsAndFeatures/azure-toolkit-for-eclipse/com.microsoft.azuretools.hdinsight/src/com/microsoft/azuretools/hdinsight/SparkSubmissionToolWindowView.java [60:176]
public void createPartControl(Composite parent) {
GridLayout layout = new GridLayout();
layout.numColumns = 2;
parent.setLayout(layout);
Composite composite = new Composite(parent, SWT.NONE);
layout = new GridLayout();
composite.setLayout(layout);
GridData gridData = new GridData();
gridData.verticalAlignment = SWT.TOP;
composite.setLayoutData(gridData);
stopButton = new Button(composite, SWT.PUSH);
stopButton.setText("Stop");
stopButton.setToolTipText("Stop execution of current application");
stopButton.setImage(Activator.getImageDescriptor(CommonConst.StopIconPath).createImage());
stopButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent evt) {
DefaultLoader.getIdeHelper().executeOnPooledThread(new Runnable() {
@Override
public void run() {
if (!StringHelper.isNullOrWhiteSpace(connectionUrl)) {
AppInsightsClient.create(Messages.SparkSubmissionStopButtionClickEvent, null);
EventUtil.logEvent(EventType.info, HDINSIGHT, Messages.SparkSubmissionStopButtionClickEvent, null);
try {
HttpResponse deleteResponse = SparkBatchSubmission.getInstance().killBatchJob(connectionUrl + "/livy/batches", batchId);
if (deleteResponse.getCode() == 201 || deleteResponse.getCode() == 200) {
jobStatusManager.setJobKilled();
setInfo("========================Stop application successfully=======================");
} else {
setError(String.format("Error : Failed to stop spark application. error code : %d, reason : %s.", deleteResponse.getCode(), deleteResponse.getContent()));
}
} catch (IOException exception) {
setError("Error : Failed to stop spark application. exception : " + exception.toString());
}
}
}
});
}
});
stopButton.getAccessible().addAccessibleListener(new AccessibleAdapter() {
public void getName(AccessibleEvent e) {
super.getName(e);
e.result = stopButton.getToolTipText();
}
});
openSparkUIButton = new Button(composite, SWT.PUSH);
openSparkUIButton.setText("Open Spark UI");
openSparkUIButton.setToolTipText("Open Spark UI");
openSparkUIButton.setImage(Activator.getImageDescriptor(CommonConst.OpenSparkUIIconPath).createImage());
openSparkUIButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
try {
if (jobStatusManager.isApplicationGenerated()) {
String sparkApplicationUrl = String.format(yarnRunningUIUrlFormat, connectionUrl, jobStatusManager.getApplicationId());
PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(sparkApplicationUrl));
}
} catch (Exception browseException) {
DefaultLoader.getUIHelper().showError("Failed to browse spark application yarn url", "Spark Submission");
}
}
});
openSparkUIButton.getAccessible().addAccessibleListener(new AccessibleAdapter() {
public void getName(AccessibleEvent e) {
super.getName(e);
e.result = openSparkUIButton.getToolTipText();
}
});
gridData = new GridData();
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
gridData.grabExcessVerticalSpace = true;
gridData.grabExcessHorizontalSpace = true;
outputPanel = new Browser(parent, SWT.BORDER);
outputPanel.setLayoutData(gridData);
PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
@Override
public void propertyChange(final PropertyChangeEvent evt) {
// if (ApplicationManager.getApplication().isDispatchThread()) {
changeSupportHandler(evt);
//// } else {
// try {
// SwingUtilities.invokeAndWait(new Runnable() {
// @Override
// public void run() {
// changeSupportHandler(evt);
// }
// }
// );
// } catch (InterruptedException e) {
// e.printStackTrace();
// } catch (InvocationTargetException e) {
// e.printStackTrace();
// }
// }
}
private void changeSupportHandler(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals("toolWindowText")) {
outputPanel.setText(evt.getNewValue().toString());
} else if (evt.getPropertyName().equals("isStopButtonEnable")) {
stopButton.setEnabled(Boolean.parseBoolean(evt.getNewValue().toString()));
} else if (evt.getPropertyName().equals("isBrowserButtonEnable")) {
openSparkUIButton.setEnabled(Boolean.parseBoolean(evt.getNewValue().toString()));
}
}
};
// outputPanel.addPropertyChangeListener(propertyChangeListener);
changeSupport = new PropertyChangeSupport(outputPanel);
changeSupport.addPropertyChangeListener(propertyChangeListener);
}