我试图使用Esper EPL Online console并且我不知道如何在时间和事件序列中使用日期。例如,我有一个像这样定义的模式:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
final ItemDto dto = listStoreItemDto.get(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_IMAGE:
convertView = mInflater.inflate(R.layout.listview_video, null);
holder.vidImgAdapter = (ImageView)convertView.findViewById(R.id.vidImgAdapter);
holder.vidImgPlayAdapter = (ImageView)convertView.findViewById(R.id.vidImgPlayAdapter);
holder.vidNameAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.vidNameAdapter);
holder.vidDetailAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.vidDetailAdapter);
holder.linearAdpVideo = (LinearLayout)convertView.findViewById(R.id.linearAdpVideo);
holder.tbAdpVideo = (ToggleButton)convertView.findViewById(R.id.tbAdpVideo);
break;
case TYPE_VIDEO:
convertView = mInflater.inflate(R.layout.listview_video, null);
holder.vidImgAdapter = (ImageView)convertView.findViewById(R.id.vidImgAdapter);
holder.vidImgPlayAdapter = (ImageView)convertView.findViewById(R.id.vidImgPlayAdapter);
holder.vidNameAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.vidNameAdapter);
holder.vidDetailAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.vidDetailAdapter);
holder.linearAdpVideo = (LinearLayout)convertView.findViewById(R.id.linearAdpVideo);
holder.tbAdpVideo = (ToggleButton)convertView.findViewById(R.id.tbAdpVideo);
break;
case TYPE_MUSIC:
convertView = mInflater.inflate(R.layout.listview_music, null);
holder.musicImgAdapter = (ImageView)convertView.findViewById(R.id.musicImgAdapter);
holder.musicNameAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.musicNameAdapter);
holder.musicDetailAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.musicDetailAdapter);
holder.tbAdpMusic = (ToggleButton)convertView.findViewById(R.id.tbAdpMusic);
holder.linearAdpMusic = (LinearLayout)convertView.findViewById(R.id.linearAdpMusic);
break;
case TYPE_STORAGE:
convertView = mInflater.inflate(R.layout.listview_storage, null);
holder.storageImgAdapter = (ImageView)convertView.findViewById(R.id.storageImgAdapter);
holder.imgAdpStorageChevronRight = (ImageView)convertView.findViewById(R.id.imgAdpStorageChevronRight);
holder.storageNameAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.storageNameAdapter);
holder.storageDetailAdapter = (TextViewVerbStyle)convertView.findViewById(R.id.storageDetailAdapter);
holder.linearAdpStorage = (LinearLayout)convertView.findViewById(R.id.linearAdpStorage);
holder.tbAdpStorage = (ToggleButton)convertView.findViewById(R.id.tbAdpStorage);
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
Log.e("will","holder : "+holder.tbAdpStorage +" | "+holder.tbAdpVideo + " | "+holder.tbAdpMusic);
switch (type){
case TYPE_IMAGE:
MainActivityV3.getImgLoader().init(config);
MainActivityV3.getImgLoader().displayImage("file://" + Uri.parse(dto.getItemPath()), holder.vidImgAdapter, MainActivityV3.getOptions());
holder.vidImgPlayAdapter.setVisibility(View.GONE);
holder.vidNameAdapter.setText(dto.getItemName());
holder.vidDetailAdapter.setText(mContext.getResources().getString(R.string.detail_item,
StringUtils.showSizeByte(FileManageUtil.getKbSize(dto.getItemSize()),
FileManageUtil.getMbSize(dto.getItemSize())), StringUtils.getDateVideo(dto.getLastModified())));
if(isCheckable) {
holder.linearAdpVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
holder.tbAdpVideo.setChecked(dto.isSelected());
} else {
dto.setIsSelected(true);
holder.tbAdpVideo.setChecked(dto.isSelected());
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
} else {
dto.setIsSelected(true);
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpVideo.setVisibility(View.VISIBLE);
}
else {
holder.tbAdpVideo.setVisibility(View.GONE);
}
break;
case TYPE_VIDEO:
MainActivityV3.getImgLoader().init(config);
MainActivityV3.getImgLoader().displayImage("file://" + Uri.parse(dto.getItemPath()), holder.vidImgAdapter, MainActivityV3.getOptions());
holder.vidNameAdapter.setText(dto.getItemName());
holder.vidDetailAdapter.setText(mContext.getResources().getString(R.string.detail_item,
StringUtils.showSizeByte(FileManageUtil.getKbSize(dto.getItemSize()),
FileManageUtil.getMbSize(dto.getItemSize())), StringUtils.getDateVideo(dto.getLastModified())));
if(isCheckable){
holder.linearAdpVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
holder.tbAdpVideo.setChecked(dto.isSelected());
} else {
dto.setIsSelected(true);
holder.tbAdpVideo.setChecked(dto.isSelected());
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpVideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
} else {
dto.setIsSelected(true);
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpVideo.setVisibility(View.VISIBLE);
}
else {
holder.tbAdpVideo.setVisibility(View.GONE);
}
break;
case TYPE_MUSIC:
if(dto.getItemName().toString().toLowerCase().contains(".mp3"))
holder.musicImgAdapter.setImageResource(R.drawable.ic_mp3);
else if(dto.getItemName().toString().toLowerCase().contains(".ogg"))
holder.musicImgAdapter.setImageResource(R.drawable.ic_ogg);
else if(dto.getItemName().toString().toLowerCase().contains(".mp4"))
holder.musicImgAdapter.setImageResource(R.drawable.ic_mp4);
else if(dto.getItemName().toString().toLowerCase().contains(".wav"))
holder.musicImgAdapter.setImageResource(R.drawable.ic_wav);
holder.musicNameAdapter.setText(dto.getItemName());
holder.musicDetailAdapter.setText(mContext.getResources().getString(R.string.detail_item, StringUtils.showSizeByte(FileManageUtil.getKbSize(dto.getItemSize()),
FileManageUtil.getMbSize(dto.getItemSize())), StringUtils.getDateVideo(dto.getLastModified())));
if(isCheckable) {
holder.linearAdpMusic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
holder.tbAdpMusic.setChecked(dto.isSelected());
} else {
dto.setIsSelected(true);
holder.tbAdpMusic.setChecked(dto.isSelected());
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpMusic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
} else {
dto.setIsSelected(true);
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpMusic.setVisibility(View.VISIBLE);
}
else {
holder.tbAdpMusic.setVisibility(View.GONE);
}
break;
case TYPE_STORAGE:
File file = new File(dto.getItemPath());
if(dto.isDirectory()){
holder.storageDetailAdapter.setText(mContext.getResources().getString(R.string.detail_item,
file.listFiles().length>=1?file.listFiles().length+" items":file.listFiles().length+" item",
StringUtils.getDateVideo(dto.getLastModified())));
holder.storageImgAdapter.setImageResource(R.drawable.ic_folder);
holder.imgAdpStorageChevronRight.setVisibility(View.VISIBLE);
}else{
if(StringUtils.isArchivesExtension(mContext,dto.getItemName())){//file archive
holder.storageImgAdapter.setImageResource(R.drawable.ic_archives);
}else if(StringUtils.isDocsExtension(mContext,dto.getItemName())){//file doc
holder.storageImgAdapter.setImageResource(R.drawable.ic_text_doc);
}else if(StringUtils.isApkExtension(mContext,dto.getItemName())){
holder.storageImgAdapter.setImageResource(R.drawable.ic_apk);
}
else{//broken image
holder.storageImgAdapter.setImageResource(R.drawable.ic_broken_image);
}
holder.storageDetailAdapter.setText(mContext.getResources().getString(R.string.detail_item,
StringUtils.showSizeByte(dto.getItemSize()),
StringUtils.getDateVideo(dto.getLastModified())));
holder.imgAdpStorageChevronRight.setVisibility(View.GONE);
}
holder.storageNameAdapter.setText(dto.getItemName());
if(isCheckable) {
holder.linearAdpStorage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
holder.tbAdpStorage.setChecked(dto.isSelected());
} else {
dto.setIsSelected(true);
holder.tbAdpStorage.setChecked(dto.isSelected());
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
holder.tbAdpStorage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dto.isSelected()) {
dto.setIsSelected(false);
} else {
dto.setIsSelected(true);
}
((MainActivityV3) mContext).updateSelected(getTotalItemSelected());
}
});
if(dto.isDirectory())
holder.imgAdpStorageChevronRight.setVisibility(View.GONE);
holder.tbAdpStorage.setVisibility(View.VISIBLE);
}
else {
holder.tbAdpStorage.setVisibility(View.GONE);
}
break;
}
return convertView;
}
我试图在时间和事件序列中添加一个事件,例如:
create schema EventCreated(
source String,
type String,
time Date
);
但当然这不起作用。我尝试使用" new Date()"或[com.espertech.esper.client.util.]DateTime.parseDefaultDate()但我无法使其发挥作用。
答案 0 :(得分:0)
有一个" eval"用于评估EPL表达式。
StockTick={time=eval('com.espertech.esper.client.util.DateTime.parseDefaultDate("2016-10-07T10:00:00.000")')}
如果该工具只是接受字符串并使其成为日期,那就太好了。