Com.bitplan.gui: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (19 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{OsProject|title=Generic GUI framework for Java|url=https://github.com/BITPlan/com.bitplan.gui|version=0.0. | {{OsProject|id=com.bitplan.gui | ||
|owner=BITPlan | |||
|title=Generic GUI framework for Java | |||
|url=https://github.com/BITPlan/com.bitplan.gui | |||
|date=2019-01-22 | |||
|version=0.0.15 | |||
}} | |||
= Simple Platform neutral Graphical User Interface Description = | = Simple Platform neutral Graphical User Interface Description = | ||
== Why platform neutral? == | |||
Implementing User interfaces for a specific platform can be quite frustrating when you try to migrate the result to a different platform. | |||
Even very small differences between implementations can spoil the effort. | |||
Especially when prototyping it is much easier to start from a simple descriptive file and "interpret" the result. | |||
== Main classes and packages == | == Main classes and packages == | ||
<uml> | <uml> | ||
hide circle | |||
package com.bitplan.gui { | package com.bitplan.gui { | ||
class App { | class App { | ||
name | |||
home | |||
feedback | |||
help | |||
} | |||
class Group { | |||
id | |||
name | |||
icon | |||
} | } | ||
class Form { | class Form { | ||
id | |||
icon | |||
title | |||
headerText | |||
} | } | ||
class | class Field { | ||
id | |||
label | |||
hint | |||
fieldKind | |||
type | |||
choices | |||
format | |||
labelSize | |||
fieldSize | |||
gridX | |||
gridY | |||
} | } | ||
class | class ExceptionHelp { | ||
exception | |||
url | |||
i18nHint | |||
} | } | ||
class Menu { | class Menu { | ||
id | |||
title | |||
shortCut | |||
} | } | ||
class MenuItem { | class MenuItem { | ||
id | |||
title | |||
shortCut | |||
} | } | ||
App -> "groups n" Group | |||
App -> "exceptionHelp n" ExceptionHelp | |||
App -> "mainMenu" Menu | |||
Group -> "forms n" Form | |||
Form -> "fields n" Field | |||
Menu -> "submenus n" Menu | |||
Menu -> "menuItems n" MenuItem | |||
} | } | ||
package com.bitplan.i18n { | package com.bitplan.i18n { | ||
interface I18n { | interface I18n { | ||
String get(String text) | |||
String get(String text, Object ... params) | |||
} | } | ||
class | class Translator { | ||
String translate(String messageName, Object ... params) | |||
String translate(String messageName, Object param) | |||
String translate(String messageName) | |||
Locale getCurrentLocale() | |||
static initialize(String bundleName, String localeName) | |||
loadBundle(Locale locale) | |||
getBundle() | |||
} | } | ||
} | } | ||
<uml> | </uml> | ||
= Example Applications = | |||
* {{Link|target=Sprinkler}} | |||
* [http://can4eve.bitplan.com can4eve] | |||
= I18n = | |||
Internationalization is supported using resource bundles. | |||
The "TestI18n" base class can be used as a utility to make sure that all entries in the platform independent description have a corresponding translation. | |||
[[Category:frontend]] | |||
Latest revision as of 06:59, 7 July 2019
| OsProject | |
|---|---|
| id | com.bitplan.gui |
| state | |
| owner | BITPlan |
| title | Generic GUI framework for Java |
| url | https://github.com/BITPlan/com.bitplan.gui |
| version | 0.0.15 |
| description | |
| date | 2019-01-22 |
| since | |
| until | |
Simple Platform neutral Graphical User Interface Description
Why platform neutral?
Implementing User interfaces for a specific platform can be quite frustrating when you try to migrate the result to a different platform. Even very small differences between implementations can spoil the effort.
Especially when prototyping it is much easier to start from a simple descriptive file and "interpret" the result.
Main classes and packages

Example Applications
I18n
Internationalization is supported using resource bundles. The "TestI18n" base class can be used as a utility to make sure that all entries in the platform independent description have a corresponding translation.