我们切换到了e4目标平台。一位编辑的渲染速度变得非常慢(布局大约需要20秒)。从编辑器菜单中打开模式对话框时,应用程序会闪烁,就像癫痫发作一样。
当我们关闭CSS时,通过...
DefaultScope.INSTANCE.getNode("org.eclipse.e4.ui.workbench.renderers.swt")
.put("themeEnabled", "false");
在插件中,渲染速度非常快(<10ms),就像以前在以前的目标平台下一样。
这是我已嵌入到编辑器中的控件(出于评估目的):
package xyz;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
public class BigControl extends Composite {
public BigControl(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout(23, false));
for (int i=0; i<100; i++) {
for (int j=0; j<23; j++) {
new Label(this, SWT.NONE).setText("|" + Integer.toString(i) + " " + Integer.toString(j) + "|");;
}
}
}
}
是否有人遇到过该问题?是的,我们知道表对于这种数量的数据会更好,但是重构在当前会花费太多。
第二个问题是,当我们关闭主题功能时,eclipse / swt会在切换透视图,视图等时引发异常。
答案 0 :(得分:0)
...为了清楚起见,我通过eclipse向导创建了一个全新的应用程序(...具有视图)。
我用那个替换了示例视图代码-如前所述,当我们关闭css / theming(请参见上面的代码)时,一切都很好-否则它不会停止动摇,甚至很难使鼠标指针回到eclipse以停止应用程序:
package xyz;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.part.ViewPart;
public class View extends ViewPart {
public static final String ID = "xyz.view";
public class BigControl extends Composite {
public BigControl(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout(23, false));
for (int i=0; i<100; i++) {
for (int j=0; j<23; j++) {
new Label(this, SWT.NONE).setText("|" + Integer.toString(i) + " " + Integer.toString(j) + "|");;
}
}
}
}
@Override
public void createPartControl(Composite parent) {
new BigControl(parent, SWT.NONE);
}
@Override
public void setFocus() {
}
}
答案 1 :(得分:0)
好的,我们用较新的平台(2019-3)替换了目标平台。我不知道要使用旧平台。
闪烁停止了,它仍然不快(调整窗口大小大约需要2秒钟),但目前尚可接受。
谢谢您的帮助,
最好,马丁