From 240c7d8cafd49e07b03f8c1b3d98199812c3270c Mon Sep 17 00:00:00 2001 From: lingutln Date: Tue, 22 May 2012 23:41:52 +0000 Subject: [PATCH] Modified some UI functionalities and Species terms bug. Done by Nikhil. svn path=/; revision=333 --- Annotation/src/ie/dcu/apps/ist/AppWindow.java | 5 +- .../ie/dcu/apps/ist/actions/SaveAction.java | 90 ++++++++++++++++++- .../dcu/apps/ist/views/SegmentationView.java | 5 +- 3 files changed, 95 insertions(+), 5 deletions(-) diff --git a/Annotation/src/ie/dcu/apps/ist/AppWindow.java b/Annotation/src/ie/dcu/apps/ist/AppWindow.java index 09e3e75..32c5436 100644 --- a/Annotation/src/ie/dcu/apps/ist/AppWindow.java +++ b/Annotation/src/ie/dcu/apps/ist/AppWindow.java @@ -291,8 +291,9 @@ public class AppWindow extends ApplicationWindow implements FileDropListener { file.add(actions.get(SaveAsAction.class)); file.add(new Separator()); + // Export Menu is hidden so as not to confuse the user. Instead this functionality is provided as Save // Export menu -> - MenuManager exportMenu = addMenu(file, "&Export", + /*MenuManager exportMenu = addMenu(file, "&Export", props.getProperty("ExportMenu.icon")); exportMenu.add(actions.get(ExportViewAction.class)); @@ -302,7 +303,7 @@ public class AppWindow extends ApplicationWindow implements FileDropListener { file.add(new Separator()); file.add(actions.get(PrintAction.class)); file.add(new Separator()); - file.add(actions.get(ExitAction.class)); + file.add(actions.get(ExitAction.class));*/ MenuManager edit = addMenu(bar, "&Edit"); diff --git a/Annotation/src/ie/dcu/apps/ist/actions/SaveAction.java b/Annotation/src/ie/dcu/apps/ist/actions/SaveAction.java index e652d28..0f37a7d 100644 --- a/Annotation/src/ie/dcu/apps/ist/actions/SaveAction.java +++ b/Annotation/src/ie/dcu/apps/ist/actions/SaveAction.java @@ -1,9 +1,19 @@ package ie.dcu.apps.ist.actions; +import ie.dcu.apps.ist.dialogs.ExportDialog; +import ie.dcu.apps.ist.export.imagemap.ExportException; +import ie.dcu.apps.ist.export.imagemap.Exporter; +import ie.dcu.segment.SegmentationContext; +import ie.dcu.segment.SegmentationMask; +import ie.dcu.swt.ImageConverter; + +import java.awt.image.BufferedImage; import java.io.*; +import java.util.List; import java.util.logging.*; import org.eclipse.swt.*; +import org.eclipse.swt.program.Program; import org.eclipse.swt.widgets.*; /** @@ -13,7 +23,83 @@ import org.eclipse.swt.widgets.*; */ public class SaveAction extends AppAction { - private FileDialog dialog; + // Export image map functionality is changes as Save + /** + * The file extension given to a this object when it is saved on a disk + */ + public static final String IMGMAP_EXTENSION = ".imgmap"; + + public SaveAction(ActionManager m) { + super(m); + } + + @Override + public void run() { + + SegmentationContext ctx = window.getContext(); + List masks = ctx.getSegmentationMasks(); + if (ctx.hasSegmentationMasks()) { + + // Get options from user + ExportDialog dialog = new ExportDialog(window.getShell()); + ExportDialog.Result result = dialog.open(); + + if (result != null) { + + // Grab image and mask + + BufferedImage image = ImageConverter.convert(ctx.getImageData()); + // Setup exporter + Exporter exporter = new Exporter(image); + exporter.setEffect(result.effect); + exporter.setHtmlFile(result.html); + + // Taking html file name and making the same as filename of imagemap + int dotIndex = result.html.indexOf('.'); + String zipFile = result.html.substring(0, dotIndex); + exporter.setZipFile(zipFile+IMGMAP_EXTENSION); + + exporter.setImageFile(result.image); + exporter.setObjectLink(result.link); + exporter.setExportShape(result.shape); + exporter.setObjectDescription(result.description); + + // Export + try { + exporter.export(result.folder,masks); + } 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); + Program program = Program.findProgram(".html"); + if (program != null) { + program.execute(file.getAbsolutePath()); + } + } + } + } + } + + private void handleError(Exception e) { + log(Level.WARNING, "Error exporting view as HTML image map", e); + + // Show error dialog + error("Error exporting view as HTML image map: %s", + e.getLocalizedMessage()); + + // Set status message + status(Error, "Error exporting view as HTML image map"); + } + + + + /*private FileDialog dialog; public SaveAction(ActionManager m) { super(m); @@ -116,5 +202,5 @@ public class SaveAction extends AppAction { // Set status message status(Error, "Error saving segmentation context %s", file.getName()); - } + }*/ } diff --git a/Annotation/src/ie/dcu/apps/ist/views/SegmentationView.java b/Annotation/src/ie/dcu/apps/ist/views/SegmentationView.java index 995c547..bff72ac 100644 --- a/Annotation/src/ie/dcu/apps/ist/views/SegmentationView.java +++ b/Annotation/src/ie/dcu/apps/ist/views/SegmentationView.java @@ -314,6 +314,9 @@ public class SegmentationView extends Composite { { ArrayList speciesTerms = new ArrayList(); speciesTerms = labels.getSpeciesTerms(speciesCombo.getText()); + String text = speciesCombo.getText(); + speciesCombo.removeAll(); + speciesCombo.setText(text); int i = 0; for (SpeciesTerm speciesTerm : speciesTerms) { @@ -424,7 +427,7 @@ public class SegmentationView extends Composite { speciesCombo = SwtUtils.addComboToComposite(termDetailComposite, 150, SWT.READ_ONLY); speciesCombo.setToolTipText( getAction(Tool.SetPainter).getToolTipText()); - searchSpecies = SwtUtils.addButtonToComposite(termDetailComposite, 50, "Search"); + searchSpecies = SwtUtils.addButtonToComposite(termDetailComposite, 55, "Search"); Label dummyLabel = SwtUtils.spacer(termDetailComposite); searchSpecies.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { -- 2.34.1