`

Policy策略

    博客分类:
  • GEF
 
阅读更多

Policy:最基本的功能就是接收Request(请求),然后为提供相应的Command(命令),Command才是具体处理请求的。

 

EditPolicy:Policy的基础接口,所有的Policy都必须实现这个接口。Policy里面定义的方法基本上都常用,另外它还提供了一组特殊的方法:void showSourceFeedback(Request request),void showTargetFeedback(Request request)

void eraseSourceFeedback(Request request),void eraseTargetFeedback(Request request)。Feedback作为Policy最基本的能力,提供在EditPolicy中,也代表着所有的Request(请求)都可以看到一种与之对应的Feedback现象。

 

AbstractEditPolicy:它实现了两个接口EditPolicy和RequestConstants,RequestConstants里面存放着gef默认定义的Request(请求)类型。然后就是对EditPolicy接口做了一个空实现。尽管AbstractEditPolicy里面没有抽象方法,但是它依旧是一个抽象类。

 

ComponentEditPolicy:这个Policy主要用于处理删除子的请求,但是它响应两种处理请求:REQ_ORPHAN(子节点从当前父移到新的父中去)和REQ_DELETE(删除子节点)分别对应的命令是getDeleteCommand和getOrphanCommand

 

ConnectionEditPolicy:它是用来删除线的请求。

 

ContainerEditPolicy:这个Policy响应了四种请求,主要用于创建子节点的。

getCreateCommand:REQ_CREATE,响应创建请求。

getAddCommand:REQ_ADD,响应添加请求。

getCloneCommand:REQ_CLONE,响应克隆请求。

getOrphanChildrenCommand:REQ_ORPHAN_CHILDREN

 

GraphicalEditPolicy:这个主要是跟图形化界面相关的Policy,它有很多子。GraphicalEditPolicy对Feedback做了些简单的处理。这个类获取了getHostFigure,还有getLayer为在界面实现各种效果奠定了基础。

 

补充:因为删除是对自己的操作所以存在ComponentEditPolicy(节点)和ConnectionEditPolicy(线),而添加是对父容器的操作所以有ContainerEditPolicy并且是添加在父节点上。除了这些增加删除之类的操作,大部分就是对图像的外观的改变了,所以有了GraphicalEditPolicy。

 

GraphicalEditPolicy的子类:

ContainerHighlightEditPolicy:对一些常用的请求做了高亮处理,如果我们要有自己的一个这样的Policy,也可以仿照它扩展。

DirectEditPolicy:编辑节点的一个Policy,gef提供了一个默认实现供参考LabelDirectEditPolicy

DragGuidePolicy:gef实现内部功能Guide的策略。

GraphicalNodeEditPolicy:一个处理节点连线的Policy,提供处理四种请求的命令,开始连接,结束连接和源重连接,目标重连接。

LayoutEditPolicy:这个是跟布局息息相关的Policy,主要是响应孩子的添加,移动等请求。

ConstrainedLayoutEditPolicy:这个增加了Constrained约束,坐标以及大小以及布局都属于这个范畴。

XYLayoutEditPolicy:ConstrainedLayoutEditPolicy的子类,绝对定位布局的Policy

 

OrderedLayoutEditPolicy:这个跟文本编辑器相关

 

SelectionEditPolicy:响应选中的Policy

 

 

 

注意:一般Feedback都是在LayoutEditPolicy里面进行实现的,像ContainerEditPolicy之类的,都只是负责非界面化的东西。所有会在图形上有所表现的事情,都应该放到GraphicalEditPolicy或者它的子类中完成。

 

 

 

一篇很好的文章:

http://macrochen.iteye.com/blog/54403

 

 

分享到:
评论

相关推荐

    安卓audio-audioflinger、audiopolicy策略加载

    - 策略制定:AudioPolicyService通过audio_policy_module打开audio_policy_device设备,制定音频播放的策略,例如在通话和播放音乐之间切换时如何处理声音。 - 音量管理:AudioPolicyService允许上层应用通过...

    C++编程中使用设计模式中的policy策略模式的实例讲解

    下面我们将通过两个实例来深入理解policy策略模式。 实例1展示了智能指针`SmartPtr`的使用,它结合了`CheckingPolicy`和`ThreadingModel`两种策略。`SmartPtr`类继承了这两种策略,实现了对指针操作的检查和线程...

    华为策略路由-旁挂IPGUARD安全网关

    # 应用至traffic-policy策略 [HUAWEI] traffic policy safe [HUAWEI-trafficpolicy-safe] classifier safe behavior safe ``` #### 四、注意事项 1. **优先级问题**:当同时配置了`traffic-filter`和`traffic-...

    Android深入浅出之Audio第三部分Audio Policy[1]

    这些工具可以帮助开发者识别音频问题,调试AudioPolicy策略,优化音频性能。 八、PDF文档 提供的Android深入浅出之Audio第三部分Audio Policy[1].pdf文件很可能是对上述概念的详细讲解,包括实例分析、代码示例和...

    GroupPolicy C:\WINDOWS\system32\GroupPolicy

    标题中的"GroupPolicy"指的是Windows操作系统中的组策略对象(Group Policy Object, GPO),这是一个强大的管理工具,允许管理员对用户和计算机设置进行集中管理和配置。在Windows XP SP3(Service Pack 3)中,组...

    Oracle官方java jdk JCE无限制权限策略文件.zip 【jce_policy-6到jce_policy-8】

    Oracle官方java jdk JCE无限制权限策略文件。该策略文件均从官网下载。文件清单:JDK2//JDK4/JDK5/JDK6/JDK7/JDK8 的 local_policy.jar、US_export_policy.jar

    使用Policy文件来设置Java的安全策略.doc

    "使用Policy文件来设置Java的安全策略" 本文档主要介绍了使用Policy文件来设置Java的安全策略,讨论了Java安全策略的概念、Policy文件的格式、keystore记录和grant记录等内容。下面是相关的知识点: 一、Java安全...

    IBM Policy文件 local_policy.jar&US;_export_policy.jar

    IBM Policy文件,包括`local_policy.jar`和`US_export_policy.jar`,是IBM Java Cryptography Extension (JCE) 的核心组件,主要用于扩展和定制Java安全策略。这些文件在IBM的服务器环境中,特别是像WebSphere这样的...

    Juniper防火墙技术资料 基本原理+管理+高可用性

    本JUNIPER手册可以让大家尽快用最短的时间内掌握Juniper防火墙的实际操作,掌握了这些内容大家就可以基本能够完成安全部署和维护的工作...Policy策略设置 对象Object设置 策略Policy报告Report 高可用性 故障切换 NSRP

    local_policy.jar和US_export_policy.jar

    `local_policy.jar`包含了本地加密策略文件,它定义了在特定地域内可以使用的加密强度限制。在某些国家或地区,由于法律法规的限制,Java默认的加密强度可能被削弱,例如对于AES(Advanced Encryption Standard)...

    MDP.zip_mdp_policy iteration_机器学习_策略迭代_策略迭代 matlab

    策略迭代是MDP求解的核心算法之一,它包括两个主要步骤:策略评估(Policy Evaluation)和策略改进(Policy Improvement)。在策略评估阶段,我们计算给定策略下的状态值函数,即预测在遵循该策略时,从每个状态出发...

    Cisco策略路由(policy route)精解

    Cisco策略路由(policy route)精解 策略路由基本概念 Cisco 策略路由(policy route)是一种基于三层设备的路由机制,它可以根据数据包的源地址、目的地址、数据应用、数据包长度等特征来转发数据包。与传统的基于...

    无限强度加密local-policy.jar/US-export-policy.jar

    针对Java 8u151之前版本,内含有限强度策略文件,我们下载 oracle上的无限制版本替换local_policy.jar、US_export_policy.jar。因为美国的出口限制,Sun通过权限文件(local_policy.jar、US_export_policy.jar)做了...

    US_export_policy/local_policy jar 包

    `local_policy.jar`文件包含了本地策略,它规定了在特定地区运行的Java应用可以使用的最大加密密钥长度。例如,在某些国家,由于法规限制,可能不允许使用超过一定长度的密钥。如果在执行过程中遇到“RSA加密提示...

    强化学习算法-基于python的策略迭代算法policy_iteration实现

    策略迭代算法主要包括两个步骤:策略评估(Policy Evaluation)和策略改进(Policy Improvement)。首先,我们来了解这两个概念: 1. 策略评估:策略评估是计算给定策略下的值函数V(s)。值函数表示从每个状态s出发...

    frozenlake_policy_interation_FrozenLake_强化学习:策略迭代程序_强化学习_

    策略迭代(Policy Iteration)是强化学习中的一种高效算法,它结合了策略评估(Policy Evaluation)和策略改进(Policy Improvement)两个步骤。在这个Python实现中,`frozenlake_policy_interation.py`文件将展示...

    US_export_policy.jar,local_policy.jar

    标题中的"US_export_policy.jar"和"local_policy.jar"是Java安全策略文件,它们与Java的加密和解密机制密切相关。这两个文件在Java运行环境中扮演着至关重要的角色,特别是对于控制和管理Java应用程序的加密能力。 ...

    jdk8_local_policy.jar和US_export_policy.jar资源免费下载

    `local_policy.jar` 文件包含了本地(非美国)的加密策略,规定了在美国之外地区运行的Java应用所能使用的最大加密强度。这是因为不同国家和地区对于加密技术的使用和出口有着不同的法规限制。此文件决定了非美国...

    思科无线CCIE-EI全新实战课程-网盘链接提取码下载 .txt

    课程内容包括了SDN介绍及思科SDN解决方案,SD-Acccess简介,SDA LAB实战,LISP详解,Policy策略,Multi Site 多站点,Automation 自动化,Assurance 保障,SD-WAN部署与数据分段,SD-WAN全面解读,SDW Lab Template ...

Global site tag (gtag.js) - Google Analytics