<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://doc.sibvisions.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://doc.sibvisions.com/feed.php">
        <title>Documentation applications</title>
        <description></description>
        <link>http://doc.sibvisions.com/</link>
        <image rdf:resource="http://doc.sibvisions.com/lib/tpl/material/images/favicon.ico" />
       <dc:date>2026-04-17T09:06:37+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/actiongroup?rev=1593623706&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/anonymous_connection?rev=1594213954&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/application_events?rev=1594213142&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/application_properties?rev=1676537743&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/application_setup?rev=1594213062&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/calculdated_value?rev=1592216867&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/change_objectnames?rev=1594213932&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/client_exception?rev=1600786663&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/configure_authentication?rev=1594213242&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/configure_logging?rev=1593780690&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/connection_properties?rev=1594213123&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/control_openscreen?rev=1594213220&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/current_username?rev=1593622720&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/custom_dialog?rev=1593780348&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/custom_errorhandling?rev=1594214095&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/custom_tableauth?rev=1594214204&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/custom_themes?rev=1594213915&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/customize_application?rev=1594213779&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/detect_manual_logout?rev=1593623594&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/external_editor?rev=1593785029&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/filtereditor_custom?rev=1593625598&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/font_value?rev=1592216848&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/home?rev=1591975209&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/jvx_to_projx?rev=1594213040&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/login_parameter?rev=1593620074&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/menu_configuration_mu?rev=1594214039&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/menu_definition?rev=1594214056&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/navtable_custom_insert?rev=1593780866&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/no_authentication?rev=1593622185&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/ntlm_authentication?rev=1594212710&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/platform_theme?rev=1593620266&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/portlet_integration?rev=1594213294&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/projx?rev=1669724102&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/push_support?rev=1669724937&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/raw_value?rev=1592216831&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/replace_about?rev=1593780752&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/replace_error?rev=1731925875&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/replace_menu?rev=1593780269&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/report?rev=1592216792&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/rest_extensions?rev=1594212949&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/server_envinfo?rev=1593621456&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/show_exception?rev=1593622111&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/show_login?rev=1594213186&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/swagger_filter?rev=1593623728&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/timeouts_vaadin?rev=1594212547&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/user_registration?rev=1593621670&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/webapplication_style?rev=1593624309&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/welcomeback_login?rev=1594213974&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/workscreen_nopadding?rev=1594212778&amp;do=diff"/>
                <rdf:li rdf:resource="http://doc.sibvisions.com/applications/workscreen_title?rev=1593621821&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://doc.sibvisions.com/lib/tpl/material/images/favicon.ico">
        <title>Documentation</title>
        <link>http://doc.sibvisions.com/</link>
        <url>http://doc.sibvisions.com/lib/tpl/material/images/favicon.ico</url>
    </image>
    <item rdf:about="http://doc.sibvisions.com/applications/actiongroup?rev=1593623706&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T17:15:06+00:00</dc:date>
        <title>Using ActionGroup</title>
        <link>http://doc.sibvisions.com/applications/actiongroup?rev=1593623706&amp;do=diff</link>
        <description>If you have multiple radio/toggle buttons in your UI and have the use-case that only one button should be selected, the ActionGroup is a perfect match. The ActionGroup handles a set of radio/toggle buttons and ensures that only one button in the group is selected.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/anonymous_connection?rev=1594213954&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:12:34+00:00</dc:date>
        <title>Create an Anonymous Connection</title>
        <link>http://doc.sibvisions.com/applications/anonymous_connection?rev=1594213954&amp;do=diff</link>
        <description>You have different options if you need a connection before the user is authenticated. You could establish a connection with pre-configured username and password (but this isn't highly secure), you could use JVx's standard AUTOLOGIN feature via database configuration (Table AUTOLOGIN), or you could create an anonymous connection.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/application_events?rev=1594213142&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:59:02+00:00</dc:date>
        <title>Application Events</title>
        <link>http://doc.sibvisions.com/applications/application_events?rev=1594213142&amp;do=diff</link>
        <description>If you need more information about the application and what's going on in the application, you should add an event listener. The application sends events in different situations:


public void beforeSave(ProjX pApplication);
public void afterSave(ProjX pApplication);

public void beforeCommit(ProjX pApplication);
public void afterCommit(ProjX pApplication);

public void beforeRollback(ProjX pApplication);
public void afterRollback(ProjX pApplication);

public void beforeReload(ProjX pApplication…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/application_properties?rev=1676537743&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-16T08:55:43+00:00</dc:date>
        <title>Supported Application.xml Properties</title>
        <link>http://doc.sibvisions.com/applications/application_properties?rev=1676537743&amp;do=diff</link>
        <description>Template

This is an application.xml for business applications (with all possible parameters):


&lt;application&gt;
  &lt;!-- Connection parameters --&gt;  
  &lt;Application.serverbase&gt;http://localhost/JVx.Server&lt;/Application.serverbase&gt;  
  &lt;Launcher.codebase&gt;[Application.serverbase]/services/CodeBase/&lt;/Launcher.codebase&gt;  

  &lt;Application.connectionClass&gt;
    com.sibvisions.rad.remote.http.HttpConnection
  &lt;/Application.connectionClass&gt;
  &lt;_Application.connectionClass&gt;remote.net.VMConnection&lt;/_Application.…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/application_setup?rev=1594213062&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:57:42+00:00</dc:date>
        <title>Programatically Application Setup</title>
        <link>http://doc.sibvisions.com/applications/application_setup?rev=1594213062&amp;do=diff</link>
        <description>If you want to change the default configuration of your client application, e.g., a different menu, no toolbar, a fancy background image, etc. you could use application.xml and set specific parameters or you could implement your own application behaviour. It's enough to set the application parameter:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/calculdated_value?rev=1592216867&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T10:27:47+00:00</dc:date>
        <title>Using Calculated Values</title>
        <link>http://doc.sibvisions.com/applications/calculdated_value?rev=1592216867&amp;do=diff</link>
        <description>Sometimes, it's useful to add calculated values to your report. To do this, simply use your own implementation of ICalculatedValue.

Here's an example:


Bean bean = new Bean();
bean.put(&quot;AMOUNT&quot;, BigDecimal.valueOf(11.5));
bean.put(&quot;PRICE&quot;, BigDecimal.valueOf(15.44));
bean.put(&quot;CALCULATED&quot;, new ICalculatedValue() 
{
	@Override
	public Object getValue(String pName, INode pNode) 
	{
		return ((BigDecimal)pNode.get(&quot;AMOUNT&quot;)).multiply((BigDecimal)pNode.get(&quot;PRICE&quot;));
	}
});

BeanNode node = new Be…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/change_objectnames?rev=1594213932&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:12:12+00:00</dc:date>
        <title>Change Predefined Custom Object Names</title>
        <link>http://doc.sibvisions.com/applications/change_objectnames?rev=1594213932&amp;do=diff</link>
        <description>ProjX has some requirements for the session LCO. The application assumes that an object with the name workScreenAccess is present. There's another object with the name helpStore.

If you don't configure your session LCO correctly, your application will throw exceptions and won't work as expected.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/client_exception?rev=1600786663&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-22T14:57:43+00:00</dc:date>
        <title>applications:client_exception</title>
        <link>http://doc.sibvisions.com/applications/client_exception?rev=1600786663&amp;do=diff</link>
        <description>Usually the error dialog shows the root cause of an exception as first Exception, because it was the first occured Exception, e.g.


  try
  {
    throw new Exception(&quot;Root&quot;);
  }
  catch (Exception e)
  {
    try
    {
      throw new Exception(&quot;Middle&quot;, e);
    }
    catch (Exception ex)
    {
      throw new Exception(&quot;Top&quot;, ex)
    }
  }</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/configure_authentication?rev=1594213242&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:00:42+00:00</dc:date>
        <title>Configure Application Authentication</title>
        <link>http://doc.sibvisions.com/applications/configure_authentication?rev=1594213242&amp;do=diff</link>
        <description>The default JVx application has a login screen and the user must enter a valid username and password for successful authentication. It does not offer automatic login or login with different authentication mechanism like OpenID, Facebook, etc.

With ProjX, it's easy to integrate new authentication mechanism or change authentication mechanism.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/configure_logging?rev=1593780690&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-03T12:51:30+00:00</dc:date>
        <title>Configure Logging</title>
        <link>http://doc.sibvisions.com/applications/configure_logging?rev=1593780690&amp;do=diff</link>
        <description>JVx uses standard JDK logging API or log4j.

If you don't use a custom logging.properties file, the log mechanism won't work as expected because of standard log settings of JRE/JDK:

The default logging.properties file sets the global level to:


.level= INFO


and also the console log handler level, to:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/connection_properties?rev=1594213123&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:58:43+00:00</dc:date>
        <title>Default Connection Properties</title>
        <link>http://doc.sibvisions.com/applications/connection_properties?rev=1594213123&amp;do=diff</link>
        <description>Our ProjX application sets additional/default connection properties for the MasterConnection and every screen connection (means SubConnection used for workscreens). The additional properties are:


con.setProperty(IConnectionConstants.PREFIX_CLIENT + ILauncher.PARAM_CODEBASE, 
                launcher.getParameter(ILauncher.PARAM_CODEBASE));

con.setProperty(IConnectionConstants.PREFIX_CLIENT + ILauncher.PARAM_SERVERBASE, 
                launcher.getParameter(ILauncher.PARAM_SERVERBASE));     
…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/control_openscreen?rev=1594213220&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:00:20+00:00</dc:date>
        <title>applications:control_openscreen</title>
        <link>http://doc.sibvisions.com/applications/control_openscreen?rev=1594213220&amp;do=diff</link>
        <description>The ProjX application is a standard implementation of JVx' RemoteWorkScreenApplication. It's the default application frame for applications with workscreens. It controls the access to workscreens and configures the application frame for it's different states (logged on, logged out, anonymous user). It's not allowed to open workscreens if no user is logged on or if anonymous usage wasn't configured.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/current_username?rev=1593622720&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:58:40+00:00</dc:date>
        <title>How to Get the Current Username</title>
        <link>http://doc.sibvisions.com/applications/current_username?rev=1593622720&amp;do=diff</link>
        <description>If you want to know the current username in your application, simply call:


getApplication().getUserName();


The method returns the same as:


getApplication().getConnection().getUserName();




If getApplication() return type is an IApplication, use this:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/custom_dialog?rev=1593780348&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-03T12:45:48+00:00</dc:date>
        <title>applications:custom_dialog</title>
        <link>http://doc.sibvisions.com/applications/custom_dialog?rev=1593780348&amp;do=diff</link>
        <description>Our ProjX application has its own content and window management. If you need a dialog, follow the description in Open a Custom Dialog but DON'T open the dialog with:


Dialog.openInternalFrame(...);


because the opened frame won't be in the list of managed frames. To open the dialog, simply call:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/custom_errorhandling?rev=1594214095&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:14:55+00:00</dc:date>
        <title>Custom Error Handling</title>
        <link>http://doc.sibvisions.com/applications/custom_errorhandling?rev=1594214095&amp;do=diff</link>
        <description>The application (ProjX) implements the IExceptionListener interface and registers itself as listener:


protected void initApplication(UILauncher pLauncher) throws Throwable
{
    ExceptionHandler.addExceptionListener(this);
    
    ...
}


All exceptions will be handled in the listener method:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/custom_tableauth?rev=1594214204&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:16:44+00:00</dc:date>
        <title>applications:custom_tableauth</title>
        <link>http://doc.sibvisions.com/applications/custom_tableauth?rev=1594214204&amp;do=diff</link>
        <description>If you use the standard DBSecurityManager, DBWorkScreenAccess or RoleBasedDBWorkScreenAccess you have to use the following table names:

AUTOLOGIN 

USERS

and following view names:

V_ACCESSRULES 

V_ROLESCREENS 

V_USERROLES 

V_USERSCREENS

If you want to change the names without changing the source code, it's very easy to map the expected names to your own names. It's also possible to define synonyms in your database, if supported.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/custom_themes?rev=1594213915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:11:55+00:00</dc:date>
        <title>Custom Themes</title>
        <link>http://doc.sibvisions.com/applications/custom_themes?rev=1594213915&amp;do=diff</link>
        <description>If you use a ProjX application, you'll have different options to change the look and feel. The first one will be a custom Swing look and feel or custom CSS (HTML5 mode). The second one is extending default ProjX and change the style programatically. The third option is to implement your own theme.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/customize_application?rev=1594213779&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:09:39+00:00</dc:date>
        <title>Customize an Application Without Derivation</title>
        <link>http://doc.sibvisions.com/applications/customize_application?rev=1594213779&amp;do=diff</link>
        <description>If you use a standard ProjX application and want to change the appearance without derivation, you have the following options:

	*  Create your own application class that extends ProjX
	*  Create a class that implements IApplicationSetup to configure the application for your needs</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/detect_manual_logout?rev=1593623594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T17:13:14+00:00</dc:date>
        <title>Detecting Manual Logout</title>
        <link>http://doc.sibvisions.com/applications/detect_manual_logout?rev=1593623594&amp;do=diff</link>
        <description>If you work with your own security manager, it might be useful to know the difference between manual logout and session destroy because of a timeout. 

The ProjX application sets the connection/session property userlogout to true (string). You can check the property via</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/external_editor?rev=1593785029&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-03T14:03:49+00:00</dc:date>
        <title>Binding an External Editor</title>
        <link>http://doc.sibvisions.com/applications/external_editor?rev=1593785029&amp;do=diff</link>
        <description>The UIEditor is the standard component for binding editors to the data model. It works great for default data types like text, number, date, or image. But sometimes it's better to use custom editors with advanced features, e.g., if your text contains source code, you could use a text editor with syntax highlighting or auto completion.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/filtereditor_custom?rev=1593625598&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T17:46:38+00:00</dc:date>
        <title>Using FilterEditor With Custom Filter</title>
        <link>http://doc.sibvisions.com/applications/filtereditor_custom?rev=1593625598&amp;do=diff</link>
        <description>The FilterEditor supports standard filtering with predefined conditions or full text. If you want to work with FilterEditors but still want to set a custom filter, simply disable automatic search and add a filter changed event:


filterEditor.setAutoSearch(false);
filterEditor.eventFilterValueChanged().addListener(this, &quot;doCustomFilter);</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/font_value?rev=1592216848&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T10:27:28+00:00</dc:date>
        <title>Using Raw Values</title>
        <link>http://doc.sibvisions.com/applications/font_value?rev=1592216848&amp;do=diff</link>
        <description>The reporting engine replaces placeholders with dynamically generated text. The template in RTF contains font definitions which will be replaced as well. This is usually not a problem if there is some text before and after the replaced value. But if you want to use a specific font only for the placeholder, it might be a problem.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/home?rev=1591975209&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-12T15:20:09+00:00</dc:date>
        <title>Applications</title>
        <link>http://doc.sibvisions.com/applications/home?rev=1591975209&amp;do=diff</link>
        <description>This is the place for our JVx application framework ProjX and all extensions for application development.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/jvx_to_projx?rev=1594213040&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:57:20+00:00</dc:date>
        <title>Replace JVx' standard Application With ProjX</title>
        <link>http://doc.sibvisions.com/applications/jvx_to_projx?rev=1594213040&amp;do=diff</link>
        <description>If you have an application based on JVx' standard application frame, it's very easy to use ProjX. The standard application doesn't contain a workscreen manager, automatic menu/toolbar creation, and automatic logon. This missing features and much more are part of our ProjX application frame. It's a simple RemoteWorkScreen application (defined by JVx). The JVx' standard Application frame is a RemoteApplication without workscreen management. The RemoteWorkScreenApplication extends RemoteApplication…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/login_parameter?rev=1593620074&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:14:34+00:00</dc:date>
        <title>Login With Command-Line Parameters</title>
        <link>http://doc.sibvisions.com/applications/login_parameter?rev=1593620074&amp;do=diff</link>
        <description>If you start an application from another application or via command line, you could use command-line arguments to set application parameters like username/password. Of course, you shouldn't use this in production environments, but you could for test applications or unit tests.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/menu_configuration_mu?rev=1594214039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:13:59+00:00</dc:date>
        <title>Menu Configuration (Multiuser)</title>
        <link>http://doc.sibvisions.com/applications/menu_configuration_mu?rev=1594214039&amp;do=diff</link>
        <description>ProjX reads the menu configuration from the database. It's not needed to build the menu manually. You configure/map your workscreens and create access roles like administrator, developer, user. You have to assign your screens to roles, e.g., a developer has access to all screens, an administrator has access to all application screens but not to development screens, and so on.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/menu_definition?rev=1594214056&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:14:16+00:00</dc:date>
        <title>Manual Menu Definition</title>
        <link>http://doc.sibvisions.com/applications/menu_definition?rev=1594214056&amp;do=diff</link>
        <description>Usually, we read the menu configuration for an application from a database, but the read class is defined as an interface (IWorkScreenAccess). Therefore, it is not a problem to read the configuration from another datasource or configure it manually with source code.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/navtable_custom_insert?rev=1593780866&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-03T12:54:26+00:00</dc:date>
        <title>Replacing Standard Insert Method of NavigationTable</title>
        <link>http://doc.sibvisions.com/applications/navtable_custom_insert?rev=1593780866&amp;do=diff</link>
        <description>The NavigationTable has buttons for insert/update/delete and other standard functionality. You can replace standard functionality with your own methods, e.g., load a zip file and insert records parsed from the archive - instead of inserting a new, empty, record.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/no_authentication?rev=1593622185&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:49:45+00:00</dc:date>
        <title>Application Without Authentication</title>
        <link>http://doc.sibvisions.com/applications/no_authentication?rev=1593622185&amp;do=diff</link>
        <description>Sometimes it's useful to create an application without login. This kind of application is perfect for public areas or if you offer free services. It's not a problem to code such an application, but it's also possible to configure this requirement.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/ntlm_authentication?rev=1594212710&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:51:50+00:00</dc:date>
        <title>NTLM Authentication</title>
        <link>http://doc.sibvisions.com/applications/ntlm_authentication?rev=1594212710&amp;do=diff</link>
        <description>Configure the NTLM authenticator com.sibvisions.apps.auth.NtlmAuthenticator as described here.

Be sure that you use com.sibvisions.rad.server.security.NtlmDBSecurityManager as security manager. The configuration is described here.

Add additional parameters to your config.xml</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/platform_theme?rev=1593620266&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:17:46+00:00</dc:date>
        <title>Using PlatformTheme</title>
        <link>http://doc.sibvisions.com/applications/platform_theme?rev=1593620266&amp;do=diff</link>
        <description>The PlatformTheme is a special ITheme. It's always active and loads image mappings for the current platform from a mapping (XML) file. This theme could be used to have the same application running on desktop, web, and mobile environments but with different image mappings. The images on mobile devices should, or can, be different to desktop application icons. The PlatformTheme is a built-in mechanism to allow image replacement without writing source code.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/portlet_integration?rev=1594213294&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:01:34+00:00</dc:date>
        <title>Portlet Integration</title>
        <link>http://doc.sibvisions.com/applications/portlet_integration?rev=1594213294&amp;do=diff</link>
        <description>If you want to use Vaadin UI with Liferay Portlets, use the following security manager in your config.xml:


&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;application&gt;
  &lt;securitymanager&gt;
    &lt;class&gt;
    com.sibvisions.apps.vaadin.portlet.server.security.PortletSecurityManager
    &lt;/class&gt;
...</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/projx?rev=1669724102&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-29T12:15:02+00:00</dc:date>
        <title>ProjX documentation</title>
        <link>http://doc.sibvisions.com/applications/projx?rev=1669724102&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/push_support?rev=1669724937&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-29T12:28:57+00:00</dc:date>
        <title>Push support</title>
        <link>http://doc.sibvisions.com/applications/push_support?rev=1669724937&amp;do=diff</link>
        <description>There's already a push mechanism in JVx. Simply use this article and ignore the instructions for the listener registration because ProjX already is a listener. Simply extend ProjX:


public class CustomApplication extends ProjX 
{
    public CustomApplication(UILauncher pLauncher) throws Throwable 
    {
        super(pLauncher);
    }

    @Override
    public void callBackResult(CallBackResultEvent pEvent)
    {
        if (&quot;RELOAD&quot;.equals(pEvent.getInstruction()))
        {
            try
  …</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/raw_value?rev=1592216831&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T10:27:11+00:00</dc:date>
        <title>Using Raw Values</title>
        <link>http://doc.sibvisions.com/applications/raw_value?rev=1592216831&amp;do=diff</link>
        <description>If you're creating RTF reports with RtfWorker, it's sometimes useful to directly write RTF syntax. This can be useful if you need a feature which it's not already implemented. Such a raw value can help you in that case.

Here's a short example which creates a simple checkbox with Wingdings font:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/replace_about?rev=1593780752&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-03T12:52:32+00:00</dc:date>
        <title>Replacing Standard About Dialog</title>
        <link>http://doc.sibvisions.com/applications/replace_about?rev=1593780752&amp;do=diff</link>
        <description>It's not tricky to replace the standard About dialog. Simply override the method


@Override
public void doAbout(UIActionEvent pEvent) throws Throwable
{
    openContent(this, null, true, &quot;com.sibvisions.apps.demo.DemoAbout&quot;, this);
}


in your custom application class. If you don't have a custom application class, simply create one by extending ProjX. The class should be located in the</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/replace_error?rev=1731925875&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-18T10:31:15+00:00</dc:date>
        <title>Replacing Error Dialog</title>
        <link>http://doc.sibvisions.com/applications/replace_error?rev=1731925875&amp;do=diff</link>
        <description>It's not tricky to replace the standard Error dialog. Simply set following property in your application.xml or web.xml.


&lt;Application.Error.classname&gt;com.demo.apps.MyError&lt;/Application.Error.classname&gt;


Your own implementation should look like following class:


import com.sibvisions.rad.application.Error;
import jvx.rad.ui.container.IDesktopPanel;

public class MyError extends Error
{
    public MyError(IDesktopPanel pDesktop) throws Exception
    {
        super(pDesktop);
        
        /…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/replace_menu?rev=1593780269&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-03T12:44:29+00:00</dc:date>
        <title>Replace Standard Application Menu</title>
        <link>http://doc.sibvisions.com/applications/replace_menu?rev=1593780269&amp;do=diff</link>
        <description>The standard menu creates and configures the menu and toolbar automatically. It adds default menus like File, Edit, Help and default menu items like Login/Logout, Exit, About. All application workscreens will be added by the application to the menu. Every workscreen has its own menu item and/or toolbar button.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/report?rev=1592216792&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-15T10:26:32+00:00</dc:date>
        <title>Reporting Documentation</title>
        <link>http://doc.sibvisions.com/applications/report?rev=1592216792&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/rest_extensions?rev=1594212949&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:55:49+00:00</dc:date>
        <title>REST Extensions</title>
        <link>http://doc.sibvisions.com/applications/rest_extensions?rev=1594212949&amp;do=diff</link>
        <description>Public Services

The REST API of JVx offers a great solution for generic services accessible via REST. However, the standard access is protected by BASIC authentication, and sometimes it's important to offer public services without authentication. This isn't possible with standard JVx authentication implementations. Our application framework enables you to do really cool things with JVx' REST</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/server_envinfo?rev=1593621456&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:37:36+00:00</dc:date>
        <title>Getting Environment Information on Server Side</title>
        <link>http://doc.sibvisions.com/applications/server_envinfo?rev=1593621456&amp;do=diff</link>
        <description>If you want to know the launch environment of your client on server side, simply use LifeCycleUtil to get the information. The information is stored as connection property of master and subconnections.

Simply call:


LifeCycleUtil.getEnvironmentName();</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/show_exception?rev=1593622111&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:48:31+00:00</dc:date>
        <title>Show an Exception With Stack Trace</title>
        <link>http://doc.sibvisions.com/applications/show_exception?rev=1593622111&amp;do=diff</link>
        <description>If you want to show an exception as error dialog, simply call


ExceptionHandler.show(new Exception(&quot;Expired&quot;));


The command will show a simple dialog with a text area that contains the error message, a detail and an OK button.



The detail button will show the stack trace.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/show_login?rev=1594213186&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:59:46+00:00</dc:date>
        <title>Show Login on User Request</title>
        <link>http://doc.sibvisions.com/applications/show_login?rev=1594213186&amp;do=diff</link>
        <description>Sometimes it's useful to hide the login screen, e.g., if you show information for anonymous users (twitter messages, system messages, ...) or offer actions like mailing list subscriptions.

To hide the login screen, set the following property in your</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/swagger_filter?rev=1593623728&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T17:15:28+00:00</dc:date>
        <title>REST API Filter</title>
        <link>http://doc.sibvisions.com/applications/swagger_filter?rev=1593623728&amp;do=diff</link>
        <description>If you use Swagger UI for REST API documentation, it's relevant to set the correct host and basePath in the specification file. To use the current host and path, simply use the integrated filter. It will replace the host and basePath with current information:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/timeouts_vaadin?rev=1594212547&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:49:07+00:00</dc:date>
        <title>Configuring Timeouts for Vaadin UI</title>
        <link>http://doc.sibvisions.com/applications/timeouts_vaadin?rev=1594212547&amp;do=diff</link>
        <description>A JVx application has custom timeouts for master and sub session. The timeouts won't work if you use Vaadin UI because a web application uses http session timeout. The Vaadin documentation contains information about Session Timeout After User Inactivity.

Our WebApplicationSetup implementation overrules the session timeout properties of config.xml by setting:</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/user_registration?rev=1593621670&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:41:10+00:00</dc:date>
        <title>User Registration</title>
        <link>http://doc.sibvisions.com/applications/user_registration?rev=1593621670&amp;do=diff</link>
        <description>The login screen of ProjX has a button for user registration. This button is usually not visible. If you want to add user registration for your application, simply show the button and add your registration screen.

To show the button, simply set:


&lt;Application.Login.register&gt;true&lt;/Application.Login.register&gt;</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/webapplication_style?rev=1593624309&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T17:25:09+00:00</dc:date>
        <title>Use Web Application Style With Vaadin</title>
        <link>http://doc.sibvisions.com/applications/webapplication_style?rev=1593624309&amp;do=diff</link>
        <description>If you don't want a MDI for your web application, simply switch your application style to web style (see Vaadin Application style).

An example configuration:


&lt;servlet&gt;
   &lt;servlet-name&gt;WebServlet&lt;/servlet-name&gt;
   &lt;servlet-class&gt;com.sibvisions.rad.ui.vaadin.server.VaadinServlet&lt;/servlet-class&gt;
   
   &lt;init-param&gt;
      &lt;description&gt;Vaadin UI class to use&lt;/description&gt;
      &lt;param-name&gt;UI&lt;/param-name&gt;
      &lt;param-value&gt;com.sibvisions.rad.ui.vaadin.impl.VaadinUI&lt;/param-value&gt;
   &lt;/init-param&gt;…</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/welcomeback_login?rev=1594213974&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T13:12:54+00:00</dc:date>
        <title>Automatic Login of Authenticated Users</title>
        <link>http://doc.sibvisions.com/applications/welcomeback_login?rev=1594213974&amp;do=diff</link>
        <description>In modern web applications, it's convenient that a user has an option for automatic authentication for his next visits.We offer the same feature for your backend applications. Simply set the following property in your application.xml:


&lt;Application.authenticator&gt;com.sibvisions.apps.auth.AutoLoginAuthenticator&lt;/Application.authenticator&gt;</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/workscreen_nopadding?rev=1594212778&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-08T12:52:58+00:00</dc:date>
        <title>Remove Default Padding of Workscreen</title>
        <link>http://doc.sibvisions.com/applications/workscreen_nopadding?rev=1594212778&amp;do=diff</link>
        <description>The standard application frame with Vaadin UI adds a default padding of five pixels to every screen if margins of screen layout are smaller than five pixels.

An example:



and the html code:



To change the default padding, simply set a custom margin in your screen, e.g.</description>
    </item>
    <item rdf:about="http://doc.sibvisions.com/applications/workscreen_title?rev=1593621821&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-01T16:43:41+00:00</dc:date>
        <title>Set Frame Title of Workscreen</title>
        <link>http://doc.sibvisions.com/applications/workscreen_title?rev=1593621821&amp;do=diff</link>
        <description>A workscreen doesn't have a title and it doesn't know the layout of the application which means that it doesn't know if it will be shown as window (internal frame) or embedded as simple panel or something else. The application handles the whole layout.</description>
    </item>
</rdf:RDF>
