package com.akjava.gwt.lib.client.datalist;
import com.akjava.gwt.lib.client.StorageDataList;
public abstract class SimpleDataListItemControler extends ItemIOControler{
protected SimpleDataList simpleDataList;
public SimpleDataList getSimpleDataListWidget() {
return simpleDataList;
}
public SimpleDataListItemControler(StorageDataList dataList){
super();
setDataList(dataList);
//TODO load first?
simpleDataList=new SimpleDataList(this, -1);
}
@Override
public void updateList(){
simpleDataList.update();
if(selectedId!=-1){
selectById(selectedId);
simpleDataList.setSelectionStatus(true);
}else{
simpleDataList.setSelectionStatus(false);
}
}
public void setCurrentName(String name){
if(simpleDataList.getSelection()!=null){
//String title_meta[]=splitHeader(simpleDataList.getSelection().getData().getHeader());
//simpleDataList.getSelection().getData().setHeader(name+","+title_meta[1]);
simpleDataList.getSelection().getData().setName(name);
}
}
/*
protected String[] splitHeader(String header){
String result[]=new String[2];
int last=header.lastIndexOf(",");
if(last==-1){
result[0]=header;
result[1]="";
}else{
result[0]=header.substring(0,last);
result[1]=header.substring(last+1);
}
return result;
}*/
public String getCurrentName(){
if(simpleDataList.getSelection()!=null){
return simpleDataList.getSelection().getData().getName();
//String title_meta[]=splitHeader(simpleDataList.getSelection().getData().getHeader());
//return title_meta[0];
}else{
return "undefined";
}
}
public void prev(){
simpleDataList.prev();
}
public void next(){
simpleDataList.next();
}
public boolean isEmpty(){
return simpleDataList.getItemCount()==0;
}
public void select(int index){
simpleDataList.select(index);
}
public void selectById(int id){
//selectedId=id;
//updateList();
//LogUtils.log("select by id:"+getCurrentName()+","+id);
simpleDataList.selectById(id);
}
/**
* super class save no care about widget selection.
* and widget.update seems costly
*/
@Override
public boolean save() {
boolean result=super.save();
SimpleTextData savedData=getDataList().getDataValue(selectedId);
DataListData<SimpleTextData> selection=getSimpleDataListWidget().getSelection();
//not replace sipletextdata directlly,because take care of possible use reference.
selection.getData().setData(savedData.getData());
return result;
}
}