Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
E4/EAS/Part Input
In any application, a user is presented with some information which they may or may not take any action on. A data object may have a very limited amount of properties but there may be multiple ways of presenting this information. Consider four non-negative integers. Individually, they could be something random like four candidate numbers for the lottery, but together, they may represent a quadrilateral on a Cartesian coordinate system based on its X and Y coordinate and values for its height and width. These four values may be displayed to the user as four discrete number on one part but as a rectangle on the user's screen on another part.
Eclipse 3.x API
In 3.x, there are two types of workbench parts, editors and views.
Consuming input
Editors interact with its input through the IEditorInput.
public void init(IEditorSite site, IEditorInput input) throws PartInitException { if (!(input instanceof ModelEditorInput)) { throw new PartInitException("Unknown editor input"); } setSite(site); setInput(input); } public void createPartControl(Composite parent) { ModelEditorInput input = (ModelEditorInput) getEditorInput(); Model model = input.getModel(); /* render the model */ }
Views do not have an input so they are usually forced to expose a public method for setting the input.
public void setModel(Model model) { /* populate the view with the model's information */ }
Providing input
Editors can be opened with a specific type of editor.
IEditorInput input = new ModelEditorInput(model); workbenchPage.openEditor(input, "org.eclipse.e4.examples.modelEditorId");
Views have their input set after the view has been shown.
ModelView modelView = (ModelView) workbenchPage.showView("org.eclipse.e4.examples.modelView"); modelView.setModel(model);