Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 93845 Details for
Bug 224387
[Printing] Enhancements to multi-platform printing
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
further additions to printing
PRINTING_MARCH27_PHASE2_ICONS.patch (text/plain), 52.90 KB, created by
James Bruck
on 2008-03-27 15:03:56 EDT
(
hide
)
Description:
further additions to printing
Filename:
MIME Type:
Creator:
James Bruck
Created:
2008-03-27 15:03:56 EDT
Size:
52.90 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.gmf.runtime.diagram.ui.printing.render >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/util/PrintHelper.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render/src/org/eclipse/gmf/runtime/diagram/ui/printing/render/util/PrintHelper.java,v >retrieving revision 1.1 >diff -u -r1.1 PrintHelper.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/render/util/PrintHelper.java 7 Mar 2008 16:51:28 -0000 1.1 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/util/PrintHelper.java 27 Mar 2008 19:00:39 -0000 >@@ -49,6 +49,11 @@ > > options.setCopies(1); > options.setCollate(false); >+ >+ options.setQualityHigh(true); >+ options.setSideOneSided(true); >+ options.setChromaticityColor(true); >+ > } > > /* >@@ -134,5 +139,9 @@ > // TODO Not supported by the JPS dialog > return false; > } >+ >+ public PrintOptions getPrintOptions(){ >+ return options; >+ } > > } >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/model/PrintOptions.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render/src/org/eclipse/gmf/runtime/diagram/ui/printing/render/model/PrintOptions.java,v >retrieving revision 1.1 >diff -u -r1.1 PrintOptions.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/render/model/PrintOptions.java 7 Mar 2008 16:51:28 -0000 1.1 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/model/PrintOptions.java 27 Mar 2008 19:00:39 -0000 >@@ -33,6 +33,18 @@ > > public static String PROPERTY_COPIES = "copies"; //$NON-NLS-1$ > public static String PROPERTY_COLLATE = "collate"; //$NON-NLS-1$ >+ >+ public static String PROPERTY_QUALITY_HIGH = "qualityHigh"; //$NON-NLS-1$ >+ public static String PROPERTY_QUALITY_LOW = "qualityLow"; //$NON-NLS-1$ >+ public static String PROPERTY_QUALITY_MED = "qualityMed"; //$NON-NLS-1$ >+ public static String PROPERTY_CHROMATICITY_MONO = "chromaticityMono"; //$NON-NLS-1$ >+ public static String PROPERTY_CHROMATICITY_COLOR = "chromaticityColor"; //$NON-NLS-1$ >+ public static String PROPERTY_SIDES_ONESIDED = "sideOneSided"; //$NON-NLS-1$ >+ public static String PROPERTY_SIDES_TUMBLE = "sideTumble"; //$NON-NLS-1$ >+ public static String PROPERTY_SIDES_DUPLEX = "sideDuplex"; //$NON-NLS-1$ >+ >+ public static String PROPERTY_JOB_NAME = "jobName"; //$NON-NLS-1$ >+ public static String PROPERTY_USER_NAME = "userName"; //$NON-NLS-1$ > > private PrintDestination destination; > >@@ -48,6 +60,20 @@ > private int copies; > private boolean collate; > >+ private boolean qualityHigh; >+ private boolean qualityLow; >+ private boolean qualityMed; >+ >+ private boolean chromaticityColor; >+ private boolean chromaticityMono; >+ >+ private boolean sideOneSided; >+ private boolean sideTumble; >+ private boolean sideDuplex; >+ >+ private String jobName; >+ private String userName; >+ > public PrintOptions() { > super(); > } >@@ -71,6 +97,56 @@ > this.percentScaling = percentScaling; > firePropertyChange(PROPERTY_PERCENT_SCALING, oldScaling, percentScaling); > } >+ public String getJobName() { >+ return jobName; >+ } >+ >+ public void setJobName(String name) { >+ String oldName = this.jobName; >+ this.jobName = name; >+ firePropertyChange(PROPERTY_JOB_NAME, oldName, name); >+ } >+ >+ public String getUserName() { >+ return userName; >+ } >+ >+ public void setUserName(String name) { >+ String oldName = this.userName; >+ this.userName = name; >+ firePropertyChange(PROPERTY_USER_NAME, oldName, name); >+ } >+ >+ public boolean isQualityHigh() { >+ return this.qualityHigh; >+ } >+ >+ public void setQualityHigh(boolean qualityHigh) { >+ boolean oldQualityHigh = this.qualityHigh; >+ this.qualityHigh = qualityHigh; >+ firePropertyChange(PROPERTY_QUALITY_HIGH, oldQualityHigh, qualityHigh); >+ } >+ >+ public boolean isQualityLow() { >+ return this.qualityLow; >+ } >+ >+ public void setQualityLow(boolean qualityLow) { >+ boolean oldQualityLow = this.qualityLow; >+ this.qualityLow = qualityLow; >+ firePropertyChange(PROPERTY_QUALITY_LOW, oldQualityLow, this.qualityLow); >+ } >+ >+ public boolean isQualityMed() { >+ return this.qualityMed; >+ } >+ >+ public void setQualityMed(boolean qualityMed) { >+ boolean oldQualityMed = this.qualityMed; >+ this.qualityMed = qualityMed; >+ firePropertyChange(PROPERTY_QUALITY_MED, oldQualityMed, this.qualityMed); >+ } >+ > > public int getScaleFactor() { > return scaleFactor; >@@ -151,4 +227,55 @@ > this.collate = collate; > firePropertyChange(PROPERTY_COLLATE, oldCollate, collate); > } >+ >+ >+ public boolean isChromaticityColor() { >+ return this.chromaticityColor; >+ } >+ >+ public void setChromaticityColor(boolean chromaticityColor) { >+ boolean oldChromaticityColor = this.chromaticityColor; >+ this.chromaticityColor = chromaticityColor; >+ firePropertyChange(PROPERTY_CHROMATICITY_COLOR, oldChromaticityColor, this.chromaticityColor); >+ } >+ >+ public boolean isChromaticityMono() { >+ return this.chromaticityMono; >+ } >+ >+ public void setChromaticityMono(boolean chromaticityMono) { >+ boolean oldChromaticityMono = this.chromaticityMono; >+ this.chromaticityMono = chromaticityMono; >+ firePropertyChange(PROPERTY_CHROMATICITY_MONO, oldChromaticityMono, this.chromaticityMono); >+ } >+ >+ public boolean isSideOneSided() { >+ return this.sideOneSided; >+ } >+ >+ public void setSideOneSided(boolean sideOneSided) { >+ boolean oldSideOneSided = this.sideOneSided; >+ this.sideOneSided = sideOneSided; >+ firePropertyChange(PROPERTY_SIDES_ONESIDED, oldSideOneSided, this.sideOneSided); >+ } >+ >+ public boolean isSideTumble() { >+ return this.sideTumble; >+ } >+ >+ public void setSideTumble(boolean sideTumble) { >+ boolean oldSideTumble = this.sideTumble; >+ this.sideTumble = sideTumble; >+ firePropertyChange(PROPERTY_SIDES_TUMBLE, oldSideTumble, this.sideTumble); >+ } >+ >+ public boolean isSideDuplex() { >+ return this.sideDuplex; >+ } >+ >+ public void setSideDuplex(boolean sideDuplex) { >+ boolean oldSideDuplex = this.sideDuplex; >+ this.sideDuplex = sideDuplex; >+ firePropertyChange(PROPERTY_SIDES_DUPLEX, oldSideDuplex, this.sideDuplex); >+ } > } >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/CopiesBlock.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render/src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/CopiesBlock.java,v >retrieving revision 1.1 >diff -u -r1.1 CopiesBlock.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/CopiesBlock.java 7 Mar 2008 16:51:28 -0000 1.1 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/CopiesBlock.java 27 Mar 2008 19:00:39 -0000 >@@ -15,58 +15,88 @@ > import org.eclipse.core.databinding.beans.BeansObservables; > import org.eclipse.core.databinding.observable.Realm; > import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; >+import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingPluginImages; > import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; > import org.eclipse.jface.databinding.swt.SWTObservables; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.events.SelectionEvent; >+import org.eclipse.swt.events.SelectionListener; >+import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.widgets.Button; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Label; > import org.eclipse.swt.widgets.Spinner; > >- > /** >- * A section of the JPS print dialog that handles the number of copies of >- * a diagram to print. >+ * A section of the JPS print dialog that handles the number of copies of a >+ * diagram to print. > * > * @author Christian Damus (cdamus) > * @author James Bruck (jbruck) > */ > class CopiesBlock extends DialogBlock { >- >- private final DataBindingContext bindings; >- private final PrintOptions options; >- >- CopiesBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings, >- PrintOptions options) { >- super(dluConverter); >- >- this.bindings = bindings; >- this.options = options; >- } >- >- /* >- * (non-Javadoc) >- * @see org.eclipse.gmf.runtime.common.ui.printing.internal.dialogs.DialogBlock#createContents(org.eclipse.swt.widgets.Composite) >- */ >- public Control createContents(Composite parent) { >- final Realm realm = bindings.getValidationRealm(); >- >- Composite result = group(parent, DiagramUIPrintingMessages.JPSPrintDialog_Copies); >- layout(result, 2); >- >- label(result, DiagramUIPrintingMessages.JPSPrintDialog_NumberOfCopies); >- Spinner copiesSpinner = spinner(result, 1, 999); >- >- bindings.bindValue(SWTObservables.observeSelection(copiesSpinner), >- BeansObservables.observeValue(realm, options, PrintOptions.PROPERTY_COPIES), >- null, null); >- >- blank(result); >- Button collateCheck = check(result, DiagramUIPrintingMessages.JPSPrintDialog_Collate); >- >- bindings.bindValue(SWTObservables.observeSelection(collateCheck), >- BeansObservables.observeValue(realm, options, PrintOptions.PROPERTY_COLLATE), >- null, null); >- >- return result; >- } >+ >+ private final DataBindingContext bindings; >+ private final PrintOptions options; >+ >+ CopiesBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings, >+ PrintOptions options) { >+ super(dluConverter); >+ >+ this.bindings = bindings; >+ this.options = options; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.gmf.runtime.common.ui.printing.internal.dialogs.DialogBlock#createContents(org.eclipse.swt.widgets.Composite) >+ */ >+ public Control createContents(Composite parent) { >+ final Realm realm = bindings.getValidationRealm(); >+ >+ Composite result = group(parent, >+ DiagramUIPrintingMessages.JPSPrintDialog_Copies); >+ layout(result, 2); >+ >+ label(result, DiagramUIPrintingMessages.JPSPrintDialog_NumberOfCopies); >+ Spinner copiesSpinner = spinner(result, 1, 999); >+ >+ bindings.bindValue(SWTObservables.observeSelection(copiesSpinner), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_COPIES), null, null); >+ >+ final Image collateOnImage = DiagramUIPrintingPluginImages.COLLATE_ON >+ .createImage(); >+ final Image collateOffImage = DiagramUIPrintingPluginImages.COLLATE_OFF >+ .createImage(); >+ final Label collateImageButton = new Label(result, SWT.CENTER | SWT.SHADOW_NONE); >+ >+ layoutAlignRight(collateImageButton); >+ collateImageButton.setImage(collateOffImage); >+ >+ Button collateCheck = check(result, >+ DiagramUIPrintingMessages.JPSPrintDialog_Collate); >+ >+ bindings.bindValue(SWTObservables.observeSelection(collateCheck), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_COLLATE), null, null); >+ >+ collateCheck.addSelectionListener(new SelectionListener() { >+ >+ public void widgetDefaultSelected(SelectionEvent arg0) { >+ // do nothing >+ } >+ public void widgetSelected(SelectionEvent arg0) { >+ if (options.isCollate()) { >+ collateImageButton.setImage(collateOnImage); >+ } else { >+ collateImageButton.setImage(collateOffImage); >+ } >+ } >+ }); >+ >+ return result; >+ } > } >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSPrintDialog.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render/src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSPrintDialog.java,v >retrieving revision 1.1 >diff -u -r1.1 JPSPrintDialog.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSPrintDialog.java 7 Mar 2008 16:51:28 -0000 1.1 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSPrintDialog.java 27 Mar 2008 19:00:39 -0000 >@@ -45,16 +45,16 @@ > private CopiesBlock copiesBlock; > private ActionsBlock actionsBlock; > >- private final DialogBlock.IDialogUnitConverter dluConverter = >- new DialogBlock.IDialogUnitConverter() { >- >- public int convertHorizontalDLUsToPixels(int dlus) { >- return JPSPrintDialog.this.convertHorizontalDLUsToPixels(dlus); >- } >- >- public Shell getShell() { >- return JPSPrintDialog.this.getShell(); >- }}; >+ private final DialogBlock.IDialogUnitConverter dluConverter = new DialogBlock.IDialogUnitConverter() { >+ >+ public int convertHorizontalDLUsToPixels(int dlus) { >+ return JPSPrintDialog.this.convertHorizontalDLUsToPixels(dlus); >+ } >+ >+ public Shell getShell() { >+ return JPSPrintDialog.this.getShell(); >+ } >+ }; > > public JPSPrintDialog(IShellProvider parentShell, PrintOptions options) { > super(parentShell); >@@ -66,6 +66,10 @@ > this.options = options; > } > >+ /* >+ * (non-Javadoc) >+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) >+ */ > protected void configureShell(Shell newShell) { > super.configureShell(newShell); > >@@ -119,7 +123,7 @@ > } > > protected void createExtensibleBlockArea(Composite result) { >- // meant to be overiden by subclasses to add additional blocks. >+ // meant to be overridden by subclasses to add additional blocks. > } > > >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/PrinterBlock.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render/src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/PrinterBlock.java,v >retrieving revision 1.1 >diff -u -r1.1 PrinterBlock.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/PrinterBlock.java 7 Mar 2008 16:51:27 -0000 1.1 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/PrinterBlock.java 27 Mar 2008 19:00:39 -0000 >@@ -35,7 +35,6 @@ > import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; > import org.eclipse.jface.databinding.viewers.ViewersObservables; > import org.eclipse.jface.viewers.ComboViewer; >-import org.eclipse.jface.viewers.ISelectionChangedListener; > import org.eclipse.jface.viewers.IStructuredContentProvider; > import org.eclipse.jface.viewers.LabelProvider; > import org.eclipse.jface.viewers.SelectionChangedEvent; >@@ -47,6 +46,7 @@ > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; > import org.eclipse.swt.widgets.Label; >+import org.eclipse.ui.PlatformUI; > > /** > * A section of the JPS print dialog that adds printer options. >@@ -96,24 +96,24 @@ > // until a workaround can be discovered. > // > >- // combo.addSelectionChangedListener(new ISelectionChangedListener() { >- // >- // public void selectionChanged(SelectionChangedEvent event) { >- // if (event != null) { >- // handlePrinterSelectionChanged(event); >- // } >- // } >+ // combo.addSelectionChangedListener(new ISelectionChangedListener() { >+ // >+ // public void selectionChanged(SelectionChangedEvent event) { >+ // if (event != null) { >+ // handlePrinterSelectionChanged(event); >+ // } >+ // } > // }); > > layoutFillHorizontal(combo.getControl()); > > Button propertiesButton = button(result, > DiagramUIPrintingMessages.JPSPrintDialog_Properties); >- propertiesButton.setEnabled(false); >+ propertiesButton.setEnabled(true); > > propertiesButton.addSelectionListener(new SelectionAdapter() { > public void widgetSelected(SelectionEvent e) { >- // TODO: Introduce new dialog in phase 2 >+ openPrintOptionsDialog(); > } > }); > >@@ -188,7 +188,7 @@ > > PrintServiceAttributeSet printServiceAttributes = printService > .getAttributes(); >- >+ > PrinterState printerState = (PrinterState) printServiceAttributes > .get(PrinterState.class); > >@@ -290,4 +290,12 @@ > return ((PrintDestination) element).getName(); > } > } >+ >+ private void openPrintOptionsDialog() { >+ >+ JPSOptionsDialog dlg = new JPSOptionsDialog(PlatformUI.getWorkbench() >+ .getActiveWorkbenchWindow().getShell(), bindings, options); >+ dlg.open(); >+ >+ } > } >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/internal/JPSDiagramPrinter.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing.render/src/org/eclipse/gmf/runtime/diagram/ui/printing/render/internal/JPSDiagramPrinter.java,v >retrieving revision 1.2 >diff -u -r1.2 JPSDiagramPrinter.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/render/internal/JPSDiagramPrinter.java 12 Mar 2008 19:47:21 -0000 1.2 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/internal/JPSDiagramPrinter.java 27 Mar 2008 19:00:39 -0000 >@@ -11,6 +11,7 @@ > > package org.eclipse.gmf.runtime.diagram.ui.printing.render.internal; > >+import java.awt.BasicStroke; > import java.awt.print.PageFormat; > import java.awt.print.PrinterException; > import java.util.Iterator; >@@ -29,6 +30,7 @@ > import javax.print.attribute.HashPrintRequestAttributeSet; > import javax.print.attribute.HashPrintServiceAttributeSet; > import javax.print.attribute.PrintRequestAttributeSet; >+import javax.print.attribute.standard.Chromaticity; > import javax.print.attribute.standard.Copies; > import javax.print.attribute.standard.JobName; > import javax.print.attribute.standard.Media; >@@ -36,8 +38,10 @@ > import javax.print.attribute.standard.MediaSize; > import javax.print.attribute.standard.MediaSizeName; > import javax.print.attribute.standard.OrientationRequested; >+import javax.print.attribute.standard.PrintQuality; > import javax.print.attribute.standard.PrinterName; > import javax.print.attribute.standard.SheetCollate; >+import javax.print.attribute.standard.Sides; > > import org.eclipse.draw2d.Graphics; > import org.eclipse.draw2d.geometry.Rectangle; >@@ -62,14 +66,16 @@ > import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; > import org.eclipse.gmf.runtime.diagram.ui.printing.internal.util.DiagramPrinter; > import org.eclipse.gmf.runtime.diagram.ui.printing.internal.util.PrintHelperUtil; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.util.PrintHelper; > import org.eclipse.gmf.runtime.diagram.ui.printing.util.DiagramPrinterUtil; > import org.eclipse.gmf.runtime.diagram.ui.util.DiagramEditorUtil; > import org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.MapModeGraphics; >+import org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.ScaledGraphics; > import org.eclipse.gmf.runtime.draw2d.ui.mapmode.IMapMode; > import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil; > import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.graphics.GraphicsToGraphics2DAdaptor; > import org.eclipse.gmf.runtime.draw2d.ui.render.internal.graphics.RenderedMapModeGraphics; >-import org.eclipse.gmf.runtime.draw2d.ui.render.internal.graphics.RenderedScaledGraphics; > import org.eclipse.gmf.runtime.notation.Diagram; > import org.eclipse.jface.dialogs.MessageDialog; > import org.eclipse.jface.preference.IPreferenceStore; >@@ -90,13 +96,20 @@ > */ > public class JPSDiagramPrinter extends DiagramPrinter implements > java.awt.print.Printable { >- >- >+ >+ // A constant that takes into account screen display DPI and the graphic DPI >+ // 72.0 DPI is an AWT constant @see java.awt.Graphics2D >+ private static double AWT_DPI_CONST = 72.0; >+ >+ // The print service used during printing. > private PrintService printService; >+ >+ // Page information that is collected up front and used during the async printing calls. > private PageData[] pages; >+ >+ // The print helper contains page information. > private IPrintHelper printHelper; > >- > public JPSDiagramPrinter(PreferencesHint preferencesHint, IMapMode mm) { > super(preferencesHint, mm); > this.preferencesHint = preferencesHint; >@@ -351,19 +364,35 @@ > swtGraphics = new GraphicsToGraphics2DAdaptor( > (java.awt.Graphics2D) printGraphics, new Rectangle(0, 0, > (int) pageFormat.getWidth(), (int) pageFormat >- .getHeight())); >+ .getHeight())) { >+ /* >+ * (non-Javadoc) >+ * @see org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.graphics.GraphicsToGraphics2DAdaptor#setLineWidth(int) >+ */ >+ public void setLineWidth(int width) { >+ super.setLineWidth(width); >+ >+ BasicStroke scaledStroke = getStroke(); >+ // >+ // Make a special case for line thickness to take the printer >+ // resolution into account. >+ // >+ scaledStroke = new BasicStroke( >+ (float) (width * AWT_DPI_CONST / 100), >+ scaledStroke.getEndCap(), >+ scaledStroke.getLineJoin(), >+ scaledStroke.getMiterLimit(), >+ scaledStroke.getDashArray(), 0); > >+ getGraphics2D().setStroke(scaledStroke); >+ } >+ }; >+ > graphics = createMapModeGraphics(createPrinterGraphics(swtGraphics)); >- // >- // Take into account screen display DPI and the graphic DPI >- // 72.0 DPI is an AWT constant @see java.awt.Graphics2D >- // >- graphics.scale(72.0 / display_dpi.x); >- >+ graphics.scale(AWT_DPI_CONST / display_dpi.x); > drawPage(pages[pageIndex]); >- } catch (Exception e) { >- System.out.println(e); >- } finally { >+ >+ } finally { > dispose(); > } > >@@ -378,12 +407,10 @@ > return new RenderedMapModeGraphics(theGraphics, getMapMode()); > } > >- >- protected RenderedScaledGraphics createPrinterGraphics(Graphics theGraphics) { >- return new RenderedScaledGraphics(theGraphics); >+ protected ScaledGraphics createPrinterGraphics(Graphics theGraphics) { >+ return new ScaledGraphics(theGraphics); > } >- >- >+ > /** > * Set printing options in a format that is suitable for the Java print > * service >@@ -398,6 +425,8 @@ > String jobName, > IPreferenceStore fPreferences) { > >+ PrintOptions advancedOptions = ((PrintHelper) (printHelper)).getPrintOptions(); >+ > PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet(); > > if (fPreferences >@@ -428,14 +457,35 @@ > printRequestAttributeSet.add(MediaSizeName.ISO_B5); > } > >+ if (advancedOptions.isQualityLow()) { >+ printRequestAttributeSet.add(PrintQuality.DRAFT); >+ } else if (advancedOptions.isQualityMed()) { >+ printRequestAttributeSet.add(PrintQuality.NORMAL); >+ } else if (advancedOptions.isQualityHigh()) { >+ printRequestAttributeSet.add(PrintQuality.HIGH); >+ } >+ if (advancedOptions.isSideDuplex()) { >+ printRequestAttributeSet.add(Sides.DUPLEX); >+ } else if (advancedOptions.isSideOneSided()) { >+ printRequestAttributeSet.add(Sides.ONE_SIDED); >+ } else if (advancedOptions.isSideTumble()) { >+ printRequestAttributeSet.add(Sides.TUMBLE); >+ } >+ >+ if (advancedOptions.isChromaticityColor()) { >+ printRequestAttributeSet.add(Chromaticity.COLOR); >+ } else { >+ printRequestAttributeSet.add(Chromaticity.MONOCHROME); >+ } >+ > MediaSizeName media = (MediaSizeName) printRequestAttributeSet > .get(Media.class); > MediaSize mediaSize = MediaSize.getMediaSizeForName(media); >- >+ > printRequestAttributeSet.add(new MediaPrintableArea((float) 0.0, > (float) 0.0, (mediaSize.getX(MediaSize.INCH)), (mediaSize > .getY(MediaSize.INCH)), MediaPrintableArea.INCH)); >- >+ > printRequestAttributeSet.add(new Copies(printHelper > .getDlgNumberOfCopies())); > >@@ -445,6 +495,10 @@ > printRequestAttributeSet.add(SheetCollate.UNCOLLATED); > } > >+ String userJobName = advancedOptions.getJobName(); >+ if (userJobName != null && userJobName.length() > 0) { >+ jobName = userJobName; >+ } > printRequestAttributeSet.add(new JobName(jobName, Locale.getDefault())); > > return printRequestAttributeSet; >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/SidesBlock.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/SidesBlock.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/SidesBlock.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/SidesBlock.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,80 @@ >+/****************************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs; >+ >+import org.eclipse.core.databinding.DataBindingContext; >+import org.eclipse.core.databinding.beans.BeansObservables; >+import org.eclipse.core.databinding.observable.Realm; >+import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; >+import org.eclipse.jface.databinding.swt.SWTObservables; >+import org.eclipse.swt.widgets.Button; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+ >+/** >+ * A section of the options print dialog that handles the duplex/single sided printing. >+ * >+ * @author James Bruck (jbruck) >+ */ >+public class SidesBlock extends DialogBlock { >+ >+ private final DataBindingContext bindings; >+ private final PrintOptions options; >+ >+ SidesBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings, >+ PrintOptions options) { >+ super(dluConverter); >+ >+ this.bindings = bindings; >+ this.options = options; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * @see org.eclipse.gmf.runtime.common.ui.printing.internal.dialogs.DialogBlock#createContents(org.eclipse.swt.widgets.Composite) >+ */ >+ public Control createContents(Composite parent) { >+ final Realm realm = bindings.getValidationRealm(); >+ >+ Composite result = group(parent, >+ DiagramUIPrintingMessages.JPSOptionsDialog_Sides); >+ layout(result, 2); >+ >+ Button oneSideRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_SidesOneSided); >+ layoutSpanHorizontal(oneSideRadio, 4); >+ >+ Button tumbleRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_SidesTumble); >+ layoutSpanHorizontal(tumbleRadio, 4); >+ >+ Button duplexRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_SidesDuplex); >+ layoutSpanHorizontal(duplexRadio, 4); >+ >+ bindings.bindValue(SWTObservables.observeSelection(oneSideRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_SIDES_ONESIDED), null, null); >+ >+ bindings.bindValue(SWTObservables.observeSelection(tumbleRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_SIDES_TUMBLE), null, null); >+ >+ bindings.bindValue(SWTObservables.observeSelection(duplexRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_SIDES_DUPLEX), null, null); >+ >+ return result; >+ } >+ >+} >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JobAttributesBlock.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JobAttributesBlock.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JobAttributesBlock.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JobAttributesBlock.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,64 @@ >+/****************************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs; >+ >+import org.eclipse.core.databinding.DataBindingContext; >+import org.eclipse.core.databinding.beans.BeansObservables; >+import org.eclipse.core.databinding.observable.Realm; >+import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; >+import org.eclipse.jface.databinding.swt.SWTObservables; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Text; >+ >+/** >+ * A section of the options print dialog that handles the job attributes. >+ * >+ * @author James Bruck (jbruck) >+ */ >+public class JobAttributesBlock extends DialogBlock { >+ private final DataBindingContext bindings; >+ private final PrintOptions options; >+ >+ JobAttributesBlock(IDialogUnitConverter dluConverter, >+ DataBindingContext bindings, PrintOptions options) { >+ super(dluConverter); >+ >+ this.bindings = bindings; >+ this.options = options; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.gmf.runtime.common.ui.printing.internal.dialogs.DialogBlock#createContents(org.eclipse.swt.widgets.Composite) >+ */ >+ public Control createContents(Composite parent) { >+ final Realm realm = bindings.getValidationRealm(); >+ >+ Composite result = group(parent, >+ DiagramUIPrintingMessages.JPSOptionsDialog_JobAttributes); >+ layout(result, 2); >+ >+ layoutHorizontalIndent(layoutAlignRight(label(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_JobName))); >+ Text jobName = text(result, 80); >+ >+ bindings.bindValue(SWTObservables.observeText(jobName, SWT.Modify), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_JOB_NAME), null, null); >+ >+ return result; >+ } >+} >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/QualityBlock.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/QualityBlock.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/QualityBlock.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/QualityBlock.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,80 @@ >+/****************************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs; >+ >+import org.eclipse.core.databinding.DataBindingContext; >+import org.eclipse.core.databinding.beans.BeansObservables; >+import org.eclipse.core.databinding.observable.Realm; >+import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; >+import org.eclipse.jface.databinding.swt.SWTObservables; >+import org.eclipse.swt.widgets.Button; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+ >+/** >+ * A section of the options print dialog that handles the print quality. >+ * >+ * @author James Bruck (jbruck) >+ */ >+public class QualityBlock extends DialogBlock { >+ >+ private final DataBindingContext bindings; >+ private final PrintOptions options; >+ >+ QualityBlock(IDialogUnitConverter dluConverter, >+ DataBindingContext bindings, PrintOptions options) { >+ super(dluConverter); >+ >+ this.bindings = bindings; >+ this.options = options; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.gmf.runtime.common.ui.printing.internal.dialogs.DialogBlock#createContents(org.eclipse.swt.widgets.Composite) >+ */ >+ public Control createContents(Composite parent) { >+ final Realm realm = bindings.getValidationRealm(); >+ >+ Composite result = group(parent, >+ DiagramUIPrintingMessages.JPSOptionsDialog_Quality); >+ layout(result, 2); >+ >+ Button highRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_QualityHigh); >+ layoutSpanHorizontal(highRadio, 4); >+ >+ Button mediumRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_QualityMedium); >+ layoutSpanHorizontal(mediumRadio, 4); >+ >+ Button lowRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_QualityLow); >+ layoutSpanHorizontal(lowRadio, 4); >+ >+ bindings.bindValue(SWTObservables.observeSelection(highRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_QUALITY_HIGH), null, null); >+ >+ bindings.bindValue(SWTObservables.observeSelection(mediumRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_QUALITY_MED), null, null); >+ >+ bindings.bindValue(SWTObservables.observeSelection(lowRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_QUALITY_LOW), null, null); >+ >+ return result; >+ } >+} >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSOptionsDialog.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSOptionsDialog.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSOptionsDialog.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSOptionsDialog.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,114 @@ >+/****************************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs; >+ >+import org.eclipse.core.databinding.DataBindingContext; >+import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; >+import org.eclipse.jface.dialogs.TrayDialog; >+import org.eclipse.jface.window.IShellProvider; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Shell; >+ >+/** >+ * A dialog that presents advanced printer options to the user. >+ * >+ * @author James Bruck (jbruck) >+ */ >+public class JPSOptionsDialog extends TrayDialog { >+ >+ private DataBindingContext bindings; >+ public final PrintOptions options; >+ >+ private QualityBlock qualityBlock; >+ private ColorBlock colorBlock; >+ private SidesBlock sidesBlock; >+ private JobAttributesBlock jobAttributesBlock; >+ >+ private final DialogBlock.IDialogUnitConverter dluConverter = new DialogBlock.IDialogUnitConverter() { >+ >+ public int convertHorizontalDLUsToPixels(int dlus) { >+ return JPSOptionsDialog.this.convertHorizontalDLUsToPixels(dlus); >+ } >+ >+ public Shell getShell() { >+ return JPSOptionsDialog.this.getShell(); >+ } >+ }; >+ >+ protected JPSOptionsDialog(Shell shell, DataBindingContext bindings, >+ PrintOptions options) { >+ super(shell); >+ this.options = options; >+ this.bindings = bindings; >+ } >+ >+ public JPSOptionsDialog(IShellProvider parentShell, >+ DataBindingContext bindings, PrintOptions options) { >+ super(parentShell); >+ this.options = options; >+ this.bindings = bindings; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) >+ */ >+ protected void configureShell(Shell newShell) { >+ >+ super.configureShell(newShell); >+ newShell >+ .setText(DiagramUIPrintingMessages.JPSOptionsDialog_AdvancedOptions); >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) >+ */ >+ protected Control createDialogArea(Composite parent) { >+ >+ Composite result = new Composite(parent, SWT.NONE); >+ DialogBlock.layout(result, 2); >+ >+ createColorBlockArea(result); >+ createQualityBlockArea(result); >+ createSidesBlockArea(result); >+ createJobAttributesBlockArea(result); >+ >+ return result; >+ } >+ >+ protected void createQualityBlockArea(Composite result) { >+ qualityBlock = new QualityBlock(dluConverter, bindings, options); >+ qualityBlock.createContents(result); >+ } >+ >+ protected void createColorBlockArea(Composite result) { >+ colorBlock = new ColorBlock(dluConverter, bindings, options); >+ colorBlock.createContents(result); >+ } >+ >+ protected void createSidesBlockArea(Composite result) { >+ sidesBlock = new SidesBlock(dluConverter, bindings, options); >+ sidesBlock.createContents(result); >+ } >+ >+ protected void createJobAttributesBlockArea(Composite result) { >+ jobAttributesBlock = new JobAttributesBlock(dluConverter, bindings, >+ options); >+ jobAttributesBlock.createContents(result); >+ } >+} >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ColorBlock.java >=================================================================== >RCS file: src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ColorBlock.java >diff -N src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ColorBlock.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ColorBlock.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,123 @@ >+/****************************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ ****************************************************************************/ >+ >+package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs; >+ >+import java.util.Locale; >+ >+import javax.print.DocFlavor; >+import javax.print.PrintService; >+import javax.print.PrintServiceLookup; >+import javax.print.attribute.AttributeSet; >+import javax.print.attribute.HashPrintServiceAttributeSet; >+import javax.print.attribute.PrintServiceAttributeSet; >+import javax.print.attribute.standard.ColorSupported; >+import javax.print.attribute.standard.PrinterName; >+ >+import org.eclipse.core.databinding.DataBindingContext; >+import org.eclipse.core.databinding.beans.BeansObservables; >+import org.eclipse.core.databinding.observable.Realm; >+import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages; >+import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions; >+import org.eclipse.jface.databinding.swt.SWTObservables; >+import org.eclipse.swt.widgets.Button; >+import org.eclipse.swt.widgets.Composite; >+import org.eclipse.swt.widgets.Control; >+ >+/** >+ * A section of the options print dialog that handles the print color options. >+ * >+ * @author James Bruck (jbruck) >+ */ >+public class ColorBlock extends DialogBlock { >+ >+ private final DataBindingContext bindings; >+ private final PrintOptions options; >+ >+ private Button colorRadio; >+ private Button monoRadio; >+ >+ ColorBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings, >+ PrintOptions options) { >+ super(dluConverter); >+ >+ this.bindings = bindings; >+ this.options = options; >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.gmf.runtime.common.ui.printing.internal.dialogs.DialogBlock#createContents(org.eclipse.swt.widgets.Composite) >+ */ >+ public Control createContents(Composite parent) { >+ final Realm realm = bindings.getValidationRealm(); >+ >+ Composite result = group(parent, >+ DiagramUIPrintingMessages.JPSOptionsDialog_Color); >+ layout(result, 2); >+ >+ colorRadio = radio(result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_ChromaticityColor); >+ layoutSpanHorizontal(colorRadio, 4); >+ >+ monoRadio = radio( >+ result, >+ DiagramUIPrintingMessages.JPSOptionsDialog_ChromaticityMonochrome); >+ layoutSpanHorizontal(monoRadio, 4); >+ >+ bindings.bindValue(SWTObservables.observeSelection(colorRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_CHROMATICITY_COLOR), null, null); >+ >+ bindings.bindValue(SWTObservables.observeSelection(monoRadio), >+ BeansObservables.observeValue(realm, options, >+ PrintOptions.PROPERTY_CHROMATICITY_MONO), null, null); >+ >+ initializeControls(options.getDestination().getName()); >+ >+ return result; >+ } >+ >+ /** >+ * Initialize the enabled state of the controls based on the printer >+ * capabilities. >+ * >+ * @param printerName >+ */ >+ private void initializeControls(String printerName) { >+ >+ AttributeSet attributes = new HashPrintServiceAttributeSet( >+ new PrinterName(printerName, Locale.getDefault())); >+ >+ PrintService[] services = PrintServiceLookup.lookupPrintServices( >+ DocFlavor.SERVICE_FORMATTED.PRINTABLE, attributes); >+ >+ PrintService printService = services[0]; >+ >+ PrintServiceAttributeSet printServiceAttributes = printService >+ .getAttributes(); >+ >+ ColorSupported colorSupported = (ColorSupported) printServiceAttributes >+ .get(ColorSupported.class); >+ >+ if (colorSupported == ColorSupported.SUPPORTED) { >+ options.setChromaticityColor(true); >+ options.setChromaticityMono(false); >+ colorRadio.setEnabled(true); >+ } else { >+ options.setChromaticityColor(false); >+ options.setChromaticityMono(true); >+ colorRadio.setEnabled(false); >+ } >+ } >+ >+} >#P org.eclipse.gmf.runtime.diagram.ui.render >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.render/plugin.xml,v >retrieving revision 1.5 >diff -u -r1.5 plugin.xml >--- plugin.xml 7 Mar 2008 16:51:31 -0000 1.5 >+++ plugin.xml 27 Mar 2008 19:00:41 -0000 >@@ -24,12 +24,14 @@ > </extension> > > <extension id="printingExperimentalContributionItemProvider" name="Printing_Experimental" point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders"> >- <contributionItemProvider class="org.eclipse.gmf.runtime.diagram.ui.render.internal.providers.PrintingExperimentalContributionItemProvider"> >+ <contributionItemProvider >+ checkPluginLoaded="false" >+ class="org.eclipse.gmf.runtime.diagram.ui.render.internal.providers.PrintingExperimentalContributionItemProvider"> > <Priority name="Medium"> > </Priority> > <partContribution class="org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart"> > <partAction >- global="false" >+ global="true" > id="printExperimentalAction" > menubarPath="/file/print"> > </partAction> >#P org.eclipse.gmf.runtime.draw2d.ui.render.awt >Index: src/org/eclipse/gmf/runtime/draw2d/ui/render/awt/internal/graphics/GraphicsToGraphics2DAdaptor.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.draw2d.ui.render.awt/src/org/eclipse/gmf/runtime/draw2d/ui/render/awt/internal/graphics/GraphicsToGraphics2DAdaptor.java,v >retrieving revision 1.4 >diff -u -r1.4 GraphicsToGraphics2DAdaptor.java >--- src/org/eclipse/gmf/runtime/draw2d/ui/render/awt/internal/graphics/GraphicsToGraphics2DAdaptor.java 26 Sep 2007 14:51:36 -0000 1.4 >+++ src/org/eclipse/gmf/runtime/draw2d/ui/render/awt/internal/graphics/GraphicsToGraphics2DAdaptor.java 27 Mar 2008 19:00:42 -0000 >@@ -1,5 +1,5 @@ > /****************************************************************************** >- * Copyright (c) 2004, 2007 IBM Corporation and others. >+ * Copyright (c) 2004, 2008 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -461,7 +461,12 @@ > int w2, > int h2) { > >- drawImage(srcImage, x2, y2); >+ x2 += transX; >+ y2 += transY; >+ >+ BufferedImage toDraw = ImageConverter.convert(srcImage); >+ checkState(); >+ getGraphics2D().drawImage(toDraw, x2, y2, w2, h2, null); > } > > /* >@@ -1227,5 +1232,15 @@ > getGraphics2D().setComposite(newComposite); > } > } >- >+ >+ protected BasicStroke getStroke(){ >+ return stroke; >+ } >+ >+ protected void setStroke(BasicStroke stroke){ >+ this.stroke = stroke; >+ getGraphics2D().setStroke(stroke); >+ } >+ >+ > } >#P org.eclipse.gmf.runtime.diagram.ui.printing >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.properties >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing/src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.properties,v >retrieving revision 1.2 >diff -u -r1.2 DiagramUIPrintingMessages.properties >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.properties 7 Mar 2008 16:51:33 -0000 1.2 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.properties 27 Mar 2008 19:00:43 -0000 >@@ -58,6 +58,22 @@ > JPSPrintDialog_PagesWide=Pages &wide: > JPSPrintDialog_PagesTall=Pages &tall: > >+JPSOptionsDialog_Quality=Quality >+JPSOptionsDialog_QualityHigh=&High >+JPSOptionsDialog_QualityMedium=&Medium >+JPSOptionsDialog_QualityLow=&Low >+JPSOptionsDialog_Color=Color >+JPSOptionsDialog_ChromaticityColor=&Color >+JPSOptionsDialog_ChromaticityMonochrome=&Monochrome >+JPSOptionsDialog_JobAttributes=Job Attributes >+JPSOptionsDialog_JobName=Job &Name >+JPSOptionsDialog_Sides=Sides >+JPSOptionsDialog_SidesOneSided=&One Sided >+JPSOptionsDialog_SidesTumble=&Tumble >+JPSOptionsDialog_SidesDuplex=&Duplex >+JPSOptionsDialog_AdvancedOptions=Advanced Options >+ >+ > # DiagramPrinterUtil related resource strings > # ================================ BEGIN ================================================== > DiagramPrinterUtil_DLLErrorTitle=Error loading printing library >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing/src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.java,v >retrieving revision 1.2 >diff -u -r1.2 DiagramUIPrintingMessages.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.java 7 Mar 2008 16:51:33 -0000 1.2 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.java 27 Mar 2008 19:00:43 -0000 >@@ -1,5 +1,5 @@ > /******************************************************************************* >- * Copyright (c) 2000, 2005 IBM Corporation and others. >+ * Copyright (c) 2000, 2008 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -67,6 +67,20 @@ > public static String JPSPrintDialog_PagesTall; > public static String JPSDiagramPrinterUtil_ErrorTitle; > public static String JPSDiagramPrinterUtil_ErrorMessage; >+ public static String JPSOptionsDialog_Quality; >+ public static String JPSOptionsDialog_QualityHigh; >+ public static String JPSOptionsDialog_QualityMedium; >+ public static String JPSOptionsDialog_QualityLow; >+ public static String JPSOptionsDialog_Color; >+ public static String JPSOptionsDialog_ChromaticityColor; >+ public static String JPSOptionsDialog_ChromaticityMonochrome; >+ public static String JPSOptionsDialog_JobAttributes; >+ public static String JPSOptionsDialog_JobName; >+ public static String JPSOptionsDialog_Sides; >+ public static String JPSOptionsDialog_SidesOneSided; >+ public static String JPSOptionsDialog_SidesTumble; >+ public static String JPSOptionsDialog_SidesDuplex; >+ public static String JPSOptionsDialog_AdvancedOptions; > > static { > NLS.initializeMessages(BUNDLE_NAME, DiagramUIPrintingMessages.class); >Index: src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingPluginImages.java >=================================================================== >RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui.printing/src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingPluginImages.java,v >retrieving revision 1.1 >diff -u -r1.1 DiagramUIPrintingPluginImages.java >--- src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingPluginImages.java 25 Nov 2005 19:38:16 -0000 1.1 >+++ src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingPluginImages.java 27 Mar 2008 19:00:43 -0000 >@@ -77,6 +77,13 @@ > > public static final ImageDescriptor DESC_CLOSE = create(PREFIX_ENABLED > + "print_preview_close.gif"); //$NON-NLS-1$ >+ >+ public static final ImageDescriptor COLLATE_ON = create(PREFIX_ENABLED >+ + "collate.gif"); //$NON-NLS-1$ >+ >+ public static final ImageDescriptor COLLATE_OFF = create(PREFIX_ENABLED >+ + "no_collate.gif"); //$NON-NLS-1$ >+ > > /** > * Creates the image descriptor from the filename given. >Index: icons/etool16/collate.gif >=================================================================== >RCS file: icons/etool16/collate.gif >diff -N icons/etool16/collate.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/etool16/collate.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,1 @@ >+GIF87ap*ÂìêÜÄÂÄüþü,p*þºÜþ0ÊI«½8ëÍ»ÿ`(diRBª®lm¼¾g%x®ï]Þ»`®W³ ?DðÈó#KæÐ9J É'ôªË¬R¯ÖfEe$õ+Âk[;ö6ÇÑÜ)|öö5}Av|y8jEM]u?X~w?z gF¢stp9u¤«-¯Sª µA°q´?;¾¹¦:£¿ºÂÄ©ÀÈɸdÌÔ®ÖÇvÚ¡ÛÒ»ÃàæÆy ¨8ìÁã§ÊÉÊé\·ÁâØîÿû:qS'Ì¿òzµÃtïÊ.zûuûpÒ@|§Ê1¼6ñ\Å?Úª5 ¤É±üy²e&LÞMs'ÊWÍ8ãŪæ@_jÂ$AEk-"ê,â¤M-*aºP©¨U,?ÕèSªÂk©%J¡°²4kmÃg?Þ 7ܹ55fß©ûrÔ°àòö>?-[·W |âîÝÊ2Þ̹³çÏ; >Index: icons/etool16/no_collate.gif >=================================================================== >RCS file: icons/etool16/no_collate.gif >diff -N icons/etool16/no_collate.gif >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ icons/etool16/no_collate.gif 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,3 @@ >+GIF87aq*ÂìêÜÄÂÄüþü,q*þºÜþ0ÊI«½8ëÍ»ÿ`(dihª®lë¾p,kBmßx`yïȤr@¬P$NEÏê²IÉj¥Ü÷K¸ÉI³ >+¦²ËáÎø«î¾ánvÝ3×î%}Vq?QB>tM=~?8?AwL P[¦i¢??¡¨ko©¯µ²¬[¹°ª`¾ÀG³£¼z¢¢jÃpIÊ« ½HÐmÍÅË®ÓÚG̶Þãx×âßѸÈPàÜëJíÇhÙÛÒïÔé >+جõæÝèÖô?cîÀr±îDøK®÷ Åó¥1~ùV±è¨ì²7n{Ö/aÅUÂ6̶K¼º2ù2òVH-íRÒfÓN=9Õ¤uó$O¢>U5æò%P¤¦röùÌ«X³BtºJ«WwNÛyÕJÊ?ÐUÓªµï#µpÁ¶E7<2 Ê3¯l}|ñúmËÞ»¾öQâbÄSù?·å±7]þ:¢®çÌ>×Å :îÓ¨S«^ͺµk× ;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
ahunter.eclipse
:
iplog+
Actions:
View
|
Diff
Attachments on
bug 224387
:
93808
| 93845 |
93860
|
93875