`
z7kevin
  • 浏览: 17687 次
社区版块
存档分类
最新评论

used defined java class左侧栏添加自定义方法

阅读更多
在used defined java class左侧栏有很多方法,我们也可以把经常用到的一些方法添加进去,步骤如下

1. 在配置文件中添加自定义方法分类
在org-pentaho.di.trans.steps.userdefinedjavaclass.messages的messages_en_US.properties添加以下代码
# 添加"自定义方法"
UserDefinedJavaClassCodeSnippits.categories.SELF_DEFINED=\u81ea\u5b9a\u4e49\u65b9\u6cd5

当然也可以根据自己所在国家加到对应的properties中

2. 修改读取配置文件的代码UserDefinedJavaClassCodeSnippits
步骤1只是修改了配置文件,但是还要在读取配置文件的代码中修改一下代码,
找到org.pentaho.di.ui.trans.steps.userdefinedjavaclass的UserDefinedJavaClassCodeSnippits.java,在定义枚举类型Category中添加如下代码
//添加自定义方法
  SELF_DEFINED(BaseMessages.getString(PKG, "UserDefinedJavaClassCodeSnippits.categories.SELF_DEFINED"));


3. 把要加入的自定义方法写到配置文件codeSnippits.xml
在org.pentaho.di.ui.trans.steps.userdefinedjavaclass中找到codeSnippits.xml,加入自己的自定义方法
<!-- 刷新环境变量 start -->
 <codeSnippit>
  <name>刷新环境变量</name>
  <category>SELF_DEFINED</category>
  <code><![CDATA[private void refreshEnvironment() throws KettleException
{
    //初始化环境变量,确保每次运行时,内存中的环境变量都是最新的
 //如果放在if(first){}内执行,则以后修改了kettle.properties文件也不用重启
 org.pentaho.di.core.util.EnvUtil.environmentInit();
}
]]></code>
  <sample><![CDATA[private void refreshEnvironment() throws KettleException
{
    //初始化环境变量,确保每次运行时,内存中的环境变量都是最新的
 //如果放在if(first){}内执行,则以后修改了kettle.properties文件也不用重启
 org.pentaho.di.core.util.EnvUtil.environmentInit();
}
]]></sample>
 </codeSnippit>
    <!-- 刷新环境变量 end -->


4.  方法高亮显示
这个步骤可选,如果想步骤高亮显示,
找到org.pentaho.di.ui.trans.steps.userdefinedjavaclass的UserDefinedJavaClassHighlight.java,在定义数组UDJC_FUNCTIONS里加入如下代码:
"refreshEnvironment",//刷新环境变量


5. 关键字高亮显示
这个步骤可选,而且跟前面步骤没什么关系,used defined java class里的true,false不是高亮显示的,如果想改为高亮显示,可以这样做
找到org.pentaho.di.ui.trans.steps.userdefinedjavaclass的UserDefinedJavaClassHighlight.java,在定义数组JAVA_KEYWORDS里加入如下代码:
"true","false",//true,false

分享到:
评论
1 楼 linjian513 2014-06-13  
谢谢曾大师的分享!!

相关推荐

    《详解kettle之User Defined Java Class步骤》示例代码

    《详解kettle之User Defined Java Class步骤》示例代码,是最详细的udjc步骤说明文档,有示例理解更容易,更全面。

    LS-DYNA-USERDEFINED-MATERIAL-EXAMPLE_ls-dyna_二次开发_自定义材料_

    标题中的“LS-DYNA-USERDEFINED-MATERIAL-EXAMPLE”表明我们将探讨如何在LS-DYNA中进行自定义材料模型的开发和应用。 自定义材料在LS-DYNA中的实现主要通过用户子程序(User-Defined Materials, UDMs)。这允许...

    Discuz! X2.5 添加自定义数据调用模块(简单方法)

    X2.5 添加自定义数据调用模块(简单方法) #### 知识点一:Discuz! X2.5 平台简介 Discuz! 是一款由Comsenz公司开发的通用社区系统软件,是全球范围内非常受欢迎的论坛程序之一。X2.5版本是该系列中的一个稳定...

    ubuntu下NOX控制器添加自定义应用的方法.docx

    【添加自定义应用】: NOX允许用户通过编写APP(应用程序)来扩展其功能。APP被视为模块,遵循NOX的事件驱动、动态加载架构。编写APP需要利用NOX框架提供的API,并遵守其编码规范。尽管官方wiki的说明可能不够详尽,...

    Defined_Class.zip

    在给定的"Defined_Class.zip"压缩包中,我们看到一个与汽车电子和DBC相关的项目。这里,Python的`cantools`库被用来解析DBC文件。`cantools`是一个开源库,能够读取、写入和处理DBC文件,支持多种不同的CAN总线描述...

    java 类加载器 class loader

    创建自定义类加载器通常需要继承`java.lang.ClassLoader`,重写`findClass()`或`loadClass()`方法,从而控制类的查找和加载过程。这使得开发者能够在运行时根据需要加载特定的类,比如从网络、数据库或其他非传统...

    C++经典错误之already defined in *****.obj解决方法

    C++经典错误之already defined in *.obj解决方法需要根据具体情况选择解决方案,既可以将包含了操作函数的源文件改为头文件,也可以重新打开编译器,重新编译源文件,并将头文件和操作函数添加到external ...

    jvm 加载class文件

    由于Java的动态性,只要修改了类中的成员变量或者方法,相应的`.class`文件就会发生变化,这就要求Java能够及时响应这些变化。 #### 二、JVM加载Class文件的过程分析 在深入探讨之前,我们首先了解Java类加载器...

    USB 设备类型 device class 代码完整版

    USB 设备类型 device class 代码完整版 USB 设备类型 device class 代码是一种用于标识设备功能和加载设备驱动程序的代码信息。该信息被包含在三个字节中,分别是 Base Class、SubClass 和 Protocol。这些信息可以...

    java 类找不到终结者

    此项目中com.burns.everyclass.ui.MainUI1是程序主界面, private static final String dirPath = "D:/MentorGraphics/CHS2010/lib"设置要查找的jar包路径,也可以设置maven都路径,然后可以搜索常用的类

    解决layui调用自定义方法提示未定义的问题

    在使用layui这个优秀的前端框架时,开发者可能会遇到一个常见的问题,即尝试调用自定义方法时,浏览器控制台抛出“未定义”的错误。本文将深入探讨这个问题的原因,并提供一个有效的解决方案。 首先,我们需要理解...

    hive 创建自定义函数 和 hive加载说明

    然而,有时Hive的内置函数并不能满足所有的业务需求,这时我们就需要创建自定义函数(UDF,User Defined Function)。这篇博文主要探讨了如何在Hive中创建自定义函数以及如何加载它们,这对于深化Hive的使用和解决...

    通过xml文件自定义view的一个Demo

    首先,自定义View的基本步骤包括创建一个新的Java类,该类继承自Android的基础View类,如View或ViewGroup。在这个Demo中,我们可能有一个名为MyDefinedView2的类,它可能是这样的: ```java public class ...

    Java heap space 解决方法

    ### Java Heap Space 解决方法详解 #### 一、概述 在Java应用程序运行过程中,经常会遇到一个常见的错误提示:`java.lang.OutOfMemoryError: Java heap space`。这通常意味着Java虚拟机(JVM)的堆内存空间不足,...

    大学课程讲义-Java基础-反射.pptx

    JVM规范定义了两种类型的类装载器:启动类装载器(bootstrap)和用户自定义装载器(user-defined class loader)。JVM在运行时会产生3个类加载器组成的初始化加载器层次结构。 * 引导类加载器(Bootstrap ClassLoader)...

    c#对SQLite创建自定义函数

    SQLite允许开发者扩展其内置功能,通过创建用户自定义函数(UDF,User Defined Function),可以实现一些特定的计算或逻辑操作,这些操作可能在标准SQL语法中并不支持或者不直接提供。 创建C#中的SQLite自定义函数...

    VUE使用‘luckysheet‘ is not defined已解决,其他博主方法没有解决请看这里

    在Vue.js应用中,Luckysheet 是一个强大的在线表格...如果你已经尝试过其他博主的方法而未成功,可以对照以上步骤检查并修正错误。同时,利用Luckysheet-master中的源码和文档可以进一步提升你的使用体验和开发能力。

    如何创建用户自定义的刀具库

    接下来需要编辑`Tool_database.dat`文件来添加自定义刀具的信息。每一条记录都包含了刀具的类型(`TYPE`)、子类型(`SubType`)等信息。通过编辑这些记录,可以实现对特定刀具类型的定制。 #### 步骤四:配置切削...

    自定义带两个按钮的Dialog-修改

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何实现一个带有两个按钮的自定义Dialog,并结合"DefinedDialog"这个压缩包文件中的内容...

Global site tag (gtag.js) - Google Analytics