smartClient 2--可视化组件

2024-06-20 01:38

本文主要是介绍smartClient 2--可视化组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、功能:
1、标准功能
Foundation Services
Foundation Components
Event Handling
Controls
Forms
Grids
Trees
Layout
DataBinding
Themes/Skins

 

2、扩展功能
SmartClientServer  //包含Java类库的集成后端
Analytics
Real-Time Messaging
Network Performance

 

二、开发语言
1、XML
2、JavaScript(推荐使用)
三、资源: https://www.smartclient.com/smartclient/showcase/?id=formLayoutFilling&skin=Simplicity&fontIncrease=1&sizeIncrease=2
四、样式修改:
1、更换系统皮肤:引用不同的css包
2、自定义样式:
a. 同系统皮肤自成一个文件夹的形式一样,新建文件夹(如BrushedMetal),将最接近目的皮肤的文件夹里的内容(包含skin_styles.css   images/   load_skin.js)copy进新文件夹
b. 在首页入口文件中引用的皮肤样式文件中引入新建样式
c. 在skin_styles.css和load_skin.js的文件底部重写样式(找到某个需要修改的类,例如button,在后面写上覆盖样式即可)
3、重构独立的组件内部的样式
五、可视化组件
1、独立组件
a. 识别组件(引用组件方式)
采用 id:   默认组件的id是全局命名空间下的(所以命名id时,需要注意唯一性)
isc.Label.create({ID: "helloWorldLabel",contents: "hello world"
});

 

自动分配id,规则:isc_ClassName_ID_#
var helloWorldLabel = isc.Label.create({ contents: "Hello World" 
});
b. 组件布局:通过设置组件属性的方式创建组件    注意:如果不是在组件中定义组件布局(如下),而是在CSS/HTML中直接修改,则必须手动做好浏览器兼容问题
isc.Label.create({top: 10,    //int,相对于该组件的containerleft: 10,width: 10,    //int | string "50%", 默认100contents: "hello world",overflow: "hidden | scroll | auto",position: "relative | absolute | fixed"    //默认absolute,相对于该组件的container
});

    

c. 组件的渲染、隐藏、显示
autoDraw: true | false;    //默认TRUE,即create即显示,如果FALSE,则需要js控制: hiddenBtn.show();
show();
hide();eg.
isc.Button.create({ID: 'hiddenBtn',title: 'Hidden',autoDraw: false
});

       

d. 组件的事件
click recordClick change tabSelectedeg. 
isc.Button.create({ID: "clickBtn",title: "click me",click: function(){},click: "isc.warn('button was clicked')",click: "clickFn()"
});
function clickFn() {......}

 

e. 数据绑定
字段field:包括组件字段 和 数据源字段
//网格的形式显示
isc.ListGrid.create({ID: "contactList",left: 50, top: 50,width: 300,fields: [{name: "salutation", title: "Title"},    //name 是关联数据库中的value,title是显示文字(在表单控件中是作为label显示,在button中是作为button上的文字显示){name: "firstname", title: "First Name"}      ]
});data: [{salutation: "Ms", firstname: "Kathy"},{salutation: "Ms", firstname: "Kathy"},
];//DynamicForm的格式显示
isc.DynamicForm.create({......同上});

 

g. 表单控件    注意:一旦组件绑定了数据源,组件将会根据数据源的数据格式自动匹配表单控件《即不需要fields字段,会自动匹配并绑定数据》。但是通常fields和
dataSource共存,行使不同的职责( 表单字段(field)或者说控件的默认类型(editorType)是text )
//editorType: text select date checkbox radioGroup textArea
isc.DynamicForm.create({ID: "contactForm",......,fields: [{name: "salutation", title: "Title", editorType: "select"},    {name: "firstname", title: "First Name", editorType: "date"},{name: "gender", title: "gender", editorType: "radioGroup", valueMap: ["female", "male"]}    //valueMap 是数组形式的radio的选项显示文字
   ]
});

 

h. 数据源(数据源的定义格式类似SQL数据存储格式,区别在于:1)存储方式是XML或者js;2)必须定义数据类型;......)
<DataSource ID="contactsDS">
<fields><field primaryKey="true" name="id" hidden="true" type="sequence" /><field name="salutation" title="Title" type="text" ><valueMap><value>Ms</value><value>Mr</value><value>Mrs</value></valueMap></field><field name="firstname" title="First Name" type="text" /><field name="lastname" title="Last Name" type="text" /><field name="birthday" title="Birthday" type="date" /><field name="employment" title="Status" type="text"><valueMap><value>Employed</value><value>Unemployed</value></valueMap></field><field name="bio" title="Bio" type="text" length="2000" /><field name="followup" title="Follow up" type="boolean" />
</fields>
</DataSource>

 

h1.    xml格式的DataSource创建好之后,在js文件里引入该文件,并通过 dataSource 属性,即可绑定数据(此时用dataSource代替了fields属性)
<isomorphic:loadDS ID="contactsDS" /><%@ taglib uri="isomorphic" prefix="isomorphic" %>
<HTML>
<HEAD><isomorphic:loadISC />
</HEAD>
<BODY>
<SCRIPT><isomorphic:loadDS ID="contactsDS" />
    isc.ListGrid.create({ID: "contactsList",left: 50, top: 50,width: 500,dataSource: contactsDS});isc.DynamicForm.create({ID: "contactsForm",left: 50, top: 200,width: 300,dataSource: contactsDS});
</SCRIPT>
</BODY>
</HTML>

 

h2.    字段属性(fields的属性type)和表单控件一一对应规则:
Field attribute                    Form control
valueMap provided        SelectItem (dropdown)
type:"boolean"                CheckboxItem (checkbox)
type:"date"                        DateItem (date control)
length > 255                    TextAreaItem (large text box)

 

h3.    数据源的操作
//以下方法均包含可选三个参数:dataObject,callback,propertiseObject
fetchData();
filterData();
addData();
updateData();
removeData();//使用方法: 1)直接在数据源中使用    2)直接在组件做数据绑定的时候使用
contactDS.addData({salutation: "Mr", firstname: "Steven", lastname: "Hua"},"say("hello")",{prompt: "add new contact..."}
);orcontactsList.fetchData({lastname: "nihao"}
);

 

h4.    调用组件方法操作数据
editRecord();
editNewRecord();
saveData();

 

 

这篇关于smartClient 2--可视化组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076736

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景   当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业

JavaEE应用的组件

1、表现层组件:主要负责收集用户输入数据,或者向客户显示系统状态。最常用的表现层技术是JSP,但JSP并不是唯一的表现层技术。 2、控制器组件:对于JavaEE的MVC框架而言,框架提供一个前端核心控制器,而核心控制器负责拦截用户请求,并将用户请求转发给用户实现的控制器组件。而这些用户实现的控制器则负责处理调用业务逻辑方法,处理用户请求。 3、业务逻辑组件:是系统的核心组件,实现系统的业务逻辑

17 通过ref代替DOM用来获取元素和组件的引用

重点 ref :官网给出的解释是: ref: 用于注册对元素或子组件的引用。引用将在父组件的$refs 对象下注册。如果在普通DOM元素上使用,则引用将是该元素;如果在子组件上使用,则引用将是组件实例: <!-- vm.$refs.p will be the DOM node --><p ref="p">hello</p><!-- vm.$refs.child will be the c