This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
sample_code:introspector [2014/12/06 21:02] stevegarman |
sample_code:introspector [2015/03/28 20:01] octazid [The code] Change Database to Open |
||
---|---|---|---|
Line 14: | Line 14: | ||
// | // | ||
// | // | ||
+ | |||
// | // | ||
- | var myobj | + | var myobj = app; |
- | var ListView, menuView, | + | var ListView, |
- | var main_header_txt, edtFilter, | + | var main_header_txt, |
- | var lastMenu | + | var lastMenu = " |
- | var pasteable | + | var pasteable = " |
- | var vers | + | var vers = Math.floor((app.GetVersion() |
- | var docfold | + | +.0005) * 100); |
- | var docfile | + | var docfold = "/ |
+ | var docfile = docfold + "/ | ||
+ | var evalsfile = docfold + "/ | ||
// | // | ||
- | function OnStart() | + | function OnStart(){ |
- | { | + | app.EnableBackKey( false ); |
- | | + | |
- | | + | // |
- | var lay = app.CreateLayout( " | + | var lay = app.CreateLayout( " |
- | add_top_bar( lay ); | + | add_top_bar( lay ); |
- | / | + | |
- | | + | / |
- | var PageArea | + | var PageArea = app.CreateLayout(' |
- | lay.AddChild(PageArea); | + | lay.AddChild(PageArea); |
+ | |||
+ | var control_list = " | ||
+ | +", | ||
+ | +", | ||
+ | +", | ||
+ | menuView = app.CreateList( control_list, | ||
+ | menuView.SetOnTouch(menuView_OnTouch); | ||
+ | PageArea.AddChild(menuView); | ||
+ | menuView.SetVisibility(' | ||
- | + | ListView = app.CreateList("" | |
- | var control_list = " | + | prepareFunctionList(); |
- | menuView | + | |
- | | + | |
- | PageArea.AddChild(menuView); | + | |
- | menuView.SetVisibility(' | + | |
- | + | ListView.SetOnTouch(showAppFunction); | |
- | ListView = app.CreateList("", | + | PageArea.AddChild(ListView); |
- | | + | |
- | + | / | |
- | ListView.SetOnTouch(showAppFunction); | + | |
- | PageArea.AddChild(ListView); | + | |
- | /**** prepare detail view ****/ | + | FunctionView = app.CreateTextEdit('', |
+ | //FunctionView = app.CreateTextEdit('', | ||
+ | PageArea.AddChild(FunctionView); | ||
+ | FunctionView.SetVisibility(' | ||
+ | |||
+ | // | ||
+ | app.AddLayout( lay ); | ||
+ | showMenuView(); | ||
+ | }//OnStart | ||
- | + | function add_top_bar (lyout, | |
- | FunctionView = app.CreateTextEdit('' | + | //basic top bar layout |
- | | + | var lay_bar = app.CreateLayout( " |
- | FunctionView.SetVisibility(' | + | lay_bar.SetBackGradient( "# |
- | | + | |
- | | + | |
- | | + | |
- | } //OnStart | + | |
- | function add_top_bar (lyout, | + | //add app name if required - stolen for object/ |
- | { //basic top bar layout | + | main_header_txt = app.CreateText( lastMenu , -1, -1 ); |
- | | + | main_header_txt.SetTextSize( 24 ); |
- | var lay_bar = app.CreateLayout( " | + | main_header_txt.SetPadding( 0.01, 0, |
- | | + | lay_bar.AddChild( main_header_txt ); |
- | // | + | var filterlabel = app.CreateText(" |
- | + | filterlabel.SetTextSize(18); | |
- | main_header_txt | + | filterlabel.SetTextColor("# |
- | | + | lay_bar.AddChild( filterlabel ); |
- | | + | edtFilter = app.CreateTextEdit("", |
- | lay_bar.AddChild( main_header_txt ); | + | edtFilter.SetBackColor("# |
+ | edtFilter.SetTextSize(18); | ||
+ | edtFilter.SetPadding( 0.01, | ||
+ | edtFilter.SetOnChange(edtFilterOnChange); | ||
+ | lay_bar.AddChild(edtFilter); | ||
- | + | lyout.AddChild( lay_bar ); | |
- | var filterlabel = app.CreateText(" | + | }// |
- | filterlabel.SetTextSize(18); | + | |
- | filterlabel.SetTextColor("# | + | |
- | lay_bar.AddChild( filterlabel ); | + | |
- | | + | |
- | edtFilter.SetBackColor("# | + | |
- | edtFilter.SetTextSize(18); | + | |
- | edtFilter.SetPadding( 0.01, | + | |
- | edtFilter.SetOnChange(edtFilterOnChange); | + | |
- | lay_bar.AddChild(edtFilter); | + | |
- | + | function menuView_OnTouch(name){ | |
- | lyout.AddChild( lay_bar ); | + | lastMenu = name; |
- | } //add_top_bar | + | switch(name) { |
+ | case " | ||
+ | myobj = app.CreateLayout( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateButton(" | ||
+ | break; | ||
+ | case " | ||
+ | myobj = main_header_txt; | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateImage( "/ | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateNotification() ; | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateCheckBox( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateCrypt(); | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.OpenDatabase(" | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateDialog("" | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateToggle( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateSeekBar( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj = ListView; | ||
+ | break; | ||
+ | case " | ||
+ | myobj = FunctionView; | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateWebView( 0.8, | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateWebServer( 8080, | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateCameraView( 0.8, | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateSensor( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateEmail( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateLocator( " | ||
+ | break; | ||
+ | case " | ||
+ | myobj= app.CreateSpinner(" | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateSMS(); | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateYesNoDialog("" | ||
+ | break; | ||
+ | case(" | ||
+ | showEval(); | ||
+ | return; | ||
+ | default: | ||
+ | myobj=app; | ||
+ | lastMenu = " | ||
+ | } | ||
+ | prepareFunctionList(); | ||
+ | showOverview(); | ||
+ | main_header_txt.SetText( lastMenu ); | ||
+ | }//menuView_OnTouch | ||
- | function menuView_OnTouch(name) | + | function prepareFunctionList(){ |
- | | + | /**** prepare list view ****/ |
- | lastMenu = name; | + | |
- | switch (name) | + | |
- | { | + | |
- | case " | + | |
- | myobj = app.CreateLayout( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateButton(" | + | |
- | break; | + | |
- | case " | + | |
- | myobj = main_header_txt; | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateImage( "/ | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateNotification() ; | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateCheckBox( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateCrypt(); | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateDialog("" | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateToggle( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateSeekBar( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = ListView; | + | |
- | break; | + | |
- | case " | + | |
- | myobj = FunctionView; | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateWebView( 0.8, | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateWebServer( 8080, | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateCameraView( 0.8, | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateSensor( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateEmail( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateLocator( " | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateSpinner(" | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateSMS(); | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateYesNoDialog("" | + | |
- | break; | + | |
- | case (" | + | |
- | showEval(); | + | |
- | return; | + | |
- | default: | + | |
- | myobj = app; | + | |
- | lastMenu = " | + | |
- | } | + | |
- | prepareFunctionList(); | + | |
- | showOverview(); | + | |
- | main_header_txt.SetText( lastMenu ); | + | |
- | | + | |
- | + | var objFunctionList; | |
- | function prepareFunctionList() | + | objFunctionList = []; |
- | { | + | var filter = edtFilter.GetText().trim().toLowerCase() |
- | /**** prepare list view ****/ | + | for (var Key in myobj) { |
+ | var keyword= Key.toLowerCase() | ||
+ | if ((filter == "" | ||
+ | if (myobj.hasOwnProperty(Key) && | ||
+ | objFunctionList.push(Key); | ||
+ | }; | ||
+ | } | ||
+ | }; | ||
+ | objFunctionList.sort(); | ||
+ | ListView.SetList( objFunctionList.join(',' | ||
+ | if(filter != "" | ||
+ | pasteable = filter + lastMenu + " | ||
+ | var copyDelim = " | ||
+ | pasteable += objFunctionList.join( copyDelim ) | ||
+ | docfile = docfold + "/" | ||
+ | }// | ||
+ | function showMenuView(){ | ||
+ | ListView.SetVisibility(' | ||
+ | FunctionView.SetVisibility(' | ||
+ | menuView.SetVisibility(' | ||
+ | main_header_txt.SetText( " | ||
+ | }//showMenuView | ||
- | + | function showAppFunction (Name) { | |
- | var objFunctionList; | + | FunctionView.SetText(String(myobj[Name])); |
- | objFunctionList = []; | + | main_header_txt.SetText( lastMenu + " |
- | var filter = edtFilter.GetText().trim().toLowerCase() for (var Key in myobj) | + | ListView.SetVisibility(' |
- | | + | menuView.SetVisibility(' |
- | var keyword = Key.toLowerCase() if ((filter == "" | + | FunctionView.SetVisibility(' |
- | { | + | }//showAppFunction |
- | if (myobj.hasOwnProperty(Key) && (typeof | + | |
- | { | + | |
- | objFunctionList.push(Key); | + | |
- | | + | |
- | } | + | |
- | }; | + | |
- | objFunctionList.sort(); | + | |
- | ListView.SetList( objFunctionList.join(',' | + | |
- | pasteable = filter + lastMenu + " | + | |
- | var copyDelim = " | + | |
- | pasteable += objFunctionList.join( copyDelim ) docfile = docfold + "/" | + | |
- | } // | + | |
- | + | ||
- | function showMenuView() | + | |
- | { | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | function showOverview () { | |
- | function showAppFunction (Name) | + | ListView.SetVisibility(' |
- | | + | FunctionView.SetVisibility(' |
- | | + | menuView.SetVisibility(' |
- | main_header_txt.SetText( lastMenu + " | + | main_header_txt.SetText( lastMenu ); |
- | | + | }// |
- | menuView.SetVisibility(' | + | function edtFilterOnChange(){ |
- | FunctionView.SetVisibility(' | + | if( ListView.GetVisibility() == " |
- | } //showAppFunction | + | prepareFunctionList(); |
+ | } | ||
+ | }//edtFilterOnChange | ||
- | + | function OnBack(){ | |
- | function showOverview () | + | if (menuView.GetVisibility() == " |
- | { | + | var pasteOnExit = app.CreateYesNoDialog( " |
- | ListView.SetVisibility(' | + | pasteOnExit.SetOnTouch( pasteOnExit_OnTouch ); |
- | FunctionView.SetVisibility(' | + | } |
- | | + | else if( ListView.GetVisibility() == " |
- | | + | else showOverview(); |
- | } // | + | }//OnBack |
- | | + | |
- | function edtFilterOnChange() | + | |
- | { | + | |
- | if ( ListView.GetVisibility() == " | + | |
- | | + | |
- | prepareFunctionList(); | + | |
- | } | + | |
- | | + | |
- | + | function pasteOnExit_OnTouch( result ){ | |
- | function OnBack() | + | if( result==" |
- | { | + | app.SetClipboardText( pasteable ); |
- | | + | if( ! app.FolderExists( docfold ) ) |
- | | + | app.MakeFolder ( docfold ); |
- | var pasteOnExit | + | app.WriteFile( docfile, |
- | | + | } |
- | } | + | app.Exit(); |
- | | + | }// |
- | | + | function showEval(){ |
- | } //OnBack | + | dlg = app.CreateDialog(" |
+ | var layDlg = app.CreateLayout( " | ||
+ | layDlg.SetPadding( 0.02, | ||
+ | edtDlg = app.CreateTextEdit(' | ||
+ | edtDlg.SetCursorPos(edtDlg.GetText().length); | ||
+ | layDlg.AddChild(edtDlg); | ||
+ | dlg.AddLayout( layDlg ); | ||
+ | var horiz = app.CreateLayout("linear", | ||
+ | horiz.SetPadding( 0.02, | ||
+ | var btn = app.CreateButton("Ok", 0.2); | ||
+ | btn.SetOnTouch(dlg_ok); | ||
+ | horiz.AddChild(btn); | ||
+ | btn = app.CreateButton(" | ||
+ | btn.SetOnTouch(dlg_canc); | ||
+ | horiz.AddChild(btn); | ||
+ | layDlg.AddChild(horiz); | ||
+ | dlg.Show(); | ||
+ | }// | ||
+ | function dlg_ok(){ | ||
+ | app.HideKeyboard(); | ||
+ | dlg.Dismiss(); | ||
+ | myobj = eval(edtDlg.GetText()); | ||
+ | if ((myobj != null) && | ||
+ | lastMenu = myobj.GetType(); | ||
+ | app.WriteFile(evalsfile, | ||
+ | } | ||
+ | else{ | ||
+ | lastMenu = " | ||
+ | } | ||
+ | main_header_txt.SetText( lastMenu ); | ||
+ | prepareFunctionList(); | ||
+ | showOverview(); | ||
+ | }//dlg_ok | ||
+ | function dlg_canc(){ | ||
+ | app.HideKeyboard(); | ||
+ | dlg.Dismiss(); | ||
+ | }//dlg_canc | ||
- | |||
- | function pasteOnExit_OnTouch( result ) | ||
- | { | ||
- | if ( result == " | ||
- | { | ||
- | app.SetClipboardText( pasteable ); | ||
- | if ( ! app.FolderExists( docfold ) ) app.MakeFolder ( docfold ); | ||
- | app.WriteFile( docfile, | ||
- | } | ||
- | app.Exit(); | ||
- | } // | ||
- | function showEval() | ||
- | { | ||
- | dlg = app.CreateDialog(" | ||
- | var layDlg = app.CreateLayout( " | ||
- | layDlg.SetPadding( 0.02, | ||
- | edtDlg = app.CreateTextEdit(' | ||
- | edtDlg.SetCursorPos(edtDlg.GetText().length); | ||
- | layDlg.AddChild(edtDlg); | ||
- | dlg.AddLayout( layDlg ); | ||
- | var horiz = app.CreateLayout(" | ||
- | horiz.SetPadding( 0.02, | ||
- | var btn = app.CreateButton(" | ||
- | btn.SetOnTouch(dlg_ok); | ||
- | horiz.AddChild(btn); | ||
- | btn = app.CreateButton(" | ||
- | btn.SetOnTouch(dlg_canc); | ||
- | horiz.AddChild(btn); | ||
- | layDlg.AddChild(horiz); | ||
- | dlg.Show(); | ||
- | } //showEval | ||
- | function dlg_ok() | ||
- | { | ||
- | 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_canc | ||
- | | ||
</ | </ | ||
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, |