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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 >>>>>>> >>>>>>> >>>>> >>>>> >>> >>> > >
