`
yipsilon
  • 浏览: 246846 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

关于属性触发器(Property Trigger)的一些想法

阅读更多

此灵感源自 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
分享到:
评论

相关推荐

    springTrigger 触发器

    在Java项目中,我们常常需要执行一些周期性的任务,比如数据同步、日志清理等,这时Spring Trigger就发挥了关键作用。它基于Quartz Scheduler库,提供了与Spring集成的优雅方式来管理定时任务。 1. **Spring ...

    触发器Triggers、MultiTrggers、EventTrigger应用案例

    在Windows Presentation Foundation (WPF) 中,触发器(Triggers)是XAML中的一种关键特性,它们允许我们根据特定条件改变UI元素的属性或者执行某些行为。触发器分为多种类型,包括数据触发器(DataTriggers)、样式...

    WPF触发器使用

    在Windows Presentation Foundation (WPF) 中,触发器是一种强大的机制,允许我们动态地改变UI元素的属性或行为,根据特定的条件或事件。WPF触发器主要分为四种类型:数据触发器(DataTrigger)、事件触发器(Event...

    wpf 样式学习例子 样式 模板 触发器

    触发器有多种类型,包括PropertyTrigger(基于属性值变化触发)、DataTrigger(基于数据绑定值触发)和EventTrigger(基于事件触发)。通过触发器,我们可以动态响应控件状态的变化,例如,当鼠标悬停在按钮上时改变...

    Quartz触发器的使用DEMO(Spring实现)

    首先,我们要了解Quartz中的核心概念:Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际要执行的任务,Trigger定义了何时触发Job,而Scheduler负责管理和执行这些Trigger。 在Spring中集成Quartz,...

    WPF触发器,执行预期的响应

    WPF中的触发器主要有三种类型:数据触发器(DataTrigger)、事件触发器(EventTrigger)和样式触发器(StyleTrigger)。这些触发器都属于`TriggerBase`类的子类,允许我们在XAML中以声明式的方式定义何时以及如何...

    spring添加触发器+quartz

    同时,配置触发器(Trigger)来决定何时运行 Job。 ```xml &lt;!-- 配置 JobDetail --&gt; &lt;property name="jobDetails"&gt; &lt;property name="jobClass" value="com.tsinghua.test.MyJob"/&gt; &lt;!-- 设置 Job 的名字 -...

    spring quartz实现触发器demo(笔记)

    这篇笔记将深入探讨如何使用Spring与Quartz结合来实现触发器的示例。 首先,Quartz是一个开源的作业调度框架,它允许开发者定义任务并在预定的时间点执行。Spring则是一个强大的应用框架,提供了依赖注入(DI)和...

    Spring Quartz可变参数Trigger

    在运行时,我们可以通过Spring的`Scheduler`接口来修改Trigger的属性。例如,要更改Cron表达式,我们可以这样做: ```java @Autowired private Scheduler scheduler; public void updateTrigger(String ...

    开发篇之Oracle触发器心得

    6. **Block属性与记录计数**:虽然没有直接的属性来获取Block的记录数,但可以通过GET_BLOCK_PROPERTY(QUERY_HITS)得到查询到的记录数量。 7. **Canvas管理**:HIDE_VIEW仅将Canvas置于底层,可能仍会被看到,而...

    Spring2.0 2.5定时触发器

    你可以直接在方法上使用这个注解,配合`cron`或`fixedRate`属性来定义定时任务。 例如: ```java @Scheduled(cron = "0 0/5 * * * ?") public void executeTask() { // 执行任务的代码 } ``` 这里的"Cron"表达式...

    oracle数据库对象

    - 创建触发器:使用`CREATE TRIGGER`语句定义在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行的代码。 - 示例:实验创建了一个名为`credit_id`的触发器,用于在特定操作后更新数据。 - 查看触发器:同样...

    flex特效、适合初学者学习

    Flex的行为由触发器(Trigger)和效果(Effect)组成。当用户进行特定操作,如点击按钮时,触发器被激活,进而启动预设的效果,如动画展示。触发器可由用户交互触发,也可由程序控制,并能关联多个效果。 1.1 ...

    Spring集成Quartz调度框架.pdf

    Quartz提供了多种类型的触发器,包括简单触发器(Simple Trigger)、日历间隔触发器(Calendar Interval Trigger)和Cron表达式触发器(Cron Trigger),以满足不同的调度需求。 #### 三、整体调度模型 Quartz的...

    spring和quartz整合相关jar包

    触发器(Trigger)定义了作业何时运行,可以是简单触发器(SimpleTrigger)或cron触发器(CronTrigger)。 ```java @Component("myJob") @PersistJobDataAfterExecution public class MyJob implements Job { @...

    Oracle Developer:第16章 对象和属性参照表.pdf

    触发器(Trigger)是附着在其他对象上的PL/SQL块,当特定事件发生时自动执行,其名字通常反映了触发事件的类型。Property Class和Parameter对象则增强了模块的灵活性和重用性,Parameter允许传递值到模块,根据具体...

    漂亮的C#WPF自定义按钮样式

    &lt;Trigger Property="IsMouseOver" Value="True"&gt; &lt;!-- 鼠标悬停时的样式 --&gt; &lt;/Trigger&gt; &lt;Trigger Property="IsPressed" Value="True"&gt; &lt;!-- 按下时的样式 --&gt; &lt;/Trigger&gt; &lt;Trigger Property="IsEnabled" ...

    DataTriggerSample

    5. **事件触发器(EventTrigger)**:结合事件触发器,可以在特定事件发生时执行数据触发器的动作。 ### 五、实际应用 数据触发器广泛应用于各种场景,如: - 用户界面状态管理:根据数据源的状态改变UI的视觉反馈...

    WPF高频面试题与解答,让你轻松找到理想工作

    样式包括属性设置、触发器和模板: ```xml &lt;Setter Property="Background" Value="LightBlue"/&gt; &lt;Setter Property="FontWeight" Value="Bold"/&gt; &lt;EventTrigger RoutedEvent="Button.Click"&gt; Storyboard....

Global site tag (gtag.js) - Google Analytics