FancyTree partially selecting all parent nodes when selecting a node (similar to multi-hier select mode but in single select mode) - fancytree

I wanted to give a better visual cue to the user when selecting a child node in FancyTree similar to the multi-hier select mode but allowing the user to only select one node at a time, so when the user checks the checkbox of a node I need all parent nodes to be 1) partially selected and 2) highlighted, how can I achieve this?

Related

I can not select a single child object from a parent object

Probably I accidentally clicked on something, so it can be something very simple. But suddenly I can not select any child objects. When I click on a child object, the entire parent object is automatically selected.
I have a stadium, divided into sections, rows, seats etc. When I select a single seat, the entire parent object (the stadium) is immediately selected. Previously this was never the case, this is suddenly since yesterday.
Does anyone know what I could have clicked on accidentally? Thanks!
Video here: http://nl.tinypic.com/r/2dl3nlc/9
It depends on the (parent) object. Because I can select one child of the parent goal, but I can't select one child of the parent grandstand, then the whole grandstand is selected... You can't see it because it are dark colors, but the grandstand contains of multiple chairs (childs)
maybe you clicked the layer locks. have a look.
if you lock a layer out, objects belongs to that layer will be not selectable from the editor scene view.

Update chart after changing a field in an APEX form

How do I cause APEX to refresh a chart (graph) after I change the value in a text box/select list/etc that is used as a parameter in the chart's pl/sql statement?
I'd like it to look as professional as possible and minimize the portion of the page that must be refreshed (i.e., "ajax-like", which is the standard in 2018).
Create a dynamic action on the text box/select list/etc that is changed with event "change"
Create a true action and select pl/sql and write
Begin
null;
end;
In page items to submit select your items
Create a second true action after the first and select Refresh. Then select region as affected element and select your chart. Remember that the option 'Fire on initialization' must be set to NO
See Approach B, below, for the optimal solution.
Approach A
The simplest option (that is less professional) is to modify every text box/select list/etc of interest to submit the page when the value of the text box/select list/etc changes. As an example, for the select list, go to its settings->page action on selection and change the setting to submit page.
There are two main downsides to that approach:
Most of the page will refresh, which is jarring to your user, and
If you're using a plugin, or the type of item that you're using doesn't support that approach, then you're out of luck.
Approach B
A more complex solution that yields a more professional result follows. This solution involves dynamic actions, which I will probably not fully explain here. However, the information should be enough for the user to figure it out.
Let us suppose that you have two things: (1) a select list whose value is used as a parameter in a (2) chart's sql source statement.
To get the chart to update every time you make a new choice via the select list, you need to:
Create a dynamic action for the select list of interest. You do this by clicking on the select list, going to the dynamic action tab (the lightning bolt); right-click on the item; click select dynamic action; give it a name and set the event to change and make the selection type an item and set the item to the name of the select list you're watching.
Create a true action for that dynamic action that executes pl/sql code (you can do this by modifying the show action that was created by default in 1.). Set the pl/sql code to null;. Then under items to submit, specify the name of the select list of interest.
Create a second true action that refreshes the region that contains the chart.
You'll need to make sure that the sequence assigned to 2. is a smaller number than the sequence assigned to 3.. This should happen by default, but it's an area you can get tripped up.
Inapplicable Approach C
In Apex 5.something, they added a feature called Cascading List of Values. This feature allows you to specify that one item depends on another item for its values. For example, if you have a select list that allows the user to choose a department, and then you have a second select list that allows you to choose an employee from the chosen department (which presumably obtains its values from a query involving the value chosen in the first select list), you can tell APEX to refresh the second select list whenever you update the first.
You do this by editing the second select list. Under its settings goto list of values->cascading LOV parent item(s). Add the first select list as a "reverse" dependent (aka, "parent"). This will ensure that any time the first select list is updated, the second select list is also updated.
For better or for worse, charts do not have the cascading LOV parent item(s) setting. Thus, this solution does not apply to this question.

create a new pattern for Activity ID in Primavera P6

I am working with Primavera P6.
I have a new project with a defined WBS. I want for each level of the WBS, when I create a new activity, have a default Activity ID previously defined, for example:
WBS:
PROJECT
Engineering
Mechanical
Civil
Piping
...
Procurement
Manufacturing
...
Construction
Area 1
Area 2
...
And for each of these WBS groups, when I create a new activity on it, I dont want the typical A00000 Activity ID, instead I want for example PR1ENME001 (PRoject1, ENgineering activity, MEchanical and is the 001 activity)
So here's the trick.
First create at least 1 activity with your desired Activity ID pattern in each WBS area. Then, highlight that activity and create a new one. It should copy the pattern to the new activity and increment the IDs number automatically.
But there is a setting for this.
On the Projects window, find your project, highlight it, and find the Defaults tab in the bottom half of the screen. Make sure the option "Increment Activity ID based on selected Activity" is checked on.
If you want to edit existing IDs to match your pattern, then you can either use Edit->Renumber Activity IDs, or you can use a Global Change - here's how https://www.planacademy.com/tutorials/edit-activity-ids-primavera-p6-via-global-change/

How do I gain Control of a row in Tabular Layout in Oracle

This might be simple but I am new to Oracle. I am using Oracle 10g and have a form that lists our information from a linked table in a tabular Layout. The last column of data is a "list Item" item type that has the Element list of Enabled (T) and Disabled (F).
What I need is when a user changes this dropdown, to disabled, I want ONLY that row to have some of the columns be disabled and not the entire column.
This is also assuming on load of the form, it will disable and enable rows of data depending on what values are being pulled from the EnabledDisabled column in the database.
Thanks for the help!
Option 1: use the ENABLED item property.
Unfortunately Oracle Forms does not allow changing the ENABLED property of an item at the item instance level.
What you can do, however, is enable or disable the whole item when the user enters a record - use the WHEN-NEW-RECORD-INSTANCE trigger - depending on the value of the current record's value for the list item, the trigger would set the ENABLED property to PROPERTY_TRUE or PROPERTY_FALSE.
Of course, your list item would also have the same code in its WHEN-LIST-CHANGED trigger.
The downside to this approach is that the whole column will "look" disabled to the user, and they will not be able to select a different record using those disabled items.
Option 2: use the INSERT_ALLOWED and UPDATE_ALLOWED properties.
You can set these properties at the item instance level using SET_ITEM_INSTANCE_PROPERTY. You would set them in the block's POST-QUERY trigger, as well as in the list item's WHEN-LIST-CHANGED trigger.
This would not, however, change how the items look on the screen. To solve this, you could also set a visual attribute at the item instance level (e.g. change the items to use a dark gray background or something).
More comments.

VSTO Word 2007: How can a control be programmatically moved above/below the range of an existing control?

I am developing a Word 2007 document template with VSTO. The document has several RichTextContentControls and there is a visible ActionsPane with a treeview control where the nodes of the treeview are the names of the RichTextContentControls.
Users can re-order nodes by dragging/dropping nodes to new locations in the treeview. As nodes are dropped, the corresponding RichTextContentControls should be re-ordered according the new node locations.
I am able to find the Range of the control that the new control is supposed to be moved above of. Now I only need to find a way to simply...move the control to this new location.
How can I move a control above/below a range?
I did this with a bookmark inside of a RichTextControl to just move it above/below another one from two buttons in the actions pane. Like this for moving up where "bm" below equals the selected bookmark:
Dim pageBookmark As Microsoft.Office.Tools.Word.Bookmark
pageBookmark = Globals.ThisDocument.Controls.Item(bm)
pageBookmark.Range.Relocate(Direction:=Word.WdRelocate.wdRelocateUp)
For a tree view, it would be more complex, but I could see that you would want all your richtext controls to be indexed (maybe use the "tag" property) and then as you move them in your tree view, use the index to add/subtract from other indexes and then use the "Relocate" method in a loop that many times to get it to it's new location. Then you can loop and recreate the index. Application.ScreenUpdating = False at the start of the loops and set it back to = True at the end of the loop would stop the flicker as well.