Skip to main content
  • Log in
  • Manage Cookies
projects.eclipse.org
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
    • Search

  1. Home
  2. Projects
  3. Eclipse Science
  4. Eclipse SWTChart™
  5. Eclipse SWTChart
×

Informative message

This proposal has been approved and the Eclipse SWTChart™ project has been created.
Visit the project page for the latest information and development.

Go to Project

Eclipse SWTChart

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Eclipse Science
Background: 

Charts are an important part of modern applications. The visualization of data has become a vital part, especially in the area of data science. Java as a technology allows to create charts. But its handling is tedious, that why toolkits like AWT, Swing, SWT or JavaFX have been developed to display graphical elements easily. Depending on the aforementioned technologies, specialized libraries to display graphs and time series have entered the scene. One of those is SWTChart [1], which has a well defined API and allows to create line, bar and scatter charts easily. The next enhancement of SWTChart is already developed under the hood of Eclipse as part of the Eclipse Advanced Visualization Project (EAVP) [2]. It allows to create customized charts, to define several axes and to offer several export options.

 

  • Line Charts (time series, etc.)
  • Bar Charts (histograms, etc.)
  • Scatter Charts (value distributions, etc.)

 

Instead of having two repositories for SWTChart and its extensions, it would make sense to combine both into one repository. People would benefit from a consolidated development by making the use of both libraries even easier.

[1] http://www.swtchart.org

[2] https://github.com/eclipse/eavp/tree/chemclipse/org.eclipse.eavp.service.swtchart

Scope: 

Eclipse SWTChart provides the means to create rich, flexible and interactive data visualizations natively in SWT.

Description: 

Eclipse SWTChart allows to create different types of charts. The API is well designed and allows to create Line, Bar and Scatter charts easily. Size, colors, axes, ranges and all aspects of the charts can be modified via code. So, it's easy to create customized charts. Moreover, the library already contains a data compression to show large data sets in a performant way. In addition to that, charts can be created even more easily with the SWTChart extensions. It uses the convention over configuration pattern and offers many additional improvements to scale axes of different type automatically or to select specific data ranges.

 

 

Figure 1 – SWTChart

 

Figure 2 – SWTChart Extensions

 

Figure 3 – SWTChart Extensions - Default Theme

 

Figure 4 – SWTChart Extensions - Dark Theme

Why Here?: 

The Eclipse Foundation is the right place to collaborate for SWTChart because of its many users, the vivid community and the Science Working Group. The Eclipse Foundation in general and the Science Working Group in particular offers great opportunities to collaborate with other projects and to find new ways for the data evaluation. The migration to the Eclipse Foundation will help SWTChart grow its open source community and makes its usage more secure due to the strong IP review process of the Eclipse Foundation. An integration into the Science Working Group helps also to adopt SWTChart more easily by its members and technologies. Why shouldn't SWTChart be merged into the existing Eclipse Advanced Visualization Project (EAVP)? SWTChart has a long history and is well known in the community. That's why the project identity should be preserved. Moreover, EAVP offers a high-level platform to offer services for various types of charts. SWTChart is a base library, which could be consumed by EAVP. A well defined separation of concerns is seen as highly beneficial in this case.

Licenses: 
Eclipse Public License 2.0
Legal Issues: 

There are no obvious legal issues with the code in the opinion of the author. The software has been designed and developed by the author(s). It contains no code licensed under the GPL, LGPL or AGPL.

Project Scheduling: 

The initial contribution will be made in quarter three of 2018 and the first release will happen by the end of quarter two of 2019.

Future Work: 

Implementation of:

  • Additional export converters, e.g. SVG, PDF and EPS
  • Improvements of the axis handling, e.g. a reversed axis scale
  • Improvements of the performance by compression algorithms when handling huge data sets
  • Fix SWTChart issues under Mac OS
People
Project Leads: 
Philip Wenig
Yoshitaka Yanagida
Committers: 
Yoshitaka Yanagida
Philip Wenig
Mentors: 
Torkild Resheim
Interested Parties: 

Lablicate GmbH

Science Working Group Members

Source Code
Initial Contribution: 

Yoshitaka has created the project SWTChart. He is the project owner.

Philip Wenig has created the SWTChart extensions, already managed by Eclipse via the Eclipse Advanced Visualization Project (EAVP).

Source Repository Type: 
GitHub
Source Repositories: 
https://sourceforge.net/p/swt-chart/code/HEAD/tree/
https://github.com/eclipse/eavp/tree/chemclipse/org.eclipse.eavp.service.swtchar…

Comments Sign in to post comments

Jonah Graham's picture

Should this simply be part of Nebula?

Submitted by Jonah Graham on Tue, 2018-06-26 03:50

The Nebula project contains many SWT controls already, has established release processes and with the recent example of the Opal widgets being added shows it is still growing. I would recommend this be added simply as another bundle in Nebula. The Nebula project also has it's own incubator for bundles that aren't fully read for release. 

Also, why is this under Science and not Technology, it is of use to a much wider group than the Eclipse Science TLP project implies.

  • Log in to post comments
Philip Wenig's picture

Re: Should this simply be part of Nebula?

Submitted by Philip Wenig on Tue, 2018-06-26 13:22

SWTChart is well known already and has a good reputation. That's why the name should be preserved as part of an own Eclipse project. Nebula plays an important and very well role in supplying widgets than can be used by the platform. But my fear is, that SWTChart becomes less important and would loose its attraction if it's just one of many parts of Nebula.

 

Science has been chosen as I'm familiar with it. But you're right, Technology also makes sense.

  • Log in to post comments
Wim Jongman's picture

Re: Should this simply be part of Nebula?

Submitted by Wim Jongman on Wed, 2018-07-04 07:23

The things you mention have to do with presentation. Giving SWTChart a special place in Nebula is perfectly possible. You can even open your own Nebula sub-project like NatTable did, but it did not take long for the original maintainers to jump ship and AFAIK it is now being maintained by one person. Kind of lonely if you ask me ;) Realisticly, SWTChart has not seen much action over the past years, therefore I foresee that this will also happen with SWTChart if you pull it to it's own little space.

I just wanted to chime in to say that you are welcome to join the Nebula project. We have committers that know how to polish a pixel. Don't expect them all to jump on SWTChart immediately but you may want to ponder this.

Cheers, Wim

  • Log in to post comments
Philip Wenig's picture

Re: Re: Should this simply be part of Nebula?

Submitted by Philip Wenig on Fri, 2018-07-06 00:43

Howdy Wim, a benefit of being part of Nebula like "NatTable" would be indeed, that several SWT developers lurk around in the project. We would like to use the Eclipse GitHub account as a place to host the source code. Would that also be possible with Nebula?

Let's chat the next days. I'll send you my mobile number via email. Will you attend the ECE2018?

  • Log in to post comments
Andrey Loskutov's picture

Should be under Technology

Submitted by Andrey Loskutov on Wed, 2018-06-27 13:49

I also think this has wider audience, so Technology would fit better. Regarding Nebula: not sure. I have no idea how heavy weight a Nebule release process can be, I fear the burden of being a part of a much bigger project could hinder faster / simple releases. So probably I agree that a dedicated project would be a better choice.

  • Log in to post comments
Philip Wenig's picture

Re: Should be under Technology

Submitted by Philip Wenig on Wed, 2018-06-27 14:48

Switching to Technology as the top-level project shouldn't be a problem. I've chosen Science, cause SWTChart is well suited to display scientific data. But you're right, it can be also used in other areas, e.g. to display the number of bugs or commits over time.

Let's wait a few days if more people vote for Technology or for Science.

  • Log in to post comments
Andrew Johnson's picture

Compare to BIRT

Submitted by Andrew Johnson on Fri, 2018-07-13 07:00

Eclipse Memory Analyzer uses BIRT for its charts which are generally just pie charts with a legend. The charts themselves are PNG as part of web pages. Occasionally they are interactive with a bit of JavaScript so that hovering over a segment gives its details. How is SWTChart different from BIRT? I don't think we would switch from BIRT unless BIRT stopped being supported and broke (as we don't have much time for non-essential changes). It is good to know there may be a choice in the future though.

Andrew Johnson

 

https://www.eclipse.org/mat/about/screenshots.php 

http://help.eclipse.org/photon/topic/org.eclipse.mat.ui.help/tasks/runningleaksuspectreport.html

  • Log in to post comments
Philip Wenig's picture

Re: Compare to BIRT

Submitted by Philip Wenig on Sun, 2018-07-22 09:07

Hi Andrew,

SWTChart renders the data live insteaf of using bitmaps. But it not offers pie charts at the moment. Supported chart types are:

  • Line Charts
  • Bar Charts
  • Scatter Plots

The library is lightweight and offers an easy way to create a chart, e.g.:

 

    private void createChart() throws Exception {

        /*
         * Create the Chart
         */
        IChartSettings chartSettings = getChartSettings();
        chartSettings.setCreateMenu(true);
        /*
         * Primary X-Axis
         */
        IPrimaryAxisSettings primaryAxisSettingsX = chartSettings.getPrimaryAxisSettingsX();
        primaryAxisSettingsX.setTitle("Scan");
        primaryAxisSettingsX.setDecimalFormat(new DecimalFormat(("0.0##"), new DecimalFormatSymbols(Locale.ENGLISH)));
        primaryAxisSettingsX.setColor(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
        primaryAxisSettingsX.setPosition(Position.Primary);
        primaryAxisSettingsX.setVisible(false);
        /*
         * Primary Y-Axis
         */
        IPrimaryAxisSettings primaryAxisSettingsY = chartSettings.getPrimaryAxisSettingsY();
        primaryAxisSettingsY.setTitle("Intensity");
        primaryAxisSettingsY.setDecimalFormat(new DecimalFormat(("0.0#E0"), new DecimalFormatSymbols(Locale.ENGLISH)));
        primaryAxisSettingsY.setColor(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
        //
        applySettings(chartSettings);
        /*
         * Create series.
         */
        List<ILineSeriesData> lineSeriesDataList = new ArrayList<ILineSeriesData>();
        ISeriesData seriesData = SeriesConverter.getSeriesXY(SeriesConverter.LINE_SERIES_2);
        //
        ILineSeriesData lineSeriesData = new LineSeriesData(seriesData);
        ILineSeriesSettings lineSeriesSettings = lineSeriesData.getLineSeriesSettings();
        lineSeriesSettings.setEnableArea(false);
        lineSeriesDataList.add(lineSeriesData);
        /*
         * Set series.
         */
        addSeriesData(lineSeriesDataList);
    }

 

  • Log in to post comments

Project Links

  • Website
Incubating - Eclipse SWTChart™

Related Projects

Project Hierarchy:

  • Eclipse Science
  • Eclipse SWTChart™

Eclipse Foundation

  • About Us
  • Contact Us
  • Sponsor
  • Members
  • Governance
  • Code of Conduct
  • Logo and Artwork
  • Board of Directors
  • Careers

Legal

  • Privacy Policy
  • Terms of Use
  • Copyright Agent
  • Eclipse Public License
  • Legal Resources

Useful Links

  • Report a Bug
  • Documentation
  • How to Contribute
  • Mailing Lists
  • Forums
  • Marketplace

Other

  • IDE and Tools
  • Projects
  • Working Groups
  • Research@Eclipse
  • Report a Vulnerability
  • Service Status

Copyright © Eclipse Foundation. All Rights Reserved.

Back to the top