telerik pdf viewer mvc : Best pdf to jpg converter for Library SDK component asp.net wpf windows mvc Enterprise-Development-with-Flex31-part729

import java.util.*;
import flex.messaging.util.UUIDUtils;
public class EmployeeDTO implements Serializable, ChangeSupport {
private static final long serialVersionUID = 1L;
public String _nulls; // internals
public long EMP_ID;
public long MANAGER_ID;
...
public Map getProperties() {
HashMap map =  new HashMap();
map.put("EMP_ID", new Long(EMP_ID));
map.put("MANAGER_ID", new Long(MANAGER_ID));
...
return map;
}
// Alias names is used by code generator of CDB in the situations
// if select with aliases is used, i.e.
// SELECT from A,B  a.customer cust1, b.customer cust2
// In this case plain names on the result set would be cust1 and cust2,
// which would complicate generation of the UPDATE statement.
// If you don't use code generators, there is no need to add aliasMap
// to your DTOs
public static HashMap aliasMap =  new HashMap();
public String getUnaliasedName(String name) {
String result = (String) aliasMap.get(name);
if (result==null)
result = name;
return result;
}
public String[] getChangedPropertyNames(Object o) {
Vector  v =  new Vector();
EmployeeDTO old = (EmployeeDTO)o;
if (EMP_ID != old.EMP_ID)
v.add(getUnaliasedName("EMP_ID"));
if (MANAGER_ID != old.MANAGER_ID)
v.add(getUnaliasedName("MANAGER_ID"));
...
String [] _sa = new String[v.size()];
return (String[])v.toArray(_sa);
}
}
To better understand how changes are kept, take a look at the internals of the
ChangeObject
class, which stores all modifications performed on the DTO. It travels
between the client and the server.
Data Access Automation n | 287
Best pdf to jpg converter for - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
.pdf to .jpg online; conversion pdf to jpg
Best pdf to jpg converter for - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
convert pdf to jpeg on; pdf to jpeg
ChangeObject
ChangeObject
is a special DTO that is used to propagate the changes between the server
and the client. The 
ChangeObject
class exists in the Data Management Services of LCDS,
and is shown in Example 6-4. On the client side, it is just a simple storage container
for original and new versions of a record that is undergoing some changes. For example,
if the user changes some data in a 
DataGrid
row, the instance of the 
ChangeObject
will
be created, and the previous version of the DTO that represents this row will be stored
along with the new one.
Example 6-4. ChangeObject.as
package  com.farata.remoting {
[RemoteClass(alias="com.farata.remoting.ChangeObjectImpl")]
public class ChangeObject {
public var state:int;
public var newVersion:Object = null;
public var previousVersion:Object = null;
public var error:String = "";
public var changedPropertyNames:Array= null;
public static const UPDATE:int=2;
public static const DELETE:int=3;
public static const CREATE:int=1;
public function ChangeObject(state:int=0,
newVersion:Object=null, previousVersion:Object = null) {
this.state = state;
this.newVersion = newVersion;
this.previousVersion = previousVersion;
}
public function isCreate():Boolean {
return state==ChangeObject.CREATE;
}
public function isUpdate():Boolean {
return state==ChangeObject.UPDATE;
}
public function isDelete():Boolean {
return state==ChangeObject.DELETE;
}
}
}
As you can see, every changed record can be in a 
DELETE
UPDATE
, or 
CREATE
state. The
original version of the object is stored in the 
previousVersion
property and the current
one is in the 
newVersion
. That turns the 
ChangeObject
into a lightweight implementation
of the Assembler pattern, which offers a simple API to process all the data changes in
a standard way, similar to what’s done in the Data Management Services that come
with LCDS.
288 | | Chapter 6: Open Source Networking Solutions
Online Convert PDF to Jpeg images. Best free online PDF JPEG
Online PDF to JPEG Converter. Download Free Trial. Convert a PDF File to JPG. Drag and drop your PDF in the box above and we'll convert the files for you.
pdf to jpg; change pdf file to jpg
Online Convert Jpeg to PDF file. Best free online export Jpg image
Online JPEG to PDF Converter. Download Free Trial. Convert a JPG to PDF. You can drag and drop your JPG file in the box, and then start
convert multiple pdf to jpg online; .pdf to .jpg converter online
The Java counterpart of the 
ChangeObject
(Example 6-5) should have few extra con-
venience generic methods. All specifics are implemented in a standard way in the
EmployeeDTO
.
Example 6-5. ChangeObjectImpl.java
Package com.theriabook.remoting;
import java.util.*;
public class ChangeObjectImpl {
public void fail() {
state = 100;
}
public void fail(String desc) {
// TODO Auto-generated method stub
fail();
error = desc;
}
public String[] getChangedPropertyNames() {
// TODO Auto-generated method stub
return changedNames;
}
public Map getChangedValues()
{
if(changedValues == null)
{
if(changedNames == null)
changedNames = getChangedPropertyNames();
if (newMap == null)
newMap = newVersion.getProperties();
changedValues = new HashMap();
for(int i = 0; i < changedNames.length; i++)
{
String field = changedNames[i];
changedValues.put(field, newMap.get( field));
}
}
return Collections.unmodifiableMap(changedValues);
}
public Object getPreviousValue(String field) {
if (previousMap == null)
previousMap = previousVersion.getProperties();
return previousMap.get( field );
}
public boolean isCreate() {
return state == 1;
}
public boolean isDelete() {
return state == 3;
}
public boolean isUpdate() {
return state == 2;
}
public void setChangedPropertyNames(String [] columns)
Data Access Automation n | 289
C# WPF PDF Viewer SDK to convert and export PDF document to other
Best PDF Viewer control as well as a powerful .NET WinForms application to image file formats with high quality, support converting PDF to PNG, JPG, BMP and
change format from pdf to jpg; convert multiple pdf to jpg
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Best PDF converter SDK for Visual Studio .NET for converting PDF to image in C#.NET Support exporting PDF to multiple image forms, including Jpg, Png, Bmp
best program to convert pdf to jpg; change from pdf to jpg
{
changedNames = columns;
changedValues = null;
}
public void setError(String s) {
error = s;
}
public void setNewVersion(Object nv) {
newVersion = (ChangeSupport)nv;
changedValues = null;
}
public void setPreviousVersion(Object o) {
previousVersion = (ChangeSupport)o;
}
public void setState(int s) {
state = s;
}
//---------------------- E X T E N S I O N S--------------------------
public int state = 0;
public ChangeSupport newVersion = null;
public ChangeSupport previousVersion = null;
public String error ="";
protected Map newMap = null;
protected Map previousMap = null;
protected String[] changedNames = null;
protected Map changedValues = null;
}
Assembler and DAO Classes
In Core J2EE Patterns, the Transfer Object Assembler means a class that can build
DTOs from different data sources (see http://java.sun.com/blueprints/corej2eepatterns/
Patterns/TransferObjectAssembler.html). In Flex/Java RIA, the 
Assembler
class would
hide from the Flex client actual data sources used for data retrieval. For example, it can
expose the method 
getEmployees()
for retrieval of the 
EmployeeDTO
objects that are ac-
tually retrieved from more than one data source.
For simplicity, the method 
getEmployees()
shown in Example 6-6 delegates the pro-
cessing to a single Data Access Object (DAO), but this does not have to be the case,
and the data required for population of the list of 
EmployeeDTO
s can be coming from
several data sources.
Similarly, for data updates the client calls the 
sync()
method without knowing the
specifics; the DAO class or classes take care of the data persistence.
In the example framework, you’ll build an 
Assembler
class similar to what Adobe rec-
ommends creating in the case of using LCDS. The instances of 
ChangeObject
are used
for communication between Flex and the Java 
Assembler
class, which in turn will use
them for communication with DAO classes.
290 | | Chapter 6: Open Source Networking Solutions
C# Create PDF from images Library to convert Jpeg, png images to
Best and professional C# image to PDF converter SDK for Visual Studio .NET. Batch convert PDF documents from multiple image formats, including Jpg, Png, Bmp, Gif
bulk pdf to jpg converter; convert pdf to jpg 100 dpi
VB.NET PDF - Convert PDF with VB.NET WPF PDF Viewer
Best WPF PDF Viewer control as well as a powerful PDF converter. PDF to image file formats with high quality, support converting PDF to PNG, JPG, BMP and GIF.
convert pdf into jpg online; best convert pdf to jpg
The Assembler pattern cleanly separates the generic 
Assembler
’s APIs from specifics of
the DAO implementation.
Example 6-6. EmployeeAssembler.java
package com.farata.datasource;
import java.util.*;
public final class EmployeeAssembler{
public EmployeeAssembler(){
}
public  List getEmployees() throws Exception{
return new EmployeeDAO().getEmployees();
}
public final List getEmployees_sync(List items){
return new EmployeeDAO().getEmployees_sync(items);
}
}
The two main entry points (data retrieval and updates) will show you how easy it is to
build a DAO adapter.
First, you need to separate the task into the DAO and Assembler layers by introducing
methods with fill (retrieve) and sync (update) functionality. The complete source code
of the 
EmployeeDAO
class is included in the code samples accompanying this book, and
the relevant fragments from this class follow in Example 6-7.
Example 6-7. Fill and sync fragment from EmployeeDAO.java
package com.farata.datasource;
import java.sql.*;
import java.util.*;
import flex.data.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.transaction.*;
import com.farata.daoflex.*;
public final class EmployeeDAO extends Employee {
public final List getEmployees_sync(List items)    {
Coonection conn = null;
try  {
conn = JDBCConnection.getConnection("jdbc/test");
ChangeObject co = null;
Iterator iterator = items.iterator();
co = (ChangeObject)iterator.next();
if(co.state == state && co.isUpdate())
doUpdate_getEmployees(conn, co);
Data Access Automation n | 291
VB.NET Create PDF from images Library to convert Jpeg, png images
Best and professional image to PDF converter SDK for Visual Studio .NET. Support create PDF from multiple image formats in VB.NET, including Jpg, Png, Bmp
reader pdf to jpeg; batch convert pdf to jpg
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Best adobe PDF to image converter SDK for Visual Studio .NET. Convert PDF documents to multiple image formats, including Jpg, Png, Bmp, Gif, Tiff, Bitmap
convert pdf to jpg c#; change pdf file to jpg online
if(co.state == state && co.isDelete())
doDelete_getEmployees(conn, co);
if(co.state == state && co.isCreate())
doCreate_getEmployees(conn, co);
}
}
} catch(DataSyncException dse) {
dse.printStackTrace();
throw dse;
} catch(Throwable te) {
te.printStackTrace();
throw new DAOException(te.getMessage(), te);
} finally {
JDBCConnection.releaseConnection(conn);
}
return items;
}
public final List /*com.farata.datasource.dto.EmployeeDTO[]*/
getEmployees_fill() {
String sql = "select * from employee    where dept_id=100";
ArrayList list = new ArrayList();
ResultSet rs = null;
PreparedStatement stmt = null;
Connection conn = null;
try   {
conn = JDBCConnection.getConnection("jdbc/test");
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
StringBuffer nulls = new StringBuffer(256);
while( rs.next() )    {
EmployeeDTO dto = new dto.EmployeeDTO();
dto.EMP_ID = rs.getLong("EMP_ID");
if( rs.wasNull() ) { nulls.append("EMP_ID|"); }
dto.MANAGER_ID = rs.getLong("MANAGER_ID");
if( rs.wasNull() ) { nulls.append("MANAGER_ID|"); }
...
dto.uid = "|" +   dto.EMP_ID;
list.add(dto);
}
return list;
} catch(Throwable te) {
te.printStackTrace();
throw new DAOException(te);
} finally {
try {rs.close(); rs = null;} catch (Exception e){}
try {stmt.close(); stmt = null;} catch (Exception e){}
JDBCConnection.releaseConnection(conn);
}   }
As you can see in Example 6-7, the implementation of the 
fill
method is really
straightforward. Review the code of the 
sync
method, and you’ll see that it iterates
through the collection of 
ChangeObject
s; calls their methods 
isCreate()
isUpdate()
,
292 | | Chapter 6: Open Source Networking Solutions
and 
isDelete()
; and calls the corresponding function in the DAO class. These functions
are shown in the example.
Implementation of the 
insert
and 
delete
statements is based on new or old versions
wrapped inside 
ChangeObject
Example 6-8 calls the method 
getNewVersion()
to get the
data for insertion in the database and 
getPreviousVersion()
for delete.
Example 6-8. Create and delete fragment from EmployeeDAO.java
private ChangeObject doCreate_getEmployees(Connection conn,
ChangeObject co) throws SQLException{
PreparedStatement stmt = null;
try {
String sql = "INSERT INTO EMPLOYEE " +
"(EMP_ID,MANAGER_ID,EMP_FNAME,EMP_LNAME,
DEPT_ID,STREET,CITY,STATE,ZIP_CODE,PHONE,
STATUS,SS_NUMBER,SALARY,START_DATE,TERMINATION_DATE,
BIRTH_DATE,BENE_HEALTH_INS,BENE_LIFE_INS,
BENE_DAY_CARE,SEX)"+
" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
stmt = conn.prepareStatement(sql);
EmployeeDTO item = (EmployeeDTO) co.getNewVersion();
stmt.setLong(1, item.EMP_ID);
stmt.setLong(2, item.MANAGER_ID);
...
if (stmt.executeUpdate()==0)
throw new DAOException("Failed inserting.");
co.setNewVersion(item);
return co;
} finally {
try { if( stmt!=null) stmt.close(); stmt = null;}
catch (Exception e){// exception processing goes here}
}   }
throws SQLException{
PreparedStatement stmt = null;
try {
StringBuffer sql = new StringBuffer
("DELETE FROM EMPLOYEE WHERE (EMP_ID=?)");
stmt = conn.prepareStatement(sql.toString());
stmt.setLong(1, item.EMP_ID);
if (stmt.executeUpdate()==0)
throw new DataSyncException(co, null,
Arrays.asList(new String[]{"EMP_ID"}));
} finally {
try { if( stmt!=null) stmt.close(); stmt = null;
} catch (Exception e){}
}   }
Data Access Automation n | 293
To form the update statement, you need both the previous and the new versions of the
data available inside 
ChangeObject
instances (Example 6-9).
Example 6-9. Update fragment from EmployeeDAO.java
private void doUpdate_getEmployees(Connection conn, ChangeObject co)
throws SQLException{
String updatableColumns ",EMP_ID,MANAGER_ID,EMP_FNAME,EMP_LNAME,
DEPT_ID,STREET,CITY,STATE,ZIP_CODE,
PHONE,STATUS,SS_NUMBER,SALARY,START_DATE,
TERMINATION_DATE,BIRTH_DATE,BENE_HEALTH_INS,
BENE_LIFE_INS,BENE_DAY_CARE,SEX,";
PreparedStatement stmt = null;
try {
EmployeeDTO oldItem =
(EmployeeDTO) co.getPreviousVersion();
String [] names = co.getChangedPropertyNames();
if (names.length==0) return;
for (int ii=0; ii < names.length; ii++) {
if (updatableColumns.indexOf("," + names[ii] +",")>=0)
}
sql.append( " WHERE (EMP_ID=?)" );
stmt = conn.prepareStatement(sql.toString());
Map values = co.getChangedValues();
int ii, _jj;
Object o;
_jj = 0;
for (ii=0; ii <    names.length; ii++) {
_jj++;
o =  values.get(names[ii]);
if ( o instanceof java.util.Date)
stmt.setObject(
else
stmt.setObject( _jj, o );
}
}
_jj++;
stmt.setLong(_jj++, oldItem.EMP_ID);
if (stmt.executeUpdate()==0)
throw new DataSyncException(co, null,
Arrays.asList(new String[]{"EMP_ID"}));
} finally {
294 | | Chapter 6: Open Source Networking Solutions
try { if( stmt!=null) stmt.close(); stmt = null;
} catch (Exception e){}
   }
}
You can either manually write the code shown in Examples 6-2 to 6-9, or use the Clear
Data Builder for automated code generation.
The code in the examples is generic and can be either generated for the best performance
or parameterized for Java frameworks such as Spring or Hibernate.
DataCollection Class
It’s time to establish an ActionScript collection that will have two important features:
• It will know how to keep track of changes to its data.
• It will be destination-aware.
Such a collection would keep track of the data changes made from the UI. For example,
a user modifies the data in a 
DataGrid
that has a collection of some objects used as a
data provider. You want to make a standard Flex 
ArrayCollection
a little smarter so
that it’ll automatically create and maintain a collection of 
ChangeObject
instances for
every modified, new, and deleted row.
We’ve developed a class 
DataCollection
that will do exactly this seamlessly for the
application developer. This collection also encapsulates all communications with the
server side via 
RemoteObject
, and it knows how to notify other users about the changes
made by you if they are working with the same data at the same time.
Shown in Example 6-10, this collection stores its data in the property 
source
, the array
of 
ChangeObjects
in 
modified
, and the name of the remote destination in 
destination
.
Every time the data in the underlying collection changes, this collection catches the
COLLECTION_CHANGE
event, and based on the event’s property 
kind
(
remove
update
add
)
removes or modifies the data in the collection. To support undo functionality, all
modified objects are stored in the properties 
deleted
and 
modified
.
Example 6-10. DataCollection.as—take 1
package com.farata.collections {
[Bindable(event="propertyChange")]
public class DataCollection extends ArrayCollection {
public var destination:String=null;
protected var ro:RemoteObject = null;
public var deleted:Array = new Array();
public var modified:Dictionary = new Dictionary();
public var alertOnFault:Boolean=true;
private var trackChanges:Boolean=true;
Data Access Automation n | 295
// The underlying data of the ArrayCollection
override public function set source(s:Array):void {
super.source = s;
list.addEventListener(CollectionEvent.COLLECTION_CHANGE,
onCollectionEvent);
resetState();
refresh();
}
// collection's data changed
private function onCollectionEvent(event:CollectionEvent) :void {
if (!trackChanges) return;
switch(event.kind) {
case "remove":
for (var i:int = 0; i < event.items.length; i++) {
var item:Object = event.items[i];
evt.item = item;
dispatchEvent(evt);
if (evt.isDefaultPrevented()) break;
var co:ChangeObject = ChangeObject(modified[item]);
var originalItem:Object=null;
if (co == null) {
// NotModified
originalItem = item;
} else if (!co.isCreate()) {
// Modified
originalItem = co.previousVersion;
delete modified[item];
modifiedCount--;
} else {
// NewModified
delete modified[item];
modifiedCount--;
}
if (originalItem!=null) {
deleted.push(originalItem);
deletedCount = deleted.length;
};
}
break;
case "add":
for ( i = 0; i < event.items.length; i++) {
item = event.items[i];
evt = new DynamicEvent("itemTracking");
evt.item = item;
dispatchEvent(evt);
if (evt.isDefaultPrevented()) break;
modified[item] = new ChangeObject
modifiedCount++;
}
break;
case "update":
for (i = 0; i < event.items.length; i++) {
296 | | Chapter 6: Open Source Networking Solutions
Documents you may be interested
Documents you may be interested