Eclipse plugin EclipseRCP:是否可以在不重新绘制的情况下向上移动字段?

Eclipse plugin EclipseRCP:是否可以在不重新绘制的情况下向上移动字段?,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,在我的编辑器中,我有一个复合控件,它在顶部包含一个标签控件,每当用户在下面的任何字段中输入错误输入时,它都会以红色闪烁信息消息。文本会根据用户的输入动态变化。我能够实现在错误输入时显示红色文本,而在正确输入时标签中不显示任何内容的效果 但是,我希望当标签组合中没有显示错误时,下面的其余字段将在显示中上移。当有错误要显示时,错误应该出现在它的位置(在所有其他字段的顶部),向下推其他字段 有没有一种方法可以在不重新绘制所有控件的情况下实现此效果?是,在父控件上调用layout(true) 例如,我有

在我的编辑器中,我有一个复合控件,它在顶部包含一个标签控件,每当用户在下面的任何字段中输入错误输入时,它都会以红色闪烁信息消息。文本会根据用户的输入动态变化。我能够实现在错误输入时显示红色文本,而在正确输入时标签中不显示任何内容的效果

但是,我希望当标签组合中没有显示错误时,下面的其余字段将在显示中上移。当有错误要显示时,错误应该出现在它的位置(在所有其他字段的顶部),向下推其他字段

有没有一种方法可以在不重新绘制所有控件的情况下实现此效果?

是,在父控件上调用
layout(true)

例如,我有一个视图,它的顶部有一个搜索栏,可以切换谁的可见性。我有一个创建搜索组合的方法和一个删除它的方法:

private void createNameSearchBar () {
    mySearchControl = new CardSearchControl (myViewComposite, SWT.NONE);
    mySearchControl.setSearchListener (this);
}


private void disposeNameSearchBar () {
    mySearchControl.dispose ();
    mySearchControl = null;
}

private CardSearchControl mySearchControl = null;
private Composite myViewComposite;
private boolean mySearchBarState;
要隐藏或显示搜索栏控件,我调用此方法(myViewComposite是拥有搜索栏和所有其他控件的顶级控件):

public void setSearchBarState (boolean show)  {
    mySearchBarState = show;

    if (myViewComposite == null  ||  myViewComposite.isDisposed ())
        return; // no work to do

    if (mySearchBarState  &&  mySearchControl == null)  {
        createNameSearchBar ();
        mySearchControl.moveAbove (null);
        myViewComposite.layout (true);
    }  else if (!mySearchBarState  &&  mySearchControl != null)  {
        disposeNameSearchBar ();
        myViewComposite.layout (true);
    }
}