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));
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");
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.*;
/**
*/
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<SegmentationMask> 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);
// Set status message
status(Error, "Error saving segmentation context %s", file.getName());
- }
+ }*/
}
{
ArrayList<SpeciesTerm> speciesTerms = new ArrayList<SpeciesTerm>();
speciesTerms = labels.getSpeciesTerms(speciesCombo.getText());
+ String text = speciesCombo.getText();
+ speciesCombo.removeAll();
+ speciesCombo.setText(text);
int i = 0;
for (SpeciesTerm speciesTerm : speciesTerms)
{
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) {