@@ -226,8 +226,8 @@ public boolean test(SketchController sketch) {
226226 Runnable presentHandler ;
227227 private Runnable runAndSaveHandler ;
228228 private Runnable presentAndSaveHandler ;
229- Runnable exportHandler ;
230- private Runnable exportAppHandler ;
229+ private UploadHandler uploadHandler ;
230+ private UploadHandler uploadUsingProgrammerHandler ;
231231 private Runnable timeoutUploadHandler ;
232232
233233 private Map <String , Tool > internalToolCache = new HashMap <String , Tool >();
@@ -1376,8 +1376,10 @@ private void resetHandlers() {
13761376 presentHandler = new BuildHandler (true );
13771377 runAndSaveHandler = new BuildHandler (false , true );
13781378 presentAndSaveHandler = new BuildHandler (true , true );
1379- exportHandler = new DefaultExportHandler ();
1380- exportAppHandler = new DefaultExportAppHandler ();
1379+ uploadHandler = new UploadHandler ();
1380+ uploadHandler .setUsingProgrammer (false );
1381+ uploadUsingProgrammerHandler = new UploadHandler ();
1382+ uploadUsingProgrammerHandler .setUsingProgrammer (true );
13811383 timeoutUploadHandler = new TimeoutUploadHandler ();
13821384 }
13831385
@@ -2007,13 +2009,17 @@ synchronized public void handleExport(final boolean usingProgrammer) {
20072009 avoidMultipleOperations = true ;
20082010
20092011 new Thread (timeoutUploadHandler ).start ();
2010- new Thread (usingProgrammer ? exportAppHandler : exportHandler ).start ();
2012+ new Thread (usingProgrammer ? uploadUsingProgrammerHandler : uploadHandler ).start ();
20112013 }
20122014
2013- // DAM: in Arduino, this is upload
2014- class DefaultExportHandler implements Runnable {
2015- public void run () {
2015+ class UploadHandler implements Runnable {
2016+ boolean usingProgrammer = false ;
2017+
2018+ public void setUsingProgrammer (boolean usingProgrammer ) {
2019+ this .usingProgrammer = usingProgrammer ;
2020+ }
20162021
2022+ public void run () {
20172023 try {
20182024 removeAllLineHighlights ();
20192025 if (serialMonitor != null ) {
@@ -2025,7 +2031,7 @@ public void run() {
20252031
20262032 uploading = true ;
20272033
2028- boolean success = sketchController .exportApplet (false );
2034+ boolean success = sketchController .exportApplet (usingProgrammer );
20292035 if (success ) {
20302036 statusNotice (tr ("Done uploading." ));
20312037 }
@@ -2108,55 +2114,6 @@ private void resumeOrCloseSerialPlotter() {
21082114 }
21092115 }
21102116
2111- // DAM: in Arduino, this is upload (with verbose output)
2112- class DefaultExportAppHandler implements Runnable {
2113- public void run () {
2114-
2115- try {
2116- if (serialMonitor != null ) {
2117- serialMonitor .suspend ();
2118- }
2119- if (serialPlotter != null ) {
2120- serialPlotter .suspend ();
2121- }
2122-
2123- uploading = true ;
2124-
2125- boolean success = sketchController .exportApplet (true );
2126- if (success ) {
2127- statusNotice (tr ("Done uploading." ));
2128- }
2129- } catch (SerialNotFoundException e ) {
2130- if (portMenu .getItemCount () == 0 ) statusError (e );
2131- else if (serialPrompt ()) run ();
2132- else statusNotice (tr ("Upload canceled." ));
2133- } catch (PreferencesMapException e ) {
2134- statusError (I18n .format (
2135- tr ("Error while uploading: missing '{0}' configuration parameter" ),
2136- e .getMessage ()));
2137- } catch (RunnerException e ) {
2138- //statusError("Error during upload.");
2139- //e.printStackTrace();
2140- status .unprogress ();
2141- statusError (e );
2142- } catch (Exception e ) {
2143- e .printStackTrace ();
2144- } finally {
2145- avoidMultipleOperations = false ;
2146- populatePortMenu ();
2147- }
2148- status .unprogress ();
2149- uploading = false ;
2150- //toolbar.clear();
2151- toolbar .deactivateExport ();
2152-
2153- resumeOrCloseSerialMonitor ();
2154- resumeOrCloseSerialPlotter ();
2155-
2156- base .onBoardOrPortChange ();
2157- }
2158- }
2159-
21602117 class TimeoutUploadHandler implements Runnable {
21612118
21622119 public void run () {
0 commit comments