gridLayout.marginWidth = 0;
leftComposite.setLayout( gridLayout );
leftComposite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
// ToolBar
final ToolBar leftToolBar = new ToolBar( leftComposite, SWT.HORIZONTAL | SWT.FLAT );
leftToolBar.setLayoutData( new GridData( SWT.RIGHT, SWT.NONE, false, false ) );
// Creating the 'Menu' ToolBar item
final ToolItem leftMenuToolItem = new ToolItem( leftToolBar, SWT.PUSH );
leftMenuToolItem.setImage( Activator.getDefault().getImage( PluginConstants.IMG_TOOLBAR_MENU ) );
leftMenuToolItem.setToolTipText( Messages.getString( "DifferencesWidget.MenuToolTip" ) ); //$NON-NLS-1$
// Creating the associated Menu
final Menu leftMenu = new Menu( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.POP_UP );
// Adding the action to display the Menu when the item is clicked
leftMenuToolItem.addSelectionListener( new SelectionAdapter()
{
public void widgetSelected( SelectionEvent event )
{
Rectangle rect = leftMenuToolItem.getBounds();
Point pt = new Point( rect.x, rect.y + rect.height );
pt = leftToolBar.toDisplay( pt );
leftMenu.setLocation( pt.x, pt.y );
leftMenu.setVisible( true );
}
} );
// Adding the 'Sorting...' MenuItem
MenuItem sortingMenuItem = new MenuItem( leftMenu, SWT.PUSH );
sortingMenuItem.setText( Messages.getString( "DifferencesWidget.Sorting" ) ); //$NON-NLS-1$
sortingMenuItem.setImage( Activator.getDefault().getImage( PluginConstants.IMG_SORTING ) );
sortingMenuItem.addSelectionListener( new SelectionAdapter()
{
public void widgetSelected( SelectionEvent arg0 )
{
new OpenSchemaViewSortingDialogAction().run();
}
} );
// Adding the 'Separator' MenuItem
new MenuItem( leftMenu, SWT.SEPARATOR );
// Adding the 'Preferences...' MenuItem
MenuItem preferencesMenuItem = new MenuItem( leftMenu, SWT.PUSH );
preferencesMenuItem.setText( Messages.getString( "DifferencesWidget.Preferences" ) ); //$NON-NLS-1$
preferencesMenuItem.addSelectionListener( new SelectionAdapter()
{
public void widgetSelected( SelectionEvent arg0 )
{
new OpenSchemaViewPreferenceAction().run();
}
} );
// TreeViewer
treeViewer = new TreeViewer( leftComposite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
GridData gridData = new GridData( SWT.FILL, SWT.FILL, true, true );
gridData.heightHint = 250;
treeViewer.getTree().setLayoutData( gridData );
treeViewer.setContentProvider( new DifferencesWidgetSchemaContentProvider() );
treeViewer.setLabelProvider( new DifferencesWidgetSchemaLabelProvider() );
treeViewer.addSelectionChangedListener( new ISelectionChangedListener()
{
public void selectionChanged( SelectionChangedEvent event )
{
StructuredSelection selection = ( StructuredSelection ) event.getSelection();
Object element = selection.getFirstElement();
if ( element instanceof AttributeTypeDifference )
{
AttributeTypeDifference atd = ( AttributeTypeDifference ) element;
if ( atd.getType().equals( DifferenceType.MODIFIED ) )
{
tableViewer.setInput( atd.getDifferences() );
return;
}
}
else if ( element instanceof ObjectClassDifference )
{
ObjectClassDifference ocd = ( ObjectClassDifference ) element;
if ( ocd.getType().equals( DifferenceType.MODIFIED ) )
{
tableViewer.setInput( ocd.getDifferences() );
return;
}
}
// Default
tableViewer.setInput( null );
}
} );
treeViewer.addDoubleClickListener( new IDoubleClickListener()
{
public void doubleClick( DoubleClickEvent event )
{
StructuredSelection selection = ( StructuredSelection ) event.getSelection();
Object element = selection.getFirstElement();
if ( ( element instanceof Folder ) || ( element instanceof SchemaDifference ) )
{
treeViewer.setExpandedState( element, !treeViewer.getExpandedState( element ) );
}
}
} );
// Right Composite
Composite rightComposite = new Composite( composite, SWT.NONE );
gridLayout = new GridLayout();
gridLayout.marginBottom = 0;
gridLayout.marginHeight = 0;
gridLayout.marginLeft = 0;
gridLayout.marginRight = 0;
gridLayout.marginTop = 0;
gridLayout.marginWidth = 0;
rightComposite.setLayout( gridLayout );
rightComposite.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
// ToolBar
final ToolBar rightToolBar = new ToolBar( rightComposite, SWT.HORIZONTAL | SWT.FLAT );
rightToolBar.setLayoutData( new GridData( SWT.RIGHT, SWT.NONE, false, false ) );
// Creating the 'Menu' ToolBar item
final ToolItem rightMenuToolItem = new ToolItem( rightToolBar, SWT.PUSH );
rightMenuToolItem.setImage( Activator.getDefault().getImage( PluginConstants.IMG_TOOLBAR_MENU ) );
rightMenuToolItem.setToolTipText( Messages.getString( "DifferencesWidget.MenuToolTip" ) ); //$NON-NLS-1$
// Creating the associated Menu
final Menu rightMenu = new Menu( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.POP_UP );
// Adding the action to display the Menu when the item is clicked
rightMenuToolItem.addSelectionListener( new SelectionAdapter()
{
public void widgetSelected( SelectionEvent event )
{
Rectangle rect = rightMenuToolItem.getBounds();
Point pt = new Point( rect.x, rect.y + rect.height );
pt = rightToolBar.toDisplay( pt );
rightMenu.setLocation( pt.x, pt.y );
rightMenu.setVisible( true );
}
} );
// Adding the 'Group By Property' MenuItem