`
louisling
  • 浏览: 143923 次
  • 性别: Icon_minigender_1
  • 来自: ZhuHai
社区版块
存档分类
最新评论

Change background for new or changed records

    博客分类:
  • RCP
阅读更多
TableViewer: Change background for new or changed records

1) //override hashCode() of the class that displayed in the table.
/**
 * Calculate these fields that affect the object state to change
 */
public int hashCode() {
    return BaseUtils.hashCode(id, name, sex, date, value);
}

2) In UI
//<PrimaryKey, hashCode>
private Map<Object, Integer> states = new HashMap<Object, Integer>();

3) //Init or Save
//After persistenting, the Person.getID() is not null.
for (Person person : persons) {
    if (person.getId() != null)
        states.put(person.getId(), person.hashCode());
}

4) get changed objects
/** Before persistenting, get changed objects */
List<Person> getChangedObjects(List<Person> list, Map<Object,Integer> states) {
    List<Person> changes = new ArrayList<Person>();
    for (Person p : list) {
        Integer hashCode = states.get(p.getId());
        if (p.getId() == null || hashCode == null || hashCode != p.hashCode()) {
            changes.add(p);
        }
    }
    return changes;
}

5)//class Provider implements ITableColorProvider
public Color getBackground(Object element, int columnIndex) {
    Person p = (Person) element;
    boolean isNew = p.getId() == null;
    boolean modified = states.containsKey(p.getId()) && states.get(p.getId()) != element.hashCode();
    
    if (isNew || modified)
        return RcpUI.COLOR_YELLOW;
    else
        return null;
}

public Color getForeground(Object element, int columnIndex) {
    return null;
}
分享到:
评论

相关推荐

    ChangeBackground

    这个名为"ChangeBackground"的项目显然就是一个简单的示例,用于展示如何编程实现这一功能。在这个小型的代码实例中,我们可能会看到如何操作用户界面(UI)元素、访问系统资源以及处理权限等关键知识点。 首先,...

    Change OEM Logo for Aptio 4.52.0.37主板logo修改中文版.zip

    Change OEM Logo for Aptio AMI BIOS 开机LOGO修改工具 软件环境:支持WIN7 WIN8 等 中文汉化版 可修改的格式:.fd .rom .fv .cap 使用方法:选择BIOS文件,选择LOGO文件,替换后保存新的BIOS文件,刷写入主板...

    Change background color-crx插件

    【Change background color-crx插件】是一款针对浏览器扩展程序的工具,主要功能是允许用户自定义浏览器的背景颜色,以个性化自己的浏览体验。这款插件特别适用于那些希望根据个人喜好或视力需求调整网页背景色的...

    Change Background Color Using JavaScript.zip

    这个"Change Background Color Using JavaScript.zip"文件可能包含一个示例项目,教我们如何使用JavaScript来实现这一功能。让我们详细探讨一下这个话题。 首先,JavaScript是一种轻量级的、解释型的编程语言,主要...

    background_change_v1.1.zip_BACKGROUND CHANGER_Change_v42

    "background_change_v1.1.zip_BACKGROUND CHANGER_Change_v42" 这个标题暗示了我们正在处理一个名为 "BACKGROUND CHANGER" 的软件的更新版本,具体是 v1.1 版本,它具有改变背景的功能。"Change_v42" 可能是指这个...

    PB并发控制与Row changed between retrieve and update详解

    PB并发控制与Row changed between retrieve and update详解 PB并发控制机制是指在多用户同时访问数据库时,防止数据不一致和丢失的机制。PowerBuilder 提供了多种并发控制策略,包括Key Columns、Key and ...

    510(k)-for-a-Change-to-an-Existing-Device.pdf

    This document supersedes Deciding When to Submit a 510(k) for a Change to an Existing Device, dated January 10, 1997. For questions about this document regarding CDRH-regulated devices, contact the ...

    A Polynomial-time Algorithm for the Change-Making Problem.pdf

    A Polynomial-time Algorithm for the Change-Making Problem Codeforces #10 E

    An Empirical Review of Deep Learning Frameworks for Change Dete

    An Empirical Review of Deep Learning Frameworks for Change Detection Model Design, Experimental Frameworks, Challenges and Research Needs.zip

    Deciding-When-to-Submit-a-510(k)-for-a-Software-Change-to-an-Existing-Device.pdf

    510(k) for a Software Change to an Existing Device ______________________________________________________________________________ Guidance for Industry and Food and Drug Administration Staff ...

    Constant Change Habits for “Experts”改变习惯的“专家”.pptx

    Constant Change Habits for “Experts”改变习惯的“专家”.pptx

    AMI BIOS change logo tool

    【标题】"AMI BIOS change logo tool"是一款专为美国梅捷公司(AMERICAN MEGATRENDS INC.)生产的BIOS设计的工具,它的主要功能是允许用户自定义开机画面,从而个性化自己的计算机启动体验。这款工具对于那些希望展示...

    javafx-textfield-change-demo

    当TextField中的文本发生改变时,ChangeListener的`changed()`方法会被调用。以下是如何设置TextField文本变化监听器的步骤: 1. 首先,我们需要导入必要的JavaFX库: ```java import javafx.application....

    change by design学习心得

    This book is for creative business leaders who seek to infuse design thinking into every level of an organization, product, or service to drive new alternatives for business and society.

    Dundas.Chart.for.Winform.Enterprise.v7.1.0.1812.for.VS2008

    Silverlight Add-On - Version 7 gives developers a novel wrapper for letting you use a new or existing chart project in Silverlight applications. All your favorite interactive ASP.NET features are ...

    Change_drive_Background.rar_Change

    这里你可以添加一个新的字符串值,将其命名为"Background", 数据类型设置为REG_SZ,数据则填写为图片路径。这种方法需要一定的计算机基础,不熟悉操作的用户应避免尝试。 3. **使用壁纸软件**:某些桌面壁纸管理...

    关于click和change的使用区别

    ### 关于click和change的使用区别 在前端开发过程中,我们经常会遇到各种用户交互操作,如点击按钮、选择下拉菜单等。为了更好地处理这些事件,JavaScript及其框架(如Vue.js)提供了丰富的事件处理机制。其中,`...

    Background Image Change When Refresh .zip

    标题 "Background Image Change When Refresh" 涉及到的是一个使用JavaScript实现的网页背景图片刷新时自动更换的特性。在游戏开发中,这样的功能可能用于创建动态或随机的视觉效果,提升用户体验。以下是对这个主题...

    Proficy Change management PPT

    Provides required Electronic Records, Electronic Signatures, Audit Trails, Record Security and 21 CFR Part 11 for Life Sciences. Prevents Unauthorized access and use Improve Safety Eliminates errors ...

    changeip的ddns更新客户端【curl实现changeip的ddns动态域名更新功能】

    通过批处理调用curl来进行changeip的ddns更新,解压到本地某路径,简单修改一下帐户和域名信息,点击start.bat直接运行即可。 参数说明: set user=用户名 set password=密码 set domain=你的ddns set url=...

Global site tag (gtag.js) - Google Analytics