pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rostislav Krasny <rosti....@gmail.com>
Subject Re: Layout component within ScrollPane
Date Sat, 13 Feb 2010 23:05:19 GMT
I think the main problem here is that we can align a BoxPane but not
the text in the TextArea itself. It produces many strange behaviors.
For example this is how horizontal alignment to right side looks like:

http://i49.tinypic.com/sytr1v.png  (Pivot application)
http://i50.tinypic.com/t6z9g6.png (WordPad)

		TextArea textArea = new TextArea();
		textArea.setEditable(true);

		BoxPane pane1 = new BoxPane(Orientation.VERTICAL);
		pane1.add(textArea);

		StyleDictionary dict = pane1.getStyles();
//		dict.put("verticalAlignment", VerticalAlignment.BOTTOM);
		dict.put("horizontalAlignment", HorizontalAlignment.RIGHT);
//		dict.put("fill", Boolean.TRUE);	// disables horizontal alignment

		ScrollPane pane2 = new ScrollPane(ScrollBarPolicy.FILL_TO_CAPACITY,
ScrollBarPolicy.FILL_TO_CAPACITY);
		pane2.setView(pane1);

		window = new Window(pane2);
		window.setTitle("Test application");
		window.setMaximized(true);
		window.open(display);

Is it possible, in some future version of Pivot, to add a support of
text alignments (horizontal and vertical) into the TextArea?


On Sun, Feb 14, 2010 at 12:05 AM, Greg Brown <gkbrown@mac.com> wrote:
> It is not a bug. ScrollPane only introduces scroll bars as needed, based on the preferred
size of the view component. When you set scroll policy to "always", the view is always given
its preferred size. That means there will be no extra vertical space in which to align the
content, to bottom, top, or otherwise.
>
> I doubt the app in the screen shot is implemented as a text area in a scroll pane. As
I recall, Win32 does not have a dedicated "scroll pane" class - it only has scroll bars, so
it is up to the app to decide how to handle scrolling. Pivot's ScrollPane class allows an
application to implement most common scrolling scenarios very easily, but it may not handle
all scenarios. In those cases, you can use ScrollBar directly.
>
>
> On Feb 13, 2010, at 4:56 PM, Rostislav Krasny wrote:
>
>> Yes, with ScrollBarPolicy.FILL_TO_CAPACITY as the vertical
>> ScrollBarPolicy it works correctly. Thank you.
>>
>> But why can't one use ScrollBarPolicy.ALWAYS vertical ScrollBarPolicy
>> with VerticalAlignment.BOTTOM? Isn't it a bug? I've seen a Win32
>> native application (mIRC IRC client) that behaves that way.
>> http://i45.tinypic.com/21eaqm1.png
>>
>> On Sat, Feb 13, 2010 at 11:17 PM, Greg Brown <gkbrown@mac.com> wrote:
>>> Ah, that is correct. You can't use a scroll policy of "always" to get this behavior.
You need to use "fill_to_capacity".
>>>
>>> On Feb 13, 2010, at 3:48 PM, Rostislav Krasny wrote:
>>>
>>>> Unfortunatelly it doesn't work:
>>>>
>>>>               TextArea textArea = new TextArea();
>>>>               textArea.setEditable(true);
>>>>
>>>>               BoxPane pane1 = new BoxPane(Orientation.VERTICAL);
>>>>               pane1.add(textArea);
>>>>
>>>>               StyleDictionary dict = pane1.getStyles();
>>>>               dict.put("fill", Boolean.TRUE);
>>>>               dict.put("verticalAlignment", VerticalAlignment.BOTTOM);
>>>>
>>>>               ScrollPane pane2 = new ScrollPane(ScrollBarPolicy.ALWAYS,
>>>> ScrollBarPolicy.ALWAYS);
>>>>               pane2.setView(pane1);
>>>>
>>>>               window = new Window(pane2);
>>>>               window.setTitle("Test application");
>>>>               window.setMaximized(true);
>>>>               window.open(display);
>>>>
>>>>
>>>> On Sat, Feb 13, 2010 at 10:11 PM, Greg Brown <gkbrown@mac.com> wrote:
>>>>> You'll need to put the text area in a container that is capable of aligning
its content to bottom. Try using a vertical BoxPane will the "fill" style set to true and
the "verticalAlignment" style set to "bottom". You can then use that as your scroll pane's
view.
>>>>>
>>>>> On Feb 13, 2010, at 3:07 PM, Rostislav Krasny wrote:
>>>>>
>>>>>> It works. Thank you very much.
>>>>>>
>>>>>> I've yet another question. How can I align the text vertically? I
want
>>>>>> it to be aligned to the bottom side.
>>>>>>
>>>>>> On Sat, Feb 13, 2010 at 9:55 PM, Greg Brown <gkbrown@mac.com>
wrote:
>>>>>>> Try replacing this:
>>>>>>>
>>>>>>>> pane.add(textArea);
>>>>>>>
>>>>>>> with this:
>>>>>>>
>>>>>>>  pane.setView(textArea)
>>>>>>>
>>>>>>> G
>>>>>>>
>>>>>>> On Feb 13, 2010, at 2:41 PM, Rostislav Krasny wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I use Pivot 1.4. I'm trying to make a window with a scroll
pane and a
>>>>>>>> text area within it. Following is code of my startup() method.
>>>>>>>>
>>>>>>>>               TextArea textArea = new TextArea();
>>>>>>>>               textArea.setEditable(true);
>>>>>>>>
>>>>>>>>               ScrollPane pane = new ScrollPane(ScrollBarPolicy.ALWAYS,
>>>>>>>> ScrollBarPolicy.ALWAYS);
>>>>>>>>               pane.add(textArea);
>>>>>>>>
>>>>>>>>               window = new Window(pane);
>>>>>>>>               window.setTitle("Test application");
>>>>>>>>               window.setMaximized(true);
>>>>>>>>               window.open(display);
>>>>>>>>
>>>>>>>> However the text area has zero size dimensions and cannot
be used. How
>>>>>>>> can I layout the text area according to the scroll pane dimensions
>>>>>>>> automatically?
>>>>>>>>
>>>>>>>> Thank you
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>>
>
>

Mime
View raw message