10 likes | 133 Views
An Interactive XY Graph Plugin for SWT and GEF Applications Xihui Chen, Kay Kasemir Spallation Neutron Source, Oak Ridge National Laboratory. Why there. Screenshots. Highlighted Features.
E N D
An Interactive XY Graph Plugin for SWT and GEF Applications Xihui Chen, Kay Kasemir Spallation Neutron Source, Oak Ridge National Laboratory Why there Screenshots Highlighted Features For thousands of scientific and engineering projects, they all have some kind of functions to visualize data in XY graphs. To reduce the repeat work to recreate an XY graph over and over again, a standard XY graph plugin was developed based on Draw2D and SWT, which makes it possible to embed it in any GEF or SWT applications. So far, it has been successfully integrated in CSS BOY[1] project and CSS Data Browser[2] project. • Based on Draw2D and SWT • The graph is simply a Draw2D Figure, so it can easily embedded in any GEF or SWT applications. • Light weight but powerful • Even with powerful functions, the full size of deliverable is around 500KB including source code and help files. It doesn’t have any dependencies other than SWT and Draw2D. • High Performance • It has the ability to draw large amount of data (for example 10,000 samples) in few milliseconds. You can also implement customized data provider with you own data compression algorithm. When zoom in/out the plot area, the outside part of plot area will not be drawn, which results in smoothly zooming. • Easy to use • The APIs are quite straightforward to use. You can also easily hook listeners to any part or the whole XYGraph. Abstract What it can do • It not only has the full ability to draw most type of charts, most important, it also brings with powerful interactive operations. • Support line chart, scatter chart, bar chart, step chart, area chart and more… • Automatically zoom, Rubberband Zoom, Horizontal Zoom, Vertical Zoom • Panning on both graph area and axes • Autoscale • Annotation support • Multiple axes support • Log scale, date time format support • Grouping legends by axes • Online Configuration for everything • Customized data provider support • Taking snapshot • Undo/Redo • And more ... Concepts SWT XYGraph is designed with the concept of components, so the pieces which make up an XY graph can be easily added or deleted. For example, you have the choice to have the toolbar or not; you can have arbitrary number of axis, traces or annotations. What’s more, the components can be easily reused for other applications. For example, the Linear Scale has been reused for some CSS BOY[1] widgets such as intensity graph, thermometer, tank, gauge and meter. Where to get it SWT XYGraph is free open source software distributed under Eclipse Public License v1.0. You can get it from the project website: http://code.google.com/p/swt-xy-graph/ The interfaces of IDataProvider and ISample give users the possibilities to implement a different data provider with different data source or data storage structure for their applications. References [1] http://ics-web.sns.ornl.gov/css/boy.html [2]https://sourceforge.net/apps/trac/cs-studio/wiki/DataBrowser SNS is managed by UT-Battelle, LLC, under contract DE-AC05-00OR22725 for the U.S. Department of Energy Contact me: chenxihui1981@gmail.com