Skip to content

Commit a7cbff8

Browse files
author
jantje
committed
Adding the gui part for #679
1 parent b94c855 commit a7cbff8

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

io.sloeber.ui/src/io/sloeber/ui/Messages.java

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class Messages extends NLS {
2626
public static String ui_open_serial_with_monitor;
2727
public static String ui_build_before_upload;
2828
public static String ui_auto_import_libraries;
29+
public static String ui_auto_install_libraries;
2930

3031
public static String ui_import_arduino_libraries_in_project;
3132
public static String ui_import_arduino_libraries_in_project_help;

io.sloeber.ui/src/io/sloeber/ui/listeners/MyLibraryInstallHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44

55
import io.sloeber.core.api.IInstallLibraryHandler;
66
import io.sloeber.core.api.LibraryDescriptor;
7+
import io.sloeber.ui.preferences.PreferencePage;
78

89
public class MyLibraryInstallHandler implements IInstallLibraryHandler {
910

1011
@Override
1112
public boolean autoInstall() {
1213
// TODO Auto-generated method stub
13-
return true;
14+
return PreferencePage.getAutomaticallyInstallLibrariesOption();
1415
}
1516

1617
@Override

io.sloeber.ui/src/io/sloeber/ui/messages.properties

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ui_ask_every_upload=Ask every upload
2121
ui_build_before_upload=Build before upload?
2222
ui_open_serial_with_monitor=Open serial connections when opening the serial monitor?
2323
ui_auto_import_libraries=Automatically import libraries based on includes?
24+
ui_auto_install_libraries=Automatically install missing libraries based on includes?
2425
ui_import_arduino_libraries_in_project=Import Arduino libraries
2526
ui_import_arduino_libraries_in_project_help=Use this page to select the libraries to import to project:
2627
ui_import_no_arduino_project_help=As no project is selected it is not possible to import a source folder

io.sloeber.ui/src/io/sloeber/ui/preferences/PreferencePage.java

+13
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class PreferencePage extends FieldEditorPreferencePage implements IWorkbe
4040
private static final String TRUE = "TRUE"; //$NON-NLS-1$
4141
private static final String FALSE = "FALSE"; //$NON-NLS-1$
4242
private static final String KEY_AUTO_IMPORT_LIBRARIES = "Gui entry for import libraries"; //$NON-NLS-1$
43+
private static final String KEY_AUTO_INSTALL_LIBRARIES = "Gui entry for install libraries"; //$NON-NLS-1$
4344
private static final String KEY_PRAGMA_ONCE_HEADERS = "Gui entry for add pragma once"; //$NON-NLS-1$
4445
private static final String KEY_PRIVATE_HARDWARE_PATHS = "Gui entry for private hardware paths"; //$NON-NLS-1$
4546
private static final String KEY_PRIVATE_LIBRARY_PATHS = "Gui entry for private library paths"; //$NON-NLS-1$
@@ -50,6 +51,7 @@ public class PreferencePage extends FieldEditorPreferencePage implements IWorkbe
5051
private ComboFieldEditor buildBeforeUploadOptionEditor;
5152
private BooleanFieldEditor openSerialMonitorOpensSerialsOptionEditor;
5253
private BooleanFieldEditor automaticallyImportLibrariesOptionEditor;
54+
private BooleanFieldEditor automaticallyInstallLibrariesOptionEditor;
5355
private BooleanFieldEditor useArduinoToolchainSelectionEditor;
5456
private BooleanFieldEditor pragmaOnceHeaderOptionEditor;
5557
private BooleanFieldEditor cleanSerialMonitorAfterUploadEditor;
@@ -63,6 +65,7 @@ public PreferencePage() {
6365
preferences.setDefault(MyPreferences.KEY_OPEN_SERIAL_WITH_MONITOR,
6466
MyPreferences.DEFAULT_OPEN_SERIAL_WITH_MONITOR);
6567
preferences.setDefault(KEY_AUTO_IMPORT_LIBRARIES, true);
68+
preferences.setDefault(KEY_AUTO_INSTALL_LIBRARIES, true);
6669
preferences.setDefault(KEY_PRAGMA_ONCE_HEADERS, true);
6770
preferences.setDefault(KEY_PRIVATE_HARDWARE_PATHS, Defaults.getPrivateHardwarePath());
6871
preferences.setDefault(KEY_PRIVATE_LIBRARY_PATHS, Defaults.getPrivateLibraryPath());
@@ -167,6 +170,9 @@ protected void createFieldEditors() {
167170
this.automaticallyImportLibrariesOptionEditor = new BooleanFieldEditor(KEY_AUTO_IMPORT_LIBRARIES,
168171
Messages.ui_auto_import_libraries, BooleanFieldEditor.DEFAULT, parent);
169172
addField(this.automaticallyImportLibrariesOptionEditor);
173+
this.automaticallyInstallLibrariesOptionEditor = new BooleanFieldEditor(KEY_AUTO_INSTALL_LIBRARIES,
174+
Messages.ui_auto_install_libraries, BooleanFieldEditor.DEFAULT, parent);
175+
addField(this.automaticallyInstallLibrariesOptionEditor);
170176

171177
this.pragmaOnceHeaderOptionEditor = new BooleanFieldEditor(KEY_PRAGMA_ONCE_HEADERS, Messages.ui_pragma_once_headers,
172178
BooleanFieldEditor.DEFAULT, parent);
@@ -213,4 +219,11 @@ private static void createLine(Composite parent, int ncol) {
213219
line.setLayoutData(gridData);
214220
}
215221

222+
public static boolean getAutomaticallyInstallLibrariesOption() {
223+
ScopedPreferenceStore preferences = new ScopedPreferenceStore(InstanceScope.INSTANCE,
224+
MyPreferences.NODE_ARDUINO);
225+
preferences.setDefault(KEY_AUTO_INSTALL_LIBRARIES, true);
226+
return preferences.getBoolean(KEY_AUTO_INSTALL_LIBRARIES);
227+
}
228+
216229
}

0 commit comments

Comments
 (0)