# Object Oriented LDTP bundled with LDTP package With this implementation, the code can be like Approach 1 from ooldtp import * gedit = context ('*-gedit') btnFind = gedit.getchild ('btnFind') btnFind.click () Approach 2 from ooldtp import * gedit = context ('*-gedit') gedit.click ('btnFind') # Welcome to Object-Oriented LDTP (EXPERIMENTAL) by Palm Source ## What it is Object-Oriented LDTP? Till now LDTP supports this kind of syntax: click('*gedit', btncopy) selectmenuitem('*gedit', 'mnuFile;mnuOpen') it does not support appmap anymore. however I prefer using appmap to maximize its maintainability of our automation script. and I want ldtp have ability to using the following syntax to write script: frmgedt.btncopy.click() frmgedit.mnuOpen.click() and Window('frm*gedit').PushButton('btncopy').click() Window('frm*gedit').MenuItem('mnuFile;mnuOpen').pick() so I write a wrapper for LDTP, it wraps/improves most of LDTP API. ## How to use? ### use convert.py to generate the window declaration * cmd line: * convert windowname output e.g. * convert frm*gedit geditclass.py it will generate geditclass.py ### open the file, you can find the code looks like below: from window import * class Gedit(Window): name = '*gedit' btncopy = Window.PushButton('btncopy', name) btncut = Window.PushButton('btncut', name) btnfind = Window.PushButton('btnfind', name) btnfindandreplace = Window.PushButton('btnfindandreplace', name) btngtkundo = Window.PushButton('btngtk-undo', name) mnuAbout = Window.MenuItem('mnuHelp;mnuAbout', name) mnuAda = Window.MenuItem('mnuView;mnuHighlightMode;mnuSources;mnuAda', name) mnuAllLowerCase = Window.MenuItem('mnuEdit;mnuChangeCase;mnuAllLowerCase', name) mnuAllUpperCase = Window.MenuItem('mnuEdit;mnuChangeCase;mnuAllUpperCase', name) # ... frmGedit = Gedit() ### now you can do something like this To select a menuitem: frmGedit.mnuAbout.select() or write this Window('*gedit').Menu('mnuHelp;mnuAbout').select() To click a button: frmGedit.btnfind.click() or write this Window('*gedit').PushButton('btnfind').click() You can find more wrapped APIs in window.py ### also you can add your own methods to this class. ### That's all, enjoy it ;) ##### Found any bug please email me: tae.ccf(at)gmail.com