Rich widgets expose the cost of repeated layout, search, rendering and retained state.
Note
This is an experimental downstream fork of the upstream Eclipse Nebula project. M3 String, regex, precompute and collection integration are engineering directions, not verified deployment, performance, compatibility or upstream-endorsement claims. Preserve original licensing, copyright, API behavior and native/UI contracts.
| Surface | What to investigate | Non-negotiable contract |
|---|---|---|
| Rich widgets | Baseline large-table, grid, chart and complex-widget interactions | SWT widget API and rendering behavior |
| Repeated text and search | Investigate reuse candidates in filtering, labels and model lookups | Ordering, Unicode and model semantics |
| Lifecycle stress | Measure allocation and retained UI resources across create/dispose cycles | No widget/resource leaks and stable interaction |
Approach: inventory first; copy/derive only with license and provenance; qualify reusable recipes in Synexia; port into the appropriate runtime/product owner; then test with representative desktop projects and publish CPU, allocation, retained-memory, startup and responsiveness numbers, including regressions. No Synexia runtime dependency.
Java, JNI, SWT, workbenches, widgets, real code: open the repositories. Bring a failing case, a performance counterexample, a profiler trace or a better algorithm. Challenge the design on the merits of source, tests and evidence—not slogans or a résumé.
Explore the family: M3JDK21 · SWT · Eclipse Platform · Platform UI · Nebula · GEF Classic.
Contribute here: issues · pull requests · M3 compatibility and benchmark contract.
The remainder of this README retains the existing M3 fork notes and the original upstream Eclipse Nebula documentation. Nothing in this introduction rebrands upstream work as M3-authored code.
M3 is based on the idea that shared immutable structure and indexed metadata can provide a basis for reusable computation. The programme starts with M3 String, regex, and precompute in M3JDK21, then collections and SWT/Eclipse integration.
This Nebula fork is a target for exploring qualified runtime and collection improvements in rich SWT widgets and representative desktop workloads.
Explore the idea: M3 technical design paper · Programme goals and roadmap. The paper explains the proposed architecture, cost tradeoffs, and evaluation plan. Readers are invited to examine the work and contribute representative workloads.
This section describes the direction of the hsoliwal fork. Upstream documentation follows below; upstream authorship, licenses, and project identity remain intact.
Welcome to the Eclipse Nebula project.
This repository contains a large set of UI elements that can be used in applications based on Java and SWT. See Nebula Widgets for information about the available widgets.
Downloads are available at the following location:
- https://download.eclipse.org/nebula/updates/
- Link to the archives
These sites provide both mature, stable widgets as well as incubating widgets; the latter are clearly marked as incubating and may break API from release to release.
Refer to the general document for details about the update site structure.
We can accept your patches if you have properly set up an account.
For every patch we require a corresponding GitHub issue. See the recommended workflow for guidelines.
Please use the following automated setup to configure a development environment pull requests:
After admin approval, pull requests get built by this job:
git clone https://github.com/EclipseNebula/nebula.git
cd nebula
mvn verify
More info can be found on Nebula's Build Server.
Before you decide to contribute your code to Eclipse, keep in mind that your code must follow the EPL, Eclipse's Public License.
This means that committers and contributors need to follow some rules.
A good overview of what this entails and how this affects you can be read here
There are a number of ways you can contribute.
- A new project inside Nebula.
- New widgets in the Nebula project.
- Maintain existing widgets.
If you choose any of these options, just open an issue.
If you want to contribute a widget, just open an issue and state your intention. We will then guide you through the process.
Nebula product source remains governed by the Eclipse Public License 2.0 and its existing file-level notices. Independently authored, separable M3/Synexia tooling, receipts and documentation are Apache-2.0 only where explicitly marked. See M3-SYNEXIA-NOTICE.md, M3-SYNEXIA-AUTHORS.md, and LICENSE-M3-APACHE-2.0.txt.
These additions do not relicense Eclipse/Nebula product code, OpenJDK, OpenRewrite or donor material. Their original licenses and attribution remain authoritative.