How to select a node and start renaming in a SWT tree? - swt

How to select a node and start renaming in a SWT Tree? After single mouse click on the node only I am able to use F2. My usecase is - immediately after adding a new Tree node I should be able to press F2 and start renaming. But just setting focus and selection on the tree does not select the node explicitly. Is there any other code?
treeViewer.setSelection(new StructuredSelection(newNode), true);
treeViewer.getTree().setFocus();
This does not seem to work.

What exactly is newNode? It should be an element from your content provider.
Also, a lot of people have been having trouble with this limitation of the SWT/JFace toolkits. See this bug and this question.

Related

Autodesk forge highlight child object

Recently i've been working on this repository https://github.com/xiaodongliang/forgeviewer_embed_in_powerbi_report to build a custom visual in Power BI to visualize the issues extracted from Bim track'S API.
The idea was visualizing them in associaton to the model's ROOMS.
In order to do that I worked with a NWC file, so i cuold export rooms as a geometry.
What i would like to do now is to highligt the rooms if a connected issue is selected from a table.
The problem is When i select an issue from a table, in the selection tree i can see highlighted the parent object name (ROOM) instead of the child (solid), and i think that is why i can't achieve my purpose (if not please correct me).
what i have
what i wold like to do
Does anyone know a way to do that?
If you would like to change your selection between (FIRST_OBJECT, LAST_OBJECT, LEAF_OBJECT) you can change viewer selection settings in order to test:
If you would like to achieve this programmatically :
Viewer.setSelectionMode();
could help you as well.
If I well understood, you want to highlight the child (which contain the mesh) instead of the parent.
The object highlight (isolate) is done in /forgePowerbiView/src/visual.ts with this code:
const dbIds = options.dataViews[0].table.rows.map(r =>
<number>r[0].valueOf());
console.log('dbIds: ' +dbIds)
this.forge_viewer.showAll();
this.forge_viewer.impl.setGhostingBrightness(true); //for isolate effect
this.forge_viewer.isolate(dbIds);
Take a look at this link Enumerating leaf nodes on Viewer. This will help you to get the dbIds you want to isolate.

deleting an element in debug mode in eclipse

I'm running my code in debug mode in eclipse and in the middle of it, I want to change the size of a List,say from 9 to 6, by deleting 3 elements.
But I'm not seeing any option to do that, in fact what I'm seeing is the option to change the values present in the elements.
So how can I delete the elements itself from the List ?
Make sure you have the "Variables" tabs on eclipse "Debug" view focused on your current evaluated code.
In "Debug" view, right-click on "Value" cell inside the "Variables" table, and select "Change value".
You will have an option to write a Java expression so you can add something like:
yourList.add("newItem"); or: yourList.remove(0);
Make sure to reload the variable ("F5") once you are done and you will see the updated state.
Note that not every List implementation supports add() or remove() methods.
See this for more details if you encounter an exception.
See also:
Eclipse docs - Variables view
Eclipse docs - Change variable value
I was looking to do something similar. I had an ArrayList containing 1 element, and I wanted to remove it.
I tried #Leet-Falcon's answer, e.g. yourList.remove(0), and Eclipse replied "Unsupported operation exception".
What ended up working was : return new java.util.ArrayList<>();
Looks like the "Debug Shell" view allows this, or additionally if it's a simple enough list, the following simple Change Variable can also work:
new ArrayList<String>(java.util.Arrays.asList("1","2")) // or any other simple list
Modifying Java Collection (List) Variable in Eclipse Debugger

Custom content assist for default java editor in Eclipse

I'm currently trying to develop an Eclipse Plugin to support code replacement, like what the default content assist in Eclipse do. What I want to implement is something like "insert argument names automatically on method completion with visualized box around the argument" and I can "use the Tab key to navigate between the inserted names" and "while navigating, list of optional variables for current argument can be displayed and be chosen".
In short, it comes to two questions:
How to add the visualized box around the already existed variable or even Java keywords that need replacement? And at the meanwhile I can use Tab key to switch between these boxes.
How to display a list of candidates to select from when I trigger on the box?
By now I only figure out the extension point : org.eclipse.jdt.ui.javaCompletionProposalComputer may be useful, but I have no idea where to start at? Thanks in advance.
Oh, finally I've solved it myself...
For the 'box', it should be the LinkedModeModel, this class should work with LinkedPositionGroup and LinkedPosition to add mutiple boxes. And we should use LinkedModeUI to set it up.
For the content assistant, there's no need to use the extension point. There is a ProposalPosition class which extends LinkedPosition for you to add your proposals for the 'box' in its constructor. And we can simply use the CompletionProposal to construct a ICompletionProposal array as the argument of ProposalPosition's constructor.

eclipse - how to change package explorer sorting order (don't want lexicographic sorting)?

Is there a way I can have it:
Sonication1,
Sonication2,
Sonication3...
I think you can't. Change naming if possible: Sonication01, Sonication02, ..., Sonication10, Sonication11 to get wanted order.
I believe that it is possible but it is a long and manual process.
You can select the properties of the Java project and click properties. Then, go to Java Build Path and selecting 'Order and Export.' There, you would move the wanted file up and down using the buttons and clicking apply.
I hope that this would answer your question.

Dropping elements into a dynatree

I am just starting out with dynatree (which is indeed v. cool), but I have a non-standard use for it: sorting terms from a long list into the hierarchical Dynatree. Specifically, I want to drag-and-drop from outside the Dynatree onto a Dynatree element--preferably exploiting Dynatree's spring-loaded folders rather than expecting the user to manually open the relevant categories beforehand.
Could I get some specific guidance on how to achieve my dreams?
Thanks,
Steve Upstill
One of he drag'n'drop samples seems to implement your use case:
You can drag the 'Drag me around' box over the right tree.
http://wwwendt.de/tech/dynatree/doc/sample-dnd3.html
The box is a simple query.draggable.
The tree receives the standard events (onDragEnter, onDragOver, onDrop, onDragLeave).
Make sure to enable the autoExpandMS option.
Hope this helps
Martin