Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Reply
Contributor
masterabhishek
Posts: 35
Registered: ‎04-14-2010
My Device: 8900
My Carrier: Mobile Application Developer

ticker probel

how to call this class in hello world programme...?

and where i give scroll item?

 

package test_tic;

import java.util.Timer;
import java.util.TimerTask;

//import net.rim.device.api.system.Display;
//import net.rim.device.api.ui.DrawStyle;
//import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.ActiveRichTextField;
//import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.VerticalFieldManager;

public class TickerScreen extends VerticalFieldManager
{
    private int managerWidth;
    private int managerHeight;
    static ActiveRichTextField editField;
    private Timer _scrollTimer;
    private TimerTask _scrollTimerTask;
    private int scrollPos;
    private VerticalFieldManager vfm;

    public TickerScreen(int width, int height, long style)
    {
        
        super(Manager.NO_VERTICAL_SCROLL | style);
        managerWidth = width;
        managerHeight = height;
        scrollPos = 0;
         vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL) ;

        editField = new ActiveRichTextField("")
        {
            public void paint(Graphics g)
            {
                getManager().invalidate();
                super.paint(g);
            }
        };
        editField.setEditable(false);
        vfm.add(editField);
        add(vfm);
    }
    protected void onFocus(int direction) {
        stopScroll();
    }
    protected void onDisplay() {
        startScroll();
    }

    protected void onUnfocus() {
        startScroll();
    }
    
    public void startScroll() {
        // Start scrolling
        final int scrollPos = getManager().getVerticalScroll();
        if (_scrollTimer == null) {
            _scrollTimer = new Timer();
            _scrollTimerTask = new TimerTask()
            {
                public void run()
                {
                    setScrollPos(getScrollPos() + 10);
                    
                    int vertH = 0;
                    synchronized (UiApplication.getEventLock())
                    {
                        vertH = vfm.getVirtualHeight();
                    }
                    if (getScrollPos() > vertH -getVirtualHeight())
                    {
                        setScrollPos(0);
                    }
                    UiApplication.getUiApplication().invokeLater(new Runnable()
                    {

                        public void run()
                        {
                            try {
                                vfm.setVerticalScroll(getScrollPos());
                            }
                            catch (Exception e)
                            {
                                e.printStackTrace();
                            }
                                
                        }
                    });
                }
            };
            _scrollTimer.scheduleAtFixedRate(_scrollTimerTask, 500, 500);
        }
    }

    private synchronized int getScrollPos() {
        return scrollPos;
    }

    private synchronized void setScrollPos(int scrollPos) {
        this.scrollPos = scrollPos;
    }

    private void stopScroll() {
        if (_scrollTimer != null) {
            _scrollTimerTask.cancel();
            _scrollTimer.cancel();
            _scrollTimer = null;
            _scrollTimerTask = null;
        }
    }

    public void paint(Graphics g) {
        super.paint(g);
    }

    public void sublayout(int width, int height) {
        if (managerWidth == 0) {
            managerWidth = width;
        }
        if (managerHeight == 0) {
            managerHeight = height;
        }
        super.sublayout(managerWidth, managerHeight);
        setExtent(managerWidth, managerHeight);
    }

    public synchronized void setText(String text, int[] offsets,
            byte[] attributes, Font[] fonts, int[] foregroundColors,
            int[] backgroundColors) {
            editField.setText(text, offsets, attributes, fonts, foregroundColors,
                backgroundColors);
    }

}

 

Ma$TeR
Please use plain text.
Developer
simon_hain
Posts: 15,947
Registered: ‎07-29-2008
My Device: Z10 LE
My Carrier: O2 Germany

Re: ticker probel

what do you want to achieve?

----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Please use plain text.
Contributor
masterabhishek
Posts: 35
Registered: ‎04-14-2010
My Device: 8900
My Carrier: Mobile Application Developer

Re: ticker probel

i m trying to implement ticker in my stock application...

Ma$TeR
Please use plain text.