SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
BlackBerry Java SDK
UI Component
Version: 6.0

Quick Reference Guide
Published: 2010-11-23
SWD-1203961-1208020646-001
Contents
1

Text fields......................................................................................................................................................................................
Label.................................................................................................................................................................................................
Read-only text field........................................................................................................................................................................
Editable text field............................................................................................................................................................................
Password field.................................................................................................................................................................................
Email address field..........................................................................................................................................................................
Search field......................................................................................................................................................................................
Autocomplete text field..................................................................................................................................................................
AutoText edit field...........................................................................................................................................................................
Active AutoText edit field...............................................................................................................................................................

3
3
4
6
7
9
10
13
14
16

2 Choice fields.................................................................................................................................................................................
Check box.........................................................................................................................................................................................
Text-based drop-down list.............................................................................................................................................................
Numeric drop-down list.................................................................................................................................................................
Date field..........................................................................................................................................................................................
Date picker.......................................................................................................................................................................................
File picker.........................................................................................................................................................................................
Spin box............................................................................................................................................................................................
Location picker................................................................................................................................................................................
Tree field..........................................................................................................................................................................................

18
18
19
20
21
22
24
25
27
30

3 Buttons..........................................................................................................................................................................................
Radio button....................................................................................................................................................................................
Toolbar..............................................................................................................................................................................................
Button...............................................................................................................................................................................................

33
33
34
36

4 Activity fields................................................................................................................................................................................
Gauge field......................................................................................................................................................................................
Activity indicator.............................................................................................................................................................................
Progress indicator...........................................................................................................................................................................

38
38
39
40

5 Picture fields.................................................................................................................................................................................
Bitmap field......................................................................................................................................................................................
Picture scroll field...........................................................................................................................................................................

43
43
44
6 Lists and tables............................................................................................................................................................................
Simple list.........................................................................................................................................................................................
Rich list.............................................................................................................................................................................................
Table.................................................................................................................................................................................................

47
47
48
50

7 Other components.......................................................................................................................................................................
Browser field....................................................................................................................................................................................
Title bar............................................................................................................................................................................................
Map field..........................................................................................................................................................................................

54
54
55
56

8 Provide feedback.........................................................................................................................................................................

58

9 Document revision history.........................................................................................................................................................

59

10 Legal notice..................................................................................................................................................................................

60
Text fields

Quick Reference Guide

Text fields

1

Label
Use a label to identify a UI component for a BlackBerry® device user.
Class
Supported since
Example

LabelField
BlackBerry® Java® SDK 4.0

For more information about labels, see the UI Guidelines.

Code sample: Creating a label
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.LabelField;
public class LabelFieldDemo extends UiApplication
{
public static void main(String[] args)
{
LabelFieldDemo theApp = new LabelFieldDemo();
theApp.enterEventDispatcher();
}

}

public LabelFieldDemo()
{
pushScreen(new LabelFieldDemoScreen());
}

class LabelFieldDemoScreen extends MainScreen

3
Read-only text field

Quick Reference Guide

{

public LabelFieldDemoScreen()
{
LabelField title = new LabelField("Label Field Demo", LabelField.ELLIPSIS |
LabelField.USE_ALL_WIDTH);
setTitle(title);
LabelField labelField1 = new LabelField("Right-aligned label field",
LabelField.FIELD_RIGHT);
LabelField labelField2 = new LabelField("Centered label field",
LabelField.FIELD_HCENTER | LabelField.FOCUSABLE);
LabelField labelField3 = new LabelField("Left-aligned label field",
LabelField.FIELD_LEFT);

}

}

add(labelField1);
add(labelField2);
add(labelField3);

Read-only text field
Use a read-only text field to display read-only text that can be formatted.
Class
Supported since
Example

RichTextField
BlackBerry® Java® SDK 4.0

For more information about read-only text fields, see the UI Guidelines.

Code sample: Creating a read-only text field

4
Read-only text field

Quick Reference Guide

import
import
import
import
import
import

net.rim.device.api.ui.UiApplication;
net.rim.device.api.ui.container.MainScreen;
net.rim.device.api.ui.component.RichTextField;
net.rim.device.api.ui.Font;
net.rim.device.api.ui.FontFamily;
net.rim.device.api.ui.component.Dialog;

public class RichTextFieldDemo extends UiApplication
{
public static void main(String[] args)
{
RichTextFieldDemo theApp = new RichTextFieldDemo();
theApp.enterEventDispatcher();
}

}

public RichTextFieldDemo()
{
pushScreen(new RichTextFieldDemoScreen());
}

class RichTextFieldDemoScreen extends MainScreen
{
Font myFont1, myFont2, myFont3;
public RichTextFieldDemoScreen()
{
RichTextField title = new RichTextField("Read-only Text Field Demo");
setTitle(title);
RichTextField rtf1 = new RichTextField("Right-aligned plain",
RichTextField.TEXT_ALIGN_RIGHT);
RichTextField rtf2 = new RichTextField("Centered extra bold",
RichTextField.TEXT_ALIGN_HCENTER);
RichTextField rtf3 = new RichTextField("Left-aligned italic",
RichTextField.TEXT_ALIGN_LEFT);
try
{

FontFamily ff1 = FontFamily.forName("Times New Roman");
myFont1 = ff1.getFont(Font.PLAIN, 18);
FontFamily ff2 = FontFamily.forName("Courier New");
myFont2 = ff2.getFont(Font.EXTRA_BOLD, 24);
FontFamily ff3 = FontFamily.forName("Verdana");
myFont3 = ff3.getFont(Font.ITALIC, 24);

}

5
Editable text field

Quick Reference Guide

catch(final ClassNotFoundException cnfe)
{
UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
Dialog.alert("FontFamily.forName() threw " + cnfe.toString());
}
});
}
rtf1.setFont(myFont1);
rtf2.setFont(myFont2);
rtf3.setFont(myFont3);

}

}

add(rtf1);
add(rtf2);
add(rtf3);

Editable text field
Use an editable text field to allow BlackBerry® device users to type text in a field. You can apply filters to restrict the characters
that users can type in the text field.
Class
Supported since
Example

BasicEditField
BlackBerry® Java® SDK 3.7

For more information about editable text fields, see the UI Guidelines.

Code sample: Creating an editable text field

6
Password field

Quick Reference Guide

import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.BasicEditField;
public class BasicEditFieldDemo extends UiApplication
{
public static void main(String[] args)
{
BasicEditFieldDemo theApp = new BasicEditFieldDemo();
theApp.enterEventDispatcher();
}

}

public BasicEditFieldDemo()
{
pushScreen(new BasicEditFieldDemoScreen());
}

class BasicEditFieldDemoScreen extends MainScreen
{
public BasicEditFieldDemoScreen()
{
setTitle("Editable Text Field Demo");
BasicEditField enterName = new BasicEditField("Your name: ", "");
BasicEditField enterPhone = new BasicEditField("Work number: ", "", 50,
BasicEditField.FILTER_PHONE);

}

}

add(enterName);
add(enterPhone);

Password field
Use a password field when BlackBerry® device users are required to type a password. You can apply filters to restrict the characters
that users can type in the field. By default, the password field supports all characters.
Class
Supported since

PasswordEditField
BlackBerry® Java® SDK 4.2.1

7
Quick Reference Guide

Example

For more information about password fields, see the UI Guidelines.

Code sample: Creating a password field
import
import
import
import

net.rim.device.api.ui.UiApplication;
net.rim.device.api.ui.container.MainScreen;
net.rim.device.api.ui.component.BasicEditField;
net.rim.device.api.ui.component.PasswordEditField;

public class PasswordEditFieldDemo extends UiApplication
{
public static void main(String[] args)
{
PasswordEditFieldDemo theApp = new PasswordEditFieldDemo();
theApp.enterEventDispatcher();
}

}

public PasswordEditFieldDemo()
{
pushScreen(new PasswordEditFieldDemoScreen());
}

class PasswordEditFieldDemoScreen extends MainScreen
{
public PasswordEditFieldDemoScreen()
{
setTitle("Password Field Demo");
BasicEditField enterUsername = new BasicEditField("Username: ", "");
PasswordEditField enterPIN = new PasswordEditField("PIN: ", "", 4,
PasswordEditField.FILTER_NUMERIC);
add(enterUsername);

8

Password field
Email address field

Quick Reference Guide

}

}

add(enterPIN);

Email address field
Use an email address field when BlackBerry® device users are required to type an email address. This field permits only characters
that are valid in an email address.
The first space that a user types is replaced automatically with an at sign (@) and any subsequent spaces are replaced with
periods (.).
Class
Supported since
Example

EmailAddressEditField
BlackBerry® Java® SDK 4.0

For more information about email address fields, see the UI Guidelines.

Code sample: Creating an email address field
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.EmailAddressEditField;
public class EmailAddressEditFieldDemo extends UiApplication
{
public static void main(String[] args)
{
EmailAddressEditFieldDemo theApp = new EmailAddressEditFieldDemo();
theApp.enterEventDispatcher();
}
public EmailAddressEditFieldDemo()
{

9
Search field

Quick Reference Guide

}

}

pushScreen(new EmailAddressEditFieldDemoScreen());

class EmailAddressEditFieldDemoScreen extends MainScreen
{
public EmailAddressEditFieldDemoScreen()
{
setTitle("Email Address Field Demo");
EmailAddressEditField enterEmail = new EmailAddressEditField("Email address:
", "");
add(enterEmail);
}
}

Search field
Use a search field to allow BlackBerry® device users to filter a list of words that match the characters that they type in the field.
Users can select one of the presented matches or continue typing to further restrict the available choices.
When you create a search field, you must specify a source list. The source list supplies the strings to compare against, which can
be hard-coded or derived from data sources on a BlackBerry device, such as contacts, memos, and tasks.
Class
Supported since
Example

KeywordFilterField
BlackBerry® Java® SDK 4.5

For more information about search fields, see the UI Guidelines.

Code sample: Creating a search field
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.collection.ReadableList;
import net.rim.device.api.util.Comparator;

10
Quick Reference Guide

import
import
import
import
import

Search field

java.util.*;
net.rim.device.api.collection.util.*;
net.rim.device.api.util.StringUtilities;
net.rim.device.api.ui.*;
net.rim.device.api.ui.component.*;

public class SearchFieldDemo extends UiApplication
{
KeywordFilterField _keywordFilterField;
CountryList _countryList;
public static void main(String args[])
{
SearchFieldDemo theApp = new SearchFieldDemo();
theApp.enterEventDispatcher();
}
public SearchFieldDemo()
{
_countryList = new CountryList();
_countryList.addElement(new Country("Zimbabwe"));
_countryList.addElement(new Country("Argentina"));
_countryList.addElement(new Country("Brazil"));
_countryList.addElement(new Country("Canada"));
_countryList.addElement(new Country("Chile"));
_countryList.addElement(new Country("China"));
_countryList.addElement(new Country("Germany"));
_keywordFilterField = new KeywordFilterField();
_keywordFilterField.setLabel("");
_keywordFilterField.setSourceList(_countryList, _countryList);
SearchFieldDemoScreen screen = new SearchFieldDemoScreen();
screen.setTitle(_keywordFilterField.getKeywordField());
screen.add(_keywordFilterField);
screen.addMenuItem(addElementItem);
}

pushScreen(screen);

void addElementToList(Country country)
{
_countryList.addElement(country);
_keywordFilterField.updateList();
}
private final MenuItem addElementItem = new MenuItem("Add country", 0, 0)
{
public void run()
{
_keywordFilterField.setKeyword("");

11
Search field

Quick Reference Guide

String[] selections = {"Add","Cancel"};
Dialog addDialog = new Dialog("Add Country", selections, null, 0, null);
EditField inputField = new EditField("Country: ","");
addDialog.add(inputField);
if(addDialog.doModal() == 0)
{
addElementToList(new Country(inputField.getText()));

}

};

}

}

class SearchFieldDemoScreen extends MainScreen
{
public SearchFieldDemoScreen(){};
}
class CountryList extends SortedReadableList implements KeywordProvider
{
public CountryList()
{
super(new CountryListComparator());
}
void addElement(Object element)
{
doAdd(element);
}
public String[] getKeywords(Object element)
{
if(element instanceof Country)
{
return StringUtilities.stringToWords(element.toString());
}
return null;
}
final static class CountryListComparator implements Comparator
{
public int compare(Object o1, Object o2)
{
if (o1 == null || o2 == null)
throw new IllegalArgumentException("Cannot compare null countries");

}
}

12

}

return o1.toString().compareTo(o2.toString());
Autocomplete text field

Quick Reference Guide

class Country
{
private String _countryName;
public Country(String countryName)
{
_countryName = countryName;
}

}

public String toString()
{
return _countryName;
}

Autocomplete text field
Use an autocomplete text field to allow BlackBerry® device users to select from a changing list of words that match the characters
that they type in the field. Users can select one of the presented matches or continue typing to further restrict the available choices.
When you create an autocomplete text field, you must associate it with a BasicFilteredList object. The
BasicFilteredList supplies the strings to compare against, which can be hard-coded or derived from data sources on a
BlackBerry device, such as contacts, memos, and tasks.
Classes
Supported since
Example

AutoCompleteField, BasicFilteredList
BlackBerry® Java® SDK 5.0

For more information about autocomplete text fields, see the UI & Navigation Development Guide.

Code sample: Creating an autocomplete text field

13
AutoText edit field

Quick Reference Guide

import
import
import
import

net.rim.device.api.ui.UiApplication;
net.rim.device.api.ui.container.MainScreen;
net.rim.device.api.ui.component.AutoCompleteField;
net.rim.device.api.collection.util.*;

public class AutoCompleteFieldApp extends UiApplication
{
public static void main(String[] args)
{
AutoCompleteFieldApp app = new AutoCompleteFieldApp();
app.enterEventDispatcher();
}

}

AutoCompleteFieldApp()
{
pushScreen(new HomeScreen());
}

class HomeScreen extends MainScreen
{
public HomeScreen()
{
setTitle("Autocomplete Text Field Demo");
BasicFilteredList filterList = new BasicFilteredList();
String[] days = {"Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday"};
filterList.addDataSet(1,days,"days",BasicFilteredList
.COMPARISON_IGNORE_CASE);
AutoCompleteField autoCompleteField = new AutoCompleteField(filterList);
add(autoCompleteField);
}
}

AutoText edit field
Use an AutoText edit field to automatically correct text that a BlackBerry® device user types in the field. The text is corrected
based on the AutoText definition list, which lists common typographic errors and corrections. The text is corrected when the user
presses the Space key.
Class
Supported since

14

AutoTextEditField
BlackBerry® Java® SDK 4.0
Quick Reference Guide

AutoText edit field

Example

For more information about AutoText edit fields, see the UI Guidelines.

Code sample: Creating an AutoText edit field
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.AutoTextEditField;
public class AutoTextEditFieldDemo extends UiApplication
{
public static void main(String[] args)
{
AutoTextEditFieldDemo theApp = new AutoTextEditFieldDemo();
theApp.enterEventDispatcher();
}

}

public AutoTextEditFieldDemo()
{
pushScreen(new AutoTextEditFieldDemoScreen());
}

class AutoTextEditFieldDemoScreen extends MainScreen
{
public AutoTextEditFieldDemoScreen()
{
setTitle("AutoText Edit Field Demo");
AutoTextEditField myField = new AutoTextEditField("Description: ", "");

}

}

add(myField);

15
Active AutoText edit field

Quick Reference Guide

Active AutoText edit field
Use an active AutoText edit field to check for patterns in text that a BlackBerry® device user types in the field. When a pattern
is found, the text becomes active and the user can click on the active text to access special menu items. For example, email
addresses and phone numbers are two of the patterns that are recognized by default.
In addition, when the user presses the Space key, text is corrected based on the AutoText definition list, which lists common
typographic errors and corrections.
Classes
Supported since
Example

ActiveAutoTextEditField
BlackBerry® Java® SDK 5.0

For more information about active autocomplete text fields, see the UI Guidelines.

Code sample: Creating an active AutoText edit field
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.component.ActiveAutoTextEditField;
public class ActiveAutoTextEditFieldDemo extends UiApplication
{
public static void main(String[] args)
{
ActiveAutoTextEditFieldDemo theApp = new ActiveAutoTextEditFieldDemo();
}

}

theApp.enterEventDispatcher();

public ActiveAutoTextEditFieldDemo()
{
pushScreen(new ActiveAutoTextEditFieldDemoScreen());
}

class ActiveAutoTextEditFieldDemoScreen extends MainScreen

16
Quick Reference Guide

{

Active AutoText edit field

public ActiveAutoTextEditFieldDemoScreen()
{
setTitle("Active AutoText Edit Field Demo");
ActiveAutoTextEditField myField = new ActiveAutoTextEditField("Send a
message to Mike: n n", "");

}

}

add(myField);

17
Choice fields

Quick Reference Guide

Choice fields

2

Check box
Use check boxes for options that BlackBerry® device users can select or clear. Users can select any number of check boxes in a
group.
Class
Supported since
Example

CheckboxField
BlackBerry® Java® SDK 3.7

For more information about check boxes, see the UI Guidelines.

Code sample: Creating a check box
import
import
import
import
import

net.rim.device.api.ui.Field;
net.rim.device.api.ui.UiApplication;
net.rim.device.api.ui.container.MainScreen;
net.rim.device.api.ui.component.LabelField;
net.rim.device.api.ui.component.CheckboxField;

public class CheckboxFieldDemo extends UiApplication
{
public static void main(String[] args)
{
CheckboxFieldDemo theApp = new CheckboxFieldDemo();
theApp.enterEventDispatcher();
}
public CheckboxFieldDemo()
{
pushScreen(new CheckboxFieldDemoScreen());
}

18
Text-based drop-down list

Quick Reference Guide

}
class CheckboxFieldDemoScreen extends MainScreen
{
public CheckboxFieldDemoScreen()
{
LabelField title = new LabelField("Check Box Demo",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);

}

}

CheckboxField checkBox1 = new CheckboxField("Ignore Case", true);
CheckboxField checkBox2 = new CheckboxField("Ignore Acronyms", false);
add(checkBox1);
add(checkBox2);

Text-based drop-down list
Use a text-based drop-down list for text-based options that BlackBerry® device users can select from a list. Users can select only
one option at a time.
Class
Supported since
Example

ObjectChoiceField
BlackBerry® Java® SDK 5.0

For more information about text-based drop-down lists, see the UI Guidelines.

Code sample: Creating a text-based drop-down list
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;

19
Numeric drop-down list

Quick Reference Guide

public class TextDropdownListDemo extends UiApplication
{
public static void main(String[] args)
{
TextDropdownListDemo theApp = new TextDropdownListDemo();
theApp.enterEventDispatcher();
}
public TextDropdownListDemo()
{
pushScreen(new TextDropdownListDemoScreen());
}
}
class TextDropdownListDemoScreen extends MainScreen
{
public TextDropdownListDemoScreen()
{
setTitle("Drop-down List Demo");
String choices[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Satu
rday","Sunday"};
int iSetTo = 2;
add(new ObjectChoiceField("Day of the week",choices,iSetTo));
}
}

Numeric drop-down list
Use a numeric drop-down list for numeric options that BlackBerry® device users can select from a list. Users can select only one
option at a time.
Class
Supported since
Example

20

NumericChoiceField
BlackBerry® Java® SDK 3.6
Date field

Quick Reference Guide

For more information about numeric drop-down lists, see the UI Guidelines.

Code sample: Creating a numeric drop-down list
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
public class NumericDropdownListDemo extends UiApplication
{
public static void main(String[] args)
{
NumericDropdownListDemo theApp = new NumericDropdownListDemo();
theApp.enterEventDispatcher();
}
public NumericDropdownListDemo()
{
pushScreen(new NumericDropdownListDemoScreen());
}

}
class NumericDropdownListDemoScreen extends MainScreen
{
public NumericDropdownListDemoScreen()
{
setTitle("Drop-down List Demo");
int iStartAt
= 1;
int iEndAt
= 31;
int iIncrement = 1;
int iSetTo
= 10;
add(new NumericChoiceField("Day of the
month",iStartAt,iEndAt,iIncrement,iSetTo-1));
}
}

Date field
Use a date field to display the date and time.
Class
Supported since

DateField
BlackBerry® Java® SDK 3.6

21
Quick Reference Guide

Example

For more information about date fields, see the UI Guidelines.

Code sample: Creating a date field
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
public class DateFieldDemo extends UiApplication
{
public static void main(String[] args)
{
DateFieldDemo theApp = new DateFieldDemo();
theApp.enterEventDispatcher();
}
public DateFieldDemo()
{
pushScreen(new DateFieldDemoScreen());
}
}
class DateFieldDemoScreen extends MainScreen
{
public DateFieldDemoScreen()
{
setTitle("Date Field Demo");
add(new DateField("Date and Time: ", System.currentTimeMillis(),
DateField.DATE_TIME));
}
}

Date picker
Use a date picker to permit BlackBerry® device users to select a date and time.

22

Date picker
Date picker

Quick Reference Guide

Class
Supported since
Example

DateTimePicker
BlackBerry® Java® SDK 5.0

For more information about date and time pickers, see the UI Guidelines.

Code sample: Creating a date picker
import
import
import
import
import
import
import

net.rim.device.api.ui.*;
net.rim.device.api.ui.picker.*;
net.rim.device.api.ui.component.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.database.*;
net.rim.device.api.io.*;
java.util.*;

public class DatePickerDemo extends UiApplication
{
public static void main(String[] args)
{
DatePickerDemo theApp = new DatePickerDemo();
theApp.enterEventDispatcher();
}

}

public DatePickerDemo()
{
pushScreen(new DatePickerDemoScreen());
}

class DatePickerDemoScreen extends MainScreen
{
public DatePickerDemoScreen()
{
setTitle("Date picker demo");
add(new RichTextField("Trying Date Picker"));

23
File picker

Quick Reference Guide

}

}

UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
DateTimePicker datePicker = DateTimePicker.createInstance();
datePicker.doModal();
}
});

File picker
Use a file picker to permit BlackBerry® device users to select a file from the BlackBerry device.
Class
Supported since
Example

FilePicker
BlackBerry® Java® SDK 5.0

For more information about file pickers, see the UI Guidelines.

Code sample: Creating a file picker
import
import
import
import
import

net.rim.device.api.ui.*;
net.rim.device.api.ui.picker.*;
net.rim.device.api.ui.component.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.io.*;

public class FilePickerDemo extends UiApplication
{
public static void main(String[] args)
{

24
Spin box

Quick Reference Guide

}

}

FilePickerDemo theApp = new FilePickerDemo();
theApp.enterEventDispatcher();

public FilePickerDemo()
{
pushScreen(new FilePickerDemoScreen());
}

class FilePickerDemoScreen extends MainScreen
{
public FilePickerDemoScreen()
{
setTitle("File Picker Demo");
add(new LabelField("Trying file picker"));

}

}

UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
FilePicker fp = FilePicker.getInstance();
FilePickListener fileListener = new FilePickListener();
fp.setListener(fileListener);
fp.show();
}
});

class FilePickListener implements FilePicker.Listener
{
public void selectionDone(String str)
{
Dialog.alert("You selected " + str);
}
}

Spin box
Use a spin box for items that BlackBerry® device users can select from an ordered list.
Class
Supported since

TextSpinBoxField
BlackBerry® Java® SDK 5.0

25
Quick Reference Guide

Example

For more information about spin boxes, see the UI Guidelines.

Code sample: Creating a spin box
import
import
import
import
import

net.rim.device.api.ui.UiApplication;
net.rim.device.api.ui.container.MainScreen;
net.rim.device.api.ui.container.SpinBoxFieldManager;
net.rim.device.api.ui.component.Dialog;
net.rim.device.api.ui.component.TextSpinBoxField;

public class SpinBoxDemo extends UiApplication
{
public static void main(String[] args)
{
SpinBoxDemo theApp = new SpinBoxDemo();
theApp.enterEventDispatcher();
}

}

public SpinBoxDemo()
{
pushScreen(new SpinBoxDemoScreen());
}

class SpinBoxDemoScreen extends MainScreen
{
TextSpinBoxField spinBoxDays;
TextSpinBoxField spinBoxMonths;
SpinBoxFieldManager spinBoxMgr;
public SpinBoxDemoScreen()
{
setTitle("Spin Box Demo");
final String[] DAYS
=
{"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
final String[] MONTHS =

26

Spin box
Location picker

Quick Reference Guide

{"January","February","March","April","May","June","July","August","September",
"October","November","December"};
spinBoxMgr = new SpinBoxFieldManager();
spinBoxMgr.setVisibleRows(3);
spinBoxDays
= new TextSpinBoxField(DAYS);
spinBoxMonths = new TextSpinBoxField(MONTHS);

}

}

spinBoxMgr.add(spinBoxDays);
spinBoxMgr.add(spinBoxMonths);
add(spinBoxMgr);

public void close()
{
Dialog.alert("You selected " +
(String)spinBoxDays.get(spinBoxDays.getSelectedIndex()) + " and " +
(String)spinBoxMonths.get(spinBoxMonths.getSelectedIndex()));
super.close();
}

Location picker
Use a location picker to permit BlackBerry® device users to select a location from a list of options that you define.
Class
Supported since
Example

LocationPicker
BlackBerry® Java® SDK 5.0

For more information about location pickers, see the UI Guidelines.

Code sample: Creating a location picker

27
Quick Reference Guide

import
import
import
import
import
import
import
import

Location picker

net.rim.blackberry.api.invoke.*;
net.rim.device.api.gps.*;
net.rim.device.api.lbs.picker.*;
net.rim.device.api.ui.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.ui.component.*;
javax.microedition.location.*;
java.util.Enumeration;

public class LocationPickerApp extends UiApplication
{
public static void main(String[] args)
{
LocationPickerApp app = new LocationPickerApp();
app.enterEventDispatcher();
}
public LocationPickerApp()
{
pushScreen(new LocationPickerAppScreen());
}
static class LocationPickerAppScreen extends MainScreen implements
LocationPicker.Listener, FieldChangeListener
{
private LocationPicker _locationPicker;
private ButtonField _buttonField;
private LabelField _nameLabel;
private LabelField _descLabel;
private LabelField _coordLabel;
private boolean _mapsPresent = false;
LocationPickerAppScreen()
{
setTitle("Location Picker Demo");
_buttonField = new ButtonField("Choose location",
ButtonField.NEVER_DIRTY);
_buttonField.setChangeListener(this);
add(_buttonField);
_nameLabel = new LabelField();
_descLabel = new LabelField();
_coordLabel = new LabelField();
add(_nameLabel);
add(_descLabel);
add(_coordLabel);
Landmark[] landmarks = new Landmark[] {new Landmark("New York", "Times
Square", new QualifiedCoordinates(40.757682, -73.98571, Float.NaN, Float.NaN,
Float.NaN), null), new Landmark("New York","Central Park", new
QualifiedCoordinates(40.783333, -73.966667, Float.NaN, Float.NaN, Float.NaN),

28
Location picker

Quick Reference Guide

null)};
int arraySize = 7;
LocationPicker.Picker mapsLocationPicker = null;
try
{
mapsLocationPicker = MapsLocationPicker.getInstance();
_mapsPresent = true;
}
catch(IllegalStateException ise)
{
arraySize--;
}
boolean gpsSupported = GPSInfo.getGPSDataSource() != null;
if(!gpsSupported)
{
arraySize--;
}
LocationPicker.Picker[] locationPickersArray = new
LocationPicker.Picker[arraySize];
locationPickersArray[--arraySize] =
EnterLocationPicker.getInstance(false);
locationPickersArray[--arraySize] =
SuggestedLocationPicker.getInstance("App specific...", landmarks );
locationPickersArray[--arraySize] = RecentLocationPicker.getInstance();
locationPickersArray[--arraySize] =
ContactsLocationPicker.getInstance(false);
locationPickersArray[--arraySize] = GeotaggedPhotoPicker.getInstance();
if(_mapsPresent)
{
locationPickersArray[--arraySize] = mapsLocationPicker;
}
if(gpsSupported)
{
locationPickersArray[--arraySize] = GPSLocationPicker.getInstance();
}
_locationPicker = LocationPicker.getInstance(locationPickersArray);
Enumeration globalPickers = _locationPicker.getGlobalLocationPickers();
while (globalPickers.hasMoreElements())
{
_locationPicker.addLocationPicker((LocationPicker
.Picker)globalPickers.nextElement());
}

29
Tree field

Quick Reference Guide

}

_locationPicker.setListener(this);

public void locationPicked (LocationPicker.Picker picker, Landmark location)
{
if(location != null)
{
_nameLabel.setText("Location name: " + location.getName());
_descLabel.setText("Description: " + location.getDescription());
QualifiedCoordinates coordinates =
location.getQualifiedCoordinates();
if(coordinates != null)
{
StringBuffer buff = new StringBuffer("Coordinates: ");
double latitude = coordinates.getLatitude();
double longitude = coordinates.getLongitude();
buff.append("Latitude:");
buff.append(latitude);
buff.append(", Longitude: ");
buff.append(longitude);
_coordLabel.setText(buff.toString());
}

}

}

}

}

if(_mapsPresent)
{
Landmark[] landmark = {location};
MapsArguments mapsArgs = new MapsArguments(landmark);
Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, mapsArgs);
}

public void fieldChanged(Field field, int context)
{
if(field == _buttonField)
{
_locationPicker.show();
}
}

Tree field
Use a tree field to display components in a hierarchical structure. You can configure tree field nodes to be collapsible.
Class

30

TreeField
Tree field

Quick Reference Guide

Supported since
Example

BlackBerry® Java® SDK 3.7

For more information about tree fields, see the UI Guidelines.

Code sample: Creating a tree field
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
public class TreefieldDemo extends UiApplication
{
public static void main(String[] args)
{
TreefieldDemo theApp = new TreefieldDemo();
theApp.enterEventDispatcher();
}

}

public TreefieldDemo()
{
pushScreen(new TreefieldDemoScreen());
}

class TreefieldDemoScreen extends MainScreen
{
public TreefieldDemoScreen()
{
setTitle("Tree Field Demo");
String
String
String
String

fieldOne = new String("Parent folder 1");
fieldTwo = new String("Parent folder 2");
fieldThree = new String("Sub-folder 1");
fieldFour = new String("Sub-folder 2");

TreeCallback myCallback = new TreeCallback();

31
Tree field

Quick Reference Guide

TreeField myTree = new TreeField(myCallback, Field.FOCUSABLE);
int
int
int
int

node1
node2
node3
node4

=
=
=
=

myTree.addChildNode(0, fieldOne);
myTree.addChildNode(0, fieldTwo);
myTree.addChildNode(node2, fieldThree);
myTree.addChildNode(node3, fieldFour);

myTree.setExpanded(node4, false);
add(myTree);
}

}

32

private class TreeCallback implements TreeFieldCallback
{
public void drawTreeItem(TreeField _tree, Graphics g, int node, int y, int
width, int indent)
{
String text = (String)_tree.getCookie(node);
g.drawText(text, indent, y);
}
}
Quick Reference Guide

Buttons

Buttons

3

Radio button
Use radio buttons for options that BlackBerry® device users can select from a set of choices. Users can select only one option in
each set of radio buttons.
Class
Supported since
Example

RadioButtonGroup, RadioButtonField
BlackBerry® Java® SDK 3.6

For more information about radio buttons, see the UI Guidelines.

Code sample: Creating radio buttons
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
public class RadioButtonDemo extends UiApplication
{
public static void main(String[] args)
{
RadioButtonDemo theApp = new RadioButtonDemo();
theApp.enterEventDispatcher();
}
public RadioButtonDemo()
{
pushScreen(new RadioButtonDemoScreen());
}

}
class RadioButtonDemoScreen extends MainScreen

33
Toolbar

Quick Reference Guide

{

}

public RadioButtonDemoScreen()
{
setTitle("Radio Button Demo");
RadioButtonGroup rbg = new RadioButtonGroup();
add(new RadioButtonField("Option 1",rbg,true));
add(new RadioButtonField("Option 2",rbg,false));
}

Toolbar
Toolbars provide users with a quick and easy way to access frequent actions for an application or screen. Each toolbar consists
of a set of icons that appears along the bottom of the screen.
Only smartphones in the BlackBerry® Storm™ Series and BlackBerry® Torch™ 9800 smartphones use toolbars.
Package
Supported since
Example

Toolbar
BlackBerry® Java® SDK 6.0

For more information about toolbars, see the UI Guidelines.

Code sample: Creating a toolbar
import
import
import
import
import
import
import
import

34

net.rim.device.api.ui.*;
net.rim.device.api.ui.component.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.ui.image.*;
net.rim.device.api.ui.toolbar.*;
net.rim.device.api.util.*;
net.rim.device.api.system.*;
net.rim.device.api.command.*;
Toolbar

Quick Reference Guide

public class ToolbarDemo extends UiApplication
{
public static void main(String[] args)
{

}

ToolbarDemo theApp = new ToolbarDemo();
theApp.enterEventDispatcher();

public ToolbarDemo()
{
// Push a screen onto the UI stack for rendering.
pushScreen(new ToolbarDemoScreen());
}
private final static class ToolbarDemoScreen extends MainScreen
{
public ToolbarDemoScreen()
{
if (ToolbarManager.isToolbarSupported())
{
setTitle("Toolbar Demo");
ToolbarManager manager = new ToolbarManager();
setToolbar(manager);
try
{

Bitmap myBitmap = Bitmap.getBitmapResource("myImg.jpg");
Image myImage = ImageFactory.createImage(myBitmap);

/*
* To create more buttons, Repeat the following lines
* up until manager.add()
*/
ToolbarButtonField button1 = new ToolbarButtonField(myImage, new
StringProvider("butn1"));
button1.setCommandContext(new Object()
{
public String toString()
{
return "Button1";
}
});

context)

button1.setCommand(new Command(new CommandHandler()
{
public void execute(ReadOnlyCommandMetadata metadata, Object
{

context.toString());

Dialog.alert("Executing command for " +

35
Button

Quick Reference Guide

}

}));

manager.add(new ToolbarSpacer(0));
manager.add(button1);

}
catch (Exception e)
{
System.out.println(e.getMessage());
}

}
else
{

}

}

}

}

Dialog.alert("The Toolbar is not supported on this device.");

Button
Use a button to allow BlackBerry® device users to perform an action when they click the button.
Class
Supported since
Example

ButtonField
BlackBerry® Java® SDK 4.0

For more information about buttons, see the UI Guidelines.
For information about advanced buttons , read the knowledge base article at about how to implement advanced buttons, fields
and managers .

Code sample: Creating a button

36
Quick Reference Guide

Button

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
public class ButtonFieldDemo extends UiApplication
{
public static void main(String[] args)
{
ButtonFieldDemo theApp = new ButtonFieldDemo();
theApp.enterEventDispatcher();
}

}

public ButtonFieldDemo()
{
pushScreen(new ButtonFieldDemoScreen());
}

class ButtonFieldDemoScreen extends MainScreen
{
public ButtonFieldDemoScreen()
{
setTitle("Button Field Demo");
ButtonField addButton = new ButtonField("Add");
ButtonField delButton = new ButtonField("Delete");

}

}

add(addButton);
add(delButton);

37
Activity fields

Quick Reference Guide

Activity fields

4

Gauge field
Use a gauge field to create a horizontal bar to display a progress indicator or a numeric value.
Class
Supported since
Example

GaugeField
BlackBerry® Java® SDK 4.2

For more information about gauge fields, see the UI Guidelines.

Code sample: Creating a gauge field
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.GaugeField;
import net.rim.device.api.ui.container.*;
public class GaugeFieldDemo extends UiApplication
{
public static void main(String[] args)
{
GaugeFieldDemo theApp = new GaugeFieldDemo();
theApp.enterEventDispatcher();
}

}

public GaugeFieldDemo()
{
pushScreen(new GaugeFieldDemoScreen());
}

class GaugeFieldDemoScreen extends MainScreen

38
Activity indicator

Quick Reference Guide

{

public GaugeFieldDemoScreen ()
{
setTitle("Gauge Field Demo");
GaugeField percentGauge = new GaugeField("Percent: ", 1, 100, 29,
GaugeField.PERCENT);
add(percentGauge);

}

}

Activity indicator
Use an activity indicator to display a visual cue that a task whose duration is unknown is progressing. If you can calculate how
long the task will take, consider using a progress indicator instead.
Class
Supported since
Example

ActivityImageField
BlackBerry® Java® SDK 6.0

For more information about activity indicators, see the UI Guidelines.

Code sample: Creating an activity indicator
import
import
import
import

net.rim.device.api.system.Bitmap;
net.rim.device.api.ui.*;
net.rim.device.api.ui.component.progressindicator.*;
net.rim.device.api.ui.container.*;

public class ActivityIndicatorDemo extends UiApplication
{
public static void main(String[] args)
{
ActivityIndicatorDemo theApp = new ActivityIndicatorDemo();

39
Progress indicator

Quick Reference Guide

}

}

theApp.enterEventDispatcher();

public ActivityIndicatorDemo()
{
pushScreen(new ActivityIndicatorDemoScreen());
}

class ActivityIndicatorDemoScreen extends MainScreen
{
ActivityIndicatorView view = new ActivityIndicatorView(Field.USE_ALL_WIDTH);
ActivityIndicatorModel model = new ActivityIndicatorModel();
ActivityIndicatorController controller = new ActivityIndicatorController();
public ActivityIndicatorDemoScreen ()
{
setTitle("Activity Indicator Demo");
view.setController(controller);
view.setModel(model);
controller.setModel(model);
controller.setView(view);
model.setController(controller);
Bitmap bitmap = Bitmap.getBitmapResource("spinner.png");
view.createActivityImageField(bitmap, 5, Field.FIELD_HCENTER);

}

}

add(view);

Progress indicator
Use a progress indicator to display a visual cue that a task whose duration can be measured is progressing. If you cannot calculate
how long the task will take, consider using an activity indicator instead.
Class
Supported since

40

ProgressBarField
BlackBerry® Java® SDK 6.0
Quick Reference Guide

Progress indicator

Example

For more information about progress indicators, see the UI Guidelines.

Code sample: Creating a progress indicator
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.component.progressindicator.*;
public class ProgressIndicatorDemo extends UiApplication
{
public static void main(String[] args)
{
ProgressIndicatorDemo theApp = new ProgressIndicatorDemo();
theApp.enterEventDispatcher();
}

}

public ProgressIndicatorDemo()
{
pushScreen(new ProgressIndicatorDemoScreen());
}

class ProgressIndicatorDemoScreen extends MainScreen
{
ProgressIndicatorView view = new ProgressIndicatorView(0);
ProgressIndicatorModel model = new ProgressIndicatorModel(0, 100, 0);
ProgressIndicatorController controller = new ProgressIndicatorController();
ProgressThread _progressThread;
public ProgressIndicatorDemoScreen()
{
setTitle("Progress Indicator Demo");
model.setController(controller);
view.setModel(model);

41
Quick Reference Guide

view.setController(controller);
controller.setModel(model);
controller.setView(view);
view.setLabel("Percent completion");
view.createProgressBar(Field.FIELD_HCENTER);
add(view);

}

}

42

_progressThread = new ProgressThread();
_progressThread.start();

// A thread that simulates the processing of data
class ProgressThread extends Thread
{
public void run()
{
for(int i = 0; i <= 100; ++i)
{
ProgressIndicatorDemoScreen.this.model.setValue(i);
try
{
// Simulate work
sleep(250);
}
catch(InterruptedException ie)
{
}
}
}
}

Progress indicator
Picture fields

Quick Reference Guide

Picture fields

5

Bitmap field
Use a bitmap field to display bitmap images that a BlackBerry® device user can view.
Class
Supported since
Example

BitmapField
BlackBerry® Java® SDK 3.7

For more information about bitmap fields, see the Multimedia Development Guide.

Code sample: Creating a bitmap field
import
import
import
import

net.rim.device.api.system.Bitmap;
net.rim.device.api.ui.UiApplication;
net.rim.device.api.ui.component.BitmapField;
net.rim.device.api.ui.container.MainScreen;

public class BitmapFieldDemo extends UiApplication
{
public static void main(String[] args)
{
BitmapFieldDemo theApp = new BitmapFieldDemo();
theApp.enterEventDispatcher();
}

}

public BitmapFieldDemo()
{
pushScreen(new BitmapFieldDemoScreen());
}

43
Picture scroll field

Quick Reference Guide

class BitmapFieldDemoScreen extends MainScreen
{

}

public BitmapFieldDemoScreen ()
{
setTitle("Bitmap Field Demo");
Bitmap bitmapImage = Bitmap.getBitmapResource("BlackBerry_Data_Stream.jpg");
BitmapField fieldDemo = new BitmapField(bitmapImage);
add(fieldDemo);
}

Picture scroll field
Use a picture scroll field to display a row of images that BlackBerry® device the user can scroll through horizontally.
Class
Supported since
Example

PictureScrollField
BlackBerry® Java® SDK 5.0

For more information about picture scroll fields, see the UI Guidelines.

Code sample: Creating a picture scroll field
import
import
import
import
import
import

net.rim.device.api.system.*;
net.rim.device.api.ui.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.ui.decor.*;
net.rim.device.api.ui.extension.component.*;
net.rim.device.api.ui.extension.component.PictureScrollField.*;

public class PictureScrollFieldDemo extends UiApplication
{
public static void main(String[] args)

44
Quick Reference Guide

{
}

}

Picture scroll field

PictureScrollFieldDemo theApp = new PictureScrollFieldDemo();
theApp.enterEventDispatcher();

public PictureScrollFieldDemo()
{
pushScreen(new PictureScrollFieldDemoScreen());
}

class PictureScrollFieldDemoScreen extends MainScreen
{
public PictureScrollFieldDemoScreen()
{
setTitle("Picture Scroll Field Demo");
Bitmap[] images = new Bitmap[3];
String[] labels = new String[3];
String[] tooltips = new String[3];
images[0] = Bitmap.getBitmapResource("image1.jpg");
labels[0] = "Label for image 1";
tooltips[0] = "Tooltip for image 1";
images[1] = Bitmap.getBitmapResource("image2.jpg");
labels[1] = "Label for image 2";
tooltips[1] = "Tooltip for image 2";
images[2] = Bitmap.getBitmapResource("image3.jpg");
labels[2] = "Label for image 2";
tooltips[2] = "Tooltip for image 2";
ScrollEntry[] entries = new ScrollEntry[3];
for (int i = 0; i < entries.length; i++)
{
entries[i] = new ScrollEntry(images[i], labels[i],tooltips[i]);
}
PictureScrollField pictureScrollField = new PictureScrollField(150, 100);
pictureScrollField.setData(entries, 0);
pictureScrollField.setHighlightStyle(HighlightStyle
.ILLUMINATE_WITH_SHRINK_LENS);
pictureScrollField.setHighlightBorderColor(Color.BLUE);
pictureScrollField.setBackground(BackgroundFactory
.createSolidTransparentBackground(Color.BLACK, 150));
pictureScrollField.setLabelsVisible(true);

45
Quick Reference Guide

}

46

}

add(pictureScrollField);

Picture scroll field
Lists and tables

Quick Reference Guide

Lists and tables

6

Simple list
Use a simple list to display a list of items as text.
Class
Supported since
Example

SimpleList
BlackBerry® Java® SDK 6.0

For more information about simple lists, see the UI Guidelines.

Code sample: Creating a simple list
import
import
import
import

net.rim.device.api.ui.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.ui.component.*;
net.rim.device.api.ui.component.table.*;

public class SimpleListDemo extends UiApplication
{
public static void main(String[] args)
{
SimpleListDemo theApp = new SimpleListDemo();
theApp.enterEventDispatcher();
}
public SimpleListDemo()
{
pushScreen(new SimpleListScreen());
}
private static final class SimpleListScreen extends MainScreen

47
Rich list

Quick Reference Guide

{

public SimpleListScreen()
{
super(Manager.NO_VERTICAL_SCROLL);
setTitle("Simple List Demo");
add(new LabelField("My list", LabelField.FIELD_HCENTER));
add(new SeparatorField());
Manager mainManager = getMainManager();
SimpleList listField = new SimpleList(mainManager);
listField.add("Item 1");
listField.add("Item 2");
listField.add("Item 3");

}

}

}

Rich list
Use a rich list to display a list of items that contain an optional image on the left, a list of labels beside the image and an optional
description below the image and labels.
Class
Supported since
Example

48

RichList
BlackBerry® Java® SDK 6.0
Rich list

Quick Reference Guide

For more information about rich lists, see the UI Guidelines.

Code sample: Creating a rich list
import
import
import
import
import

net.rim.device.api.ui.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.ui.component.*;
net.rim.device.api.system.*;
net.rim.device.api.ui.component.table.*;

public class RichListDemo extends UiApplication
{
public static void main(String[] args)
{
RichListDemo theApp = new RichListDemo();
theApp.enterEventDispatcher();
}
public RichListDemo()
{
pushScreen(new RichListScreen());
}
private static class RichListScreen extends MainScreen
{
public RichListScreen()
{
super(Manager.NO_VERTICAL_SCROLL);
setTitle("Rich List Demo");
add(new LabelField("BlackBerry Devices", LabelField.FIELD_HCENTER));
add(new SeparatorField());
Manager mainManager = getMainManager();
RichList list = new RichList(mainManager, true, 2, 1);
Bitmap bitmap1 = Bitmap.getBitmapResource("9500.png");
Bitmap bitmap2 = Bitmap.getBitmapResource("9000.png");
list.add(new
9500", "Description
list.add(new
9000", "Description
}

}

Object[] {bitmap1, "Device 1", "BlackBerry Smartphone
of Device 1."});
Object[] {bitmap2, "Device 2", "BlackBerry Smartphome
of Device 2."});

}

49
Table

Quick Reference Guide

Table
Use a table model to store and display data in a table.
Class
Supported since
Example

TableModel
BlackBerry® Java® SDK 6.0

For more information about tables, including sorted tables that group items under headers, see the UI Guidelines.

Code sample: Creating a table
import
import
import
import
import
import

net.rim.device.api.ui.*;
net.rim.device.api.ui.container.*;
net.rim.device.api.ui.component.*;
net.rim.device.api.ui.decor.*;
net.rim.device.api.system.*;
net.rim.device.api.ui.component.table.*;

public class TableModelDemo extends UiApplication
{
public static void main(String[] args)
{
UiApplication app = new TableModelDemo();
app.enterEventDispatcher();
}

}

public TableModelDemo()
{
pushScreen(new TableModelDemoScreen());
}

class TableModelDemoScreen extends MainScreen

50
Table

Quick Reference Guide

{

private
private
private
private

RegionStyles _style;
TableModel _tableModel;
TableView _tableView;
TableController _controller;

private static final int NUM_ROWS = 4;
private static final int NUM_COLUMNS = 3;
private static final int IMAGE_WIDTH = 50;
private String modelNum[] = {"8100", "8220", "8300", "8330", "8700g", "8800",
"9000", "9500"};
private String modelName[] = {"Pearl", "Pearl Flip", "Curve", "Curve", "8700g",
"8800", "Bold", "Storm"};
private String osVersion[] = {"4.3", "4.6", "4.5", "4.6", "4.1", "4.2.1", "4.6",
"4.7"};
private String deviceYear[] = {"2006", "2008", "2008", "2008", "2005","2007",
"2008", "2008"};
private String deviceInterface[] = {"keyboard/trackball", "keyboard/trackball",
"keyboard/trackball",
"keyboard/trackball", "keyboard", "keyboard/trackball",
"keyboard/trackball", "keyboard/trackball/touch"};
public TableModelDemoScreen()
{
super(Manager.NO_VERTICAL_SCROLL);
setTitle("Table Model Demo");
_style = new RegionStyles(BorderFactory.createSimpleBorder(new XYEdges(1, 1,
1, 1), Border.STYLE_SOLID), null,
null, null, RegionStyles.ALIGN_LEFT,
RegionStyles.ALIGN_MIDDLE);
_tableModel = new TableModel();
_tableView = new TableView(_tableModel);
_tableView.setDataTemplateFocus(BackgroundFactory
.createLinearGradientBackground(Color.WHITE, Color.WHITE,
Color.BLUEVIOLET, Color.BLUEVIOLET));
_controller = new TableController(_tableModel, _tableView);
_tableView.setController(_controller);
setStyle();
add(new LabelField("BlackBerry Devices", LabelField.FIELD_HCENTER));
add(new SeparatorField());
add(_tableView);
for(int i = 0; i < modelName.length; i++)
{
String imageFileName = modelNum[i] + ".png";

51
Table

Quick Reference Guide

Bitmap bitmap = Bitmap.getBitmapResource(imageFileName);
StringBuffer displayName = new StringBuffer(modelNum[i]);
if(!modelName[i].equals(modelNum[i]))
{
displayName.append(" (");
displayName.append(modelName[i]);
displayName.append(")");
}
_tableModel.addRow(new Object[] {bitmap, displayName.toString(),
osVersion[i], deviceYear[i], deviceInterface[i]});
}
}
public void setStyle()
{
DataTemplate dataTemplate = new DataTemplate(_tableView, NUM_ROWS,
NUM_COLUMNS)
{
public Field[] getDataFields(int modelRowIndex)
{
Object[] data = (Object[]) _tableModel.getRow(modelRowIndex);
Field[] fields = new Field[data.length];
for(int i = 0; i < data.length; i++)
{
if(data[i] instanceof Bitmap)
{
fields[i] = new BitmapField((Bitmap) data[i]);
}
else if(data[i] instanceof String)
{
fields[i] = new LabelField(data[i], Field.FOCUSABLE);
}
else
{
fields[i] = (Field) data[i];
}
}

};

}

return fields;

dataTemplate.createRegion(new XYRect(0, 1, 1, 3), _style);
dataTemplate.createRegion(new XYRect(0, 0, 2, 1), _style);
dataTemplate.setRowProperties(0, new
TemplateRowProperties(Font.getDefault().getHeight() +
(_style.getBorder() == null ? 0 : _style.getBorder().getTop() +

52
Quick Reference Guide

Table

_style.getBorder().getBottom()) +
(_style.getMargin() == null ? 0 : _style.getMargin().top +
_style.getMargin().bottom)));
for(int i = 1; i < NUM_ROWS; i++)
{
dataTemplate.createRegion(new XYRect(1, i, 1, 1), _style);
dataTemplate.setRowProperties(i, new
TemplateRowProperties(Font.getDefault().getHeight() +
(_style.getBorder() == null ? 0 : _style.getBorder().getTop() +
_style.getBorder().getBottom()) +
(_style.getMargin() == null ? 0 : _style.getMargin().top +
_style.getMargin().bottom)));
}
int width = IMAGE_WIDTH + (_style.getBorder() == null ? 0 :
_style.getBorder().getTop() + _style.getBorder().getBottom()) +
(_style.getMargin() == null ? 0 : _style.getMargin().top +
_style.getMargin().bottom);
dataTemplate.setColumnProperties(0, new TemplateColumnProperties(width));
dataTemplate.setColumnProperties(1, new
TemplateColumnProperties(Display.getWidth() - width));

}

}

_tableView.setDataTemplate(dataTemplate);
dataTemplate.useFixedHeight(true);

53
Other components

Quick Reference Guide

Other components
Browser field
Use a browser field to display web content in a BlackBerry® device application.
Class
Supported since
Example

BrowserField
BlackBerry® Java® SDK 5.0

For more information about browser fields, see the UI & Navigation Development Guide.

Code sample: Creating a browser field
import net.rim.device.api.browser.field2.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.container.*;
public class BrowserFieldDemo extends UiApplication
{
public static void main(String[] args)
{
BrowserFieldDemo app = new BrowserFieldDemo();
app.enterEventDispatcher();
}

}

public BrowserFieldDemo()
{
pushScreen(new BrowserFieldDemoScreen());
}

class BrowserFieldDemoScreen extends MainScreen

54

7
Title bar

Quick Reference Guide

{

}

public BrowserFieldDemoScreen()
{
BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig();
myBrowserFieldConfig.setProperty(BrowserFieldConfig
.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER);
BrowserField browserField = new BrowserField(myBrowserFieldConfig);

}

add(browserField);
browserField.requestContent("http://www.blackberry.com");

Title bar
Use a title bar to provide BlackBerry® device users with information at the top of your application. Most title bars contain only
a title, but title bars can display the following items:
•
•
•
•
•

application icon, descriptive title, and time
application notifications, such as a new message indicator
wireless connection indicators, including the wireless coverage level, network coverage, GPS indicator, Bluetooth® indicator,
and Wi-Fi® connection indicator
battery power indicator
active call indicator
Class
Supported since
Example

StandardTitleBar
BlackBerry® Java® SDK 6.0

For more information about title bars, see the UI Guidelines.

Code sample: Creating a title bar

55
Map field

Quick Reference Guide

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
public class TitleBarDemo extends UiApplication
{
public static void main(String[] args)
{
TitleBarDemo theApp = new TitleBarDemo();
theApp.enterEventDispatcher();
}
public TitleBarDemo()
{
pushScreen(new TitleBarDemoScreen());
}
}
class TitleBarDemoScreen extends MainScreen
{
public TitleBarDemoScreen()
{
StandardTitleBar myTitleBar = new StandardTitleBar()
.addIcon("my_logo.png")
.addTitle("Title Bar Demo")
.addClock()
.addNotifications()
.addSignalIndicator();
myTitleBar.setPropertyValue(StandardTitleBar.PROPERTY_BATTERY_VISIBILITY,
StandardTitleBar.BATTERY_VISIBLE_LOW_OR_CHARGING);
setTitleBar(myTitleBar);
}
}

Map field
Use a map field to display a map in a BlackBerry® device application.
Class
Supported since

56

MapField
BlackBerry® Java® SDK 6.0
Quick Reference Guide

Map field

Example

For more information about map fields and location-based services, see the Location-Based Services Development Guide.

Code sample: Creating a map field
import
import
import
import

net.rim.device.api.lbs.maps.model.*;
net.rim.device.api.lbs.maps.ui.*;
net.rim.device.api.ui.*;
net.rim.device.api.ui.container.*;

public class MapFieldDemo extends UiApplication
{
public static void main(String[] args)
{
MapFieldDemo theApp = new MapFieldDemo();
theApp.enterEventDispatcher();
}
public MapFieldDemo()
{
pushScreen(new MapScreen());
}
}
class MapScreen extends FullScreen
{
public MapScreen()
{
super( FullScreen.DEFAULT_CLOSE | FullScreen.DEFAULT_MENU );
MapField map = new MapField();
MapAction action = map.getAction();
action.setCentreAndZoom(new MapPoint(43.46518, -80.52237), 3);
add(map);
}
}

57
Quick Reference Guide

Provide feedback
To provide feedback on this deliverable, visit www.blackberry.com/docsfeedback.

58

Provide feedback

8
Document revision history

Quick Reference Guide

Document revision history
Date

Description

29 October 2010

9

Added the following topics:
•
•
•
•
•
•

4 October 2010

Added the following topics:
•

24 August 2010

Map field

Added the following topic:
•

3 August 2010

AutoText edit field
Active AutoText edit field
Gauge field
Bitmap field
Button
Table

Toolbar

Initial version.

59
Quick Reference Guide

Legal notice

Legal notice

10

©2010 Research In Motion Limited. All rights reserved. BlackBerry®, RIM®, Research In Motion®, and related trademarks, names,
and logos are the property of Research In Motion Limited and are registered and/or used in the U.S. and countries around the
world.
Java is a trademark of Oracle America, Inc. Bluetooth is a trademark of Bluetooth SIG. Wi-Fi is a trademark of the Wi-Fi Alliance.
All other trademarks are the property of their respective owners.
This documentation including all documentation incorporated by reference herein such as documentation provided or made
available at www.blackberry.com/go/docs is provided or made accessible "AS IS" and "AS AVAILABLE" and without condition,
endorsement, guarantee, representation, or warranty of any kind by Research In Motion Limited and its affiliated companies
("RIM") and RIM assumes no responsibility for any typographical, technical, or other inaccuracies, errors, or omissions in this
documentation. In order to protect RIM proprietary and confidential information and/or trade secrets, this documentation may
describe some aspects of RIM technology in generalized terms. RIM reserves the right to periodically change information that
is contained in this documentation; however, RIM makes no commitment to provide any such changes, updates, enhancements,
or other additions to this documentation to you in a timely manner or at all.
This documentation might contain references to third-party sources of information, hardware or software, products or services
including components and content such as content protected by copyright and/or third-party web sites (collectively the "Third
Party Products and Services"). RIM does not control, and is not responsible for, any Third Party Products and Services including,
without limitation the content, accuracy, copyright compliance, compatibility, performance, trustworthiness, legality, decency,
links, or any other aspect of Third Party Products and Services. The inclusion of a reference to Third Party Products and Services
in this documentation does not imply endorsement by RIM of the Third Party Products and Services or the third party in any way.
EXCEPT TO THE EXTENT SPECIFICALLY PROHIBITED BY APPLICABLE LAW IN YOUR JURISDICTION, ALL CONDITIONS,
ENDORSEMENTS, GUARANTEES, REPRESENTATIONS, OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
WITHOUT LIMITATION, ANY CONDITIONS, ENDORSEMENTS, GUARANTEES, REPRESENTATIONS OR WARRANTIES OF
DURABILITY, FITNESS FOR A PARTICULAR PURPOSE OR USE, MERCHANTABILITY, MERCHANTABLE QUALITY, NONINFRINGEMENT, SATISFACTORY QUALITY, OR TITLE, OR ARISING FROM A STATUTE OR CUSTOM OR A COURSE OF DEALING
OR USAGE OF TRADE, OR RELATED TO THE DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NON-PERFORMANCE
OF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCED HEREIN, ARE
HEREBY EXCLUDED. YOU MAY ALSO HAVE OTHER RIGHTS THAT VARY BY STATE OR PROVINCE. SOME JURISDICTIONS
MAY NOT ALLOW THE EXCLUSION OR LIMITATION OF IMPLIED WARRANTIES AND CONDITIONS. TO THE EXTENT
PERMITTED BY LAW, ANY IMPLIED WARRANTIES OR CONDITIONS RELATING TO THE DOCUMENTATION TO THE EXTENT
THEY CANNOT BE EXCLUDED AS SET OUT ABOVE, BUT CAN BE LIMITED, ARE HEREBY LIMITED TO NINETY (90) DAYS FROM
THE DATE YOU FIRST ACQUIRED THE DOCUMENTATION OR THE ITEM THAT IS THE SUBJECT OF THE CLAIM.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, IN NO EVENT SHALL RIM BE LIABLE
FOR ANY TYPE OF DAMAGES RELATED TO THIS DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NONPERFORMANCE OF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCED
HEREIN INCLUDING WITHOUT LIMITATION ANY OF THE FOLLOWING DAMAGES: DIRECT, CONSEQUENTIAL, EXEMPLARY,
INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR AGGRAVATED DAMAGES, DAMAGES FOR LOSS OF PROFITS OR REVENUES,
FAILURE TO REALIZE ANY EXPECTED SAVINGS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF

60
Quick Reference Guide

Legal notice

BUSINESS OPPORTUNITY, OR CORRUPTION OR LOSS OF DATA, FAILURES TO TRANSMIT OR RECEIVE ANY DATA, PROBLEMS
ASSOCIATED WITH ANY APPLICATIONS USED IN CONJUNCTION WITH RIM PRODUCTS OR SERVICES, DOWNTIME COSTS,
LOSS OF THE USE OF RIM PRODUCTS OR SERVICES OR ANY PORTION THEREOF OR OF ANY AIRTIME SERVICES, COST OF
SUBSTITUTE GOODS, COSTS OF COVER, FACILITIES OR SERVICES, COST OF CAPITAL, OR OTHER SIMILAR PECUNIARY
LOSSES, WHETHER OR NOT SUCH DAMAGES WERE FORESEEN OR UNFORESEEN, AND EVEN IF RIM HAS BEEN ADVISED
OF THE POSSIBILITY OF SUCH DAMAGES.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, RIM SHALL HAVE NO OTHER
OBLIGATION, DUTY, OR LIABILITY WHATSOEVER IN CONTRACT, TORT, OR OTHERWISE TO YOU INCLUDING ANY LIABILITY
FOR NEGLIGENCE OR STRICT LIABILITY.
THE LIMITATIONS, EXCLUSIONS, AND DISCLAIMERS HEREIN SHALL APPLY: (A) IRRESPECTIVE OF THE NATURE OF THE
CAUSE OF ACTION, DEMAND, OR ACTION BY YOU INCLUDING BUT NOT LIMITED TO BREACH OF CONTRACT, NEGLIGENCE,
TORT, STRICT LIABILITY OR ANY OTHER LEGAL THEORY AND SHALL SURVIVE A FUNDAMENTAL BREACH OR BREACHES
OR THE FAILURE OF THE ESSENTIAL PURPOSE OF THIS AGREEMENT OR OF ANY REMEDY CONTAINED HEREIN; AND (B)
TO RIM AND ITS AFFILIATED COMPANIES, THEIR SUCCESSORS, ASSIGNS, AGENTS, SUPPLIERS (INCLUDING AIRTIME
SERVICE PROVIDERS), AUTHORIZED RIM DISTRIBUTORS (ALSO INCLUDING AIRTIME SERVICE PROVIDERS) AND THEIR
RESPECTIVE DIRECTORS, EMPLOYEES, AND INDEPENDENT CONTRACTORS.
IN ADDITION TO THE LIMITATIONS AND EXCLUSIONS SET OUT ABOVE, IN NO EVENT SHALL ANY DIRECTOR, EMPLOYEE,
AGENT, DISTRIBUTOR, SUPPLIER, INDEPENDENT CONTRACTOR OF RIM OR ANY AFFILIATES OF RIM HAVE ANY LIABILITY
ARISING FROM OR RELATED TO THE DOCUMENTATION.
Prior to subscribing for, installing, or using any Third Party Products and Services, it is your responsibility to ensure that your
airtime service provider has agreed to support all of their features. Some airtime service providers might not offer Internet browsing
functionality with a subscription to the BlackBerry® Internet Service. Check with your service provider for availability, roaming
arrangements, service plans and features. Installation or use of Third Party Products and Services with RIM's products and services
may require one or more patent, trademark, copyright, or other licenses in order to avoid infringement or violation of third party
rights. You are solely responsible for determining whether to use Third Party Products and Services and if any third party licenses
are required to do so. If required you are responsible for acquiring them. You should not install or use Third Party Products and
Services until all necessary licenses have been acquired. Any Third Party Products and Services that are provided with RIM's
products and services are provided as a convenience to you and are provided "AS IS" with no express or implied conditions,
endorsements, guarantees, representations, or warranties of any kind by RIM and RIM assumes no liability whatsoever, in relation
thereto. Your use of Third Party Products and Services shall be governed by and subject to you agreeing to the terms of separate
licenses and other agreements applicable thereto with third parties, except to the extent expressly covered by a license or other
agreement with RIM.
Certain features outlined in this documentation require a minimum version of BlackBerry® Enterprise Server, BlackBerry® Desktop
Software, and/or BlackBerry® Device Software.
The terms of use of any RIM product or service are set out in a separate license or other agreement with RIM applicable thereto.
NOTHING IN THIS DOCUMENTATION IS INTENDED TO SUPERSEDE ANY EXPRESS WRITTEN AGREEMENTS OR WARRANTIES
PROVIDED BY RIM FOR PORTIONS OF ANY RIM PRODUCT OR SERVICE OTHER THAN THIS DOCUMENTATION.

Research In Motion Limited
295 Phillip Street

61
Quick Reference Guide

Waterloo, ON N2L 3W8
Canada
Research In Motion UK Limited
Centrum House
36 Station Road
Egham, Surrey TW20 9LF
United Kingdom
Published in Canada

62

Legal notice

Más contenido relacionado

La actualidad más candente

Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guidecbosepandian
 
Black berry java_sdk-development_guide--1239696-0730090812-001-6.0-us
Black berry java_sdk-development_guide--1239696-0730090812-001-6.0-usBlack berry java_sdk-development_guide--1239696-0730090812-001-6.0-us
Black berry java_sdk-development_guide--1239696-0730090812-001-6.0-usReliance Jio USA, Inc.
 
Oracle® Fusion Middleware
Oracle® Fusion MiddlewareOracle® Fusion Middleware
Oracle® Fusion MiddlewareNgo Hung Long
 
Getting started-with-lotus-suspension-analysis
Getting started-with-lotus-suspension-analysisGetting started-with-lotus-suspension-analysis
Getting started-with-lotus-suspension-analysisAAKASHD4
 
Plesk 8.1 for Windows
Plesk 8.1 for WindowsPlesk 8.1 for Windows
Plesk 8.1 for Windowswebhostingguy
 
Coherence developer's guide
Coherence developer's guideCoherence developer's guide
Coherence developer's guidewangdun119
 
Plesk 8.1 for Linux/UNIX
Plesk 8.1 for Linux/UNIXPlesk 8.1 for Linux/UNIX
Plesk 8.1 for Linux/UNIXwebhostingguy
 

La actualidad más candente (11)

Informatica installation guide
Informatica installation guideInformatica installation guide
Informatica installation guide
 
Slackbook 2.0
Slackbook 2.0Slackbook 2.0
Slackbook 2.0
 
Black berry java_sdk-development_guide--1239696-0730090812-001-6.0-us
Black berry java_sdk-development_guide--1239696-0730090812-001-6.0-usBlack berry java_sdk-development_guide--1239696-0730090812-001-6.0-us
Black berry java_sdk-development_guide--1239696-0730090812-001-6.0-us
 
Oracle® Fusion Middleware
Oracle® Fusion MiddlewareOracle® Fusion Middleware
Oracle® Fusion Middleware
 
Bullet Physic Engine SDK
Bullet Physic Engine SDKBullet Physic Engine SDK
Bullet Physic Engine SDK
 
Getting started-with-lotus-suspension-analysis
Getting started-with-lotus-suspension-analysisGetting started-with-lotus-suspension-analysis
Getting started-with-lotus-suspension-analysis
 
Plesk 8.1 for Windows
Plesk 8.1 for WindowsPlesk 8.1 for Windows
Plesk 8.1 for Windows
 
Coherence developer's guide
Coherence developer's guideCoherence developer's guide
Coherence developer's guide
 
Plesk 8.1 for Linux/UNIX
Plesk 8.1 for Linux/UNIXPlesk 8.1 for Linux/UNIX
Plesk 8.1 for Linux/UNIX
 
baz
bazbaz
baz
 
baz
bazbaz
baz
 

Similar a Black berry java_sdk-quick_reference_guide--1203961-0730090020-001-6.0-us

Cisco Virtualization Experience Infrastructure
Cisco Virtualization Experience InfrastructureCisco Virtualization Experience Infrastructure
Cisco Virtualization Experience Infrastructureogrossma
 
Sybase SQL AnyWhere12
Sybase SQL AnyWhere12Sybase SQL AnyWhere12
Sybase SQL AnyWhere12Sunny U Okoro
 
Pkcs#1 V2.1 (Cryptography Standard) Included #2,#4
Pkcs#1 V2.1 (Cryptography Standard)   Included #2,#4Pkcs#1 V2.1 (Cryptography Standard)   Included #2,#4
Pkcs#1 V2.1 (Cryptography Standard) Included #2,#4gueste9eb7fb
 
Aplplication server instalacion
Aplplication server instalacionAplplication server instalacion
Aplplication server instalacionhkaczuba
 
Reference JBOSS Guide
Reference JBOSS GuideReference JBOSS Guide
Reference JBOSS GuideEllizz Lsc
 
Byron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design MasterByron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design Mastervdmchallenge
 
Product description vital qip next generation v7 2_en_feb09(1)
Product description vital qip next generation v7 2_en_feb09(1)Product description vital qip next generation v7 2_en_feb09(1)
Product description vital qip next generation v7 2_en_feb09(1)Roy Muy Golfo
 
RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...Videoguy
 
Syllabus Advanced Exploit Development 22-23 June 2013
Syllabus Advanced Exploit Development 22-23 June 2013Syllabus Advanced Exploit Development 22-23 June 2013
Syllabus Advanced Exploit Development 22-23 June 2013Dan H
 
Spring Reference
Spring ReferenceSpring Reference
Spring ReferenceSyed Shahul
 
O reilly cisco ios access lists
O reilly   cisco ios access listsO reilly   cisco ios access lists
O reilly cisco ios access listsleonardo miranda
 
Oreilly cisco ios access lists
Oreilly   cisco ios access listsOreilly   cisco ios access lists
Oreilly cisco ios access listsFadel Abbas
 
HPE VM Explorer 6 1 user manual
HPE VM Explorer 6 1 user manualHPE VM Explorer 6 1 user manual
HPE VM Explorer 6 1 user manualAndrey Karpov
 
Dw guide 11 g r2
Dw guide 11 g r2Dw guide 11 g r2
Dw guide 11 g r2sgyazuddin
 

Similar a Black berry java_sdk-quick_reference_guide--1203961-0730090020-001-6.0-us (20)

Cisco Virtualization Experience Infrastructure
Cisco Virtualization Experience InfrastructureCisco Virtualization Experience Infrastructure
Cisco Virtualization Experience Infrastructure
 
Sybase SQL AnyWhere12
Sybase SQL AnyWhere12Sybase SQL AnyWhere12
Sybase SQL AnyWhere12
 
Knowledge base
Knowledge baseKnowledge base
Knowledge base
 
Pkcs#1 V2
Pkcs#1 V2Pkcs#1 V2
Pkcs#1 V2
 
Pkcs#1 V2.1 (Cryptography Standard) Included #2,#4
Pkcs#1 V2.1 (Cryptography Standard)   Included #2,#4Pkcs#1 V2.1 (Cryptography Standard)   Included #2,#4
Pkcs#1 V2.1 (Cryptography Standard) Included #2,#4
 
Java completed assignment
Java completed assignmentJava completed assignment
Java completed assignment
 
Aplplication server instalacion
Aplplication server instalacionAplplication server instalacion
Aplplication server instalacion
 
Reference JBOSS Guide
Reference JBOSS GuideReference JBOSS Guide
Reference JBOSS Guide
 
Byron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design MasterByron Schaller - Challenge 2 - Virtual Design Master
Byron Schaller - Challenge 2 - Virtual Design Master
 
LS615 Laser System Manual
LS615 Laser System ManualLS615 Laser System Manual
LS615 Laser System Manual
 
XCC Documentation
XCC   DocumentationXCC   Documentation
XCC Documentation
 
Product description vital qip next generation v7 2_en_feb09(1)
Product description vital qip next generation v7 2_en_feb09(1)Product description vital qip next generation v7 2_en_feb09(1)
Product description vital qip next generation v7 2_en_feb09(1)
 
RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...
 
Syllabus Advanced Exploit Development 22-23 June 2013
Syllabus Advanced Exploit Development 22-23 June 2013Syllabus Advanced Exploit Development 22-23 June 2013
Syllabus Advanced Exploit Development 22-23 June 2013
 
Spring Reference
Spring ReferenceSpring Reference
Spring Reference
 
O reilly cisco ios access lists
O reilly   cisco ios access listsO reilly   cisco ios access lists
O reilly cisco ios access lists
 
Oreilly cisco ios access lists
Oreilly   cisco ios access listsOreilly   cisco ios access lists
Oreilly cisco ios access lists
 
HPE VM Explorer 6 1 user manual
HPE VM Explorer 6 1 user manualHPE VM Explorer 6 1 user manual
HPE VM Explorer 6 1 user manual
 
Oracle_9i_Database_Getting_started
Oracle_9i_Database_Getting_startedOracle_9i_Database_Getting_started
Oracle_9i_Database_Getting_started
 
Dw guide 11 g r2
Dw guide 11 g r2Dw guide 11 g r2
Dw guide 11 g r2
 

Último

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Último (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Black berry java_sdk-quick_reference_guide--1203961-0730090020-001-6.0-us

  • 1. BlackBerry Java SDK UI Component Version: 6.0 Quick Reference Guide
  • 3. Contents 1 Text fields...................................................................................................................................................................................... Label................................................................................................................................................................................................. Read-only text field........................................................................................................................................................................ Editable text field............................................................................................................................................................................ Password field................................................................................................................................................................................. Email address field.......................................................................................................................................................................... Search field...................................................................................................................................................................................... Autocomplete text field.................................................................................................................................................................. AutoText edit field........................................................................................................................................................................... Active AutoText edit field............................................................................................................................................................... 3 3 4 6 7 9 10 13 14 16 2 Choice fields................................................................................................................................................................................. Check box......................................................................................................................................................................................... Text-based drop-down list............................................................................................................................................................. Numeric drop-down list................................................................................................................................................................. Date field.......................................................................................................................................................................................... Date picker....................................................................................................................................................................................... File picker......................................................................................................................................................................................... Spin box............................................................................................................................................................................................ Location picker................................................................................................................................................................................ Tree field.......................................................................................................................................................................................... 18 18 19 20 21 22 24 25 27 30 3 Buttons.......................................................................................................................................................................................... Radio button.................................................................................................................................................................................... Toolbar.............................................................................................................................................................................................. Button............................................................................................................................................................................................... 33 33 34 36 4 Activity fields................................................................................................................................................................................ Gauge field...................................................................................................................................................................................... Activity indicator............................................................................................................................................................................. Progress indicator........................................................................................................................................................................... 38 38 39 40 5 Picture fields................................................................................................................................................................................. Bitmap field...................................................................................................................................................................................... Picture scroll field........................................................................................................................................................................... 43 43 44
  • 4. 6 Lists and tables............................................................................................................................................................................ Simple list......................................................................................................................................................................................... Rich list............................................................................................................................................................................................. Table................................................................................................................................................................................................. 47 47 48 50 7 Other components....................................................................................................................................................................... Browser field.................................................................................................................................................................................... Title bar............................................................................................................................................................................................ Map field.......................................................................................................................................................................................... 54 54 55 56 8 Provide feedback......................................................................................................................................................................... 58 9 Document revision history......................................................................................................................................................... 59 10 Legal notice.................................................................................................................................................................................. 60
  • 5. Text fields Quick Reference Guide Text fields 1 Label Use a label to identify a UI component for a BlackBerry® device user. Class Supported since Example LabelField BlackBerry® Java® SDK 4.0 For more information about labels, see the UI Guidelines. Code sample: Creating a label import net.rim.device.api.ui.UiApplication; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.component.LabelField; public class LabelFieldDemo extends UiApplication { public static void main(String[] args) { LabelFieldDemo theApp = new LabelFieldDemo(); theApp.enterEventDispatcher(); } } public LabelFieldDemo() { pushScreen(new LabelFieldDemoScreen()); } class LabelFieldDemoScreen extends MainScreen 3
  • 6. Read-only text field Quick Reference Guide { public LabelFieldDemoScreen() { LabelField title = new LabelField("Label Field Demo", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); setTitle(title); LabelField labelField1 = new LabelField("Right-aligned label field", LabelField.FIELD_RIGHT); LabelField labelField2 = new LabelField("Centered label field", LabelField.FIELD_HCENTER | LabelField.FOCUSABLE); LabelField labelField3 = new LabelField("Left-aligned label field", LabelField.FIELD_LEFT); } } add(labelField1); add(labelField2); add(labelField3); Read-only text field Use a read-only text field to display read-only text that can be formatted. Class Supported since Example RichTextField BlackBerry® Java® SDK 4.0 For more information about read-only text fields, see the UI Guidelines. Code sample: Creating a read-only text field 4
  • 7. Read-only text field Quick Reference Guide import import import import import import net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.container.MainScreen; net.rim.device.api.ui.component.RichTextField; net.rim.device.api.ui.Font; net.rim.device.api.ui.FontFamily; net.rim.device.api.ui.component.Dialog; public class RichTextFieldDemo extends UiApplication { public static void main(String[] args) { RichTextFieldDemo theApp = new RichTextFieldDemo(); theApp.enterEventDispatcher(); } } public RichTextFieldDemo() { pushScreen(new RichTextFieldDemoScreen()); } class RichTextFieldDemoScreen extends MainScreen { Font myFont1, myFont2, myFont3; public RichTextFieldDemoScreen() { RichTextField title = new RichTextField("Read-only Text Field Demo"); setTitle(title); RichTextField rtf1 = new RichTextField("Right-aligned plain", RichTextField.TEXT_ALIGN_RIGHT); RichTextField rtf2 = new RichTextField("Centered extra bold", RichTextField.TEXT_ALIGN_HCENTER); RichTextField rtf3 = new RichTextField("Left-aligned italic", RichTextField.TEXT_ALIGN_LEFT); try { FontFamily ff1 = FontFamily.forName("Times New Roman"); myFont1 = ff1.getFont(Font.PLAIN, 18); FontFamily ff2 = FontFamily.forName("Courier New"); myFont2 = ff2.getFont(Font.EXTRA_BOLD, 24); FontFamily ff3 = FontFamily.forName("Verdana"); myFont3 = ff3.getFont(Font.ITALIC, 24); } 5
  • 8. Editable text field Quick Reference Guide catch(final ClassNotFoundException cnfe) { UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { Dialog.alert("FontFamily.forName() threw " + cnfe.toString()); } }); } rtf1.setFont(myFont1); rtf2.setFont(myFont2); rtf3.setFont(myFont3); } } add(rtf1); add(rtf2); add(rtf3); Editable text field Use an editable text field to allow BlackBerry® device users to type text in a field. You can apply filters to restrict the characters that users can type in the text field. Class Supported since Example BasicEditField BlackBerry® Java® SDK 3.7 For more information about editable text fields, see the UI Guidelines. Code sample: Creating an editable text field 6
  • 9. Password field Quick Reference Guide import net.rim.device.api.ui.UiApplication; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.component.BasicEditField; public class BasicEditFieldDemo extends UiApplication { public static void main(String[] args) { BasicEditFieldDemo theApp = new BasicEditFieldDemo(); theApp.enterEventDispatcher(); } } public BasicEditFieldDemo() { pushScreen(new BasicEditFieldDemoScreen()); } class BasicEditFieldDemoScreen extends MainScreen { public BasicEditFieldDemoScreen() { setTitle("Editable Text Field Demo"); BasicEditField enterName = new BasicEditField("Your name: ", ""); BasicEditField enterPhone = new BasicEditField("Work number: ", "", 50, BasicEditField.FILTER_PHONE); } } add(enterName); add(enterPhone); Password field Use a password field when BlackBerry® device users are required to type a password. You can apply filters to restrict the characters that users can type in the field. By default, the password field supports all characters. Class Supported since PasswordEditField BlackBerry® Java® SDK 4.2.1 7
  • 10. Quick Reference Guide Example For more information about password fields, see the UI Guidelines. Code sample: Creating a password field import import import import net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.container.MainScreen; net.rim.device.api.ui.component.BasicEditField; net.rim.device.api.ui.component.PasswordEditField; public class PasswordEditFieldDemo extends UiApplication { public static void main(String[] args) { PasswordEditFieldDemo theApp = new PasswordEditFieldDemo(); theApp.enterEventDispatcher(); } } public PasswordEditFieldDemo() { pushScreen(new PasswordEditFieldDemoScreen()); } class PasswordEditFieldDemoScreen extends MainScreen { public PasswordEditFieldDemoScreen() { setTitle("Password Field Demo"); BasicEditField enterUsername = new BasicEditField("Username: ", ""); PasswordEditField enterPIN = new PasswordEditField("PIN: ", "", 4, PasswordEditField.FILTER_NUMERIC); add(enterUsername); 8 Password field
  • 11. Email address field Quick Reference Guide } } add(enterPIN); Email address field Use an email address field when BlackBerry® device users are required to type an email address. This field permits only characters that are valid in an email address. The first space that a user types is replaced automatically with an at sign (@) and any subsequent spaces are replaced with periods (.). Class Supported since Example EmailAddressEditField BlackBerry® Java® SDK 4.0 For more information about email address fields, see the UI Guidelines. Code sample: Creating an email address field import net.rim.device.api.ui.UiApplication; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.component.EmailAddressEditField; public class EmailAddressEditFieldDemo extends UiApplication { public static void main(String[] args) { EmailAddressEditFieldDemo theApp = new EmailAddressEditFieldDemo(); theApp.enterEventDispatcher(); } public EmailAddressEditFieldDemo() { 9
  • 12. Search field Quick Reference Guide } } pushScreen(new EmailAddressEditFieldDemoScreen()); class EmailAddressEditFieldDemoScreen extends MainScreen { public EmailAddressEditFieldDemoScreen() { setTitle("Email Address Field Demo"); EmailAddressEditField enterEmail = new EmailAddressEditField("Email address: ", ""); add(enterEmail); } } Search field Use a search field to allow BlackBerry® device users to filter a list of words that match the characters that they type in the field. Users can select one of the presented matches or continue typing to further restrict the available choices. When you create a search field, you must specify a source list. The source list supplies the strings to compare against, which can be hard-coded or derived from data sources on a BlackBerry device, such as contacts, memos, and tasks. Class Supported since Example KeywordFilterField BlackBerry® Java® SDK 4.5 For more information about search fields, see the UI Guidelines. Code sample: Creating a search field import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.collection.ReadableList; import net.rim.device.api.util.Comparator; 10
  • 13. Quick Reference Guide import import import import import Search field java.util.*; net.rim.device.api.collection.util.*; net.rim.device.api.util.StringUtilities; net.rim.device.api.ui.*; net.rim.device.api.ui.component.*; public class SearchFieldDemo extends UiApplication { KeywordFilterField _keywordFilterField; CountryList _countryList; public static void main(String args[]) { SearchFieldDemo theApp = new SearchFieldDemo(); theApp.enterEventDispatcher(); } public SearchFieldDemo() { _countryList = new CountryList(); _countryList.addElement(new Country("Zimbabwe")); _countryList.addElement(new Country("Argentina")); _countryList.addElement(new Country("Brazil")); _countryList.addElement(new Country("Canada")); _countryList.addElement(new Country("Chile")); _countryList.addElement(new Country("China")); _countryList.addElement(new Country("Germany")); _keywordFilterField = new KeywordFilterField(); _keywordFilterField.setLabel(""); _keywordFilterField.setSourceList(_countryList, _countryList); SearchFieldDemoScreen screen = new SearchFieldDemoScreen(); screen.setTitle(_keywordFilterField.getKeywordField()); screen.add(_keywordFilterField); screen.addMenuItem(addElementItem); } pushScreen(screen); void addElementToList(Country country) { _countryList.addElement(country); _keywordFilterField.updateList(); } private final MenuItem addElementItem = new MenuItem("Add country", 0, 0) { public void run() { _keywordFilterField.setKeyword(""); 11
  • 14. Search field Quick Reference Guide String[] selections = {"Add","Cancel"}; Dialog addDialog = new Dialog("Add Country", selections, null, 0, null); EditField inputField = new EditField("Country: ",""); addDialog.add(inputField); if(addDialog.doModal() == 0) { addElementToList(new Country(inputField.getText())); } }; } } class SearchFieldDemoScreen extends MainScreen { public SearchFieldDemoScreen(){}; } class CountryList extends SortedReadableList implements KeywordProvider { public CountryList() { super(new CountryListComparator()); } void addElement(Object element) { doAdd(element); } public String[] getKeywords(Object element) { if(element instanceof Country) { return StringUtilities.stringToWords(element.toString()); } return null; } final static class CountryListComparator implements Comparator { public int compare(Object o1, Object o2) { if (o1 == null || o2 == null) throw new IllegalArgumentException("Cannot compare null countries"); } } 12 } return o1.toString().compareTo(o2.toString());
  • 15. Autocomplete text field Quick Reference Guide class Country { private String _countryName; public Country(String countryName) { _countryName = countryName; } } public String toString() { return _countryName; } Autocomplete text field Use an autocomplete text field to allow BlackBerry® device users to select from a changing list of words that match the characters that they type in the field. Users can select one of the presented matches or continue typing to further restrict the available choices. When you create an autocomplete text field, you must associate it with a BasicFilteredList object. The BasicFilteredList supplies the strings to compare against, which can be hard-coded or derived from data sources on a BlackBerry device, such as contacts, memos, and tasks. Classes Supported since Example AutoCompleteField, BasicFilteredList BlackBerry® Java® SDK 5.0 For more information about autocomplete text fields, see the UI & Navigation Development Guide. Code sample: Creating an autocomplete text field 13
  • 16. AutoText edit field Quick Reference Guide import import import import net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.container.MainScreen; net.rim.device.api.ui.component.AutoCompleteField; net.rim.device.api.collection.util.*; public class AutoCompleteFieldApp extends UiApplication { public static void main(String[] args) { AutoCompleteFieldApp app = new AutoCompleteFieldApp(); app.enterEventDispatcher(); } } AutoCompleteFieldApp() { pushScreen(new HomeScreen()); } class HomeScreen extends MainScreen { public HomeScreen() { setTitle("Autocomplete Text Field Demo"); BasicFilteredList filterList = new BasicFilteredList(); String[] days = {"Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday","Sunday"}; filterList.addDataSet(1,days,"days",BasicFilteredList .COMPARISON_IGNORE_CASE); AutoCompleteField autoCompleteField = new AutoCompleteField(filterList); add(autoCompleteField); } } AutoText edit field Use an AutoText edit field to automatically correct text that a BlackBerry® device user types in the field. The text is corrected based on the AutoText definition list, which lists common typographic errors and corrections. The text is corrected when the user presses the Space key. Class Supported since 14 AutoTextEditField BlackBerry® Java® SDK 4.0
  • 17. Quick Reference Guide AutoText edit field Example For more information about AutoText edit fields, see the UI Guidelines. Code sample: Creating an AutoText edit field import net.rim.device.api.ui.UiApplication; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.component.AutoTextEditField; public class AutoTextEditFieldDemo extends UiApplication { public static void main(String[] args) { AutoTextEditFieldDemo theApp = new AutoTextEditFieldDemo(); theApp.enterEventDispatcher(); } } public AutoTextEditFieldDemo() { pushScreen(new AutoTextEditFieldDemoScreen()); } class AutoTextEditFieldDemoScreen extends MainScreen { public AutoTextEditFieldDemoScreen() { setTitle("AutoText Edit Field Demo"); AutoTextEditField myField = new AutoTextEditField("Description: ", ""); } } add(myField); 15
  • 18. Active AutoText edit field Quick Reference Guide Active AutoText edit field Use an active AutoText edit field to check for patterns in text that a BlackBerry® device user types in the field. When a pattern is found, the text becomes active and the user can click on the active text to access special menu items. For example, email addresses and phone numbers are two of the patterns that are recognized by default. In addition, when the user presses the Space key, text is corrected based on the AutoText definition list, which lists common typographic errors and corrections. Classes Supported since Example ActiveAutoTextEditField BlackBerry® Java® SDK 5.0 For more information about active autocomplete text fields, see the UI Guidelines. Code sample: Creating an active AutoText edit field import net.rim.device.api.ui.UiApplication; import net.rim.device.api.ui.container.MainScreen; import net.rim.device.api.ui.component.ActiveAutoTextEditField; public class ActiveAutoTextEditFieldDemo extends UiApplication { public static void main(String[] args) { ActiveAutoTextEditFieldDemo theApp = new ActiveAutoTextEditFieldDemo(); } } theApp.enterEventDispatcher(); public ActiveAutoTextEditFieldDemo() { pushScreen(new ActiveAutoTextEditFieldDemoScreen()); } class ActiveAutoTextEditFieldDemoScreen extends MainScreen 16
  • 19. Quick Reference Guide { Active AutoText edit field public ActiveAutoTextEditFieldDemoScreen() { setTitle("Active AutoText Edit Field Demo"); ActiveAutoTextEditField myField = new ActiveAutoTextEditField("Send a message to Mike: n n", ""); } } add(myField); 17
  • 20. Choice fields Quick Reference Guide Choice fields 2 Check box Use check boxes for options that BlackBerry® device users can select or clear. Users can select any number of check boxes in a group. Class Supported since Example CheckboxField BlackBerry® Java® SDK 3.7 For more information about check boxes, see the UI Guidelines. Code sample: Creating a check box import import import import import net.rim.device.api.ui.Field; net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.container.MainScreen; net.rim.device.api.ui.component.LabelField; net.rim.device.api.ui.component.CheckboxField; public class CheckboxFieldDemo extends UiApplication { public static void main(String[] args) { CheckboxFieldDemo theApp = new CheckboxFieldDemo(); theApp.enterEventDispatcher(); } public CheckboxFieldDemo() { pushScreen(new CheckboxFieldDemoScreen()); } 18
  • 21. Text-based drop-down list Quick Reference Guide } class CheckboxFieldDemoScreen extends MainScreen { public CheckboxFieldDemoScreen() { LabelField title = new LabelField("Check Box Demo", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); setTitle(title); } } CheckboxField checkBox1 = new CheckboxField("Ignore Case", true); CheckboxField checkBox2 = new CheckboxField("Ignore Acronyms", false); add(checkBox1); add(checkBox2); Text-based drop-down list Use a text-based drop-down list for text-based options that BlackBerry® device users can select from a list. Users can select only one option at a time. Class Supported since Example ObjectChoiceField BlackBerry® Java® SDK 5.0 For more information about text-based drop-down lists, see the UI Guidelines. Code sample: Creating a text-based drop-down list import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; 19
  • 22. Numeric drop-down list Quick Reference Guide public class TextDropdownListDemo extends UiApplication { public static void main(String[] args) { TextDropdownListDemo theApp = new TextDropdownListDemo(); theApp.enterEventDispatcher(); } public TextDropdownListDemo() { pushScreen(new TextDropdownListDemoScreen()); } } class TextDropdownListDemoScreen extends MainScreen { public TextDropdownListDemoScreen() { setTitle("Drop-down List Demo"); String choices[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Satu rday","Sunday"}; int iSetTo = 2; add(new ObjectChoiceField("Day of the week",choices,iSetTo)); } } Numeric drop-down list Use a numeric drop-down list for numeric options that BlackBerry® device users can select from a list. Users can select only one option at a time. Class Supported since Example 20 NumericChoiceField BlackBerry® Java® SDK 3.6
  • 23. Date field Quick Reference Guide For more information about numeric drop-down lists, see the UI Guidelines. Code sample: Creating a numeric drop-down list import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class NumericDropdownListDemo extends UiApplication { public static void main(String[] args) { NumericDropdownListDemo theApp = new NumericDropdownListDemo(); theApp.enterEventDispatcher(); } public NumericDropdownListDemo() { pushScreen(new NumericDropdownListDemoScreen()); } } class NumericDropdownListDemoScreen extends MainScreen { public NumericDropdownListDemoScreen() { setTitle("Drop-down List Demo"); int iStartAt = 1; int iEndAt = 31; int iIncrement = 1; int iSetTo = 10; add(new NumericChoiceField("Day of the month",iStartAt,iEndAt,iIncrement,iSetTo-1)); } } Date field Use a date field to display the date and time. Class Supported since DateField BlackBerry® Java® SDK 3.6 21
  • 24. Quick Reference Guide Example For more information about date fields, see the UI Guidelines. Code sample: Creating a date field import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class DateFieldDemo extends UiApplication { public static void main(String[] args) { DateFieldDemo theApp = new DateFieldDemo(); theApp.enterEventDispatcher(); } public DateFieldDemo() { pushScreen(new DateFieldDemoScreen()); } } class DateFieldDemoScreen extends MainScreen { public DateFieldDemoScreen() { setTitle("Date Field Demo"); add(new DateField("Date and Time: ", System.currentTimeMillis(), DateField.DATE_TIME)); } } Date picker Use a date picker to permit BlackBerry® device users to select a date and time. 22 Date picker
  • 25. Date picker Quick Reference Guide Class Supported since Example DateTimePicker BlackBerry® Java® SDK 5.0 For more information about date and time pickers, see the UI Guidelines. Code sample: Creating a date picker import import import import import import import net.rim.device.api.ui.*; net.rim.device.api.ui.picker.*; net.rim.device.api.ui.component.*; net.rim.device.api.ui.container.*; net.rim.device.api.database.*; net.rim.device.api.io.*; java.util.*; public class DatePickerDemo extends UiApplication { public static void main(String[] args) { DatePickerDemo theApp = new DatePickerDemo(); theApp.enterEventDispatcher(); } } public DatePickerDemo() { pushScreen(new DatePickerDemoScreen()); } class DatePickerDemoScreen extends MainScreen { public DatePickerDemoScreen() { setTitle("Date picker demo"); add(new RichTextField("Trying Date Picker")); 23
  • 26. File picker Quick Reference Guide } } UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { DateTimePicker datePicker = DateTimePicker.createInstance(); datePicker.doModal(); } }); File picker Use a file picker to permit BlackBerry® device users to select a file from the BlackBerry device. Class Supported since Example FilePicker BlackBerry® Java® SDK 5.0 For more information about file pickers, see the UI Guidelines. Code sample: Creating a file picker import import import import import net.rim.device.api.ui.*; net.rim.device.api.ui.picker.*; net.rim.device.api.ui.component.*; net.rim.device.api.ui.container.*; net.rim.device.api.io.*; public class FilePickerDemo extends UiApplication { public static void main(String[] args) { 24
  • 27. Spin box Quick Reference Guide } } FilePickerDemo theApp = new FilePickerDemo(); theApp.enterEventDispatcher(); public FilePickerDemo() { pushScreen(new FilePickerDemoScreen()); } class FilePickerDemoScreen extends MainScreen { public FilePickerDemoScreen() { setTitle("File Picker Demo"); add(new LabelField("Trying file picker")); } } UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { FilePicker fp = FilePicker.getInstance(); FilePickListener fileListener = new FilePickListener(); fp.setListener(fileListener); fp.show(); } }); class FilePickListener implements FilePicker.Listener { public void selectionDone(String str) { Dialog.alert("You selected " + str); } } Spin box Use a spin box for items that BlackBerry® device users can select from an ordered list. Class Supported since TextSpinBoxField BlackBerry® Java® SDK 5.0 25
  • 28. Quick Reference Guide Example For more information about spin boxes, see the UI Guidelines. Code sample: Creating a spin box import import import import import net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.container.MainScreen; net.rim.device.api.ui.container.SpinBoxFieldManager; net.rim.device.api.ui.component.Dialog; net.rim.device.api.ui.component.TextSpinBoxField; public class SpinBoxDemo extends UiApplication { public static void main(String[] args) { SpinBoxDemo theApp = new SpinBoxDemo(); theApp.enterEventDispatcher(); } } public SpinBoxDemo() { pushScreen(new SpinBoxDemoScreen()); } class SpinBoxDemoScreen extends MainScreen { TextSpinBoxField spinBoxDays; TextSpinBoxField spinBoxMonths; SpinBoxFieldManager spinBoxMgr; public SpinBoxDemoScreen() { setTitle("Spin Box Demo"); final String[] DAYS = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}; final String[] MONTHS = 26 Spin box
  • 29. Location picker Quick Reference Guide {"January","February","March","April","May","June","July","August","September", "October","November","December"}; spinBoxMgr = new SpinBoxFieldManager(); spinBoxMgr.setVisibleRows(3); spinBoxDays = new TextSpinBoxField(DAYS); spinBoxMonths = new TextSpinBoxField(MONTHS); } } spinBoxMgr.add(spinBoxDays); spinBoxMgr.add(spinBoxMonths); add(spinBoxMgr); public void close() { Dialog.alert("You selected " + (String)spinBoxDays.get(spinBoxDays.getSelectedIndex()) + " and " + (String)spinBoxMonths.get(spinBoxMonths.getSelectedIndex())); super.close(); } Location picker Use a location picker to permit BlackBerry® device users to select a location from a list of options that you define. Class Supported since Example LocationPicker BlackBerry® Java® SDK 5.0 For more information about location pickers, see the UI Guidelines. Code sample: Creating a location picker 27
  • 30. Quick Reference Guide import import import import import import import import Location picker net.rim.blackberry.api.invoke.*; net.rim.device.api.gps.*; net.rim.device.api.lbs.picker.*; net.rim.device.api.ui.*; net.rim.device.api.ui.container.*; net.rim.device.api.ui.component.*; javax.microedition.location.*; java.util.Enumeration; public class LocationPickerApp extends UiApplication { public static void main(String[] args) { LocationPickerApp app = new LocationPickerApp(); app.enterEventDispatcher(); } public LocationPickerApp() { pushScreen(new LocationPickerAppScreen()); } static class LocationPickerAppScreen extends MainScreen implements LocationPicker.Listener, FieldChangeListener { private LocationPicker _locationPicker; private ButtonField _buttonField; private LabelField _nameLabel; private LabelField _descLabel; private LabelField _coordLabel; private boolean _mapsPresent = false; LocationPickerAppScreen() { setTitle("Location Picker Demo"); _buttonField = new ButtonField("Choose location", ButtonField.NEVER_DIRTY); _buttonField.setChangeListener(this); add(_buttonField); _nameLabel = new LabelField(); _descLabel = new LabelField(); _coordLabel = new LabelField(); add(_nameLabel); add(_descLabel); add(_coordLabel); Landmark[] landmarks = new Landmark[] {new Landmark("New York", "Times Square", new QualifiedCoordinates(40.757682, -73.98571, Float.NaN, Float.NaN, Float.NaN), null), new Landmark("New York","Central Park", new QualifiedCoordinates(40.783333, -73.966667, Float.NaN, Float.NaN, Float.NaN), 28
  • 31. Location picker Quick Reference Guide null)}; int arraySize = 7; LocationPicker.Picker mapsLocationPicker = null; try { mapsLocationPicker = MapsLocationPicker.getInstance(); _mapsPresent = true; } catch(IllegalStateException ise) { arraySize--; } boolean gpsSupported = GPSInfo.getGPSDataSource() != null; if(!gpsSupported) { arraySize--; } LocationPicker.Picker[] locationPickersArray = new LocationPicker.Picker[arraySize]; locationPickersArray[--arraySize] = EnterLocationPicker.getInstance(false); locationPickersArray[--arraySize] = SuggestedLocationPicker.getInstance("App specific...", landmarks ); locationPickersArray[--arraySize] = RecentLocationPicker.getInstance(); locationPickersArray[--arraySize] = ContactsLocationPicker.getInstance(false); locationPickersArray[--arraySize] = GeotaggedPhotoPicker.getInstance(); if(_mapsPresent) { locationPickersArray[--arraySize] = mapsLocationPicker; } if(gpsSupported) { locationPickersArray[--arraySize] = GPSLocationPicker.getInstance(); } _locationPicker = LocationPicker.getInstance(locationPickersArray); Enumeration globalPickers = _locationPicker.getGlobalLocationPickers(); while (globalPickers.hasMoreElements()) { _locationPicker.addLocationPicker((LocationPicker .Picker)globalPickers.nextElement()); } 29
  • 32. Tree field Quick Reference Guide } _locationPicker.setListener(this); public void locationPicked (LocationPicker.Picker picker, Landmark location) { if(location != null) { _nameLabel.setText("Location name: " + location.getName()); _descLabel.setText("Description: " + location.getDescription()); QualifiedCoordinates coordinates = location.getQualifiedCoordinates(); if(coordinates != null) { StringBuffer buff = new StringBuffer("Coordinates: "); double latitude = coordinates.getLatitude(); double longitude = coordinates.getLongitude(); buff.append("Latitude:"); buff.append(latitude); buff.append(", Longitude: "); buff.append(longitude); _coordLabel.setText(buff.toString()); } } } } } if(_mapsPresent) { Landmark[] landmark = {location}; MapsArguments mapsArgs = new MapsArguments(landmark); Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, mapsArgs); } public void fieldChanged(Field field, int context) { if(field == _buttonField) { _locationPicker.show(); } } Tree field Use a tree field to display components in a hierarchical structure. You can configure tree field nodes to be collapsible. Class 30 TreeField
  • 33. Tree field Quick Reference Guide Supported since Example BlackBerry® Java® SDK 3.7 For more information about tree fields, see the UI Guidelines. Code sample: Creating a tree field import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class TreefieldDemo extends UiApplication { public static void main(String[] args) { TreefieldDemo theApp = new TreefieldDemo(); theApp.enterEventDispatcher(); } } public TreefieldDemo() { pushScreen(new TreefieldDemoScreen()); } class TreefieldDemoScreen extends MainScreen { public TreefieldDemoScreen() { setTitle("Tree Field Demo"); String String String String fieldOne = new String("Parent folder 1"); fieldTwo = new String("Parent folder 2"); fieldThree = new String("Sub-folder 1"); fieldFour = new String("Sub-folder 2"); TreeCallback myCallback = new TreeCallback(); 31
  • 34. Tree field Quick Reference Guide TreeField myTree = new TreeField(myCallback, Field.FOCUSABLE); int int int int node1 node2 node3 node4 = = = = myTree.addChildNode(0, fieldOne); myTree.addChildNode(0, fieldTwo); myTree.addChildNode(node2, fieldThree); myTree.addChildNode(node3, fieldFour); myTree.setExpanded(node4, false); add(myTree); } } 32 private class TreeCallback implements TreeFieldCallback { public void drawTreeItem(TreeField _tree, Graphics g, int node, int y, int width, int indent) { String text = (String)_tree.getCookie(node); g.drawText(text, indent, y); } }
  • 35. Quick Reference Guide Buttons Buttons 3 Radio button Use radio buttons for options that BlackBerry® device users can select from a set of choices. Users can select only one option in each set of radio buttons. Class Supported since Example RadioButtonGroup, RadioButtonField BlackBerry® Java® SDK 3.6 For more information about radio buttons, see the UI Guidelines. Code sample: Creating radio buttons import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class RadioButtonDemo extends UiApplication { public static void main(String[] args) { RadioButtonDemo theApp = new RadioButtonDemo(); theApp.enterEventDispatcher(); } public RadioButtonDemo() { pushScreen(new RadioButtonDemoScreen()); } } class RadioButtonDemoScreen extends MainScreen 33
  • 36. Toolbar Quick Reference Guide { } public RadioButtonDemoScreen() { setTitle("Radio Button Demo"); RadioButtonGroup rbg = new RadioButtonGroup(); add(new RadioButtonField("Option 1",rbg,true)); add(new RadioButtonField("Option 2",rbg,false)); } Toolbar Toolbars provide users with a quick and easy way to access frequent actions for an application or screen. Each toolbar consists of a set of icons that appears along the bottom of the screen. Only smartphones in the BlackBerry® Storm™ Series and BlackBerry® Torch™ 9800 smartphones use toolbars. Package Supported since Example Toolbar BlackBerry® Java® SDK 6.0 For more information about toolbars, see the UI Guidelines. Code sample: Creating a toolbar import import import import import import import import 34 net.rim.device.api.ui.*; net.rim.device.api.ui.component.*; net.rim.device.api.ui.container.*; net.rim.device.api.ui.image.*; net.rim.device.api.ui.toolbar.*; net.rim.device.api.util.*; net.rim.device.api.system.*; net.rim.device.api.command.*;
  • 37. Toolbar Quick Reference Guide public class ToolbarDemo extends UiApplication { public static void main(String[] args) { } ToolbarDemo theApp = new ToolbarDemo(); theApp.enterEventDispatcher(); public ToolbarDemo() { // Push a screen onto the UI stack for rendering. pushScreen(new ToolbarDemoScreen()); } private final static class ToolbarDemoScreen extends MainScreen { public ToolbarDemoScreen() { if (ToolbarManager.isToolbarSupported()) { setTitle("Toolbar Demo"); ToolbarManager manager = new ToolbarManager(); setToolbar(manager); try { Bitmap myBitmap = Bitmap.getBitmapResource("myImg.jpg"); Image myImage = ImageFactory.createImage(myBitmap); /* * To create more buttons, Repeat the following lines * up until manager.add() */ ToolbarButtonField button1 = new ToolbarButtonField(myImage, new StringProvider("butn1")); button1.setCommandContext(new Object() { public String toString() { return "Button1"; } }); context) button1.setCommand(new Command(new CommandHandler() { public void execute(ReadOnlyCommandMetadata metadata, Object { context.toString()); Dialog.alert("Executing command for " + 35
  • 38. Button Quick Reference Guide } })); manager.add(new ToolbarSpacer(0)); manager.add(button1); } catch (Exception e) { System.out.println(e.getMessage()); } } else { } } } } Dialog.alert("The Toolbar is not supported on this device."); Button Use a button to allow BlackBerry® device users to perform an action when they click the button. Class Supported since Example ButtonField BlackBerry® Java® SDK 4.0 For more information about buttons, see the UI Guidelines. For information about advanced buttons , read the knowledge base article at about how to implement advanced buttons, fields and managers . Code sample: Creating a button 36
  • 39. Quick Reference Guide Button import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class ButtonFieldDemo extends UiApplication { public static void main(String[] args) { ButtonFieldDemo theApp = new ButtonFieldDemo(); theApp.enterEventDispatcher(); } } public ButtonFieldDemo() { pushScreen(new ButtonFieldDemoScreen()); } class ButtonFieldDemoScreen extends MainScreen { public ButtonFieldDemoScreen() { setTitle("Button Field Demo"); ButtonField addButton = new ButtonField("Add"); ButtonField delButton = new ButtonField("Delete"); } } add(addButton); add(delButton); 37
  • 40. Activity fields Quick Reference Guide Activity fields 4 Gauge field Use a gauge field to create a horizontal bar to display a progress indicator or a numeric value. Class Supported since Example GaugeField BlackBerry® Java® SDK 4.2 For more information about gauge fields, see the UI Guidelines. Code sample: Creating a gauge field import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.GaugeField; import net.rim.device.api.ui.container.*; public class GaugeFieldDemo extends UiApplication { public static void main(String[] args) { GaugeFieldDemo theApp = new GaugeFieldDemo(); theApp.enterEventDispatcher(); } } public GaugeFieldDemo() { pushScreen(new GaugeFieldDemoScreen()); } class GaugeFieldDemoScreen extends MainScreen 38
  • 41. Activity indicator Quick Reference Guide { public GaugeFieldDemoScreen () { setTitle("Gauge Field Demo"); GaugeField percentGauge = new GaugeField("Percent: ", 1, 100, 29, GaugeField.PERCENT); add(percentGauge); } } Activity indicator Use an activity indicator to display a visual cue that a task whose duration is unknown is progressing. If you can calculate how long the task will take, consider using a progress indicator instead. Class Supported since Example ActivityImageField BlackBerry® Java® SDK 6.0 For more information about activity indicators, see the UI Guidelines. Code sample: Creating an activity indicator import import import import net.rim.device.api.system.Bitmap; net.rim.device.api.ui.*; net.rim.device.api.ui.component.progressindicator.*; net.rim.device.api.ui.container.*; public class ActivityIndicatorDemo extends UiApplication { public static void main(String[] args) { ActivityIndicatorDemo theApp = new ActivityIndicatorDemo(); 39
  • 42. Progress indicator Quick Reference Guide } } theApp.enterEventDispatcher(); public ActivityIndicatorDemo() { pushScreen(new ActivityIndicatorDemoScreen()); } class ActivityIndicatorDemoScreen extends MainScreen { ActivityIndicatorView view = new ActivityIndicatorView(Field.USE_ALL_WIDTH); ActivityIndicatorModel model = new ActivityIndicatorModel(); ActivityIndicatorController controller = new ActivityIndicatorController(); public ActivityIndicatorDemoScreen () { setTitle("Activity Indicator Demo"); view.setController(controller); view.setModel(model); controller.setModel(model); controller.setView(view); model.setController(controller); Bitmap bitmap = Bitmap.getBitmapResource("spinner.png"); view.createActivityImageField(bitmap, 5, Field.FIELD_HCENTER); } } add(view); Progress indicator Use a progress indicator to display a visual cue that a task whose duration can be measured is progressing. If you cannot calculate how long the task will take, consider using an activity indicator instead. Class Supported since 40 ProgressBarField BlackBerry® Java® SDK 6.0
  • 43. Quick Reference Guide Progress indicator Example For more information about progress indicators, see the UI Guidelines. Code sample: Creating a progress indicator import net.rim.device.api.ui.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.ui.component.progressindicator.*; public class ProgressIndicatorDemo extends UiApplication { public static void main(String[] args) { ProgressIndicatorDemo theApp = new ProgressIndicatorDemo(); theApp.enterEventDispatcher(); } } public ProgressIndicatorDemo() { pushScreen(new ProgressIndicatorDemoScreen()); } class ProgressIndicatorDemoScreen extends MainScreen { ProgressIndicatorView view = new ProgressIndicatorView(0); ProgressIndicatorModel model = new ProgressIndicatorModel(0, 100, 0); ProgressIndicatorController controller = new ProgressIndicatorController(); ProgressThread _progressThread; public ProgressIndicatorDemoScreen() { setTitle("Progress Indicator Demo"); model.setController(controller); view.setModel(model); 41
  • 44. Quick Reference Guide view.setController(controller); controller.setModel(model); controller.setView(view); view.setLabel("Percent completion"); view.createProgressBar(Field.FIELD_HCENTER); add(view); } } 42 _progressThread = new ProgressThread(); _progressThread.start(); // A thread that simulates the processing of data class ProgressThread extends Thread { public void run() { for(int i = 0; i <= 100; ++i) { ProgressIndicatorDemoScreen.this.model.setValue(i); try { // Simulate work sleep(250); } catch(InterruptedException ie) { } } } } Progress indicator
  • 45. Picture fields Quick Reference Guide Picture fields 5 Bitmap field Use a bitmap field to display bitmap images that a BlackBerry® device user can view. Class Supported since Example BitmapField BlackBerry® Java® SDK 3.7 For more information about bitmap fields, see the Multimedia Development Guide. Code sample: Creating a bitmap field import import import import net.rim.device.api.system.Bitmap; net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.component.BitmapField; net.rim.device.api.ui.container.MainScreen; public class BitmapFieldDemo extends UiApplication { public static void main(String[] args) { BitmapFieldDemo theApp = new BitmapFieldDemo(); theApp.enterEventDispatcher(); } } public BitmapFieldDemo() { pushScreen(new BitmapFieldDemoScreen()); } 43
  • 46. Picture scroll field Quick Reference Guide class BitmapFieldDemoScreen extends MainScreen { } public BitmapFieldDemoScreen () { setTitle("Bitmap Field Demo"); Bitmap bitmapImage = Bitmap.getBitmapResource("BlackBerry_Data_Stream.jpg"); BitmapField fieldDemo = new BitmapField(bitmapImage); add(fieldDemo); } Picture scroll field Use a picture scroll field to display a row of images that BlackBerry® device the user can scroll through horizontally. Class Supported since Example PictureScrollField BlackBerry® Java® SDK 5.0 For more information about picture scroll fields, see the UI Guidelines. Code sample: Creating a picture scroll field import import import import import import net.rim.device.api.system.*; net.rim.device.api.ui.*; net.rim.device.api.ui.container.*; net.rim.device.api.ui.decor.*; net.rim.device.api.ui.extension.component.*; net.rim.device.api.ui.extension.component.PictureScrollField.*; public class PictureScrollFieldDemo extends UiApplication { public static void main(String[] args) 44
  • 47. Quick Reference Guide { } } Picture scroll field PictureScrollFieldDemo theApp = new PictureScrollFieldDemo(); theApp.enterEventDispatcher(); public PictureScrollFieldDemo() { pushScreen(new PictureScrollFieldDemoScreen()); } class PictureScrollFieldDemoScreen extends MainScreen { public PictureScrollFieldDemoScreen() { setTitle("Picture Scroll Field Demo"); Bitmap[] images = new Bitmap[3]; String[] labels = new String[3]; String[] tooltips = new String[3]; images[0] = Bitmap.getBitmapResource("image1.jpg"); labels[0] = "Label for image 1"; tooltips[0] = "Tooltip for image 1"; images[1] = Bitmap.getBitmapResource("image2.jpg"); labels[1] = "Label for image 2"; tooltips[1] = "Tooltip for image 2"; images[2] = Bitmap.getBitmapResource("image3.jpg"); labels[2] = "Label for image 2"; tooltips[2] = "Tooltip for image 2"; ScrollEntry[] entries = new ScrollEntry[3]; for (int i = 0; i < entries.length; i++) { entries[i] = new ScrollEntry(images[i], labels[i],tooltips[i]); } PictureScrollField pictureScrollField = new PictureScrollField(150, 100); pictureScrollField.setData(entries, 0); pictureScrollField.setHighlightStyle(HighlightStyle .ILLUMINATE_WITH_SHRINK_LENS); pictureScrollField.setHighlightBorderColor(Color.BLUE); pictureScrollField.setBackground(BackgroundFactory .createSolidTransparentBackground(Color.BLACK, 150)); pictureScrollField.setLabelsVisible(true); 45
  • 49. Lists and tables Quick Reference Guide Lists and tables 6 Simple list Use a simple list to display a list of items as text. Class Supported since Example SimpleList BlackBerry® Java® SDK 6.0 For more information about simple lists, see the UI Guidelines. Code sample: Creating a simple list import import import import net.rim.device.api.ui.*; net.rim.device.api.ui.container.*; net.rim.device.api.ui.component.*; net.rim.device.api.ui.component.table.*; public class SimpleListDemo extends UiApplication { public static void main(String[] args) { SimpleListDemo theApp = new SimpleListDemo(); theApp.enterEventDispatcher(); } public SimpleListDemo() { pushScreen(new SimpleListScreen()); } private static final class SimpleListScreen extends MainScreen 47
  • 50. Rich list Quick Reference Guide { public SimpleListScreen() { super(Manager.NO_VERTICAL_SCROLL); setTitle("Simple List Demo"); add(new LabelField("My list", LabelField.FIELD_HCENTER)); add(new SeparatorField()); Manager mainManager = getMainManager(); SimpleList listField = new SimpleList(mainManager); listField.add("Item 1"); listField.add("Item 2"); listField.add("Item 3"); } } } Rich list Use a rich list to display a list of items that contain an optional image on the left, a list of labels beside the image and an optional description below the image and labels. Class Supported since Example 48 RichList BlackBerry® Java® SDK 6.0
  • 51. Rich list Quick Reference Guide For more information about rich lists, see the UI Guidelines. Code sample: Creating a rich list import import import import import net.rim.device.api.ui.*; net.rim.device.api.ui.container.*; net.rim.device.api.ui.component.*; net.rim.device.api.system.*; net.rim.device.api.ui.component.table.*; public class RichListDemo extends UiApplication { public static void main(String[] args) { RichListDemo theApp = new RichListDemo(); theApp.enterEventDispatcher(); } public RichListDemo() { pushScreen(new RichListScreen()); } private static class RichListScreen extends MainScreen { public RichListScreen() { super(Manager.NO_VERTICAL_SCROLL); setTitle("Rich List Demo"); add(new LabelField("BlackBerry Devices", LabelField.FIELD_HCENTER)); add(new SeparatorField()); Manager mainManager = getMainManager(); RichList list = new RichList(mainManager, true, 2, 1); Bitmap bitmap1 = Bitmap.getBitmapResource("9500.png"); Bitmap bitmap2 = Bitmap.getBitmapResource("9000.png"); list.add(new 9500", "Description list.add(new 9000", "Description } } Object[] {bitmap1, "Device 1", "BlackBerry Smartphone of Device 1."}); Object[] {bitmap2, "Device 2", "BlackBerry Smartphome of Device 2."}); } 49
  • 52. Table Quick Reference Guide Table Use a table model to store and display data in a table. Class Supported since Example TableModel BlackBerry® Java® SDK 6.0 For more information about tables, including sorted tables that group items under headers, see the UI Guidelines. Code sample: Creating a table import import import import import import net.rim.device.api.ui.*; net.rim.device.api.ui.container.*; net.rim.device.api.ui.component.*; net.rim.device.api.ui.decor.*; net.rim.device.api.system.*; net.rim.device.api.ui.component.table.*; public class TableModelDemo extends UiApplication { public static void main(String[] args) { UiApplication app = new TableModelDemo(); app.enterEventDispatcher(); } } public TableModelDemo() { pushScreen(new TableModelDemoScreen()); } class TableModelDemoScreen extends MainScreen 50
  • 53. Table Quick Reference Guide { private private private private RegionStyles _style; TableModel _tableModel; TableView _tableView; TableController _controller; private static final int NUM_ROWS = 4; private static final int NUM_COLUMNS = 3; private static final int IMAGE_WIDTH = 50; private String modelNum[] = {"8100", "8220", "8300", "8330", "8700g", "8800", "9000", "9500"}; private String modelName[] = {"Pearl", "Pearl Flip", "Curve", "Curve", "8700g", "8800", "Bold", "Storm"}; private String osVersion[] = {"4.3", "4.6", "4.5", "4.6", "4.1", "4.2.1", "4.6", "4.7"}; private String deviceYear[] = {"2006", "2008", "2008", "2008", "2005","2007", "2008", "2008"}; private String deviceInterface[] = {"keyboard/trackball", "keyboard/trackball", "keyboard/trackball", "keyboard/trackball", "keyboard", "keyboard/trackball", "keyboard/trackball", "keyboard/trackball/touch"}; public TableModelDemoScreen() { super(Manager.NO_VERTICAL_SCROLL); setTitle("Table Model Demo"); _style = new RegionStyles(BorderFactory.createSimpleBorder(new XYEdges(1, 1, 1, 1), Border.STYLE_SOLID), null, null, null, RegionStyles.ALIGN_LEFT, RegionStyles.ALIGN_MIDDLE); _tableModel = new TableModel(); _tableView = new TableView(_tableModel); _tableView.setDataTemplateFocus(BackgroundFactory .createLinearGradientBackground(Color.WHITE, Color.WHITE, Color.BLUEVIOLET, Color.BLUEVIOLET)); _controller = new TableController(_tableModel, _tableView); _tableView.setController(_controller); setStyle(); add(new LabelField("BlackBerry Devices", LabelField.FIELD_HCENTER)); add(new SeparatorField()); add(_tableView); for(int i = 0; i < modelName.length; i++) { String imageFileName = modelNum[i] + ".png"; 51
  • 54. Table Quick Reference Guide Bitmap bitmap = Bitmap.getBitmapResource(imageFileName); StringBuffer displayName = new StringBuffer(modelNum[i]); if(!modelName[i].equals(modelNum[i])) { displayName.append(" ("); displayName.append(modelName[i]); displayName.append(")"); } _tableModel.addRow(new Object[] {bitmap, displayName.toString(), osVersion[i], deviceYear[i], deviceInterface[i]}); } } public void setStyle() { DataTemplate dataTemplate = new DataTemplate(_tableView, NUM_ROWS, NUM_COLUMNS) { public Field[] getDataFields(int modelRowIndex) { Object[] data = (Object[]) _tableModel.getRow(modelRowIndex); Field[] fields = new Field[data.length]; for(int i = 0; i < data.length; i++) { if(data[i] instanceof Bitmap) { fields[i] = new BitmapField((Bitmap) data[i]); } else if(data[i] instanceof String) { fields[i] = new LabelField(data[i], Field.FOCUSABLE); } else { fields[i] = (Field) data[i]; } } }; } return fields; dataTemplate.createRegion(new XYRect(0, 1, 1, 3), _style); dataTemplate.createRegion(new XYRect(0, 0, 2, 1), _style); dataTemplate.setRowProperties(0, new TemplateRowProperties(Font.getDefault().getHeight() + (_style.getBorder() == null ? 0 : _style.getBorder().getTop() + 52
  • 55. Quick Reference Guide Table _style.getBorder().getBottom()) + (_style.getMargin() == null ? 0 : _style.getMargin().top + _style.getMargin().bottom))); for(int i = 1; i < NUM_ROWS; i++) { dataTemplate.createRegion(new XYRect(1, i, 1, 1), _style); dataTemplate.setRowProperties(i, new TemplateRowProperties(Font.getDefault().getHeight() + (_style.getBorder() == null ? 0 : _style.getBorder().getTop() + _style.getBorder().getBottom()) + (_style.getMargin() == null ? 0 : _style.getMargin().top + _style.getMargin().bottom))); } int width = IMAGE_WIDTH + (_style.getBorder() == null ? 0 : _style.getBorder().getTop() + _style.getBorder().getBottom()) + (_style.getMargin() == null ? 0 : _style.getMargin().top + _style.getMargin().bottom); dataTemplate.setColumnProperties(0, new TemplateColumnProperties(width)); dataTemplate.setColumnProperties(1, new TemplateColumnProperties(Display.getWidth() - width)); } } _tableView.setDataTemplate(dataTemplate); dataTemplate.useFixedHeight(true); 53
  • 56. Other components Quick Reference Guide Other components Browser field Use a browser field to display web content in a BlackBerry® device application. Class Supported since Example BrowserField BlackBerry® Java® SDK 5.0 For more information about browser fields, see the UI & Navigation Development Guide. Code sample: Creating a browser field import net.rim.device.api.browser.field2.*; import net.rim.device.api.ui.*; import net.rim.device.api.ui.container.*; public class BrowserFieldDemo extends UiApplication { public static void main(String[] args) { BrowserFieldDemo app = new BrowserFieldDemo(); app.enterEventDispatcher(); } } public BrowserFieldDemo() { pushScreen(new BrowserFieldDemoScreen()); } class BrowserFieldDemoScreen extends MainScreen 54 7
  • 57. Title bar Quick Reference Guide { } public BrowserFieldDemoScreen() { BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig(); myBrowserFieldConfig.setProperty(BrowserFieldConfig .NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER); BrowserField browserField = new BrowserField(myBrowserFieldConfig); } add(browserField); browserField.requestContent("http://www.blackberry.com"); Title bar Use a title bar to provide BlackBerry® device users with information at the top of your application. Most title bars contain only a title, but title bars can display the following items: • • • • • application icon, descriptive title, and time application notifications, such as a new message indicator wireless connection indicators, including the wireless coverage level, network coverage, GPS indicator, Bluetooth® indicator, and Wi-Fi® connection indicator battery power indicator active call indicator Class Supported since Example StandardTitleBar BlackBerry® Java® SDK 6.0 For more information about title bars, see the UI Guidelines. Code sample: Creating a title bar 55
  • 58. Map field Quick Reference Guide import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class TitleBarDemo extends UiApplication { public static void main(String[] args) { TitleBarDemo theApp = new TitleBarDemo(); theApp.enterEventDispatcher(); } public TitleBarDemo() { pushScreen(new TitleBarDemoScreen()); } } class TitleBarDemoScreen extends MainScreen { public TitleBarDemoScreen() { StandardTitleBar myTitleBar = new StandardTitleBar() .addIcon("my_logo.png") .addTitle("Title Bar Demo") .addClock() .addNotifications() .addSignalIndicator(); myTitleBar.setPropertyValue(StandardTitleBar.PROPERTY_BATTERY_VISIBILITY, StandardTitleBar.BATTERY_VISIBLE_LOW_OR_CHARGING); setTitleBar(myTitleBar); } } Map field Use a map field to display a map in a BlackBerry® device application. Class Supported since 56 MapField BlackBerry® Java® SDK 6.0
  • 59. Quick Reference Guide Map field Example For more information about map fields and location-based services, see the Location-Based Services Development Guide. Code sample: Creating a map field import import import import net.rim.device.api.lbs.maps.model.*; net.rim.device.api.lbs.maps.ui.*; net.rim.device.api.ui.*; net.rim.device.api.ui.container.*; public class MapFieldDemo extends UiApplication { public static void main(String[] args) { MapFieldDemo theApp = new MapFieldDemo(); theApp.enterEventDispatcher(); } public MapFieldDemo() { pushScreen(new MapScreen()); } } class MapScreen extends FullScreen { public MapScreen() { super( FullScreen.DEFAULT_CLOSE | FullScreen.DEFAULT_MENU ); MapField map = new MapField(); MapAction action = map.getAction(); action.setCentreAndZoom(new MapPoint(43.46518, -80.52237), 3); add(map); } } 57
  • 60. Quick Reference Guide Provide feedback To provide feedback on this deliverable, visit www.blackberry.com/docsfeedback. 58 Provide feedback 8
  • 61. Document revision history Quick Reference Guide Document revision history Date Description 29 October 2010 9 Added the following topics: • • • • • • 4 October 2010 Added the following topics: • 24 August 2010 Map field Added the following topic: • 3 August 2010 AutoText edit field Active AutoText edit field Gauge field Bitmap field Button Table Toolbar Initial version. 59
  • 62. Quick Reference Guide Legal notice Legal notice 10 ©2010 Research In Motion Limited. All rights reserved. BlackBerry®, RIM®, Research In Motion®, and related trademarks, names, and logos are the property of Research In Motion Limited and are registered and/or used in the U.S. and countries around the world. Java is a trademark of Oracle America, Inc. Bluetooth is a trademark of Bluetooth SIG. Wi-Fi is a trademark of the Wi-Fi Alliance. All other trademarks are the property of their respective owners. This documentation including all documentation incorporated by reference herein such as documentation provided or made available at www.blackberry.com/go/docs is provided or made accessible "AS IS" and "AS AVAILABLE" and without condition, endorsement, guarantee, representation, or warranty of any kind by Research In Motion Limited and its affiliated companies ("RIM") and RIM assumes no responsibility for any typographical, technical, or other inaccuracies, errors, or omissions in this documentation. In order to protect RIM proprietary and confidential information and/or trade secrets, this documentation may describe some aspects of RIM technology in generalized terms. RIM reserves the right to periodically change information that is contained in this documentation; however, RIM makes no commitment to provide any such changes, updates, enhancements, or other additions to this documentation to you in a timely manner or at all. This documentation might contain references to third-party sources of information, hardware or software, products or services including components and content such as content protected by copyright and/or third-party web sites (collectively the "Third Party Products and Services"). RIM does not control, and is not responsible for, any Third Party Products and Services including, without limitation the content, accuracy, copyright compliance, compatibility, performance, trustworthiness, legality, decency, links, or any other aspect of Third Party Products and Services. The inclusion of a reference to Third Party Products and Services in this documentation does not imply endorsement by RIM of the Third Party Products and Services or the third party in any way. EXCEPT TO THE EXTENT SPECIFICALLY PROHIBITED BY APPLICABLE LAW IN YOUR JURISDICTION, ALL CONDITIONS, ENDORSEMENTS, GUARANTEES, REPRESENTATIONS, OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY CONDITIONS, ENDORSEMENTS, GUARANTEES, REPRESENTATIONS OR WARRANTIES OF DURABILITY, FITNESS FOR A PARTICULAR PURPOSE OR USE, MERCHANTABILITY, MERCHANTABLE QUALITY, NONINFRINGEMENT, SATISFACTORY QUALITY, OR TITLE, OR ARISING FROM A STATUTE OR CUSTOM OR A COURSE OF DEALING OR USAGE OF TRADE, OR RELATED TO THE DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NON-PERFORMANCE OF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCED HEREIN, ARE HEREBY EXCLUDED. YOU MAY ALSO HAVE OTHER RIGHTS THAT VARY BY STATE OR PROVINCE. SOME JURISDICTIONS MAY NOT ALLOW THE EXCLUSION OR LIMITATION OF IMPLIED WARRANTIES AND CONDITIONS. TO THE EXTENT PERMITTED BY LAW, ANY IMPLIED WARRANTIES OR CONDITIONS RELATING TO THE DOCUMENTATION TO THE EXTENT THEY CANNOT BE EXCLUDED AS SET OUT ABOVE, BUT CAN BE LIMITED, ARE HEREBY LIMITED TO NINETY (90) DAYS FROM THE DATE YOU FIRST ACQUIRED THE DOCUMENTATION OR THE ITEM THAT IS THE SUBJECT OF THE CLAIM. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, IN NO EVENT SHALL RIM BE LIABLE FOR ANY TYPE OF DAMAGES RELATED TO THIS DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NONPERFORMANCE OF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCED HEREIN INCLUDING WITHOUT LIMITATION ANY OF THE FOLLOWING DAMAGES: DIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR AGGRAVATED DAMAGES, DAMAGES FOR LOSS OF PROFITS OR REVENUES, FAILURE TO REALIZE ANY EXPECTED SAVINGS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF 60
  • 63. Quick Reference Guide Legal notice BUSINESS OPPORTUNITY, OR CORRUPTION OR LOSS OF DATA, FAILURES TO TRANSMIT OR RECEIVE ANY DATA, PROBLEMS ASSOCIATED WITH ANY APPLICATIONS USED IN CONJUNCTION WITH RIM PRODUCTS OR SERVICES, DOWNTIME COSTS, LOSS OF THE USE OF RIM PRODUCTS OR SERVICES OR ANY PORTION THEREOF OR OF ANY AIRTIME SERVICES, COST OF SUBSTITUTE GOODS, COSTS OF COVER, FACILITIES OR SERVICES, COST OF CAPITAL, OR OTHER SIMILAR PECUNIARY LOSSES, WHETHER OR NOT SUCH DAMAGES WERE FORESEEN OR UNFORESEEN, AND EVEN IF RIM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, RIM SHALL HAVE NO OTHER OBLIGATION, DUTY, OR LIABILITY WHATSOEVER IN CONTRACT, TORT, OR OTHERWISE TO YOU INCLUDING ANY LIABILITY FOR NEGLIGENCE OR STRICT LIABILITY. THE LIMITATIONS, EXCLUSIONS, AND DISCLAIMERS HEREIN SHALL APPLY: (A) IRRESPECTIVE OF THE NATURE OF THE CAUSE OF ACTION, DEMAND, OR ACTION BY YOU INCLUDING BUT NOT LIMITED TO BREACH OF CONTRACT, NEGLIGENCE, TORT, STRICT LIABILITY OR ANY OTHER LEGAL THEORY AND SHALL SURVIVE A FUNDAMENTAL BREACH OR BREACHES OR THE FAILURE OF THE ESSENTIAL PURPOSE OF THIS AGREEMENT OR OF ANY REMEDY CONTAINED HEREIN; AND (B) TO RIM AND ITS AFFILIATED COMPANIES, THEIR SUCCESSORS, ASSIGNS, AGENTS, SUPPLIERS (INCLUDING AIRTIME SERVICE PROVIDERS), AUTHORIZED RIM DISTRIBUTORS (ALSO INCLUDING AIRTIME SERVICE PROVIDERS) AND THEIR RESPECTIVE DIRECTORS, EMPLOYEES, AND INDEPENDENT CONTRACTORS. IN ADDITION TO THE LIMITATIONS AND EXCLUSIONS SET OUT ABOVE, IN NO EVENT SHALL ANY DIRECTOR, EMPLOYEE, AGENT, DISTRIBUTOR, SUPPLIER, INDEPENDENT CONTRACTOR OF RIM OR ANY AFFILIATES OF RIM HAVE ANY LIABILITY ARISING FROM OR RELATED TO THE DOCUMENTATION. Prior to subscribing for, installing, or using any Third Party Products and Services, it is your responsibility to ensure that your airtime service provider has agreed to support all of their features. Some airtime service providers might not offer Internet browsing functionality with a subscription to the BlackBerry® Internet Service. Check with your service provider for availability, roaming arrangements, service plans and features. Installation or use of Third Party Products and Services with RIM's products and services may require one or more patent, trademark, copyright, or other licenses in order to avoid infringement or violation of third party rights. You are solely responsible for determining whether to use Third Party Products and Services and if any third party licenses are required to do so. If required you are responsible for acquiring them. You should not install or use Third Party Products and Services until all necessary licenses have been acquired. Any Third Party Products and Services that are provided with RIM's products and services are provided as a convenience to you and are provided "AS IS" with no express or implied conditions, endorsements, guarantees, representations, or warranties of any kind by RIM and RIM assumes no liability whatsoever, in relation thereto. Your use of Third Party Products and Services shall be governed by and subject to you agreeing to the terms of separate licenses and other agreements applicable thereto with third parties, except to the extent expressly covered by a license or other agreement with RIM. Certain features outlined in this documentation require a minimum version of BlackBerry® Enterprise Server, BlackBerry® Desktop Software, and/or BlackBerry® Device Software. The terms of use of any RIM product or service are set out in a separate license or other agreement with RIM applicable thereto. NOTHING IN THIS DOCUMENTATION IS INTENDED TO SUPERSEDE ANY EXPRESS WRITTEN AGREEMENTS OR WARRANTIES PROVIDED BY RIM FOR PORTIONS OF ANY RIM PRODUCT OR SERVICE OTHER THAN THIS DOCUMENTATION. Research In Motion Limited 295 Phillip Street 61
  • 64. Quick Reference Guide Waterloo, ON N2L 3W8 Canada Research In Motion UK Limited Centrum House 36 Station Road Egham, Surrey TW20 9LF United Kingdom Published in Canada 62 Legal notice