use of org.gephi.graph.api.Graph in project gephi by gephi.
the class FilterControllerImpl method setSubQuery.
@Override
public void setSubQuery(Query query, Query subQuery) {
//Init subquery when new filter
if (subQuery.getParent() == null && subQuery != model.getCurrentQuery()) {
Graph graph = null;
if (model != null && model.getGraphModel() != null) {
graph = model.getGraphModel().getGraph();
} else {
GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(model.getWorkspace());
graph = graphModel.getGraph();
}
Filter filter = subQuery.getFilter();
if (filter instanceof NodeFilter || filter instanceof EdgeFilter || filter instanceof ElementFilter) {
FilterProcessor filterProcessor = new FilterProcessor();
filterProcessor.init(filter, graph);
}
}
model.setSubQuery(query, subQuery);
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class FilterControllerImpl method add.
@Override
public void add(Query query) {
AbstractQueryImpl absQuery = ((AbstractQueryImpl) query);
absQuery = absQuery.getRoot();
if (!model.hasQuery(absQuery)) {
model.addFirst(absQuery);
//Init filters with default graph
Graph graph = null;
if (model != null && model.getGraphModel() != null) {
graph = model.getGraphModel().getGraph();
} else {
GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(model.getWorkspace());
graph = graphModel.getGraph();
}
for (Query q : query.getDescendantsAndSelf()) {
Filter filter = q.getFilter();
if (filter instanceof NodeFilter || filter instanceof EdgeFilter || filter instanceof ElementFilter) {
FilterProcessor filterProcessor = new FilterProcessor();
filterProcessor.init(filter, graph);
}
}
}
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class FilterControllerImpl method filter.
@Override
public GraphView filter(Query query) {
FilterProcessor processor = new FilterProcessor();
GraphModel graphModel = model.getGraphModel();
Graph result = processor.process((AbstractQueryImpl) query, graphModel);
return result.getView();
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class LegacyDataPersistenceProvider method readData.
public void readData(XMLStreamReader reader, GraphModel graphModel, LegacyMapHelper helper) throws XMLStreamException {
Graph graph = graphModel.getGraph();
boolean end = false;
while (reader.hasNext() && !end) {
Integer eventType = reader.next();
if (eventType.equals(XMLEvent.START_ELEMENT)) {
String name = reader.getLocalName();
if (ELEMENT_NODEDATA.equalsIgnoreCase(name)) {
Node node = graph.getNode(helper.preToIdMap.get(reader.getAttributeValue(null, "nodepre")));
readNodeData(reader, node);
} else if (ELEMENT_EDGEDATA.equalsIgnoreCase(name)) {
Node source = graph.getNode(helper.preToIdMap.get(reader.getAttributeValue(null, "sourcepre")));
Node target = graph.getNode(helper.preToIdMap.get(reader.getAttributeValue(null, "targetpre")));
Edge edge = graph.getEdge(source, target, 0);
readEdgeData(reader, edge);
}
} else if (eventType.equals(XMLStreamReader.END_ELEMENT)) {
if (ELEMENT_DATA.equalsIgnoreCase(reader.getLocalName())) {
end = true;
}
}
}
}
use of org.gephi.graph.api.Graph in project gephi by gephi.
the class LegacyGraphPersistenceProvider method readEdges.
public void readEdges(XMLStreamReader reader, GraphModel graphModel, GraphFactory factory, LegacyMapHelper mapHelper) throws XMLStreamException {
Graph graph = graphModel.getGraph();
boolean end = false;
while (reader.hasNext() && !end) {
int type = reader.next();
switch(type) {
case XMLStreamReader.START_ELEMENT:
String source = null;
String target = null;
String id = null;
Boolean directed = false;
Float weight = 0f;
for (int i = 0; i < reader.getAttributeCount(); i++) {
String attName = reader.getAttributeName(i).getLocalPart();
if ("id".equalsIgnoreCase(attName)) {
id = reader.getAttributeValue(i);
} else if ("source".equalsIgnoreCase(attName)) {
source = reader.getAttributeValue(i);
} else if ("target".equalsIgnoreCase(attName)) {
target = reader.getAttributeValue(i);
} else if ("directed".equalsIgnoreCase(attName)) {
directed = Boolean.parseBoolean(reader.getAttributeValue(i));
} else if ("weight".equalsIgnoreCase(attName)) {
weight = Float.parseFloat(reader.getAttributeValue(i));
}
}
if (source == null || target == null || id == null) {
throw new IllegalArgumentException("source, target or id cannot be null");
}
Node srcNode = graph.getNode(mapHelper.preToIdMap.get(source));
Node destNode = graph.getNode(mapHelper.preToIdMap.get(target));
Edge edge = factory.newEdge(id, srcNode, destNode, 0, weight.doubleValue(), directed);
graph.addEdge(edge);
break;
case XMLStreamReader.END_ELEMENT:
if (ELEMENT_EDGES.equalsIgnoreCase(reader.getLocalName())) {
end = true;
}
break;
}
}
}
Aggregations