Greg about restoring focus to the TextInput works fine with the requestFocus() method, by the way, the previous focus owner could be another component, then moving the focus to the TextInput could be an unexpected behavior to the user..., is there a way to know wich component was the previous focus owner? and Todd, using the "toolbar" style works fine...thanks a lot for your help and quick response guys.

Greg Brown escribió:
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 <mailto: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





Reply via email to