public static Set<Vertex> collapseVertices(Set<Vertex> vertices, CollapsibleCriteria[] criteria) { final Set<Vertex> retval = new HashSet<>(); final Set<Vertex> verticesToProcess = new HashSet<>(vertices); // Replace all vertices by its collapsed representation for (CollapsibleCriteria collapsibleCriteria : criteria) { if (collapsibleCriteria.isCollapsed()) { final Set<VertexRef> verticesRepresentedByCollapsible = collapsibleCriteria.getVertices().stream() .filter(vertices::contains) .collect(Collectors.toSet()); verticesToProcess.removeAll(verticesRepresentedByCollapsible); retval.add(collapsibleCriteria.getCollapsedRepresentation()); } } // Not all vertices may be represented by a collapsed version - either their criteria is not collapsed // or it is a pure vertex - therefore those are added afterwards retval.addAll(verticesToProcess); verticesToProcess.clear(); return retval; }
private static CollapsibleCriteria getMatchingCriteria(GraphContainer graphContainer, String id) { CollapsibleCriteria[] criteria = VertexHopGraphProvider.getCollapsibleCriteriaForContainer(graphContainer); for (CollapsibleCriteria criterion : criteria) { if (criterion.getId().equals(id)) { return criterion; } } return null; }
private void collapseIfSuggMapEmpty(SearchResult searchResult, GraphContainer graphContainer) { //A special check for categories that were added then after re-login can't collapse boolean isDirty = false; Criteria[] criteria = graphContainer.getCriteria(); for (Criteria criterion : criteria) { if (criterion instanceof CollapsibleCriteria) { if (((CollapsibleCriteria) criterion).getLabel().equals(searchResult.getLabel())) { ((CollapsibleCriteria) criterion).setCollapsed(!((CollapsibleCriteria) criterion).isCollapsed()); isDirty = true; } } } if (isDirty) { graphContainer.redoLayout(); } }
@Override public void onToggleCollapse(SearchResult searchResult, GraphContainer graphContainer) { CollapsibleCriteria criteria = getMatchingCriteria(graphContainer, searchResult.getId()); if (criteria != null) { criteria.setCollapsed(!criteria.isCollapsed()); graphContainer.redoLayout(); } }
public static Map<VertexRef,Set<Vertex>> getMapOfVerticesToCollapsedVertices(CollapsibleCriteria[] criteria) { // Make a map of all of the vertices to their new collapsed representations Map<VertexRef,Set<Vertex>> vertexToCollapsedVertices = new TreeMap<VertexRef,Set<Vertex>>(new RefComparator()); for (CollapsibleCriteria criterium : criteria) { Set<VertexRef> criteriaVertices = criterium.getVertices(); if (criteriaVertices.size() > 0) { Vertex collapsedVertex = criterium.getCollapsedRepresentation(); for (VertexRef criteriaVertex : criteriaVertices) { Set<Vertex> collapsedVertices = vertexToCollapsedVertices.get(criteriaVertex); if (collapsedVertices == null) { collapsedVertices = new HashSet<Vertex>(); vertexToCollapsedVertices.put(criteriaVertex, collapsedVertices); } collapsedVertices.add(collapsedVertex); } } } return vertexToCollapsedVertices; }
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 static CollapsibleCriteria[] getCollapsibleCriteria(Criteria[] criteria, boolean onlyCollapsed) { List<CollapsibleCriteria> retval = new ArrayList<CollapsibleCriteria>(); if (criteria != null) { for (Criteria criterium : criteria) { try { CollapsibleCriteria hopCriteria = (CollapsibleCriteria)criterium; if (onlyCollapsed) { if (hopCriteria.isCollapsed()) { retval.add(hopCriteria); } } else { retval.add(hopCriteria); } } catch (ClassCastException e) {} } } return retval.toArray(new CollapsibleCriteria[0]); }
@Override public boolean containsVertexId(VertexRef id, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, id) == 0) { return true; } } return m_delegate.containsVertexId(id, criteria); }
@Override public void onToggleCollapse(SearchResult searchResult, GraphContainer graphContainer) { LOG.debug("SearchProvider.onToggleCollapse: called with search result: '{}'", searchResult); CollapsibleCriteria criteria = getMatchingCriteriaById(graphContainer, searchResult.getId()); if (criteria != null) { criteria.setCollapsed(!criteria.isCollapsed()); graphContainer.redoLayout(); } }
public static Map<VertexRef,Set<Vertex>> getMapOfVerticesToCollapsedVertices(CollapsibleCriteria[] criteria) { // Make a map of all of the vertices to their new collapsed representations Map<VertexRef,Set<Vertex>> vertexToCollapsedVertices = new TreeMap<VertexRef,Set<Vertex>>(new RefComparator()); for (CollapsibleCriteria criterium : criteria) { Set<VertexRef> criteriaVertices = criterium.getVertices(); if (criteriaVertices.size() > 0) { Vertex collapsedVertex = criterium.getCollapsedRepresentation(); for (VertexRef criteriaVertex : criteriaVertices) { Set<Vertex> collapsedVertices = vertexToCollapsedVertices.get(criteriaVertex); if (collapsedVertices == null) { collapsedVertices = new HashSet<Vertex>(); vertexToCollapsedVertices.put(criteriaVertex, collapsedVertices); } collapsedVertices.add(collapsedVertex); } } } return vertexToCollapsedVertices; }
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 static CollapsibleCriteria[] getCollapsibleCriteria(Criteria[] criteria, boolean onlyCollapsed) { List<CollapsibleCriteria> retval = new ArrayList<CollapsibleCriteria>(); if (criteria != null) { for (Criteria criterium : criteria) { try { CollapsibleCriteria hopCriteria = (CollapsibleCriteria)criterium; if (onlyCollapsed) { if (hopCriteria.isCollapsed()) { retval.add(hopCriteria); } } else { retval.add(hopCriteria); } } catch (ClassCastException e) {} } } return retval.toArray(new CollapsibleCriteria[0]); }
@Override public boolean containsVertexId(VertexRef id, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, id) == 0) { return true; } } return m_delegate.containsVertexId(id, criteria); }
public static Set<Vertex> collapseVertices(Set<Vertex> vertices, CollapsibleCriteria[] criteria) { final Set<Vertex> retval = new HashSet<>(); final Set<Vertex> verticesToProcess = new HashSet<>(vertices); // Replace all vertices by its collapsed representation for (CollapsibleCriteria collapsibleCriteria : criteria) { if (collapsibleCriteria.isCollapsed()) { final Set<VertexRef> verticesRepresentedByCollapsible = collapsibleCriteria.getVertices().stream() .filter(vertices::contains) .collect(Collectors.toSet()); verticesToProcess.removeAll(verticesRepresentedByCollapsible); retval.add(collapsibleCriteria.getCollapsedRepresentation()); } } // Not all vertices may be represented by a collapsed version - either their criteria is not collapsed // or it is a pure vertex - therefore those are added afterwards retval.addAll(verticesToProcess); verticesToProcess.clear(); return retval; }
@Override public void onToggleCollapse(SearchResult searchResult, GraphContainer graphContainer) { LOG.debug("SearchProvider->onToggleCollapse: called with search result: '{}'", searchResult); CollapsibleCriteria criteria = getMatchingCriteriaById(graphContainer, searchResult.getId()); if (criteria != null) { criteria.setCollapsed(!criteria.isCollapsed()); graphContainer.redoLayout(); } }
public static Map<VertexRef,Set<Vertex>> getMapOfVerticesToCollapsedVertices(CollapsibleCriteria[] criteria) { // Make a map of all of the vertices to their new collapsed representations Map<VertexRef,Set<Vertex>> vertexToCollapsedVertices = new TreeMap<VertexRef,Set<Vertex>>(new RefComparator()); for (CollapsibleCriteria criterium : criteria) { Set<VertexRef> criteriaVertices = criterium.getVertices(); if (criteriaVertices.size() > 0) { Vertex collapsedVertex = criterium.getCollapsedRepresentation(); for (VertexRef criteriaVertex : criteriaVertices) { Set<Vertex> collapsedVertices = vertexToCollapsedVertices.get(criteriaVertex); if (collapsedVertices == null) { collapsedVertices = new HashSet<Vertex>(); vertexToCollapsedVertices.put(criteriaVertex, collapsedVertices); } collapsedVertices.add(collapsedVertex); } } } return vertexToCollapsedVertices; }
private void collapseIfSuggMapEmpty(SearchResult searchResult, GraphContainer graphContainer) { //A special check for categories that were added then after re-login can't collapse boolean isDirty = false; Criteria[] criteria = graphContainer.getCriteria(); for (Criteria criterion : criteria) { if (criterion instanceof CollapsibleCriteria) { if (((CollapsibleCriteria) criterion).getLabel().equals(searchResult.getLabel())) { ((CollapsibleCriteria) criterion).setCollapsed(!((CollapsibleCriteria) criterion).isCollapsed()); isDirty = true; } } } if (isDirty) { graphContainer.redoLayout(); } }
public static CollapsibleCriteria[] getCollapsibleCriteria(Criteria[] criteria, boolean onlyCollapsed) { List<CollapsibleCriteria> retval = new ArrayList<CollapsibleCriteria>(); if (criteria != null) { for (Criteria criterium : criteria) { try { CollapsibleCriteria hopCriteria = (CollapsibleCriteria)criterium; if (onlyCollapsed) { if (hopCriteria.isCollapsed()) { retval.add(hopCriteria); } } else { retval.add(hopCriteria); } } catch (ClassCastException e) {} } } return retval.toArray(new CollapsibleCriteria[0]); }
@Override public Vertex getVertex(VertexRef reference, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, reference) == 0) { return collapsed; } } return m_delegate.getVertex(reference, criteria); }
private static CollapsibleCriteria getMatchingCriteriaById(GraphContainer graphContainer, String id) { CollapsibleCriteria[] criteria = VertexHopGraphProvider.getCollapsibleCriteriaForContainer(graphContainer); for (CollapsibleCriteria criterion : criteria) { if (criterion.getId().equals(id)) { return criterion; } } return null; }