Tuesday 27 November 2012

Select Image from gallery and display in lwuit Form

HelloMidlet.java
-----------------------
package main;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */

import com.sun.lwuit.*;
import javax.microedition.midlet.MIDlet;

public class HelloMidlet extends MIDlet {

    public static int dwidth;
    public static int dheight;
    public static javax.microedition.lcdui.Display lcduiDisplay;
    public static HelloMidlet midlet;
   
    public void startApp() {
        try {
            midlet = this;
            Display.init(this);
            lcduiDisplay = javax.microedition.lcdui.Display.getDisplay(this);
         
            dwidth = Display.getInstance().getDisplayWidth();
            dheight = Display.getInstance().getDisplayHeight();

            } catch (Exception ex) {
        }
        ImageClass imgform = new ImageClass();
        imgform.showLcduiImageForm(null);
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}


ImageClass.java
-------------------
package main;
import com.sun.lwuit.*;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.layouts.BoxLayout;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */

public class ImageClass {
    public static Form imgForm;

    public void showLcduiImageForm(Object img) {
        try {
//            Display.init(HelloMidlet.midlet);
            imgForm = new Form("Hello World");

            Container middleContainer = new Container();
            middleContainer.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
            middleContainer.setUIID("middleContainer");
            middleContainer.setScrollableY(true);
            middleContainer.getStyle().setBgColor(0XDEDBDE);
            //

            Label empty2 = new Label("");
            empty2.setFocusable(true);
            middleContainer.addComponent(empty2);

            Button browse = new Button("browse");
            browse.setUIID("actionButton");
            browse.setHeight(25);
            browse.setAlignment(Button.CENTER);
            browse.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent ae) {
                    ImgBrowser browser = new ImgBrowser();
                    browser.browseForImage(HelloMidlet.midlet);
                }
            });

            Container cp_details = new Container(new BoxLayout(BoxLayout.X_AXIS));
            Image img1 = null;
            try {
                img1 = Image.createImage(img);               
                Label l1 = new Label(img1.scaled(30, 30));
                cp_details.addComponent(l1);
            } catch (Exception ex) {
              //  Dialog.show("Error", "Error creating Image from lcdui", "OK", null);
            }

            cp_details.addComponent(browse);
            middleContainer.addComponent(cp_details);

            imgForm.addComponent(middleContainer);
            imgForm.show();
        } catch (Exception ex) {
            Dialog.show("Exception", "" + ex.getMessage(), "OK", null);
        }

    }
}


ImgBrowser.java
--------------------
package main;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import javax.microedition.io.file.FileSystemRegistry;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */

public class ImgBrowser implements CommandListener {

    private Image dirIcon;
    private Image fileIcon;
    private Image[] iconList;
    private String currDirName;
    /*
     * separator string as defined by FC specification
     */
    private static final String SEP_STR = "/";

    /*
     * separator character as defined by FC specification
     */
    private static final char SEP = '/';
    /*
     * special string that denotes upper directory accessible by this browser.
     * this virtual directory contains all roots.
     */
    private static final String MEGA_ROOT = "/";
    /*
     * special string denotes upper directory
     */
    private static final String UP_DIRECTORY = "..";
    private Command view = new Command("Select", Command.ITEM, 1);
    private Command cancel = new Command("Cancel", Command.ITEM, 2);
    private Command back = new Command("Back", Command.BACK, 2);
    MIDlet midletObj;

    public ImgBrowser() {
        currDirName = MEGA_ROOT;

        try {
            dirIcon = Image.createImage("/dir.png");
        } catch (IOException e) {
            dirIcon = null;
        }

        try {
            fileIcon = Image.createImage("/file.png");
        } catch (IOException e) {
            fileIcon = null;
        }

        iconList = new Image[]{fileIcon, dirIcon};
    }

    public void browseForImage(MIDlet midlet) {
        midletObj = midlet;
        try {
            showCurrDir();
        } catch (SecurityException e) {
            Alert alert =
                    new Alert("Error", "You are not authorized to access the restricted API", null,
                    AlertType.ERROR);
            alert.setTimeout(Alert.FOREVER);

            Form form = new Form("Cannot access FileConnection");
            form.append(new StringItem(null,
                    "You cannot run this MIDlet with the current permissions. "
                    + "Sign the MIDlet suite, or run it in a different security domain"));
//            form.addCommand(exit);
//            form.setCommandListener(this);
            Display.getDisplay(midletObj).setCurrent(alert, form);
        } catch (Exception e) {
        }
    }

    /**
     * Show file list in the current directory .
     */
    void showCurrDir() {
        Enumeration e;
        FileConnection currDir = null;
        List browser;

        try {
            if (MEGA_ROOT.equals(currDirName)) {
                e = FileSystemRegistry.listRoots();
                browser = new List(currDirName, List.IMPLICIT);
            } else {
                currDir = (FileConnection) Connector.open("file://localhost/" + currDirName);
                e = currDir.list();
                browser = new List(currDirName, List.IMPLICIT);
                // not root - draw UP_DIRECTORY
                browser.append(UP_DIRECTORY, dirIcon);
            }

            while (e.hasMoreElements()) {
                String fileName = (String) e.nextElement();

                if (fileName.charAt(fileName.length() - 1) == SEP) {
                    // This is directory
                    browser.append(fileName, dirIcon);
                } else {
                    // this is regular file
                    browser.append(fileName, fileIcon);
                }
            }

            browser.setSelectCommand(view);
            browser.addCommand(cancel);

            //Do not allow creating files/directories beside root
            if (!MEGA_ROOT.equals(currDirName)) {
//                browser.addCommand(prop);
//                browser.addCommand(creat);
//                browser.addCommand(delete);
            }

//            browser.addCommand(exit);
//
            browser.setCommandListener(this);

            if (currDir != null) {
                currDir.close();
            }

            Display.getDisplay(midletObj).setCurrent(browser);
        } catch (IOException ioe) {
        }
    }

    public void commandAction(Command c, Displayable d) {
        if (c == view) {
            List curr = (List) d;
            final String currFile = curr.getString(curr.getSelectedIndex());
            new Thread(new Runnable() {

                public void run() {
                    if (currFile.endsWith(SEP_STR) || currFile.equals(UP_DIRECTORY)) {
                        traverseDirectory(currFile);
                    } else {
                        // Show file contents
                        showFile(currFile);
                    }
                }
            }).start();
        } else if (c == back) {
            showCurrDir();
        }
        else if (c == cancel) {
            com.sun.lwuit.Display.init(midletObj);
            ImageClass.imgForm.show();
        }
    }

    void traverseDirectory(String fileName) {
        /*
         * In case of directory just change the current directory and show it
         */
        if (currDirName.equals(MEGA_ROOT)) {
            if (fileName.equals(UP_DIRECTORY)) {
                // can not go up from MEGA_ROOT
                return;
            }

            currDirName = fileName;
        } else if (fileName.equals(UP_DIRECTORY)) {
            // Go up one directory
            int i = currDirName.lastIndexOf(SEP, currDirName.length() - 2);

            if (i != -1) {
                currDirName = currDirName.substring(0, i + 1);
            } else {
                currDirName = MEGA_ROOT;
            }
        } else {
            currDirName = currDirName + fileName;
        }

        showCurrDir();
    }

    void showFile(String fileName) {
//        Form mForm = new Form("Image");
        FileConnection fc = null;
        DataInputStream in = null;
        DataOutputStream out = null;
        try {
            fc = (FileConnection) Connector.open("file://localhost/" + currDirName + fileName);
            int length = (int) fc.fileSize();//possible loss of precision may throw error
            byte[] data = null;
            if (length != -1) {
                data = new byte[length];
                in = new DataInputStream(fc.openInputStream());
                in.readFully(data);
            } else {
                int chunkSize = 512;
                int index = 0;
                int readLength = 0;
                in = new DataInputStream(fc.openInputStream());
                data = new byte[chunkSize];
                do {
                    if (data.length < index + chunkSize) {
                        byte[] newData = new byte[index + chunkSize];
                        System.arraycopy(data, 0, newData, 0, data.length);
                        data = newData;
                    }
                    readLength = in.read(data, index, chunkSize);
                    index += readLength;
                } while (readLength == chunkSize);
                length = index;
            }
            Image image = Image.createImage(data, 0, length);
            ImageItem imageItem = new ImageItem(null, image, 0, null);
            com.sun.lwuit.Display.init(midletObj);
            ImageClass imgForm=new ImageClass();
            imgForm.showLcduiImageForm(image);
//            mForm.append(imageItem);
//            mForm.setTitle("Done.");
//            mForm.addCommand(select);
//            mForm.addCommand(back);
//            mForm.setCommandListener(this);

            //fc = (FileConnection) Connector.open("file:///root1/x.PNG");
            if (!fc.exists()) {
                try {
                    fc.create();
                } catch (Exception ce) {
                    System.out.print("Create Error: " + ce);
                }
            }
            out = new DataOutputStream(fc.openOutputStream());
            out.write(data);
        } catch (IOException ioe) {
            StringItem stringItem = new StringItem(null, ioe.toString());
//            mForm.append(stringItem);
//            mForm.addCommand(back);
//            mForm.setCommandListener(this);
//            mForm.setTitle("Done.");
            com.sun.lwuit.Display.init(midletObj);
            ImageClass.imgForm.show();
        } finally {
            try {
                if (in != null) {
                    in.close();
                }
                if (fc != null) {
                    fc.close();
                }
            } catch (IOException ioe) {
            }
        }
//        StringItem stringItem = new StringItem(null, "\nfile://localhost/" + currDirName + fileName);
//        mForm.append(stringItem);
//        Display.getDisplay(midletObj).setCurrent(mForm);
    }
}


icons:
-----------
file.png


dir.png




Next and Prev Date Selection in J2ME


public static String getPrevNextDay(boolean nextDay, String selectedDate) {
long dayMillies = 86400000; // no. of milliseconds per 1 day

// String to Date Convertion; selectedDate=2012-11-27  // YYYY-MM-DD
Calendar c1 = Calendar.getInstance();
c1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(selectedDate.substring(8, 10)));
c1.set(Calendar.MONTH, Integer.parseInt(selectedDate.substring(5, 7)) - 1);
c1.set(Calendar.YEAR, Integer.parseInt(selectedDate.substring(0, 4)));
// // System.out.println("SSSS: " + c1.getTime());

Date d = c1.getTime();

if (nextDay) {
// next day
d.setTime(d.getTime() + dayMillies);
} else {
// previous day
d.setTime(d.getTime() - dayMillies);
}

Calendar c = Calendar.getInstance();
c.setTime(d);

int Curr_day = c.get(Calendar.DAY_OF_MONTH);
int Curr_month = (c.get(Calendar.MONTH) + 1);
int Curr_year = c.get(Calendar.YEAR);
String day = "" + Curr_day;
String Month = "" + Curr_month;
String Year = "" + Curr_year;

        if (Curr_day < 10) {
            day = "0" + Curr_day;
        }
        if (Curr_month < 10) {
            Month = "0" + Curr_month;
        }

//        String time = day + "-" + Month + "-" + Year;
        String time = Year + "-" + Month + "-" + day;
        // System.out.println("Next date:" + time);
        return time;
    }

Saturday 14 July 2012

Schedule a Task(Upload Excel Data To Database) in a Specified Time Period



Schedule a Task(Upload Excel Data To Database) in a Specified Time Period




Get the source code form this path DOwnload Code

CallSchduler.java

//Main Class

package Scheduler;


import java.io.*;
import java.util.*;

public class CallSchduler {

UpdateSchduler upObj = null;

public void stopScheduler() {
upObj.cancelSchedule();
}

public static void main(String args[]) {
//        System.out.println("Scheduler is called by main method");
try {
File propertyFile = new File("D:\\Demo File\\Resources.properties");
if (propertyFile.exists()) {
Properties properties = new Properties();
FileInputStream fileInputStream = new FileInputStream(propertyFile);
properties.load(fileInputStream);
int minutes = Integer.parseInt(properties.getProperty("Minutes"));
String uploadFilePath = properties.getProperty("myExcelPath").toString();
String failedRecordsPath = properties.getProperty("failedFiles").toString();
UpdateSchduler upObj = new UpdateSchduler(minutes);
upObj.updateFile(uploadFilePath, failedRecordsPath);
} else {
System.out.println("File not found!");
}

} catch (Exception ex) {
System.out.println("in Exception: " + ex.getMessage());
}
}
}





UpdateSchduler.java


package Scheduler;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;

public class UpdateSchduler {

private final Timer timer = new Timer();
private final int minutes;
private String uploadFilePath = "";
private String FailedRecordsPath = "";

public UpdateSchduler(int minutes) {
this.minutes = minutes;
}

public void start() {
timer.schedule(new TimerTask() {

public void run() {
fileSelection(uploadFilePath, FailedRecordsPath);
}
}, 0, minutes * 60 * 1000);
}

public void cancelSchedule() {
timer.cancel();
}

public void updateFile(String uploadFilePath, String FailedRecordsPath) {
this.uploadFilePath = uploadFilePath;
this.FailedRecordsPath = FailedRecordsPath;
start();
}

public void stopUpdating() {
cancelSchedule();
}

public void fileSelection(String uploadRecordPath, String failedRecordsPath) {
System.out.println("Upload File Path:" + uploadRecordPath);
System.out.println("Failed Record File Path:" + failedRecordsPath);
String filesInTheUplaodPath = null;
File uplaodFile = new File(uploadRecordPath);
if (uplaodFile.exists()) {
if (uplaodFile.listFiles().length != 0) {
File[] listOfFiles = uplaodFile.listFiles();

System.out.println("No. Files In the UPload Record path:" + listOfFiles.length);
for (int i = 0; i < listOfFiles.length; i++) {

if (listOfFiles[i].isFile()) {
filesInTheUplaodPath = listOfFiles[i].getName();
//System.out.println("the files are " + files);
JavaSheet readObj = new JavaSheet();
readObj.javaSheet(uploadRecordPath + filesInTheUplaodPath, failedRecordsPath + filesInTheUplaodPath);
}
}

} else {
System.out.println("No files Found");
}
} else {
System.out.println("File Path Not Found");
}
}
}




JavaSheet .java



package Scheduler;

import java.sql.Statement;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
*
* @author Sravan
*/
public class JavaSheet {

StringBuffer sb = new StringBuffer();
int count = 0;
String EmpName = "";
String Dept = "";
String mobileNO = "";
String file_name = "";
String extension = "";
InputStream input = null;
Connection con = null;
FileItemFactory factory = new DiskFileItemFactory();
// System.out.println("1");
ServletFileUpload upload = new ServletFileUpload(factory);
//System.out.println("2");
List items = null;
CallableStatement insertQuery;
DataInputStream in;
private boolean isFileWrite = false;
private FileInputStream fis;
private File inputWorkbook;

public void javaSheet(String file_name1, String failedFIle) {

this.file_name = file_name1;

sb.append("Employee Name" + ",");
sb.append("Department" + ",");
sb.append("MobileNO" + ",");
sb.append("Reason" + ",");
sb.append("\n");

extension = file_name.substring(file_name.indexOf("."), file_name.length());
System.out.println("" + extension);
try {

if (extension.equalsIgnoreCase(".xls") || extension.equalsIgnoreCase(".xlsx")) {
inputWorkbook = new File(file_name);
fis = new FileInputStream(inputWorkbook);
Workbook w;
ResultSet rs = null;
w = Workbook.getWorkbook(fis);
Sheet sheet = w.getSheet(0);
String reason[] = new String[sheet.getRows() + 1];
String rowValues[] = new String[sheet.getColumns()];
System.out.println("no of rows :" + sheet.getRows());
if (sheet.getRows() > 1) {
for (int row = 1; row < sheet.getRows(); row++) {
for (int col = 0; col < sheet.getColumns(); col++) {
Cell cell = sheet.getCell(col, row);

rowValues[col] = cell.getContents();

}


String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String connectionURL = "jdbc:sqlserver://Ip:portNo;databaseName=Dbname;user=sa;password=xyz";



Class.forName(driver);
con = DriverManager.getConnection(connectionURL);
reason[row] = "";

EmpName = rowValues[0];
Dept = rowValues[1];
mobileNO = rowValues[2];


if (EmpName == null || EmpName.trim().equals("")) {
reason[row] = reason[row] + "Emp Name is Null";
}


if (Dept == null || Dept.trim().equals("")) {
reason[row] = reason[row] + "Department Value is Null";
}

if (mobileNO == null || mobileNO.trim().equals("")) {

reason[row] = reason[row] + "Mobile No is Null";

}

if (reason[row] == null) {

String insertQuery = "insert into EMPTable (EMP_Name ,EMP_Dept ,EMP_MobileNO) values ('" + EmpName + "','" + Dept + "','" + mobileNO + "')";
System.out.println(insertQuery);
Statement stmt = con.createStatement();
int res = stmt.executeUpdate(insertQuery);
stmt.close();
if (res == 0) {
reason[row] = "Failed When Inserting";
} else {
count++;
System.out.println("rows inserted:" + count);
}



} else {
System.out.println(" In Fail records");
//
//                            sb.append("Employee Name" + ",");
//                            sb.append("Department" + ",");
//                            sb.append("MobileNO" + ",");
//                            sb.append("Reason" + ",");
//                            sb.append("\n");

//END

isFileWrite = true;
if (EmpName == null || EmpName.equals("")) {
EmpName = "  ";
}
if (Dept == null || Dept.equals("")) {
Dept = "  ";
}
if (mobileNO == null || mobileNO.equals("")) {
mobileNO = "  ";
}



sb.append(EmpName + ",");
sb.append(Dept + ",");
sb.append(mobileNO + ",");
sb.append(reason[row] + ",");
sb.append("\n");
}


System.out.println("ZZZZZZZZZ" + isFileWrite);
System.out.println("" + sb.length());
System.out.println("" + sb);
if (isFileWrite || sb.length() != 0) {
new FailedRecords().getFialedRecords(failedFIle, sb.toString());
}

}
System.out.println("END");
} else {
System.out.println(" Empty XLS File");
}
} else {
System.out.println(" Invalid XLS File");
}

} catch (Exception e) {

System.out.println("Pls Select The Given format of xl file" + e.getMessage());
e.printStackTrace();

} finally {

try {
if (insertQuery != null) {
insertQuery.close();
}
if (con != null) {
con.close();
}
if (fis != null) {
fis.close();
inputWorkbook.delete();
}

} catch (Exception e) {
System.out.println("EXCEPTION IN CLOSING CONNECTION:" + e);
}
}
System.out.println("END");
}
}




FailedRecords.java




package Scheduler;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;

/**
*
* @author Sravan
*/
public class FailedRecords {

public void getFialedRecords(String failedRecordsFile, String FailedRecords) {
System.out.println("Inisde Fialed Records");
String file_name = failedRecordsFile;

File file = new File(file_name);
System.out.println("Filename::::" + file_name);
String buffer = FailedRecords;
String date = "";
String filename = "";
SimpleDateFormat df1 = new SimpleDateFormat("dd-MMM-yyyy-kk.mm.ss");
date = df1.format(new java.util.Date());


try {
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(buffer);
out.close();

} catch (Exception e) {
System.out.println("Ex:" + e);
}
}
}