@Override public void visitGraph(Graph graph) throws PaintException { m_focusVertices.clear(); Criteria[] criterias = m_graphContainer.getCriteria(); for(Criteria criteria : criterias){ try{ VertexHopCriteria c = (VertexHopCriteria) criteria; m_focusVertices.addAll(c.getVertices()); }catch(ClassCastException e){} } m_statusMap.clear(); m_statusMap.putAll(graph.getVertexStatus()); m_edgeStatusMap.clear(); m_edgeStatusMap.putAll(graph.getEdgeStatus()); }
if (!criteria.getVertices().equals(refs)) { m_graphContainer.clearCriteria(); refs.forEach(vertexRef -> m_graphContainer.addCriteria(new VertexHopGraphProvider.DefaultVertexHopCriteria(vertexRef)));
if (!criteria.getVertices().equals(refs)) { m_graphContainer.clearCriteria(); refs.forEach(vertexRef -> m_graphContainer.addCriteria(new VertexHopGraphProvider.DefaultVertexHopCriteria(vertexRef)));
@Override public void centerSearchSuggestion(SearchSuggestion searchSuggestion) { LOG.debug("SearchBox->centerSearchSuggestion: called with searchSuggestion: {}", searchSuggestion); SearchResult searchResult = new SearchResult(searchSuggestion.getNamespace(), searchSuggestion.getId(), searchSuggestion.getLabel(), searchSuggestion.getQuery(), searchSuggestion.isCollapsible(), searchSuggestion.isCollapsed()); Set<VertexRef> vRefs = new TreeSet<>(); Multiset<SearchProvider> keys = m_suggestionMap.keys(); for(SearchProvider key : keys){ Collection<SearchResult> searchResults = m_suggestionMap.get(key); if(searchResults.contains(searchResult)) { key.onCenterSearchResult(searchResult, m_operationContext.getGraphContainer()); vRefs.addAll(key.getVertexRefsBy(searchResult, m_operationContext.getGraphContainer())); break; } } // Hack for now, change to a better way. VertexHopCriteria criteria = VertexHopGraphProvider.getWrappedVertexHopCriteria(m_operationContext.getGraphContainer()); DefaultVertexRef vertexRef = new DefaultVertexRef(searchResult.getNamespace(), searchResult.getId(), searchResult.getLabel()); if(criteria.getVertices().contains(vertexRef)){ vRefs.add(vertexRef); } GraphContainer graphContainer = m_operationContext.getGraphContainer(); MapViewManager mapViewManager = graphContainer.getMapViewManager(); mapViewManager.setBoundingBox(graphContainer.getGraph().getLayout().computeBoundingBox(vRefs)); }
private void removeIfSuggMapEmpty(SearchResult searchResult, GraphContainer graphContainer) { Criteria[] criterias = graphContainer.getCriteria(); for (Criteria criteria : criterias) { if (criteria == null || !(criteria instanceof VertexHopCriteria)) { continue; } VertexHopCriteria crit = (VertexHopCriteria) criteria; String critNameSpace = crit.getNamespace(); if (critNameSpace == null) { continue; } String critId = crit.getId(); if (critId == null) { continue; } String critLabel = crit.getLabel(); if (critLabel == null) { continue; } String resultNameSpace = searchResult.getNamespace(); String resultId = searchResult.getId(); String resultLabel = searchResult.getLabel(); if (critNameSpace.equals(resultNameSpace) && critId.equals(resultId) && critLabel.equals(resultLabel)) { graphContainer.removeCriteria(crit); } } }
private void removeIfSuggMapEmpty(SearchResult searchResult, GraphContainer graphContainer) { Criteria[] criterias = graphContainer.getCriteria(); for (Criteria criteria : criterias) { if (criteria == null || !(criteria instanceof VertexHopCriteria)) { continue; } VertexHopCriteria crit = (VertexHopCriteria) criteria; String critNameSpace = crit.getNamespace(); if (critNameSpace == null) { continue; } String critId = crit.getId(); if (critId == null) { continue; } String critLabel = crit.getLabel(); if (critLabel == null) { continue; } String resultNameSpace = searchResult.getNamespace(); String resultId = searchResult.getId(); String resultLabel = searchResult.getLabel(); if (critNameSpace.equals(resultNameSpace) && critId.equals(resultId) && critLabel.equals(resultLabel)) { graphContainer.removeCriteria(crit); } } }
@Override public void execute(List<VertexRef> targets, final OperationContext operationContext) { final GraphContainer graphContainer = operationContext.getGraphContainer(); final Set<VertexHopCriteria> criteriaForGraphContainer = Criteria.getCriteriaForGraphContainer(graphContainer, VertexHopCriteria.class); boolean didRemoveCriteria = false; for (VertexHopCriteria eachCriteria : criteriaForGraphContainer) { boolean shouldRemove = true; for (VertexRef vertex : eachCriteria.getVertices()) { if (targets.contains(vertex)) { // The criteria references at least one of our targets, so // we shouldn't remove it shouldRemove = false; break; } } if (shouldRemove) { graphContainer.removeCriteria(eachCriteria); didRemoveCriteria = true; } } if (didRemoveCriteria) { // Only update the layout if any changes were made graphContainer.redoLayout(); } }
@Override public void centerSearchSuggestion(SearchSuggestion searchSuggestion) { LOG.debug("SearchBox->centerSearchSuggestion: called with searchSuggestion: {}", searchSuggestion); SearchResult searchResult = new SearchResult(searchSuggestion.getNamespace(), searchSuggestion.getId(), searchSuggestion.getLabel(), searchSuggestion.getQuery(), searchSuggestion.isCollapsible(), searchSuggestion.isCollapsed()); Set<VertexRef> vRefs = new TreeSet<>(); Multiset<SearchProvider> keys = m_suggestionMap.keys(); for(SearchProvider key : keys){ Collection<SearchResult> searchResults = m_suggestionMap.get(key); if(searchResults.contains(searchResult)) { key.onCenterSearchResult(searchResult, m_operationContext.getGraphContainer()); vRefs.addAll(key.getVertexRefsBy(searchResult, m_operationContext.getGraphContainer())); break; } } // Hack for now, change to a better way. VertexHopCriteria criteria = VertexHopGraphProvider.getWrappedVertexHopCriteria(m_operationContext.getGraphContainer()); DefaultVertexRef vertexRef = new DefaultVertexRef(searchResult.getNamespace(), searchResult.getId(), searchResult.getLabel()); if(criteria.getVertices().contains(vertexRef)){ vRefs.add(vertexRef); } GraphContainer graphContainer = m_operationContext.getGraphContainer(); MapViewManager mapViewManager = graphContainer.getMapViewManager(); mapViewManager.setBoundingBox(graphContainer.getGraph().getLayout().computeBoundingBox(vRefs)); }
@Override public void execute(List<VertexRef> targets, final OperationContext operationContext) { final GraphContainer graphContainer = operationContext.getGraphContainer(); final Set<VertexHopCriteria> criteriaForGraphContainer = Criteria.getCriteriaForGraphContainer(graphContainer, VertexHopCriteria.class); boolean didRemoveCriteria = false; for (VertexHopCriteria eachCriteria : criteriaForGraphContainer) { boolean shouldRemove = true; for (VertexRef vertex : eachCriteria.getVertices()) { if (targets.contains(vertex)) { // The criteria references at least one of our targets, so // we shouldn't remove it shouldRemove = false; break; } } if (shouldRemove) { graphContainer.removeCriteria(eachCriteria); didRemoveCriteria = true; } } if (didRemoveCriteria) { // Only update the layout if any changes were made graphContainer.redoLayout(); } }
private void updateTokenFieldList(GraphContainer graphContainer) { final List<SearchSuggestion> suggestions = Lists.newArrayList(); final Criteria[] criterium = graphContainer.getCriteria(); for (Criteria criteria : criterium) { try { CollapsibleCriteria crit = (CollapsibleCriteria) criteria; SearchSuggestion suggestion = new SearchSuggestion(crit.getNamespace(), crit.getId(), crit.getLabel()); suggestion.setCollapsible(true); suggestion.setCollapsed(crit.isCollapsed()); suggestions.add(suggestion); continue; } catch (ClassCastException e) {} try { VertexHopCriteria crit = (VertexHopCriteria) criteria; SearchSuggestion suggestion = new SearchSuggestion(crit.getNamespace(), crit.getId(), crit.getLabel()); suggestions.add(suggestion); continue; } catch (ClassCastException e) {} } getState().setFocused(suggestions); }
public void handleClick(Breadcrumb breadcrumb, GraphContainer graphContainer) { final GraphProvider targetGraphProvider = graphContainer.getTopologyServiceClient().getGraphProviderBy(breadcrumb.getTargetNamespace()); if (isLeaf(breadcrumb)) { if (breadcrumb.getSourceVertices().isEmpty()) { final List<VertexRef> defaultFocus = targetGraphProvider.getDefaults().getCriteria() .stream() .filter(c -> c instanceof VertexHopGraphProvider.VertexHopCriteria) .map(c -> ((VertexHopGraphProvider.VertexHopCriteria) c).getVertices()) .flatMap(Set::stream) .collect(Collectors.toList()); handleClick(graphContainer, targetGraphProvider, defaultFocus, breadcrumb); } else { List<VertexRef> oppositeVertices = breadcrumb.getSourceVertices().stream().flatMap(sourceVertex -> getOppositeVertices(graphContainer, breadcrumb.getTargetNamespace(), sourceVertex).stream()).collect(Collectors.toList()); handleClick(graphContainer, targetGraphProvider, oppositeVertices, breadcrumb); } } else { Breadcrumb next = getNext(breadcrumb); handleClick(graphContainer, targetGraphProvider, next.getSourceVertices(), breadcrumb); } }
public void handleClick(Breadcrumb breadcrumb, GraphContainer graphContainer) { final GraphProvider targetGraphProvider = graphContainer.getTopologyServiceClient().getGraphProviderBy(breadcrumb.getTargetNamespace()); if (isLeaf(breadcrumb)) { if (breadcrumb.getSourceVertices().isEmpty()) { final List<VertexRef> defaultFocus = targetGraphProvider.getDefaults().getCriteria() .stream() .filter(c -> c instanceof VertexHopGraphProvider.VertexHopCriteria) .map(c -> ((VertexHopGraphProvider.VertexHopCriteria) c).getVertices()) .flatMap(Set::stream) .collect(Collectors.toList()); handleClick(graphContainer, targetGraphProvider, defaultFocus, breadcrumb); } else { List<VertexRef> oppositeVertices = breadcrumb.getSourceVertices().stream().flatMap(sourceVertex -> getOppositeVertices(graphContainer, breadcrumb.getTargetNamespace(), sourceVertex).stream()).collect(Collectors.toList()); handleClick(graphContainer, targetGraphProvider, oppositeVertices, breadcrumb); } } else { Breadcrumb next = getNext(breadcrumb); handleClick(graphContainer, targetGraphProvider, next.getSourceVertices(), breadcrumb); } }
private void updateTokenFieldList(GraphContainer graphContainer) { final List<SearchSuggestion> suggestions = Lists.newArrayList(); final Criteria[] criterium = graphContainer.getCriteria(); for (Criteria criteria : criterium) { try { CollapsibleCriteria crit = (CollapsibleCriteria) criteria; SearchSuggestion suggestion = new SearchSuggestion(crit.getNamespace(), crit.getId(), crit.getLabel()); suggestion.setCollapsible(true); suggestion.setCollapsed(crit.isCollapsed()); suggestions.add(suggestion); continue; } catch (ClassCastException e) {} try { VertexHopCriteria crit = (VertexHopCriteria) criteria; SearchSuggestion suggestion = new SearchSuggestion(crit.getNamespace(), crit.getId(), crit.getLabel()); suggestions.add(suggestion); continue; } catch (ClassCastException e) {} } getState().setFocused(suggestions); }
@Override public void execute(List<VertexRef> targets, final OperationContext operationContext) { if (targets == null || targets.isEmpty()) { return; } final GraphContainer graphContainer = operationContext.getGraphContainer(); final Set<VertexHopCriteria> criteriaForGraphContainer = Criteria.getCriteriaForGraphContainer(graphContainer, VertexHopCriteria.class); for (VertexHopCriteria eachCriteria : criteriaForGraphContainer) { for (VertexRef eachTarget : targets) { if (eachCriteria.getVertices().contains(eachTarget)) { graphContainer.removeCriteria(eachCriteria); } } } graphContainer.redoLayout(); }
private void removeVerticesWhichAreNotVisible(final Collection<Vertex> displayVertices) { for(Criteria criteria : getCriteria()) { if (criteria instanceof VertexHopCriteria // CollapsibleCriteria may contain not visible vertices (when collapsed) // and multiple collapsible criteria may contain the same vertices. // We do not remove them manually for now && !(criteria instanceof CollapsibleCriteria)) { final VertexHopCriteria hopCriteria = (VertexHopCriteria) criteria; for(VertexRef vRef : hopCriteria.getVertices()){ if(!displayVertices.contains(vRef)){ removeCriteria(hopCriteria); } } } } }
@Override public void execute(List<VertexRef> targets, final OperationContext operationContext) { if (targets == null || targets.isEmpty()) { return; } final GraphContainer graphContainer = operationContext.getGraphContainer(); final Set<VertexHopCriteria> criteriaForGraphContainer = Criteria.getCriteriaForGraphContainer(graphContainer, VertexHopCriteria.class); for (VertexHopCriteria eachCriteria : criteriaForGraphContainer) { for (VertexRef eachTarget : targets) { if (eachCriteria.getVertices().contains(eachTarget)) { graphContainer.removeCriteria(eachCriteria); } } } graphContainer.redoLayout(); }
private void removeVerticesWhichAreNotVisible(final Collection<Vertex> displayVertices) { for(Criteria criteria : getCriteria()) { if (criteria instanceof VertexHopCriteria // CollapsibleCriteria may contain not visible vertices (when collapsed) // and multiple collapsible criteria may contain the same vertices. // We do not remove them manually for now && !(criteria instanceof CollapsibleCriteria)) { final VertexHopCriteria hopCriteria = (VertexHopCriteria) criteria; for(VertexRef vRef : hopCriteria.getVertices()){ if(!displayVertices.contains(vRef)){ removeCriteria(hopCriteria); } } } } }
@Override public String toString() { return "Namespace:"+getNamespace()+", ID:"+getId()+", Label:"+getLabel(); }
@Override public void visitGraph(Graph graph) throws PaintException { m_focusVertices.clear(); Criteria[] criterias = m_graphContainer.getCriteria(); for(Criteria criteria : criterias){ try{ VertexHopCriteria c = (VertexHopCriteria) criteria; m_focusVertices.addAll(c.getVertices()); }catch(ClassCastException e){} } m_statusMap.clear(); m_statusMap.putAll(graph.getVertexStatus()); m_edgeStatusMap.clear(); m_edgeStatusMap.putAll(graph.getEdgeStatus()); }
public boolean isEmpty() { Set<VertexRef> vertices = getVertices(); if (vertices == null) { return false; } return vertices.isEmpty(); } }