<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-27650</id>
	<title>Nabble - OpenJDK JavaBeans API Development</title>
	<updated>2009-11-10T01:07:48Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/OpenJDK-JavaBeans-API-Development-f27650.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/OpenJDK-JavaBeans-API-Development-f27650.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26280403</id>
	<title>&lt;Beans Dev&gt; Approved: 6899147: java.beans.MetaData should not require JDBC to be present</title>
	<published>2009-11-10T01:07:48Z</published>
	<updated>2009-11-10T01:07:48Z</updated>
	<author>
		<name>sergey.malenkov</name>
	</author>
	<content type="html">Hi Alan,
&lt;br&gt;&lt;br&gt;The fix looks good for me.
&lt;br&gt;I approve.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;SAM
&lt;br&gt;&lt;br&gt;Alan Bateman wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Sergey,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; As we discussed today, the persistent delegate for java.sql.Timestamp in 
&lt;br&gt;&amp;gt; java.beans.Metadata creates an undesirable dependency on JDBC. I'd like 
&lt;br&gt;&amp;gt; to change this to use reflection so as to eliminate the static 
&lt;br&gt;&amp;gt; dependency. This doesn't change anything at runtime in that this 
&lt;br&gt;&amp;gt; persistent delegate will only be loaded if the type is a Timestamp. I've 
&lt;br&gt;&amp;gt; put the webrev with the change here:
&lt;br&gt;&amp;gt; &amp;nbsp;&lt;a href=&quot;http://cr.openjdk.java.net/~alanb/6899147/webrev.00/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cr.openjdk.java.net/~alanb/6899147/webrev.00/&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For testing, I've run the tests in test/java/beans/XMLEncoder - the 
&lt;br&gt;&amp;gt; java_sql_Timestamp.java test in particular, provides good coverage.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -Alan.
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-6899147%3A-java.beans.MetaData-should-not-require-JDBC-to-be-present-tp26267488p26280403.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26267488</id>
	<title>&lt;Beans Dev&gt; 6899147: java.beans.MetaData should not require JDBC to be present</title>
	<published>2009-11-09T06:37:48Z</published>
	<updated>2009-11-09T06:37:48Z</updated>
	<author>
		<name>Alan Bateman</name>
	</author>
	<content type="html">Sergey,
&lt;br&gt;&lt;br&gt;As we discussed today, the persistent delegate for java.sql.Timestamp in 
&lt;br&gt;java.beans.Metadata creates an undesirable dependency on JDBC. I'd like 
&lt;br&gt;to change this to use reflection so as to eliminate the static 
&lt;br&gt;dependency. This doesn't change anything at runtime in that this 
&lt;br&gt;persistent delegate will only be loaded if the type is a Timestamp. I've 
&lt;br&gt;put the webrev with the change here:
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cr.openjdk.java.net/~alanb/6899147/webrev.00/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cr.openjdk.java.net/~alanb/6899147/webrev.00/&lt;/a&gt;&lt;br&gt;&lt;br&gt;For testing, I've run the tests in test/java/beans/XMLEncoder - the 
&lt;br&gt;java_sql_Timestamp.java test in particular, provides good coverage.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;-Alan.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-6899147%3A-java.beans.MetaData-should-not-require-JDBC-to-be-present-tp26267488p26267488.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19296153</id>
	<title>FREE Online Test at www.yfrindia.com</title>
	<published>2008-09-03T12:20:33Z</published>
	<updated>2008-09-03T12:20:33Z</updated>
	<author>
		<name>Prize</name>
	</author>
	<content type="html">&lt;a href=&quot;http://www.yfrindia.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.yfrindia.com/&lt;/a&gt;&lt;br&gt;Take FREE online TEST, read FREE articles, download FREE presentation, use FREE source code, useful links, competition updates, free ONLINE TEST TESTS,
&lt;br&gt;&lt;a href=&quot;http://www.yfrindia.com/resources/Tests&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.yfrindia.com/resources/Tests&lt;/a&gt;&lt;br&gt;free APTITUDE TEST, English Test, Computer Test, Mechanical Test, Electronics Test, Electrical Test, GATE preparation, CAT preparation, Job preparation, resume.
&lt;br&gt;&lt;a href=&quot;http://www.yfrindia.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.yfrindia.com/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/FREE-Online-Test-at-www.yfrindia.com-tp19296153p19296153.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19296067</id>
	<title>FREE Online Test at www.yfrindia.com</title>
	<published>2008-09-03T12:15:46Z</published>
	<updated>2008-09-03T12:15:46Z</updated>
	<author>
		<name>Prize</name>
	</author>
	<content type="html">&lt;a href=&quot;http://www.yfrindia.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.yfrindia.com/&lt;/a&gt;&lt;br&gt;Take FREE online TEST, read FREE articles, download FREE presentation, use FREE source code, useful links, competition updates, free ONLINE TEST TESTS,
&lt;br&gt;&lt;a href=&quot;http://www.yfrindia.com/resources/Tests&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.yfrindia.com/resources/Tests&lt;/a&gt;&lt;br&gt;free APTITUDE TEST, English Test, Computer Test, Mechanical Test, Electronics Test, Electrical Test, GATE preparation, CAT preparation, Job preparation, resume.
&lt;br&gt;&lt;a href=&quot;http://www.yfrindia.com/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.yfrindia.com/&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/FREE-Online-Test-at-www.yfrindia.com-tp19296067p19296067.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-16492078</id>
	<title>&lt;Beans Dev&gt; [PATCH] Fix compilation problem</title>
	<published>2008-04-03T01:38:54Z</published>
	<updated>2008-04-03T01:38:54Z</updated>
	<author>
		<name>Roman Kennke-3</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I posted this some time ago, but I think it may have been forgotten.
&lt;br&gt;This fixes a small problem in MetaData, which can't be compiled
&lt;br&gt;using the Eclipse compiler. Infact, the code is not valid Java and is
&lt;br&gt;only accepted by javac due to a bug in javac:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&lt;/a&gt;&lt;br&gt;&lt;br&gt;It would be nice to have this patch integrated.
&lt;br&gt;&lt;br&gt;Cheers, Roman
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Dipl.-Inform. (FH) Roman Kennke, Software Engineer, &lt;a href=&quot;http://kennke.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://kennke.org&lt;/a&gt;&lt;br&gt;aicas Allerton Interworks Computer Automated Systems GmbH
&lt;br&gt;Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
&lt;br&gt;&lt;a href=&quot;http://www.aicas.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.aicas.com&lt;/a&gt;&amp;nbsp; &amp;nbsp;* Tel: +49-721-663 968-0
&lt;br&gt;USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
&lt;br&gt;Geschäftsführer: Dr. James J. Hunt
&lt;br&gt;&lt;br /&gt;&lt;tt&gt;[patch.txt]&lt;/tt&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;diff -r 37a05a11f281 -r 2b6c2ce8cd88 src/share/classes/java/beans/MetaData.java
&lt;br&gt;--- a/src/share/classes/java/beans/MetaData.java &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Sat Dec 01 00:00:00 2007 +0000
&lt;br&gt;+++ b/src/share/classes/java/beans/MetaData.java &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tue Dec 18 15:30:58 2007 +0100
&lt;br&gt;@@ -1563,7 +1563,7 @@ class MetaData {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return names;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static String[] getAnnotationValue(Constructor constructor) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static String[] getAnnotationValue(Constructor&amp;lt;?&amp;gt; constructor) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructorProperties annotation = constructor.getAnnotation(ConstructorProperties.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (annotation != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;? annotation.value()
&lt;br&gt;&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E--PATCH--Fix-compilation-problem-tp16492078p16492078.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14421561</id>
	<title>Re: &lt;Beans Dev&gt; jmx-dev</title>
	<published>2007-12-19T09:34:16Z</published>
	<updated>2007-12-19T09:34:16Z</updated>
	<author>
		<name>sergey.malenkov</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;Thank you for explanation.
&lt;br&gt;I'll fix it soon.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;SAM
&lt;br&gt;&lt;br&gt;Eamonn McManus wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Thanks for bringing this to our attention, Alan. Roman is right - the 
&lt;br&gt;&amp;gt; code in question should not compile and we should change it as he 
&lt;br&gt;&amp;gt; suggests so that it is correct.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (For people interested in the gory details, the method
&lt;br&gt;&amp;gt; &amp;lt;T extends Annotation&amp;gt; T getAnnotation 
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/lang/reflect/Constructor.html#getAnnotation%28java.lang.Class%29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/javase/6/docs/api/java/lang/reflect/Constructor.html#getAnnotation%28java.lang.Class%29&lt;/a&gt;&amp;gt;(Class&amp;lt;T&amp;gt; 
&lt;br&gt;&amp;gt; annotationClass)
&lt;br&gt;&amp;gt; returns T only if it is called on a properly generic variable, such as a 
&lt;br&gt;&amp;gt; Constructor&amp;lt;?&amp;gt; or Constructor&amp;lt;? extends Foo&amp;gt; or Constructor&amp;lt;E&amp;gt;. If it is 
&lt;br&gt;&amp;gt; called on a plain Constructor with no type parameter, then that is a 
&lt;br&gt;&amp;gt; &amp;quot;raw type&amp;quot;, and the return type is &amp;quot;erased&amp;quot; to Annotation. So something like
&lt;br&gt;&amp;gt; ConstructorProperties annotation = 
&lt;br&gt;&amp;gt; constructor.getAnnotation(ConstructorProperties.class)
&lt;br&gt;&amp;gt; should not compile if constructor is declared as Constructor rather than 
&lt;br&gt;&amp;gt; Constructor&amp;lt;?&amp;gt; or whatever.)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Éamonn McManus &amp;nbsp; JMX Spec Lead &amp;nbsp; &lt;a href=&quot;http://weblogs.java.net/blog/emcmanus/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.java.net/blog/emcmanus/&lt;/a&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Alan Bateman wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I don't know if the JMX &amp;nbsp;team or the JavaBeans maintainers are on the 
&lt;br&gt;&amp;gt;&amp;gt; core-libs-dev mailing list.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Subject:
&lt;br&gt;&amp;gt;&amp;gt; Fix compiler problem
&lt;br&gt;&amp;gt;&amp;gt; From:
&lt;br&gt;&amp;gt;&amp;gt; Roman Kennke &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421561&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;roman.kennke@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Date:
&lt;br&gt;&amp;gt;&amp;gt; Tue, 18 Dec 2007 15:32:06 +0100
&lt;br&gt;&amp;gt;&amp;gt; To:
&lt;br&gt;&amp;gt;&amp;gt; Core-Libs-Dev &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421561&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;core-libs-dev@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; To:
&lt;br&gt;&amp;gt;&amp;gt; Core-Libs-Dev &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421561&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;core-libs-dev@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; When trying to compile OpenJDK with the Eclipse compiler, I noticed two
&lt;br&gt;&amp;gt;&amp;gt; compiler errors related to generics. It turned out that the code there
&lt;br&gt;&amp;gt;&amp;gt; is invalid and only javac (incorrectly) accepts it. See the following
&lt;br&gt;&amp;gt;&amp;gt; bug reports for details:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=212147&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=212147&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The attached changeset fixes the problem. Could this be included?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; /Roman
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-tp14421278p14421561.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14421290</id>
	<title>Re: &lt;Beans Dev&gt; jmx-dev</title>
	<published>2007-12-18T10:09:16Z</published>
	<updated>2007-12-18T10:09:16Z</updated>
	<author>
		<name>eamonn.mcmanus</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-1&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
&lt;p&gt;Thanks for bringing this to our attention, Alan. Roman is right -
the code in question should not compile and we should change it as he
suggests so that it is correct.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;(For people interested in the gory details, the method&lt;br&gt;
&amp;lt;T extends Annotation&amp;gt; T &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/lang/reflect/Constructor.html#getAnnotation%28java.lang.Class%29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;getAnnotation&lt;/a&gt;(Class&amp;lt;T&amp;gt;
annotationClass)&lt;br&gt;
returns T only if it is called on a properly generic variable, such as
a Constructor&amp;lt;?&amp;gt; or Constructor&amp;lt;? extends Foo&amp;gt; or
Constructor&amp;lt;E&amp;gt;. If it is called on a plain Constructor with no
type parameter, then that is a &quot;raw type&quot;, and the return type is
&quot;erased&quot; to Annotation. So something like&lt;br&gt;
ConstructorProperties annotation = &lt;font color=&quot;#000099&quot;&gt;constructor&lt;/font&gt;.getAnnotation(ConstructorProperties.class)&lt;br&gt;
should not compile if &lt;font color=&quot;#000099&quot;&gt;constructor&lt;/font&gt; is
declared as Constructor rather than Constructor&amp;lt;?&amp;gt; or whatever.)&lt;br&gt;
&lt;/p&gt;
&lt;pre class=&quot;moz-signature&quot; cols=&quot;100&quot;&gt;&amp;Eacute;amonn McManus   JMX Spec Lead   &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://weblogs.java.net/blog/emcmanus/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://weblogs.java.net/blog/emcmanus/&lt;/a&gt;
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
Alan Bateman wrote:
&lt;blockquote cite=&quot;mid:4767DB0D.7010309@sun.com&quot; type=&quot;cite&quot;&gt;&lt;br&gt;
I don't know if the JMX&amp;nbsp; team or the JavaBeans maintainers are on the
core-libs-dev mailing list.
  &lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;hr size=&quot;4&quot; width=&quot;90%&quot;&gt;&lt;br&gt;
  &lt;table class=&quot;header-part1&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td&gt;
        &lt;div class=&quot;headerdisplayname&quot; style=&quot;display: inline;&quot;&gt;Subject:
        &lt;/div&gt;
Fix compiler problem&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;
        &lt;div class=&quot;headerdisplayname&quot; style=&quot;display: inline;&quot;&gt;From: &lt;/div&gt;
Roman Kennke &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421290&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;roman.kennke@...&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;
        &lt;div class=&quot;headerdisplayname&quot; style=&quot;display: inline;&quot;&gt;Date: &lt;/div&gt;
Tue, 18 Dec 2007 15:32:06 +0100&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;
        &lt;div class=&quot;headerdisplayname&quot; style=&quot;display: inline;&quot;&gt;To: &lt;/div&gt;
Core-Libs-Dev &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421290&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;core-libs-dev@...&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;table class=&quot;header-part2&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td&gt;
        &lt;div class=&quot;headerdisplayname&quot; style=&quot;display: inline;&quot;&gt;To: &lt;/div&gt;
Core-Libs-Dev &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421290&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;core-libs-dev@...&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;br&gt;
  &lt;pre wrap=&quot;&quot;&gt;When trying to compile OpenJDK with the Eclipse compiler, I noticed two
compiler errors related to generics. It turned out that the code there
is invalid and only javac (incorrectly) accepts it. See the following
bug reports for details:

&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=212147&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=212147&lt;/a&gt;
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&lt;/a&gt;

The attached changeset fixes the problem. Could this be included?

/Roman

  &lt;/pre&gt;
&lt;/blockquote&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-tp14421278p14421290.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14421278</id>
	<title>&lt;Beans Dev&gt;</title>
	<published>2007-12-18T06:37:01Z</published>
	<updated>2007-12-18T06:37:01Z</updated>
	<author>
		<name>Alan Bateman</name>
	</author>
	<content type="html">&lt;br&gt;I don't know if the JMX &amp;nbsp;team or the JavaBeans maintainers are on the 
&lt;br&gt;core-libs-dev mailing list.
&lt;br&gt;&lt;br&gt;&lt;br /&gt;When trying to compile OpenJDK with the Eclipse compiler, I noticed two
&lt;br&gt;compiler errors related to generics. It turned out that the code there
&lt;br&gt;is invalid and only javac (incorrectly) accepts it. See the following
&lt;br&gt;bug reports for details:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=212147&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=212147&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6400189&lt;/a&gt;&lt;br&gt;&lt;br&gt;The attached changeset fixes the problem. Could this be included?
&lt;br&gt;&lt;br&gt;/Roman
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Dipl.-Inform. (FH) Roman Kennke, Software Engineer, &lt;a href=&quot;http://kennke.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://kennke.org&lt;/a&gt;&lt;br&gt;aicas Allerton Interworks Computer Automated Systems GmbH
&lt;br&gt;Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
&lt;br&gt;&lt;a href=&quot;http://www.aicas.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.aicas.com&lt;/a&gt;&amp;nbsp; &amp;nbsp;* Tel: +49-721-663 968-0
&lt;br&gt;USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
&lt;br&gt;Geschäftsführer: Dr. James J. Hunt
&lt;br&gt;&lt;br /&gt;&lt;tt&gt;[openjdk-compile.patch]&lt;/tt&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;# HG changeset patch
&lt;br&gt;# User Roman Kennke &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14421278&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kennke@...&lt;/a&gt;&amp;gt;
&lt;br&gt;# Date 1197988258 -3600
&lt;br&gt;# Node ID 2b6c2ce8cd88445d9e3ea709069bf26d53039223
&lt;br&gt;# Parent &amp;nbsp;37a05a11f281b4d238e2f9e7ebb67c63f64d0e77
&lt;br&gt;Fix compiler problem.
&lt;br&gt;&lt;br&gt;diff -r 37a05a11f281 -r 2b6c2ce8cd88 src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java
&lt;br&gt;--- a/src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java	Sat Dec 01 00:00:00 2007 +0000
&lt;br&gt;+++ b/src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java	Tue Dec 18 15:30:58 2007 +0100
&lt;br&gt;@@ -1152,7 +1152,7 @@ public abstract class OpenConverter {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Also remember the set of properties in that constructor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// so we can test unambiguity.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set&amp;lt;BitSet&amp;gt; getterIndexSets = newSet();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Constructor constr : annotatedConstrList) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Constructor&amp;lt;?&amp;gt; constr : annotatedConstrList) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] propertyNames =
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;constr.getAnnotation(propertyNamesClass).value();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;diff -r 37a05a11f281 -r 2b6c2ce8cd88 src/share/classes/java/beans/MetaData.java
&lt;br&gt;--- a/src/share/classes/java/beans/MetaData.java	Sat Dec 01 00:00:00 2007 +0000
&lt;br&gt;+++ b/src/share/classes/java/beans/MetaData.java	Tue Dec 18 15:30:58 2007 +0100
&lt;br&gt;@@ -1563,7 +1563,7 @@ class MetaData {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return names;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static String[] getAnnotationValue(Constructor constructor) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static String[] getAnnotationValue(Constructor&amp;lt;?&amp;gt; constructor) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ConstructorProperties annotation = constructor.getAnnotation(ConstructorProperties.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (annotation != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;? annotation.value()
&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-tp14421278p14421278.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14258480</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-10T10:25:18Z</published>
	<updated>2007-12-10T10:25:18Z</updated>
	<author>
		<name>sergey.malenkov</name>
	</author>
	<content type="html">&amp;nbsp;&amp;gt; That /sounds/ to me like the specification wants the tool
&lt;br&gt;&amp;nbsp;&amp;gt; to provide the window, add the Customizer to it, and that's it
&lt;br&gt;&amp;nbsp;&amp;gt; (i.e. the customizer is in charge of closing the window,
&lt;br&gt;&amp;nbsp;&amp;gt; providing any buttons and other widgets to do its job, etc.).
&lt;br&gt;&lt;br&gt;You can do it for direct editing of the bean.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; But because there's that little bit about
&lt;br&gt;&amp;nbsp;&amp;gt; instantiating a Customizer &amp;quot;inside an AWT dialog **_OR PANEL_**&amp;quot;,
&lt;br&gt;&amp;nbsp;&amp;gt; suddenly things get more complicated. &amp;nbsp;If my Customizer is embedded
&lt;br&gt;&amp;nbsp;&amp;gt; inside a panel alongside, say, another customizer that is embedded
&lt;br&gt;&amp;nbsp;&amp;gt; inside the same panel, then it would be /nice/ not to, say, duplicate
&lt;br&gt;&amp;nbsp;&amp;gt; button bars.
&lt;br&gt;&lt;br&gt;The specification says that a customizer may choose to include property 
&lt;br&gt;editors, but it does not say that it can include other customizers.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; And finally, you, as the specification maintainer,
&lt;br&gt;&amp;nbsp;&amp;gt; are claiming that the tool should provide all buttons,
&lt;br&gt;&amp;nbsp;&amp;gt; not the Customizer (which I see no evidence for in the specification
&lt;br&gt;&amp;nbsp;&amp;gt; --so now I'm /really/ confused).
&lt;br&gt;&lt;br&gt;I agree that the specification is not obvious here,
&lt;br&gt;but we can't ask the author (Graham Hamilton) because he left Sun.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Does that help you understand why I'm writing
&lt;br&gt;&amp;nbsp;&amp;gt; for specification clarification?
&lt;br&gt;&lt;br&gt;I understood. But we should not add something that can break
&lt;br&gt;existing tools because of backward compatibility.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;SAM
&lt;br&gt;&lt;br&gt;Laird Nelson wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I have been thinking about this more, and here is as concise a summary 
&lt;br&gt;&amp;gt; as I can present, with quotes from the specification. &amp;nbsp;The subject of 
&lt;br&gt;&amp;gt; this summary is Customizers , not PropertyEditors.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The specification says:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For example, we would like to allow component writers to provide 
&lt;br&gt;&amp;gt; customization &amp;quot;wizards&amp;quot; that guide users through the different steps of 
&lt;br&gt;&amp;gt; customizing a bean, rather than simply facing them with property sheet 
&lt;br&gt;&amp;gt; choices. &amp;nbsp;We therefore allow each Java Bean to be accompanied by a 
&lt;br&gt;&amp;gt; customizer class that controls the customization of the bean. This 
&lt;br&gt;&amp;gt; customizer class should be an AWT component that can be run to customize 
&lt;br&gt;&amp;gt; a target bean. It can provide ** _whatever GUI behaviour it wishes_** to 
&lt;br&gt;&amp;gt; control the customization of the target bean.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; And:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; **_Normally_** each Customizer **_will be run in a separate AWT dialog 
&lt;br&gt;&amp;gt; window _**. The customizer **_has complete discretion how it chooses to 
&lt;br&gt;&amp;gt; represent itself_**, and may redraw its appearance as the user 
&lt;br&gt;&amp;gt; navigates/moves through different stages of customization.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; And then on page 87 it says (additionally):
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; A customizer class provides a complete custom GUI for customizing a 
&lt;br&gt;&amp;gt; target Java Bean. &amp;nbsp;Each customizer should inherit from the 
&lt;br&gt;&amp;gt; java.awt.Component class so it can be instantiated inside an AWT dialog 
&lt;br&gt;&amp;gt; ** _or panel_**.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So a Customizer is a non-Window Component that &amp;quot;provides a complete 
&lt;br&gt;&amp;gt; custom GUI for customizing a target Java Bean&amp;quot;, may perform &amp;quot;whatever 
&lt;br&gt;&amp;gt; GUI behaviour it wishes&amp;quot;, &amp;quot;has complete discretion how it chooses to 
&lt;br&gt;&amp;gt; represent itself&amp;quot;, is &amp;quot;normally...run in a separate...window&amp;quot;, but may 
&lt;br&gt;&amp;gt; also be instantiated &amp;quot;inside an AWT...panel&amp;quot;.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; That /sounds/ to me like the specification wants the tool to provide the 
&lt;br&gt;&amp;gt; window, add the Customizer to it, and that's it (i.e. the customizer is 
&lt;br&gt;&amp;gt; in charge of closing the window, providing any buttons and other widgets 
&lt;br&gt;&amp;gt; to do its job, etc.). &amp;nbsp;But because there's that little bit about 
&lt;br&gt;&amp;gt; instantiating a Customizer &amp;quot;inside an AWT dialog **_OR PANEL_**&amp;quot;, 
&lt;br&gt;&amp;gt; suddenly things get more complicated. &amp;nbsp;If my Customizer is embedded 
&lt;br&gt;&amp;gt; inside a panel alongside, say, another customizer that is embedded 
&lt;br&gt;&amp;gt; inside the same panel, then it would be /nice/ not to, say, duplicate 
&lt;br&gt;&amp;gt; button bars.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; And finally, you, as the specification maintainer, are claiming that the 
&lt;br&gt;&amp;gt; tool should provide all buttons, not the Customizer (which I see no 
&lt;br&gt;&amp;gt; evidence for in the specification--so now I'm /really/ confused).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Does that help you understand why I'm writing for specification 
&lt;br&gt;&amp;gt; clarification?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (Also, is anyone else on this list? &amp;nbsp;I don't mean to monopolize it.)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Laird
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14258480.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14258479</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-10T10:25:11Z</published>
	<updated>2007-12-10T10:25:11Z</updated>
	<author>
		<name>sergey.malenkov</name>
	</author>
	<content type="html">Hi Laird,
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; I'm talking about Customizers, not PropertyEditors.
&lt;br&gt;&lt;br&gt;You said &amp;quot;I use the term Customizer, but I also mean by it the custom 
&lt;br&gt;editors returned by PropertyEditors&amp;quot;. Property editor was intended for 
&lt;br&gt;*one* property of the bean, but customizer was intended for *all* 
&lt;br&gt;properties of the bean. It is the difference. That is why the customizer 
&lt;br&gt;does not implement property editor interface. It is too hard to 
&lt;br&gt;implement methods like getAsText, paintValue and others.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt;&amp;gt; The tool that adds the customizer into separate dialog window.
&lt;br&gt;&amp;nbsp;&amp;gt;&amp;gt; I think it should be a part of a tool's framework.
&lt;br&gt;&amp;nbsp;&amp;gt; What?! &amp;nbsp;Really? &amp;nbsp;Wow...
&lt;br&gt;&lt;br&gt;8)
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Could you tell me which buttons, therefore, a
&lt;br&gt;&amp;nbsp;&amp;gt; tool is guaranteed--and required--to provide?
&lt;br&gt;&lt;br&gt;It depends on a tool.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Is &amp;quot;Apply&amp;quot; one of them?
&lt;br&gt;&lt;br&gt;You can call it &amp;quot;OK&amp;quot;.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Is it localized?
&lt;br&gt;&lt;br&gt;It depends on a tool.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What does it do?
&lt;br&gt;&lt;br&gt;It sets all properties of the bean.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; How does it do it?
&lt;br&gt;&lt;br&gt;It copies them from the bean's copy.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Could you give me an example of a specification-compliant tool
&lt;br&gt;&amp;nbsp;&amp;gt; that provides an &amp;quot;Apply&amp;quot; button when it launches a Customizer?
&lt;br&gt;&lt;br&gt;No. You should contact with NetBeans team for details.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What about Next and Previous buttons?
&lt;br&gt;&lt;br&gt;Why you need these buttons?
&lt;br&gt;For customizer-specific behavior?
&lt;br&gt;So they should be inside the customizer.
&lt;br&gt;&lt;br&gt;Do you want to mix Ok/Cancel buttons with Next/Previous ones?
&lt;br&gt;It is impossible in current specification.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; How on earth does the tool know what my Customizer is going to do?
&lt;br&gt;&lt;br&gt;The customizer changes the state of the object
&lt;br&gt;that is set with the setObject method.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Please reference the area of the specification where you believe
&lt;br&gt;&amp;nbsp;&amp;gt; that Customizers must work on a copy of the bean.
&lt;br&gt;&lt;br&gt;I agreed. It is not specified.
&lt;br&gt;But it is specified for property editors.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; With respect, I don't see how you can reconcile your thought here
&lt;br&gt;&amp;nbsp;&amp;gt; (&amp;quot;customizers should not provide own buttons&amp;quot;) with the (fairly
&lt;br&gt;&amp;nbsp;&amp;gt; explicit) statement in the specification (&amp;quot;The customizer has complete
&lt;br&gt;&amp;nbsp;&amp;gt; discretion how it chooses to represent itself&amp;quot;).
&lt;br&gt;&lt;br&gt;I mean the Ok/Cancel buttons.
&lt;br&gt;You can add Next/Previous button into the customizer.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Which buttons will the tool supply?
&lt;br&gt;&lt;br&gt;It depends on a tool.
&lt;br&gt;The customizer can be added into the panel to direct editing.
&lt;br&gt;So the Ok/Cancel buttons are not necessary.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Why aren't they in the specification?
&lt;br&gt;&lt;br&gt;Because it is a tool's behaviour.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What will they do?
&lt;br&gt;&lt;br&gt;It depends on a tool.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Will they be localized?
&lt;br&gt;&lt;br&gt;It depends on a tool.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; How will my Customizer know when one button has been pressed instead 
&lt;br&gt;of another?
&lt;br&gt;&lt;br&gt;The customizer should not know about it.
&lt;br&gt;It should change the state of the object
&lt;br&gt;that is set with the setObject method.
&lt;br&gt;Nothing else.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Will that button set be the same from tool to tool?
&lt;br&gt;&lt;br&gt;No.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; If you're right, and Customizers must not supply their own buttons,
&lt;br&gt;&amp;nbsp;&amp;gt; what buttons will a specification-compliant tool supply instead
&lt;br&gt;&amp;nbsp;&amp;gt; when that tool launches a component-writer-supplied Customizer?
&lt;br&gt;&lt;br&gt;The specification says nothing about buttons.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; If the tool must supply certain buttons (as you state (and I think
&lt;br&gt;&amp;nbsp;&amp;gt; you're quite wrong :-))), why are they not spelled out in the
&lt;br&gt;&amp;nbsp;&amp;gt; specification, if that is indeed the specification's intention?
&lt;br&gt;&lt;br&gt;The tool should decide how to use the customizer.
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Could you provide a list of such buttons, and indicate
&lt;br&gt;&amp;nbsp;&amp;gt; which are required and which are optional?
&lt;br&gt;&lt;br&gt;No. It depends on a tool.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Stay tuned,
&lt;br&gt;SAM
&lt;br&gt;&lt;br&gt;&lt;br&gt;Laird Nelson wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Dec 10, 2007 6:29 AM, Sergey Malenkov &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14258479&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Sergey.Malenkov@...&lt;/a&gt; 
&lt;br&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14258479&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Sergey.Malenkov@...&lt;/a&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; The JavaBeans specification says that the property editor should not
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; directly change the property of the object (section 9.2.4). So it is not
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; a problem in the correct implementation.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm talking about Customizers, not PropertyEditors. &amp;nbsp;Customizers have no 
&lt;br&gt;&amp;gt; requirement to work on a copy of the bean. &amp;nbsp;Section 9.2 and following 
&lt;br&gt;&amp;gt; deal with PropertyEditors; section 9.3 and following deal with Customizers.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; If a Customizer does not provide its own buttons, then who would
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; add, for example, an &amp;quot;Apply&amp;quot; button (whose action is supposed to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; commit the edits made in the window so far)?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; The tool that adds the customizer into separate dialog window.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; I think it should be a part of a tool's framework.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; What?! &amp;nbsp;Really? &amp;nbsp;Wow. &amp;nbsp;Could you tell me which buttons, therefore, a 
&lt;br&gt;&amp;gt; tool is guaranteed--and required--to provide? &amp;nbsp;Is &amp;quot;Apply&amp;quot; one of them? &amp;nbsp;
&lt;br&gt;&amp;gt; Is it localized? &amp;nbsp;What does it do? &amp;nbsp;How does it do it? &amp;nbsp;Could you give 
&lt;br&gt;&amp;gt; me an example of a specification-compliant tool that provides an &amp;quot;Apply&amp;quot; 
&lt;br&gt;&amp;gt; button when it launches a Customizer? &amp;nbsp;What about Next and Previous 
&lt;br&gt;&amp;gt; buttons? &amp;nbsp;How on earth does the tool know what my Customizer is going to 
&lt;br&gt;&amp;gt; do?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Remember, we're talking about Customizers, not PropertyEditors!
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; How would the tool, if it supplies the button, know how to hook
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; this up in an appropriate way to a Customizer?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; The tool creates a copy of the bean and allows editing. 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Oops; you are talking about PropertyEditors. &amp;nbsp;There is no such 
&lt;br&gt;&amp;gt; requirement for Customizers (only for PropertyEditors). &amp;nbsp;Please 
&lt;br&gt;&amp;gt; reference the area of the specification where you believe that 
&lt;br&gt;&amp;gt; Customizers must work on a copy of the bean--I couldn't find such a 
&lt;br&gt;&amp;gt; reference.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; To apply changes the new value of the property
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; should be set from the bean's copy.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; No, there is no requirement for a Customizer to work on a copy of a bean 
&lt;br&gt;&amp;gt; that I'm aware of.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; What I'm really trying to figure out is that the specification says:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The customizer has
&lt;br&gt;&amp;gt; _complete discretion how it chooses to represent itself_, and may redraw 
&lt;br&gt;&amp;gt; its appearance as the
&lt;br&gt;&amp;gt; user navigates/moves through different stages of customization.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ...but you say:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; _I think customizers should not
&lt;br&gt;&amp;gt; provide own buttons_. The external tool can provide common dialog with
&lt;br&gt;&amp;gt; button bar that supports cancelling, or dialog with bar for direct
&lt;br&gt;&amp;gt; editing
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; With respect, I don't see how you can reconcile your thought here 
&lt;br&gt;&amp;gt; (&amp;quot;customizers should not provide own buttons&amp;quot;) with the (fairly 
&lt;br&gt;&amp;gt; explicit) statement in the specification (&amp;quot;The customizer has complete 
&lt;br&gt;&amp;gt; discretion how it chooses to represent itself&amp;quot;).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (But suppose you're right, which I am certain you are not :-), and the 
&lt;br&gt;&amp;gt; specification really meant to say that the tool may be relied upon to 
&lt;br&gt;&amp;gt; supply certain buttons. &amp;nbsp;Here are my questions that would follow from 
&lt;br&gt;&amp;gt; this interpretation:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Which buttons will the tool supply? &amp;nbsp;Why aren't they in the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; specification?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * What will they do?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Will they be localized?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * How will my Customizer know when one button has been pressed
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; instead of another?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Will that button set be the same from tool to tool?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I don't think this is what the specification intended at all.)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; The example given in the specification says that wizards are good
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; examples of Customizers. &amp;nbsp;But what does a buttonless wizard look
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; like? &amp;nbsp;Are wizards actually not good examples of Customizers?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; It is a good example. The wizard should contain the customizer component
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; to edit a copy of some bean and the buttons to apply or cancel changes.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This sounds to me like you think &amp;quot;the wizard&amp;quot; is something that the 
&lt;br&gt;&amp;gt; /tool /supplies to &amp;quot;contain the customizer component to edit a copy of 
&lt;br&gt;&amp;gt; some bean&amp;quot;, but of course (a) the wizard as mentioned in the 
&lt;br&gt;&amp;gt; specification is supplied entirely by the component writer, not the tool 
&lt;br&gt;&amp;gt; and (b) Customizers do not have to be supplied with copies of beans.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The specification says this:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For example, we would like to allow _component writers to provide
&lt;br&gt;&amp;gt; customization &amp;quot;wizards&amp;quot;_ that guide users through the different steps of 
&lt;br&gt;&amp;gt; customizing a bean,
&lt;br&gt;&amp;gt; rather than simply facing them with property sheet choices.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; That tells me unequivocally that a wizard is something that a component 
&lt;br&gt;&amp;gt; writer supplies. &amp;nbsp;And since the specification also says this:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The customizer has
&lt;br&gt;&amp;gt; _complete discretion how it chooses to represent itself_, and may redraw 
&lt;br&gt;&amp;gt; its appearance as the
&lt;br&gt;&amp;gt; user navigates/moves through different stages of customization.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ...then it simply follows that a &amp;quot;customization 'wizard'&amp;quot; has &amp;quot;complete 
&lt;br&gt;&amp;gt; discretion how it chooses to represent itself&amp;quot;, i.e. that it supplies 
&lt;br&gt;&amp;gt; its own buttons.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; But /you're/ saying that Customizers must not provide their own buttons?
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; So the customizer should not extend the Window class and subclasses.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks; that is helpful. &amp;nbsp;Please consider amending the specification to 
&lt;br&gt;&amp;gt; explicitly spell this out.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Suppose as a tool author I want my tool to provide the ability to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; batch up and defer edits and then apply them, when the user
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; requests it, to the Object that was set on the Customizer.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; How would I accomplish this in a user-friendly way without my
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Customizer providing buttons, or without my Customizer indicating
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; in a specification-guided way how the tool should apply buttons?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Provide a copy of the bean to edit.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; The specification does not recommend direct changes.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; See details in the section 9.2.4.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Section 9.2.4 deals with PropertyEditors, not Customizers. &amp;nbsp;I'm aware of 
&lt;br&gt;&amp;gt; the requirement for PropertyEditors that you need to edit a copy. &amp;nbsp;There 
&lt;br&gt;&amp;gt; is no such requirement for Customizers.
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; I don't think that suggested algorithm should be specified,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; because it is not backward compatible. 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Which part? &amp;nbsp;I see from reading ahead you mean the &amp;quot;if the customizer is 
&lt;br&gt;&amp;gt; a Window subclass&amp;quot; part--do you mean any other part?
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; If some old tool like NetBeans get the Window subclass
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; it will be broken, because unexpected exception is thrown.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Sure; thanks.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So, my questions still stand:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * If you're right, and Customizers must not supply their own
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; buttons, what buttons will a specification-compliant tool supply
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; instead when that tool launches a component-writer-supplied
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Customizer?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * If the tool must supply certain buttons (as you state (and I think
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; you're quite wrong :-))), why are they not spelled out in the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; specification, if that is indeed the specification's intention? 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Could you provide a list of such buttons, and indicate which are
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; required and which are optional?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks for the discussion,
&lt;br&gt;&amp;gt; Laird
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14258479.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14255257</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-10T07:39:21Z</published>
	<updated>2007-12-10T07:39:21Z</updated>
	<author>
		<name>ljnelson</name>
	</author>
	<content type="html">I have been thinking about this more, and here is as concise a summary as I can present, with quotes from the specification.&amp;nbsp; The subject of this summary is &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers&lt;/span&gt;
, not &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;.&lt;br&gt;&lt;br&gt;The specification says:&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;For example, we would like to allow component writers to provide customization &quot;wizards&quot; that guide users through the different steps of customizing a bean, rather than simply facing them with property sheet choices.&amp;nbsp; We therefore allow each Java Bean to be accompanied by a customizer class that controls the customization of the bean. This customizer class should be an AWT component that can be run to customize a target bean. It can provide **
&lt;u&gt;whatever GUI behaviour it wishes&lt;/u&gt;** to control the customization of the target bean.&lt;br&gt;&lt;/div&gt;&lt;br&gt;And:&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;**&lt;u&gt;Normally&lt;/u&gt;** each Customizer **&lt;u&gt;will be run in a separate AWT dialog window
&lt;/u&gt;**. The customizer **&lt;u&gt;has complete discretion how it chooses to represent itself&lt;/u&gt;**, and may redraw its appearance as the user navigates/moves through different stages of customization.&lt;br&gt;&lt;/div&gt;&lt;br&gt;And then on page 87 it says (additionally):
&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;A customizer class provides a complete custom GUI for customizing a target Java Bean.&amp;nbsp; Each customizer should inherit from the java.awt.Component class so it can be instantiated inside an AWT dialog **
&lt;u&gt;or panel&lt;/u&gt;**.&lt;br&gt;&lt;/div&gt;&lt;br&gt;So a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is a non-&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window Component &lt;/span&gt;that &amp;quot;provides a complete custom GUI for customizing a target Java Bean&amp;quot;, may perform &amp;quot;whatever GUI behaviour it wishes&amp;quot;, &amp;quot;has complete discretion how it chooses to represent itself&amp;quot;, is &amp;quot;normally...run in a separate...window&amp;quot;, but may also be instantiated &amp;quot;inside an AWT...panel&amp;quot;.
&lt;br&gt;&lt;br&gt;That &lt;i&gt;sounds&lt;/i&gt; to me like the specification wants the tool to provide the window, add the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;to it, and that&amp;#39;s it (i.e. the customizer is in charge of closing the window, providing any buttons and other widgets to do its job, etc.).&amp;nbsp; But because there&amp;#39;s that little bit about instantiating a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;&amp;quot;inside an AWT dialog **&lt;u&gt;OR PANEL&lt;/u&gt;**&amp;quot;, suddenly things get more complicated.&amp;nbsp; If my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer 
&lt;/span&gt;is embedded inside a panel alongside, say, another customizer that is embedded inside the same panel, then it would be &lt;i&gt;nice&lt;/i&gt; not to, say, duplicate button bars.&lt;br&gt;&lt;br&gt;And finally, you, as the specification maintainer, are claiming that the tool should provide all buttons, not the 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;(which I see no evidence for in the specification--so now I&amp;#39;m &lt;i&gt;really&lt;/i&gt; confused).&lt;br&gt;&lt;br&gt;Does that help you understand why I&amp;#39;m writing for specification clarification?
&lt;br&gt;&lt;br&gt;(Also, is anyone else on this list?&amp;nbsp; I don&amp;#39;t mean to monopolize it.)&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;Laird&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14255257.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14254177</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-10T06:42:09Z</published>
	<updated>2007-12-10T06:42:09Z</updated>
	<author>
		<name>ljnelson</name>
	</author>
	<content type="html">On Dec 10, 2007 6:29 AM, Sergey Malenkov &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14254177&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Sergey.Malenkov@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
The JavaBeans specification says that the property editor should not&lt;br&gt;directly change the property of the object (section 9.2.4). So it is not&lt;br&gt;a problem in the correct implementation.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;I&amp;#39;m talking about 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers&lt;/span&gt;, not &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;.&amp;nbsp; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;have no requirement to work on a copy of the bean.&amp;nbsp; Section 
9.2 and following deal with &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;; section 9.3 and following deal with &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers&lt;/span&gt;.&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;nbsp;&amp;gt; If a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer 
&lt;/span&gt;does not provide its own buttons, then who would&lt;br&gt;&amp;nbsp;&amp;gt; add, for example, an &amp;quot;Apply&amp;quot; button (whose action is supposed to&lt;br&gt;&amp;nbsp;&amp;gt; commit the edits made in the window so far)?&lt;br&gt;&lt;/div&gt;&lt;br&gt;The tool that adds the customizer into separate dialog window.
&lt;br&gt;I think it should be a part of a tool&amp;#39;s framework.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;What?!&amp;nbsp; Really?&amp;nbsp; Wow.&amp;nbsp; Could you tell me which buttons, therefore, a tool is guaranteed--and required--to provide?&amp;nbsp; Is &amp;quot;Apply&amp;quot; one of them?&amp;nbsp; Is it localized?&amp;nbsp; What does it do?&amp;nbsp; How does it do it?&amp;nbsp; Could you give me an example of a specification-compliant tool that provides an &amp;quot;Apply&amp;quot; button when it launches a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;?&amp;nbsp; What about Next and Previous buttons?&amp;nbsp; How on earth does the tool know what my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is going to do?
&lt;br&gt;&lt;br&gt;Remember, we&amp;#39;re talking about &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers&lt;/span&gt;, not &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;!&lt;br&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;nbsp;&amp;gt; How would the tool, if it supplies the button, know how to hook&lt;br&gt;&amp;nbsp;&amp;gt; this up in an appropriate way to a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;?&lt;br&gt;&lt;br&gt;&lt;/div&gt;The tool creates a copy of the bean and allows editing.
&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Oops; you are talking about &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;.&amp;nbsp; There is no such requirement for &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;
(only for &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;).&amp;nbsp; Please reference the area of the specification where you believe that &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;
must work on a copy of the bean--I couldn&amp;#39;t find such a reference.&lt;br&gt; &lt;br&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;To apply changes the new value of the property
&lt;br&gt;should be set from the bean&amp;#39;s copy.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;No, there is no requirement for a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;to work on a copy of a bean that I&amp;#39;m aware of.&lt;br&gt;
&lt;br&gt;What I&amp;#39;m really trying to figure out is that the specification says:&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;The customizer has&lt;br&gt;&lt;u&gt;complete discretion how it chooses to represent itself&lt;/u&gt;, and may redraw its appearance as the
&lt;br&gt;user navigates/moves through different stages of customization.&lt;br&gt;&lt;/div&gt;&lt;br&gt;...but you say:&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;&lt;u&gt;I think customizers should not&lt;br&gt;provide own buttons&lt;/u&gt;. The external tool can provide common dialog with
&lt;br&gt;button bar that supports cancelling, or dialog with bar for direct&lt;br&gt;editing&lt;br&gt;&lt;/div&gt;&lt;br&gt;With respect, I don&amp;#39;t see how you can reconcile your thought here (&amp;quot;customizers should not provide own buttons&amp;quot;) with the (fairly explicit) statement in the specification (&amp;quot;The customizer has complete discretion how it chooses to represent itself&amp;quot;).
&lt;br&gt;&lt;br&gt;(But suppose you&amp;#39;re right, which I am certain you are not &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;:-)&lt;/span&gt;, and the specification really meant to say that the tool may be relied upon to supply certain buttons.&amp;nbsp; Here are my questions that would follow from this interpretation:
&lt;br&gt;&lt;ul&gt;&lt;li&gt;Which buttons will the tool supply?&amp;nbsp; Why aren&amp;#39;t they in the specification?&lt;br&gt;&lt;/li&gt;&lt;li&gt;What will they do?&lt;/li&gt;&lt;li&gt;Will they be localized?&lt;/li&gt;&lt;li&gt;How will my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer&lt;/span&gt; know when one button has been pressed instead of another?&lt;/li&gt;&lt;li&gt;Will that button set be the same from tool to tool?&lt;/li&gt;&lt;/ul&gt;I don&amp;#39;t think this is what the specification intended at all.)&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;nbsp;&amp;gt; The example given in the specification says that wizards are good&lt;br&gt;
&lt;/div&gt;&amp;nbsp;&amp;gt; examples of &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers&lt;/span&gt;. &amp;nbsp;But what does a buttonless wizard look&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;nbsp;&amp;gt; like? &amp;nbsp;Are wizards actually not good examples of &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizers&lt;/span&gt;?&lt;br&gt;&lt;br&gt;&lt;/div&gt;It is a good example. The wizard should contain the customizer component&lt;br&gt;to edit a copy of some bean and the buttons to apply or cancel changes.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;This sounds to me like you think &amp;quot;the wizard&amp;quot; is something that the 
&lt;i&gt;tool &lt;/i&gt;supplies to &amp;quot;contain the customizer component to edit a copy of some bean&amp;quot;, but of course (a) the wizard as mentioned in the specification is supplied entirely by the component writer, not the tool and (b) 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;do not have to be supplied with copies of beans.&lt;br&gt;&lt;br&gt;The specification says this:&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;For example, we would like to allow 
&lt;u&gt;component writers to provide&lt;br&gt;customization &quot;wizards&quot;&lt;/u&gt; that guide users through the different steps of customizing a bean,&lt;br&gt;rather than simply facing them with property sheet choices.&lt;br&gt;&lt;/div&gt;&lt;br&gt;That tells me unequivocally that a wizard is something that a component writer supplies.&amp;nbsp; And since the specification also says this:
&lt;br&gt;&lt;br&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;The customizer has&lt;br&gt;&lt;u&gt;complete discretion how it chooses to represent itself&lt;/u&gt;, and may redraw its appearance as the&lt;br&gt;
user navigates/moves through different stages of customization.&lt;br&gt;&lt;/div&gt;
&lt;br&gt;...then it simply follows that a &amp;quot;customization &amp;#39;wizard&amp;#39;&amp;quot; has &amp;quot;complete discretion how it chooses to represent itself&amp;quot;, i.e. that it supplies its own buttons.&lt;br&gt;&lt;br&gt;But &lt;i&gt;you&amp;#39;re&lt;/i&gt; saying that 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers&lt;span style=&quot;font-family: arial,helvetica,sans-serif;&quot;&gt; must not&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: arial,helvetica,sans-serif;&quot;&gt; &lt;/span&gt;provide their own buttons?
&lt;br&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;So the customizer should not extend the Window class and subclasses.&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Thanks; that is helpful.&amp;nbsp; Please consider amending the specification to explicitly spell this out.&lt;br&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;nbsp;&amp;gt; Suppose as a tool author I want my tool to provide the ability to&lt;br&gt;&amp;nbsp;&amp;gt; batch up and defer edits and then apply them, when the user&lt;br&gt;&amp;nbsp;&amp;gt; requests it, to the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Object &lt;/span&gt;that was set on the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;.&lt;br&gt;&amp;nbsp;&amp;gt; How would I accomplish this in a user-friendly way without my&lt;br&gt;&amp;nbsp;&amp;gt; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer &lt;/span&gt;providing buttons, or without my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;indicating&lt;br&gt;&amp;nbsp;&amp;gt; in a specification-guided way how the tool should apply buttons?&lt;br&gt;&lt;br&gt;&lt;/div&gt;Provide a copy of the bean to edit.
&lt;br&gt;The specification does not recommend direct changes.&lt;br&gt;See details in the section 9.2.4.&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Section 9.2.4 deals with &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;, not &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizers&lt;/span&gt;.&amp;nbsp; I&amp;#39;m aware of the requirement for &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors &lt;/span&gt;that you need to edit a copy.&amp;nbsp; There is no such requirement for &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizers&lt;/span&gt;.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;I don&amp;#39;t think that suggested algorithm should be specified,
&lt;br&gt;because it is not backward compatible.&amp;nbsp;&lt;br&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Which part?&amp;nbsp; I see from reading ahead you mean the &amp;quot;if the customizer is a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;span style=&quot;font-family: arial,helvetica,sans-serif;&quot;&gt;
 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: arial,helvetica,sans-serif;&quot;&gt;su&lt;/span&gt;bclass&amp;quot; part--do you mean any other part?&lt;br&gt;&amp;nbsp;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
If some old tool like NetBeans get the Window subclass&lt;br&gt;it will be broken, because unexpected exception is thrown.&lt;br&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;Sure; thanks.&lt;br&gt;&lt;br&gt;So, my questions still stand:&lt;br&gt;&lt;ul&gt;&lt;li&gt;If you&amp;#39;re right, and 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;must not supply their own buttons, what buttons will a specification-compliant tool supply instead when that tool launches a component-writer-supplied &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer&lt;/span&gt;?&lt;/li&gt;&lt;li&gt;If the tool must supply certain buttons (as you state (and I think you&amp;#39;re quite wrong &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;:-)&lt;/span&gt;)), why are they not spelled out in the specification, if that is indeed the specification&amp;#39;s intention?&amp;nbsp; Could you provide a list of such buttons, and indicate which are required and which are optional?
&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;Thanks for the discussion,&lt;br&gt;Laird&lt;/div&gt;&lt;/div&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14254177.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14251299</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-10T03:29:51Z</published>
	<updated>2007-12-10T03:29:51Z</updated>
	<author>
		<name>sergey.malenkov</name>
	</author>
	<content type="html">Hi Laird,
&lt;br&gt;&lt;br&gt;The JavaBeans specification says that the property editor should not 
&lt;br&gt;directly change the property of the object (section 9.2.4). So it is not 
&lt;br&gt;a problem in the correct implementation.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; If a Customizer does not provide its own buttons, then who would
&lt;br&gt;&amp;nbsp;&amp;gt; add, for example, an &amp;quot;Apply&amp;quot; button (whose action is supposed to
&lt;br&gt;&amp;nbsp;&amp;gt; commit the edits made in the window so far)?
&lt;br&gt;&lt;br&gt;The tool that adds the customizer into separate dialog window.
&lt;br&gt;I think it should be a part of a tool's framework.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; How would the tool, if it supplies the button, know how to hook
&lt;br&gt;&amp;nbsp;&amp;gt; this up in an appropriate way to a Customizer?
&lt;br&gt;&lt;br&gt;The tool creates a copy of the bean and allows editing.
&lt;br&gt;To apply changes the new value of the property
&lt;br&gt;should be set from the bean's copy.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; The example given in the specification says that wizards are good
&lt;br&gt;&amp;nbsp;&amp;gt; examples of Customizers. &amp;nbsp;But what does a buttonless wizard look
&lt;br&gt;&amp;nbsp;&amp;gt; like? &amp;nbsp;Are wizards actually not good examples of Customizers?
&lt;br&gt;&lt;br&gt;It is a good example. The wizard should contain the customizer component
&lt;br&gt;to edit a copy of some bean and the buttons to apply or cancel changes.
&lt;br&gt;Values of the bean should be set when apply button is pressed.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; It sounds like what you are saying is that the contract really is
&lt;br&gt;&amp;nbsp;&amp;gt; that a Customizer/custom editor should be a /non- Window/
&lt;br&gt;&amp;nbsp;&amp;gt; Component subclass. &amp;nbsp;Is that correct? &amp;nbsp;Should the specification be
&lt;br&gt;&amp;nbsp;&amp;gt; amended to clarify this?
&lt;br&gt;&lt;br&gt;Specification says that the customizer (or property editor component)
&lt;br&gt;will be added into property sheet panel or dialog window.
&lt;br&gt;But our window framework does not allow to add window into container:
&lt;br&gt;The IllegalArgumentException is thrown.
&lt;br&gt;So the customizer should not extend the Window class and subclasses.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; You say that the tool is responsible for editing properties.
&lt;br&gt;&lt;br&gt;Sure.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; Suppose as a tool author I want my tool to provide the ability to
&lt;br&gt;&amp;nbsp;&amp;gt; batch up and defer edits and then apply them, when the user
&lt;br&gt;&amp;nbsp;&amp;gt; requests it, to the Object that was set on the Customizer.
&lt;br&gt;&amp;nbsp;&amp;gt; How would I accomplish this in a user-friendly way without my
&lt;br&gt;&amp;nbsp;&amp;gt; Customizer providing buttons, or without my Customizer indicating
&lt;br&gt;&amp;nbsp;&amp;gt; in a specification-guided way how the tool should apply buttons?
&lt;br&gt;&lt;br&gt;Provide a copy of the bean to edit.
&lt;br&gt;The specification does not recommend direct changes.
&lt;br&gt;See details in the section 9.2.4.
&lt;br&gt;&lt;br&gt;&lt;br&gt;I don't think that suggested algorithm should be specified,
&lt;br&gt;because it is not backward compatible.
&lt;br&gt;If some old tool like NetBeans get the Window subclass
&lt;br&gt;it will be broken, because unexpected exception is thrown.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;SAM
&lt;br&gt;&lt;br&gt;Laird Nelson wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Thanks so much for your answers. &amp;nbsp;For the record I agree with you that 
&lt;br&gt;&amp;gt; Customizers should not provide their own buttons, but many problems do 
&lt;br&gt;&amp;gt; result from this (that could easily be solved with a couple of 
&lt;br&gt;&amp;gt; backwards-compatible specification clarifications).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For example:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * If a Customizer does not provide its own buttons, then who would
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; add, for example, an &amp;quot;Apply&amp;quot; button (whose action is supposed to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; commit the edits made in the window so far)? &amp;nbsp;How would the tool,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if it supplies the button, know how to hook this up in an
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; appropriate way to a Customizer?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * The example given in the specification says that wizards are good
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; examples of Customizer s. &amp;nbsp;But what does a buttonless wizard look
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; like? &amp;nbsp;Are wizards actually not good examples of Customizers? &amp;nbsp;If
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; not, then why did the specification say they are? &amp;nbsp;This example is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; why I said that I suspected that someone had some thoughts in mind
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; on these issues (Graham Hamilton?) and just never wrote them down.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * It sounds like what you are saying is that the contract really is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; that a Customizer/custom editor should be a /non- Window/
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component subclass. &amp;nbsp;Is that correct? &amp;nbsp;Should the specification be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; amended to clarify this?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * You say that the tool is responsible for editing properties. 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Suppose as a tool author I want my tool to provide the ability to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; batch up and defer edits and then apply them, when the user
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; requests it, to the Object that was set on the Customizer. &amp;nbsp;How
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; would I accomplish this in a user-friendly way without my
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Customizer providing buttons, or without my Customizer indicating
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; in a specification-guided way how the tool should apply buttons?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For what it's worth (almost assuredly nothing) I would prefer a 
&lt;br&gt;&amp;gt; backwards-compatible way to allow a Customizer component to indicate 
&lt;br&gt;&amp;gt; that, effectively, it wishes to function as the contentPane (or sole 
&lt;br&gt;&amp;gt; occupant of the contentPane) of a Window, or not, and if it does not, 
&lt;br&gt;&amp;gt; then I would like a specification-defined way for that Customizer to 
&lt;br&gt;&amp;gt; indicate that it has certain Actions that should be wired up to a 
&lt;br&gt;&amp;gt; tool-supplied button bar. &amp;nbsp;I propose a solution below.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I've written all my Customizer-supporting tools to follow the following 
&lt;br&gt;&amp;gt; algorithm (in the case of what the spec refers to as &amp;quot;popping up&amp;quot; in a 
&lt;br&gt;&amp;gt; Window, as opposed to the &amp;quot;embedding&amp;quot; case) because I believe that the 
&lt;br&gt;&amp;gt; specification is very deficient in this area (I have another algorithm 
&lt;br&gt;&amp;gt; for the embedded case). &amp;nbsp;Also, I use the term Customizer, but I also 
&lt;br&gt;&amp;gt; mean by it the custom editors returned by PropertyEditors.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;1. If the Customizer is null, throw an appropriate Exception.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;2. If the Customizer is a Window, pack() it and show() it directly. &amp;nbsp;End.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;3. (TODO: handle Applet case)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;4. If the Customizer is a JComponent and we haven't handled it in the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; steps above:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1. If the Customizer is a JInternalFrame and the tool is
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; launching it from &amp;quot;within&amp;quot; a JDesktopPane, pack() and show()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; it directly. &amp;nbsp;End.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2. If the Customizer has indicated in some way (currently via a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; boolean client property &amp;quot;contentPane&amp;quot;) that it wishes to be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the sole citizen (as much as possible) of a Window, then add
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; it to a new tool-supplied Window, pack() it, and show() it. 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3. If the Customizer has an &amp;quot; applyChanges&amp;quot; Action in its
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ActionMap, or an applyChangesAction JavaBeans property:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1. Create an Action that will close the Window (call it
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the Close Action).
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2. See if the Customizer has a &amp;quot;cancel &amp;quot; Action. &amp;nbsp;If it
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; does, create a JButton (the Cancel button) that fires
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; that Action, then the Close Action. &amp;nbsp;If it does not,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; create a JButton wired to the Close Action.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3. Create a JButton wired to the applyChanges Action (the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Apply button).
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4. Create a JButton that fires the Apply Action and then
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; the Close Action . &amp;nbsp;Call this button the OK button.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5. Create an OK/Cancel/Apply button bar with the JButtons
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; created above.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6. Add the Customizer to the BorderLayout.CENTER of a new
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JPanel, and the button bar to that panel's
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BorderLayout.SOUTH.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7. Add the JPanel to the tool-supplied Window, pack() it,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; and show() it. &amp;nbsp;End.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;5. Since the Customizer is either a non- Window, non-JComponent
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Component, or a JComponent that did not get handled in step 4:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1. All we can do is add() it to the tool-supplied Window ,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pack() it and show() it. &amp;nbsp;End.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt; Laird
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Dec 7, 2007 9:51 AM, Sergey Malenkov &amp;lt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14251299&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Sergey.Malenkov@...&lt;/a&gt; 
&lt;br&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14251299&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Sergey.Malenkov@...&lt;/a&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Hi Laird,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; What implicit assumptions were there when the specification was
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; written? &amp;nbsp;What implicit unspecified contract should Customizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Components adhere to? &amp;nbsp;Should they provide their own button bars
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; silly)? &amp;nbsp;Or should they /not/ provide their own button bars?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; that provides the user a direct ability to apply or cancel changes.)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; This behavior is not specified, but I think customizers should not
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; provide own buttons. The external tool can provide common dialog with
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; button bar that supports cancelling, or dialog with bar for direct
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; editing, or put them onto special panel. It depends on the tool and if
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; we provide the customizer with button bar the tool can't use such
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; customizer properly.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; What, if any, plans exist going forward to tighten this
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; specification up a little? &amp;nbsp;Will there be any...any...annotations
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; or something to indicate to a container how a Customizer should be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; displayed? &amp;nbsp;Perhaps some kind of convention (i.e. if the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Customizer discovers that its parent has a Component named
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;quot;buttonBar&amp;quot; then...)?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; There are no any plans. The tool should decide how to edit properties.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; The tool should provide workarounds for necessary behavior.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; One kind of Component is a Window. &amp;nbsp;Is it understood (or not) that
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; if the Customizer &amp;quot;is a&amp;quot; Window it will not need to be embedded in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; any way, shape or form?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Another kind is a JInternalFrame. It is hard to decide how to show such
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; components. So the tool should provide own top-level components that use
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; the customizer or property editor. We should not restrict the tool.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Thanks,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; SAM
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Laird Nelson wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Hello; I hope this is the right place to ask this question. &amp;nbsp;I
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; originally tried to ask it of the &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14251299&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14251299&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14251299&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14251299&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; email address--the address listed in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; the Java Beans specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;lt; &lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/javabeans/docs/spec.html&lt;/a&gt;&amp;gt; as being
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; appropriate for specification questions--but it bounced. &amp;nbsp;Chet Haase
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; referred me here.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; My question concerns Customizers (which must, as well, be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Components)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; and the intention of the specification.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; The specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;lt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/javabeans/docs/spec.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;lt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/javabeans/docs/spec.html&lt;/a&gt;&amp;gt;&amp;gt; talks about
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Customizers being &amp;quot;full-fledged&amp;quot; editors that may be embedded in a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; java.awt.Panel or somehow placed into a java.awt.Window.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; It strikes me that the requirements for each of these cases are very
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; different, but are not addressed by the specification.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; For example, suppose I have a PersonCustomizer that provides
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; fields for
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; first and last name. &amp;nbsp;If I know in advance that this Component
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; will be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;quot;embedded&amp;quot; in a Panel, then from a UI perspective I would not want to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; saddle it with an Apply button, or an OK button, or, for that matter,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; really any button at all.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; On the other hand, if somehow I know that my PersonCustomizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; will be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; the only citizen of a Window, I very much would like it to have a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; system-appropriate button bar at the bottom (OK/Apply/Cancel/Help
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; etc.).
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; In both cases my Customizer would need to know when the user
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; wants his
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; changes to be applied. &amp;nbsp;Obviously if I supply my own button bar,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; I can
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; accomplish this. &amp;nbsp;But in the &amp;quot;embedding&amp;quot; case, I may not want to do
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; this. &amp;nbsp;In such a case I might want to simply provide Actions (if my
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Customizer is also a JComponent), but it may /not/ be a JComponent.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; All of this leads me to believe that the original authors of the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; specification (Graham Hamilton /et al/.) had something in mind that
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; wasn't committed to the specification.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Perhaps, for example, they had in their heads that Customizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Components
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; would always be the sole resident of a window supplied by the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; container. &amp;nbsp;Or perhaps they assumed that at the very least
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Customizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Components would always provide their own apply/cancel mechanics
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; (so it
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; would not be a &amp;quot;violation&amp;quot;, even in the embedding case, despite
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; what the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; specification suggests, for a Customizer to be embedded into a Panel
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; alongside other such Customizers with its own button bar).
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Now, NetBeans and if I recall correctly the old BeanBox and some
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; other
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Customizer-aware containers actually do embed Customizers inside a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Window of some kind (usually a JDialog ), but they also provide a
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;quot;Done&amp;quot;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; button or something similar. &amp;nbsp;That strikes me--no offense
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; intended--as
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; the /worst/ possible move: now, even if my Customizer provides
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; its own
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; button bar to manage its commits and cancels, it looks stupid,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; because
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; there's /another/ button bar supplied by the container.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; So:
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; * What implicit assumptions were there when the specification
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; was
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; written? &amp;nbsp;What implicit unspecified contract should Customizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components adhere to? &amp;nbsp;Should they provide their own button
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; bars
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; silly)? &amp;nbsp;Or should they /not/ provide their own button bars?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; that provides the user a direct ability to apply or cancel
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; changes.)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; * What, if any, plans exist going forward to tighten this
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; specification up a little? &amp;nbsp;Will there be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; any...any...annotations
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; or something to indicate to a container how a Customizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; should be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; displayed? &amp;nbsp;Perhaps some kind of convention (i.e. if the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Customizer discovers that its parent has a Component named
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;buttonBar&amp;quot; then...)?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; * One kind of Component is a Window. &amp;nbsp;Is it understood (or
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; not) that
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if the Customizer &amp;quot;is a&amp;quot; Window it will not need to be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; embedded in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; any way, shape or form?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; * These issues can (and do) also apply to the custom editors
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; returned by PropertyEditors . &amp;nbsp;Is there any reason why any
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; solution here would not reasonably apply to those cases as
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; well?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Thanks for your time,
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;gt; Laird
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14251299.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14218113</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-07T10:33:49Z</published>
	<updated>2007-12-07T10:33:49Z</updated>
	<author>
		<name>ljnelson</name>
	</author>
	<content type="html">Thanks so much for your answers.&amp;nbsp; For the record I agree with you that &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;should not provide their own buttons, but many problems do result from this (that could easily be solved with a couple of backwards-compatible specification clarifications).
&lt;br&gt;&lt;br&gt;For example:&lt;br&gt;&lt;ul&gt;&lt;li&gt;If a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;does not provide its own buttons, then who would add, for example, an &amp;quot;Apply&amp;quot; button (whose action is supposed to commit the edits made in the window so far)?&amp;nbsp; How would the tool, if it supplies the button, know how to hook this up in an appropriate way to a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;?&lt;br&gt;&lt;/li&gt;&lt;li&gt;The example given in the specification says that wizards are good examples of &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;
s.&amp;nbsp; But what does a buttonless wizard look like?&amp;nbsp; Are wizards actually not good examples of &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;s?&amp;nbsp; If not, then why did the specification say they are?&amp;nbsp; This example is why I said that I suspected that someone had some thoughts in mind on these issues (Graham Hamilton?) and just never wrote them down.
&lt;br&gt;&lt;/li&gt;&lt;li&gt;It sounds like what you are saying is that the contract really is that a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;/custom editor should be a &lt;i&gt;non-&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Window&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt; Component &lt;/span&gt;subclass.&amp;nbsp; Is that correct?&amp;nbsp; Should the specification be amended to clarify this?&lt;br&gt;&lt;/li&gt;&lt;li&gt;You say that the tool is responsible for editing properties.&amp;nbsp; Suppose as a tool author I want my tool to provide the ability to batch up and defer edits and then apply them, when the user requests it, to the 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Object &lt;/span&gt;that was set on the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;.&amp;nbsp; How would I accomplish this in a user-friendly way without my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer &lt;/span&gt;providing buttons, or without my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;indicating in a specification-guided way how the tool should apply buttons?&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;For what it&amp;#39;s worth (almost assuredly nothing) I would prefer a backwards-compatible way to allow a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;component to indicate that, effectively, it wishes to function as the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;contentPane &lt;/span&gt;(or sole occupant of the 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;contentPane&lt;/span&gt;) of a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, or not, and if it does not, then I would like a specification-defined way for that 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;to indicate that it has certain &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Actions &lt;/span&gt;that should be wired up to a tool-supplied button bar.&amp;nbsp; I propose a solution below.
&lt;br&gt;&lt;br&gt;I&amp;#39;ve written all my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;-supporting tools to follow the following algorithm (in the case of what the spec refers to as &amp;quot;popping up&amp;quot; in a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, as opposed to the &amp;quot;embedding&amp;quot; case) because I believe that the specification is very deficient in this area (I have another algorithm for the embedded case).&amp;nbsp; Also, I use the term 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;, but I also mean by it the custom editors returned by &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;.&lt;br&gt;&lt;ol&gt;&lt;li&gt;If the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer &lt;/span&gt;is &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;null&lt;/span&gt;, throw an appropriate &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Exception&lt;/span&gt;.&lt;br&gt;&lt;/li&gt;&lt;li&gt;If the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer &lt;/span&gt;is a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;pack()&lt;/span&gt; it and &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;show()&lt;/span&gt;
 it directly.&amp;nbsp; End.&lt;br&gt;&lt;/li&gt;&lt;li&gt;(TODO: handle &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Applet &lt;/span&gt;case)&lt;br&gt;&lt;/li&gt;&lt;li&gt;If the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
JComponent&lt;/span&gt; and we haven&amp;#39;t handled it in the steps above:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;If the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JInternalFrame 
&lt;/span&gt;and the tool is launching it from &amp;quot;within&amp;quot; a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JDesktopPane&lt;/span&gt;, pack() and show() it directly.&amp;nbsp; End.&lt;/li&gt;&lt;li&gt;If the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer &lt;/span&gt;has indicated in some way (currently via a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;boolean &lt;/span&gt;client property &amp;quot;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;contentPane&lt;/span&gt;&amp;quot;) that it wishes to be the sole citizen (as much as possible) of a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, then add it to a new tool-supplied &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;pack()
&lt;/span&gt; it, and &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;show()&lt;/span&gt; it.&amp;nbsp; End.&lt;/li&gt;&lt;li&gt;If the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;has an &amp;quot;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
applyChanges&lt;/span&gt;&amp;quot; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action &lt;/span&gt;in its &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;ActionMap&lt;/span&gt;, or an &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
applyChangesAction &lt;/span&gt;JavaBeans property:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Create an &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action &lt;/span&gt;that will close the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window &lt;/span&gt;(call it the Close 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action&lt;/span&gt;).&lt;br&gt;&lt;/li&gt;&lt;li&gt;See if the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;has a &amp;quot;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;cancel
&lt;/span&gt;&amp;quot; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action&lt;/span&gt;.&amp;nbsp; If it does, create a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JButton &lt;/span&gt;(the Cancel button) that fires that &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Action&lt;/span&gt;, then the Close &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action&lt;/span&gt;.&amp;nbsp; If it does not, create a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JButton &lt;/span&gt;wired to the Close &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Action&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Create a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JButton &lt;/span&gt;wired to the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;applyChanges Action&lt;/span&gt; (the Apply button).&lt;/li&gt;&lt;li&gt;Create a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JButton &lt;/span&gt;that fires the Apply &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action &lt;/span&gt;and then the Close &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Action
&lt;/span&gt;.&amp;nbsp; Call this button the OK button.&lt;/li&gt;&lt;li&gt;Create an OK/Cancel/Apply button bar with the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JButtons &lt;/span&gt;created above.&lt;/li&gt;&lt;li&gt;Add the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizer &lt;/span&gt;to the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;BorderLayout.CENTER&lt;/span&gt; of a new &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JPanel&lt;/span&gt;, and the button bar to that panel&amp;#39;s &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
BorderLayout.SOUTH&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Add the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JPanel &lt;/span&gt;to the tool-supplied &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
pack()&lt;/span&gt; it, and &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;show()&lt;/span&gt; it.&amp;nbsp; End.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Since the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is either a non-&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Window&lt;/span&gt;, non-&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JComponent&lt;/span&gt; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Component&lt;/span&gt;, or a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JComponent 
&lt;/span&gt;that did not get handled in step 4:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;All we can do is &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;add()&lt;/span&gt; it to the tool-supplied &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;
, &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;pack()&lt;/span&gt; it and &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;show()&lt;/span&gt; it.&amp;nbsp; End.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;Thanks,&lt;br&gt;Laird&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Dec 7, 2007 9:51 AM, Sergey Malenkov &amp;lt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14218113&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Sergey.Malenkov@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi Laird,
&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What implicit assumptions were there when the specification was&lt;br&gt;&amp;nbsp;&amp;gt; written? &amp;nbsp;What implicit unspecified contract should Customizer&lt;br&gt;&amp;nbsp;&amp;gt; Components adhere to? &amp;nbsp;Should they provide their own button bars
&lt;br&gt;&amp;nbsp;&amp;gt; in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just&lt;br&gt;&amp;nbsp;&amp;gt; silly)? &amp;nbsp;Or should they /not/ provide their own button bars?&lt;br&gt;&amp;nbsp;&amp;gt; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component
&lt;br&gt;&amp;nbsp;&amp;gt; that provides the user a direct ability to apply or cancel changes.)&lt;br&gt;&lt;br&gt;&lt;/div&gt;This behavior is not specified, but I think customizers should not&lt;br&gt;provide own buttons. The external tool can provide common dialog with
&lt;br&gt;button bar that supports cancelling, or dialog with bar for direct&lt;br&gt;editing, or put them onto special panel. It depends on the tool and if&lt;br&gt;we provide the customizer with button bar the tool can&amp;#39;t use such&lt;br&gt;
customizer properly.&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What, if any, plans exist going forward to tighten this&lt;br&gt;&amp;nbsp;&amp;gt; specification up a little? &amp;nbsp;Will there be any...any...annotations&lt;br&gt;&amp;nbsp;&amp;gt; or something to indicate to a container how a Customizer should be
&lt;br&gt;&amp;nbsp;&amp;gt; displayed? &amp;nbsp;Perhaps some kind of convention (i.e. if the&lt;br&gt;&amp;nbsp;&amp;gt; Customizer discovers that its parent has a Component named&lt;br&gt;&amp;nbsp;&amp;gt; &amp;quot;buttonBar&amp;quot; then...)?&lt;br&gt;&lt;br&gt;&lt;/div&gt;There are no any plans. The tool should decide how to edit properties.
&lt;br&gt;The tool should provide workarounds for necessary behavior.&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; One kind of Component is a Window. &amp;nbsp;Is it understood (or not) that&lt;br&gt;&amp;nbsp;&amp;gt; if the Customizer &amp;quot;is a&amp;quot; Window it will not need to be embedded in
&lt;br&gt;&amp;nbsp;&amp;gt; any way, shape or form?&lt;br&gt;&lt;br&gt;&lt;/div&gt;Another kind is a JInternalFrame. It is hard to decide how to show such&lt;br&gt;components. So the tool should provide own top-level components that use&lt;br&gt;the customizer or property editor. We should not restrict the tool.
&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;SAM&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&lt;br&gt;&lt;br&gt;Laird Nelson wrote:&lt;br&gt;&amp;gt; Hello; I hope this is the right place to ask this question. &amp;nbsp;I&lt;br&gt;&amp;gt; originally tried to ask it of the &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14218113&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14218113&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt;&amp;gt; email address--the address listed in&lt;br&gt;&amp;gt; the Java Beans specification&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;
http://java.sun.com/products/javabeans/docs/spec.html&lt;/a&gt;&amp;gt; as being&lt;br&gt;&lt;div class=&quot;Ih2E3d&quot;&gt;&amp;gt; appropriate for specification questions--but it bounced. &amp;nbsp;Chet Haase&lt;br&gt;&amp;gt; referred me here.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; My question concerns Customizers (which must, as well, be Components)
&lt;br&gt;&amp;gt; and the intention of the specification.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; The specification&lt;br&gt;&lt;/div&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/javabeans/docs/spec.html
&lt;/a&gt;&amp;gt; talks about&lt;br&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;Wj3C7c&quot;&gt;&amp;gt; Customizers being &amp;quot;full-fledged&amp;quot; editors that may be embedded in a&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; java.awt.Panel or somehow placed into a java.awt.Window.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; It strikes me that the requirements for each of these cases are very
&lt;br&gt;&amp;gt; different, but are not addressed by the specification.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; For example, suppose I have a PersonCustomizer that provides fields for&lt;br&gt;&amp;gt; first and last name. &amp;nbsp;If I know in advance that this Component will be
&lt;br&gt;&amp;gt; &amp;quot;embedded&amp;quot; in a Panel, then from a UI perspective I would not want to&lt;br&gt;&amp;gt; saddle it with an Apply button, or an OK button, or, for that matter,&lt;br&gt;&amp;gt; really any button at all.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; On the other hand, if somehow I know that my PersonCustomizer will be
&lt;br&gt;&amp;gt; the only citizen of a Window, I very much would like it to have a&lt;br&gt;&amp;gt; system-appropriate button bar at the bottom (OK/Apply/Cancel/Help etc.).&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; In both cases my Customizer would need to know when the user wants his
&lt;br&gt;&amp;gt; changes to be applied. &amp;nbsp;Obviously if I supply my own button bar, I can&lt;br&gt;&amp;gt; accomplish this. &amp;nbsp;But in the &amp;quot;embedding&amp;quot; case, I may not want to do&lt;br&gt;&amp;gt; this. &amp;nbsp;In such a case I might want to simply provide Actions (if my
&lt;br&gt;&amp;gt; Customizer is also a JComponent), but it may /not/ be a JComponent.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; All of this leads me to believe that the original authors of the&lt;br&gt;&amp;gt; specification (Graham Hamilton /et al/.) had something in mind that
&lt;br&gt;&amp;gt; wasn&amp;#39;t committed to the specification.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; Perhaps, for example, they had in their heads that Customizer Components&lt;br&gt;&amp;gt; would always be the sole resident of a window supplied by the&lt;br&gt;&amp;gt; container. &amp;nbsp;Or perhaps they assumed that at the very least Customizer
&lt;br&gt;&amp;gt; Components would always provide their own apply/cancel mechanics (so it&lt;br&gt;&amp;gt; would not be a &amp;quot;violation&amp;quot;, even in the embedding case, despite what the&lt;br&gt;&amp;gt; specification suggests, for a Customizer to be embedded into a Panel
&lt;br&gt;&amp;gt; alongside other such Customizers with its own button bar).&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; Now, NetBeans and if I recall correctly the old BeanBox and some other&lt;br&gt;&amp;gt; Customizer-aware containers actually do embed Customizers inside a
&lt;br&gt;&amp;gt; Window of some kind (usually a JDialog ), but they also provide a &amp;quot;Done&amp;quot;&lt;br&gt;&amp;gt; button or something similar. &amp;nbsp;That strikes me--no offense intended--as&lt;br&gt;&amp;gt; the /worst/ possible move: now, even if my Customizer provides its own
&lt;br&gt;&amp;gt; button bar to manage its commits and cancels, it looks stupid, because&lt;br&gt;&amp;gt; there&amp;#39;s /another/ button bar supplied by the container.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; So:&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * What implicit assumptions were there when the specification was
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; written? &amp;nbsp;What implicit unspecified contract should Customizer&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components adhere to? &amp;nbsp;Should they provide their own button bars&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; silly)? &amp;nbsp;Or should they /not/ provide their own button bars?&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; that provides the user a direct ability to apply or cancel changes.)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * What, if any, plans exist going forward to tighten this&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; specification up a little? &amp;nbsp;Will there be any...any...annotations&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; or something to indicate to a container how a Customizer should be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; displayed? &amp;nbsp;Perhaps some kind of convention (i.e. if the&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Customizer discovers that its parent has a Component named&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;buttonBar&amp;quot; then...)?&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * One kind of Component is a Window. &amp;nbsp;Is it understood (or not) that
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if the Customizer &amp;quot;is a&amp;quot; Window it will not need to be embedded in&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; any way, shape or form?&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * These issues can (and do) also apply to the custom editors&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; returned by PropertyEditors . &amp;nbsp;Is there any reason why any
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; solution here would not reasonably apply to those cases as well?&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt; Thanks for your time,&lt;br&gt;&amp;gt; Laird&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14218113.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14213895</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-12-07T06:51:22Z</published>
	<updated>2007-12-07T06:51:22Z</updated>
	<author>
		<name>sergey.malenkov</name>
	</author>
	<content type="html">Hi Laird,
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What implicit assumptions were there when the specification was
&lt;br&gt;&amp;nbsp;&amp;gt; written? &amp;nbsp;What implicit unspecified contract should Customizer
&lt;br&gt;&amp;nbsp;&amp;gt; Components adhere to? &amp;nbsp;Should they provide their own button bars
&lt;br&gt;&amp;nbsp;&amp;gt; in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just
&lt;br&gt;&amp;nbsp;&amp;gt; silly)? &amp;nbsp;Or should they /not/ provide their own button bars?
&lt;br&gt;&amp;nbsp;&amp;gt; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component
&lt;br&gt;&amp;nbsp;&amp;gt; that provides the user a direct ability to apply or cancel changes.)
&lt;br&gt;&lt;br&gt;This behavior is not specified, but I think customizers should not 
&lt;br&gt;provide own buttons. The external tool can provide common dialog with 
&lt;br&gt;button bar that supports cancelling, or dialog with bar for direct 
&lt;br&gt;editing, or put them onto special panel. It depends on the tool and if 
&lt;br&gt;we provide the customizer with button bar the tool can't use such 
&lt;br&gt;customizer properly.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; What, if any, plans exist going forward to tighten this
&lt;br&gt;&amp;nbsp;&amp;gt; specification up a little? &amp;nbsp;Will there be any...any...annotations
&lt;br&gt;&amp;nbsp;&amp;gt; or something to indicate to a container how a Customizer should be
&lt;br&gt;&amp;nbsp;&amp;gt; displayed? &amp;nbsp;Perhaps some kind of convention (i.e. if the
&lt;br&gt;&amp;nbsp;&amp;gt; Customizer discovers that its parent has a Component named
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;quot;buttonBar&amp;quot; then...)?
&lt;br&gt;&lt;br&gt;There are no any plans. The tool should decide how to edit properties. 
&lt;br&gt;The tool should provide workarounds for necessary behavior.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; One kind of Component is a Window. &amp;nbsp;Is it understood (or not) that
&lt;br&gt;&amp;nbsp;&amp;gt; if the Customizer &amp;quot;is a&amp;quot; Window it will not need to be embedded in
&lt;br&gt;&amp;nbsp;&amp;gt; any way, shape or form?
&lt;br&gt;&lt;br&gt;Another kind is a JInternalFrame. It is hard to decide how to show such 
&lt;br&gt;components. So the tool should provide own top-level components that use 
&lt;br&gt;the customizer or property editor. We should not restrict the tool.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;SAM
&lt;br&gt;&lt;br&gt;&lt;br&gt;Laird Nelson wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hello; I hope this is the right place to ask this question. &amp;nbsp;I 
&lt;br&gt;&amp;gt; originally tried to ask it of the &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14213895&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt; 
&lt;br&gt;&amp;gt; &amp;lt;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14213895&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt;&amp;gt; email address--the address listed in 
&lt;br&gt;&amp;gt; the Java Beans specification 
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/javabeans/docs/spec.html&lt;/a&gt;&amp;gt; as being 
&lt;br&gt;&amp;gt; appropriate for specification questions--but it bounced. &amp;nbsp;Chet Haase 
&lt;br&gt;&amp;gt; referred me here.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; My question concerns Customizers (which must, as well, be Components) 
&lt;br&gt;&amp;gt; and the intention of the specification.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The specification 
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/products/javabeans/docs/spec.html&lt;/a&gt;&amp;gt; talks about 
&lt;br&gt;&amp;gt; Customizers being &amp;quot;full-fledged&amp;quot; editors that may be embedded in a 
&lt;br&gt;&amp;gt; java.awt.Panel or somehow placed into a java.awt.Window.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It strikes me that the requirements for each of these cases are very 
&lt;br&gt;&amp;gt; different, but are not addressed by the specification.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For example, suppose I have a PersonCustomizer that provides fields for 
&lt;br&gt;&amp;gt; first and last name. &amp;nbsp;If I know in advance that this Component will be 
&lt;br&gt;&amp;gt; &amp;quot;embedded&amp;quot; in a Panel, then from a UI perspective I would not want to 
&lt;br&gt;&amp;gt; saddle it with an Apply button, or an OK button, or, for that matter, 
&lt;br&gt;&amp;gt; really any button at all.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On the other hand, if somehow I know that my PersonCustomizer will be 
&lt;br&gt;&amp;gt; the only citizen of a Window, I very much would like it to have a 
&lt;br&gt;&amp;gt; system-appropriate button bar at the bottom (OK/Apply/Cancel/Help etc.).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; In both cases my Customizer would need to know when the user wants his 
&lt;br&gt;&amp;gt; changes to be applied. &amp;nbsp;Obviously if I supply my own button bar, I can 
&lt;br&gt;&amp;gt; accomplish this. &amp;nbsp;But in the &amp;quot;embedding&amp;quot; case, I may not want to do 
&lt;br&gt;&amp;gt; this. &amp;nbsp;In such a case I might want to simply provide Actions (if my 
&lt;br&gt;&amp;gt; Customizer is also a JComponent), but it may /not/ be a JComponent.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; All of this leads me to believe that the original authors of the 
&lt;br&gt;&amp;gt; specification (Graham Hamilton /et al/.) had something in mind that 
&lt;br&gt;&amp;gt; wasn't committed to the specification.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Perhaps, for example, they had in their heads that Customizer Components 
&lt;br&gt;&amp;gt; would always be the sole resident of a window supplied by the 
&lt;br&gt;&amp;gt; container. &amp;nbsp;Or perhaps they assumed that at the very least Customizer 
&lt;br&gt;&amp;gt; Components would always provide their own apply/cancel mechanics (so it 
&lt;br&gt;&amp;gt; would not be a &amp;quot;violation&amp;quot;, even in the embedding case, despite what the 
&lt;br&gt;&amp;gt; specification suggests, for a Customizer to be embedded into a Panel 
&lt;br&gt;&amp;gt; alongside other such Customizers with its own button bar).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Now, NetBeans and if I recall correctly the old BeanBox and some other 
&lt;br&gt;&amp;gt; Customizer-aware containers actually do embed Customizers inside a 
&lt;br&gt;&amp;gt; Window of some kind (usually a JDialog ), but they also provide a &amp;quot;Done&amp;quot; 
&lt;br&gt;&amp;gt; button or something similar. &amp;nbsp;That strikes me--no offense intended--as 
&lt;br&gt;&amp;gt; the /worst/ possible move: now, even if my Customizer provides its own 
&lt;br&gt;&amp;gt; button bar to manage its commits and cancels, it looks stupid, because 
&lt;br&gt;&amp;gt; there's /another/ button bar supplied by the container.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; So:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * What implicit assumptions were there when the specification was
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; written? &amp;nbsp;What implicit unspecified contract should Customizer
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components adhere to? &amp;nbsp;Should they provide their own button bars
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; silly)? &amp;nbsp;Or should they /not/ provide their own button bars? 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; that provides the user a direct ability to apply or cancel changes.)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * What, if any, plans exist going forward to tighten this
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; specification up a little? &amp;nbsp;Will there be any...any...annotations
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; or something to indicate to a container how a Customizer should be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; displayed? &amp;nbsp;Perhaps some kind of convention (i.e. if the
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; Customizer discovers that its parent has a Component named
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;buttonBar&amp;quot; then...)?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * One kind of Component is a Window. &amp;nbsp;Is it understood (or not) that
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; if the Customizer &amp;quot;is a&amp;quot; Window it will not need to be embedded in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; any way, shape or form?
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; * These issues can (and do) also apply to the custom editors
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; returned by PropertyEditors . &amp;nbsp;Is there any reason why any
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; solution here would not reasonably apply to those cases as well?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Thanks for your time,
&lt;br&gt;&amp;gt; Laird
&lt;/div&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14213895.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14029070</id>
	<title>Re: &lt;Beans Dev&gt; Customizer question</title>
	<published>2007-11-29T08:11:42Z</published>
	<updated>2007-11-29T08:11:42Z</updated>
	<author>
		<name>Jeff Dinkins</name>
	</author>
	<content type="html">&lt;html&gt;&lt;body style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;&lt;br&gt;&lt;div&gt;&lt;div&gt;On Nov 29, 2007, at 8:06 AM, Laird Nelson wrote:&lt;/div&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;blockquote type=&quot;cite&quot;&gt;Hello; I hope this is the right place to ask this question.&amp;nbsp; I originally tried to ask it of the &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14029070&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt; email address--the address listed in &lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt; the Java Beans specification&lt;/a&gt; as being appropriate for specification questions--but it bounced.&amp;nbsp;&lt;/blockquote&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot;&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Hi Laird, sorry about the bounce -- we're working on fixing that now.&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot;&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Hopefully one of the Beans engineer's can answer the below.&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot;&gt;&lt;/div&gt;&lt;div&gt;jeff&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;webkit-block-placeholder&quot;&gt;&lt;/div&gt;&lt;br&gt;&lt;blockquote type=&quot;cite&quot;&gt; Chet Haase referred me here.&lt;br&gt;&lt;br&gt;My question concerns &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt; (which must, as well, be &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Components&lt;/span&gt;) and the intention of the specification.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;The specification &lt;/a&gt; talks about &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;being &quot;full-fledged&quot; editors that may be embedded in a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;java.awt.Panel&lt;/span&gt; or somehow placed into a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;java.awt.Window&lt;/span&gt;.&lt;br&gt;&lt;br&gt;It strikes me that the requirements for each of these cases are very different, but are not addressed by the specification. &lt;br&gt;&lt;br&gt;For example, suppose I have a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PersonCustomizer &lt;/span&gt;that provides fields for first and last name.&amp;nbsp; If I know in advance that this &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt; Component &lt;/span&gt;will be &quot;embedded&quot; in a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Panel&lt;/span&gt;, then from a UI perspective I would not want to saddle it with an Apply button, or an OK button, or, for that matter, really any button at all. &lt;br&gt;&lt;br&gt;On the other hand, if somehow I know that my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PersonCustomizer &lt;/span&gt;will be the only citizen of a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, I very much would like it to have a system-appropriate button bar at the bottom (OK/Apply/Cancel/Help etc.). &lt;br&gt;&lt;br&gt;In both cases my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;would need to know when the user wants his changes to be applied.&amp;nbsp; Obviously if I supply my own button bar, I can accomplish this.&amp;nbsp; But in the &quot;embedding&quot; case, I may not want to do this.&amp;nbsp; In such a case I might want to simply provide &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Actions &lt;/span&gt;(if my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is also a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JComponent&lt;/span&gt;), but it may &lt;i&gt;not&lt;/i&gt; be a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JComponent&lt;/span&gt;.&lt;br&gt;&lt;br&gt;All of this leads me to believe that the original authors of the specification (Graham Hamilton &lt;i&gt;et al&lt;/i&gt;.) had something in mind that wasn't committed to the specification. &lt;br&gt;&lt;br&gt;Perhaps, for example, they had in their heads that &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer Components&lt;/span&gt; would always be the sole resident of a window supplied by the container.&amp;nbsp; Or perhaps they assumed that at the very least &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer Components&lt;/span&gt; would always provide their own apply/cancel mechanics (so it would not be a &quot;violation&quot;, even in the embedding case, despite what the specification suggests, for a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;to be embedded into a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Panel &lt;/span&gt;alongside other such &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt; Customizers &lt;/span&gt;with its own button bar).&lt;br&gt;&lt;br&gt;Now, NetBeans and if I recall correctly the old BeanBox and some other &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;-aware containers actually do embed &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;inside a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window &lt;/span&gt;of some kind (usually a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JDialog &lt;/span&gt;), but they also provide a &quot;Done&quot; button or something similar.&amp;nbsp; That strikes me--no offense intended--as the &lt;i&gt;worst&lt;/i&gt; possible move: now, even if my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;provides its own button bar to manage its commits and cancels, it looks stupid, because there's &lt;i&gt;another&lt;/i&gt; button bar supplied by the container.&lt;br&gt;&lt;br&gt;So:&lt;br&gt;&lt;ul&gt;&lt;li&gt;What implicit assumptions were there when the specification was written?&amp;nbsp; What implicit unspecified contract should &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer Components &lt;/span&gt;adhere to?&amp;nbsp; Should they provide their own button bars in all cases (i.e. is the &quot;embedding in a panel&quot; case just silly)?&amp;nbsp; Or should they &lt;i&gt;not&lt;/i&gt; provide their own button bars?&amp;nbsp; (Note: &quot;button bar&quot; here is a stand-in for any visual component that provides the user a direct ability to apply or cancel changes.)&lt;br&gt;&lt;/li&gt;&lt;li&gt;What, if any, plans exist going forward to tighten this specification up a little?&amp;nbsp; Will there be any...any...annotations or something to indicate to a container how a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;should be displayed?&amp;nbsp; Perhaps some kind of convention (i.e. if the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;discovers that its parent has a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Component &lt;/span&gt;named &quot;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;buttonBar&lt;/span&gt;&quot; then...)?&lt;/li&gt;&lt;li&gt;One kind of &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt; Component &lt;/span&gt;is a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;.&amp;nbsp; Is it understood (or not) that if the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;&quot;is a&quot; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt; Window &lt;/span&gt;it will not need to be embedded in any way, shape or form?&lt;/li&gt;&lt;li&gt;These issues can (and do) also apply to the custom editors returned by &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt; .&amp;nbsp; Is there any reason why any solution here would not reasonably apply to those cases as well?&lt;/li&gt;&lt;/ul&gt;Thanks for your time,&lt;br&gt;Laird&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/body&gt;&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14029070.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-14028941</id>
	<title>&lt;Beans Dev&gt; Customizer question</title>
	<published>2007-11-29T08:06:56Z</published>
	<updated>2007-11-29T08:06:56Z</updated>
	<author>
		<name>ljnelson</name>
	</author>
	<content type="html">Hello; I hope this is the right place to ask this question.&amp;nbsp; I originally tried to ask it of the &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=14028941&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;java-beans@...&lt;/a&gt; email address--the address listed in &lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;
the Java Beans specification&lt;/a&gt; as being appropriate for specification questions--but it bounced.&amp;nbsp; Chet Haase referred me here.&lt;br&gt;&lt;br&gt;My question concerns &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;
(which must, as well, be &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Components&lt;/span&gt;) and the intention of the specification.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/spec.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;The specification
&lt;/a&gt; talks about &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;being &amp;quot;full-fledged&amp;quot; editors that may be embedded in a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;java.awt.Panel&lt;/span&gt;
 or somehow placed into a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;java.awt.Window&lt;/span&gt;.&lt;br&gt;&lt;br&gt;It strikes me that the requirements for each of these cases are very different, but are not addressed by the specification.
&lt;br&gt;&lt;br&gt;For example, suppose I have a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PersonCustomizer &lt;/span&gt;that provides fields for first and last name.&amp;nbsp; If I know in advance that this &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Component &lt;/span&gt;will be &amp;quot;embedded&amp;quot; in a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Panel&lt;/span&gt;, then from a UI perspective I would not want to saddle it with an Apply button, or an OK button, or, for that matter, really any button at all.
&lt;br&gt;&lt;br&gt;On the other hand, if somehow I know that my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PersonCustomizer &lt;/span&gt;will be the only citizen of a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;, I very much would like it to have a system-appropriate button bar at the bottom (OK/Apply/Cancel/Help etc.).
&lt;br&gt;&lt;br&gt;In both cases my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;would need to know when the user wants his changes to be applied.&amp;nbsp; Obviously if I supply my own button bar, I can accomplish this.&amp;nbsp; But in the &amp;quot;embedding&amp;quot; case, I may not want to do this.&amp;nbsp; In such a case I might want to simply provide 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Actions &lt;/span&gt;(if my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;is also a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JComponent&lt;/span&gt;), but it may 
&lt;i&gt;not&lt;/i&gt; be a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JComponent&lt;/span&gt;.&lt;br&gt;&lt;br&gt;All of this leads me to believe that the original authors of the specification (Graham Hamilton &lt;i&gt;et al&lt;/i&gt;.) had something in mind that wasn&amp;#39;t committed to the specification.
&lt;br&gt;&lt;br&gt;Perhaps, for example, they had in their heads that &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer Components&lt;/span&gt; would always be the sole resident of a window supplied by the container.&amp;nbsp; Or perhaps they assumed that at the very least 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer Components&lt;/span&gt; would always provide their own apply/cancel mechanics (so it would not be a &amp;quot;violation&amp;quot;, even in the embedding case, despite what the specification suggests, for a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;to be embedded into a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Panel &lt;/span&gt;alongside other such &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Customizers &lt;/span&gt;with its own button bar).&lt;br&gt;&lt;br&gt;Now, NetBeans and if I recall correctly the old BeanBox and some other &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer&lt;/span&gt;-aware containers actually do embed 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizers &lt;/span&gt;inside a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window &lt;/span&gt;of some kind (usually a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;JDialog
&lt;/span&gt;), but they also provide a &amp;quot;Done&amp;quot; button or something similar.&amp;nbsp; That strikes me--no offense intended--as the &lt;i&gt;worst&lt;/i&gt; possible move: now, even if my &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer 
&lt;/span&gt;provides its own button bar to manage its commits and cancels, it looks stupid, because there&amp;#39;s &lt;i&gt;another&lt;/i&gt; button bar supplied by the container.&lt;br&gt;&lt;br&gt;So:&lt;br&gt;&lt;ul&gt;&lt;li&gt;What implicit assumptions were there when the specification was written?&amp;nbsp; What implicit unspecified contract should 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer Components &lt;/span&gt;adhere to?&amp;nbsp; Should they provide their own button bars in all cases (i.e. is the &amp;quot;embedding in a panel&amp;quot; case just silly)?&amp;nbsp; Or should they 
&lt;i&gt;not&lt;/i&gt; provide their own button bars?&amp;nbsp; (Note: &amp;quot;button bar&amp;quot; here is a stand-in for any visual component that provides the user a direct ability to apply or cancel changes.)&lt;br&gt;&lt;/li&gt;&lt;li&gt;What, if any, plans exist going forward to tighten this specification up a little?&amp;nbsp; Will there be any...any...annotations or something to indicate to a container how a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;should be displayed?&amp;nbsp; Perhaps some kind of convention (i.e. if the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;discovers that its parent has a 
&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Component &lt;/span&gt;named &amp;quot;&lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;buttonBar&lt;/span&gt;&amp;quot; then...)?&lt;/li&gt;&lt;li&gt;One kind of &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Component &lt;/span&gt;is a &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Window&lt;/span&gt;.&amp;nbsp; Is it understood (or not) that if the &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;Customizer &lt;/span&gt;&amp;quot;is a&amp;quot; &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;
Window &lt;/span&gt;it will not need to be embedded in any way, shape or form?&lt;/li&gt;&lt;li&gt;These issues can (and do) also apply to the custom editors returned by &lt;span style=&quot;font-family: courier new,monospace;&quot;&gt;PropertyEditors&lt;/span&gt;
.&amp;nbsp; Is there any reason why any solution here would not reasonably apply to those cases as well?&lt;/li&gt;&lt;/ul&gt;Thanks for your time,&lt;br&gt;Laird&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/%3CBeans-Dev%3E-Customizer-question-tp14028941p14028941.html" />
</entry>

</feed>
