85 lines
2.4 KiB
Java
85 lines
2.4 KiB
Java
package com.minres.scviewer.e4.application.parts;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.inject.Inject;
|
|
import javax.inject.Named;
|
|
|
|
import org.eclipse.e4.core.di.annotations.Optional;
|
|
import org.eclipse.e4.core.services.events.IEventBroker;
|
|
import org.eclipse.e4.ui.di.Focus;
|
|
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
|
|
import org.eclipse.e4.ui.services.IServiceConstants;
|
|
import org.eclipse.e4.ui.workbench.modeling.EPartService;
|
|
import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
|
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
|
import org.eclipse.jface.viewers.StructuredSelection;
|
|
import org.eclipse.swt.SWT;
|
|
import org.eclipse.swt.widgets.Composite;
|
|
|
|
import com.minres.scviewer.database.ui.TrackEntry;
|
|
|
|
public class TransactionListView {
|
|
private WaveformViewer waveformViewer;
|
|
|
|
private TransactionList transactionList;
|
|
|
|
/** The event broker. */
|
|
@Inject IEventBroker eventBroker;
|
|
|
|
/** The selection service. */
|
|
@Inject ESelectionService selectionService;
|
|
|
|
/**
|
|
* Create the composite.
|
|
* @param parent
|
|
* @param style
|
|
*/
|
|
/**
|
|
* Creates the composite.
|
|
*
|
|
* @param parent the parent
|
|
*/
|
|
@PostConstruct
|
|
public void createComposite(final Composite parent, @Optional WaveformViewer waveformViewer) {
|
|
this.waveformViewer=waveformViewer;
|
|
transactionList = new TransactionList(parent, SWT.BORDER, waveformViewer);
|
|
}
|
|
|
|
@Focus
|
|
public void setFocus() {
|
|
if(transactionList!=null)
|
|
transactionList.setFocus();
|
|
}
|
|
/**
|
|
* Sets the selection.
|
|
*
|
|
* @param selection the new selection
|
|
*/
|
|
@Inject
|
|
public void setSelection(@Named(IServiceConstants.ACTIVE_SELECTION) @Optional IStructuredSelection selection, EPartService partService){
|
|
// only react if selection is actually from the WaveformViewer and nothing else
|
|
MPart part = partService.getActivePart();
|
|
if( part == null || ! (part.getObject() instanceof WaveformViewer ) || part.getObject() != waveformViewer)
|
|
return;
|
|
if(selection==null || selection.isEmpty())
|
|
transactionList.setInput(null);
|
|
else if(selection instanceof IStructuredSelection) {
|
|
TrackEntry e = findTrackEntry(((StructuredSelection)selection).toArray());
|
|
if(e!=null)
|
|
transactionList.setInput(e);
|
|
}
|
|
}
|
|
|
|
private TrackEntry findTrackEntry(Object[] elems) {
|
|
for(Object o: elems)
|
|
if(o instanceof TrackEntry)
|
|
return (TrackEntry)o;
|
|
return null;
|
|
}
|
|
|
|
public TransactionList getControl() {
|
|
return transactionList;
|
|
}
|
|
|
|
}
|