A couple questions -- in regard to beginning Pharo - pharo

Using 2.0
Getting starting, confortable with Smalltalk, so tool questions I have not found readily in image or 'by Example' book (outdated).
Looking for entry field (not ready-to-use dialog box).
Like:
(TextMorph new) contents: '(enter name here)'; openInWorld.
"but this just opens text, would like to be editable"
Would like to construct [simple] canvas with say four fields e.g. entry, radio, dropdown, etc. examples available?
Anyone know where 'PreferencesBrowser' has been moved to (e.g. keyboard etc.).
Is there a 'Local senders of...' in regard to class browser selected method?

In order to construct a UI you could either use Polymorph or Spec.
For Polymorph examples try in a workspace:
UITheme exampleDialogs.
UITheme exampleBasicControls
For a Spec tutorial have a look at:
Bahman Movaqar, Spec - Part I: The Basics.
The Preferences Browser is replaced by the much nicer Settings Browser which can be found in WorldMenu > System > Settings.
And you can display a method’s senders in Nautilus (the new standard system browser) when you right click on a method name in the method list via the context menu.

You may want to read a Spec tutorial: http://www.bahmanm.com/blogs/spec-part-1-basics

Related

drupal 7 nodes listed in views are not attached to the menu, but need to be

Using Drupal 7, I am displaying news articles via a View. The view is linked into the menu, naturally, but as a consequence the news articles are not. This becomes an issue because when an article's detail page is displayed, the site loses the active trail and consequently the breadcrumb trail and the left-hand secondary navigation menu lose their place.
Is there some way of setting the menu to think it's in a certain place within the menu tree, eg. Your College -> Life at the College -> News & Events?
I've seen menu_tree_set_path, which looks promising, but haven't seen an example of how it's used (at least in terms an Enthusiastic Amateur like myself would get).
As ever, any and all assistance given is greatly appreciated,
~Matt
The Context module will allow you to set the active trail of a drupal menu dependant on paths etc.
https://drupal.org/project/context
When you're dealing with breadcrumbs, an easy way to achieve breadcrumbs on a per content type basis (and others) is the custom_breadcrumbs module.
On a separate note, if you want to display full menus, look at the menu_block module. We used this plus the menu_tree_set_path() function to display local menus on nodes that weren't in menus.
$config = menu_block_get_config(1);
$path = "node/{$nid}";
menu_tree_set_path($config['menu_name'], $path);
$data = menu_tree_build($config);
The number passed to menu_block_get_config(), is the delta of the menu_block configuration in blocks.
With $data you can use a drupal_render or pass it back to another theme rendering function.

Adding item to all view menus

In Eclipse, it is possible to extend to any pop-up menu using the following special location URI:
popup:org.eclipse.ui.popup.any
Is it possible to do the same for the view menus (the little triangle in each view)? (I am developing an Eclipse RCP application, not extending the IDE. The purpose for this item is to help debugging and testing of the application.).
The short answer: no, that is not possible, unless you add the items by hand for all views.
The slightly longer answer: yes, if you
manually go through the view registry
create a new AbstractContributionFactory with the location URI "menu:<view-id>" and whatever createContributionItems(...) you want for each. (Alternatively you can create AbstractMenuAdditionCacheEntry or even better MenuAdditionCacheEntry - though these are internal and requires a little extra work... The last allows you to have a centrally defined menus extension point that is used for all these additions.)
add these to the workbench using IMenuService.addContributionFactory(AbstractContributionFactory factory) (use IWorkbenchWindow.getService(IMenuService.class) to acquire the menu service).
I haven't tested the above recipe, but I have used something very similar in an application...

How to click a strange link looks like button in watir

I want to use the Watir to click a link that looks like a button attached the image.
I use the following method,but doesn't works:
#browser.div(:id,"NetworkAnalysisTabPanel").div(:index,1).div(:index,1).ul(:index,1).li(:index,1).link(:index,2).click
Note:
#browser.div(:id,"NetworkAnalysisTabPanel").div(:index,1).div(:index,1).ul(:index,1).li(:index,1).link(:index,2).flash
is working fine but click is not working in IE and FF
Link looks like this:
And HMTL like this:
Note: I am able to click on the element using selenium IDE with clickAt method
Try this (not tested):
browser.link(:class => "x-tab-strip-menu").click
If you can flash the link, but click does not do what you want, see this: How to find out which JavaScript events fired?
FYI what you have are links that are using standard background images controlled via CSS magic that keys on the class of the link to know what background to set. That's where the image comes from, and why you don't see it as part of the link in the HTML.
In that control, each tab is a list item element (li) in an unordered list (ul), and each list item has an ID, so that's the easiest way to tell it which tab you are trying to click inside.
Try identifying things starting with the LI that is the tab container, as within that container there is only one instance of each link of a given class. Of the 4 links, only one is without any kind of easy identifier, and if you need to click that one you'd need to use :index, but for the other 3 links using :class ought to work. This should result in code that is less brittle and subject to being broken if the order of tabs changes, or the page is refactored.
#browser.li(:id,"NetworkAnalysisTabPanel__ext-comp-1038").link(:class, "x-tab-strip-menu").click
If the number at the end of the ID is subject to change, you can try a regular expression to match the part you can predict and is unique from the others
#browser.li(:id,/NetworkAnalysisTabPanel__ext-comp-/).link(:class, "x-tab-strip-menu").click
If you can reliably identify the object and use .flash but .click does not seem to do anything, you may have to use .fire_event('onclick') instead or .click.
#browser.li(:id,/NetworkAnalysisTabPanel__ext-comp-/).link(:class, "x-tab-strip-menu").fire_event('onclick')
If that does not work, then you need to start experimenting with likely events that the control might be looking for (which will not necessarily show up in the HTML btw.. it may be in javascript or CSS etc)
UPDATE
This is where having an live example of the control that we can interact with is critical. doing some googling on the class names I was able to find one here and that let me play with it a little, and what I discovered is that it is looking for onmousedown. so, on that site, this works
browser.li(:id, 'TabPanel1__ctl07').link(:class, 'x-tab-strip-menu').fire_event('onmousedown')
Now since those ID's may not be the best identifier, a bit more digging (using .text on the li that holds the tab parts) found me some text, which in a menu like that ought to be unique.. SO, we can change this to make things a bit more robust and clearer as to what tab I'm clicking on (this will also be less subject to breaking if the tabs change around.
browser.li(:text, 'Menu 1').link(:class, 'x-tab-strip-menu').fire_event('onmousedown')
Lastly, since the click is causing client side code to execute, you may need a brief pause (a one or two second sleep) to wait for that portion of the page to re-render etc.

Pre-loading browser clipboard for testing pasting into fields with watir-webdriver

Our web application has some event code to "format" any text with pasted into a field so that any HTML styles do not break our data.
What would be a good way to pre-load the browser clipboard so that I can test pasting into the input field?
Is there any way to do it programmatic-ally or would I have the test script visit "a source page" and copy text before moving onto our application?
Any ideas or code snippets would be welcome.
Working with the clipboard will depend on your platform. E.g. on OS X, you can use pbcopy and Command-V:
open('|pbcopy', 'w') { |io| io << 'some text' }
browser.text_field(:name => 'q').send_keys([:command, 'v'])
I know there are equivalents on Linux (xclip?). Not sure about Windows.
I would consider using the .value= method to set the value. If it's been implemented the same as in watir, then it causes no events to be fired and sets the value directly, and then follow that up by sending an appropriate event (depending on what if any events are being monitored) such as onKeypress. I tried to figure out from the Watir-webdriver rdoc for textfield, if this distinction between .set and .value= has been maintained, but the way the doc describes them (at least there) makes them seem interchangable.. (Jarib can you clarify???)
Potentially you might need to first fire something like onFocus depending on the controls you are using. For example, as described in this SO case Setting a text field that has a JQuery mask on it for a jquery mask, they had to end up firing an unmask event to be able to even set the field.
This is a good case for utilizing the techniques described here How to find out which JavaScript events fired? and in the SO item linked in the comments for that question, to figure out just what events are fired when you manually paste something into a field. (note I would slueth it with both using the mouse, but also using something like tab to move between fields and set the focus, events common to those two methods are the ones most likely to be implemented by the controls.
I presume you have some kind of client side javascript that needs to check what was pasted into the field, and thus the reason for this test. If you are using standard HTML fields, with no javascript stuff, then I would consider this particular test case to be effectively the same as 'testing the browser' since supporting cut and paste in input fields is a standard browser function. In that case, you are sort of 'off the reservation' and I'd not bother with such a test case.

Prototype menu

Does anyone know of a good javascript menu using the prototype library.
I need to produce a list of links available for each row of a HTML table as a hover/click dropdown menu.
Constraints
The list of links is the same for every row, however, a link needs to post an id param unique to the row.
The table is in a scroll pane, so the menu needs to know if if should render itself on the other side of the associated HTML element (e.g. TD) if necessary for visiblity.
I've found some a nice plugin for the JQuery library, but don't currently use JQuery and would like to avoid adding it if possible. I am already using prototype 1.6.
The author of the blog post below has used prototype to create a drop-down JS menu. I don't think it fits the bill for everything you're looking for, but it should give you a starting point.
http://www.blog.highub.com/javascript/javascript-library/prototype-drop-down-menu/

Resources