2020-11-01 17:42:16 +01:00
|
|
|
package com.minres.scviewer.e4.application.parts.txTableTree;
|
|
|
|
|
|
|
|
import java.util.Vector;
|
|
|
|
|
|
|
|
import org.eclipse.jface.viewers.ITreeContentProvider;
|
|
|
|
import org.eclipse.jface.viewers.Viewer;
|
|
|
|
|
2020-11-28 14:47:43 +01:00
|
|
|
import com.minres.scviewer.database.tx.ITx;
|
|
|
|
import com.minres.scviewer.database.tx.ITxRelation;
|
2020-11-01 17:42:16 +01:00
|
|
|
import com.minres.scviewer.e4.application.Messages;
|
|
|
|
import com.minres.scviewer.e4.application.parts.WaveformViewer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The Class TransactionTreeContentProvider.
|
|
|
|
*/
|
|
|
|
public abstract class AbstractTransactionTreeContentProvider implements ITreeContentProvider {
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
private final WaveformViewer waveformViewerPart;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param transactionDetails
|
|
|
|
*/
|
|
|
|
public AbstractTransactionTreeContentProvider(WaveformViewer waveformViewerPart) {
|
|
|
|
this.waveformViewerPart = waveformViewerPart;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* (non-Javadoc)
|
|
|
|
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void dispose() { }
|
|
|
|
|
|
|
|
/* (non-Javadoc)
|
|
|
|
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
|
|
|
|
}
|
|
|
|
|
|
|
|
/* (non-Javadoc)
|
|
|
|
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public Object[] getChildren(Object element) {
|
|
|
|
if(element instanceof ITx) {
|
2020-11-10 21:02:34 +01:00
|
|
|
return new Object[]{new TransactionTreeNode((ITx)element, TransactionTreeNodeType.ATTRS)};
|
2020-11-01 17:42:16 +01:00
|
|
|
} else if(element instanceof TransactionTreeNode){
|
2020-11-10 21:02:34 +01:00
|
|
|
TransactionTreeNode node=(TransactionTreeNode) element;
|
|
|
|
switch(node.type) {
|
|
|
|
case PROPS:
|
2020-11-01 17:42:16 +01:00
|
|
|
return new Object[][]{
|
2020-11-10 21:02:34 +01:00
|
|
|
{Messages.TransactionDetails_1, Messages.TransactionDetails_16, node.element.getStream().getFullName()},
|
|
|
|
{Messages.TransactionDetails_2, Messages.TransactionDetails_16, node.element.getGenerator().getName()},
|
|
|
|
{Messages.TransactionDetails_19, Messages.TransactionDetails_20, waveformViewerPart.getScaledTime(node.element.getBeginTime())},
|
|
|
|
{Messages.TransactionDetails_21, Messages.TransactionDetails_20, waveformViewerPart.getScaledTime(node.element.getEndTime())}
|
2020-11-01 17:42:16 +01:00
|
|
|
};
|
2020-11-10 21:02:34 +01:00
|
|
|
case TX:
|
|
|
|
case ATTRS:
|
|
|
|
case HIER:
|
|
|
|
return node.getAttributeListForHier();
|
|
|
|
case IN_REL:
|
|
|
|
Vector<Object[] > res_in = new Vector<>();
|
|
|
|
for(ITxRelation rel:node.element.getIncomingRelations()){
|
|
|
|
res_in.add(new Object[]{
|
2020-11-01 17:42:16 +01:00
|
|
|
rel.getRelationType(),
|
|
|
|
rel.getSource().getGenerator().getName(),
|
|
|
|
rel.getSource()});
|
|
|
|
}
|
2020-11-10 21:02:34 +01:00
|
|
|
return res_in.toArray();
|
|
|
|
case OUT_REL:
|
|
|
|
Vector<Object[] > res_out = new Vector<>();
|
|
|
|
for(ITxRelation rel:node.element.getOutgoingRelations()){
|
|
|
|
res_out.add(new Object[]{
|
2020-11-01 17:42:16 +01:00
|
|
|
rel.getRelationType(),
|
|
|
|
rel.getTarget().getGenerator().getName(),
|
|
|
|
rel.getTarget()});
|
|
|
|
}
|
2020-11-10 21:02:34 +01:00
|
|
|
return res_out.toArray();
|
2020-11-01 17:42:16 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* (non-Javadoc)
|
|
|
|
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public Object getParent(Object element) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* (non-Javadoc)
|
|
|
|
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public boolean hasChildren(Object element) {
|
|
|
|
return getChildren(element)!=null;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|