Skip to content

fill0llif/yayoi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Yayoi やよい

Yayoi is a GUI annotation framework and provides/allows:

  • Swing and AWT implementation of basic GUI components: Component, Container, Collection, Window, Layout and Listener (Collection is a collection of components on which the user has no control over its layout, e.g. Swing menus);
  • components are all lazily loaded;
  • setting essential component properties, Reactions (size, location, centered, etc.);
    • a reaction can depend on another one of the same component (e.g. centered depends on size);
  • executing actions on multiple components, Actions (as of now layout setting, doLayout);
  • registering listeners on components with listenable:
    • a default WindowAdapter is already registered with lowest precedence (needed for application shutdown) if and only if a exitOnClose has been set on a window declaration;
  • firing of Spring Event when basic component properties are set (on AWT Thread);
  • enabling component construction using object, method and class notation (e.g. ValueDeclaration, FunctionDeclaration and ClassDeclaration) within a package;
  • autowiring of components constructed using class notation;
  • defining a custom log writer;
    • a default log writer is already registered;
  • visitor structure on component, container, collection and window;
  • layout construction on container declaration;
  • autowiring support for components with named and for any other beans with autowired or qualifier annotations on method parameters;
  • defining Settings, top level class, method or object holding a reference to an object the user decide to use where he wants:
    • Look and Feel setting;
  • defining Collectors for collecting internal values of components (using collectable and collecting annotation);
  • default collectors:
    • JFrame|JDialog collect/remove JMenuBar;
    • Frame collect/remove MenuBar;
    • JFrame|JDialog|JWindow collect/remove Container;
    • Frame|Dialog|Window collect/remove Container;
    • SystemTray collect/remove TrayIcon;
    • TrayIcon collect/remove PopupMenu;
    • JMenuBar collect/remove JMenu;
    • MenuBar collect/remove Menu;
    • JMenu collect/remove JMenuItem;
    • Menu collect/remove MenuItem;
    • Container collect/remove Component;
    • Window collect/remove WindowListener;
    • AbstractButton collect/remove ActionListener;
    • MenuItem collect/remove ActionListener;
    • JComponent collect/remove JPopupMenu;
    • Component collect/remove MouseListener;
    • Component collect/remove MouseMotionListener;
  • abstract collections (Containers, Collections and Windows) are now mutable maps of components;
  • abstract components deal now with mutable maps of listeners;
  • automatically validating all the hierarchy whenever it is all invalidated;
  • ordering components of ordering annotated abstract collections;
  • scanning of Spring components contained in Yayoi packages.

Yayoi is written in Ceylon and is built on top of Spring

Change Log

5.1.0 (2019-01-25)

Added:

Changed:

Closed bugs/regressions:

Regression:

Open:

Building

ceylon compile --flat-classpath --fully-export-maven-dependencies

Getting started

You just need to add this declaration to your Ceylon module:

import it.feelburst.yayoi "5.1.0";

About

A GUI annotation framework written in Ceylon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages