package org.insightech.er.editor.view.action.printer;
import org.eclipse.gef.GraphicalViewer;
import org.eclipse.gef.print.PrintGraphicalViewerOperation;
import org.eclipse.gef.ui.actions.PrintAction;
import org.eclipse.swt.SWT;
import org.eclipse.swt.printing.PrintDialog;
import org.eclipse.swt.printing.Printer;
import org.eclipse.swt.printing.PrinterData;
import org.eclipse.ui.IWorkbenchPart;
import org.insightech.er.editor.ERDiagramEditor;
public class PrintImageAction extends PrintAction {
public PrintImageAction(ERDiagramEditor part) {
super((IWorkbenchPart) part);
}
/**
* {@inheritDoc}
*/
@Override
public void run() {
GraphicalViewer viewer;
viewer = (GraphicalViewer) getWorkbenchPart().getAdapter(
GraphicalViewer.class);
PrintDialog dialog = new PrintDialog(viewer.getControl().getShell(),
SWT.NULL);
PrinterData data = dialog.open();
if (data != null) {
Printer printer = new Printer(data);
PrintGraphicalViewerOperation op = new PrintERDiagramOperation(
printer, viewer);
op.run(getWorkbenchPart().getTitle());
}
}
}