Ah, that's right! I forgot that toolbar buttons don't take the focus.
So the "toolbar" style may actually address both of your requirements.
On Oct 21, 2009, at 9:18 AM, Todd Volkert wrote:
Try using menuButton.getStyles().put("toolbar", true). That will
keep it from grabbing the focus when it's been clicked (though the
user will still be able to traverse to it), and it will only paint
its background and border when the mouse it over it.
-T
On Wed, Oct 21, 2009 at 9:03 AM, Alejandro Vilar <alejandro.vi...@synacom.com.bo
> wrote:
Basically what I want to do is an extension of TextInput component
with a Menubutton at the left side, I will use it for some searches,
this MenuButton should let me choose some options for such searches
and I just want the focus event on the TextInput. Here is my code:
Main class:
import org.apache.pivot.collections.Map;
import org.apache.pivot.wtk.*;
public class Main extends Window implements Application {
public void startup(Display display, Map<String, String>
properties) throws Exception {
BoxPane boxPane = new BoxPane();
SearchTextInput input1 = new SearchTextInput();
SearchTextInput input2 = new SearchTextInput();
input2.setOptions(new String[]{"Option1", "Option2",
"Option3", "Option4"});
boxPane.add(input1);
boxPane.add(input2);
setContent(boxPane);
open(display);
}
public boolean shutdown(boolean optional) throws Exception {
close();
return false;
}
public void suspend() throws Exception {
}
public void resume() throws Exception {
}
public static void main(String[] args) {
DesktopApplicationContext.main(Main.class, args);
}
}
SearchTextInput class:
import org.apache.pivot.wtk.*;
import org.apache.pivot.wtk.content.ButtonData;
public class SearchTextInput extends BoxPane {
private TextInput textInput;
private MenuButton menuButton;
private ButtonData buttonData;
public SearchTextInput() {
super(Orientation.HORIZONTAL);
initComponents();
}
private void initComponents() {
textInput = new TextInput();
menuButton = new MenuButton();
menuButton.getStyles().put("focusable", false);// <---
problem here
buttonData = new ButtonData();
menuButton.setButtonData(buttonData);
getStyles().put("fill", true);
getStyles().put("spacing", 0);
getStyles().put("padding", new Insets(0, 0, 0, 0));
add(menuButton);
add(textInput);
}
public void setOptions(String[] options) {
Menu menu = menuButton.getMenu();
if (menu == null) {
menu = new Menu();
menuButton.setMenu(menu);
}
Menu.Section section = new Menu.Section();
Menu.Item item;
for (int i = 0; i < options.length; i++) {
item = new Menu.Item(new ButtonData(options[i]));
section.add(item);
}
menu.getSections().add(section);
}
}
Alejandro
Greg Brown escribió:
The styles supported by a component are defined by the JavaBean
properties of its skin class. For menu buttons, this is an instance
of org.apache.pivot.wtk.skin.terra.TerraMenuButtonSkin by default.
TerraMenuButtonSkin doesn't define "focusable" or "opaque" properties:
http://incubator.apache.org/pivot/1.3/docs/api/org/apache/pivot/wtk/skin/terra/TerraMenuButtonSkin.html
However, if you can describe more specifically what you are trying
to do, maybe we can help you find another way to accomplish it.
Greg
On Oct 21, 2009, at 8:22 AM, Alejandro Vilar wrote:
Hi, I'm having some problems with MenuButton styles, particularly
with focusable and opaque,
I can't assign those values at runtime, for example:
Code:
public static void main(String[] args) {
MenuButton menuButton = new MenuButton();
menuButton.getStyles().put("focusable", Boolean.FALSE); //
doesn't work
menuButton.getStyles().put("opaque", Boolean.FALSE); // doesn't
work
menuButton.getStyles().put("color", Color.BLACK); // it works
}
Console output:
"focusable" is not a valid style for org.apache.pivot.wtk.MenuButton
"opaque" is not a valid style for org.apache.pivot.wtk.MenuButton
(Seen in pivot 1.3/1.4)
Thanks in advance