diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/ToolsMissingWizardPage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/ToolsMissingWizardPage.java index 1a8c6dcb5..bad62c5f1 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/ToolsMissingWizardPage.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/ToolsMissingWizardPage.java @@ -4,17 +4,22 @@ *******************************************************************************/ package com.espressif.idf.ui.wizard; +import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Link; + +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.ui.tools.ManageEspIdfVersionsHandler; public class ToolsMissingWizardPage extends WizardPage { - protected ToolsMissingWizardPage(String errorMsg) { super(Messages.ToolsMissingWizardPage_PagaName); @@ -28,15 +33,35 @@ public void createControl(Composite parent) Composite container = new Composite(parent, SWT.NONE); container.setLayout(new GridLayout(1, false)); - - Label label = new Label(container, SWT.WRAP); - label.setText(Messages.ToolsMissingWizardPage_MainText); + Link link = new Link(container, SWT.WRAP); + link.setText(Messages.ToolsMissingWizardPage_MainText); + link.addSelectionListener(new SelectionAdapter() + { + @Override + public void widgetSelected(SelectionEvent e) + { + openEspIdfManagerAndCloseWizard(); + } + }); GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false); - label.setLayoutData(gd); + link.setLayoutData(gd); setControl(container); setPageComplete(false); } + + private void openEspIdfManagerAndCloseWizard() + { + try + { + new ManageEspIdfVersionsHandler().execute(null); + } + catch (ExecutionException ex) + { + Logger.log(ex); + } + getShell().close(); + } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/messages.properties b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/messages.properties index 617222969..7c146d81a 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/messages.properties +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/wizard/messages.properties @@ -28,6 +28,6 @@ NewComponentWizardPage_CantCreateCompErr=Can not create a component without a pr NewComponentWizardPage_ProjectDoesntExistErr=Project doesn't exist NewComponentWizardPage_ProjectNameLbl=Project name: IdfReconfigureJobName=Running idf.py reconfigure command... -ToolsMissingWizardPage_MainText=Install or configure the ESP-IDF tools before continuing. Open the ESP-IDF Manager to resolve the issue, then restart this wizard. +ToolsMissingWizardPage_MainText=Install or configure the ESP-IDF tools before continuing. Open the ESP-IDF Manager to resolve the issue, then restart this wizard. ToolsMissingWizardPage_PagaName=ToolsMissingPage ToolsMissingWizardPage_Title=ESP-IDF Tools Required