JavaFX TableView scrolling issue - javafx

I am developing an application using JavaFX and I have created a table that contains some strings that are short and others that are very long. I added these lines:
Text text = new Text(getString());
text.wrappingWidthProperty().bind(getTableColumn().widthProperty());
setText(null);
setGraphic(text);
in my cell class in order to view the entire contents of each string. This has caused the height of each row within my table to vary, with some rows being several pages long. It seems that the scroll bar works by scrolling past a certain number of rows at a time. This causes huge jumps in scroll speed when scrolling past the rows that contain long strings. Does anyone know of way to base the scroll speed on lines of text passed rather than table rows?

Related

Empty grid space in component

I have a grid inside a component which has some rows and columns. The problem is that there is some empty space after the last row of the grid and I want to get rid of it. This is what it looks like in the inspector, it actually shows that the whole content is the grid, whereas only the rows with actual information are the content of the grid. I want to remove this white space which is there for no reason. For clarification this is the empty unwanted space:
You could use setHeightByRows to set the Grid to contain a fixed amount of rows, or setHeightUndefined to always show all the rows (bad idea if your Grid ever has massive amounts of data in it).

What is a way of creating a reactive grid with dynamic rows

So basically, I have a react app and I am trying to create a grid of square elements but:
i dont want to
shrink them below a certain size (meaning that when the page
shrinks, the last elements on a row are pushed to the next row
etc.).
I was also hoping to put in a few special 2x2 elements in the grid (realistically not
many, between 1-3)
I am looking to be able input a series of objects (ordered by priority) and have the page dynamically allocate them into the grid space as best it can.
I have done bootstrap grids in the past, 1. could be achieved fairly easily by changing the .col-x value at certain screen widths so the elements wrap
But 2. seems really hard:
making a static row with a 2x2 element and some 1x1 elements seems
easy, but then it will all break when the above row tries to wrap, or
when i have to wrap elements in this static row.
I was also thinking of offsetting 2 consecutive rows and just placing a div with the 2x2 boxes over the offset, but then i would have to change the row elements that are being offset on the fly, and i dont know how to get an element to tell me what row and column it is in.
Any ideas?

BIRT Column Width not being Respected

I'm trying to create a BIRT report. The code and query side of it works just fine, but the display is rather wonky.
There's one column whose text contents are rather long, and instead of showing some text and allowing scrolling of the text (which is the behavior I'd like there), it simply shows up as a very vertically long text block; kinda ruins the report a bit. I've also tried setting the width on the column, but no dice there either. Any ideas?
Also, as an aside, how do I get the table's columns to have grid lines? I can do that on the rows, but I can't seem to figure out how to do that for the columns. If anyone has insight into that issue, it'd be appreciated.
Here's a screenshot of the issue
Here's my BIRT report XML, without headers and footers in order reduce characters
I think there is no way to use a scrollable view element inside your report, because the output by the default html-emitter is completely static (I would like to see a different answer if this should be wrong).
To your second Question about how to add a border to a column. Click into the cell of your table, click on "Border" inside the "Properties Editor" and select the borders you like to use. This should be repreated for all cells where you want to use the borders, because this configuration is not applied for a whole column but just for one cell. If you want a border for the whole column you need to setup the border for every cell in the column.
If you have already a data cell inside your table cell, you can use the outline view to select the table cell instead of the data cell:

Sizing a Flex DataGrid to fit the data, then scrolling

I have a UI that is a master/details UI design pattern. There is a DataGrid that holds 1-n records in the top part section of a VDividedBox, then a details pane in the bottom part that shows details of the record selected in the DataGrid, responding to the selection.
The DataGrid usually only contains a small number of items, and so I'd like in most cases for the DataGrid to size to the number of rows and for the details pane to be shown just below the table with no empty space or empty rows. I've got that working OK by setting rowCount="{tableData.length}", where tableData is the data provider. So far, so good.
However, occasionally the table contains a larger number of items, and in these cases I'd like the table to grow to fill the available space, then scroll when there are too many items to show, without the details pane scrolling off. That is, behave like the rowCount is not set to the dataprovider length, and the height set to 100%.
My problem is, determining when to make this switch. What is the best way to switch the behavior from the rowCount-based height, to the percentage based height? Or am I missing some trick that would make the rowCount-based height table scroll when it runs out of space?
Thanks,
Paddy
What if you set the rowCount via:
rowCount="{tableData.length > 30 ? 30 : tableData.length }"
where 30 is the max height you want to scale to?
That way if there are more than 30 (or some #) of rows it will scroll.

bootstrap grid not adjusting before text flows outside of container

I am not that advanced on CSS so I wanted to ask someone before reporting this as a problem.
I am using the latest (v2.0.3) bootstrap Hero example to show this issue. When I create a single_long_word of text greater than about 1/2 the column size (due to a large font or simply a large number of characters in a single word), the text is allowed to go outside of its column before the layout adjusts when I re-size the browser window to make it smaller.
All I had to do was change the text in the column to make a large or long word and then reduce the window size of the browser. It does eventually re-layout the columns to allow for more width, but not before the long word exceeds the boundary of the column it is in.
This happens for both normal and fluid containers in with a responsive grid.
It is easy to duplicate in Chrome by just going to this page and editing the text after inspecting a column element.
http://twitter.github.com/bootstrap/examples/hero.html
I could not post an image since I am too new to stackoverflow

Resources