Difference between revisions of "Com.bitplan.gui"

From BITPlan Wiki
Jump to navigation Jump to search
 
(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.3}}
+
{{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 Group {
+
     class Field {
 +
      id
 +
      label
 +
      hint
 +
      fieldKind
 +
      type
 +
      choices
 +
      format
 +
      labelSize
 +
      fieldSize
 +
      gridX
 +
      gridY
 
     }
 
     }
     class Field {
+
     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 Translate {
+
     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.