如何以编程方式在 eclipse 4.4 中打开文本编辑器?
how to open a text editor in eclipse 4.4 programmatically?
我想以编程方式在 eclipse 4.4 中打开文本编辑器。我已经使用 IDE class 尝试过,但在 eclipse 4.4 中无法访问它。我该怎么做?
e4 只有部分,没有编辑器和视图。它也没有任何预定义的文本编辑器。
假设您希望同时打开多个编辑器部件,您需要在编辑器的应用程序模型中定义一个'Part Descriptor'。
然后您使用以下方法从描述符创建一个部件:
@Inject
EPartService partService;
MPart part = partService.createPart("descriptor id");
您现在需要将其添加到应用程序模型中。通常这将是 child 的 'MPartStack':
@Inject
EModelService modelService;
@Inject
MApplication app;
MPartStack editorStack = (MPartStack)modelService.find("part stack id", app);
editorStack.getChildren().add(part);
最后展示部分:
partService.showPart(part, PartState.ACTIVATE);
您在编辑器的部件描述符中指定的 class 必须实现文本编辑器。您可以使用 JFace 文本编辑器 classes 但 不能 'org.eclipse.ui.xxx' 编辑器 classes。
对于一个非常简单的文本编辑器,TextViewer
和 Document
class 就足够了。
我想以编程方式在 eclipse 4.4 中打开文本编辑器。我已经使用 IDE class 尝试过,但在 eclipse 4.4 中无法访问它。我该怎么做?
e4 只有部分,没有编辑器和视图。它也没有任何预定义的文本编辑器。
假设您希望同时打开多个编辑器部件,您需要在编辑器的应用程序模型中定义一个'Part Descriptor'。
然后您使用以下方法从描述符创建一个部件:
@Inject
EPartService partService;
MPart part = partService.createPart("descriptor id");
您现在需要将其添加到应用程序模型中。通常这将是 child 的 'MPartStack':
@Inject
EModelService modelService;
@Inject
MApplication app;
MPartStack editorStack = (MPartStack)modelService.find("part stack id", app);
editorStack.getChildren().add(part);
最后展示部分:
partService.showPart(part, PartState.ACTIVATE);
您在编辑器的部件描述符中指定的 class 必须实现文本编辑器。您可以使用 JFace 文本编辑器 classes 但 不能 'org.eclipse.ui.xxx' 编辑器 classes。
对于一个非常简单的文本编辑器,TextViewer
和 Document
class 就足够了。