This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sample_code:introspector [2014/12/06 21:02] stevegarman |
sample_code:introspector [2015/03/28 21:06] madlyr [The code] Added some objects (BluetoothList, BluetoothSerial, NXT, NXT Remote, Odroid (not yet available), Tabs), sorted case |
||
---|---|---|---|
Line 12: | Line 12: | ||
===== The code ===== | ===== The code ===== | ||
<code javascript introspector.js> | <code javascript introspector.js> | ||
- | // Introspection lite tool for home use by Steve Garman | + | // Introspection lite tool for home use by Steve Garman |
- | // Main code stolen from AppInspector by Andreas Rozek | + | // Main code stolen from AppInspector by Andreas Rozek |
- | //Global variables | + | |
- | var myobj | + | //Global variables |
- | var ListView, | + | var myobj = app; |
- | var main_header_txt, | + | var ListView, menuView, FunctionView |
- | var lastMenu | + | var main_header_txt, |
- | var pasteable | + | var lastMenu |
- | var vers | + | var pasteable |
- | var docfold | + | var vers = Math.floor((app.GetVersion()+.0005) * 100); |
- | var docfile | + | var docfold |
- | + | var docfile | |
- | //Called when application is started. | + | var evalsfile = docfold + "/ |
- | function | + | |
- | | + | //Called when application is started. |
- | app.EnableBackKey( false ); | + | function |
- | + | app.EnableBackKey( | |
- | | + | |
- | add_top_bar( lay ); | + | |
- | /**** prepare page area ****/ | + | |
- | + | add_top_bar( | |
- | | + | |
+ | /**** prepare page area ****/ | ||
+ | | ||
lay.AddChild(PageArea); | lay.AddChild(PageArea); | ||
- | + | ||
- | + | | |
- | | + | |
- | | + | |
- | menuView.SetOnTouch(menuView_OnTouch); | + | |
- | PageArea.AddChild(menuView); | + | |
+ | | ||
+ | menuView.SetOnTouch(menuView_OnTouch); | ||
+ | PageArea.AddChild(menuView); | ||
menuView.SetVisibility(' | menuView.SetVisibility(' | ||
- | + | ||
- | + | | |
- | | + | |
prepareFunctionList(); | prepareFunctionList(); | ||
- | + | ||
- | + | ListView.SetOnTouch(showAppFunction); | |
- | ListView.SetOnTouch(showAppFunction); | + | |
PageArea.AddChild(ListView); | PageArea.AddChild(ListView); | ||
- | + | ||
- | | + | /**** prepare detail view ****/ |
- | + | ||
- | + | | |
- | | + | // |
- | PageArea.AddChild(FunctionView); | + | PageArea.AddChild(FunctionView); |
- | FunctionView.SetVisibility(' | + | FunctionView.SetVisibility(' |
- | + | ||
- | app.AddLayout( lay ); | + | |
+ | app.AddLayout( | ||
showMenuView(); | showMenuView(); | ||
- | | + | }// |
- | + | ||
- | function add_top_bar (lyout, | + | function add_top_bar |
- | | + | //basic top bar layout |
- | + | var lay_bar | |
- | var lay_bar | + | lay_bar.SetBackGradient( "# |
- | lay_bar.SetBackGradient( "# | + | |
- | + | //add app name if required | |
- | | + | |
- | | + | main_header_txt.SetTextSize( |
- | main_header_txt | + | main_header_txt.SetPadding( 0.01, 0, 0.01, 0 ); |
- | main_header_txt.SetTextSize( 24 ); | + | lay_bar.AddChild( |
- | main_header_txt.SetPadding( 0.01, | + | |
- | lay_bar.AddChild( main_header_txt ); | + | var filterlabel |
- | + | filterlabel.SetTextSize(18); | |
- | | + | filterlabel.SetTextColor("# |
- | var filterlabel | + | lay_bar.AddChild( |
- | filterlabel.SetTextSize(18); | + | |
- | filterlabel.SetTextColor("# | + | edtFilter.SetBackColor("# |
- | lay_bar.AddChild( filterlabel ); | + | edtFilter.SetTextSize(18); |
- | | + | edtFilter.SetPadding( 0.01, 0, 0, 0.001 ); |
- | edtFilter.SetBackColor("# | + | edtFilter.SetOnChange(edtFilterOnChange); |
- | edtFilter.SetTextSize(18); | + | lay_bar.AddChild(edtFilter); |
- | edtFilter.SetPadding( 0.01, | + | |
- | edtFilter.SetOnChange(edtFilterOnChange); | + | lyout.AddChild( |
- | lay_bar.AddChild(edtFilter); | + | }// |
- | + | ||
- | | + | function |
- | | + | |
- | } // | + | switch(name) { |
- | + | | |
- | function | + | |
- | | + | break; |
- | lastMenu | + | |
- | switch (name) | + | |
- | | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | case " |
- | | + | |
- | break; | + | break; |
- | | + | case "Image": |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | myobj = app.CreateLocator( " |
- | break; | + | |
- | | + | case " |
- | | + | myobj = app.CreateNotification() |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | case " |
- | | + | myobj = app.CreateNxtRemote(); |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | myobj = app.CreateSensor( " |
- | break; | + | |
- | | + | |
- | | + | myobj = app.CreateSMS(); |
- | break; | + | |
- | | + | case "Spinner": |
- | | + | |
- | break; | + | |
- | | + | |
- | | + | |
- | break; | + | break; |
- | | + | |
- | | + | myobj = main_header_txt; |
- | break; | + | break; |
- | case ("Manually entered code"): | + | case " |
- | | + | myobj = FunctionView; |
- | return; | + | break; |
- | default: | + | case " |
- | | + | |
- | | + | break; |
- | } | + | |
- | prepareFunctionList(); | + | |
- | showOverview(); | + | break; |
- | main_header_txt.SetText( lastMenu ); | + | case " |
- | } // | + | myobj = app.CreateWebServer( 8080, " |
- | + | break; | |
- | + | case " | |
- | function | + | |
- | | + | break; |
- | /**** prepare list view ****/ | + | case("Manually entered code"): |
- | + | showEval(); | |
- | + | return; | |
- | | + | default: |
- | | + | myobj=app; |
- | | + | |
- | | + | } |
- | | + | prepareFunctionList(); |
- | | + | showOverview(); |
- | | + | main_header_txt.SetText( |
- | | + | }// |
- | objFunctionList.push(Key); | + | |
- | }; | + | |
- | } | + | /**** prepare list view ****/ |
- | }; | + | |
- | objFunctionList.sort(); | + | |
- | ListView.SetList( objFunctionList.join(',' | + | |
- | | + | |
- | | + | for (var Key in myobj) { |
- | | + | |
- | } // | + | if ((filter |
- | | + | |
- | function | + | objFunctionList.push(Key); |
- | | + | }; |
- | ListView.SetVisibility(' | + | } |
- | FunctionView.SetVisibility(' | + | }; |
- | menuView.SetVisibility(' | + | objFunctionList.sort(); |
- | main_header_txt.SetText( " | + | ListView.SetList( objFunctionList.join(',' |
- | } // | + | |
- | + | | |
- | + | | |
- | function showAppFunction (Name) | + | |
- | | + | docfile |
- | FunctionView.SetText(String(myobj[Name])); | + | }// |
- | main_header_txt.SetText( lastMenu | + | |
- | ListView.SetVisibility(' | + | ListView.SetVisibility(' |
- | menuView.SetVisibility(' | + | FunctionView.SetVisibility(' |
- | FunctionView.SetVisibility(' | + | menuView.SetVisibility(' |
- | } // | + | main_header_txt.SetText( "Choose Control" ); |
- | + | }// | |
- | + | ||
- | function showOverview () | + | |
- | | + | FunctionView.SetText(String(myobj[Name])); |
- | ListView.SetVisibility(' | + | main_header_txt.SetText( |
- | FunctionView.SetVisibility(' | + | ListView.SetVisibility(' |
- | menuView.SetVisibility(' | + | menuView.SetVisibility(' |
- | main_header_txt.SetText( lastMenu ); | + | FunctionView.SetVisibility(' |
- | } // | + | }// |
- | | + | |
- | function | + | |
- | | + | ListView.SetVisibility(' |
- | if ( ListView.GetVisibility() == " | + | FunctionView.SetVisibility(' |
- | | + | menuView.SetVisibility(' |
- | prepareFunctionList(); | + | main_header_txt.SetText( |
- | } | + | }// |
- | } // | + | |
- | + | if( ListView.GetVisibility() == " | |
- | + | prepareFunctionList(); | |
- | function | + | } |
- | | + | }// |
- | | + | |
- | | + | |
- | | + | |
- | pasteOnExit.SetOnTouch( pasteOnExit_OnTouch ); | + | |
- | } | + | pasteOnExit.SetOnTouch( |
- | | + | } |
- | | + | |
- | } //OnBack | + | |
- | + | }//OnBack | |
- | + | ||
- | function | + | |
- | | + | if( result==" |
- | if ( result == " | + | app.SetClipboardText( |
- | | + | if( ! app.FolderExists( |
- | app.SetClipboardText( pasteable ); | + | |
- | if ( ! app.FolderExists( docfold ) ) | + | app.WriteFile( docfile, |
- | app.WriteFile( docfile, | + | } |
- | } | + | app.Exit(); |
- | app.Exit(); | + | }// |
- | } // | + | function |
- | function | + | |
- | | + | |
- | | + | layDlg.SetPadding( 0.02, 0, 0.02, 0.02 ); |
- | | + | |
- | layDlg.SetPadding( 0.02, | + | edtDlg.SetCursorPos(edtDlg.GetText().length); |
- | | + | layDlg.AddChild(edtDlg); |
- | edtDlg.SetCursorPos(edtDlg.GetText().length); | + | dlg.AddLayout( |
- | layDlg.AddChild(edtDlg); | + | |
- | dlg.AddLayout( layDlg ); | + | horiz.SetPadding( 0.02, 0.02, 0.02, 0 ); |
- | | + | |
- | horiz.SetPadding( 0.02, | + | btn.SetOnTouch(dlg_ok); |
- | | + | horiz.AddChild(btn); |
- | btn.SetOnTouch(dlg_ok); | + | |
- | horiz.AddChild(btn); | + | btn.SetOnTouch(dlg_canc); |
- | | + | horiz.AddChild(btn); |
- | btn.SetOnTouch(dlg_canc); | + | layDlg.AddChild(horiz); |
- | horiz.AddChild(btn); | + | |
- | layDlg.AddChild(horiz); | + | |
dlg.Show(); | dlg.Show(); | ||
- | | + | }// |
- | function | + | function |
- | { | + | app.HideKeyboard(); |
- | app.HideKeyboard(); | + | |
- | dlg.Dismiss(); | + | |
- | myobj = eval(edtDlg.GetText()); | + | |
- | prepareFunctionList(); | + | |
- | showOverview(); | + | |
- | if ((myobj != null) && (myobj.hasOwnProperty(" | + | |
- | else lastMenu = " | + | |
- | main_header_txt.SetText( lastMenu ); | + | |
- | } //dlg_ok | + | |
- | function dlg_canc() | + | |
- | | + | |
- | app.HideKeyboard(); | + | |
dlg.Dismiss(); | dlg.Dismiss(); | ||
- | | + | myobj = eval(edtDlg.GetText()); |
- | + | if ((myobj != null) && (myobj.hasOwnProperty(" | |
+ | lastMenu = myobj.GetType(); | ||
+ | app.WriteFile(evalsfile, | ||
+ | } | ||
+ | else{ | ||
+ | lastMenu = " | ||
+ | } | ||
+ | main_header_txt.SetText( lastMenu ); | ||
+ | prepareFunctionList(); | ||
+ | showOverview(); | ||
+ | }//dlg_ok | ||
+ | function dlg_canc(){ | ||
+ | app.HideKeyboard(); | ||
+ | dlg.Dismiss(); | ||
+ | }// | ||
</ | </ | ||
I have placed an spk of this app at [[http:// | I have placed an spk of this app at [[http:// | ||
- | And for the sake of completeness, | + | And for the sake of completeness, |