In LibreOffice, How do I create two consecutive sets of radio buttons - dialog

In LibreOffice Calc, if I create four radio buttons on a Basic dialog, with a tab-order of say 11, 12, 13, 14 then they will be treated as a single four-way group.
If I insert any other active form item, such as another text field, (but unfortunately not a dividing line), in the middle, then I get what I want, which is two distinct groups.
Think:
Q.1: * Yes
* No
Q.2: * Yes
* No
All of the documentation seems to be saying that a group is made by giving each button the same name, but this appears to be out of date or out of context, as the dialog editor simply will not allow them to have the same name.
Giving the buttons in each group two different group names also has no effect.

According to https://wiki.openoffice.org/wiki/Documentation/OOo3_User_Guides/Writer_Guide/Form_controls_reference:
If wizards are on, creating a group box launches the Group Element wizard. This creates a group of option buttons (in which only one may be selected at a time). In most cases, using a group box is the best way to create a set of option buttons.
Typically I use group boxes as recommended here. However, instead of the wizard (LibreOffice wizards often give messy results), I find it easier to create the dialog in the dialog editor and then modify the resulting .xdl file using a text editor.
The important thing is the tab index order, as explained at https://wiki.openoffice.org/wiki/Documentation/DevGuide/Basic/Option_Button:
Note, that option buttons that belong to the same group must have consecutive tab indices. Two groups of option buttons can be separated by any control with a tab index that is between the tab indices of the two groups.
A horizontal line will work if that is what you want. For example, here is an example that has two groups. Notice the tab index of 2 for the horizontal line, which is in between the tab indices of the buttons we want to separate (0 to 1 and 3 to 4).
<dlg:radiogroup>
<dlg:radio dlg:id="OptionButton1" dlg:tab-index="0" dlg:left="52" dlg:top="23" dlg:width="50" dlg:height="12" dlg:help-text="&20.Dialog3.OptionButton1.HelpText" dlg:value="&21.Dialog3.OptionButton1.Label" dlg:group-name="a"/>
<dlg:radio dlg:id="OptionButton2" dlg:tab-index="1" dlg:left="52" dlg:top="46" dlg:width="50" dlg:height="12" dlg:help-text="&22.Dialog3.OptionButton2.HelpText" dlg:value="&23.Dialog3.OptionButton2.Label" dlg:group-name="a"/>
</dlg:radiogroup>
<dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="2" dlg:left="50" dlg:top="70" dlg:width="82" dlg:height="6" dlg:help-text="&28.Dialog3.FixedLine1.HelpText" dlg:value="&29.Dialog3.FixedLine1.Label"/>
<dlg:radiogroup>
<dlg:radio dlg:id="OptionButton3" dlg:tab-index="3" dlg:left="52" dlg:top="74" dlg:width="50" dlg:height="12" dlg:help-text="&24.Dialog3.OptionButton3.HelpText" dlg:value="&25.Dialog3.OptionButton3.Label" dlg:group-name="b"/>
<dlg:radio dlg:id="OptionButton4" dlg:tab-index="4" dlg:left="52" dlg:top="93" dlg:width="50" dlg:height="12" dlg:help-text="&26.Dialog3.OptionButton4.HelpText" dlg:value="&27.Dialog3.OptionButton4.Label" dlg:group-name="b"/>
</dlg:radiogroup>
If you don't like the idea of modifying the .xdl file directly, it is possible to do this in the dialog editor without the wizard by selecting each control and changing the value of the tab order field.

Related

Keyboard accessibility ( WCAG) in panels with list of elements that has assigned button role

Hi :) I would like to ask you about how to treat elements that compose a list, but whom have assiged a button role and are put in side panel ( so it is not a menu or dropdown). My main problem is how to decide is to where ARROWS should works and where TAB.
Moreover I have a differ types of list items that consist of:
checkbox/ radiobutton only
checkbox/ radiobutton with a link to another panel
two icons/ buttons that has defined an activities etc.
Please look at pictures and help me please :)
PINK - "arrows"
BLUE - "TAB"key
You should hardly decide which component will use TAB key or Arrow Keys. Keyboard accessibility for a large number of components is already defined in WAI-ARIA Authoring Practices.
Adding a different behavior could create issues to both sighted, and non-sighted users because they'll already be knowing which key to use based on the component or they'll know intuitively because of standard roles or they'll know as they use keyboard more to browse.
Offer List
Listbox will work. Arrow Keys to navigate and Enter key to perform the action.
List of Checkboxes and Radio Buttons
I would recommend to keep Checkboxes and Radio Buttons to their default keyboard behavior. Since your cases are more of a list, you can convert the list of checkboxes and radio buttons to Single Select and Multi Select Listboxes and use Checkbox and Radio Button as a font icon or graphic to show the selection, similar to how tick is shown in this Listbox example. When you convert to a Listbox, you'll meet the Arrow Keys requirement.
Selected Fruits List
There are some issues in the required keyboard behavior: How will user know if Arrow-Left or Arrow-Right need to be presed, think about non-sighted users.
Fruit Name and i icon button
In your need, you want both Fruit Name and i icon button to open a panel, suggest to NOT use Arrow-Right to i icon button and only use the Enter key to open the panel. May be you don't need i icon button at all.
Delete icon button
Suggest to use DEL key to delete the item
Conclusion
Remove i icon button. If you can't just keep it as graphic element without any events
Use Enter key to open the panel
Use DEL key to delete the item
I think the whole list will then become a listbox, navigable using Arrow Keys and Enter to invoke an operation
Vegetables List
Neither Accordion nor Nested List works here because you have two actions to do: Make a selection, and Expand and Collapse. I haven't tried TreeView but you can check.

Populate Dropdown from filtered data in Spotfire

I have a data set that contains a number of groups and each group has a number of individuals.
I have a tab in a report which shows some statistics for all the groups as a whole.
I have another tab which has a filter to only show info for selected groups in that tab.
I have a third tab, which I want to show info for individuals within whatever group is selected on the second tab.
I have 2 filters setup for these, a 'group' filter and an 'individual' filter so that I can easily add the filter to any visualizations.
I am trying to only show individuals within a group selected on the second tab ('group' filter) on the filter in the third tab ('individual' filter) however this will only happen when I set that filter to the 'group' filter'. This would be OK except when I go back to tab 2 to change the group (and thus the available individuals on the third tab) I only have one group available in this filter IF I have selected an individual on the third tab.
Is there any way to do the following:
Only show individuals based on 'group' filter in the filter on the third tab, which will effect the 'individual' filter. All groups should be available in the groups filter independent of the individual selection on third tab
No, not with using standard filters. The fact that you have these broken up across tabs doesn't change the fact. When you apply a filter, you are filtering the underlying data-set as whole. Thus, when you select an individual selection on the third tab, it is filtering the underlying data table which feeds all three tabs to this level.
What you can do, is add in an Action Control that will only refresh / remove the filters applied on a certain tab. This will be similar to clicking the Reset All Filters button on the tool bar, except we can apply this to your specific page.... in this case the third tab.
In a text area on the second tab
Right Click > Edit Text Area > Insert Action Control
Set the Display text to what ever you want
Control type: Button or Image... perhaps something like this
Available actions > Pages and visualizations: Navigate to the third tab page name and click Add
Available actions > Functions: Navigate to Reset All Filters and click Add
Additionally, you may want to add Unmark Marked Rows as well
NOTE: This should be done IN THIS ORDER
Now, when you navigate back to the second tab, you can click this button / image you have inserted to remove the filters applied on the third tab without removing those applied in the first tab.
Another way would be some IronPython... but I'm not going to serve that up since it's even more complicated.
Also, I would look into Filtering Schemes. It doesn't help this question much, since you are creating cascading filters, but I think you'll find it powerful in future analytic designs.

VBA - MultiSelect in a DropDown

I have a Requirement Where a bundle of Items needs to be displayed in the Drop-Down List. The Problem for me is, because there are so many Items inside it, I need to Use Combobox over List-Box. The Reason for that is, if I know the name of the item, I can type in the search box of the drop-down and get my Item, Combo-Box allows you to do that. But the List Box doesn't allow the User Input.
Now, Because there are some which names cannot be remembered, I need to use the Scroll bar in the drop-down to pick up the time. This is hectic, to select a single Item. I would like to have the facility of Using a Multi-select in this case.
So the Requirements are below:
1) A Drop-Down that allows the user to type in part of the Input(Say Ref for Refreigerator)
2) A Drop-Down that allows the Multi-select.
Obviously, I don't want to have two drop-downs Splitting the data.
I am open to other Suggestions.
Please Share your thoughts.

Add/Remove controls dynamically in .NET 2.0 CF Forms project

I am working on a mobile 2.0 project that is displaying a list of custom controls (each containing labels and check box). I want to find a better way to keep track of control positions.
The controls are contained within a scrollable panel.
The hierarchy of controls is basically like this
Menu Type 1
Menu Sub Type 1
Menu Item 1
Menu Item 2
Menu Type 2
Menu Sub Type 2
Menu Item 3
Menu Item 4
And the way I add them initially is panel.Controls.Add(controlToAdd)
And each subsequent control's position is determined by the previous control:
newControl.Top = lastControl.Bottom
That works fine on initial load, but I now need to be able to add/remove controls. I know I can just
find where I need to insert it
set the new controls location
change the positions of all controls that follow it (offset based on the height of the new control)
But that seems like a "bad" way since if the control always adds at the front, every single latter control needs updating. Is there a way to better manage the positions of all the controls to ease additions and removals dynamically?

Rich pick list tab order

I am using rich:picklist. It has to two list boxes as it has and four buttons in between for moving one or all . I need to give tab order to this picklist together with buttons and boxes.
Can anyone help?
I think you can't beacause there isn't tab index on the component.
Looking on the generated html source, boxes are tables and buttons are div : hard to define a tab order without the generated ids on such components...

Resources