实现:

1、add:

2、delete

3、add2

实现步骤:

1、新建属性display_text

2、创建layout

3、代码部分:

add事件:

METHOD onactionadd .
DATA: ls_disp TYPE string.
wd_context->get_attribute(
EXPORTING name = 'DISPLAY_TEXT'
IMPORTING value = ls_disp ).
CONCATENATE ls_disp 'Action1' into ls_disp.
wd_Context->SET_ATTRIBUTE( name = 'DISPLAY_TEXT' value = ls_disp ). ENDMETHOD.

add2事件:

method ONACTIONADD2 .
data: ls_disp type string.
wd_Context->get_attribute(
EXPORTING name = 'DISPLAY_TEXT'
IMPORTING value = ls_disp ).
CONCATENATE ls_disp 'Action2' into ls_disp.
wd_Context->SET_ATTRIBUTE( name = 'DISPLAY_TEXT' value = ls_disp ).
endmethod.

delete事件:

method ONACTIONDELETE .
data: ls_disp type string.
wd_Context->SET_ATTRIBUTE( name = 'DISPLAY_TEXT' value = space ).
endmethod.

方法WDDOONCONTEXTMENU好像没起作用

method WDDOONCONTEXTMENU .
DATA: ls_id type string,
lo_menu type REF TO cl_wd_menu,
lo_menu_item type REF TO cl_wd_menu_action_item.
* get the UI element ID
ls_id = CONTEXT_MENU_EVENT->originator->id.
* if it is the 1st UI,then assign the Cotext Menu statically
IF ls_id = 'TEXT'.
MENU = CONTEXT_MENU_MANAGER->get_context_menu( 'ACTION' ).
ENDIF.
* if it is the 2nd UI,then assign the Cotext Menu programly
IF ls_id = 'TEXT2'.
**runtime object
lo_menu = cl_wd_menu=>new_menu( id = 'ACTION2' ).
**menu itme
lo_menu_item = cl_wd_menu_action_item=>new_menu_action_item(
id = 'ADD2'
on_action = 'ADD2'
text = 'Action2-Add2' ).
**add this item to menu
lo_menu->add_item( lo_menu_item ).
**menu itme
lo_menu_item = cl_wd_menu_action_item=>new_menu_action_item(
id = 'DELETE2'
on_action = 'DELETE'
text = 'Action2-DELETE2' ).
**add this item to menu
lo_menu->add_item( lo_menu_item ).
**return the menu
MENU = lo_menu.
ENDIF.
endmethod.

进阶:案例六: Context Menu(静态 与 动态)的更多相关文章

  1. WPF案例 (六) 动态切换UI布局

    原文:WPF案例 (六) 动态切换UI布局 这个Wpf示例对同一个界面支持以ListView或者CardView的布局方式呈现界面,使用控件ItemsControl绑定数据源,使用DataTempla ...

  2. webpack4入门到进阶案例实战课程

    愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问xdclass.net 第一章 webpack4前言 第一集 webpack4入门到进阶案例实战课程介绍 简介:讲述w ...

  3. Android中BroadcastReceiver的两种注册方式(静态和动态)详解

    今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...

  4. Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理)

    Python进阶(十六)----面向对象之~封装,多态,鸭子模型,super原理(单继承原理,多继承原理) 一丶封装 , 多态 封装:            将一些东西封装到一个地方,你还可以取出来( ...

  5. SpringBoot进阶教程(六十四)注解大全

    在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...

  6. Bing Maps进阶系列六:使用Silverlight剪切(Clip)特性实现Bing Maps的迷你小地图

    Bing Maps进阶系列六:使用Silverlight剪切(Clip)特性实现Bing Maps的迷你小地图 Bing Maps Silverlight Control虽然为我们提供了简洁.方面的开 ...

  7. SpringBoot进阶教程(六十一)intellij idea project下建多个module搭建架构(下)

    在上一篇文章<SpringBoot进阶教程(六十)intellij idea project下建多个module(上)>中,我们已经介绍了在intellij idea中创建project之 ...

  8. Spring进阶案例之注解和IoC案例

    Spring进阶案例之注解和IoC案例 一.常见的注解分类及其作用 从此前的基于xml的IoC开发案例和依赖注入案例中,我们可以将xml配置归纳为: <bean id="" ...

  9. SpringBoot进阶教程(六十五)自定义注解

    在上一篇文章<SpringBoot进阶教程(六十四)注解大全>中介绍了springboot的常用注解,springboot提供的注解非常的多,这些注解简化了我们的很多操作.今天主要介绍介绍 ...

随机推荐

  1. 转百度前辈的Trados使用心得

    我用Trados的时间不长,可以说是一个新手.但我在较短的时间内就已经初步掌握这个工具,说明它并不是那么神秘,并不是那么深不可测.这里,我说一说学习它的一点体会.在我转发的文章中有的内容,我就少讲一些 ...

  2. GitHub的问题

    出现failed to publish the branch, 转自:http://blog.csdn.net/cucmakeit/article/details/29407329 (windows系 ...

  3. 【集训笔记】动态规划背包问题【HDOJ1421【HDOJ1058【HDOJ2546

    http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.zju.edu.cn/onlinejudge/showContestProblem. ...

  4. django-crispy-forms入门指南

    django-crispy-forms 是对django form在html页面呈现方式进行管理的一个第三方插件. 配置: 在INSTALLED_APPS中加入'crispy_forms' djang ...

  5. 转:python中函数curry化

    1 柯里化(Currying) 一个函数有多个参数,我们希望能固定其中几个参数的值. from functools import partial def foo(a,b,c): return a+b+ ...

  6. Android 多分辨率机适应

    如果你有一台机器,如以下决议: 800 x 480 1024 x 600 1024 x 768 1280 x 800 1920 x 1200 2048 x 1536 总共六种类分辨率机器,假设依照dp ...

  7. Ganglia 权威指南-安装Ganglia过程

    转自于:http://blog.csdn.net/xxd851116/article/details/21527055 http://www.dataguru.cn/article-3816-1.ht ...

  8. JS - 按钮倒计时

    效果: html代码: <input type="button" id="btn" value="点击获取效验码" /> js代 ...

  9. list和用vector区别(Vector相当于是数组,读写快,插入慢)

    stl提供了三个最基本的容器:vector,list,deque. vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符,但由 ...

  10. c语言利用指针计算字符串的长度

    可以用strlen函数,这里我们自己写一个. 注意:不能用scanf,scanf一遇到空格就认为输入结束.应该用gets(),遇到换行符或EOF结束.说明可以接受空格. #include<cst ...