二次开发
3. 导入外部Jar包
3.1 MyEclipse中编写如下类文件,并打包
(1)HelloWorld类
package com.coox.extend;
public class HelloWorld {
public static void main(String args[])
{
//TODO
}
public static String sayHello(String name){
return "Hello! "+ name;
}
}
(2)打包成Jar包
(3)拷贝至Builder安装路径下面的System文件夹(运行模式下,拷贝至Manager安装路径下面的System文件夹)
(4)页面中添加如下Swing控件
(5)给按钮“Say Hello”添加脚本事件
/**
* btnSay_mouseReleased(mouseEvent)
*/
function btnSay_mouseReleased(mouseEvent)
{
var hello = txtHello.getText();
var result = HelloWorld.sayHello(hello);
$UI.messageBox("提示",result);
}
(6)模拟运行测试
4. 用户服务(User Service)
【摘要】
COOX可以创建用户自定义服务,所有的服务都可以设置启动类型:自动、手动,并可以人为停止服务。包括和三方系统的接口,都可以由用户服务所创建。
下面以数据清除服务为例,进行介绍。
【服务创建目的】
对于系统中自己创建的数据库表,有些是作为数据存储用,考虑数据量的增长和数据查询效率,我们需要定期备份,并清理该数据表格,如只保留3个月内的数据。
(1)新建用户服务PurgeService
设置服务运行的服务器地址,设置服务启动类型
Classes类中会自动生成如下两个类文件
(2)创建数据清除任务类PurgeTask
- 设置服务运行间隔:一天;
- 设置数据保留天数:365天。
/*
* class PurgeTask
* Copyright (c) 2009 Ordinal Technologies. All Rights Reserved.
*/
import globalscreen.application.persist.DataSet;
import java.util.Date;
import java.util.TimerTask;
public class PurgeTask extends TimerTask
{
//数据清除周期:24小时
public static final long PERIOD_24H = 24l * 60l * 60l * 1000l;
//数据保留天数:365天
public static final long RETENTION_365D = 365l * 24l * 60l * 60l * 1000l;
public PurgeTask()
{
}
@Override
public void run()
{
long retentionFilter = System.currentTimeMillis()-RETENTION_365D;
//删除学生数据
deleteStudents(retentionFilter);
}
/**
* 删除学生表中的数据
*/
private void deleteStudents(long retentionFilter)
{
try
{
//这里假设ID为数据创建日期字段,筛选出一年外的数据,进行删除
String collecttimeFilter = "ID < " + retentionFilter;
DataSet ds = new DataSet("UDT_Students");
ds.setFilter(collecttimeFilter);
ds.deleteAll();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
(3)修改用户服务实现文件PurgeServiceImpl
- 设置服务首次运行时间:明天凌晨02:00;
- 设置服务启动和结束方法入口。
/**
* class PurgeServiceImpl
* Copyright (c) 2007 Ordinal Technologies. All Rights Reserved.
*/
import globalscreen.application.*;
import java.util.Timer;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class PurgeServiceImpl extends ServiceManagerImpl implements PurgeService
{
private PurgeTask purgeTask;
private Timer purgeTaskTimer;
/**
* Constructor
*/
public PurgeServiceImpl()
{
}
/**
* start method
*/
public void start()
{
purgeTask=new PurgeTask();
purgeTaskTimer=new Timer("PurgeTaskTimer");
purgeTaskTimer.schedule(purgeTask,thisMonthNextDay(),PurgeTask.PERIOD_24H);
}
/**
* stop method
*/
public void stop()
{
purgeTaskTimer.purge();
purgeTaskTimer.cancel();
}
/**
* init method
*/
public void init()
{
}
/**
* 获取明天凌晨02:00,作为起始时间
*/
private static Date thisMonthNextDay()
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
}
(4)服务创建完成,后期部署完成后,会每天凌晨02:00自动运行一次。
【结束】