此灵感源自 Eclipse E4 项目的 XWT UI Trigger 特性。
对于XWT,它是基于SWT的,因此可以内置SWT的所有特性,例如各种事件监听等。而作为更加通用的XML应用程序,在设计上需要更谨慎些。经过一些研究,决定先实现属性触发器(Bean Property Trigger),这样所有符合Bean格式的类都可以进行触发。
下面看看代码:
<Shell xmlns="com.cmspad.xmla.swt" xmlns:t="com.cmspad.osgi" xmlns:e="com.cmspad.xmla.swt.event" xmlns:l="com.cmspad.xmla.swt.layout" text="XML Application" size="200,60"
l:layout="fill">
<Button t:id="b1" style="CHECK" text="Button 1" enabled="false">
<t:trigger t:property="enabled">
if(b1.enabled){
b1.selection = false;
}else{
b1.selection = true;
}
</t:trigger>
</Button>
<Button t:id="b2" text="Button2" style="CHECK" e:Selection="buttonSelected"/>
<t:script>
function buttonSelected(e){
if(b2.selection){
b1.enabled = true;
}else{
b1.enabled = false;
}
}
</t:script>
</Shell>
可以看到,trigger部分代码就是对其enabled属性进行监听,当其他部件调用setEnabled方法时,触发其事件。
运行界面,当鼠标选择 Button 2 时,Button 1 变为可用了
因为XML应用程序能够更适应几乎所有的程序类,属性监听机制的实现可能会很复杂。此特性已经加入到了开发计划中,敬请期待~
- 大小: 28.1 KB
分享到:
- 2009-10-17 16:48
- 浏览 1866
- 评论(0)
- 论坛回复 / 浏览 (0 / 1405)
- 查看更多
相关推荐
在Java项目中,我们常常需要执行一些周期性的任务,比如数据同步、日志清理等,这时Spring Trigger就发挥了关键作用。它基于Quartz Scheduler库,提供了与Spring集成的优雅方式来管理定时任务。 1. **Spring ...
在Windows Presentation Foundation (WPF) 中,触发器(Triggers)是XAML中的一种关键特性,它们允许我们根据特定条件改变UI元素的属性或者执行某些行为。触发器分为多种类型,包括数据触发器(DataTriggers)、样式...
在Windows Presentation Foundation (WPF) 中,触发器是一种强大的机制,允许我们动态地改变UI元素的属性或行为,根据特定的条件或事件。WPF触发器主要分为四种类型:数据触发器(DataTrigger)、事件触发器(Event...
触发器有多种类型,包括PropertyTrigger(基于属性值变化触发)、DataTrigger(基于数据绑定值触发)和EventTrigger(基于事件触发)。通过触发器,我们可以动态响应控件状态的变化,例如,当鼠标悬停在按钮上时改变...
首先,我们要了解Quartz中的核心概念:Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际要执行的任务,Trigger定义了何时触发Job,而Scheduler负责管理和执行这些Trigger。 在Spring中集成Quartz,...
WPF中的触发器主要有三种类型:数据触发器(DataTrigger)、事件触发器(EventTrigger)和样式触发器(StyleTrigger)。这些触发器都属于`TriggerBase`类的子类,允许我们在XAML中以声明式的方式定义何时以及如何...
同时,配置触发器(Trigger)来决定何时运行 Job。 ```xml <!-- 配置 JobDetail --> <property name="jobDetails"> <property name="jobClass" value="com.tsinghua.test.MyJob"/> <!-- 设置 Job 的名字 -...
这篇笔记将深入探讨如何使用Spring与Quartz结合来实现触发器的示例。 首先,Quartz是一个开源的作业调度框架,它允许开发者定义任务并在预定的时间点执行。Spring则是一个强大的应用框架,提供了依赖注入(DI)和...
在运行时,我们可以通过Spring的`Scheduler`接口来修改Trigger的属性。例如,要更改Cron表达式,我们可以这样做: ```java @Autowired private Scheduler scheduler; public void updateTrigger(String ...
6. **Block属性与记录计数**:虽然没有直接的属性来获取Block的记录数,但可以通过GET_BLOCK_PROPERTY(QUERY_HITS)得到查询到的记录数量。 7. **Canvas管理**:HIDE_VIEW仅将Canvas置于底层,可能仍会被看到,而...
你可以直接在方法上使用这个注解,配合`cron`或`fixedRate`属性来定义定时任务。 例如: ```java @Scheduled(cron = "0 0/5 * * * ?") public void executeTask() { // 执行任务的代码 } ``` 这里的"Cron"表达式...
- 创建触发器:使用`CREATE TRIGGER`语句定义在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行的代码。 - 示例:实验创建了一个名为`credit_id`的触发器,用于在特定操作后更新数据。 - 查看触发器:同样...
Flex的行为由触发器(Trigger)和效果(Effect)组成。当用户进行特定操作,如点击按钮时,触发器被激活,进而启动预设的效果,如动画展示。触发器可由用户交互触发,也可由程序控制,并能关联多个效果。 1.1 ...
Quartz提供了多种类型的触发器,包括简单触发器(Simple Trigger)、日历间隔触发器(Calendar Interval Trigger)和Cron表达式触发器(Cron Trigger),以满足不同的调度需求。 #### 三、整体调度模型 Quartz的...
触发器(Trigger)定义了作业何时运行,可以是简单触发器(SimpleTrigger)或cron触发器(CronTrigger)。 ```java @Component("myJob") @PersistJobDataAfterExecution public class MyJob implements Job { @...
触发器(Trigger)是附着在其他对象上的PL/SQL块,当特定事件发生时自动执行,其名字通常反映了触发事件的类型。Property Class和Parameter对象则增强了模块的灵活性和重用性,Parameter允许传递值到模块,根据具体...
<Trigger Property="IsMouseOver" Value="True"> <!-- 鼠标悬停时的样式 --> </Trigger> <Trigger Property="IsPressed" Value="True"> <!-- 按下时的样式 --> </Trigger> <Trigger Property="IsEnabled" ...
5. **事件触发器(EventTrigger)**:结合事件触发器,可以在特定事件发生时执行数据触发器的动作。 ### 五、实际应用 数据触发器广泛应用于各种场景,如: - 用户界面状态管理:根据数据源的状态改变UI的视觉反馈...
样式包括属性设置、触发器和模板: ```xml <Setter Property="Background" Value="LightBlue"/> <Setter Property="FontWeight" Value="Bold"/> <EventTrigger RoutedEvent="Button.Click"> Storyboard....