/usr/share/doc/libjgoodies-binding-java/guide/valuemodels.html is in libjgoodies-binding-java 2.1.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JGoodies Binding :: Guide :: Value Models</title>
<link rel="stylesheet" type="text/css" href="../style.css" >
<meta name="description" content="The JGoodies Binding provides an elegant means to present object properties in a user interface.">
<meta name="author" content="Karsten Lentzsch">
<meta name="keywords" content="JGoodies Data Binding Java Swing UI Design Usability Lentzsch Kiel">
<meta name="robots" content="index, follow">
<meta name="date" content="2006-01-01">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0" bottommargin="0" >
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td colspan="3" bgcolor="DDDCDC"><a href="../../README.html"><img
src="../images/banner.gif" width="436" height="46" alt=":: JGOODIES Looks :: Professional Swing Look&Feels" border="0"></a></td>
</tr>
<tr>
<td colspan="3" height="1" bgcolor="C9C8C8"></td>
</tr>
<tr>
<td width="160" height="500" valign="top" bgcolor="F4f3f3" class="nav" nowrap="nowrap">
<div style="margin-left: 17px; margin-top: 17px; margin-right: 10px; ; margin-bottom: 17px; line-height: 18px;">
<!-- ************ Anfang der Seitennavigation **************************** -->
<b>General</b>
<br>:: <a class="nav" href="../../README.html">Readme</a>
<br>:: <a class="nav" href="../../RELEASE-NOTES.txt">Release Notes</a>
<br>:: <a class="nav" href="../../LICENSE.txt">License</a>
<br>:: <a class="nav" href="../references.html">References</a>
<br>:: <a class="nav" href="https://binding.dev.java.net/faq.html">FAQ</a>
<p>
<b>User's Guide</b>
<br>:: <a class="nav" href="introduction.html">Introduction</a>
<br>:: <a class="nav" href="domainobjects.html">Domain Objects</a>
<br>:: <a class="nav" href="domainadapters.html">Domain Adapters</a>
<br>:: <a class="nav" href="valuemodels.html"><b>Value Models</b></a>
<br>:: <a class="nav" href="viewadapters.html">View Adapters</a>
<br>:: <a class="nav" href="tasks.html">Tasks</a>
<p>
<a class="nav" href="../api/index.html"><b>API Docs</b></a>
<p>
<b>Web Pages</b>
<br>:: <a class="nav" href="https://binding.dev.java.net/">Project Home</a>
<br>:: <a class="nav" href="http://www.jgoodies.com/downloads/libraries.html">Downloads</a>
<br>:: <a class="nav" href="https://binding.dev.java.net/servlets/ProjectNewsList">Announcements</a>
<br>:: <a class="nav" href="https://binding.dev.java.net/servlets/ProjectMailingListList">Mailing Lists</a>
<br>:: <a class="nav" href="https://binding.dev.java.net/servlets/ProjectIssues">Issue Tracker</a>
<br>:: <a class="nav" href="https://www.jgoodies.com/freeware/">More Examples</a>
<!-- *********** Ende der Seitennavigation ******************************* -->
</div>
</td>
<td width="1" bgcolor="E7E5E5"><img src="/images/banner.gif" width="1" height="1" alt=""></td>
<td width="90%" valign="top" >
<div style="margin-left: 20px; margin-top: 17px; margin-bottom: 17px">
<!-- ************ Anfang des Inhalts ***************************************** -->
<table width="530" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<h1>:: Guide :: Value Models ::</h1>
<h2>ValueModel Interface</h2>
The ValueModel interface describes a read-write value that is observable.
You can read its value using <tt>#getValue()</tt>, you can write
its value using <tt>#setValue(Object)</tt>. And you can register
a <tt>PropertyChangeListener</tt> that will be notified if the
value changes.
<h2>Predefined ValueModel Implementations</h2>
<tt>ValueHolder</tt> is the minimal ValueModel implementation.
It holds a single value that one can get and set from outside.
And it keeps a list of PropertyChangeListeners.
<p>
The most frequently used ValueModel implementation is the
<tt>PropertyAdapter</tt> and its variations. It converts
a single (bound) Bean property into a ValueModel.
Actually most PropertyAdapters are returned by
<tt>PresentationModel#getModel</tt>, <tt>#getBufferedModel</tt>,
and the <tt>BeanAdapter</tt> class.
<p>
The <tt>BufferedValueModel</tt> provides a means to buffer values,
so changes are deferred until OK or Apply is pressed.
For details see the <a href="tasks.html#buffering">Buffering</a> task.
<p>
The <tt>ConverterFactory</tt> vends ValueModel implementations
that convert types, for example <tt>Date</tt> to <tt>String</tt>.
<h2>Custom ValueModel Implementations</h2>
To minimize the effort required to implement the ValueModel interface,
you can extend the <tt>AbstractValueModel</tt>. Custom converters
will likely extend the <tt>AbstractConverter</tt>. See also
the <a href="tasks.html#conversion">Type Conversion</a> task.
<h2>Combining ValueModels</h2>
Since ValueModel describes a uniform interface to get and set values,
they can be easily combined. They can be wrapped, connected,
composed, etc. For example, the <tt>BufferedValueModel</tt>
wraps any ValueModel to buffer the value until a trigger indicates
that the value shall be committed or flushed.
</td>
</tr>
</table>
<!-- ************ Ende des Inhalts ************************************** -->
</div>
</td>
</tr>
<tr>
<td nowrap="nowrap" bgcolor="F4f3f3">
<div style="font-size: 10px; margin-left: 17px; margin-top: 20px; margin-right: 10px; margin-bottom: 4px;">
(c) 2010 JGoodies
</div>
</td>
<td width="1" bgcolor="E7E5E5"></td>
<td> </td>
</tr>
<tr>
<td colspan="2" height="1" bgcolor="E7E5E5"></td>
<td></td>
</tr>
</table>
</body>
</html>
|