Monday, February 8, 2010

Handle Soft Delete using Custom Properties (Jdev11g ADF)

I read Generic Handle softdelete At husain dalal's blog and I would like to show another way to handle soft delete using custom property for DeletedFlag attribute using custom properties,
You will notice that DeletedFlag attribute type is Date where it will be entered as new Date("0001-01-01") in Insert operation and will set as system date in delete operation where it will be more better to know the date of delete operation


Now,
1. Create a new Fusion ADF Application and add a new java class that extends oracle.jbo.server.EntityImpl
2. In the CustomEntityImpl override the following methods:
a. remove() - To set the value of column with custom property(DeletedFlag,”YES”) to deleted value.
b. doDML() - During delete, to force an entity object to be updated instead of deleted. And during insert to default the value of column with custom property(DeletedFlag,”YES”) to new Date("0001-01-01").
public int getSoftDeletedColumn() {
int colIndex = -1;
for (AttributeDef def : getEntityDef().getAttributeDefs()) {
if (((AttributeDefImpl)def).getProperty("DeletedFlag") == "YES") {

colIndex = def.getIndex();
}

}
return colIndex;

}

@Override
public void remove() {
int deleteCol = getSoftDeletedColumn();
if (deleteCol != -1) {
setAttribute(deleteCol,
new Date(new Timestamp(System.currentTimeMillis())));
}

super.remove();
}

@Override
protected void doDML(int operation, TransactionEvent transactionEvent) {
int deleteCol = getSoftDeletedColumn();
if (EntityImpl.DML_DELETE == operation && deleteCol != -1) {
operation = DML_UPDATE;
}
if (EntityImpl.DML_INSERT == operation && deleteCol != -1) {

setAttribute(deleteCol, new Date("0001-01-01"));
}
super.doDML(operation, transactionEvent);

}
3. In the Application Navigator, double-click the entity you want to edit.
4. In the overview editor, click the Attributes navigation tab, and double-click the attribute you want to edit.
5. In the Edit Attribute dialog, then click the Custom Properties node add new property of
Name=DeletedFlag, value =YES then add



Download workspace from here but don't forget to generate example table

Thursday, February 4, 2010

Quick translation using GoogleTalk

if you want get quick translation from Arabic to English add this friend to your GoogleTalk friend list
ar2en@bot.talk.google.com
and
if you want get quick translation from English to Arabic add this friend to your GoogleTalk friend list
en2ar@bot.talk.google.com

then chat with
you can change locale letters for different language