SegmentationContext ctx = getContext();
if (ctx != null && !isExperimentMode()) {
- AnnotationManager am = ctx.getAnnotations();
- boolean hasObject = am.hasForegroundAnnotation()
- && am.hasBackgroundAnnotation();
- // a.setEnabled(ExportImageMapAction.class, hasObject);
- a.setEnabled(ExportImageMapAction.class, true);//change after demo
-
+ a.setEnabled(ExportImageMapAction.class, ctx.hasSegmentationMasks());
+
} else {
- //a.setEnabled(ExportImageMapAction.class, false);
- a.setEnabled(ExportImageMapAction.class, true);// change after demo
+ a.setEnabled(ExportImageMapAction.class, false);
}
}
@Override
public void run() {
- if (window.hasContext()) {
+ SegmentationContext ctx = window.getContext();
+
+ if (ctx.hasSegmentationMasks()) {
// Get options from user
ExportDialog dialog = new ExportDialog(window.getShell());
if (result != null) {
// Grab image and mask
- SegmentationContext ctx = window.getContext();
- SegmentationMask mask = ctx.getSegmentationMasks().get(0);
- BufferedImage image = ImageConverter.convert(ctx.getImageData());
-
- // Setup exporter
- Exporter exporter = new Exporter(image, mask);
- exporter.setEffect(result.effect);
- exporter.setHtmlFile(result.html);
- exporter.setImageFile(result.image);
- exporter.setObjectLink(result.link);
- exporter.setExportShape(result.shape);
- exporter.setObjectDescription(result.description);
- String label = SegmentationView.comboLabel.getText();
- if(label.indexOf('{') != -1)
- {
- label = label.substring(0,label.indexOf('{')-1);
- }
- exporter.setTitle(label);
- // Export
- try {
- exporter.export(result.folder);
- } catch (IOException e) {
- handleError(e);
- return;
- } catch (ExportException e) {
- handleError(e);
- return;
- }
+ for (SegmentationMask mask : ctx.getSegmentationMasks())
+ {
+ BufferedImage image = ImageConverter.convert(ctx.getImageData());
+ // Setup exporter
+ Exporter exporter = new Exporter(image, mask);
+ exporter.setEffect(result.effect);
+ exporter.setHtmlFile(result.html);
+ exporter.setImageFile(result.image);
+ exporter.setObjectLink(result.link);
+ exporter.setExportShape(result.shape);
+ exporter.setObjectDescription(result.description);
+ String label = SegmentationView.comboLabel.getText();
+ if(label.indexOf('{') != -1)
+ {
+ label = label.substring(0,label.indexOf('{')-1);
+ }
+ exporter.setTitle(label);
+
+ // Export
+ try {
+ exporter.export(result.folder, mask.layerNumber);
+ } catch (IOException e) {
+ handleError(e);
+ return;
+ } catch (ExportException e) {
+ handleError(e);
+ return;
+ }
+ }
// for opening the image after saving as ImageMap
if (result.open) {
File file = new File(result.folder, result.html);
this.exportShape = shape;
}
- public void export(File folder) throws IOException, ExportException {
+ public void export(File folder, int layerNumber) throws IOException, ExportException {
ContourTracer tracer = new ContourTracer(mask, SegmentationMask.FOREGROUND);
List<Polygon> trace = tracer.trace();
throw new ExportException("No objects found");
}
- List<String> preloads = getPreloads(trace);
+ List<String> preloads = getPreloads(trace,layerNumber);
// Write image
ImageIO.write(image, "png", new File(folder, imageFile));
map.addArea(area);
}
- map.exportToFile(new File(folder, htmlFile));
+ map.exportToFile(new File(folder, layerNumber+htmlFile));
}
- private List<String> getPreloads(List<Polygon> trace) {
+ private List<String> getPreloads(List<Polygon> trace, int layerNumber) {
List<String> preloads = new ArrayList<String>();
preloads.add(imageFile);
String basename = FileUtils.removeExtension(imageFile);
for (int i = 0; i < trace.size(); i++) {
- String filename = String.format("%s-%d.png", basename, i);
+ String filename = String.format("%s-%d.png", basename, layerNumber);
preloads.add(filename);
}
}
subs.put("map-name", mapName);
subs.put("contents", contents.toString());
subs.put("preloads", preloads.toString());
-
+ System.out.println("Contents coming as "+contents.toString());
return substitute(template, subs);
}
return segmentationMaskObjects;
}
+ /**
+ * @return
+ * Returns boolean value based on whether there are segmentationMasks formed or not.
+ */
+ public boolean hasSegmentationMasks() {
+
+ return segmentationMaskObjects.size() != 0;
+ }
+
/**
* For highlighting the clicked segmentObject
* @param x, mouse clicked point x