\\
The class <span style="color: #ff0000"><strong>TypeVisualizerFactory</strong></span> acts as a factory that creates visualizers (JAXFront GUI components) for a JAXFront type (a representation of a schema node). It allows to create a bundle of GUI elements that might be placed on different panels or frames. The created GUI components implements the interface Visualizer.
\\
!worddav2f51b87e377051db4caf28225cc7f883.png|height=32,width=29! See class class TypeVisualizerFactory acts as a factory that creates visualizers (JAXFront GUI components) for a JAXFront type (a representation of a schema node). It allows to create a bundle of GUI elements that might be placed on different panels or frames. The created GUI components implements the interface Visualizer. Wiki-Markup
See class com.jaxfront.demo.api.OwnLayoutManager
\\
public class OwnLayoutManager extends AbstractCompositeView implements ListSelectionListener\{
\\
private Document {
private Document _dom;
private JPanel _detailPanel;
\\
protected void
protected void defaultBuild() \ {
setLayout(new BorderLayout());
try \{
URL xsdURL = {
URL xsdURL = URLHelper.getUserURL("examples/purchaseOrder/po.xsd");
URL xmlURL =
URL xmlURL = URLHelper.getUserURL("examples/purchaseOrder/po.xml");
URL xuiURL =
URL xuiURL = URLHelper.getUserURL("examples/purchaseOrder/po.xui");
_dom = DOMBuilder.getInstance().build(null,xsdURL, xmlURL, xuiURL, "purchaseOrder");
\\
JPanel upperPanel = new
JPanel upperPanel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
\\
Type purchaseOrderRoot =
Type purchaseOrderRoot = _dom.getRootType();
\\
JComponent visualizer =
JComponent visualizer = (JComponent)TypeVisualizerFactory.getInstance().getVisualizer(purchaseOrderRoot.getDirectChild("orderDate"));
c.weightx = 0.5;
c.gridx = 0;
c.gridy = 0;
upperPanel.add(visualizer, c);
\\
visualizer =
visualizer = (JComponent){*}TypeVisualizerFactory.getInstance().getVisualizer{*}(purchaseOrderRoot.getDirectChild("deliveryOption"));
c.gridx = 1;
c.gridy = 0;
upperPanel.add(visualizer, c);
\\
visualizer =
visualizer = (JComponent){*}TypeVisualizerFactory.getInstance().getVisualizer{*}(purchaseOrderRoot.getDirectChild("email"));
c.gridx = 0;
c.gridy = 1;
upperPanel.add(visualizer, c);
\\
JPanel lowerPanel = new
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
}
catch (DocumentCreationException ex) \{
{
LogRegistry.getInstance().warn(getClass(), "Error while creating po.xsd DOM: " + ex.getLocalizedMessage());
\}
\\
\}
\\
public void
}
}
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(name));
_detailPanel.add(visualizer, BorderLayout.CENTER);
_detailPanel.updateUI();
\\
\}
\}
\\
!worddave577c8b17a58a775504916e0944cbedc.png|height=38,width=38! 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
}
}
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.