我想停下来Parts
在 Eclipse RCP 4 中不可分离。
目前,如果我右键单击Part
我可以选择分离。由此我可以关闭选项卡,即使Part
isn't Closeable
。在 RCP 3 中,当分离时View
关闭后它会返回到原来的位置,但现在它完全关闭了。
结构
零件配置
如何删除分离选项Part
?
另外我怎样才能阻止分离Part
使其不被关闭或返回到原来的位置?
为了阻止部件可拆卸,我使用了自定义堆栈渲染器并覆盖了填充选项卡菜单的方法。
import java.util.Arrays;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.ui.internal.workbench.renderers.swt.SWTRenderersMessages;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
public class UndetachableStackRenderer extends StackRenderer
{
@Inject
private IEclipseContext context;
@PostConstruct
public void init()
{
super.init(context);
}
@Override
protected void populateTabMenu(final Menu menu, final MPart part)
{
super.populateTabMenu(menu, part);
final MenuItem[] menuItems = menu.getItems();
final Optional<MenuItem> detachMenuItem = Arrays.stream(menuItems).filter(item -> item.getText().equals(SWTRenderersMessages.menuDetach)).findFirst();
if(detachMenuItem.isPresent())
{
detachMenuItem.get().dispose();
}
}
}
然后我添加了一个Persisted State
进入我不想显示的零件堆栈Detach
选项。
如果有人在设置自定义堆栈渲染器时遇到问题,那么我的问题here https://stackoverflow.com/questions/54572702/adding-a-custom-renderer-to-different-parts可能有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)