<Swing Dev> Review Request for 8040893: fix doclint block tag issues in swing border classes

sergey malenkov sergey.malenkov at oracle.com
Fri Apr 25 16:22:30 UTC 2014


On 25.04.2014 20:03, sergey malenkov wrote:
> Hi Steve,
>
> We should not confuse the cause and the result.
>
> The getShadowOuterColor method is a property of this Border object.
> Actually this object does not know about the component.
> So, we can say here that the color will be derived from background.
!!! can't say
>
> The getShadowOuterColor(Component) method is an utility method,
> that provides all calculations to resolve the null value of the property.
> Here we specify that the *somehow modified* background color
> will be used if the shadowOuterColor property is not set.
>
> Thanks,
> SAM
>
> On 24.04.2014 20:41, Steve Sides wrote:
>> Hi Sergey,
>> I see what you mean. I have a question on some of the BevelBorder 
>> method docs.
>> Regarding the getHighlight(or Shadow)Inner/Outer)Color() methods (no 
>> parameter)
>> http://cr.openjdk.java.net/~ssides/8040893/8040893.3/src/share/classes/javax/swing/border/BevelBorder.java.sdiff.html 
>>
>>
>> For the methods which take a Component parameter, it is commented the 
>> color is derived from the Component's background, so these always 
>> return some Color.
>> For the methods which take no Component parameter, they return null 
>> if  the color is derived from the background(ie., not specified at 
>> instantiation).
>>
>> My question is, are comments like
>>
>>  201      * @return the outer highlight {@code Color} or {@code null} 
>> if highlight
>>  202      *         colors are derived from background
>>
>> seen as referring too much to the implementation or clarifying 
>> statements?
>> If it simply says "...or {@code null} is none was specified", it 
>> leaves it unclear if there is a highlight or shadow color.
>>
>> It seems that the javadoc comment could have said
>>
>> * Returns the outer highlight color of the bevel border.
>> * If none was specified at instantiation, the highlight
>> * color is derived from the background.
>>
>> Then the return could have said, "or null  if none was specified" and 
>> there would be more clarity.
>>
>> Or, do we not want that kind of implementation detail revealed at all?
>>
>> -steve
>>
>>
>> On 4/24/2014 4:39 AM, sergey malenkov wrote:
>>> Hello,
>>>
>>> I don't think that it is a good idea to specify current implementation.
>>> For example,
>>>
>>>       * Returns whether or not the border is opaque.
>>> +     *
>>> +     * @return true if {@code color} is not {@code null}, false if 
>>> {@code color}
>>> +     *         is {@code null}
>>>
>>> Once it is specified we never can fix it.
>>> For example, the MatteBorder.isBorderOpaque method, specified above,
>>> can be fixed in the following way:
>>> +    * @return true if the internal color is not null *and uses 
>>> alpha-channel*.
>>>
>>> So I suggest to rewrite it's documentation in the following way:
>>>       * Returns whether or not the border is opaque.
>>> +    *
>>> +    * @return {@code true} if this border is opaque,
>>> +    *                 {@code false} otherwise
>>>
>>> The same issue with other similar methods.
>>>
>>> Thanks,
>>> SAM
>>>
>>> On 23.04.2014 21:49, Steve Sides wrote:
>>>> this has the noted change for getEtchType():
>>>>
>>>> http://cr.openjdk.java.net/~ssides/8040893/8040893.3/
>>>>
>>>> -steve
>>>>
>>>> On 4/22/2014 2:03 AM, Alexander Scherbatiy wrote:
>>>>> On 4/21/2014 11:54 PM, Steve Sides wrote:
>>>>>>
>>>>>> On 4/21/2014 2:45 AM, Alexander Scherbatiy wrote:
>>>>>>>
>>>>>>> Hello Steve,
>>>>>>>
>>>>>>> ------------------------
>>>>>>>      /**
>>>>>>>       * Returns the type of the bevel border.
>>>>>>> +     *
>>>>>>> +     * @return 0 if the bevel type is {@code RAISED}, 1 if 
>>>>>>> {@code LOWERED}
>>>>>>>       */
>>>>>>> ------------------------
>>>>>>>
>>>>>>> I think such description reveals unnecessary level of code 
>>>>>>> abstraction.
>>>>>>> Developers always need to use BevelBorder.RAISED and 
>>>>>>> BevelBorder.LOWERED constant and never their numerical 
>>>>>>> representation.
>>>>>>> It would better to say that the method return the bevel type: 
>>>>>>> RAISED or  LOWERED.
>>>>>> I thought about that, but the method signature is
>>>>>> public *int*getBevelType()
>>>>>> and I wasn't sure if saying it returns "RAISED or LOWERED" 
>>>>>> clearly matched the signature. I will make it so.
>>>>>
>>>>>    This looks good.
>>>>>    There is the javadoc for the 
>>>>> BorderLayout.addLayoutComponent(Component comp, Object 
>>>>> constraints) method that says:
>>>>>    "For border layouts, the constraint must be one of the 
>>>>> following constants: NORTH, SOUTH, EAST, WEST, or CENTER."
>>>>>    and does not mention that NORTH constant is actually the 
>>>>> "North" String.
>>>>> http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html
>>>>>
>>>>>   Could you also update the javadoc for the 
>>>>> EtchedBorder.getEtchType() method in the same way?
>>>>>
>>>>>>
>>>>>>>
>>>>>>> ------------------------
>>>>>>>      /**
>>>>>>>       * Returns whether or not the border is opaque.
>>>>>>> +     *
>>>>>>> +     * @return true
>>>>>>>       */
>>>>>>>      public boolean isBorderOpaque() { return true; }
>>>>>>> ------------------------
>>>>>>> It would better to also add the similar comment from the parent 
>>>>>>> AbstractBorder class like: "This implementation returns true".
>>>>>>> It seems that the "code" tag can be used with boolean values: 
>>>>>>> {@code true}
>>>>>>
>>>>>> okay, http://cr.openjdk.java.net/~ssides/8040893/8040893.2/ has 
>>>>>> changes for above
>>>>>
>>>>>    This version looks good for me.
>>>>>
>>>>>   Thanks,
>>>>>   Alexandr.
>>>>>>
>>>>>> thanks for the quick feedback,
>>>>>>
>>>>>> -steve
>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Alexandr.
>>>>>>>
>>>>>>> On 4/18/2014 2:48 AM, Steve Sides wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> Could you please review the fix for the following bug:
>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8040893
>>>>>>>>
>>>>>>>> Webrev corresponding:
>>>>>>>> http://cr.openjdk.java.net/~ssides/8040893/
>>>>>>>>
>>>>>>>> webrevComment.txt:
>>>>>>>> This addresses missing @parm and @return block tags in javadoc for
>>>>>>>> javax/swing/border classes as noted by doclint.
>>>>>>>>
>>>>>>>> It does not address methods which are missing javadoc comment 
>>>>>>>> altogether,
>>>>>>>> of which there are many.
>>>>>>>>
>>>>>>>> It also a adds @return to isBorderOpaque() methods which were 
>>>>>>>> incorrectly
>>>>>>>> inheriting the default, @return false, from AbstractBorder.
>>>>>>>>
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>>
>>>>>>>> -steve
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>




More information about the swing-dev mailing list