Welcome!

Welcome to the official BlackBerry Support Community Forums.

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

inside custom component

Java Development

Reply
Regular Contributor
Posts: 66
Registered: ‎08-28-2010
My Device: 9630
Accepted Solution

Looking Immediate help regarding preprocessor

 I am developing an application that must be compatible to all device like touch and non touch device.
> I come to know by reading in forum that we can use preprocessor directive for this purpose.
> I am importing touchscreen package using preprocessor directive .  But when i load this .alx file into Curve 8520 it throw classnotfound exception  for touchscreen class.
> I am using the Eclipse 3.4.1 with blackberry plugin 1.0.0.67. I am using the component 4.7.0 for build.
> I want to make single application based on preprocessor directive which must be compatible to all device.
> Below is my code that i use for preprocessor directive for touch screen. please kindly consider i am using the #preprocess as first statement in .java file. when i only use import directive with touchscreen package it load the application in curve and not throw any exception. but when
> i define the //#ifdef function in code my application in curve always throw error. I have also added the preprocess directive to build of project properties.I dont know what i am missing and i am egarly seeking step by step help to work my application on all device based on preprocess.

I am compling this code using 4.7.0.46 component in eclipse and i also set in buidl. i dont why its throwing execption in Curve which hase JDE 4.6. Please looking each and every step for preprocessing help.

/#preprocess
> package com.blackberry.sl;
> //#ifdef JDE_4_7
> import net.rim.device.api.ui.TouchEvent;
> import net.rim.device.api.ui.Touchscreen;
> import net.rim.device.api.ui.TouchGesture;
> //#endif
> import java.io.ByteArrayOutputStream;
> import java.io.DataInputStream;
> import java.io.DataOutputStream;
> import java.io.EOFException;
> import java.io.IOException;
> import java.io.InputStream;
> import java.io.OutputStream;
> import java.io.UnsupportedEncodingException;
> import java.util.Calendar;
> import java.util.Date;
> import java.util.Enumeration;
> import java.util.Hashtable;
> import java.util.TimeZone;
> import java.util.Timer;
> import java.util.TimerTask;
> import javacard.framework.ISOException;
> import javax.bluetooth.BluetoothStateException;
> import javax.bluetooth.DeviceClass;
> import javax.bluetooth.DiscoveryAgent;
> import javax.bluetooth.DiscoveryListener;
> import javax.bluetooth.LocalDevice;
> import javax.bluetooth.RemoteDevice;
> import javax.bluetooth.ServiceRecord;
> import javax.bluetooth.UUID;
> import javax.microedition.io.Connector;
> import javax.microedition.io.HttpConnection;
> import javax.microedition.io.file.FileConnection;
> import net.rim.device.api.bluetooth.BluetoothSerialPort;
> import net.rim.device.api.bluetooth.BluetoothSerialPortInfo;
> import net.rim.device.api.bluetooth.BluetoothSerialPortListener;
> import net.rim.device.api.browser.field.RedirectEvent;
> import net.rim.device.api.collection.List;
> import net.rim.device.api.i18n.ResourceBundle;
> import net.rim.device.api.i18n.SimpleDateFormat;
> import net.rim.device.api.io.FileNotFoundException;
> import net.rim.device.api.io.IOUtilities;
> import net.rim.device.api.io.LineReader;
> import net.rim.device.api.io.http.HttpDateParser;
> import net.rim.device.api.io.http.PushInputStream;
> import net.rim.device.api.synchronization.ConverterUtilities;
> import net.rim.device.api.system.Application;
> import net.rim.device.api.system.BMPEncodedImage;
> import net.rim.device.api.system.Bitmap;
> import net.rim.device.api.system.Characters;
> import net.rim.device.api.system.DeviceInfo;
> import net.rim.device.api.system.Display;
> import net.rim.device.api.system.EncodedImage;
> import net.rim.device.api.system.GIFEncodedImage;
> import net.rim.device.api.system.GPRSInfo;
> import net.rim.device.api.system.KeypadListener;
> import net.rim.device.api.system.PNGEncodedImage;
> import net.rim.device.api.system.GPRSInfo.GPRSCellInfo;
> import net.rim.device.api.ui.Color;
> import net.rim.device.api.ui.Field;
> import net.rim.device.api.ui.FieldChangeListener;
> import net.rim.device.api.ui.FocusChangeListener;
> import net.rim.device.api.ui.Font;
> import net.rim.device.api.ui.FontFamily;
> import net.rim.device.api.ui.Graphics;
> import net.rim.device.api.ui.Keypad;
> import net.rim.device.api.ui.KeypadUtil;
> import net.rim.device.api.ui.Manager;
> import net.rim.device.api.ui.MenuItem;
> import net.rim.device.api.ui.Screen;
> import net.rim.device.api.ui.Ui;
> import net.rim.device.api.ui.UiApplication;
> import net.rim.device.api.ui.XYRect;
> import net.rim.device.api.ui.component.BitmapField;
> import net.rim.device.api.ui.component.Dialog;
> import net.rim.device.api.ui.component.EditField;
> import net.rim.device.api.ui.component.LabelField;
> import net.rim.device.api.ui.component.Menu;
> import net.rim.device.api.ui.component. ListField;
> import net.rim.device.api.ui.component.NullField;
> import net.rim.device.api.ui.component.ObjectChoiceField;
> import net.rim.device.api.ui.component.ObjectListField;
> import net.rim.device.api.ui.component.RadioButtonField;
> import net.rim.device.api.ui.component.RadioButtonGroup;
> import net.rim.device.api.ui.component.RichTextField;
> import net.rim.device.api.ui.component.SeparatorField;
> import net.rim.device.api.ui.component.Status;
> import net.rim.device.api.ui.container.HorizontalFieldManager;
> import net.rim.device.api.ui.container.MainScreen;
> import net.rim.device.api.ui.container.VerticalFieldManager;
> import net.rim.device.api.ui.component.EditField;
> import net.rim.device.api.ui.component.ButtonField;
> import net.rim.device.api.util.Arrays;
> import net.rim.device.api.util.Comparator;
> import net.rim.device.api.util.DataBuffer;
> import net.rim.device.api.util.DateTimeUtilities;
> import net.rim.device.api.util.SimpleSortingVector;
> import net.rim.device.api.ui.container.PopupScreen;
> import net.rim.device.api.xml.jaxp.DOMInternalRepresentation;
> import net.rim.device.api.xml.jaxp.XMLWriter;
> import net.rim.device.api.xml.parsers.DocumentBuilderFactory;
> import net.rim.blackberry.api.invoke.Invoke;
> import net.rim.blackberry.api.invoke.MessageArguments;
> import net.rim.blackberry.api.invoke.SearchArguments;
> import net.rim.blackberry.api.mail.Address;
> import net.rim.blackberry.api.mail.AddressException;
> import net.rim.blackberry.api.mail.Folder;
> import net.rim.blackberry.api.mail.Message;
> import net.rim.blackberry.api.mail.MessagingException;
> import net.rim.blackberry.api.mail.Multipart;
> import net.rim.blackberry.api.mail.Session;
> import net.rim.blackberry.api.mail.Store;
> import net.rim.blackberry.api.mail.SupportedAttachmentPart;
> import net.rim.blackberry.api.mail.TextBodyPart;
> import net.rim.blackberry.api.mail.Transport;
> import net.rim.blackberry.api.mail.Message.RecipientType;
> import net.rim.blackberry.api.menuitem.ApplicationMenuItem;
> import net.rim.blackberry.api.menuitem.ApplicationMenuItemRepository;
> import net.rim.blackberry.api.pdap.BlackBerryContact;
> import net.rim.blackberry.api.pdap.BlackBerryContactList;
> import net.rim.blackberry.api.phone.Phone;
> import java.io.ByteArrayOutputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.io.OutputStream;
> import java.util.Timer;
> import java.util.TimerTask;
> import javax.microedition.io.Connection;
> import javax.microedition.io.Connector;
> import javax.microedition.io.Datagram;
> import javax.microedition.io.DatagramConnection;
> import javax.microedition.io.HttpConnection;
> import javax.microedition.io.StreamConnection;
> import javax.microedition.lcdui.Choice;
> import javax.microedition.lcdui.DateField;
> import javax.microedition.lcdui.TextBox;
> import javax.microedition.pim.Contact;
> import javax.microedition.pim.PIM;
> import javax.wireless.messaging.MessageConnection;
> import javax.wireless.messaging.TextMessage;
> import org.w3c.dom.Comment;
> import com.blackberry.sl.AddUserClass.MyComparator;
> public class NetworkingMainScreen extends Ascreen
> {
>       //private EditField urlField;
>       private BluetoothSerialPort _port;
>       public  BluetoothSerialPortInfo[] _portInfo;
>       String _doorName,_portMacAddress,OwnerName;
>       byte[] Message = null;
>       private VerticalFieldManager mainManager;
>       Bitmap _bitmap = null,_bitmapunlock = null, _bitmap1 = null,bitmapstatus = null,setTopBar = null ,setbottom1 = null,btnuserlist = null, btninformatoin = null, btnalldevice= null;
>     String username = null,userdevice = null,doorState = null;
>     HorizontalFieldManager hrdstatus = null,hfm = null , hrdunlock = null;
>     BitmapField bmpstatus,bmpunlock,bmphome,bmpuserlist,bmpinformation,bmpalldevice;
>     AnimatedGIFField  loading;
>     VerticalFieldManager vfmMiddleScreen = null,MainBGContainer = null ,vfmUser = null ,vfmInfo = null ,vfmdevices = null;
>     int deviceWidth ,deviceHeight;
>     public NetworkingMainScreen(boolean isAdditionalInfoLoad)
>       {
>               super();
>               System.out.println("width"+Display.getWidth());
>               System.out.println("height"+Display.getHeight());
>               int j = UiApplication.getUiApplication().getScreenCount();
>               System.out.println("Number of screen count " + j);
>               try {
>                       desgineScreen(Display.getWidth(),Display.getHeight());
>               } catch (ClassNotFoundException e) {
>                       // TODO Auto-generated catch block
>                       e.printStackTrace();
>               }
>               readConfiguration(); // Read configuration parameter from the file and set Globle variable
>               CommonInterface._Phone_Number = CommonInterface.getPhoneID();
>               CommonInterface.hashdeviceList.clear();
>               CommonInterface.hashPairedDeviceList.clear();
>               CommonInterface.hashPairedDeviceList = CommonInterface.loadhashTable(CommonInterface.PairedDeviceFile); //load alredy paired list through application
>               if(CommonInterface.hashPairedDeviceList == null)
>               CommonInterface.hashPairedDeviceList = new Hashtable();
>               /*LabelField ls = new LabelField("raklesh");
>               add(ls);*/
>       if (BluetoothSerialPort.isSupported())
>               {
>                       _portInfo = BluetoothSerialPort.getSerialPortInfo();
>                       int numServices = _portInfo.length;     // Create a MenuItem for each   device we can connect to.
>                       if(_portInfo != null )
>                       {
>                               for (int count = numServices - 1; count >= 0; --count)
>                               {
>                                       if (_portInfo[count] != null && _portInfo[count].getServiceName() != null)
>                                       {
>                                               String serviceName = _portInfo[count].getServiceName();
>                                               System.out.println("service name" + serviceName);
>                                               // A single device can provide multiple serial port connections (or services).
>                                               // Add a menu item only to the service that corresponds to the "Hi there" connection,
>                                               // or the "COM X" connection (if we are pairing with a PC).
>                                               try
>                                               {
>                                                       if (serviceName.equals("Serial Port A") || serviceName.equals("COM X") || serviceName.equals("0x1101") || serviceName.equals("SPP") || serviceName.equals("Serial Port") || serviceName.equals("RN-SPP") || serviceName.equals("AMP-SPP") || serviceName.equals("MP-SPP") || serviceName.equals("COMX") || serviceName.indexOf("COM") != -1)
>                                                       {
>                                                               if(_portInfo[count].getDeviceName() != null)
>                                                               {
>                                                                       _doorName = _portInfo[count].getDeviceName();
>                                                                       _portMacAddress = CommonInterface.getHexString(_portInfo[count].getDeviceAddress());
>                                                                       if(CommonInterface.hashPairedDeviceList != null && CommonInterface.hashPairedDeviceList.size() > 0) // check the paired device list it must be greate then zero for any fwsl to load
>                                                                       {
>                                                                               if(CommonInterface.hashPairedDeviceList.containsKey(_doorName)) // if hashtable contains the doorname then only load the paired device list
>                                                                                       {
>                                                                                               CommonInterface.hashdeviceList.put(_doorName, _portInfo[count]);
>                                                                                               CommonInterface.backup_deviceList.put(_doorName,_portMacAddress.toUpperCase()); // user for in case of failuer
>                                                                                       }
>                                                                       }
>                                                               }
>                                                       }
>                                               }
>                                               catch(Exception ex)
>                                               {
>                                               }
>                                       }
>                               }
>                       }
>               }
>               if(!CommonInterface.isOnlineUser)
>               {
>                       String readParameter = CommonInterface.ReadFiletoString(CommonInterface.UsersParameter);
>                       if(isAdditionalInfoLoad)
>                               if(readParameter != null && readParameter.substring(0, 1).equals("0"))
>                                       AdditionalInfopopup();
>               }
>               CommonInterface.setMasterBtpin();
>               CommonInterface.applicationMode = CommonInterface.ReadFiletoString(CommonInterface.ApplicationModeFile+"_"+CommonInterface.MasterDoorname+".txt");
>               if(CommonInterface.applicationMode != null && CommonInterface.isLoadFirstTime && (CommonInterface.applicationMode.equalsIgnoreCase("LocalMode")||CommonInterface.applicationMode.equalsIgnoreCase("SpecialMode")))
>                       CommonInterface.OnlineAccountVerify();
>               CommonInterface.statusEmail = null;
>               CommonInterface.statusUsernName = null;
>               if(CommonInterface.isFirstAccountverify)
>               {
>                       CommonInterface.isFirstAccountverify = false;
>                       PendingUserDelete();
>               }
>               if(CommonInterface.isgetGarageStatus)
>               {
>                       CommonInterface.isgetGarageStatus = false;
>                       hrdstatus.delete(bmpstatus);
>                       showGarageStatus();
>               }
>   }
>  public void desgineScreen(int width, int height) throws ClassNotFoundException
>       {
>               String filepath = null;
>               SpacerField sp = null,sp1 = null ,sp2 = null;
>               int i = 0;
>               int  j = 0; // minus width for center
>               int k = 0;
>               switch (width)
>               {
>                       case 240:
>                                       filepath = "240X320";
>                                       j = 35;
>                                       k = -35;
>                                       i = 25;
>                               break;
>                       case 320:
>                                       filepath = "320X240" ;
>                                       i = 50;
>                                       j = 40;
>                                       k = -40;
>                               break;
>                       case 360:
>                                       if(height == 248)
>                                       {
>                                               filepath = "360X248";
>                                               i = 50;
>                                               j = 25;
>                                               k = -28;
>                                       }
>                                       else
>                                       {
>                                               filepath = "360X480";
>                                               i = 50;
>                                               j = 0;
>                                               k = 0;
>                                       }
>                               break;
>                       case 480:
>                                   if(height == 800)
>                                   {
>                                       i = 70;
>                                               j = 109;
>                                               k = 29;
>                                   }
>                                   else
>                                   {
>                                               filepath = "480X360";
>                                               i = 80;
>                                               j = 49;
>                                               k = -32;
>                                   }
>                               break;
>                       case 640 :
>                               i = 120;
>                               j = 30;
>                               k = 0;
>                               break;
>                       default:
>                               break;
>               }
>               sp = new SpacerField(i,0);
>               sp1 = new SpacerField(i,0);
>               sp2 = new SpacerField(i,0);
>                 final Bitmap _backgroundBitmap = Bitmap.getBitmapResource("BACKGROUND_480X480.png");
>                 deviceWidth = Display.getWidth();
>                 deviceHeight = Display.getHeight();
>                 MainBGContainer = new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH | VerticalFieldManager.USE_ALL_HEIGHT | NON_FOCUSABLE)
>                 {
>                         public void paint(Graphics g)
>                       {
>                           g.clear();
>                           g.drawBitmap(0,0, Display.getWidth(),Display.getHeight(),_backgroundBitmap, 0, 0);
>                           super.paint(g);
>                       }
>                       //  public boolean isFocusable() { return false;}
>                     /*  public void onUnfocus()
>                       {
>                           super.onUnfocus();
>                           invalidate();
>                       }*/
>                   };
>                   add(MainBGContainer);
>                   if(deviceHeight > 470)
>                       setTopBar  = Bitmap.getBitmapResource("silver_top_bar_800.png");
>                   else
>                       setTopBar  = Bitmap.getBitmapResource("silver_top_bar.png");
>                       BitmapField bmpField = new BitmapField(setTopBar);
>                       HorizontalFieldManager vfmTopbar = new HorizontalFieldManager(HorizontalFieldManager.USE_ALL_WIDTH)
>                   {
>                       public void paint(Graphics g){
>                               g.clear();
>                           g.drawBitmap(0,0,g.getScreenWidth(),g.getScreenHeight(),setTopBar, 0, 0);
>                           super.paint(g);
>                       }
>                   };
>                   MainBGContainer.add(vfmTopbar);
>                   String homeDevice = CommonInterface.ReadFiletoString(CommonInterface.HomeDeviceFile);
>                   System.out.println("HomeDevice"+homeDevice);
>                   if(homeDevice != null)
>                   {
>                       username = "SecuRemote\u2122 - V "+CommonInterface.version;
>                       userdevice =homeDevice.substring(homeDevice.indexOf("$")+1,homeDevice.length());
>                       System.out.println("userdevice"+userdevice);
>                       CommonInterface.MasterDoorname = userdevice;
>                       CommonInterface.hashRenameMapping = CommonInterface.loadhashTable(CommonInterface.RenameDeviceMapping);
>                                if(CommonInterface.hashRenameMapping == null)
>                                        CommonInterface.hashRenameMapping = new Hashtable();
>                       if(CommonInterface.hashRenameMapping != null)
>                               {
>                               Object key = null,value = null;
>                                       if(CommonInterface.hashRenameMapping.contains(userdevice)) //if some rename device found
>                                       {
>                                           Enumeration keys = CommonInterface.hashRenameMapping .keys(); //enumarate the renamedevice hashtable
>                                           while (keys.hasMoreElements())
>                                           {
>                                             key = keys.nextElement();
>                                             value = CommonInterface.hashRenameMapping .get(key);
>                                             if(value.equals(userdevice)) // rename device found
>                                             {
>                                                 userdevice = (String) key;
>                                                 break;
>                                             }
>                                           }
>                                       }
>                                }
>                       CommonInterface.currentRenameDeviceName = userdevice;
>                   }
>                   else
>                   {
>                       username = "SecuRemote\u2122 - V "+CommonInterface.version;
>                       userdevice = "DEFAULT-DBED0141";
>                   }
>                   VerticalFieldManager vf1 = new VerticalFieldManager(FIELD_LEFT);
>                   VerticalFieldManager vf2 = new VerticalFieldManager(FIELD_RIGHT);
>                   LabelField userName = new LabelField(username,FIELD_LEFT);
>                   System.out.println("MASTER DOR NAME"+CommonInterface.MasterDoorname);
>                  // CommonInterface.MasterDoorname = "door-1234";
>                   if(CommonInterface.MasterDoorname != null && CommonInterface.MasterDoorname.substring(0,4).equalsIgnoreCase("door"))
>                       {
>                       //String deviceparam = "80,0";
>                               String deviceparam = CommonInterface.ReadFiletoString(CommonInterface.device_paramfile + "_" + CommonInterface.MasterDoorname+".txt");
>                               System.out.println("deviceparam"+deviceparam);
>                               if(deviceparam != null)
>                               {
>                                       int index = 0;
>                                       CommonInterface.battery_Info = deviceparam.substring(0,deviceparam.indexOf(","));
>                                       HorizontalFieldManager  hrd = new HorizontalFieldManager();
>                                   Bitmap _battery = null;
>                                   if(Integer.parseInt(CommonInterface.battery_Info) == 100)
>                                       _battery = Bitmap.getBitmapResource("full.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 100  && Integer.parseInt(CommonInterface.battery_Info) >= 90 )
>                                       _battery = Bitmap.getBitmapResource("90_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 90  && Integer.parseInt(CommonInterface.battery_Info) >= 80 )
>                                       _battery = Bitmap.getBitmapResource("80_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 80  && Integer.parseInt(CommonInterface.battery_Info) >= 70 )
>                                       _battery = Bitmap.getBitmapResource("70_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 70  && Integer.parseInt(CommonInterface.battery_Info) >= 60 )
>                                       _battery = Bitmap.getBitmapResource("60_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 60  && Integer.parseInt(CommonInterface.battery_Info) >= 50 )
>                                       _battery = Bitmap.getBitmapResource("50_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 50  && Integer.parseInt(CommonInterface.battery_Info) >= 40 )
>                                       _battery = Bitmap.getBitmapResource("40_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 40  && Integer.parseInt(CommonInterface.battery_Info) >= 30 )
>                                       _battery = Bitmap.getBitmapResource("30_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 30  && Integer.parseInt(CommonInterface.battery_Info) >= 20 )
>                                       _battery = Bitmap.getBitmapResource("20_battery.png");
>                                   else if(Integer.parseInt(CommonInterface.battery_Info) < 20  && Integer.parseInt(CommonInterface.battery_Info) >= 10 )
>                                       _battery = Bitmap.getBitmapResource("10_battery.png");
>                                   else
>                                       _battery = Bitmap.getBitmapResource("0_battery.png");
>                                   SpacerField spver1 = new SpacerField(0,8);
>                                   vf2.add(spver1);
>                                   BitmapField battery = new BitmapField(_battery,FIELD_HCENTER);
>                                   hrd.add(battery);
>                                   vf2.add(hrd);
>                                  // hrd.setMargin(0,0,0,Display.getWidth()/2);
>                                   hrd.setMargin(0,0,0,Display.getWidth()/4 - 15);
>                               }
>                  }
>                   SpacerField userspace;
>                   if(deviceHeight == 480)
>                       userspace = new SpacerField(0,10);
>                   else if(deviceHeight > 600)
>                       userspace = new SpacerField(0,20);
>                   else
>                       userspace = new SpacerField(0,3);
>                   vf1.add(userspace);
>                   vf1.add(userName);
>                   LabelField userDevice = new LabelField(userdevice,FOCUSABLE)
>                   {
>                       protected boolean navigationClick(int status, int time)
>                               {
>
>                               super.navigationClick(status, time);
>                               if(CommonInterface.hashPairedDeviceList != null && !CommonInterface.hashPairedDeviceList.containsKey(CommonInterface.MasterDoorname) && CommonInterface.hashdeviceList.size() > 0)
>                               {
>                                       CommonInterface.isgetGarageStatus =false;
>                                               CommonInterface.isOperate =false;
>                                       try
>                                                  {
>                                                         net.rim.device.api.ui.Screen scr1 = UiApplication.getUiApplication().getActiveScreen();
>                                                         if(scr1 instanceof NetworkingMainScreen)
>                                                                 UiApplication.getUiApplication().popScreen(scr1);
>                                                  }
>                                                  catch(IllegalArgumentException e)
>                                                  {
>                                                  }
>                                       UiApplication.getUiApplication().pushScreen(new ALLDevice());
>                               }
>                               else if(CommonInterface.hashdeviceList.size() > 1)
>                               {
>                                       CommonInterface.isgetGarageStatus =false;
>                                               CommonInterface.isOperate =false;
>                                       try
>                                                  {
>                                                         net.rim.device.api.ui.Screen scr1 = UiApplication.getUiApplication().getActiveScreen();
>                                                         if(scr1 instanceof NetworkingMainScreen)
>                                                                 UiApplication.getUiApplication().popScreen(scr1);
>                                                  }
>                                                  catch(IllegalArgumentException e)
>                                                  {
>                                                  }
>                                       UiApplication.getUiApplication().pushScreen(new ALLDevice());
>                               }
>                               else
>                               {
>                                       CommonInterface.isgetGarageStatus =false;
>                                               CommonInterface.isOperate =false;
>                                       CommonInterface.currentRenameDeviceName = CommonInterface.MasterDoorname;
>                                       UiApplication.getUiApplication().pushScreen(new Popuplist(CommonInterface._popup_Rename_Device));
>                               }
>                                       return true;
>                               }
>                       public void paint(Graphics gd)
>                               {
>                                  super.paint(gd);
>                   }
>                       public void onUnfocus()
>                           {
>                               super.onUnfocus();
>                               invalidate();
>                           }
>                   };
>                   SpacerField spspace;
>                   if(deviceHeight > 470)
>                       spspace = new SpacerField(0,10);
>                   else
>                       spspace = new SpacerField(0,3);
>                   vf1.add(spspace);
>                   vf1.add(userDevice);
>                   SpacerField btmspace;
>                   if(deviceHeight == 480)
>                       btmspace = new SpacerField(0,10);
>                   else if(deviceHeight > 600)
>                       btmspace = new SpacerField(0,5);
>                   else
>                       btmspace = new SpacerField(0,3);
>                   vf1.add(btmspace);
>                   vfmTopbar.add(vf1);
>                   vfmTopbar.add(vf2);
>                   Font myFont1;
>                   if(deviceHeight == 480)
>                       myFont1 = Font.getDefault().derive(Font.PLAIN, 7, Ui.UNITS_pt);
>                   else if(deviceHeight > 600)
>                       myFont1 = Font.getDefault().derive(Font.PLAIN, 7, Ui.UNITS_pt);
>                   else
>                       myFont1 = Font.getDefault().derive(Font.PLAIN, 5, Ui.UNITS_pt);
>                   vfmTopbar.setFont(myFont1);
>                   vfmMiddleScreen = new VerticalFieldManager(Field.USE_ALL_WIDTH);
>                   MainBGContainer.add(vfmMiddleScreen);
>                   SpacerField space ;
>                   if(deviceWidth == 320 || deviceWidth == 240)
>                       space = new SpacerField(0,11);
>                   else if(deviceWidth > 500 )
>                       space = new SpacerField(0,25);
>                   else if(deviceHeight > 500)
>                       space = new SpacerField(0,60);
>                   else
>                       space = new SpacerField(0,21);
>                   vfmMiddleScreen.add(space);
>                   deviceWidth = Display.getWidth();
>                   deviceHeight = Display.getHeight();
>                   hrdstatus = new HorizontalFieldManager(FIELD_HCENTER);
>                   if(deviceWidth == 320 || deviceWidth == 240)
>                       bitmapstatus = Bitmap.getBitmapResource("Press-for-Status_274x42.png");
>                   else if(deviceWidth == 640)
>                       bitmapstatus = Bitmap.getBitmapResource("Press-for-Status_450x60.png");
>                   else if(deviceHeight > 500)
>                       bitmapstatus = Bitmap.getBitmapResource("Press-for-Status_450x80.png");
>                   else
>                       bitmapstatus = Bitmap.getBitmapResource("Press-for-Status_342x54.png");
>                   doorState =CommonInterface.ReadFiletoString(CommonInterface.DoorStatusFile+"_"+CommonInterface.MasterDoorname+".txt");
>                   //#ifdef JDE_4_7
>                     if(!Touchscreen.isSupported())
>                               {
>                         bmpstatus = new BitmapField(bitmapstatus,FOCUSABLE)
>                                   {
>                                        protected boolean navigationClick(int status, int time )
>                                          {
>                                                CommonInterface.focusType = 5;
>                                                if(javax.bluetooth.LocalDevice.isPowerOn())
>                                                        getDeviceStatus();
>                                                  else
>                                                          UiApplication.getUiApplication().pushModalScreen(new Popuplist(CommonInterface._popup_Enable_bluetooth));
>                                              return true;
>                                          }
>                                          public void onUnfocus()
>                                                   {
>                                                       super.onUnfocus();
>                                                       invalidate();
>                                                   }
>                                   };
>
>                               }
>                           else
>                           {
>                               bmpstatus = new BitmapField(bitmapstatus,FOCUSABLE)
>                                      {
>                                            protected boolean touchEvent(TouchEvent event)
>                                                  {
>                                                         int index = hrdstatus.getFieldAtLocation(event.getX(1),event.getY(1));
>                                                     switch(event.getEvent())
>                                                     {
>                                                          case TouchEvent.CLICK:
>                                                                  if(event.getX(1) < 0 || event.getX(1) > getWidth() || event.getY(1) < 0 || event.getY(1) > getHeight())
>                                                                       return false;
>                                                                          else
>                                                                          {
>                                                                                  if (hrdstatus.getField(index).equals(bmpstatus))
>                                                                                  {
>                                                                                          CommonInterface.focusType = 5;
>                                                                                          getDeviceStatus();
>                                                                                  }
>                                                                          }
>                                                                  break;
>                                                      }
>                                                     return super.touchEvent(event);
>                                                  }
>                                                  protected boolean navigationClick(int status, int time )
>                                          {
>                                              return true;
>                                          }
>                                          public void onUnfocus()
>                                                   {
>                                                       super.onUnfocus();
>                                                       invalidate();
>                                                   }
>                                           };
>                           }
>                  //#else
>                                bmpstatus = new BitmapField(bitmapstatus,FOCUSABLE)
>                                   {
>                                        protected boolean navigationClick(int status, int time )
>                                          {
>                                                CommonInterface.focusType = 5;
>                                                if(javax.bluetooth.LocalDevice.isPowerOn())
>                                                        getDeviceStatus();
>                                                  else
>                                                          UiApplication.getUiApplication().pushModalScreen(new Popuplist(CommonInterface._popup_Enable_bluetooth));
>                                              return true;
>                                          }
>                                          public void onUnfocus()
>                                                   {
>                                                       super.onUnfocus();
>                                                       invalidate();
>                                                   }
>                                   };
>
>                   //#endif
>                   hrdstatus.add(bmpstatus);
>                   vfmMiddleScreen.add(hrdstatus);
>       }

Developer
Posts: 16,984
Registered: ‎07-29-2008
My Device: Z10 LE, Z30, Passport
My Carrier: O2 Germany

Re: Looking Immediate help regarding preprocessor

you have to compile with 4.6 to run it on a 4.6 device.
----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Regular Contributor
Posts: 66
Registered: ‎08-28-2010
My Device: 9630

Re: Looking Immediate help regarding preprocessor

But how Could i use preprocessor then.....

 

How i comment the code for touch screen so it will also work in the latest OS. As in 4.6 the Touch screen is not supported.

 

So if i complie in 4.6 and make signed applicaiton will it work into TouchScreen mobile like storm 9850,9860.

 

Can u please give me the all step with one small sample application that workin in touch and not touch device.

 

Also In which version i should use for compliation. The Latest one like 4.7 or 5.0 or earlier on 4.5 or 4.6.

 

I am looking each step step by help for it.

 

Developer
Posts: 16,984
Registered: ‎07-29-2008
My Device: Z10 LE, Z30, Passport
My Carrier: O2 Germany

Re: Looking Immediate help regarding preprocessor

preprocessing is used to make separate builds from a single codebase.
it is not possible to create a single build with separate features on different OS versions.
----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Regular Contributor
Posts: 66
Registered: ‎08-28-2010
My Device: 9630

Re: Looking Immediate help regarding preprocessor

so u means i have to create platform base COD and alx file....
like for JDE 4.6 i have to create one COD and ALX file...

and for JDE4.7 i have to create one CODE and alx file...

???
Developer
Posts: 16,984
Registered: ‎07-29-2008
My Device: Z10 LE, Z30, Passport
My Carrier: O2 Germany

Re: Looking Immediate help regarding preprocessor

indeed
----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Regular Contributor
Posts: 66
Registered: ‎08-28-2010
My Device: 9630

Re: Looking Immediate help regarding preprocessor

I think preprocess allow to make single application that can support all present and previoud JDE version ...

as in many forum they give explnation about based on JDE touch support....
Developer
Posts: 16,984
Registered: ‎07-29-2008
My Device: Z10 LE, Z30, Passport
My Carrier: O2 Germany

Re: Looking Immediate help regarding preprocessor

you can choose freely what you belief.
maybe you should ask in "many forum", then.
----------------------------------------------------------
feel free to press the like button on the right side to thank the user that helped you.
please mark posts as solved if you found a solution.
@SimonHain on twitter
Developer
Posts: 204
Registered: ‎08-09-2010
My Device: 9930, PlayBook
My Carrier: Verizon Wireless

Re: Looking Immediate help regarding preprocessor

Simon is correct here...

 

You use preprocessor so you can have the same code base, but you still need to have separate builds for different feature sets.  If your app needs to support all devices back to OS 4.5 and you also want to also implement touch event handling, for example, then you will need two builds - one that targets OS 4.5, and one that targets 4.7 (the first to support touch events).  

 

The preprocessor directive is used by the compiler as a hint that the code needs to be compiled conditionally depending on the OS target you have selected.  If you have portions of code included in an #ifdef statement that does not match your build target, it will not be included in the final compiled code.  The device itself does not interpret the code - it is done at compile time.

 

This allows you to code for features that may or not be available to your device and compile different builds.  It does take a little getting used to, but its really the only way to provide support for older devices.

Regular Contributor
Posts: 66
Registered: ‎08-28-2010
My Device: 9630

Re: Looking Immediate help regarding preprocessor

So Do blackberry provide any API ..so i can manage single application with single ALX and COD file... as its really embrass to maintain the two build and doing changes in both apps...