Difference between revisions of "Com.bitplan.gui"
Jump to navigation
Jump to search
(18 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> | ||
Line 6: | Line 18: | ||
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 07: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.