如何刷新多页编辑器的页面?
How to refresh multipage editor's page?
我创建了一个插件,其中有一个包含两个页面的多页面编辑器。
Page1- 源代码编辑器。
Page2- 用于操作。
我的问题是,如果代码中存在任何编译错误,第二页必须显示其他内容,如 "Error"。
否则它会显示我的操作形式。
为此,每次 pageChanges 时,我都需要用不同的内容填充复合材料。但是没用。
如何实现场景。单击第二页时,必须为新内容重新创建或刷新内容
public void createPage1(){
intializePage1Composite();
updatePage1Content(this.page1Compostie);
int index = addPage(this.page1Compostie);
setPageText(index, "Service Behaviors ");
}
public void updatePage1Content(Composite composite){
boolean error=getPageStatus();
if(!error){
/**
*Content of Normal Page
*/
}
/**
* setting the page to error
*/
else{
/**
*Content of Error Page
*/
}
}
protected void pageChange(int newPageIndex) {
super.pageChange(newPageIndex);
if (newPageIndex == 1) {
updatePage1Content(this.page1Compostie);
this.page1Compostie.redraw();
}
}
有什么建议吗?
要替换复合的所有子控件,您首先要对每个现有的子控件调用 dispose()
。接下来添加新控件。最后调用
composite.layout(true, true);
在父组合上强制更新布局。
如果您只想在两组控件之间切换,您可以使用 GridData.exclude
标志和 Control.setVisible
到 include/exclude 控件。最后再次调用 layout
。
我创建了一个插件,其中有一个包含两个页面的多页面编辑器。 Page1- 源代码编辑器。 Page2- 用于操作。
我的问题是,如果代码中存在任何编译错误,第二页必须显示其他内容,如 "Error"。 否则它会显示我的操作形式。 为此,每次 pageChanges 时,我都需要用不同的内容填充复合材料。但是没用。
如何实现场景。单击第二页时,必须为新内容重新创建或刷新内容
public void createPage1(){
intializePage1Composite();
updatePage1Content(this.page1Compostie);
int index = addPage(this.page1Compostie);
setPageText(index, "Service Behaviors ");
}
public void updatePage1Content(Composite composite){
boolean error=getPageStatus();
if(!error){
/**
*Content of Normal Page
*/
}
/**
* setting the page to error
*/
else{
/**
*Content of Error Page
*/
}
}
protected void pageChange(int newPageIndex) {
super.pageChange(newPageIndex);
if (newPageIndex == 1) {
updatePage1Content(this.page1Compostie);
this.page1Compostie.redraw();
}
}
有什么建议吗?
要替换复合的所有子控件,您首先要对每个现有的子控件调用 dispose()
。接下来添加新控件。最后调用
composite.layout(true, true);
在父组合上强制更新布局。
如果您只想在两组控件之间切换,您可以使用 GridData.exclude
标志和 Control.setVisible
到 include/exclude 控件。最后再次调用 layout
。