/*****************************************************************************
* Copyright (c) 2006, 2008 g-Eclipse Consortium
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Initial development of the original code was made for the
* g-Eclipse project founded by European Union
* project number: FP6-IST-034327 http://www.geclipse.eu/
*
* Contributors:
* Christof Klausecker GUP, JKU - initial API and implementation
*****************************************************************************/
package eu.geclipse.traceview.internal;
import org.eclipse.jface.action.IMenuCreator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
class MarkerSelectionMenuCreator implements IMenuCreator {
private AbstractGraphVisualization graphVis;
MarkerSelectionMenuCreator( AbstractGraphVisualization graphVis ) {
this.graphVis = graphVis;
}
public void dispose() {
}
public Menu getMenu( final Control parent ) {
Menu menu = new Menu( parent );
fill( menu );
return menu;
}
public Menu getMenu( final Menu parent ) {
Menu m = new Menu( parent );
MenuItem item = new MenuItem( m, SWT.PUSH );
item.setText( Messages.getString("MarkerSelectionMenuCreator.toggleMarkers") ); //$NON-NLS-1$
return m;
}
void fill( final Menu menu ) {
for (final EventMarkerEntry entry : graphVis.eventMarkers.getEventMarkerEntries() ) {
MenuItem item = new MenuItem( menu, SWT.CHECK );
item.setText( entry.label );
// item.setImage( provider.getImage() );
item.setSelection( entry.enabled );
item.addSelectionListener( new SelectionAdapter() {
@Override
public void widgetSelected( final SelectionEvent e ) {
entry.enabled ^= true;
graphVis.eventMarkers.buildEventMarkersList();
graphVis.redraw();
}
} );
}
}
}