Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 11 additions & 16 deletions bundle/src/main/java/com/jfrog/ide/eclipse/ui/ComponentDetails.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import static com.jfrog.ide.eclipse.ui.UiUtils.createLabel;
import static com.jfrog.ide.eclipse.ui.UiUtils.setGridLayout;

import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
Expand All @@ -14,9 +13,8 @@
import org.eclipse.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.GeneralInfo;

import com.jfrog.ide.common.nodes.FileIssueNode;
import com.jfrog.ide.eclipse.configuration.XrayGlobalConfiguration;
import com.jfrog.ide.eclipse.configuration.XrayServerConfigImpl;

Expand All @@ -40,7 +38,7 @@ public ComponentDetails(Composite parent, String title) {
recreateComponentDetails();
}

public abstract void createDetailsView(DependencyTree node);
public abstract void createDetailsView(FileIssueNode node);

public void recreateComponentDetails() {
if (isDisposed()) {
Expand Down Expand Up @@ -85,13 +83,13 @@ public void credentialsSet() {

protected void createComponentsPanel() {
createLabel(this, title);
scrolledComposite = new ScrolledComposite(this, SWT.BORDER | SWT.V_SCROLL | SWT.FILL);
scrolledComposite = new ScrolledComposite(this, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FILL);
scrolledComposite.setBackground(getBackground());
setGridLayout(scrolledComposite, 1, false);
componentDetailsPanel = new Panel(scrolledComposite);
componentDetailsPanel.setBackground(scrolledComposite.getBackground());
setGridLayout(componentDetailsPanel, 2, false);
UiUtils.createDisabledTextLabel(componentDetailsPanel, "Component information is not available");
UiUtils.createDisabledTextLabel(componentDetailsPanel, "Issue information is not available");
scrolledComposite.setContent(componentDetailsPanel);
}

Expand All @@ -100,20 +98,17 @@ protected void createComponentsPanel() {
*
* @param node - Extract the component information from this node.
*/
protected void createCommonInfo(DependencyTree node) {
protected void createCommonInfo(FileIssueNode node) {
for (Control control : componentDetailsPanel.getChildren()) {
control.dispose();
}
GeneralInfo generalInfo = ObjectUtils.defaultIfNull(node.getGeneralInfo(), new GeneralInfo());
if (!StringUtils.equalsIgnoreCase("Npm", generalInfo.getPkgType())) {
addSection("Group:", generalInfo.getGroupId());
}
addSection("Title:", node.getTitle());
addSection("Reporter:", node.getReporterType().getScannerName());
addSection("Severity:", node.getSeverity().getSeverityName());
addSection("Full Description:", node.getFullDescription());
addSection("File Path:", node.getFilePath());
addSection("Line Snippet:", node.getLineSnippet());

addSection("Artifact:", generalInfo.getArtifactId());
addSection("Version:", generalInfo.getVersion());
addSection("Type:", StringUtils.capitalize(generalInfo.getPkgType()));
addSection("Path:", generalInfo.getPath());
refreshPanel();
}

protected void addSection(String name, String content) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import org.jfrog.build.extractor.scan.DependencyTree;

import com.google.common.collect.Lists;
import com.jfrog.ide.common.nodes.FileIssueNode;
import com.jfrog.ide.common.nodes.FileTreeNode;
import com.jfrog.ide.eclipse.utils.ProjectsMap;

/**
* Base class for the issues tree.
Expand Down Expand Up @@ -70,8 +70,11 @@ public void selectionChanged(SelectionChangedEvent event) {
if (event.getSelection().isEmpty()) {
return;
}
DependencyTree selection = (DependencyTree) treeViewer.getStructuredSelection().getFirstElement();
onClick(selection);
Object selectedElement = treeViewer.getStructuredSelection().getFirstElement();
if (selectedElement instanceof FileIssueNode) {
FileIssueNode issueNode = (FileIssueNode) selectedElement;
onClick(issueNode);
}
}
});
}
Expand All @@ -80,7 +83,7 @@ public void setComponentDetails(ComponentDetails componentDetails) {
this.componentDetails = componentDetails;
}

protected abstract void onClick(DependencyTree selection);
protected abstract void onClick(FileIssueNode selection);

private static PatternFilter createFilter() {
PatternFilter patternFilter = new PatternFilter();
Expand Down Expand Up @@ -114,7 +117,7 @@ public void reset() {
public void addScanResults(List<FileTreeNode> results) {
scanResults.addAll(results);
}

public void showResultsOnTree() {
treeViewer.setInput(scanResults);
}
Expand Down
3 changes: 2 additions & 1 deletion bundle/src/main/java/com/jfrog/ide/eclipse/ui/UiUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@
* @author yahavi
*/
public class UiUtils {
private static final int GRID_VERTICAL_SPACER = 3;

public static void setGridLayout(Composite composite, int numColumns, boolean makeColumnsEqualWidth) {
composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(numColumns).equalWidth(makeColumnsEqualWidth)
.spacing(LayoutConstants.getSpacing().x, 0).create());
.spacing(LayoutConstants.getSpacing().x, GRID_VERTICAL_SPACER).create());
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.jfrog.ide.eclipse.ui.issues;

import org.apache.commons.lang3.StringUtils;
import org.eclipse.swt.widgets.Composite;
import org.jfrog.build.extractor.scan.DependencyTree;
import org.jfrog.build.extractor.scan.Issue;

import com.jfrog.ide.common.nodes.FileIssueNode;
import com.jfrog.ide.common.nodes.ScaIssueNode;
import com.jfrog.ide.common.parse.Applicability;
import com.jfrog.ide.eclipse.ui.ComponentDetails;

/**
Expand All @@ -23,15 +24,23 @@ public static ComponentIssueDetails getInstance() {
}

private ComponentIssueDetails(Composite parent) {
super(parent, "Component Details");
super(parent, "Issue Details");
}

@Override
public void createDetailsView(DependencyTree node) {
public void createDetailsView(FileIssueNode node) {
createCommonInfo(node);
Issue topIssue = node.getTopIssue();
addSection("Top Issue Severity:", StringUtils.capitalize(topIssue.getSeverity().toString()));
addSection("Issues Count:", String.valueOf(node.getIssueCount()));
if (node instanceof ScaIssueNode ) {
ScaIssueNode scaNode = (ScaIssueNode) node;
Applicability applicability = scaNode.getApplicability();
addSection("Component Name:", scaNode.getComponentName());
addSection("Component Version:", scaNode.getComponentVersion());
addSection("Fixed Versions:", scaNode.getFixedVersions());
addSection("Applicability:", applicability != null ? applicability.getValue() : "");
} else {
addSection("Location:", "row: " + node.getRowStart() + " col: " + node.getColStart());
addSection("Reason:", node.getReason());
}
refreshPanel();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,15 @@ public IssuesTab(CTabFolder parent) {
// Right
SashForm verticalDivision = new SashForm(horizontalDivision, SWT.VERTICAL);
ComponentDetails componentDetails = ComponentIssueDetails.createComponentIssueDetails(verticalDivision);
ComponentIssueTable componentIssueTable = new ComponentIssueTable(verticalDivision);

registerTreeListeners(componentDetails, componentIssueTable);
registerTreeListeners(componentDetails);
horizontalDivision.setWeights(new int[] { 1, 4 });
parent.setSelection(tab);
tab.setControl(horizontalDivision);
}

private void registerTreeListeners(ComponentDetails componentDetails, ComponentIssueTable componentIssueTable) {
private void registerTreeListeners(ComponentDetails componentDetails) {
IssuesTree issuesTree = IssuesTree.getInstance();
issuesTree.setComponentDetails(componentDetails);
issuesTree.setComponentIssueTable(componentIssueTable);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.jfrog.build.extractor.scan.DependencyTree;

import com.google.common.collect.Lists;
import com.jfrog.ide.common.nodes.FileIssueNode;
import com.jfrog.ide.common.nodes.FileTreeNode;
import com.jfrog.ide.eclipse.ui.SearchableTree;

Expand All @@ -17,7 +16,6 @@
public class IssuesTree extends SearchableTree {

private static IssuesTree instance;
private ComponentIssueTable componentIssueTable;
private TreeViewerColumn issuesCountColumn;

public static void createIssuesTree(Composite parent) {
Expand All @@ -34,13 +32,8 @@ private IssuesTree(Composite parent) {
}

@Override
protected void onClick(DependencyTree selection) {
protected void onClick(FileIssueNode selection) {
componentDetails.createDetailsView(selection);
componentIssueTable.updateIssuesTable(getSelectedNodes());
}

public void setComponentIssueTable(ComponentIssueTable componentIssueTable) {
this.componentIssueTable = componentIssueTable;
}

@Override
Expand All @@ -50,7 +43,6 @@ public void applyFiltersForAllProjects() {
@Override
public void reset() {
super.reset();
componentIssueTable.updateIssuesTable(Lists.newArrayList());
issuesCountColumn.getColumn().setText("Issues");
treeViewer.setInput(new ArrayList<FileTreeNode>());
}
Expand Down