package org.insightech.er.editor.view.tool; import org.eclipse.gef.Tool; import org.eclipse.gef.palette.CreationToolEntry; import org.eclipse.gef.requests.SimpleFactory; import org.eclipse.gef.tools.CreationTool; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.ui.PlatformUI; import org.insightech.er.Activator; import org.insightech.er.ImageKey; import org.insightech.er.ResourceString; import org.insightech.er.editor.model.diagram_contents.element.node.image.InsertedImage; public class InsertImageTool extends CreationToolEntry { public InsertImageTool() { super(ResourceString.getResourceString("label.image.insert"), ResourceString .getResourceString("label.image.insert"), new SimpleFactory( InsertedImage.class), Activator .getImageDescriptor(ImageKey.IMAGE), Activator .getImageDescriptor(ImageKey.IMAGE)); } @Override public Tool createTool() { InsertedImageTool tool = new InsertedImageTool(); tool.setProperties(getToolProperties()); return tool; } private class InsertedImageTool extends CreationTool { @Override protected void performCreation(int button) { String path = getLoadFilePath(); if (path != null) { InsertedImage insertedImage = (InsertedImage) this .getCreateRequest().getNewObject(); insertedImage.setImageFilePath(path); super.performCreation(button); } } private String getLoadFilePath() { FileDialog fileDialog = new FileDialog(PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getShell(), SWT.OPEN); String[] filterExtensions = { "*.bmp;*.jpg;*.jpeg;*.gif;*.png;*.tif;*.tiff" }; fileDialog.setFilterExtensions(filterExtensions); return fileDialog.open(); } } }