/tags/45_137release/src/net/code/btalk/ui/BuddyScreen.java
Java | 154 lines | 135 code | 16 blank | 3 comment | 17 complexity | 70e8c079ce9260b2df2bd09c54e95768 MD5 | raw file
✨ Summary
- package net.code.btalk.ui;
-
- import net.code.btalk.BTalk;
- import net.code.btalk.Buddy;
- import net.code.btalk.SavedData;
- import net.rim.device.api.ui.Field;
- import net.rim.device.api.ui.Manager;
- import net.rim.device.api.ui.MenuItem;
- import net.rim.device.api.ui.component.Dialog;
- import net.rim.device.api.ui.component.DialogClosedListener;
- import net.rim.device.api.ui.component.EditField;
- import net.rim.device.api.ui.component.LabelField;
- import net.rim.device.api.ui.container.MainScreen;
- import net.rim.device.api.ui.container.PopupScreen;
-
- public class BuddyScreen extends MainScreen {
- public static BTalk btalk;
- public IconLabelField statusBanner;
- public BuddyListField buddyList;
-
- public BuddyScreen(BuddyListField l) {
- statusBanner = new IconLabelField(BuddyListField.onlineIcon, BTalkLocale.locale[BTalkLocale.ITEM_STATUS_AVA][SavedData.lang]);
- this.setTitle(statusBanner);
-
- this.buddyList = l;
- this.add(l);
-
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_CHAT][SavedData.lang], 0, 0) {
- public void run() {
- int idx = buddyList.getSelectedIndex();
- if (idx >= 0) {
- btalk.currentBuddy = (Buddy) buddyList.buddyVector.elementAt(idx);
- btalk.openBuddy(btalk.currentBuddy);
- }
- }
- });
-
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_RETRY][SavedData.lang], 1, 0) {
- public void run() {
- if (btalk.state == BTalk.STATE_FAILED) {
- btalk.state = BTalk.STATE_RETRYING;
- btalk.setMyStatus(BTalk.STATE_RETRYING, false, null);
- btalk.retryCount = 0;
- btalk.retryBtalk();
- }
- }
- });
-
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_ADD_BUDDY][SavedData.lang], 0x00020000, 0) {
- public void run() {
- // TODO finish add new buddy
- final EditField jidField;
- Dialog addBuddyDialog = new Dialog(Dialog.D_OK_CANCEL, BTalkLocale.locale[BTalkLocale.ITEM_ADD_LAB][SavedData.lang], 0, null, Manager.USE_ALL_WIDTH);
- jidField = new EditField(EditField.NO_COMPLEX_INPUT | EditField.NO_NEWLINE);
- addBuddyDialog.add(jidField);
- addBuddyDialog.setDialogClosedListener(new DialogClosedListener() {
- public void dialogClosed(Dialog dialog, int choice) {
- switch (choice) {
- case 0:
- final String jid = jidField.getText();
- if (jid.indexOf('@') == -1) {
- Dialog.alert("Not a legal Email address!");
- } else {
- (new Thread() {
- public void run() {
- btalk.subscribe(jid);
- }
- }).start();
- }
- return;
- case -1:
- return;
- default:
- return;
- }
- }
- });
- addBuddyDialog.show();
- }
-
- });
-
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_RM_BUDDY][SavedData.lang], 0x00020001, 0) {
- public void run() {
- //TODO finish delete buddy
- if (buddyList.buddyVector.size() <= 0)
- return;
- final Buddy b = buddyList.getBuddyAt(buddyList.getSelectedIndex());
- String str;
- if (!b.name.equals(b.jid))
- str = b.name+"("+b.jid+")";
- else
- str = b.jid;
- int rst = Dialog.ask(BTalkLocale.locale[BTalkLocale.ITEM_RM_LAB][SavedData.lang]+" \""+str+"\"?", new String[] {"Yes", "No"}, new int[] {1, 2}, 2);
-
- switch (rst) {
- case 1:
- (new Thread() {
- public void run() {
- btalk.unsubscribe(b.jid);
- }
- }).start();
- buddyList.deleteBuddy(b.jid);
- return;
- case 2:
- return;
- }
- }
- });
-
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_OPTIONS][SavedData.lang], 0x00030000, 0) {
- public void run() {
- btalk.pushScreen(new OptionScreen());
- }
- });
-
- // add exit menuitem
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_EXIT][SavedData.lang], 0x00030002, 0) {
- public void run() {
- if (btalk.state == BTalk.STATE_ONLINE) {
- btalk.logoffJxa();
- }
- btalk.exitBtalk();
- }
- });
-
- this.addMenuItem(new MenuItem(BTalkLocale.locale[BTalkLocale.ITEM_ABOUT][SavedData.lang], 0x00030001, 0) {
- public void run() {
- Dialog.inform("BTalk "+BTalk.Version+" (For 4.5)\n" +
- "By zhtlancer\n<zhtlancer@gmail.com>\n" +
- BTalkLocale.locale[BTalkLocale.ITEM_ABOUT_TEXT][SavedData.lang]);
- }
- });
- }
-
- public boolean onClose() {
- if (btalk.state == BTalk.STATE_ONLINE ||
- btalk.state == BTalk.STATE_RETRYING ||
- btalk.state == BTalk.STATE_WAITING) {
- btalk.requestBackground();
- } else {
- btalk.exitBtalk();
- }
- return true;
- }
-
- public boolean pageDown(int amount, int status, int time) {
- return this.trackwheelRoll(amount, status, time);
- }
-
- public boolean pageUp(int amount, int status, int time) {
- return this.trackwheelRoll(amount, status, time);
- }
- }