Eclipse Platform
Release 3.0

org.eclipse.ui.forms
Class MasterDetailsBlock

java.lang.Object
  extended byorg.eclipse.ui.forms.MasterDetailsBlock

public abstract class MasterDetailsBlock
extends Object

This class implements the 'master/details' UI pattern suitable for inclusion in a form. The block consists of two parts: 'master' and 'details' in a sash form that allows users to change the relative ratio on the page. The master part needs to be created by the users of this class. The details part is created by the block.

The master part is responsible for adding itself as a form part and firing selection events. The details part catches the selection events and tries to load a page registered to handle the selected object(s). The page shows the details of the selected object(s) and allows users to edit them.

Details pages can be registered statically using 'registerPage' or dynamically through the use of 'IDetailsPageProvider' in case where different pages need to be shown for objects of the same type depending on their state.

Subclasses are required to implement abstract methods of this class. Master part must be created and at least one details page should be registered in order to show details of the objects selected in the master part. Tool bar actions can be optionally added to the tool bar manager.

Since:
3.0
See Also:
DetailsPart, IDetailsPage, IDetailsPageProvider

Field Summary
protected  DetailsPart detailsPart
          Details part created by the block.
protected  SashForm sashForm
          The form that is the parent of both master and details part.
 
Constructor Summary
MasterDetailsBlock()
           
 
Method Summary
 void createContent(IManagedForm managedForm)
          Creates the content of the master/details block inside the managed form.
protected abstract  void createMasterPart(IManagedForm managedForm, Composite parent)
          Implement this method to create a master part in the provided parent.
protected abstract  void createToolBarActions(IManagedForm managedForm)
          Implement this method to create form tool bar actions and add them to the form tool bar if desired.
protected abstract  void registerPages(DetailsPart detailsPart)
          Implement this method to statically register pages for the expected object types.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

detailsPart

protected DetailsPart detailsPart
Details part created by the block. No attempt should be made to access this field inside createMasterPart because it has not been created yet and will be null.


sashForm

protected SashForm sashForm
The form that is the parent of both master and details part. The form allows users to change the ratio between the two parts.

Constructor Detail

MasterDetailsBlock

public MasterDetailsBlock()
Method Detail

createContent

public void createContent(IManagedForm managedForm)
Creates the content of the master/details block inside the managed form. This method should be called as late as possible inside the parent part.

Parameters:
managedForm - the managed form to create the block in

createMasterPart

protected abstract void createMasterPart(IManagedForm managedForm,
                                         Composite parent)
Implement this method to create a master part in the provided parent. Typical master parts are section parts that contain tree or table viewer.

Parameters:
managedForm - the parent form
parent - the parent composite

registerPages

protected abstract void registerPages(DetailsPart detailsPart)
Implement this method to statically register pages for the expected object types. This mechanism can be used when there is 1->1 mapping between object classes and details pages.

Parameters:
detailsPart - the details part

createToolBarActions

protected abstract void createToolBarActions(IManagedForm managedForm)
Implement this method to create form tool bar actions and add them to the form tool bar if desired.

Parameters:
managedForm - the form that owns the tool bar

Eclipse Platform
Release 3.0

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.