Merge pull request #6491 from gdicristofaro/7046-programmaticNav

7046 programmatic navigation
This commit is contained in:
Richard Cordovano 2020-11-24 14:14:56 -05:00 committed by GitHub
commit af26da9f4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -460,26 +460,27 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
* If one of the child nodes of the root node is to be selected, select * If one of the child nodes of the root node is to be selected, select
* it. * it.
*/ */
SwingUtilities.invokeLater(() -> { if (rootNode instanceof TableFilterNode) {
if (rootNode instanceof TableFilterNode) { NodeSelectionInfo selectedChildInfo = ((TableFilterNode) rootNode).getChildNodeSelectionInfo();
NodeSelectionInfo selectedChildInfo = ((TableFilterNode) rootNode).getChildNodeSelectionInfo(); if (null != selectedChildInfo) {
if (null != selectedChildInfo) { Node[] childNodes = rootNode.getChildren().getNodes(true);
Node[] childNodes = rootNode.getChildren().getNodes(true); for (int i = 0; i < childNodes.length; ++i) {
for (int i = 0; i < childNodes.length; ++i) { Node childNode = childNodes[i];
Node childNode = childNodes[i]; if (selectedChildInfo.matches(childNode)) {
if (selectedChildInfo.matches(childNode)) { SwingUtilities.invokeLater(() -> {
try { try {
this.getExplorerManager().setSelectedNodes(new Node[]{childNode}); this.getExplorerManager().setExploredContextAndSelection(this.rootNode, new Node[]{childNode});
} catch (PropertyVetoException ex) { } catch (PropertyVetoException ex) {
LOGGER.log(Level.SEVERE, "Failed to select node specified by selected child info", ex); LOGGER.log(Level.SEVERE, "Failed to select node specified by selected child info", ex);
} }
break; });
}
break;
} }
((TableFilterNode) rootNode).setChildNodeSelectionInfo(null);
} }
((TableFilterNode) rootNode).setChildNodeSelectionInfo(null);
} }
}); }
/* /*
* The table setup is done, so any added/removed events can now be * The table setup is done, so any added/removed events can now be
@ -528,7 +529,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
int padding = 8; int padding = 8;
int totalColumnWidth = 0; int totalColumnWidth = 0;
int cntMaxSizeColumns =0; int cntMaxSizeColumns = 0;
// Calulate the width for each column keeping track of the number // Calulate the width for each column keeping track of the number
// of columns that were set to columnwidthLimit. // of columns that were set to columnwidthLimit.
@ -555,7 +556,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
totalColumnWidth += columnWidth; totalColumnWidth += columnWidth;
if( columnWidth == columnWidthLimit) { if (columnWidth == columnWidthLimit) {
cntMaxSizeColumns++; cntMaxSizeColumns++;
} }
} }
@ -568,18 +569,18 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
int extraWidth = 0; int extraWidth = 0;
if (totalColumnWidth < outlineViewWidth) { if (totalColumnWidth < outlineViewWidth) {
if (cntMaxSizeColumns > 0) { if (cntMaxSizeColumns > 0) {
extraWidth = (int) ((outlineViewWidth - totalColumnWidth)/cntMaxSizeColumns); extraWidth = (int) ((outlineViewWidth - totalColumnWidth) / cntMaxSizeColumns);
} else { } else {
extraWidth = (int) ((outlineViewWidth - totalColumnWidth)/columnWidths.size()); extraWidth = (int) ((outlineViewWidth - totalColumnWidth) / columnWidths.size());
} }
} }
for(int column = 0; column < columnWidths.size(); column++) { for (int column = 0; column < columnWidths.size(); column++) {
int columnWidth = columnWidths.get(column); int columnWidth = columnWidths.get(column);
if(cntMaxSizeColumns > 0) { if (cntMaxSizeColumns > 0) {
if(columnWidth >= ((column == 0) ? 350 : 300)) { if (columnWidth >= ((column == 0) ? 350 : 300)) {
columnWidth += extraWidth; columnWidth += extraWidth;
} }
} else { } else {