Initial Commit

This commit is contained in:
Matthias
2017-04-11 15:47:10 +02:00
commit 7c274da003
1344 changed files with 345586 additions and 0 deletions
@@ -0,0 +1,411 @@
package at.ac.uibk.wfr.perftool.deviceeventstimeline;
import java.util.Date;
import org.eclipse.birt.chart.extension.datafeed.GanttEntry;
import org.eclipse.birt.chart.model.Chart;
import org.eclipse.birt.chart.model.ChartWithAxes;
import org.eclipse.birt.chart.model.ChartWithoutAxes;
import org.eclipse.birt.chart.model.attribute.ActionType;
import org.eclipse.birt.chart.model.attribute.Anchor;
import org.eclipse.birt.chart.model.attribute.AxisType;
import org.eclipse.birt.chart.model.attribute.ChartDimension;
import org.eclipse.birt.chart.model.attribute.IntersectionType;
import org.eclipse.birt.chart.model.attribute.LegendItemType;
import org.eclipse.birt.chart.model.attribute.LineAttributes;
import org.eclipse.birt.chart.model.attribute.LineStyle;
import org.eclipse.birt.chart.model.attribute.Position;
import org.eclipse.birt.chart.model.attribute.TickStyle;
import org.eclipse.birt.chart.model.attribute.TriggerCondition;
import org.eclipse.birt.chart.model.attribute.impl.ColorDefinitionImpl;
import org.eclipse.birt.chart.model.attribute.impl.SeriesValueImpl;
import org.eclipse.birt.chart.model.component.Axis;
import org.eclipse.birt.chart.model.component.Series;
import org.eclipse.birt.chart.model.component.impl.AxisImpl;
import org.eclipse.birt.chart.model.component.impl.SeriesImpl;
import org.eclipse.birt.chart.model.data.BaseSampleData;
import org.eclipse.birt.chart.model.data.DataFactory;
import org.eclipse.birt.chart.model.data.GanttDataSet;
import org.eclipse.birt.chart.model.data.NumberDataSet;
import org.eclipse.birt.chart.model.data.OrthogonalSampleData;
import org.eclipse.birt.chart.model.data.SampleData;
import org.eclipse.birt.chart.model.data.SeriesDefinition;
import org.eclipse.birt.chart.model.data.SeriesGrouping;
import org.eclipse.birt.chart.model.data.TextDataSet;
import org.eclipse.birt.chart.model.data.impl.ActionImpl;
import org.eclipse.birt.chart.model.data.impl.GanttDataSetImpl;
import org.eclipse.birt.chart.model.data.impl.NumberDataSetImpl;
import org.eclipse.birt.chart.model.data.impl.SeriesDefinitionImpl;
import org.eclipse.birt.chart.model.data.impl.SeriesGroupingImpl;
import org.eclipse.birt.chart.model.data.impl.TextDataSetImpl;
import org.eclipse.birt.chart.model.data.impl.TriggerImpl;
import org.eclipse.birt.chart.model.impl.ChartWithAxesImpl;
import org.eclipse.birt.chart.model.impl.ChartWithoutAxesImpl;
import org.eclipse.birt.chart.model.layout.Legend;
import org.eclipse.birt.chart.model.type.BarSeries;
import org.eclipse.birt.chart.model.type.GanttSeries;
import org.eclipse.birt.chart.model.type.PieSeries;
import org.eclipse.birt.chart.model.type.impl.BarSeriesImpl;
import org.eclipse.birt.chart.model.type.impl.GanttSeriesImpl;
import org.eclipse.birt.chart.model.type.impl.PieSeriesImpl;
import org.eclipse.birt.chart.util.CDateTime;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.teneo.hibernate.resource.HibernateResource;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
import at.ac.uibk.wfr.perftool.Activity;
import at.ac.uibk.wfr.perftool.ActivityInstance;
import at.ac.uibk.wfr.perftool.Workflow;
import at.ac.uibk.wfr.perftool.presentation.PerftoolEditor;
public class DeviceEventsTimelineEditorPart extends EditorPart implements ISelectionChangedListener {
public static final String ID = "at.ac.uibk.wfr.perftool.perftooleditor.DeviceEventsTimelineEditorPart"; //$NON-NLS-1$
private PerftoolEditor mainEditor;
private HibernateResource hResource;
private Workflow selectedWorkflow = null;
private BirtChartCanvas canvas;
public DeviceEventsTimelineEditorPart(PerftoolEditor mainEditor) {
this.mainEditor = mainEditor;
this.mainEditor.addSelectionChangedListener(this);
hResource = mainEditor.getHibernateResource();
}
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
setSite(site);
setInput(input);
}
/**
* Create contents of the editor part.
* @param parent
*/
@Override
public void createPartControl(Composite parent) {
canvas = new BirtChartCanvas(null, parent, SWT.NONE);
}
@Override
public void setFocus() {
}
public static Chart createChart2() {
ChartWithAxes chart = ChartWithAxesImpl.create();
chart.setDimension(ChartDimension.TWO_DIMENSIONAL_LITERAL);
chart.setType("Gantt Chart");
chart.setSubType("Standard Gantt Chart");
chart.getBlock().setBackground(ColorDefinitionImpl.WHITE());
chart.getPlot().setBackground(ColorDefinitionImpl.GREY());
chart.setTransposed(true);
// Title
chart.getTitle().getLabel().getCaption().setValue("Device Events");//$NON-NLS-1$
// Legend
Legend lg = chart.getLegend();
LineAttributes lia = lg.getOutline();
lg.getText().getFont().setSize(16);
lia.setStyle(LineStyle.SOLID_LITERAL);
lg.getInsets().set(10, 5, 0, 0);
lg.getOutline().setVisible(true);
lg.setAnchor(Anchor.NORTH_LITERAL);
lg.setItemType(LegendItemType.CATEGORIES_LITERAL);
// X-Axis
Axis xAxisPrimary = chart.getPrimaryBaseAxes()[0];
xAxisPrimary.setType(AxisType.TEXT_LITERAL);
xAxisPrimary.getMajorGrid().setTickStyle(TickStyle.BELOW_LITERAL);
xAxisPrimary.getOrigin().setType(IntersectionType.MIN_LITERAL);
// Y-Axis
Axis yAxisPrimary = chart.getPrimaryOrthogonalAxis(xAxisPrimary);
yAxisPrimary.setType(AxisType.DATE_TIME_LITERAL);
yAxisPrimary.getMajorGrid().setTickStyle(TickStyle.LEFT_LITERAL);
//yAxisPrimary.setSideBySide(true);
// Data Set
TextDataSet categoryValues = TextDataSetImpl.create(new String[] {"PThread(0)", "PThread(1)", "PThread(2)" });
//NumberDataSet orthoValues1 = NumberDataSetImpl.create(new double[] {12.5, 19.6, 18.3, 13.2, 26.5 });
//NumberDataSet orthoValues2 = NumberDataSetImpl.create(new double[] {22.7, 23.6, 38.3, 43.2, 40.5 });
GanttDataSet phase1 = GanttDataSetImpl.create( new GanttEntry[]{
new GanttEntry( new CDateTime( 2008, 1, 9 ),
new CDateTime( 2008, 6, 9 ),
"Task A" ), //$NON-NLS-1$
new GanttEntry( new CDateTime( 2008, 3, 9 ),
new CDateTime( 2008, 8, 9 ),
"Task B" ), //$NON-NLS-1$
new GanttEntry( new CDateTime( 2008, 5, 24 ),
new CDateTime( 2008, 9, 9 ),
"Task C" ) //$NON-NLS-1$
} );
GanttDataSet phase2 = GanttDataSetImpl.create( new GanttEntry[]{
new GanttEntry( new CDateTime( 2008, 6, 12 ),
new CDateTime( 2008, 9, 23 ),
"Task A" ), //$NON-NLS-1$
new GanttEntry( new CDateTime( 2008, 8, 9 ),
new CDateTime( 2008, 8, 9 ),
"Task B" ), //$NON-NLS-1$
new GanttEntry( new CDateTime( 2008, 9, 9 ),
new CDateTime( 2008, 12, 9 ),
"Task C" ) //$NON-NLS-1$
} );
NumberDataSet paletteValues = NumberDataSetImpl.create(new double[] {22.7, 23.6, 38.3, 43.2, 40.5 });
// X-Series
Series seCategory = SeriesImpl.create();
seCategory.setDataSet(categoryValues);
SeriesDefinition sdX = SeriesDefinitionImpl.create();
xAxisPrimary.getSeriesDefinitions().add(sdX);
sdX.getSeries().add(seCategory);
sdX.getSeriesPalette().shift(0);
// Y-Series (1)
GanttSeries taskPhase1 = (GanttSeries) GanttSeriesImpl.create( );
taskPhase1.setDataSet( phase1 );
taskPhase1.getLabel( ).setVisible( false );
GanttSeries taskPhase2 = (GanttSeries) GanttSeriesImpl.create( );
taskPhase2.setDataSet( phase2 );
taskPhase2.getLabel( ).setVisible( false );
SeriesDefinition sdY1 = SeriesDefinitionImpl.create();
sdY1.getSeriesPalette().shift(0);
yAxisPrimary.getSeriesDefinitions().add(sdY1);
sdY1.getSeries().add(taskPhase1);
sdY1.getSeries().add(taskPhase2);
// Y-Series (1)
/*BarSeries bs1 = (BarSeries) BarSeriesImpl.create();
bs1.setDataSet(orthoValues1);
bs1.getLabel().setVisible(true);
bs1.setLabelPosition(Position.INSIDE_LITERAL);
SeriesDefinition sdY1 = SeriesDefinitionImpl.create();
sdY1.getSeriesPalette().shift(-2);
yAxisPrimary.getSeriesDefinitions().add(sdY1);
sdY1.getSeries().add(bs1);*/
return chart;
}
public static Chart createChart() {
ChartWithAxes chart = ChartWithAxesImpl.create();
chart.setDimension(ChartDimension.TWO_DIMENSIONAL_LITERAL);
chart.setType("Bar Chart");
chart.setSubType("Stacked");
chart.getBlock().setBackground(ColorDefinitionImpl.WHITE());
chart.getPlot().setBackground(ColorDefinitionImpl.GREY());
chart.setTransposed(true);
// Title
chart.getTitle().getLabel().getCaption().setValue("Device Events");//$NON-NLS-1$
// Legend
Legend lg = chart.getLegend();
LineAttributes lia = lg.getOutline();
lg.getText().getFont().setSize(16);
lia.setStyle(LineStyle.SOLID_LITERAL);
lg.getInsets().set(10, 5, 0, 0);
lg.getOutline().setVisible(true);
lg.setAnchor(Anchor.NORTH_LITERAL);
// X-Axis
Axis xAxisPrimary = chart.getPrimaryBaseAxes()[0];
xAxisPrimary.setType(AxisType.TEXT_LITERAL);
xAxisPrimary.getMajorGrid().setTickStyle(TickStyle.BELOW_LITERAL);
xAxisPrimary.getOrigin().setType(IntersectionType.MIN_LITERAL);
// Y-Axis
Axis yAxisPrimary = chart.getPrimaryOrthogonalAxis(xAxisPrimary);
yAxisPrimary.getMajorGrid().setTickStyle(TickStyle.LEFT_LITERAL);
//yAxisPrimary.setSideBySide(true);
// Data Set
TextDataSet categoryValues = TextDataSetImpl.create(new String[] {"PThread(0)", "PThread(1)", "PThread(2)", "PThread(3)", "PThread(4)" });
NumberDataSet orthoValues1 = NumberDataSetImpl.create(new double[] {12.5, 19.6, 18.3, 13.2, 26.5 });
NumberDataSet orthoValues2 = NumberDataSetImpl.create(new double[] {22.7, 23.6, 38.3, 43.2, 40.5 });
/*SampleData sd = DataFactory.eINSTANCE.createSampleData();
BaseSampleData sdBase = DataFactory.eINSTANCE.createBaseSampleData();
sdBase.setDataSetRepresentation("");//$NON-NLS-1$
sd.getBaseSampleData().add(sdBase);
OrthogonalSampleData sdOrthogonal1 = DataFactory.eINSTANCE.createOrthogonalSampleData();
sdOrthogonal1.setDataSetRepresentation("");//$NON-NLS-1$
sdOrthogonal1.setSeriesDefinitionIndex(0);
sd.getOrthogonalSampleData().add(sdOrthogonal1);
chart.setSampleData(sd);*/
// X-Series
Series seCategory = SeriesImpl.create();
seCategory.setDataSet(categoryValues);
SeriesDefinition sdX = SeriesDefinitionImpl.create();
xAxisPrimary.getSeriesDefinitions().add(sdX);
sdX.getSeries().add(seCategory);
// Y-Series (1)
BarSeries bs1 = (BarSeries) BarSeriesImpl.create();
bs1.setDataSet(orthoValues1);
bs1.setStacked(true);
bs1.getLabel().setVisible(true);
bs1.setLabelPosition(Position.INSIDE_LITERAL);
BarSeries bs2 = (BarSeries) BarSeriesImpl.create();
bs2.setDataSet(orthoValues2);
bs2.setStacked(true);
bs2.getLabel().setVisible(true);
bs2.setLabelPosition(Position.INSIDE_LITERAL);
SeriesDefinition sdY1 = SeriesDefinitionImpl.create();
sdY1.getSeriesPalette().shift(0);
yAxisPrimary.getSeriesDefinitions().add(sdY1);
sdY1.getSeries().add(bs1);
sdY1.getSeries().add(bs2);
// Y-Serires (2)
/*BarSeries bs2 = (BarSeries) BarSeriesImpl.create();
bs2.setDataSet(orthoValues2);
bs2.getLabel().setVisible(true);
bs2.setLabelPosition(Position.INSIDE_LITERAL);
SeriesDefinition sdY2 = SeriesDefinitionImpl.create();
sdY2.getSeriesPalette().shift(-3);
yAxisPrimary.getSeriesDefinitions().add(sdY2);
sdY2.getSeries().add(bs2);*/
return chart;
}
public static Chart createPie( )
{
ChartWithoutAxes cwoaPie = ChartWithoutAxesImpl.create( );
cwoaPie.setDimension( ChartDimension.TWO_DIMENSIONAL_WITH_DEPTH_LITERAL );
cwoaPie.setType( "Pie Chart" ); //$NON-NLS-1$
cwoaPie.setSubType( "Standard Pie Chart" ); //$NON-NLS-1$
// Plot
cwoaPie.setSeriesThickness( 10 );
// Legend
Legend lg = cwoaPie.getLegend( );
lg.getOutline( ).setVisible( true );
// Title
cwoaPie.getTitle( ).getLabel( ).getCaption( ).setValue( "Pie Chart" );//$NON-NLS-1$
// Data Set
TextDataSet categoryValues = TextDataSetImpl.create( new String[]{
"New York", "Boston", "Chicago", "San Francisco", "Dallas"} );//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
NumberDataSet seriesOneValues = NumberDataSetImpl.create( new double[]{
54.65, 21, 75.95, 91.28, 37.43
} );
SampleData sdata = DataFactory.eINSTANCE.createSampleData( );
BaseSampleData sdBase = DataFactory.eINSTANCE.createBaseSampleData( );
sdBase.setDataSetRepresentation( "" );//$NON-NLS-1$
sdata.getBaseSampleData( ).add( sdBase );
OrthogonalSampleData sdOrthogonal = DataFactory.eINSTANCE.createOrthogonalSampleData( );
sdOrthogonal.setDataSetRepresentation( "" );//$NON-NLS-1$
sdOrthogonal.setSeriesDefinitionIndex( 0 );
sdata.getOrthogonalSampleData( ).add( sdOrthogonal );
cwoaPie.setSampleData( sdata );
// Base Series
Series seCategory = SeriesImpl.create( );
seCategory.setDataSet( categoryValues );
SeriesDefinition sd = SeriesDefinitionImpl.create( );
cwoaPie.getSeriesDefinitions( ).add( sd );
sd.getSeriesPalette( ).shift( 0 );
sd.getSeries( ).add( seCategory );
// Orthogonal Series
PieSeries sePie = (PieSeries) PieSeriesImpl.create( );
sePie.setDataSet( seriesOneValues );
sePie.setSeriesIdentifier( "Cities" );//$NON-NLS-1$
sePie.setExplosion( 5 );
SeriesDefinition sdCity = SeriesDefinitionImpl.create( );
sd.getSeriesDefinitions( ).add( sdCity );
sdCity.getSeries( ).add( sePie );
return cwoaPie;
}
@Override
public boolean isDirty() {
return false;
}
@Override
public boolean isSaveAsAllowed() {
return false;
}
@Override
public void doSave(IProgressMonitor monitor) {
}
@Override
public void doSaveAs() {
}
@Override
public void selectionChanged(SelectionChangedEvent event) {
System.out.println("DeviceEventsTimelineEditorPart.selectionChanged: " + event.getSelection().toString());
if (event.getSelection() instanceof TreeSelection) {
TreeSelection sel = (TreeSelection) event.getSelection();
Object o = sel.getFirstElement();
if (o instanceof Workflow) {
selectedWorkflow = (Workflow) o;
canvas.setChart(createChart2());
} else if (o instanceof Activity) {
selectedWorkflow = ((Activity) o).getParentWorkflow();
canvas.setChart(createChart2());
} else if (o instanceof ActivityInstance) {
selectedWorkflow = ((ActivityInstance) o).getParentWorkflow();
canvas.setChart(createChart2());
}
}
}
}