use of org.gephi.preview.api.PreviewProperties in project gephi by gephi.
the class PDFExporter method execute.
@Override
public boolean execute() {
Progress.start(progress);
PreviewController controller = Lookup.getDefault().lookup(PreviewController.class);
controller.getModel(workspace).getProperties().putValue(PreviewProperty.VISIBILITY_RATIO, 1.0);
controller.refreshPreview(workspace);
PreviewProperties props = controller.getModel(workspace).getProperties();
Rectangle size = new Rectangle(pageSize);
if (landscape) {
size = new Rectangle(pageSize.rotate());
}
Color col = props.getColorValue(PreviewProperty.BACKGROUND_COLOR);
size.setBackgroundColor(new BaseColor(col.getRed(), col.getGreen(), col.getBlue()));
Document document = new Document(size);
PdfWriter pdfWriter = null;
try {
pdfWriter = PdfWriter.getInstance(document, stream);
pdfWriter.setPdfVersion(PdfWriter.PDF_VERSION_1_5);
pdfWriter.setFullCompression();
} catch (DocumentException ex) {
Exceptions.printStackTrace(ex);
}
document.open();
PdfContentByte cb = pdfWriter.getDirectContent();
cb.saveState();
props.putValue(PDFTarget.LANDSCAPE, landscape);
props.putValue(PDFTarget.PAGESIZE, size);
props.putValue(PDFTarget.MARGIN_TOP, new Float((float) marginTop));
props.putValue(PDFTarget.MARGIN_LEFT, new Float((float) marginLeft));
props.putValue(PDFTarget.MARGIN_BOTTOM, new Float((float) marginBottom));
props.putValue(PDFTarget.MARGIN_RIGHT, new Float((float) marginRight));
props.putValue(PDFTarget.PDF_CONTENT_BYTE, cb);
target = (PDFTarget) controller.getRenderTarget(RenderTarget.PDF_TARGET, workspace);
if (target instanceof LongTask) {
((LongTask) target).setProgressTicket(progress);
}
try {
controller.render(target, workspace);
} catch (Exception e) {
throw new RuntimeException(e);
}
cb.restoreState();
document.close();
Progress.finish(progress);
props.putValue(PDFTarget.PDF_CONTENT_BYTE, null);
props.putValue(PDFTarget.PAGESIZE, null);
return !cancel;
}
use of org.gephi.preview.api.PreviewProperties in project gephi-plugins-bootcamp by gephi.
the class NodesZOrdering method getItems.
@Override
public Item[] getItems(Graph graph) {
// Get the current preview model, little hack to get the current workspace from the graph
PreviewController previewController = Lookup.getDefault().lookup(PreviewController.class);
PreviewModel previewModel = previewController.getModel();
// Get the sort column from the properties, if any
PreviewProperties previewProperties = previewModel.getProperties();
final Column sortColumn = previewProperties.getValue(SORT_COLUMN);
// Get the standard node items from the node builder
Item[] nodeItems = super.getItems(graph);
if (sortColumn != null) {
// Sort by column
Arrays.sort(nodeItems, new Comparator<Item>() {
@Override
public int compare(Item o1, Item o2) {
Node n1 = (Node) o1.getSource();
Node n2 = (Node) o2.getSource();
Number s1 = (Number) n1.getAttribute(sortColumn);
Number s2 = (Number) n2.getAttribute(sortColumn);
double size1 = s1 == null ? Double.NEGATIVE_INFINITY : s1.doubleValue();
double size2 = s2 == null ? Double.NEGATIVE_INFINITY : s2.doubleValue();
return size1 > size2 ? 1 : size1 < size2 ? -1 : 0;
}
});
} else {
// Sort by node size
Arrays.sort(nodeItems, new Comparator<Item>() {
@Override
public int compare(Item o1, Item o2) {
Node n1 = (Node) o1.getSource();
Node n2 = (Node) o2.getSource();
float size1 = n1.size();
float size2 = n2.size();
return size1 > size2 ? 1 : size1 < size2 ? -1 : 0;
}
});
}
return nodeItems;
}
use of org.gephi.preview.api.PreviewProperties in project gephi-plugins-bootcamp by gephi.
the class JPGExporter method execute.
@Override
public boolean execute() {
PreviewController controller = Lookup.getDefault().lookup(PreviewController.class);
controller.getModel(workspace).getProperties().putValue(PreviewProperty.VISIBILITY_RATIO, 1.0);
controller.refreshPreview(workspace);
PreviewProperties props = controller.getModel(workspace).getProperties();
props.putValue("width", width);
props.putValue("height", height);
target = (G2DTarget) controller.getRenderTarget(RenderTarget.G2D_TARGET, workspace);
try {
target.refresh();
Graphics2D pg2 = (Graphics2D) target.getGraphics();
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
pg2.drawImage(img, null, 0, 0);
ImageIO.write(img, "jpg", stream);
stream.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
return true;
}
use of org.gephi.preview.api.PreviewProperties in project gephi by gephi.
the class PNGExporter method discardExportProperties.
private synchronized void discardExportProperties(PreviewModel m) {
PreviewProperties props = m.getProperties();
props.removeSimpleValue("width");
props.removeSimpleValue("height");
props.removeSimpleValue(PreviewProperty.MARGIN);
props.putValue(PreviewProperty.BACKGROUND_COLOR, oldColor);
}
use of org.gephi.preview.api.PreviewProperties in project gephi by gephi.
the class SVGExporter method execute.
@Override
public boolean execute() {
PreviewController controller = Lookup.getDefault().lookup(PreviewController.class);
controller.getModel(workspace).getProperties().putValue(PreviewProperty.VISIBILITY_RATIO, 1.0);
controller.refreshPreview(workspace);
PreviewProperties props = controller.getModel(workspace).getProperties();
props.putValue(SVGTarget.SCALE_STROKES, scaleStrokes);
props.putValue(PreviewProperty.MARGIN, new Float((float) margin));
target = (SVGTarget) controller.getRenderTarget(RenderTarget.SVG_TARGET, workspace);
if (target instanceof LongTask) {
((LongTask) target).setProgressTicket(progress);
}
try {
controller.render(target, workspace);
// creates SVG-to-SVG transcoder
SVGTranscoder t = new SVGTranscoder();
t.addTranscodingHint(SVGTranscoder.KEY_XML_DECLARATION, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
// sets transcoder input and output
TranscoderInput input = new TranscoderInput(target.getDocument());
// performs transcoding
try {
TranscoderOutput output = new TranscoderOutput(writer);
t.transcode(input, output);
} finally {
writer.close();
props.removeSimpleValue(PreviewProperty.MARGIN);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
Progress.finish(progress);
return !cancel;
}
Aggregations