Skip to content

equodev/swt-evolve

Repository files navigation

SWT Evolve

Build Status License macOS Windows Linux

Modernize your SWT or Eclipse RCP application without changing a line of code. A new, cross-platform SWT library for desktop and web.

SWT Evolve is a cross-platform drop-in replacement for the standard SWT library. It allows you to instantly upgrade your application's user interface to a modern, fluid, and beautiful standard, without rewriting your UI code.


✨ See it in Action

Words don't do it justice. Here is a standard Eclipse RCP application running with SWT Evolve.

SWT Evolve Demo

🎨 SWT Evolve Widget Gallery

Check out the gallery of SWT snippets showing SWT Evolve implementations:
πŸ‘‰ SWT Evolve Gallery

This gallery provides small, focused SWT code snippets with rendered previews β€”
a quick way to explore available widgets and see how they look in practice.


πŸš€ Getting Started: 2-Minute Modernization

You can try our examples or modernize your existing application in just a few minutes. Requirements: JDK 17+.

Run the Examples

The easiest way to see SWT Evolve in action is to run the examples included in this repository.

  1. Clone the repository:

    git clone https://github.com/equodev/swt-evolve.git
    cd swt-evolve
  2. Run the examples you want:

    ./gradlew runExample -PmainClass=dev.equo.StyledTextSnippet3

Modernize Your Own App

  1. Get SWT Evolve: Clone this repository and build it (see CONTRIBUTING.md), or get the swt-evolve.jar file from:
  2. Locate Your Old SWT Jar: Find the original swt.jar in your SWT application.
  3. Replace and Run: Rename the swt-evolve JAR to match the exact filename of the original SWT JAR you located. Then, use your renamed file to replace the original. That's itβ€”run your application to see the modernized UI.

Note: For the time being, this method only works for pure SWT applications. Support for Eclipse-based applications is coming soon.

Key Features

  • ✨ Instant Modernization: No need for costly rewrites or code changes. If it runs on SWT, it runs on SWT Evolve.
  • πŸ’» Truly Cross-Platform: Develop once and deploy your application on Windows, macOS, Linux, and in a web browser from the same codebase.
  • πŸš€ GPU-Accelerated Performance: Powered by a modern rendering engine, UIs are fluid, responsive, and efficient.
  • βœ’οΈ Pixel-Perfect Rendering: Clean fonts, sharp icons, and beautiful widgets bring your application into the modern era.
  • 🀝 100% API Compatible: We are committed to implementing the complete SWT API for a seamless transition.
  • πŸ”„ Seamless Fallback for Gradual Modernization: Adopt at your own pace. SWT Evolve intelligently renders our modernized widgets and automatically falls back to the original SWT library for any widget we haven't implemented yet. Your application remains 100% functional, always.

πŸ“Š Project Status: Alpha

SWT Evolve is currently in an alpha stage. This means we are actively developing the core functionalities and implementing the API. We are already working with customers on commercial prototypes, but not all widgets are complete.

Here is the current status of major widgets:

Widget Status Notes
StyledText βœ”οΈ Implemented
Tree ⚠️ Partially Implemented Key features working, more APIs to add.
Table ⚠️ Partially Implemented Key features working, more APIs to add.
CTabFolder ⚠️ Partially Implemented Basic functionality is solid.
Button (Push) βœ”οΈ Implemented
Button (Check) βœ”οΈ Implemented
Button (Toggle) βœ”οΈ Implemented
Button (Radio) ⚠️ Partially Implemented
Button (Arrow) ⚠️ Partially Implemented
Canvas βœ”οΈ Implemented
GC βœ”οΈ Implemented Only supports Canvas. Draw2d implemented for FigureCanvas.
Label βœ”οΈ Implemented
List βœ”οΈ Implemented
Text βœ”οΈ Implemented
Group βœ”οΈ Implemented
Link βœ”οΈ Implemented
Combo ⚠️ Partially Implemented SWT.READ_ONLY Combo implemented for Windows and Linux, SWT.SIMPLE and SWT.DROP_DOWN to add.
ExpandBar ⚠️ Implemented for Windows

πŸ—ΊοΈ Roadmap

Our primary mission is the drive towards a stable 1.0 release. The vision for 1.0 is to provide a complete, modern, and high-performance replacement for the standard SWT library. We are aiming to deliver this milestone, which includes full widget and API coverage, by the end of 2025.

This is an ambitious goal, and our priorities are aggressively focused on making it a reality. The key workstreams are:

Core API & Widget Completion

  • Achieve 100% API coverage for all standard SWT widgets and layouts.
  • Full support for graphical frameworks, including GEF, GMF, and Draw2D.
    • Draw2d (FigureCanvas) implemented for Windows.
    • GC image support added for Windows, MacOS and Linux.

Key Features & Milestones

  • A fully modernized Eclipse IDE experience running flawlessly on SWT Evolve.
  • Eliminate common UI freezes found in traditional SWT applications with our advanced threading model.

Quality & Performance

  • Continuous performance tuning and memory optimization.
  • Comprehensive test suite coverage to ensure stability and compatibility.

This roadmap outlines our strategic goals. For a detailed, real-time view of our work-in-progress and upcoming tasks, please visit our Public Project Dashboard.


❀️ How to Contribute

We are building SWT Evolve for the community and believe community contributions are the key to its success.

  • Report Bugs: If you find an issue, please report it.
  • Suggest Features: Have a great idea? Let us know in the Discussions tab.
  • Write Code: Check out our CONTRIBUTING.md guide to get started. We have a list of issues here.

πŸ“ License

This project is licensed under the Eclipse Public License 2.0.


πŸ’Ό Enterprise & Commercial Support

SWT Evolve is a free and open-source project, and we are committed to its growth and success.

For organizations building mission-critical applications, Equo offers Equo Enterpriseβ€”a suite of commercial products and professional services designed to accelerate your modernization journey and ensure project success. Our offerings include:

  • End-to-End Application Modernization: Let our team handle the comprehensive migration of your legacy SWT/Eclipse RCP applications.
  • Theming & Custom Branding: ****Full visual customization, including custom themes and branding, to align the application with your company's style guidelines.
  • Custom Widget Development: Bespoke UI components tailored to your specific business needs.
  • Compliance & Accessibility: Leverage integrated tools to ensure your application meets industry-standard compliance and accessibility (WCAG) requirements.
  • Equo SDK: Access powerful middleware and developer tools to build secure, efficient, and scalable Java applications.
  • Equo Chromium: Integrate a high-performance, modern Chromium-based browser directly into your Java app.
  • Signed & Notarized Binaries: Deploy with confidence using production-ready, signed binaries for all major platforms, including full support for macOS notarization.
  • Broad Compatibility: Maintain stability with full support for Eclipse/SWT 3.x & 4.x and guaranteed compatibility with older operating systems.
  • Dedicated Enterprise Support: Gain peace of mind with priority support channels, expert training, and defined SLAs for your mission-critical applications.
  • Cloud Migration Strategy: Bring your desktop applications to the cloud with expert guidance and an implementation strategy that requires minimal to no changes to your existing codebase.

Ready to take your project to the next level? Contact our team to learn more about Equo Enterprise at [email protected].

About

Instantly modernize your Java SWT and Eclipse RCP applications with this drop-in library.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 5