Monday, August 20, 2012

Excel Hot Keys

Undo: Ctrl+Z
Copy: Ctrl+C
Paste: Enter
Multiple Paste: Ctrl+V
Cut: Ctrl+X
Find: Ctrl + F
Find & Replace: Ctrl + H
Print: Ctrl + P
Save: Ctrl + S
Close: Ctrl + F4
Close Excel: Alt + F4
Move to edge of region: Ctrl + Arrow
Select current region: Ctrl + *
Select all cells: Ctrl + A
Select A1: Ctrl + Home
Select last cell in used range: Ctrl + End
Select from active cell to last cell in used range: Ctrl+Shift+End
Select from active cell to A1: Ctrl+Shift+Home
Move to the next sheet: Ctrl+PageDown
Move to the previous sheet: Ctrl+PageUp
Move to next open workbook: Ctrl + Tab
Open new workbook: Ctrl + N
Insert new worksheet: Shift + F11
Paste function window: Shift + F3
Insert new function: = + FunctionName + Ctrl + A
Open VBE: Alt+F11
Array formula: Ctrl+Shift+Enter
Define name: Ctrl + F3
Paste name: F3
Select columns: Ctrl + Spacebar
Select rows: Shift + Spacebar
Format Cells: Ctrl+1,
Bold: Ctrl+B
Underline: Ctrl+U
Current Date: Ctrl+;
Current time: Ctrl+shift+:
Hide Cell: Ctrl + 9
Unhide Cell: Ctrl + Shift + 9
Hide Column: Ctrl + 0
Unhide Column: Ctrl + Shift + 0

F2 Edit the selected cell.
F5 Go to a specific cell. For example, C6.
F7 Spell check selected text and/or document.
F11 Create chart.
Alt + Shift + F1 Insert New Worksheet.
Shift + F3 Open the Excel formula window.
Shift + F5 Bring up search box.
Ctrl + 5 Strikethrough highlighted selection.
Ctrl + P Bring up the print dialog box to begin printing.
Ctrl + F9 Minimize current window.
Ctrl + F10 Maximize currently selected window.
Ctrl + F6 Switch between open workbooks / windows.
Alt + = Create a formula to sum all of the above cells
Ctrl + ' Insert the value of the above cell into cell currently selected.
Ctrl + Shift + ! Format number in comma format.
Ctrl + Shift + $ Format number in currency format.
Ctrl + Shift + # Format number in date format.
Ctrl + Shift + % Format number in percentage format.
Ctrl + Shift + ^ Format number in scientific format.
Ctrl + Shift + @ Format number in time format.

Tips and Tricks Blackberry

Important Keys

ALT key = :alt: has half moon on top of it. left side of keyboard below the A.

(Newer blackberry devices have "ALT" spelled out on the key)

CAP key = :cap: bottom right key (AKA SHIFT key)
In General

Hold the :alt: key while you roll the thumb-wheel to scroll horizontally in any field where you can enter or view text.

Hold the :alt: key while you roll the thumb-wheel to scroll through a field to view options.

Hold the :cap: key while you roll the thumb-wheel to select multiple items in a list.

alt:+Escape - Allows multitasking, brings up Taskbar on any screen. Similiar to Windows ALT+TAB

alt:+:cap: - Turns on CAPS lock. Hold :alt: first then press :cap: . An oval with an up arrow shows up in the upper right corner of the screen.

cap:+:alt: - Turns on NUM lock. Hold :cap: first then press :alt: . A # sign shows up in the oval in the upper right corner of the screen)

Type the first letter of an item in an options list or menu to jump directly to that item.

Type the first letters of a name or the initials separated by a :space: to find a contact in the Address Book screen.

Press C to compose a new message from the home screen or within Messages. (If this does not work, make sure Phone->Options->"Dial From Home Screen" is turned off. This re-enables keypress shortcuts for icons from the home screen.)

Press :alt:+:enter: to keylock your BlackBerry quickly from the home screen. (Alternate keypress is just press K, but this only works if "Dial From Home Screen" is disabled)

Rearrange the ribbon: In the Home screen (ribbon), hold the :alt: key and click the thumb-wheel to bring up a menu. You can then select Move Icon, Hide Icon, or Show All. If you hide an icon, to show it again click Show all and it will appear with an X over it, bring up the menu on it and uncheck hide icon.

The Blackberry display can be backlit to allow reading messages in the dark. To get the light to come on, hit the backlight button usually in the lower right of the keyboard. Hopefully you have a backlit keyboard as well so you can type in the dark.

Turning the radio off and back on when coverage is spotty and you've lost signal seems to help. Also going into network and selecting register now will help. And if you have a phone/combo BB then on some you can go into network and select Scan for networks. then select the network you are on, for example T-mobile, then save. After doing this the radio will reset and you may receive a register message and a new service book, which you can accept from the service book menu in options.

Password protect your BB. To set a password, go to the Options menu to the Security item. Set the desired timeout (I use 15 minutes) and enable/set a password. In conjunction with this, you should also go to the Options menu to the Owner item, and enter your name, phone number, etc. When the password protection kicks in, this is what is displayed on the screen.

After five incorrect attempts at typing in your password, the password starts echoing (figuring you really need all the help you can get). After ten attempts, it performs a lobotomy on itself and almost all data is cleared. The Memo database, however, is retained and visible.

To support more than one signature. Wipe out your auto-signature in the Redirector of the Desktop Software
and just use 'AutoText' to configure alternate sigs.
In the Message List

(Some of these work in tasks, memos, and appointments also)
Sorting:

alt:+I - show only incoming mail

alt:+O - show only outgoing mail (messages you have sent - i.e. checkmark icon)

alt:+P - show phone log messages

alt:+S - show SMS messages

alt:+V - show VoiceMail messages

Navigating:

T - go to top of message listing

B - go to end/bottom of message listing

del: - close message listing and return to home screen (ribbon)

space: - pagedown

cap:+:space: - pageup

Deleting multiple messages at once:

Highlight a date (i.e. Fri, Oct 05,2001) in the message list, hit the thumb-wheel and select delete prior. All messages prior to that date will be deleted.

Hold down the :cap: key and use the thumb-wheel to scroll up or down to select messages. Click the thumb-wheel and select 'Delete Messages'. Combine this with a sorting tip to make it even more useful (i.e. To delete the last 5 messages that you have sent (checkmarks), press :alt: then the letter 'O' (for outgoing) this will show all of your sent messages, then per this tip scroll down and select the last five.
While In A Message

Navigating:

enter: or :space: - scroll down a page/screen at a time

alt:+:enter: or :alt:+:space: - scroll back a page/screen at a time

B - scroll to end of page

T - scroll to top of page

U - jump to closest unread message

N - jump to next message

P - jump to previous message

del: - close message and return to message listing

Reply-to/Forward:

R - reply to or answer this message

F - forward this message Select Text (OS v2.1+): Press the :cap: key and then scroll the thumb-wheel to select. If you release the :cap: key and scroll the thumb-wheel you will select entire lines. Press the :cap: key again at any time to start selecting by character again.

Hold down :alt: key + CLICK the thumb-wheel (click it don't hold it down), release the thumb-wheel and then use it to scroll whole lines. You can press and hold the :alt: key at anytime to start selecting by character again.

Click scroll wheel and select SELECT from the menu. scroll wheel to select entire line. click scroll wheel again and select copy. With either method, click the thumb-wheel and select 'Cut Selection' or 'Copy Selection'... to paste, open a new message or whatever, click the thumb-wheel, and then select 'Paste Selection'.
Composing Message

Press and hold a letter to capitalize it (with Key Rate enabled).

Press the :space: key twice to insert a period and capitalize the next letter.

Press the :space: key to insert the "@" and "." characters in an Email field. Backspace and type again to over-ride this like you would with AutoText.

Press and hold a letter key and roll the thumb-wheel to scroll through international/accent characters, equation symbols and other marks.

Calendar (from Agenda screen)

Press T to go to "Today" in the Calendar screen.

Press G to go to a specific date in the Calendar screen.

The default date range for Calendar synchronization in Desktop Manager may not suit most people. While configuring the Calendar synchronization, click the Advanced button and specify the desired range.
Battery

The largest draw on battery life is the transmitter, so if you are transmitting a lot, you can expect reduced battery life. And the backlight.

Being in fringe or no coverage areas will eat up your battery as it attempts to transmit. If you're in an area that is out of range, turn your BB's radio off manually or use Options / Auto On Off to conserve battery life.
Geek Tips

Rather than looking at the bars, you can change the display of the 'signal strength' to read in real numbers. While at the home screen (ribbon), hold down the half moon :alt: key while you type NMLL. The bars should change to read numbers. For the 'signal strength', if you are in the 100 area (that means -100 dBm), you will be transmitting at maximum power (2 Watts), and since coverage is hit and miss at this weak a signal, you may end up transmitting many times before the packets make it through. This might help explain any poorer than normal battery life. I consider anything at -90 to -50 excellent.

To get the bars back: While at the home screen (ribbon), hold down the half moon :alt: key while you type NMLL again.

Hold down the half moon :alt: key -AND- the :cap: key at the same time, then the letter 'H'. This brings up the "Help Me!" screen that lists version, app version, pin, imei, uptime, signal strength, batterylevel, file free, and file total.

Hold down the half moon :alt: while you type LGLG. This brings up the event log where you can clear events (frees some memory) or view them or copy the contents to mail to someone.

alt:+:cap:+:del: will reboot your BB.

If you would like to have delivery confirmation for your regular outgoing emails on your BlackBerry, add "" to the beginning of your subject line. You must include the brackets. You will get an email back confirming delivery of your message.

Wednesday, August 11, 2010

Hotkey Implementation In Blackberry

Hotkey or keyboard shortcut is very good feature to have in the UI. This can be implemented in Blackberry. The character which is to be featured as hotkey is shown with underline.

For example, if we want 'C' to be hotkey in 'Cancel', then we will need to postfix character 'C' by unicode character '\u0332'; so in this case 'Cancel' will be as 'C\u0332ancel'.

To implement the hotkey functionality we need to override keyChar method of Screen class and give action on specified character.

Following is blackberry code which implements hotkey O and C for OK and Cancel buttons respectively.

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

/**
*

Main class of the application.
*/
public class Hotkey extends UiApplication
{
//statics ------------------------------------------------------------------
public static void main(String[] args)
{
Hotkey theApp = new Hotkey();

//To make the application enter the event thread and start processing messages, we invoke the enterEventDispatcher method
theApp.enterEventDispatcher();
}

public Hotkey()
{
pushScreen(new HotkeyTestScreen());
}
}

class HotkeyTestScreen extends MainScreen
{
private KButtonField m_oOKButtonField;
private KButtonField m_oCancelButtonField;

public HotkeyTestScreen()
{
super();

setTitle("Hotkey Test");

add(m_oOKButtonField = new KButtonField("O\u0332K"));

add(m_oCancelButtonField = new KButtonField("C\u0332ancel"));
}

protected boolean keyChar(char key, int status, int time)
{
boolean bReturn = true;

if(('O' == key) || ('o' == key))
{
m_oOKButtonField.fieldChangeNotify(0);
}
else if(('C' == key) || ('c' == key))
{
m_oCancelButtonField.fieldChangeNotify(0);
}
else
{
bReturn = super.keyChar(key, status, time);
}

return bReturn;
}

class KButtonField extends ButtonField
{
KButtonField(String strLabel)
{
super(strLabel);
}

public void fieldChangeNotify(int context)
{
Status.show(getLabel() + " button clicked!");
}
}
}

Thursday, May 6, 2010

URL Encoding Decoding In Blackberry or J2ME

URLs often contains characters outside the ASCII set, the URL has to be converted to valid ASCII format using URL encoding which replaces unsafe ASCII characters with "%" followed by two hexadecimal digits corresponding to the character values in the ISO-8859-1 character-set.

Following is the code to achieve just that. It is tested with Blackberry but can be used in J2ME applications too.

class UrlEncoderDecoder
{
static final String HEX_DIGITS = "0123456789ABCDEF";


/**
* @param arrData The string to encode
* @return The URL-encoded string
*/
protected static String fnUrlEncode(byte[] arrData)
{
StringBuffer strResult = new StringBuffer();

for(int i = 0; i < arrData.length; i++)
{
char c = (char)arrData[i];

switch( c )
{
case '_':
case '.':
case '*':
case '-':
case '/':
{
strResult.append(c);
break;
}
case ' ':
{
strResult.append('+');
break;
}
default:
{
if((c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9'))
{
strResult.append( c );
}
else
{
strResult.append('%');
strResult.append(HEX_DIGITS.charAt((c & 0xF0) >> 4 ));
strResult.append(HEX_DIGITS.charAt(c & 0x0F ));
}
}
}
} // for

return strResult.toString();
}

/**
* @param arrData The byte array containing the bytes of the string
* @return A decoded String
*/
protected static String fnUrlDecode(byte[] arrData)
{
String strDecodedData = "";

if(null != arrData)
{
byte[] arrDecodeBytes = new byte[arrData.length];

int nDecodedByteCount = 0;

try
{
for(int i = 0; i < arrData.length; i++ )
{
switch(arrData[i])
{
case '+':
{
arrDecodeBytes[nDecodedByteCount++] = (byte) ' ';
break ;
}
case '%':
{
arrDecodeBytes[nDecodedByteCount++] = (byte)((HEX_DIGITS.indexOf(arrData[++i]) << 4) +
(HEX_DIGITS.indexOf(arrData[++i])) );
break ;
}
default:
{
arrDecodeBytes[nDecodedByteCount++] = arrData[i];
}
}
}

strDecodedData = new String(arrDecodeBytes, 0, nDecodedByteCount) ;
}
catch(Exception e)
{
}
}

return strDecodedData;
}
}

Tuesday, May 4, 2010

AES Encryption

AES is a standard private-key or symmetric cryptography. It supports combination of key and block sizes of 128, 192, and 256.

In Blackberry AES encryption can be achieved as follows:

import java.io.*;
import net.rim.device.api.io.*;
import net.rim.device.api.crypto.*;

import net.rim.device.api.util.*;

/**
* This is utility class for doing AES encryption and decryption.
* It uses 'PKCS5' as padding.
*
*/
public class AESUtil
{
/**
* Encrypts data using specified key data using AES algorithm.
*
* @param arrKeyData Key data that will be used for encryption.
* @param arrData Data to be encrypted.
*
* @return Encryped data in byte array.
*/
public static byte[] fnEncrypt(byte[] arrKeyData, byte[] arrData)
throws CryptoException, IOException
{
// Create the AES key to use for encrypting the data.
// This will create an AES key using as much of the keyData as possible.
AESKey oKey = new AESKey(arrKeyData);

AESEncryptorEngine oEngine = new AESEncryptorEngine(oKey);

PKCS5FormatterEngine oPKCS5Engine = new PKCS5FormatterEngine(oEngine);

ByteArrayOutputStream oOutput = new ByteArrayOutputStream();
BlockEncryptor encryptor = new BlockEncryptor(oPKCS5Engine, oOutput);

encryptor.write(arrData);
encryptor.close();
oOutput.close();


return oOutput.toByteArray();
}

/**
* Decrypts encrypted data using specified key data using AES algorithm.
*
* @param arrKeyData Key data that will be used for decryption.
* @param arrEncryptedData Encryped data that is to be decrypted.
*
* @return Decrypted data in byte array.
*/
public static byte[] fnDecrypt(byte[] arrKeyData, byte[] arrEncryptedData)
throws CryptoException, IOException
{
// Create the AES key to use for encrypting the data.
// This will create an AES key using as much of the keyData as possible.
AESKey oKey = new AESKey(arrKeyData);

AESDecryptorEngine oEngine = new AESDecryptorEngine(oKey);

PKCS5UnformatterEngine oUEngine = new PKCS5UnformatterEngine(oEngine);

ByteArrayInputStream oInput = new ByteArrayInputStream(arrEncryptedData);
BlockDecryptor oDecryptor = new BlockDecryptor(oUEngine, oInput);


byte[] arrTemp = new byte[100];
DataBuffer oBuffer = new DataBuffer();

int nBytesRead = -1;

while(-1 < (nBytesRead = oDecryptor.read(arrTemp)))
{
oBuffer.write(arrTemp, 0, nBytesRead );
}

return oBuffer.getArray();
}
}

Thursday, April 22, 2010

Java Code For Binary Hexadecimal Conversion

In this post code for binary to hex coversion has been posted. This is pure java code and can be used in BlackBerry, J2ME and Java.

/**
* This class provides funcationlity to convert binary byte array to hexadecimal byte array as
* well as to convert hexadecimal byte array to binary byte array.
*/
public class BinHexConverter
{
private static String HEX_STRING = "0123456789ABCDEF";

public static byte[] convertHexToBinary(byte[] hex)
{
int block = 0;

byte[] data = new byte[hex.length / 2];

int index = 0;
boolean next = false;

for (int i=0; i<<= 4; int pos = HEX_STRING.indexOf(Character.toUpperCase((char) hex[i])); if (pos > -1)
{
block += pos;
}

if (next)
{
data[index] = (byte)(block & 0xff );
index++;
next = false;
}
else
{
next = true;
}
}

return data;
}

private static String convertBinary2Hex(byte[] binary)
{
StringBuffer buf = new StringBuffer();

int block = 0;

for (int i=0; i> 4));
buf.append(HEX_STRING.charAt(binary[i] & 0x0F));
}

return buf.toString();
}
}

/**
* Test class for binary to hex conversion.
*/
public class BinHexTester
{
public static void main(String[] args)
{
String strText = BinHexConverter.convertBinary2Hex("hellohello".getBytes());
System.out.println(strText);
}
}

Wednesday, April 21, 2010

PIM Listener Blackberry

Blackberry provides PIMListener to get notification regarding changes in the PIMItems. Following is a library class created to get notification regarding changes in contact, task, appointment and/or memo on blackberry device.

1. Create object of BBPIMListener.
2. Start listening for specified PIM types by calling method 'fnAddListener()'. Multiple types can be specified by using | (OR) operator. e.g. fnAddListener(BBPIMListener.CONTACT_LIST | BBPIMListener.MEMO_LIST)
3. Override methods to provide specific functionality. e.g. override method 'fnOnContactAdded()' to specify what has to be done on contact addition.

Here is code:

import net.rim.blackberry.api.pdap.*;
import javax.microedition.pim.*;
import java.util.*;

/**
* Library class for listening changes in contact list, task list, appointments
* and/or memos.
*
* @author Dipak
*/
public class BBPIMListener implements PIMListListener
{
public final int CONTACT_LIST = 1;
public final int TASK_LIST = 2;
public final int APPOINTMENT_LIST = 4;
public final int MEMO_LIST = 8;

public final int ADD = 1;
public final int DELETE = 2;
public final int UPDATE = 4;

private BlackBerryPIMList m_oContactList;
private BlackBerryPIMList m_oToDoList;
private BlackBerryPIMList m_oEventList;
private BlackBerryPIMList m_oMemoList;

/**
* Adds listener for specified PIM types and gives information related to
* changes in those.
* @param nType List type; one of CONTACT_LIST, TASK_LIST, APPOINTMENT_LIST,
* MEMO_LIST
*/
public void fnAddListener(int nType)
{
try
{
PIM oPIM = PIM.getInstance();

if(CONTACT_LIST == (nType & CONTACT_LIST))
{
// Contact listener
m_oContactList = (BlackBerryPIMList)oPIM.openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
m_oContactList.addListener(this);
}

if(TASK_LIST == (nType & TASK_LIST))
{
// Task listener
m_oToDoList = (BlackBerryPIMList)oPIM.openPIMList(PIM.TODO_LIST, PIM.READ_WRITE);
m_oToDoList.addListener(this);
}

if(APPOINTMENT_LIST == (nType & APPOINTMENT_LIST))
{
// Calendar listener
m_oEventList = (BlackBerryPIMList)oPIM.openPIMList(PIM.EVENT_LIST, PIM.READ_WRITE);
m_oEventList.addListener(this);
}

if(MEMO_LIST == (nType & MEMO_LIST))
{
// Memo listener
m_oMemoList = (BlackBerryMemoList)oPIM.openPIMList(BlackBerryPIM.MEMO_LIST, PIM.READ_WRITE);
m_oMemoList.addListener(this);
}
}
catch(PIMException e)
{
e.printStackTrace();
}
}

/**
* Removes listener added to the list specified by the user.
*/
public void fnRemoveListener()
{
if(null != m_oContactList)
{
m_oContactList.removeListener(this);
}

if(null != m_oToDoList)
{
m_oToDoList.removeListener(this);
}

if(null != m_oEventList)
{
m_oEventList.removeListener(this);
}

if(null != m_oMemoList)
{
m_oMemoList.removeListener(this);
}
}

// Occurs when an item is added to the PIM list.
public void itemAdded(PIMItem oItem)
{
fnNotifyPIMChange(ADD, null, oItem);
}

// Occurs when an item is removed from the PIM list.
public void itemRemoved(PIMItem oItem)
{
fnNotifyPIMChange(DELETE, null, oItem);
}

// Occurs when an item is updated within the PIM list.
public void itemUpdated(PIMItem oOldItem, PIMItem oNewItem)
{
fnNotifyPIMChange(UPDATE, oOldItem, oNewItem);
}

private void fnNotifyPIMChange(int nOperation, PIMItem oOldItem, PIMItem oNewItem)
{
if(oNewItem instanceof Contact)
{
switch(nOperation)
{
case ADD:
{
fnOnContactAdded((Contact)oNewItem);
break;
}
case DELETE:
{
fnOnContactDeleted((Contact)oNewItem);
break;
}
case UPDATE:
{
fnOnContactUpdated((Contact)oOldItem, (Contact)oNewItem);
break;
}
}
}
else if(oNewItem instanceof ToDo)
{
switch(nOperation)
{
case ADD:
{
fnOnTaskAdded((ToDo)oNewItem);
break;
}
case DELETE:
{
fnOnTaskDeleted((ToDo)oNewItem);
break;
}
case UPDATE:
{
fnOnTaskUpdated((ToDo)oOldItem, (ToDo)oNewItem);
break;
}
}
}
else if(oNewItem instanceof Event)
{
switch(nOperation)
{
case ADD:
{
fnOnAppointmentAdded((Event)oNewItem);
break;
}
case DELETE:
{
fnOnAppointmentDeleted((Event)oNewItem);
break;
}
case UPDATE:
{
fnOnAppointmentUpdated((Event)oOldItem, (Event)oNewItem);
break;
}
}
}
else if(oNewItem instanceof BlackBerryMemo)
{
switch(nOperation)
{
case ADD:
{
fnOnMemoAdded((BlackBerryMemo)oNewItem);
break;
}
case DELETE:
{
fnOnMemoDeleted((BlackBerryMemo)oNewItem);
break;
}
case UPDATE:
{
fnOnMemoUpdated((BlackBerryMemo)oOldItem, (BlackBerryMemo)oNewItem);
break;
}
}
}
}

/**
* Occurs when contact is added to contact list.
* @param oItem Contact that is added to the contact list.
*/
public void fnOnContactAdded(Contact oContact)
{
}

/**
* Occurs when Contact is deleted from contact list.
* @param oItem Contact that is deleted from the contact list.
*/
public void fnOnContactDeleted(Contact oContact)
{
}

/**
* Occurs when Contact is updated in contact list.
* @param oOldItem State of Contact before update.
* @param oNewItem New state of Contact as a result of update.
*/
public void fnOnContactUpdated(Contact oOldContact, Contact oNewContact)
{
}

/**
* Occurs when ToDo(i.e. task) is added to task list.
* @param oItem ToDo(i.e. task) that is added to the task list.
*/
public void fnOnTaskAdded(ToDo oToDo)
{
}

/**
* Occurs when ToDo(i.e. task) is deleted from task list.
* @param oItem ToDo(i.e. task) that is deleted from the task list.
*/
public void fnOnTaskDeleted(ToDo oToDo)
{
}

/**
* Occurs when ToDo(i.e. task) is updated in task list.
* @param oOldItem State of ToDo(i.e. task) before update.
* @param oNewItem New state of ToDo(i.e. task) as a result of update.
*/
public void fnOnTaskUpdated(ToDo oOldToDo, ToDo oNewToDo)
{
}

/**
* Occurs when Event(i.e. appointment) is added to appointment list.
* @param oItem Event(i.e. appointment) that is added to the appointment list.
*/
public void fnOnAppointmentAdded(Event oEvent)
{
}

/**
* Occurs when Event(i.e. appointment) is deleted from appointment list.
* @param oItem Event(i.e. appointment) that is deleted from the appointment list.
*/
public void fnOnAppointmentDeleted(Event oEvent)
{
}

/**
* Occurs when Event(i.e. appointment) is updated in appointment list.
* @param oOldItem State of Event(i.e. appointment) before update.
* @param oNewItem New state of Event(i.e. appointment) as a result of update.
*/
public void fnOnAppointmentUpdated(Event oOldEvent, Event oNewEvent)
{
}

/**
* Occurs when BlackBerryMemo(i.e. memo) is added to memo list.
* @param oItem BlackBerryMemo(i.e. memo) that is added to the memo list.
*/
public void fnOnMemoAdded(BlackBerryMemo oBlackBerryMemo)
{
}

/**
* Occurs when BlackBerryMemo(i.e. memo) is deleted from memo list.
* @param oItem BlackBerryMemo(i.e. memo) that is deleted from the memo list.
*/
public void fnOnMemoDeleted(BlackBerryMemo oBlackBerryMemo)
{
}

/**
* Occurs when BlackBerryMemo(i.e. memo) is updated in memo list.
* @param oOldItem State of BlackBerryMemo(i.e. memo) before update.
* @param oNewItem New state of BlackBerryMemo(i.e. memo) as a result of update.
*/
public void fnOnMemoUpdated(BlackBerryMemo oOldBlackBerryMemo, BlackBerryMemo oNewBlackBerryMemo)
{
}
}