Cannot place my custom picker at the row,column position of my ListGrid
When I use the code below with a DynamicForm, the iconRect object is not null. When I use this picker on a ListGrid, the iconRect is null. Hence, I cannot get the position to display my custom picker form.
How do I get the location on the ListGrid to display my custom picker/form?
Environment
v8.2p_2012-09-18/PowerEdition Deployment
GWT-2.4
Code Setup
I use ListGrid.setEditorType to add my custom FormItem that has a custom picker. I have a FormItemClickHandler much like the showcase custom picker example. However, getIconPageRect gives me a null object.
When I use the code below with a DynamicForm, the iconRect object is not null. When I use this picker on a ListGrid, the iconRect is null. Hence, I cannot get the position to display my custom picker form.
How do I get the location on the ListGrid to display my custom picker/form?
Environment
v8.2p_2012-09-18/PowerEdition Deployment
GWT-2.4
Code Setup
I use ListGrid.setEditorType to add my custom FormItem that has a custom picker. I have a FormItemClickHandler much like the showcase custom picker example. However, getIconPageRect gives me a null object.
Code:
myListGrid.getField("update").setEditorType(new FCMDateTimeItem(fname,dsf.getTitle()));
Code:
public class FCMDateTimeItem extends DateTimeItem {
private DateChooser DC;
private FCMDateTimeItem myself;
@SuppressWarnings({ "deprecation" })
private boolean isSameDay(Date d1, Date d2) {
return d1.getYear() == d2.getYear() && d1.getMonth() == d2.getMonth()
&& d1.getDate() == d2.getDate();
}
private void init()
{
myself = this;
DC = new DateChooser();
DC.addDataChangedHandler(new DataChangedHandler() {
@SuppressWarnings("deprecation")
@Override
public void onDataChanged(
com.smartgwt.client.widgets.events.DataChangedEvent event) {
DC.hide();
Date now = new Date();
Date date = DC.getData();
if (myself.isSameDay(now, date)) {
date = now;
} else {
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
}
// SC.say("Date in setData() :"+date+"<--> Date using getData()"+DC.getData());
DC.setData(date);
myself.setValue(date);
}
});
DC.setShowCancelButton(true);
DC.setCancelButtonTitle("Cancel");
DC.setTodayButtonTitle("Now");
PickerIcon datePicker = new PickerIcon(PickerIcon.DATE,
new FormItemClickHandler() {
@Override
public void onFormItemClick(FormItemIconClickEvent event) {
FormItemIcon fii = event.getIcon();
Rectangle iconRect = getIconPageRect(fii);
if(null != iconRect)
{
DC.setLeft(iconRect.getLeft());
DC.setTop(iconRect.getTop());
}
else
{
//TODO: how to get position for ListGrid
}
DC.show();
}
});
this.setShowPickerIcon(false);
setIcons(datePicker);
}
public FCMDateTimeItem() {
init();
}
public FCMDateTimeItem(String name, String title) {
super(name,title);
init();
}
}