Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^2: how to get selected value of jbrowseEntrycombo box

by Sandy (Curate)
on May 05, 2009 at 19:06 UTC ( [id://762013]=note: print w/replies, xml ) Need Help??


in reply to Re: how to get selected value of jbrowseEntrycombo box
in thread how to get selected value of jbrowseEntrycombo box

An interesting note:

If we insert some 'print' statements, we can see that the $dlg->add() function resets the value of $id, I am assuming because it does not match any of the 'valid' options.

#... code my $id = $sel || (@ids && $ids[0]) || ''; print "id 1 is <$id>\n"; my $IDText = $dlg->add ( 'JComboBox', -mode => 'readonly', -selectcommand => [\&changeEditPlayer, \$id], -validate => 'match', -textvariable => \$id, ); print "id 2 is <$id>\n";
What is also interesting, is that we cannot set $id to anything now that is associated with the readonly JComboBox. However, once the options are defined, $id can be set, but only to a valid option.
$id = "Joe";print "id is not Joe!! <$id>\n"; $IDText->form (-left => '%0', -right => '%100', -top => '%0'); $IDText->configure (-options => \@ids); # not only sets the selection but calls <c>changeEditPlayer</c> $id = "Joe"; print "now id is not empty!! <$id>\n"; # does nothing, because 'Sandy' is not a valid option $id = "Sandy"; print "id not set to Sandy because it is an invalid + option <$id>\n"; $id = $sel || (@ids && $ids[0]) || ''; ### now it works !! $IDText->setSelected ($id); # dosn't work
With the print statement modified slightly in changeEditPlayer, we get the following results (without any clicking of the mouse!)
id 1 is <Fred> id 2 is <> id is not Joe!! <> - inside changeEditPlayer Joe now id is not empty!! <Joe> id not set to Sandy because it is an invalid option <Joe> - inside changeEditPlayer Fred
Honestly, I was a bit confused when I was first playing with this bit of code. Never had I seen a straight declaration, like the following, not work.
$id = 'Sandy'; print "<$id>\n"; # prints Joe

Replies are listed 'Best First'.
Re^3: how to get selected value of jbrowseEntrycombo box
by zentara (Archbishop) on May 06, 2009 at 18:38 UTC
    FWIW, if you really look into how the -validate callback works for most widgets that have it, the results are confusing.....in other words....it's tricky to get validate to do what you want. Check out Simple Tk Gauge for an interesting trick.

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://762013]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2024-04-20 04:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found