Editorer har ofte nogle tilsvarende funktioner til indholdsstrukturering, som medfører en struktureret fremvisningen af og hjælper brugeren med at navigere gennem indholdet i editoren.
Arbejdsbænken indeholder en standardstrukturoversigt til dette formål. Brugeren af arbejdsbænken styrer, hvornår denne oversigt skal være synlig, via menuen Vindue > Vis oversigt.
Da den generiske TextEditor ikke kender noget til strukturen i sin test, kan den ikke angive en funktionsmåde for en interessant strukturoversigt. Derfor sker der ikke så meget i den standard strukturoversigt, som vises nedenfor.

Editorer i tekststrukturen kan levere deres egen indholdsstruktureringsside til strukturoversigten. Strukturen til en editor angives, når arbejdsbænken anmoder om en adapter af typen IContentOutlinePage.
public Object getAdapter(Class required) {
if (IContentOutlinePage.class.equals(required)) {
if (fOutlinePage == null) {
fOutlinePage= new JavaContentOutlinePage(getDocumentProvider(), this);
if (getEditorInput() != null)
fOutlinePage.setInput(getEditorInput());
}
return fOutlinePage;
}
return super.getAdapter(required);
}
En indholdsstruktureringsside skal implementere IContentOutlinePage. Denne grænseflade kombinerer evnen til at give lyttere til ændring af valg (ISelectionProvider) besked om funktionsmåden forbundet med at være en side i en oversigt (IPage). Funktioner til indholdsstrukturering implementeres typisk vha. JFace-fremvisningsfunktioner. Standardimplementering af en funktion til indholdsstrukturering (ContentOutlinePage) anvender en JFace-træstruktur til at vise en hierarkisk repræsentation af strukturen. Denne repræsentation egner sig til mange struktureringsfunktioner, herunder JavaContentOutlinePage.
Lad os se på implementeringen af siden. Når struktursiden oprettes af editoren i sekvensen ovenfor, angives dets inputelement til editorens inputelement. Dette input kan ofte sendes direkte til struktureringssidens fremvisningsfunktion, som illustreret nedenfor.
public void createControl(Composite parent) {
super.createControl(parent);
TreeViewer viewer= getTreeViewer();
viewer.setContentProvider(new ContentProvider());
viewer.setLabelProvider(new LabelProvider());
viewer.addSelectionChangedListener(this);
if (fInput != null)
viewer.setInput(fInput);
}
Oprettelse af træstrukturfremvisningen overtages fra ContentOutlinePage. Udbyderen af standardetiketter bruges. Indholdsudbyderen stilles til rådighed i JavaContentOutlinePage og er ansvarlig for at analysere editorinputtet i individuelle segmenter, hver gang det ændres.
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
...
if (newInput != null) {
IDocument document= fDocumentProvider.getDocument(newInput);
if (document != null) {
document.addPositionCategory(SEGMENTS);
document.addPositionUpdater(fPositionUpdater);
parse(document);
}
}
}
Teksten analyseres i intervaller, som kaldes segmenter, i dokumentet. Disse segmenter vises efter navn i strukturoversigten.

Når valget ændres, hentes det valgte segment. Dets forskydninger bruges til angivelse af fremhævningsintervallet i editoren.
public void selectionChanged(SelectionChangedEvent event) {
super.selectionChanged(event);
ISelection selection= event.getSelection();
if (selection.isEmpty())
fTextEditor.resetHighlightRange();
else {
Segment segment= (Segment) ((IStructuredSelection) selection).getFirstElement();
int start= segment.position.getOffset();
int length= segment.position.getLength();
try {
fTextEditor.setHighlightRange(start, length, true);
} catch (IllegalArgumentException x) {
fTextEditor.resetHighlightRange();
}
}
}