Documente Academic
Documente Profesional
Documente Cultură
Version 2.61
xcentric technology & consulting
Oberwiesenstrasse 5
CH - 8057 Zurich
Switzerland
+41 (0)43 255 01 69
JAXFront
Developer Manual
Java Client-Renderer
V2.70
http://www.jaxfront.com
info@jaxfront.com
www.jaxfront.com
1-39
Version 2.61
Document description
Author(s)
M.Leber, S.Portmann
info@jaxfront.com
Version
2.70
Web link
http://www.jaxfront.com/download/JAXFront-Developer-Manual-V2.pdf
Classification
Processing status
not classified
draft/in
processing
internal
Ready
for
acceptance
confidential
definitive
version
secret
Meaning
Points to an example-syntax in XML.
Points to a code example in Java.
Refers to important information.
Describes a previously presented example..
Copyright 2001 - 2011 xcentric technology & consulting GmbH. All Rights Reserved.
Use of this documentation and related software is governed by a License Agreement. This document does not imply a legal
contract. Readers assume responsibility for the use and interpretation of the information contained herein. xcentric technology &
consulting GmbH strives to ensure the accuracy of the provided instructions but it does not accept any liability or damages for
omissions contained in this manual.
www.jaxfront.com
2-39
Version 2.61
TABLE OF CONTENTS
1 INTRODUCTION .................................................................................................................. 5
2 SETTING UP ENVIRONMENT ............................................................................................. 6
2.1 BASIC INSTALLATION ............................................................................................................ 6
2.2 DIRECTORY STRUCTURE ....................................................................................................... 6
2.3 RUNTIME ENVIRONMENT ....................................................................................................... 7
2.3.1 JAXFront license file deployment .................................................................................... 8
2.3.2 How to integrate/use a plugin in the XUI-Editor .............................................................. 9
2.4 RUN JAXFRONT................................................................................................................... 9
2.5 UNINSTALLING JAXFRONT .................................................................................................... 9
2.6 EXPLORE JAXFROM DEMO SUITE ....................................................................................... 10
3 BUILDING A JAXFRONT DOM ......................................................................................... 11
3.1 THE JAXFRONT DOCUMENT OBJECT MODEL (DOM)............................................................ 11
3.1.1 Build a new JAXFront DOM .......................................................................................... 11
3.1.1.1 How to create a JAXFront DOM from a XML Schema (xsd) ......................................................................... 11
3.1.1.2 How to create a JAXFront DOM from a XML Schema (xsd) based on a specific root node ......................... 11
3.1.1.3 How to create a JAXFront DOM from a XML Schema (xsd) binded with an existing xml instance file ......... 11
3.1.1.4 How to create a JAXFront DOM from a XML Schema (xsd) binded with a W3C DOM................................. 11
3.1.1.5 How to create a JAXFront DOM from a XML Schema (xsd) with an existing xui file .................................... 11
3.1.1.6 How to create a JAXFront DOM from a XML Schema (xsd) binded with an existing xml instance file
and an existing xui file .............................................................................................................................................. 12
3.1.1.7 How to bind data of a W3C DOM to an existing JAXFront DOM .................................................................. 12
3-39
5 PERFORMANCE ............................................................................................................... 33
5.1 DISABLE GLOBAL UI DEFINITIONS ....................................................................................... 33
5.2 ENABLE ALTERNATE XPATH IMPLEMENTATION ...................................................................... 34
6 THIRD PARTY PATCHES ................................................................................................. 34
7 EXAMPLE APPLICATION - TESTFRAME ........................................................................ 35
7.1 GETTING STARTED ............................................................................................................. 35
7.2 FUNCTIONS ........................................................................................................................ 36
7.2.1 Examples ...................................................................................................................... 36
7.2.2 Edit ............................................................................................................................... 37
7.2.3 Language ...................................................................................................................... 38
8 LIMITATIONS .................................................................................................................... 39
Version 2.61
1 Introduction
This document describes the most important interfaces for a developer working with JAXFront.
Setting up the environment, integration & most used classes/methods of the JAXFront API are
the main issues.
It further contains a short manual to the example application TestFrame.
www.jaxfront.com
Seite 5-39
Version 2.61
2 Setting Up Environment
2.1 Basic Installation
To install JAXFront follow these steps:
1. Go to www.jaxfront.com and download the current version of the install file
(JAXFront_XX.jar, where XX stands for the current version, e.g. V1.60).
Alternatively, insert the installation CD in your computer and navigate to the installation
file.
2. Double-click the installation file: JAXFront_XX.jar. If the executable jar does not
start, switch to your command line and type in: java jar JAXFront_XX.jar.
3. Follow the Installation Wizard, which leads you through the installation process.
www.jaxfront.com
Seite 6-39
Version 2.61
Explanation:
JAXFront
The main directory of JAXFront incl. batch files for starting the XUIEditor and
DemoSuite application.
config
Directory with JAXFront runtime configuration files. (e.g. functions, actions, .. incl.
helptext). If the config folder doesnt exist, jaxfront will search in the jar files.
examples
Directory containing xui examples. Find a complex example about all possible style &
behaviour options in the folder demo-suite.
examples/com
Directory containing java example source code (how to implement your own
visualizers, actions, popups,... and how to integrate jaxfront in your application).
html-renderer
The directory includes all the html runtime files (incl. Apache Tomcat Version 4.1)
needed for the HTML rendering.
lib
JAXFront system jar files and all used Libraries. (e.g. Log4J, xerces, ...).
uninstaller
Directory containing the uninstaller jar file (just double click to run it).
Library name
Description
jaxfront-core.jar
jaxen
JEP
jaxfront-dbm.jar
hsqldb.jar
castor-1.0M2.jar
jta1.0.1.jar
jaxfront demo
jaxfront-html.jar
jaxfront-pdf.jar
iText
1.0
2.2.4
jaxfront-demo.jar
freemarker.jar
Version
1.8.0
1.0M2
1.0.1
2.3.4
1.4
jaxfront-swing.jar
jaxfront-xuieditor.jar
jaxfront xuieditor
commons-beanutils.jar
1.5
commons-collections.jar
1.1dev
commons-logging.jar
1.04
looks-1.3.1.jar
Jgoodies Look&Feel
1.3.1
log4j-1.2.8.jar
1.2.8
resolver.jar
1.1
xercesImpl.jar
2.6.2
www.jaxfront.com
Seite 7-39
Version 2.61
1.2.01
2. Put all your classes into a jar file (e.g. projectX.jar) and include it in the classpath too. Be
sure all your functions are registered in the config/functions.xml file.
3. Place the config folder into the classpath folder or into one of your project jar files (e.g.
projectX.jar). Be aware of the loading sequence of the jar files. If you dont delete the config
folder in the jaxfront-core.jar you have to place your jar files before the jaxfront jars.
4. Write a java start batch file including your jar files like:
"%JAVA_HOME%\bin\javaw"
-noverify
-classpath
projectX.jar;..;.;..\lib;..\lib\jaxfrontcore.jar;..\lib\jaxfront-swing.jar;..\lib\jaxfront-xuieditor.jar;..\lib\jimi.jar;..\lib\jaxfrontpdf.jar;..\lib\xercesImpl.jar;..\lib\xml-apis.jar;..\lib\resolver.jar;..\lib\commonslogging.jar;..\lib\commons-collections.jar;..\lib\commonsbeanutils.jar;..\lib\log4j.jar;..\lib\jgoodiesLF.jar com.jaxfront.demo.TestFrame
5. Deploy the application
www.jaxfront.com
Seite 8-39
Version 2.61
If you want to see your plugin listed in the XUIEditor plugin tab, you have to register the plugin
class in the config/plugins.xml file.
To use your own plugin in the XUIEditor, please refer to chapter 3.4.2.5 in the XUIEditor
Manual.
If the XUI-Editor does not start (i.e. instead starting the winzip or another archive
viewer), the JAVA_HOME variable is not set properly. Set the JAVA_HOME variable in your
system settings or start the XUI-Editor with the following command line:
www.jaxfront.com
Seite 9-39
Version 2.61
Click on the button named load on the Complete Demo Suite line to load the demo suite. If
you do not see the Welcome panel, click Welcome in the menu named Help.
www.jaxfront.com
Seite 10-39
Version 2.61
3.1.1.2 How to create a JAXFront DOM from a XML Schema (xsd) based on a specific root
node
URL xsdURL = new URL("file:///c:\\temp\\mySchema.xsd");
String rootName = purchaseOrder;
Document dom = DOMBuilder.getInstance().build(null,xsdURL, rootName);
3.1.1.3 How to create a JAXFront DOM from a XML Schema (xsd) binded with an existing
xml instance file
URL xsdURL = new URL("file:///c:\\temp\\mySchema.xsd");
URL xmlURL = new URL("file:///c:\\temp\\myXML.xml");
Document dom = DOMBuilder.getInstance().build(null,xsdURL, xmlURL, null, null);
3.1.1.4 How to create a JAXFront DOM from a XML Schema (xsd) binded with a W3C DOM
URL xsdURL = new URL("file:///c:\\temp\\mySchema.xsd");
org.w3c.dom.Document w3cDOM = DOMHelper.createDocument(xmlAsString);
Document dom = DOMBuilder.getInstance().build(null,xsdURL, w3cDOM, null, null);
3.1.1.5 How to create a JAXFront DOM from a XML Schema (xsd) with an existing xui file
URL xsdURL = new URL("file:///c:\\temp\\mySchema.xsd");
URL xuiURL = new URL("file:///c:\\temp\\myFirstXUI.xui");
Document dom = DOMBuilder.getInstance().build(null,xsdURL, null, xuiURL, null);
www.jaxfront.com
Seite 11-39
Version 2.61
3.1.1.6 How to create a JAXFront DOM from a XML Schema (xsd) binded with an existing
xml instance file and an existing xui file
URL xsdURL = new URL("file:///c:\\temp\\mySchema.xsd");
URL xmlURL = new URL("file:///c:\\temp\\myXML.xml");
URL xuiURL = new URL("file:///c:\\temp\\myFirstXUI.xui");
Document dom = DOMBuilder.getInstance().build(null,xsdURL, xmlURL, xuiURL, null);
3.1.2.2 How to validate a JAXFront DOM only against the defined xui rules
dom.validateXUIRules(false); // for validating only on the client side
dom.validateXUIRules(true); // for validating only on the server side
3.1.2.3 How to validate a JAXFront DOM only against the underyling xsd
dom.validateSchemaConstraints();
3.1.2.4 How to validate a JAXFront DOM only against the underyling xsd
dom. validateKeyRefIntegrity (true); //true notify the error controller about changes
www.jaxfront.com
Seite 12-39
Version 2.61
www.jaxfront.com
Seite 13-39
Version 2.61
Press the preview button and explore the 10 examples by clicking on the tree nodes.
www.jaxfront.com
Seite 14-39
Version 2.61
Create an instance of EditorPanel and plugin in the JPanel instance where ever you want.
www.jaxfront.com
Seite 15-39
Version 2.61
JComponent visualizer =
(JComponent)TypeVisualizerFactory.getInstance().getVisualizer(purchaseOrderRoot.getDirectChild("or
derDate"));
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 0;
upperPanel.add(visualizer, c);
visualizer =
(JComponent)TypeVisualizerFactory.getInstance().getVisualizer(purchaseOrderRoot.getDirectChild("de
liveryOption"));
c.gridx = 1;
c.gridy = 0;
upperPanel.add(visualizer, c);
visualizer =
(JComponent)TypeVisualizerFactory.getInstance().getVisualizer(purchaseOrderRoot.getDirectChild("em
ail"));
c.gridx = 0;
c.gridy = 1;
upperPanel.add(visualizer, c);
JPanel lowerPanel = new JPanel(new BorderLayout());
_detailPanel = new JPanel(new BorderLayout());
JList list = new JList(new String[]{"shipTo", "billTo", "paymentMethod",
"item"});
list.addListSelectionListener(this);
list.setBorder(BorderFactory.createEtchedBorder());
JScrollPane scrollPane = new JScrollPane(list);
scrollPane.setPreferredSize(new Dimension(200,200));
JPanel listPanel = new JPanel(new BorderLayout());
listPanel.add(scrollPane, BorderLayout.NORTH);
lowerPanel.add(listPanel, BorderLayout.WEST);
lowerPanel.add(_detailPanel, BorderLayout.CENTER);
add(upperPanel, BorderLayout.NORTH);
add(lowerPanel, BorderLayout.CENTER);
}
catch (DocumentCreationException ex) {
LogRegistry.getInstance().warn(getClass(), "Error while creating po.xsd DOM:
" + ex.getLocalizedMessage());
}
}
public void setApplicationRequired(boolean aBoolean) {}
public void setRequired(boolean aBoolean) {}
public void valueChanged(ListSelectionEvent e) {
_detailPanel.removeAll();
String name = (String)((JList)e.getSource()).getSelectedValue();
JComponent visualizer =
(JComponent)TypeVisualizerFactory.getInstance().getVisualizer(_dom.getRootType().getDirectChild(na
me));
_detailPanel.add(visualizer, BorderLayout.CENTER);
_detailPanel.updateUI();
}
}
Create a JComponent from any type you want. The returned JComponent will care about
event handling (populate model/populate view) and rules defined in the XUI.
www.jaxfront.com
Seite 16-39
Version 2.61
The class need to implement the com.jaxfront.core.rule.Condition interface. If you click on the
button next to the text field (
), JAXFront will try to load the class (through the specified
classpath) and check if the Condition interface is implemented. A red bullet indicates that the
class can not be loaded or it does not implement the Condition interface.
com.jaxfront.core.rule.Condition
Name
doesConcern(Type)
isTrue()
setSourceType(Type)
Description
Returns true if the passed type does concern this
condition. This may be important if the scope of the
event definition is not just sourceOnly. In this case
just check if the passed type equals the source of
the condition or is derrived from it.
Returns true if the condition is true. Check any
status based on the underlying source type.
Sets holder of the condition.
www.jaxfront.com
Seite 17-39
Version 2.61
This Condition just checks if the source of the defined rule holds a future date.
public class OwnCondition extends Object implements Condition {
Type _sourceType;
public boolean isTrue() throws FormulaException {
SimpleType simpleType = (SimpleType)_sourceType;
String dateString = simpleType.getValue();
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date inputDate = format.parse(dateString);
Date currentDate = new Date();
return inputDate.compareTo(currentDate) > 0;
}
catch (ParseException ex) {
//do nothing
}
return false;
}
public boolean doesConcern(Type checkType) {
return checkType == _sourceType;
}
public void setSourceType(Type sourceType) {
_sourceType = sourceType;
}
}
www.jaxfront.com
Seite 18-39
Version 2.61
Description
This method gets called if the condition is true. The
passing type is the target type of the action as
defined in the xui rule (Target Node). If the target
node is not specified, the source of the rule
definition will become the target. If no target node is
defined in the inververse action, the target node
from the main action will be choosen.
Seite 19-39
Version 2.61
A function can be used everywhere within the rule engine (condition expression, nls text). A
predefined set of functions already exists.
To register the own function, open the Preferences dialog in the XUI Editor (View menu)
and add a new function. After adding/modifying the functions, the XUI Edtior needs to be
closed and started again.
Implementing
an
own
function
means
to
extend
the
com.jaxfront.core.jep.JaxfrontMathCommand class . In the field Implementation Class enter
the class name which extends this class. In the field Category add an existing category
name or a new one. You will see all categories when using the formula engine.
www.jaxfront.com
Seite 20-39
Version 2.61
Description
run(Stack)
www.jaxfront.com
Seite 21-39
Version 2.61
stack.push(SuperTypeNode.isFalse);
}
} else {
throw new ParseException(this.getClass() + " Invalid parameter type");
}
}
}
Description
com.jaxfront.swing.ui.beans.AbstractSimpleVisualizer
com.jaxfront.swing.ui.beans.AbstractComplexVisualizer
com.jaxfront.swing.ui.beans.AbstractListVisualizer
If you do not want to inherit from the given abstract classes, you need to enable the interaction
with the JAXFront core engine. One needs to implement the Java interface Visualizer. The
graphical representation and the data binding is up to the imlementor of the interface.
com.jaxfront.core.ui.Visualizer
Name
Description
getLabelText()
getModel()
jumpTo()
removeLabel()
resetError()
setApplicationRequired(boolean)
markError()
populateModel()
populateView()
postInitialization()
release()
www.jaxfront.com
Seite 22-39
Version 2.61
setEditable(boolean)
setEnabled(boolean)
setLabelColor(Color)
setModel(Type)
setRequired(boolean)
setVisible(boolean)
showLabel(boolean)
com.jaxfront.demo.api.OwnPlugin
public class OwnPlugin extends AbstractSimpleVisualizer {
private JTextArea _textArea;
public String getLabelText() {
return "Simple Plugin Example";
}
public String getText() {
if (_textArea != null) return _textArea.getText();
return null;
}
public void populateView() {
if (getModel() != null && _textArea != null) {
String value = ((SimpleType)getModel()).getValue();
if (value != null) {
_textArea.setText(value);
}
}
}
protected JComponent createEditorComponent() {
_textArea = new JTextArea();
_textArea.setForeground(Color.blue);
setBorder(BorderFactory.createMatteBorder(20,20,20,20,Color.GREEN));
_textArea.addFocusListener(this);
_textArea.setFont(new Font(null,1,20));
_textArea.setRows(4);
_textArea.setLineWrap(true);
_textArea.addFocusListener(this);
_firstFocusableComponent = _textArea;
return _textArea;
}
}
www.jaxfront.com
Seite 23-39
Version 2.61
www.jaxfront.com
Seite 24-39
Version 2.61
com.jaxfront.demo.api.OwnTreePopUpMenu
public class OwnTreePopUpMenu extends AbstractPopUpMenu {
public OwnTreePopUpMenu(NavigationTree tree, com.jaxfront.core.ui.TreeNode treeNode) {
super(tree, treeNode);
initialize();
}
private void initialize() {
OwnSwingTestAction testAction = new OwnSwingTestAction("test");
testAction.putValue(XUITypes.VALUE_DOM, getTreeNode().getType().getDOM());
testAction.putValue(XUITypes.VALUE_SOURCE, getTreeNode().getType());
add(testAction);
}
}
www.jaxfront.com
Seite 25-39
Version 2.61
com.jaxfront.demo.api.XPathAction
public class XPathAction implements Action {
public void perform(Type source) {
Type patternType = source.getChild("simpleGroup").getDirectChild("A");
String pattern = source.getChild("simpleGroup").getDirectChildValue("A");
String xpath = ".//A[.='" + pattern + "']";
ListType listType = (ListType)source.getDirectChild("list");
List found = TypePathExecuter.getInstance().processXPath(listType, xpath);
AbstractView view =
(AbstractView)TypeVisualizerFactory.getInstance().getVisualizer(patternType);
String message = "Found (" + found.size() + " items) for XPath ("+ xpath + ").
Going to delete them...";
view.showHint(message, false, Color.RED, true);
Iterator iterator = found.iterator();
while (iterator.hasNext()) {
listType.removeChild(((Type)iterator.next()).getParent());
}
}
}
www.jaxfront.com
Seite 26-39
Version 2.61
com.jaxfront.demo.api.EventHandling
public class EventHandling extends AbstractCompositeView implements PropertyChangeListener,
DOMChangeListener{
private JTextArea _textArea;
protected void defaultBuild() {
setLayout(new BorderLayout());
JComponent visualizer =
(JComponent)TypeVisualizerFactory.getInstance().getVisualizer(getModel().getDirectChild("simple
Group"));
add(visualizer, BorderLayout.NORTH);
visualizer =
(JComponent)TypeVisualizerFactory.getInstance().getVisualizer(getModel().getDirectChild("list")
);
add(visualizer, BorderLayout.CENTER);
_textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(_textArea);
scrollPane.setPreferredSize(new Dimension(300, 300));
add(scrollPane, BorderLayout.SOUTH);
getModel().getDOM().getController().addPropertyChangeListener(this);
getModel().getDOM().addDOMChangeListener(this);
}
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
_textArea.setText(event.toString());
}
public void domChanged(DOMChangeEvent event) {
super.domChanged(event);
_textArea.setText(event.toString());
}
public void setApplicationRequired(boolean aBoolean) {}
public void setRequired(boolean aBoolean) {}
}
www.jaxfront.com
Seite 27-39
Version 2.61
com.jaxfront.demo.api.ChangeState
public class ChangeState extends AbstractAction {
private boolean _visible = true;
private boolean _collapse = false;
private boolean _treeNode = false;
public void actionPerformed(ActionEvent event) {
Document dom = (Document)getValue(XUITypes.VALUE_DOM);
Type source = (Type)getValue(XUITypes.VALUE_SOURCE);
String actionName = event.getActionCommand();
Type target = source.getParent().getDirectChild("list");
Visualizer targetVisualizer =
TypeVisualizerFactory.getInstance().getVisualizer(target);
if (actionName.equals("visibility")) {
_visible = !_visible;
targetVisualizer.setVisible(_visible);
}
else if (actionName.equals("collapse")) {
_collapse = !_collapse;
if (_collapse)
((AbstractView)targetVisualizer.getInplementation()).getBorderPanel().collapseInitially();
else
((AbstractView)targetVisualizer.getInplementation()).getBorderPanel().expandInitially();
}
else if (actionName.equals("treeNode")) {
_treeNode = !_treeNode;
if (_treeNode)
((AbstractView)targetVisualizer.getInplementation()).addTreeNode(true);
else
((AbstractView)targetVisualizer.getInplementation()).removeTreeNode(true);
}
}
}
www.jaxfront.com
Seite 28-39
Version 2.61
com.jaxfront.demo.api.OwnCodeSetResolverImpl
public class OwnCodeSetResolverImpl implements CodeSet {
public Reader getCodeSet(Type type, String codeSetName, String versionNo) {
//for demo purposes, load the codeset file from local jar/file system
String fileName = "examples/purchaseOrder/po.codes";
URL codeSetURL = URLHelper.getUserURL(fileName);
try {
if (codeSetURL != null) {
String xmlContent = FileHelper.readFileAsString(codeSetURL);
return new StringReader(xmlContent);
}
}
catch (IOException ex) {
LogRegistry.getInstance().warn(getClass(), "Unable to open file: " +
fileName);
}
return null;
}
}
www.jaxfront.com
Seite 29-39
Version 2.61
com.jaxfront.demo.api.AddUserError
public class AddUserError implements Action {
public void perform(Type target) {
Error myError = new UserError("test-identifier", target, "message",
Error.CLASSIFICATION_WARNING);
target.getDOM().getController().getErrorController().addError(myError);
}
}
com.jaxfront.demo.api.RemoveUserError
public class RemoveUserError implements Action {
public void perform(Type target) {
target.getDOM().getController().getErrorController().removeUserError("testidentifier", target);
}
}
2.
API:
JAXFrontProperties.getInstance().setStringProperty(SimpleTypeDateView,com.jaxfront.s
wing.ui.beans.DateBean);
www.jaxfront.com
Seite 30-39
Version 2.61
Description
RecursionWrapper
Visualize a recursion
PagingView
ComplexGroupView
ComplexGroupListView
SimpleGroupView
SimpleGroupListView
KeyView
Visualize a key
KeyRefView
SimpleTypeColorView
Visualize a color
SimpleTypeRadioView
SimpleTypeComboView
SimpleTypeStringView
SimpleTypeBooleanView
SimpleTypeNumericView
SimpleTypeDateView
SimpleTypeDateTimeView
SimpleTypeTimeView
SimpleTypeDurationView
Visualize a duration
SimpleTypeListView
www.jaxfront.com
Seite 31-39
Version 2.61
package com.jaxfront.demo.ui;
import java.awt.BorderLayout;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import com.jaxfront.core.type.Type;
import com.jaxfront.core.ui.Visualizer;
public
class
OwnDefaultVisualizerImplementation
implements com.jaxfront.core.ui.Visualizer {
private Type _context;
private Type _model;
extends
JComponent
Mapping:
JAXFrontProperties.getInstance().setStringProperty("SimpleTypeDateTimeView",
"com.jaxfront.demo.ui.OwnSimpleImplementation");
www.jaxfront.com
Seite 32-39
Version 2.61
How to register:
5 Performance
Jaxfront offers two settings to improve the system performance significantly.
API:
JAXFrontProperties.getInstance(getDOM().getAppContext()).setUsingGloba
lUIDefinitions(false);
Single ui:
API:
jaxfrontDom.getGlobalDefinition().setUseGlobalTypes(false);
www.jaxfront.com
Seite 33-39
Version 2.61
https://issues.apache.org/jira/browse/XERCESJ589?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=12569187#action_12569187
Patched Class:
org.apache.xerces.impl.xpath.regex. RegularExpression
www.jaxfront.com
Seite 34-39
Version 2.61
You will find the source code for this in the installation folder
/examples/com/jaxfront/demo/TestFrame.java. To run the example simple start the
TestFrame.bat in the installation folder /examples.
www.jaxfront.com
Seite 35-39
Version 2.61
7.2 Functions
7.2.1 Examples
The TestFrame application offers three different views of the purchase order example. By clicking
on the image (on the right), the choosen example will be shown/refreshed.
Screenshot 1: Examples
www.jaxfront.com
Seite 36-39
Version 2.61
7.2.2 Edit
The edit menu offers three actions:
Serialize
Shows the xml syntax of the current dom.
Validate
Validates the current dom against the xsd and xui rules and shows the validation errors in
a table.
Open XUIEditor
Opens the XUI Editor for the choosen example.
www.jaxfront.com
Seite 37-39
Version 2.61
7.2.3 Language
The menu language allows you to change the language of the current visible dom. The Editor
Panel will be redrawn to perform the language changes on all components (labels, buttons,
captions, titles, error messages, ...).
www.jaxfront.com
Seite 38-39
Version 2.61
8 Limitations
If you wish to extend JAXFront or want to have new features implemented, do not hesitate to
contact us (info@jaxfront.com). A technical representative will contact you.
Please notify the following limitations.
.
www.jaxfront.com
Seite 39-39