OK!
I had time to play some with Mate and my example, and I finally got a scheme
that may just work without using a 'global' Singleton instance reference. Yes
I can be slow, but ...
So here is what I have:
1) Main MXML loading a MainUIViews MXML with a simple mx:List.
2) Main also has a MainEventMap MXML.
3) MainDataManager MXML to store system state data.
4) The normal other stuff like events, utilities, vos, etc...
So the MainEventMap first instantiates my MainDataModel into Mate's cache. This
eliminates my need for the Singleton.getInatance() method, ...hopefully. Once
instantiated, the XML data is ordered, HTTPServiceInvoker - here just an XML file.
//-------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<EventMap xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns="http://mate.asfusion.com/" >
<mx:Script>
<![CDATA[
import views.*;
import models.*;
import mx.events.FlexEvent;
import mx.collections.XMLListCollection;
import mx.controls.Alert;
// Event map local utility functions.
private function XMLResultsConverter( xml:XML ):XMLListCollection
{ return( new XMLListCollection( xml..image ) ); }
private function XMLServiceFault( fault:String ):Alert
{ return Alert.show("Error: ...bad HTTP call. /n"+fault); }
]]>
</mx:Script>
<Debugger level="{Debugger.ALL}" />
<!-- FlexEvent.PREINITIALIZE -->
<EventHandlers type="{FlexEvent.PREINITIALIZE}" debug="false" >
<ObjectBuilder generator="{MainDataManager}" >
<Properties globalDispatcher="{scope.dispatcher}" />
</ObjectBuilder>
</EventHandlers>
<!-- FlexEvent.CREATION_COMPLETE -->
<EventHandlers type="{FlexEvent.CREATION_COMPLETE}" debug="false" >
<HTTPServiceInvoker id="get_XML_db" url="./image_db.xml"
useProxy="false" resultFormat="e4x" debug="false" >
<resultHandlers>
<InlineInvoker method="XMLResultsConverter" arguments="{[resultObject]}" />
<ObjectBuilder generator="{MainDataManager}" >
<Properties XMLDataLC="{lastReturn}" />
</ObjectBuilder>
</resultHandlers>
<faultHandlers>
<InlineInvoker method="XMLServiceFault" arguments="{[fault]}" />
<ObjectBuilder generator="{MainDataManager}" >
<Properties alert="{lastReturn}" />
</ObjectBuilder>
</faultHandlers>
</HTTPServiceInvoker>
</EventHandlers>
<!-- BINDINGS: XML Data Injector -->
<Injectors target="{MainUIViews}" >
<PropertyInjector targetKey="XMLDataLC" source="{MainDataManager}" sourceKey="XMLDataLC" />
</Injectors>
</EventMap>
//-------------------------------------------
In the resultHandlers, I first use an InlineInvoker that simply converts the
resultObject, XML, to an XMLListCollection that is passed along as the
SmartObject, lastReturn.
The next step is an ObjectBuilder using the cached MainDataModel to store this
XMLListCollection. In the MainDataModel I used getters/setters and bind them:
[Bindable] public dynamic class MainDataManager implements IEventDispatcher
{
//-------------------------------------------
// Main UI views model data storage elements...
private var _XMLDataLC:XMLListCollection;
public function get XMLDataLC( ):XMLListCollection
{ return _XMLDataLC as XMLListCollection; }
public function set XMLDataLC( value:XMLListCollection ):void
{ _XMLDataLC = value as XMLListCollection; }
//-------------------------------------------
Now in the MainUIViews, I have added a bindable local variable, XMLDataLC, which
is used as the data provider for my MX:List:
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
[Bindable] public var XMLDataLC:XMLListCollection = new XMLListCollection();
]]>
</mx:Script>
<!-- Simple list of images -->
<mx:List id="mainDataList" width="300" height="400"
dataProvider="{XMLDataLC}" labelField="file" />
Finally, the injectors in the MainEventMap push the image file data into the list:
<!-- BINDINGS: XML Data Injector -->
<Injectors target="{MainUIViews}" >
<PropertyInjector targetKey="XMLDataLC" source="{MainDataManager}" sourceKey="XMLDataLC" />
</Injectors>
Well, so far, it all works thanks to the help that all have provided. TY
I hope that this is as it was meant.
Comments welcomed.
Greg
http://www.gypsytrader.com/mate/post01.txt
http://www.gypsytrader.com/mate/image_db.xml
相关推荐
西门子Simotion运动控制
SIMOTION
metaObjecthandler 的基本理解与使用
metaObjecthandler:元数据对象处理器 MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。 使用场景:公共字段填充等,如updateTime、createTime、createUser、updateUser等公共字段多的填充。
多普勒频移测速与FMCW测距
文章目录时域与频域基于多普勒频移估计速度基于传统的FMCW测距什么是FMCWFMCW测距原理参考论文 时域与频域 时域 — 自变量是时间,即横轴是时间,纵轴是信号振幅的变化。表示振幅随时间的变化。 频域 — 自变量是频率,即横轴是频率,纵轴是该频率信号幅度的峰值。表示振幅峰值随频率的变化。 基于多普勒频移估计速度 当发送端静止而接收端相对运动时,有: v=FsFcv=\frac{F^s}{F}cv=FFsc 其中,F是信号的原始频率;FsF^sFs 是接收信号频率与发送信号频率之差,即多普勒频移;c是
MetaObjectHandler
MetaObjectHandler
扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路
本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。
C#海康威视摄像头控制,将IntPtr转换成Bitmap图片
C#通过skd控制海康威视摄像头,获取bitmap格式图片
MyBatis MetaObjectHandler:动态字段处理与对象元数据处理
这种机制允许开发者在不修改实体类代码的情况下,对实体对象的字段值进行自定义处理,如自动填充创建时间、更新时间等。在开发过程中,经常需要为实体类的某些字段设置默认值,比如创建时间、更新时间等。是 MyBatis-Plus 提供的一个强大功能,它允许开发者在不修改实体类代码或 XML 映射文件的情况下,动态地处理实体类的字段值。的工作原理是通过反射机制,获取实体类的字段信息,然后根据开发者定义的规则,对字段值进行处理。还支持在更新操作时,对实体类的字段进行动态处理,如根据条件自动更新某些字段的值。
用Python玩转Carla-Apollo联合仿真:手把手教你实现自动驾驶测试
本文详细介绍了如何使用Python实现Carla-Apollo联合仿真,从环境搭建到自动驾驶算法测试的全流程。通过Carla提供的高逼真仿真环境和Apollo的自动驾驶算法栈,开发者可以高效验证感知、规划和控制模块。文章包含环境配置、Python API操作、桥接实现及实战测试,为自动驾驶开发提供完整解决方案。
metaObjecthandler 的基本理解与使用(自动插入更新人和创建人)
metaObjecthandler 的基本理解与使用(自动插入更新人和创建人)
【制作100个Unity游戏之35】从零开始构建类《月圆之夜》《杀戮尖塔》的卡牌游戏(附带项目源码)
本文介绍了如何从零开始构建类似《月圆之夜》《杀戮尖塔》的卡牌游戏。主要内容包括:1)获取游戏素材资源;2)导入xyframe框架工具集;3)实现手牌弯曲排列效果,通过样条曲线控制卡牌位置和旋转;4)设计可扩展的MVD卡牌系统架构,分离数据层(ScriptableObject存储)、模型层(业务逻辑)和视图层(显示控制)。文中提供了完整的代码实现,并展示了卡牌动态排列的GIF效果演示。
抽取实体公共字段
通用字段填充
2026 蓝牙技术趋势展望:信道探测、Auracast、高吞吐 HID 与 AI 融合引领行业变革
蓝牙技术2026年展望:信道探测、Auracast广播音频和AI融合将引领创新。蓝牙信道探测技术将实现亚米级精确定位,在工业资产追踪和汽车数字钥匙领域大显身手。Auracast广播音频将持续拓展公共场所应用,提升音频包容性体验。高数据吞吐量和超低延迟功能将支持AR/VR等新兴场景。AI与蓝牙的深度融合将推动可穿戴设备智能化发展,实现实时健康监测和个性化音频服务。蓝牙技术凭借其多功能性和创新力,正成为连接万物的关键技术,持续推动行业变革和生活品质提升。
20090422
继续研究mate框架,想在自己写的as类里面引用到mate框架中创建的实例,即引用cache里面保存的实例。在官方网站上有两个帖子,一个是讲通过objectBuilder这个标签来去掉singleton这个模式,由此引申出一些关于singleton这个模式优缺点的讨论。另一个帖子是讲如何添加自己创建的实例到mate框架中cache里面去,里面介绍了可能会在后续版本中添加一个新标签来允许自己添加实例
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
mybatis-plus 多张表查询
autogenerator 自动代码生成器。分页查询,以及返回的数据。mybatis代码生成器。使用fill自动填充。
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
Mybatisplus常用注解
1、@Data lombook注解(自动生成get set toString()方法) @Data @TableName(value = "user") public class Account { private Integer id; @TableField(value = "name") private String title; private Integer age; } 使用Data注解后,点击左侧的Struceure可以看到get、set和toString方
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
如何实现Mybatis-plus的公共字段填充
Mybatisplus的公共字段填充是指,在进行数据库操作时,自动将公共字段(例如创建时间、修改时间、创建者、修改者等)的值填充到对应的实体对象中,从而避免手动填写这些字段带来的麻烦和错误。这个功能在实现上是通过在实体类中定义对应的公共字段,并在Mybatisplus的配置中设置相应的拦截器来实现的。公共字段填充可以大大简化代码编写,提高代码效率和准确性,特别是在大型系统中更为重要。简单来说就是在新增或者修改的时候为指定字段添加指定值。
mybatisPlus属性自动填充配置之MetaObjectHandler接口实战
前言:在我们向数据库插入一条数据的时候,少不了一些向createTime、updateTime此类字段,每次插入的数据都要设置这些个值,很烦,通过实现MetaObjectHandler接口重写insertFill、updateFill方法可以帮你摆脱烦恼 本文概括MetaObjectHandler介绍1:编写MetaObjectHandler 实现类2:实体类上边加上@TableField(fill = FieldFill.INSERT_UPDATE)注意点小节代码链接 MetaObjectHandle.
MybatisPlus MetaObjectHandler 配置了没起作用
mybatis自动填充功能 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面...
接口及方式实现重要编程思想 (dbutils中BeanHandler)
定义接口,便于功能扩展 重要编程思想A:.当程序不确实数据的处理方式时,或数据的处理方式需要用户指定时,则程序设计时,可提供接口供用户或其它程序处理。让使用者实现此接口并同时完善处理方式。(接口的多实现特性,导致可以设计多种处理方式) interface ResultSetHandler{ public Object handler(ResultSet ...
Mybatis-Plus 3.4.0多租户的实现方案
使用背景 微服务matecloud希望支持saas的多租户的管理模式,mybatis plus正好已经考虑支持该模式,下面就简单说说其应用案例 多租户模式介绍 数据隔离有三种方案: 1、独立数据库:简单来说就是一个租户使用一个数据库,这种数据隔离级别最高,安全性最好,但是提高成本。 2、共享数据库、隔离数据架构:多租户使用同一个数据裤,但是每个租户对应一个Schema(数据库user)。- 3、共享数据库、共享数据架构:使用同一个数据库,同一个Schema,但是在表中增加了租户ID的字段,这种共享数据程度最
mybatis-plus配置自动填充
1.在需要自动填充的实体类属性上加上注解@TableField(fill = FieldFill.INSERT) 2.新建一个类实现元对象处理器接口并重写其方法 package com.wq.mybatisDemo.mateObject; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.spring
Qt的元对象系统
Qt的主要成就之一就是使用了一种机制对C++进行了扩展,并且使用这种机制创建了独立的软件组件。这些组件可以绑定在一起,但任一个组件对于它所要连的组件的情况事先都一无所知。 这种机制称为元对象系统(mate-object system),它提供了关键的两项技术:信号槽以及内省(introspection)。内省功能对于实现信号槽是必需的,并且允许应用程序的开发人员在行时获得有关QObject子类的...
自定义MetaObjectHandler在微服务中的使用讨论
自定义MetaObjectHandler在微服务中的使用讨论 MetaObjectHandler是mybatis-plus提供的一个接口,用来定义填充实体对象某些属性在执行insert或者update操作时的默认值的策略。感觉对于像createDate和updateDate这样的属性非常好用。 使用方法 引入mybatis-plus依赖 实现MetaObjectHandler接口中的连个方法,一个是insert操作时的赋值策略,一个时update时的赋值策略,另外实现类要加@Component注解。 在需
MetaObjectHandler 自动填充
需要一个mybatis配置类 @Configuration public class MybatisConfig { @Bean public MetaObjectHandler metaObjectHandler() { return new MetaObjectHandler() { @Override public void insertFill(MetaObject metaObject) { .
Application初始化
FLEX生成的SWF运行的顺序是preloader->systemManager->FlexApplication started…然后才是preinitialize在所有的初始化之前触发,没有子组件的定义,但是可以引用组件的变量.、 initialize当所有子组件生成完成后触发,在这个时间点还没有组件被渲染出来. creationComplete组件定义完成并已经在显示
3024



被折叠的 条评论
为什么被折叠?



