cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrus Adamchik (JIRA)" <>
Subject [jira] Created: (CAY-1474) Straightening CayenneModeler platform-specific builds
Date Mon, 23 Aug 2010 13:38:18 GMT
Straightening CayenneModeler platform-specific builds

                 Key: CAY-1474
             Project: Cayenne
          Issue Type: Task
          Components: Modeler
    Affects Versions: 3.1M1
            Reporter: Andrus Adamchik
            Assignee: Andrus Adamchik
             Fix For: 3.1M1

A lack of consistent approach to the Modeler cross-platform behavior results in a number of
issues. Most are not visible to the end users (and mostly causing problems in development),
still that may change as we are upgrading preferences in Cayenne 3.1. So..

1. Core Modeler code has OSX-specific logic for inclusion of Quit/About/Preferences menus.
Since OSX style Quit/About/Preferences are availble on OS X under "native" Aqua look and feel
only when "cayenne-modeler-mac-ext" is compiled in, a generic CayenneModeler assembly lacks
those menus on the Mac. 

2. Dynamic look and feel driven by preferences is causing issues when upgrading from 3.0 to
3.1 (the Modeler switches to Windows Plastic L&F, also loosing Quit/About/Preferences
menus in the process)..

3. There were other minor issues that I cna't remember now.

So what I am going to do this:

* Look and feel will be hardcoded per Modeler assembly type (no more override from preferences).
It will be Aqua for OS X assembly, and plastic for generic and windows. Caveat: it will be
"default" (no forcing special L&F) in the base "cayenne-modeler" module. This way we can
get correct keyboard shortcusts when debugging the Modeler on Mac.

* the code will be refactored to provide menu and look and feel configuration as extension
points that can be overridden by subclassing of some launcher class. (in the past we had a
much more ambitious plans to use a plugin container... maybe some day. OSGI is more or less
usable now)

* default cayenne-modeler module without platform extensions will install all menus and will
use platform default L&F (see above). This setup will be used when executed from Eclipse
on all platforms..

* OS X assembly will subclass the launcher to deal with Quit/About/Preferences menus and to
maybe force AQUA L&F.

* Windows and generic assemblies will subclass the launcher to add Plastic L&F. (Plastic
seems to look better on Linux than Java defaults)


This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message