Twaver-HTML5基础学习(24)快速查找(QuickFinder)

简介: 文章介绍了Twaver中的快速查找工具QuickFinder,用于根据属性值快速查找网络图中的元素,并提供了使用步骤和React代码示例。

快速查找(QuickFinder)

快速查找用于快速查找指定属性值的所有元素,如查找某个告警级别的所有告警,特定类型的所有网元等等。

  • dataBox:数据容器,查找器查找的对象
  • propertyName:属性名称,查找条件
  • propertyType:属性类型,默认为’accessor’,表示可直接获取的属性,属性类型支持三种:accessor、client、style等
  • valueFunction:值获取函数,默认根据上面三种方式获取数据,用户也可以指定值的获取方式,通过设置valueFunction实现
  • filterFunction:过滤函数,用于控制哪些元素是否参与查找

twaver.QuickFinder = function(dataBox,propertyName,propertyType,valueFunction,filterFunction)

/**
 *filterFunction:传入data,返回true/false,表示这个元素是否参与查找
 */
filterFunction = function(data){
   }
//返回第一个查找到的元素
findFirst: function (value) 
//返回找到的所有元素的集合
find: function(value)
使用QuickFinder步骤,以查找指定名称元素为例:
(1).首先创建一个与name属性绑定的查找器
/**
 * databox:数据容器
 * 'name':查找条件
 */
var nameFinder = new waver.QuickFinder(box,'name');
(2).开始查找
/**
 * 返回值:返回查找到的元素集合
 */
var datas = nameFinder.find('group-1');

例子

在这里插入图片描述

react代码
/*
 * @Descripttion: 
 * @version: 
 * @Author: ZhangJunQing
 * @Date: 2022-04-18 14:44:05
 * @LastEditors: ZhangJunQing
 * @LastEditTime: 2022-04-27 09:39:30
 */
import React, {
    useEffect, useState } from 'react'
import {
   
    returnElementBoxAndNetworkFun,
    returnNodeFun,
    returnLineFun,
} from './utils'
const twaver = require('twaver');
// const demo = require('demo');
const Demo = () => {
   
        const [network, setnetwork] = useState({
   })
        const init = () => {
   
        const [box, network] = returnElementBoxAndNetworkFun()
        setnetwork(_ => network)
        network.invalidateElementUIs();
        document.getElementById("testID").appendChild(network.getView());
        // 设置最初的大小
        network.adjustBounds({
    x: 0, y: 0, width: 800, height: 800 });

        returnNodeFun(box, {
    name: "liuqing", location: {
    x: 200, y: 300 } })
        let liuqing2 = returnNodeFun(box, {
    name: "liuqing", location: {
    x: 400, y: 500 } })
        liuqing2.setClient('NO', 'NO')
        /**
         * dataBox:数据容器,查找器查找的对象
         * propertyName:属性名称,查找条件
         * propertyType:属性类型,默认为'accessor',表示可直接获取的属性,属性类型支持三种:accessor、client、style等
         * valueFunction:值获取函数,默认根据上面三种方式获取数据,用户也可以指定值的获取方式,通过设置valueFunction实现
         * filterFunction:过滤函数,用于控制哪些元素是否参与查找 
         */
        //  twaver.QuickFinder = function (dataBox, propertyName, propertyType, valueFunction, filterFunction)

        /**
         *filterFunction:传入data,返回true/false,表示这个元素是否参与查找
        */
        // filterFunction = function (data) { }

        //返回第一个查找到的元素 传入对应属性的属性值
        // findFirst: function (value) 
        // 返回找到的所有元素的集合
        // find: function(value)

        // (1).首先创建一个与name属性绑定的查找器
        /**
         * databox:数据容器
         * 'name':查找条件
         */
        var nameFinder = new twaver.QuickFinder(box, 'name');
        // name属性对应属性值 伟liuqing的第一个网元
        let node = nameFinder.findFirst('liuqing')
        // 一个元素
        console.log(node, 'liuqing')
        // 返回所以name属性值伟liuqing的网元
        let nodes = nameFinder.find('liuqing')
        // 元素集合
        console.log(nodes, 'nodes')

        var noFinder = new twaver.QuickFinder(box, 'NO', 'client');
        console.log(noFinder, 'noFinder')
    }
    useEffect(init, [])
    return (
        <>
            <p style={
   {
    fontSize: "20px", paddingLeft: "50px", poaddingTop: "50px" }}>tips: </p>
            <ul style={
   {
    fontSize: "20px", paddingLeft: "50px" }}>
                <li>quickFinder快速查找</li>
            </ul>
            {
   /* 画布元素需要开启定位 不然生成的图元坐标点会偏移 */}
            <div id="testID" style={
   {
    width: "800px", height: "800px", border: "1px solid #ccc", position: "relative" }}></div>
        </>
    )
}
export default Demo

在这里插入图片描述

学习参考:TWaver Documents

目录
相关文章
|
1天前
Twaver-HTML5基础学习(29)界面交互
这篇文章介绍了Twaver-HTML5中界面交互的多种模式,包括默认模式、编辑模式、创建网元模式、创建连线模式、创建形状连线模式、创建形状网元模式、触屏模式和放大镜模式,并提供了相应的代码示例。
22 10
Twaver-HTML5基础学习(29)界面交互
|
1天前
Twaver-HTML5基础学习(27)过滤器
这篇文章介绍了Twaver-HTML5中过滤器的使用,包括可见过滤器、可移动过滤器和可编辑过滤器,并通过代码示例展示了如何通过设置过滤器实现不同用户权限或网元类型的交互和视图。
15 8
Twaver-HTML5基础学习(27)过滤器
|
1天前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(26)背景
这篇文章介绍了如何在Twaver-HTML5中设置背景,包括栅格图片、颜色、颜色渐变、基本形状以及图片与形状结合的背景类型,并提供了代码示例。
13 6
Twaver-HTML5基础学习(26)背景
|
1天前
|
移动开发 HTML5 容器
Twaver-HTML5基础学习(21)网元管理容器(ElementBox)
本文介绍了Twaver HTML5中的网元管理容器(ElementBox),包括如何监听网元属性变化、容器属性变化、网元元素变化以及数据层次变化。文章通过示例代码展示了如何使用不同的事件监听方法来响应这些变化,并通过控制台输出相关的事件信息。
12 4
Twaver-HTML5基础学习(21)网元管理容器(ElementBox)
|
1天前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(13)连线(Link)连线的绑定与展开
本文介绍了Twaver HTML5中连线(Link)的绑定与展开功能,包括分组绑定、自环绑定、绑定与展开以及展开间隙等属性的设置。通过示例代码展示了如何在React组件中创建Link并设置其绑定属性,实现连线的分组管理。
10 3
Twaver-HTML5基础学习(13)连线(Link)连线的绑定与展开
|
1天前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(23)页管理容器(TabBox)、选中模型(SelectionModel)
本文介绍了Twaver HTML5中的页管理容器(TabBox)和选中模型(SelectionModel)。文章解释了如何使用TabBox来管理Tab页,并通过示例代码展示了SelectionModel的多种功能,包括追加选中元素、设置选中元素、选中所有元素、移除元素选中状态、清除所有选中状态等。此外,还介绍了如何监听选中状态的变化事件以及如何设置不同的选中模式,如多选、单选和不可选。
14 2
Twaver-HTML5基础学习(23)页管理容器(TabBox)、选中模型(SelectionModel)
|
1天前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(12)连线(Link)
本文介绍了Twaver HTML5中的连线(Link)元素,包括设置起始和结束节点的方法,以及如何管理和操作多个连线。通过示例代码展示了如何在React组件中创建和管理Link,包括设置连线颜色和标签偏移量。
9 2
Twaver-HTML5基础学习(12)连线(Link)
|
1天前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(10)嵌入Table
本文介绍了如何在Twaver HTML5中嵌入表格(Table),并设置表格的列(Column)和样式。通过示例代码展示了如何在React组件中创建表格并添加数据,以及如何通过样式设置表格元素的颜色。
10 2
Twaver-HTML5基础学习(10)嵌入Table
|
1天前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
本文介绍了Twaver HTML5中数据的批量加载方法,通过使用`box.startBatch()`可以在大量数据加载时提高性能。文章通过示例代码展示了如何在React组件中使用批量加载功能,以减少界面重绘次数并提升效率。
15 1
Twaver-HTML5基础学习(20)数据容器(3)_数据的批量加载(节省性能方法)
|
1天前
|
XML 移动开发 JSON
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断
本文介绍了Twaver HTML5中的数据容器(DataBox),包括如何进行增删查改操作、遍历数据容器以及判断网元是否存在于数据容器中。DataBox用于管理所有的网元对象,如ElementBox、LayerBox、AlarmBox等,并通过示例代码展示了其常用方法的使用。
10 1
Twaver-HTML5基础学习(18)数据容器(1)_增删查改、遍历数据容器、包含网元判断