Eclipse Platform
2.0

org.eclipse.compare
Class CompareViewerSwitchingPane

java.lang.Object
  |
  +--org.eclipse.swt.widgets.Widget
        |
        +--org.eclipse.swt.widgets.Control
              |
              +--org.eclipse.swt.widgets.Scrollable
                    |
                    +--org.eclipse.swt.widgets.Composite
                          |
                          +--org.eclipse.swt.custom.ViewForm
                                |
                                +--org.eclipse.compare.CompareViewerPane
                                      |
                                      +--org.eclipse.compare.CompareViewerSwitchingPane
All Implemented Interfaces:
Drawable, IDoubleClickListener, ISelectionChangedListener, ISelectionProvider

public abstract class CompareViewerSwitchingPane
extends CompareViewerPane
implements ISelectionChangedListener, ISelectionProvider, IDoubleClickListener

A custom CompareViewerPane that supports dynamic viewer switching.

Clients must implement the viewer switching strategy by implementing the getViewer(Viewer, Object) method.

If a property with the name CompareUI.COMPARE_VIEWER_TITLE is set on the top level SWT control of a viewer, it is used as a title in the CompareViewerPane's title bar.

Since:
2.0

Field Summary
 
Fields inherited from class org.eclipse.swt.custom.ViewForm
borderInsideRGB, borderMiddleRGB, borderOutsideRGB, marginHeight, marginWidth
 
Fields inherited from class org.eclipse.swt.widgets.Control
handle
 
Constructor Summary
CompareViewerSwitchingPane(Composite parent, int style)
          Creates a CompareViewerSwitchingPane as a child of the given parent and with the specified SWT style bits.
CompareViewerSwitchingPane(Composite parent, int style, boolean visibility)
          Creates a CompareViewerSwitchingPane as a child of the given parent and with the specified SWT style bits.
 
Method Summary
 void addDoubleClickListener(IDoubleClickListener l)
           
 void addOpenListener(IOpenListener l)
           
 void addSelectionChangedListener(ISelectionChangedListener l)
          Adds a listener for selection changes in this selection provider.
 void doubleClick(DoubleClickEvent event)
          Notifies of a double click.
 Object getInput()
          Returns the current input of this pane or null if the pane has no input.
 ISelection getSelection()
          Returns the current selection for this provider.
 String getTitleArgument()
          Returns the optional title argument that has been set with setTitelArgument or null if no optional title argument has been set.
 Viewer getViewer()
          Returns the current viewer.
protected abstract  Viewer getViewer(Viewer oldViewer, Object input)
          Returns a viewer which is able to display the given input.
 boolean isEmpty()
          Returns true if no viewer is installed or if the current viewer is a NullViewer.
 void removeDoubleClickListener(IDoubleClickListener l)
           
 void removeOpenListener(IOpenListener l)
           
 void removeSelectionChangedListener(ISelectionChangedListener l)
          Removes the given selection change listener from this selection provider.
 void selectionChanged(SelectionChangedEvent ev)
          Notifies that the selection has changed.
 void setInput(Object input)
          Sets the input object of this pane.
 void setSelection(ISelection s)
          Sets the current selection for this selection provider.
 void setTitleArgument(String argument)
          Sets an additional and optional argument for the pane's title.
 
Methods inherited from class org.eclipse.compare.CompareViewerPane
clearToolBar, getToolBarManager, setImage, setText
 
Methods inherited from class org.eclipse.swt.custom.ViewForm
computeSize, computeTrim, getClientArea, getContent, getTopCenter, getTopLeft, getTopRight, layout, setBorderVisible, setContent, setFont, setLayout, setTopCenter, setTopCenterSeparate, setTopLeft, setTopRight
 
Methods inherited from class org.eclipse.swt.widgets.Composite
checkSubclass, getChildren, getLayout, getTabList, layout, setFocus, setTabList
 
Methods inherited from class org.eclipse.swt.widgets.Scrollable
getHorizontalBar, getVerticalBar
 
Methods inherited from class org.eclipse.swt.widgets.Control
addControlListener, addFocusListener, addHelpListener, addKeyListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addPaintListener, addTraverseListener, computeSize, forceFocus, getAccessible, getBackground, getBorderWidth, getBounds, getDisplay, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getParent, getShell, getSize, getToolTipText, getVisible, internal_dispose_GC, internal_new_GC, isDisposed, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, redraw, redraw, removeControlListener, removeFocusListener, removeHelpListener, removeKeyListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removePaintListener, removeTraverseListener, setBackground, setBounds, setBounds, setCapture, setCursor, setEnabled, setForeground, setLayoutData, setLocation, setLocation, setMenu, setParent, setRedraw, setSize, setSize, setToolTipText, setVisible, toControl, toDisplay, traverse, update
 
Methods inherited from class org.eclipse.swt.widgets.Widget
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getStyle, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, setData, setData, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CompareViewerSwitchingPane

public CompareViewerSwitchingPane(Composite parent,
                                  int style)
Creates a CompareViewerSwitchingPane as a child of the given parent and with the specified SWT style bits.

Parameters:
parent - a widget which will be the parent of the new instance (cannot be null)
style - the style of widget to construct
Throws:
IllegalArgumentException -
SWTException -

CompareViewerSwitchingPane

public CompareViewerSwitchingPane(Composite parent,
                                  int style,
                                  boolean visibility)
Creates a CompareViewerSwitchingPane as a child of the given parent and with the specified SWT style bits.

Parameters:
parent - a widget which will be the parent of the new instance (cannot be null)
style - the style of widget to construct
visibility - the initial visibility of the CompareViewerSwitchingPane
Throws:
IllegalArgumentException -
SWTException -
Method Detail

getViewer

public Viewer getViewer()
Returns the current viewer.

Returns:
the current viewer

getTitleArgument

public String getTitleArgument()
Returns the optional title argument that has been set with setTitelArgument or null if no optional title argument has been set.

Note: this method is for internal use only. Clients should not call this method.

Returns:
the optional title argument or null

isEmpty

public boolean isEmpty()
Returns true if no viewer is installed or if the current viewer is a NullViewer.

Returns:
true if no viewer is installed or if the current viewer is a NullViewer

addSelectionChangedListener

public void addSelectionChangedListener(ISelectionChangedListener l)
Description copied from interface: ISelectionProvider
Adds a listener for selection changes in this selection provider. Has no effect if an identical listener is already registered.

Specified by:
addSelectionChangedListener in interface ISelectionProvider
Parameters:
l - a selection changed listener

removeSelectionChangedListener

public void removeSelectionChangedListener(ISelectionChangedListener l)
Description copied from interface: ISelectionProvider
Removes the given selection change listener from this selection provider. Has no affect if an identical listener is not registered.

Specified by:
removeSelectionChangedListener in interface ISelectionProvider
Parameters:
l - a selection changed listener

addDoubleClickListener

public void addDoubleClickListener(IDoubleClickListener l)

removeDoubleClickListener

public void removeDoubleClickListener(IDoubleClickListener l)

addOpenListener

public void addOpenListener(IOpenListener l)

removeOpenListener

public void removeOpenListener(IOpenListener l)

doubleClick

public void doubleClick(DoubleClickEvent event)
Description copied from interface: IDoubleClickListener
Notifies of a double click.

Specified by:
doubleClick in interface IDoubleClickListener
Parameters:
event - event object describing the double-click

getSelection

public ISelection getSelection()
Description copied from interface: ISelectionProvider
Returns the current selection for this provider.

Specified by:
getSelection in interface ISelectionProvider
Returns:
the current selection

setSelection

public void setSelection(ISelection s)
Description copied from interface: ISelectionProvider
Sets the current selection for this selection provider.

Specified by:
setSelection in interface ISelectionProvider
Parameters:
s - the new selection

selectionChanged

public void selectionChanged(SelectionChangedEvent ev)
Description copied from interface: ISelectionChangedListener
Notifies that the selection has changed.

Specified by:
selectionChanged in interface ISelectionChangedListener
Parameters:
ev - event object describing the change

setInput

public void setInput(Object input)
Sets the input object of this pane. For this input object a suitable viewer is determined by calling the abstract method getViewer(Viewer, Object). If the returned viewer differs from the current one, the old viewer is disposed and the new one installed. Then the input object is fed into the newly installed viewer by calling its setInput(Object) method. If new and old viewer don't differ no new viewer is installed but just setInput(Object) is called. If the input is null the pane is cleared, that is the current viewer is disposed.

Parameters:
input - the new input object or null

setTitleArgument

public void setTitleArgument(String argument)
Sets an additional and optional argument for the pane's title. Note: this method is for internal use only. Clients should not call this method.

Parameters:
argument - an optional argument for the pane's title

getInput

public Object getInput()
Returns the current input of this pane or null if the pane has no input.

Returns:
an Object that is the input to this pane or null if the pane has no input.

getViewer

protected abstract Viewer getViewer(Viewer oldViewer,
                                    Object input)
Returns a viewer which is able to display the given input. If no viewer can be found, null is returned. The additional argument oldViewer represents the viewer currently installed in the pane (or null if no viewer is installed). It can be returned from this method if the current viewer can deal with the input (and no new viewer must be created).

Parameters:
oldViewer - the currently installed viewer or null
input - the input object for which a viewer must be determined or null
Returns:
a viewer for the given input, or null if no viewer can be determined

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.