Wheel/Trackball JDE 4.1

All,

I know this is an old topic, but I still have to find a solution that works.

I developed an application that must run on devices both wheel and trackball. Because the wheel devices running OS 4.1, according to RIM, I have to use the JDE 4.1.  Unfortunately the trackball is not supported until the JDE 4.2.

I built a screen that extends screen and adds a HorizontalFieldManager, which has a number of VerticalFieldManagers added to it so that I can display a table of data in format rows/columns (essentially following the example of the RIM on the way to display a data table).  To view my data I created an array of LabelFields, auditor trackwheelRoll and the setFocus() to allow custom movement when you move horizontally between the VFMs (this avoids to go to the first/last field in adjacent resources optimization).

As you'd expect, the trackwheelRoll listener knows nothing trackballs and can't handle the identification of horizontal movement.  Instead, the code of the default RIM intervenes and automatically move to first/last field of adjacent resources optimization.  Trackball users a frustrated because the movement between the VFMs is very frustrating to keep track where you were at prior to the move.

I know it's hard to explain and code sample would be quite long, but if necessary, I'll post a code.

Anyone found any way to support the trackball in the JDE 4.1 environment?  RIM suggested to manage the movement of the trackball when the user clicks on the ball/menu key, but this does not allow me to move to specific areas within an optimization of adjacent resources I need.

I looked at the FlowFieldManager, but I don't know that it will allow me to move horizontally and vertically beyond the limits of the visible screen (by default the FlowFieldManager will only scroll vertically and only generate fields horizontally that adapts to the screen that is not desired).

Proposals and guidance would be greatly appreciated.

fbwing

One solution is to create the version of the wheel of your app in the BlackBerry JDE 4.1 version and then use version 4.2 BlackBerry JDE to take advandtage the navigation methods.

This would require the maintenance of the two versions of the source to your screen and have the users to install the correct version of the application.

Tags: BlackBerry Developers

Similar Questions

  • Distinguish the wheel trackball click OS v4.1

    I wish that my application for manage easily clicks trackball on devices, which provide a special touch to access the menu.  However, I still work on older devices on wheel, which is not a separate menu key.

    To this end, I noticed that I can start by replacing the Screen.trackwheelClick () method.  However, I would like to find a way to tell the difference between the wheel and trackball clicks and do not use magic numbers in my code.

    My own quick test found that the status of trackwheelClick() parameter is different on the two types of devices.  With a 7100t (wheel), its "17039360" and with an 8820 (ball), his "536870912.  If I converted to binary, the two following numbers look quite clean.  However, I prefer to use constant official APIs for my checks in trackwheelClick().

    Any recommendations?

    Hello

    The substitution of Screen.trackwheelClick () is not recommended for various reasons, including the fact that it can be called internally by other events such as the invocation of the menu buttons, etc.

    An elegant way to support/differentiate wheel vs. use of the trackball with a unique construction is to check the instance of the Screen.onMenu () event parameter. On a trackball device this value will be 65536 when it is clicked on the trackball or 1073741824 when the button main menu is used (default = 0 for devices on the wheel). So, you can implement your logic as below. This also has the effect that the menu will also be displayed in the correct location on the display depending on whether you click the main menu button (menu left) vs trackball (context menu, at the bottom) or menu knob (in the top right menu). You can of course replace one of these to the capture and the action just click (by wheel or trackball).

    private final static int MENU_CONTEXT = 65536;
    private final static int MENU_MAIN = 1073741824;
    
    public boolean onMenu(int instance)
    {
         if (instance == MENU_MAIN) //main menu button pressed, display menu bottom left
         {
              super.onMenu(instance);
              return false;
         }
         else if (instance == MENU_CONTEXT) //trackball click (context menu, display bottom) - override here
         {
                return openItem();
         }
         else //trackwheel click, display main menu top right (or override if required)
         {
              super.onMenu(instance);
              return false;
         }
    }
    

    Hope that helps,

    James

  • Add a keyListener to the BlackBerry e-mail client

    Hello

    I'm new to the BlackBerry Java development and found this forum really useful. The problem I am trying to solve is to hang a keyListener to the e-mail client BlackBerry existing (MessageApplication).  My request is a background process (run in the module of the system initially up). I was able to add a menu item for the e-mail client using the method ApplicationMenuItemRepository.getInstance (.addMenuItem) without problem. However, I had a hard time to install a keyListener to the MessageApplication, so that my partner can get called when the user clicks a certain key in the BlackBerry email client.

    I don't know if this is possible, but I guess that since we can connect the menu item, then we should be able to hang the keyListener as well. Please notify.

    Thanks in advance for your help.

    Chris

    This is not supported.  Applications can listen wheel/trackball/key events when they display in the foreground.

  • List of blackBerry Smartphones of all devices that are without trackball or wheel

    Hello world

    Our company develops an application for BlackBerry devices. Someone could give me a list of all devices that are without trackball or wheel?

    Thanks in advance

    AN_employee wrote:

    Could someone give me a list of all devices that are without trackball or wheel?

    Which leaves all devices including the touchpad and touch screen.

    Touchpad:

    85xx

    97xx

    Touch screen:

    95XX

    Is this what you need?

  • Menu opens when trackball button ' is it fair?

    Hello guys '

    I did several menus for my application. It's my source code to make the menu:

    private class SimpleScreen extends MainScreen {
    
          ....
    
          public SimpleScreen() {
             ....
          }
    
          private MenuItem _menu1 = new MenuItem("Menu 1", 100000,10) {
                public void run()
                {
                       ...
                    }
          };
    
          private MenuItem _menu2 = new MenuItem("Menu 2", 200000,10) {
                public void run()
                {
                       ...
                    }
          };
    
          protected void makeMenu( Menu menu, int instance ) {
                   menu.add(_menu1);
                   menu.add(_menu2);
                   super.makeMenu(menu, instance);
          }
    }
    

    Then I run the application, I saw the menu items when to push the button on BlackBerry. It's OK, no problem.

    And while I support button trackball (I'm trying to say pull-out button on center of BB.), open the menu items.

    Why the menu is when press of trackball? He works right? I want to do only when press the BlackBerry button.

    I use the BlackBerry JDE 4.2.1 Simulator (BB 8800).

    TNX guys

    The menu is supposed to open if the click wheel/wheel ball is not consummated. If you consume the click trackball by substituting trackwheelClick() and returns the value true, the menu will not open. You'll probably want to first call super.trackwheelClick (), but always return true manually.

  • Detected MS trackball & work, but only the basic enabled buttons.

    I have an optical trackball usb IntelliPoint MS. It of that I plugged in and works. Device Manager still lists it as "Microsoft USB Trackball Optical".

    It's a trackball 5 buttons-wheel scroll, but for some reason, the scroll wheel, scroll wheel button, buttons forward and back all do not work. But the trackball works as are the buttons on the left & right.

    When I run mouse app in the control panel and click the "Center of mouse and keyboard", it tells me "device detected" (in spite of what the DM said.)

    I uninstalled and reinstalled v2.2 (64 bit) only to get the same result. I disconnected and reconnected the trackball of the computer (connected directly to the rear of one of the USB ports on my PC.

    It's weird. Why MSM & K say "no device not detected" when the DM clearly detects my "MS trackball?

    Hello Mugsy,

    Thanks to the Microsoft Community Forum.

    Did you try to connect the Microsoft Trackball on another computer and check if it works?

    Problems with a few mouse buttons occurs if the drivers/firmware is damaged. I suggest that you download the latest version of mouse and keyboard Center 2.1 64 bits and IntelliPoint 7.1 64 bit for Windows 7 from Microsoft Download link provided below.

    http://www.Microsoft.com/hardware/en-CA/d/Trackball-Explorer

    I would also ask you to try the troubleshooting described in Microsoft article provided below steps.

    Troubleshoot a wireless mouse that does not correctly

    If nothing works, then I would you contact the hardware support for assistance more-

    Microsoft Hardware support

    Hope the helps of information provided. Do we know the State of the question, so that we can help you further.

  • Trackball roll

    Hi all

    I want to capture the trackball as rollup event, winding... I tried with the wheel, but it works only for "click" and "Unclick" event... and not for rollup and winding...

    I want to start programmatically pass them and cumulative of the trackball...

    Help, please

    Thanks in advance

    Try this:

                EventInjector.invokeEvent(new EventInjector.TrackwheelEvent(
                        EventInjector.TrackwheelEvent.THUMB_ROLL_UP, 1 /*number of rolls*/,
                        TrackwheelListener.STATUS_NOT_FROM_KEYPAD));
    
  • JDE version to choose?

    Ago suite of devices that each supports different OS versions/types (various versions/glassware) also, there are different versions JDE: so my question is how to create an application that will best fit on all these variations?

    What RIM strategy recommends developers on this scenario to an application that fits the screen resolution?

    How / what version of JDE to use signed cod works on all devices OS without any problem?

    The types of devices I have identified to date are:
    Strom: 9530-480 x 360, touchscreen
    http://NA.BlackBerry.com/eng/devices/BlackBerryStorm/storm_specifications.jsp

    Bold: 9000-480 x 320, keyboard QWERTY, WiFi
    http://NA.BlackBerry.com/eng/devices/blackberrybold/bold_specifications.jsp

    Curve: 8900-480 x 360, QWERTY, WiFi
    http://NA.BlackBerry.com/eng/devices/blackberrycurve8900/curve_specifications.jsp

    Flip: 240 x 320, SureType, WiFi (optional)
    http://NA.BlackBerry.com/eng/devices/blackberrypearl8200/pearl_specifications.jsp

    Curve: 8300-320 x 240, QWERTY
    http://NA.BlackBerry.com/eng/devices/blackberrycurve8300/curve_specifications.jsp

    Pearl: 8100-240 x 260, SureType
    http://NA.BlackBerry.com/eng/devices/blackberrypearl8100/pearl_specifications.jsp

    8800: 8800-320 x 240, QWERTY
    http://NA.BlackBerry.com/eng/devices/device-detail.jsp?Navid=H0, C201, P403 #tab_tab_specifications

    Looking forward to reply to the developers/RIM on that.

    That is a good question and is asked everyday. Is there really no answer that solves all these problems.

    As a general rule, you build your application on version base the more COMP that suports your application requriements. I recommend 4.2.1 as a good 'base' build, applications developed on this level will run on just about everything that is currently shipped today.

    For different sizes and screen resolutions, we have developed our own class of theme and the theme factory serving the correct resource based on the current device context.

    For the Touch vs Trackball question, abstract GUI components and serve them upward in a GUI factory method. Within the factory method, we use the preprocessor to avoid creating dependencies on the API that does not exist in the no touch devcies. The plant serves up the correct (or any other) class for the device.

    The downside of this is that we have many distributions of our applications (. 42,.47, etc.). However, we maintain a single source using this methodology tree. It works for us.

    Others have different methods... ymmv

  • BasicEditField the cursor with the wheel of trapping

    Hello

    I created a customized to handle the keypress TrackballClick and Enter BasicEditField.

    It works very well on blackberry with a trackball (latest), but the cursor is trapped in the field with Blackberry with a wheel (like the 8703e). As soon as it gets the focus, the cursor may not go out (or an upper field) or one of the below

    Here is the code:

    public class SearchInputField extends BasicEditField implements TrackwheelListener {
        ConnectionScreen parentScreen;
    
        public SearchInputField(String label, String initialValue, int maxNumChars, long style, ConnectionScreen screen) {
            super(label, initialValue, maxNumChars, style);
            this.parentScreen = screen;
        }
    
        public int getPreferredWidth() {
            return Display.getWidth() / 2;
        }
    
        public boolean keyChar(char key, int status, int time) {
          switch( key ) {
            case Characters.ENTER:
                parentScreen.PerformSearch();
                return true;
            }
            return super.keyChar(key, status, time);
        }
    
        public boolean trackwheelClick(int status, int line) {
            parentScreen.PerformSearch();
            return true;
        }
    
        public boolean trackwheelUnclick(int status, int line) {
            return true;
        }
    
        public boolean trackwheelRoll(int amount,int status, int line) {
            return true;
        }
    

    Any idea?

    Thank you

    No, he stayed in the first.

    In any case, fixed it by returning false in the method of the wheel (do not know why, but anyway... )

  • BlackBerry DateField-wheel click on question

    Hi all

    I want to open the platform on any key date picker rather than only the wheel click.

    What I mean is I want the feature made when we click trackball on datefield... even by clicking on any button.

    any help?

    You can crush keyChar, manage the keys you want and to do this, use invokeAction on the datefield

  • Using navigationMovement() as a trackpad/trackball mouse

    Greettings and regards other developers.  a few quick details I use the blackberry JDE 5.0 on Eclipse Galileo, I created a method of mouse for pavers and balls.  Try to expand my horizons of sale, two possible losses haunt my thoughts.

    side 1: the mouse works fine until you roll two directions at once, example left and upwards at the same time moves alone, he left or up not both.

    side 2: the touchpad does not roll like the balloon, this method will probably fine work for the ball, but not the key.

    This is the code for my navigationMovement() method

    protected boolean navigationMovement(int dx,int dy,int status,int time)
        {
            super.navigationMovement(dx, dy, status, time);
            if (!mouseOn)                               //places mouse on first run but doesnt repeat
                {
                mouses.addElement(new Sprite(Utility.SCREEN_WIDTH / 2, Utility.SCREEN_HEIGHT / 2));
                mouseOn = true;
                }
            Sprite f = (Sprite) mouses.firstElement();           //sprite class updates x and y coordinates                                                                               //Focussing on the x/y of the mouse(i know using a vector is silly here)
            f.x+= (dx * 10);
            f.y+= (dy * 10);    //moves the mouse according to dx/dy input
    
            if((f.x + mouse.getWidth()) > Utility.SCREEN_WIDTH) f.x = Utility.SCREEN_WIDTH - mouse.getWidth();
            else if(f.x < 0) f.x = 0;
            if((f.y + mouse.getHeight()) > Utility.SCREEN_HEIGHT) f.y = Utility.SCREEN_HEIGHT - mouse.getHeight();
            else if(f.y < 0) f.y = 0;        //keeps the mouse from scrolling off screen
    
            invalidate();     //update screen
            return true;
        }
    

    Is there a way to make the trackpad act as the trackball with this method, or it will be slow and jerky?  I know that the trackpads have magnitude and direction.  So I hope that's not too bad, it seems to work on the Simulator, but I need a tester phone or real app ready to try this for me.

    More importantly, how do I get the mouse to move both directions if the ball goes both directions? I have some ideas on what may be an if statement to check if both directions are going at once, then run both directions.  But it seems that both must be running.

    Thanks in advance.

    -Andy

    I just realized this post was a little out of place, thanks to blackberry api I got including this one.

  • Get a touchscreen application to work with Trackball

    I had someone with more knowledge design me an application with buttons customized to work with the Blackberry Storm.  The program works perfectly for this model, but I want you hover over this code for applications of trackball, using JDE 4.5.  Should what methods I call to move the screen touchscreen trackball listeners?

    Replace the navigation functions (movement, click, uncheck) to take account of trackball devices.

  • How can I trigger an action on the click event of wheel with ApplicationMessages?

    Hello world

    I've recently implemented ApplicationMessage provided for JDE 4.6.0. It allows developer create custom messages in the global Inbox of messages about its application. It works fairly well but I threshold have question though: when I click on my ApplicationMessage in overall Inbox of messages I get this pop-up: 'no messages not configured service. "You will be able to save draft".

    I want to trigger an action (updates my request on the foreground for ie) on this event and prevent this pop-up to appear. I have not found a way to do good.

    Somone have never worked with ApplicationMessage and managed to trigger an action on the click event of wheel?

    Thanks in advance.

    PS: A less important but another question: my ApplicationMessage time in the overall message Inbox is displayed this way: 10:... instead of 10:45 for example. And yet I didn't understand what was the reason of this bad view (it seems that the date is too long or something).

    I thought about it: you must register at least an ApplicationMenuItem for your ApplicationMessage, the action triggered by this menu item will be the same if you click your ApplicationMessage with the wheel.

  • ApplicationMenuItem called with null in JDE 4.6 when you enter the phone number

    When I install a custom phone app, ApplicationMenuItem and

    try to enter a number on the keypad of the native Dialer, and then click the custom menu,

    my custom ApplicationMenuItem is called with a null context object.

    This same code + test case works well under the 4.5 JDE / 8300 emulator

    and device 8320, but fails under JDE 4.6 with the BB 9000 emulator

    and device

    To reproduce the bug:

    * Build/launch of the attached test application

    * Send with previous key

    * Go to the native Dialer

    * Enter "123" on the keyboard of the phone

    * Click on the trackball

    * Choose Bug49 the context menu

    * It will appear a dialog box indicating "context has the null value - is this a bug?

    NOTE that if, rather than enter a number on the keypad of the phone with step 4.

    a call log is selected, then it works and a non-null context object is passed.

    Can I make it work?  If this is a known bug, are

    It no work around?

    import net.rim.blackberry.api.menuitem.ApplicationMenuItem;import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository;import net.rim.device.api.ui.UiApplication;import net.rim.device.api.ui.component.Dialog;import net.rim.device.api.ui.component.LabelField;import net.rim.device.api.ui.component.RichTextField;import net.rim.device.api.ui.container.MainScreen;
    
    public class Bug49 extends UiApplication { public Bug49()    {     super();      Bug49Screen screen = new Bug49Screen();       pushScreen(screen);       ApplicationMenuItemRepository amir = ApplicationMenuItemRepository.getInstance();     Bug49NativeMenu bug49NativeMenu = new Bug49NativeMenu(0);     amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_PHONE, bug49NativeMenu ); }
    
      public static void main(String[] args) {      Bug49 b49 = new Bug49();      b49.enterEventDispatcher();   }
    
       static class Bug49Screen extends MainScreen {     public Bug49Screen() {            super();          setTitle(new LabelField("Hello"));            add(new RichTextField("Hello"));      } }
    
      static class Bug49NativeMenu extends ApplicationMenuItem  {     public Bug49NativeMenu(int order) {           super(order);     }     public Object run(Object context) {           if (context == null) {                Dialog.alert("context is null -- is this a bug?");            }         else {                Dialog.alert("context not null");         }         return null;      }     public String toString() {            return "Bug 49";      } }}
    

    It is a problem in the version of BlackBerry device software 4.6.0.  It has been fixed in version 4.7.0.

  • Scroll of blackBerry Smartphones are becoming very difficult to "BOLD" (with a pad, not a scroll wheel)

    Hello

    Scrolling became very difficult in my "BOLD", but it has a pad, not a scroll wheel, so I can't follow the spoken wheel and push solution previously in these forums.

    The symptoms are that it is difficult to get the cursor to move to the left or to the right or upwards or downwards, sometimes that it moves more easily than other times, but never as easy as it was until last week. What often happens is that I end up pressingteh pad too hard trying getting the top of the page to save the movement and thus itreads as a click instead.

    I tried to clean the buffer, cleaning of my thumb or finger, battery-out-restarted "BOLD" of countless times, tried with my fingers wet and dry...

    It seems that she has changed after an update has been downloaded, but maybe it's just my perception.

    In any case, what could be the problem and what is the solution please?

    Hello qw8,

    Welcome to the forums.

    Take a look at the knowledge base article below which may help you with your trackpad problem.

    KB29640

    Trackball, keyboard or trackpad not working only not on a BlackBerry Smartphone.

    I hope this helps. Nice day.

Maybe you are looking for

  • Satellite U400 - big noise from cooling modules

    Hello bought a few months ago Toshiba Satellite U400 and everything was perfect, and I bought it just because I don't like the sounds.When I surf the net I love that he's quite, but these last 5 days he began to ring. Toshiba U400 works and it should

  • Qosmio F750 - some keys on the keyboard stoped working

    Hello Since 3 months ago, I have a Toshiba Qosmio F750. The other day, I have just the laptop powered and noticed some keys (a, b, n, enter...) didn't work at all. I tried to clean blowing under the keyboard and nothing. In the windows start these ke

  • Is the Satellite A100-797 x64bit or 32-bit?

    Hey,. I have a question on the Satellite A100-797.Is this laptop a x 64 computer?The installed operating system is Vista 32 bit... Thank youMathijs

  • Should I update my WNDR3400v3 to the Firmware 1.0.0.48?

    I see there's a 1.0.0.48 updated the firmware on the Netgear site, but control over the router software said: I'm updating even if I'm on 1.0.0.46. Should I update?

  • External sample clock change takes a lot of time on the SMU-5186

    Hello I use the external Lv - niScope EX Clocking.vi example to define SMU-5186 using an external sample clock.  However, it takes a long time, 5-6 minutes, before I can get the first block of data acquisition. Then I run the example 'niScope EX Acqu