View | Details | Raw Unified | Return to bug 225213 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.java (-1 / +4 lines)
Lines 81-87 Link Here
81
	public static String JPSOptionsDialog_SidesTumble;
81
	public static String JPSOptionsDialog_SidesTumble;
82
	public static String JPSOptionsDialog_SidesDuplex;
82
	public static String JPSOptionsDialog_SidesDuplex;
83
	public static String JPSOptionsDialog_AdvancedOptions;
83
	public static String JPSOptionsDialog_AdvancedOptions;
84
				
84
	public static String JPSOptionsDialog_DiagramPrintRange;
85
	public static String JPSOptionsDialog_DiagramPrintCurrent;
86
	public static String JPSOptionsDialog_DiagramPrintSelected;
87
	
85
	static {
88
	static {
86
		NLS.initializeMessages(BUNDLE_NAME, DiagramUIPrintingMessages.class);
89
		NLS.initializeMessages(BUNDLE_NAME, DiagramUIPrintingMessages.class);
87
	}
90
	}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/internal/l10n/DiagramUIPrintingMessages.properties (+3 lines)
Lines 72-77 Link Here
72
JPSOptionsDialog_SidesTumble=&Tumble
72
JPSOptionsDialog_SidesTumble=&Tumble
73
JPSOptionsDialog_SidesDuplex=&Duplex
73
JPSOptionsDialog_SidesDuplex=&Duplex
74
JPSOptionsDialog_AdvancedOptions=Advanced Options
74
JPSOptionsDialog_AdvancedOptions=Advanced Options
75
JPSOptionsDialog_DiagramPrintRange=Diagram Print Range
76
JPSOptionsDialog_DiagramPrintCurrent=&Current diagram
77
JPSOptionsDialog_DiagramPrintSelected=&Selected diagrams:
75
78
76
79
77
# DiagramPrinterUtil related resource strings
80
# DiagramPrinterUtil related resource strings
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/util/PrintHelper.java (-13 / +19 lines)
Lines 9-16 Link Here
9
 *    IBM Corporation - initial API and implementation 
9
 *    IBM Corporation - initial API and implementation 
10
 ****************************************************************************/
10
 ****************************************************************************/
11
11
12
13
14
package org.eclipse.gmf.runtime.diagram.ui.printing.render.util;
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.util;
15
13
16
import java.util.List;
14
import java.util.List;
Lines 26-35 Link Here
26
 * Default implementation of a print-helper.
24
 * Default implementation of a print-helper.
27
 * 
25
 * 
28
 * @author Christian W. Damus (cdamus)
26
 * @author Christian W. Damus (cdamus)
27
 * @author James Bruck (jbruck)
29
 */
28
 */
30
public class PrintHelper implements IPrintHelper {
29
public class PrintHelper implements IPrintHelper {
31
	private final PrintOptions options = new PrintOptions();
30
	private final PrintOptions options = new PrintOptions();
32
31
32
	List<String> diagramList;
33
33
	public PrintHelper() {
34
	public PrintHelper() {
34
		initPrintOptions();
35
		initPrintOptions();
35
	}
36
	}
Lines 49-69 Link Here
49
50
50
		options.setCopies(1);
51
		options.setCopies(1);
51
		options.setCollate(false);
52
		options.setCollate(false);
52
		
53
53
		options.setQualityHigh(true);
54
		options.setQualityHigh(true);
54
		options.setSideOneSided(true);
55
		options.setSideOneSided(true);
55
		options.setChromaticityColor(true);
56
		options.setChromaticityColor(true);
56
				
57
58
		options.setDiagramCurrent(true);
57
	}
59
	}
58
60
59
	/*
61
	/*
60
	 * (non-Javadoc)
62
	 * (non-Javadoc)
61
	 * @see org.eclipse.gmf.runtime.common.ui.printing.IPrintHelper#openPrintDlg(java.util.List)
63
	 * @see org.eclipse.gmf.runtime.common.ui.printing.IPrintHelper#openPrintDlg(java.util.List)
62
	 */
64
	 */
63
	public PrinterData openPrintDlg(List diagramList) {
65
	@SuppressWarnings("unchecked")
66
	public PrinterData openPrintDlg(List availableDiagramList) {
64
		PrinterData result = null;
67
		PrinterData result = null;
68
		this.diagramList = availableDiagramList;
69
65
		JPSPrintDialog dlg = new JPSPrintDialog(PlatformUI.getWorkbench()
70
		JPSPrintDialog dlg = new JPSPrintDialog(PlatformUI.getWorkbench()
66
				.getActiveWorkbenchWindow(), options);
71
				.getActiveWorkbenchWindow(), options, this.diagramList);
67
72
68
		if (dlg.open() == IDialogConstants.OK_ID) {
73
		if (dlg.open() == IDialogConstants.OK_ID) {
69
			if (options.getDestination() != null) {
74
			if (options.getDestination() != null) {
Lines 121-137 Link Here
121
	}
126
	}
122
127
123
	public boolean getDlgDiagramPrintRangeCurrent() {
128
	public boolean getDlgDiagramPrintRangeCurrent() {
124
		// TODO Not supported by the JPS dialog
129
		return options.isDiagramCurrent();
125
		return true;
126
	}
130
	}
127
131
128
	public boolean getDlgDiagramPrintRangeSelection() {
132
	public boolean getDlgDiagramPrintRangeSelection() {
129
		// TODO Not supported by the JPS dialog
133
		return options.isDiagramSelection();
130
		return false;
131
	}
134
	}
132
135
133
	public boolean isDlgDiagramSelected(int index) {
136
	public boolean isDlgDiagramSelected(int index) {
134
		// TODO Not supported by the JPS dialog
137
		String diagramToPrint = diagramList.get(index);
138
		if (options.getDiagramsToPrint() != null) {
139
			return options.getDiagramsToPrint().contains(diagramToPrint);
140
		}
135
		return false;
141
		return false;
136
	}
142
	}
137
143
Lines 139-146 Link Here
139
		// TODO Not supported by the JPS dialog
145
		// TODO Not supported by the JPS dialog
140
		return false;
146
		return false;
141
	}
147
	}
142
	
148
143
	public PrintOptions getPrintOptions(){
149
	public PrintOptions getPrintOptions() {
144
		return options;
150
		return options;
145
	}
151
	}
146
152
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSPrintDialog.java (-38 / +58 lines)
Lines 13-18 Link Here
13
13
14
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
14
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
15
15
16
import java.util.List;
17
16
import org.eclipse.core.databinding.DataBindingContext;
18
import org.eclipse.core.databinding.DataBindingContext;
17
import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages;
19
import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages;
18
import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions;
20
import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions;
Lines 40-50 Link Here
40
    private final PrintOptions options;
42
    private final PrintOptions options;
41
    
43
    
42
    protected PrinterBlock printerBlock;
44
    protected PrinterBlock printerBlock;
45
    protected DiagramPrintRangeBlock diagramPrintRangeBlock;
43
    protected ScalingBlock scalingBlock;
46
    protected ScalingBlock scalingBlock;
44
    private RangeBlock rangeBlock;
47
    private RangeBlock rangeBlock;
45
    private CopiesBlock copiesBlock;
48
    private CopiesBlock copiesBlock;
46
    private ActionsBlock actionsBlock;
49
    private ActionsBlock actionsBlock;
47
    
50
    
51
    private List<String> allDiagrams;
52
    
48
    private final DialogBlock.IDialogUnitConverter dluConverter = new DialogBlock.IDialogUnitConverter() {
53
    private final DialogBlock.IDialogUnitConverter dluConverter = new DialogBlock.IDialogUnitConverter() {
49
54
50
		public int convertHorizontalDLUsToPixels(int dlus) {
55
		public int convertHorizontalDLUsToPixels(int dlus) {
Lines 56-69 Link Here
56
		}
61
		}
57
	};
62
	};
58
    
63
    
59
    public JPSPrintDialog(IShellProvider parentShell, PrintOptions options) {
64
    public JPSPrintDialog(IShellProvider parentShell, PrintOptions options, List<String> allDiagrams) {
60
        super(parentShell);
65
        super(parentShell);
61
        this.options = options;
66
        this.options = options;
67
        this.allDiagrams = allDiagrams;
62
    }
68
    }
63
69
64
    public JPSPrintDialog(Shell shell, PrintOptions options) {
70
    public JPSPrintDialog(Shell shell, PrintOptions options, List<String> allDiagrams) {
65
        super(shell);
71
        super(shell);
66
        this.options = options;
72
        this.options = options;
73
        this.allDiagrams = allDiagrams;
67
    }
74
    }
68
75
69
    /*
76
    /*
Lines 81-100 Link Here
81
     * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
88
     * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
82
     */
89
     */
83
    protected Control createDialogArea(Composite parent) {
90
    protected Control createDialogArea(Composite parent) {
84
        bindings = new DataBindingContext(SWTObservables.getRealm(parent.getDisplay()));
91
		bindings = new DataBindingContext(SWTObservables.getRealm(parent
85
     
92
				.getDisplay()));
86
        Composite result = new Composite(parent,SWT.NONE);
93
87
        DialogBlock.layout(result, 2);
94
		Composite result = new Composite(parent, SWT.NONE);
88
                      
95
		DialogBlock.layout(result, 2);
89
        createPrinterBlockArea(result);
96
90
        createScalingBlockArea(result);
97
		createPrinterBlockArea(result);
91
        createExtensibleBlockArea(result);
98
		createDiagramPrintRangeBlockArea(result);
92
        createRangeBlockArea(result);
99
		createScalingBlockArea(result);
93
        createCopiesBlockArea(result);
100
		createRangeBlockArea(result);
94
        createActionsBlockArea(result);
101
		createCopiesBlockArea(result);
95
                     
102
		createActionsBlockArea(result);
96
        return result;
103
		createExtensibleBlockArea(result);
97
    }
104
105
		return result;
106
	}
98
    
107
    
99
    protected void createPrinterBlockArea(Composite result) {
108
    protected void createPrinterBlockArea(Composite result) {
100
		printerBlock = new PrinterBlock(dluConverter, bindings, options);
109
		printerBlock = new PrinterBlock(dluConverter, bindings, options);
Lines 122-127 Link Here
122
         actionsBlock.layoutSpanHorizontal(actionsBlock.createContents(result), 2);
131
         actionsBlock.layoutSpanHorizontal(actionsBlock.createContents(result), 2);
123
	}
132
	}
124
    
133
    
134
    protected void createDiagramPrintRangeBlockArea(Composite result){
135
    	diagramPrintRangeBlock = new DiagramPrintRangeBlock(dluConverter,bindings,options, allDiagrams);
136
    	diagramPrintRangeBlock.layoutSpanHorizontal(diagramPrintRangeBlock.createContents(result),
137
				2);
138
    }
139
    
125
    protected void createExtensibleBlockArea(Composite result) {
140
    protected void createExtensibleBlockArea(Composite result) {
126
    	  // meant to be overridden by subclasses to add additional blocks.
141
    	  // meant to be overridden by subclasses to add additional blocks.
127
  	}
142
  	}
Lines 133-162 Link Here
133
    }
148
    }
134
    
149
    
135
    protected void buttonPressed(int buttonId) {
150
    protected void buttonPressed(int buttonId) {
136
        switch (buttonId) {
151
		switch (buttonId) {
137
            case -1:
152
		case -1:
138
                break;
153
			break;
139
            default:
154
		default:
140
                super.buttonPressed(buttonId);
155
			super.buttonPressed(buttonId);
141
        }
156
		}
142
    }
157
	}
143
    
158
144
    public boolean close() {
159
	public boolean close() {
145
        bindings.dispose();
160
		bindings.dispose();
146
        copiesBlock.dispose();
161
		copiesBlock.dispose();
147
        return super.close();
162
		printerBlock.dispose();
148
    }
163
		diagramPrintRangeBlock.dispose();
149
    
164
		scalingBlock.dispose();
150
    protected void cancelPressed() {
165
		rangeBlock.dispose();
151
        super.cancelPressed();
166
		actionsBlock.dispose();
152
    }
167
		return super.close();
168
	}
169
170
	protected void cancelPressed() {
171
		super.cancelPressed();
172
	}
153
    
173
    
154
    /**
174
    /**
155
     * Obtains the user's selected printing options, or <code>null</code> if
175
	 * Obtains the user's selected printing options, or <code>null</code> if
156
     * the user canceled the print operation.
176
	 * the user canceled the print operation.
157
     * 
177
	 * 
158
     * @return the printing  options, or <code>null</code> if canceled
178
	 * @return the printing options, or <code>null</code> if canceled
159
     */
179
	 */
160
    public PrintOptions getPrintOptions() {
180
    public PrintOptions getPrintOptions() {
161
        return options;
181
        return options;
162
    }
182
    }
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JobAttributesBlock.java (-1 / +9 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
13
13
14
import org.eclipse.core.databinding.Binding;
14
import org.eclipse.core.databinding.DataBindingContext;
15
import org.eclipse.core.databinding.DataBindingContext;
15
import org.eclipse.core.databinding.beans.BeansObservables;
16
import org.eclipse.core.databinding.beans.BeansObservables;
16
import org.eclipse.core.databinding.observable.Realm;
17
import org.eclipse.core.databinding.observable.Realm;
Lines 30-35 Link Here
30
public class JobAttributesBlock extends DialogBlock {
31
public class JobAttributesBlock extends DialogBlock {
31
	private final DataBindingContext bindings;
32
	private final DataBindingContext bindings;
32
	private final PrintOptions options;
33
	private final PrintOptions options;
34
	private Binding jobNameBinding;
33
35
34
	JobAttributesBlock(IDialogUnitConverter dluConverter,
36
	JobAttributesBlock(IDialogUnitConverter dluConverter,
35
			DataBindingContext bindings, PrintOptions options) {
37
			DataBindingContext bindings, PrintOptions options) {
Lines 55-64 Link Here
55
				DiagramUIPrintingMessages.JPSOptionsDialog_JobName)));
57
				DiagramUIPrintingMessages.JPSOptionsDialog_JobName)));
56
		Text jobName = text(result, 80);
58
		Text jobName = text(result, 80);
57
59
58
		bindings.bindValue(SWTObservables.observeText(jobName, SWT.Modify),
60
		jobNameBinding = bindings.bindValue(SWTObservables.observeText(jobName, SWT.Modify),
59
				BeansObservables.observeValue(realm, options,
61
				BeansObservables.observeValue(realm, options,
60
						PrintOptions.PROPERTY_JOB_NAME), null, null);
62
						PrintOptions.PROPERTY_JOB_NAME), null, null);
61
63
62
		return result;
64
		return result;
63
	}
65
	}
66
	
67
	@Override
68
	public void dispose() {
69
		bindings.removeBinding(jobNameBinding);
70
		jobNameBinding.dispose();	
71
	}
64
}
72
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/JPSOptionsDialog.java (+12 lines)
Lines 111-114 Link Here
111
				options);
111
				options);
112
		jobAttributesBlock.createContents(result);
112
		jobAttributesBlock.createContents(result);
113
	}
113
	}
114
		
115
	/*
116
	 * (non-Javadoc)
117
	 * @see org.eclipse.jface.dialogs.TrayDialog#close()
118
	 */
119
	public boolean close() {
120
		qualityBlock.dispose();
121
		colorBlock.dispose();
122
		sidesBlock.dispose();
123
		jobAttributesBlock.dispose();
124
		return super.close();
125
	}
114
}
126
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ActionsBlock.java (+5 lines)
Lines 99-103 Link Here
99
		}
99
		}
100
		return printActionHelper;
100
		return printActionHelper;
101
	}
101
	}
102
	
103
	@Override
104
	public void dispose() {
105
		// nothing special to dispose		
106
	}
102
107
103
}
108
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/RangeBlock.java (+5 lines)
Lines 98-101 Link Here
98
98
99
		return result;
99
		return result;
100
	}
100
	}
101
	
102
	@Override
103
	public void dispose() {
104
		// nothing special to dispose currently		
105
	}
101
}
106
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ScalingBlock.java (+5 lines)
Lines 111-114 Link Here
111
111
112
		return result;
112
		return result;
113
	}
113
	}
114
	
115
	@Override
116
	public void dispose() {
117
		// nothing special to dispose currently	
118
	}
114
}
119
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/ColorBlock.java (-2 / +14 lines)
Lines 22-27 Link Here
22
import javax.print.attribute.standard.ColorSupported;
22
import javax.print.attribute.standard.ColorSupported;
23
import javax.print.attribute.standard.PrinterName;
23
import javax.print.attribute.standard.PrinterName;
24
24
25
import org.eclipse.core.databinding.Binding;
25
import org.eclipse.core.databinding.DataBindingContext;
26
import org.eclipse.core.databinding.DataBindingContext;
26
import org.eclipse.core.databinding.beans.BeansObservables;
27
import org.eclipse.core.databinding.beans.BeansObservables;
27
import org.eclipse.core.databinding.observable.Realm;
28
import org.eclipse.core.databinding.observable.Realm;
Lines 44-49 Link Here
44
45
45
	private Button colorRadio;
46
	private Button colorRadio;
46
	private Button monoRadio;
47
	private Button monoRadio;
48
	
49
	private Binding colorBinding;
50
	private Binding monoBinding;
47
51
48
	ColorBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings,
52
	ColorBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings,
49
			PrintOptions options) {
53
			PrintOptions options) {
Lines 74-84 Link Here
74
				DiagramUIPrintingMessages.JPSOptionsDialog_ChromaticityMonochrome);
78
				DiagramUIPrintingMessages.JPSOptionsDialog_ChromaticityMonochrome);
75
		layoutSpanHorizontal(monoRadio, 4);
79
		layoutSpanHorizontal(monoRadio, 4);
76
80
77
		bindings.bindValue(SWTObservables.observeSelection(colorRadio),
81
		colorBinding = bindings.bindValue(SWTObservables.observeSelection(colorRadio),
78
				BeansObservables.observeValue(realm, options,
82
				BeansObservables.observeValue(realm, options,
79
						PrintOptions.PROPERTY_CHROMATICITY_COLOR), null, null);
83
						PrintOptions.PROPERTY_CHROMATICITY_COLOR), null, null);
80
84
81
		bindings.bindValue(SWTObservables.observeSelection(monoRadio),
85
		monoBinding = bindings.bindValue(SWTObservables.observeSelection(monoRadio),
82
				BeansObservables.observeValue(realm, options,
86
				BeansObservables.observeValue(realm, options,
83
						PrintOptions.PROPERTY_CHROMATICITY_MONO), null, null);
87
						PrintOptions.PROPERTY_CHROMATICITY_MONO), null, null);
84
88
Lines 119-123 Link Here
119
			colorRadio.setEnabled(false);
123
			colorRadio.setEnabled(false);
120
		}
124
		}
121
	}
125
	}
126
	
127
	@Override
128
	public void dispose() {
129
		bindings.removeBinding(colorBinding);
130
		colorBinding.dispose();
131
		bindings.removeBinding(monoBinding);
132
		monoBinding.dispose();
133
	}
122
134
123
}
135
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/DialogBlock.java (+8 lines)
Lines 12-17 Link Here
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
13
13
14
import org.eclipse.jface.viewers.ComboViewer;
14
import org.eclipse.jface.viewers.ComboViewer;
15
import org.eclipse.jface.viewers.ListViewer;
15
import org.eclipse.swt.SWT;
16
import org.eclipse.swt.SWT;
16
import org.eclipse.swt.layout.GridData;
17
import org.eclipse.swt.layout.GridData;
17
import org.eclipse.swt.layout.GridLayout;
18
import org.eclipse.swt.layout.GridLayout;
Lines 194-199 Link Here
194
		ComboViewer result = new ComboViewer(parent);
195
		ComboViewer result = new ComboViewer(parent);
195
		return result;
196
		return result;
196
	}
197
	}
198
	
199
	ListViewer list(Composite parent){
200
		ListViewer result = new ListViewer(parent);
201
		return result;
202
	}
197
203
198
	Button button(Composite parent, String text) {
204
	Button button(Composite parent, String text) {
199
		Button result = new Button(parent, SWT.PUSH);
205
		Button result = new Button(parent, SWT.PUSH);
Lines 227-232 Link Here
227
	}
233
	}
228
234
229
	public abstract Control createContents(Composite parent);
235
	public abstract Control createContents(Composite parent);
236
	
237
	public abstract void dispose();
230
238
231
	public static interface IDialogUnitConverter {
239
	public static interface IDialogUnitConverter {
232
		int convertHorizontalDLUsToPixels(int dlus);
240
		int convertHorizontalDLUsToPixels(int dlus);
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/QualityBlock.java (-3 / +18 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
13
13
14
import org.eclipse.core.databinding.Binding;
14
import org.eclipse.core.databinding.DataBindingContext;
15
import org.eclipse.core.databinding.DataBindingContext;
15
import org.eclipse.core.databinding.beans.BeansObservables;
16
import org.eclipse.core.databinding.beans.BeansObservables;
16
import org.eclipse.core.databinding.observable.Realm;
17
import org.eclipse.core.databinding.observable.Realm;
Lines 30-35 Link Here
30
31
31
	private final DataBindingContext bindings;
32
	private final DataBindingContext bindings;
32
	private final PrintOptions options;
33
	private final PrintOptions options;
34
	
35
	private Binding qualityHighBinding;
36
	private Binding qualityMedBinding;
37
	private Binding qualityLowBinding;
33
38
34
	QualityBlock(IDialogUnitConverter dluConverter,
39
	QualityBlock(IDialogUnitConverter dluConverter,
35
			DataBindingContext bindings, PrintOptions options) {
40
			DataBindingContext bindings, PrintOptions options) {
Lines 63-80 Link Here
63
				DiagramUIPrintingMessages.JPSOptionsDialog_QualityLow);
68
				DiagramUIPrintingMessages.JPSOptionsDialog_QualityLow);
64
		layoutSpanHorizontal(lowRadio, 4);
69
		layoutSpanHorizontal(lowRadio, 4);
65
70
66
		bindings.bindValue(SWTObservables.observeSelection(highRadio),
71
		qualityHighBinding = bindings.bindValue(SWTObservables.observeSelection(highRadio),
67
				BeansObservables.observeValue(realm, options,
72
				BeansObservables.observeValue(realm, options,
68
						PrintOptions.PROPERTY_QUALITY_HIGH), null, null);
73
						PrintOptions.PROPERTY_QUALITY_HIGH), null, null);
69
74
70
		bindings.bindValue(SWTObservables.observeSelection(mediumRadio),
75
		qualityMedBinding = bindings.bindValue(SWTObservables.observeSelection(mediumRadio),
71
				BeansObservables.observeValue(realm, options,
76
				BeansObservables.observeValue(realm, options,
72
						PrintOptions.PROPERTY_QUALITY_MED), null, null);
77
						PrintOptions.PROPERTY_QUALITY_MED), null, null);
73
78
74
		bindings.bindValue(SWTObservables.observeSelection(lowRadio),
79
		qualityLowBinding = bindings.bindValue(SWTObservables.observeSelection(lowRadio),
75
				BeansObservables.observeValue(realm, options,
80
				BeansObservables.observeValue(realm, options,
76
						PrintOptions.PROPERTY_QUALITY_LOW), null, null);
81
						PrintOptions.PROPERTY_QUALITY_LOW), null, null);
77
82
78
		return result;
83
		return result;
79
	}
84
	}
85
	
86
	@Override
87
	public void dispose() {
88
		bindings.removeBinding(qualityHighBinding);
89
		qualityHighBinding.dispose();
90
		bindings.removeBinding(qualityLowBinding);
91
		qualityLowBinding.dispose();
92
		bindings.removeBinding(qualityMedBinding);
93
		qualityMedBinding.dispose();
94
	}
80
}
95
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/PrinterBlock.java (+5 lines)
Lines 298-301 Link Here
298
		dlg.open();
298
		dlg.open();
299
299
300
	}
300
	}
301
302
	@Override
303
	public void dispose() {
304
		// nothing special to dispose currently	
305
	}
301
}
306
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/SidesBlock.java (-3 / +17 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
13
13
14
import org.eclipse.core.databinding.Binding;
14
import org.eclipse.core.databinding.DataBindingContext;
15
import org.eclipse.core.databinding.DataBindingContext;
15
import org.eclipse.core.databinding.beans.BeansObservables;
16
import org.eclipse.core.databinding.beans.BeansObservables;
16
import org.eclipse.core.databinding.observable.Realm;
17
import org.eclipse.core.databinding.observable.Realm;
Lines 30-35 Link Here
30
31
31
	private final DataBindingContext bindings;
32
	private final DataBindingContext bindings;
32
	private final PrintOptions options;
33
	private final PrintOptions options;
34
	private Binding oneSidedBinding;
35
	private Binding tumbleBinding;
36
	private Binding duplexBinding;
33
37
34
	SidesBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings,
38
	SidesBlock(IDialogUnitConverter dluConverter, DataBindingContext bindings,
35
			PrintOptions options) {
39
			PrintOptions options) {
Lines 62-80 Link Here
62
				DiagramUIPrintingMessages.JPSOptionsDialog_SidesDuplex);
66
				DiagramUIPrintingMessages.JPSOptionsDialog_SidesDuplex);
63
		layoutSpanHorizontal(duplexRadio, 4);
67
		layoutSpanHorizontal(duplexRadio, 4);
64
68
65
		bindings.bindValue(SWTObservables.observeSelection(oneSideRadio),
69
		oneSidedBinding = bindings.bindValue(SWTObservables.observeSelection(oneSideRadio),
66
				BeansObservables.observeValue(realm, options,
70
				BeansObservables.observeValue(realm, options,
67
						PrintOptions.PROPERTY_SIDES_ONESIDED), null, null);
71
						PrintOptions.PROPERTY_SIDES_ONESIDED), null, null);
68
72
69
		bindings.bindValue(SWTObservables.observeSelection(tumbleRadio),
73
		tumbleBinding = bindings.bindValue(SWTObservables.observeSelection(tumbleRadio),
70
				BeansObservables.observeValue(realm, options,
74
				BeansObservables.observeValue(realm, options,
71
						PrintOptions.PROPERTY_SIDES_TUMBLE), null, null);
75
						PrintOptions.PROPERTY_SIDES_TUMBLE), null, null);
72
76
73
		bindings.bindValue(SWTObservables.observeSelection(duplexRadio),
77
		duplexBinding = bindings.bindValue(SWTObservables.observeSelection(duplexRadio),
74
				BeansObservables.observeValue(realm, options,
78
				BeansObservables.observeValue(realm, options,
75
						PrintOptions.PROPERTY_SIDES_DUPLEX), null, null);
79
						PrintOptions.PROPERTY_SIDES_DUPLEX), null, null);
76
80
77
		return result;
81
		return result;
78
	}
82
	}
79
83
84
	@Override
85
	public void dispose() {
86
		bindings.removeBinding(oneSidedBinding);
87
		oneSidedBinding.dispose();
88
		bindings.removeBinding(tumbleBinding);
89
		tumbleBinding.dispose();	
90
		bindings.removeBinding(duplexBinding);
91
		duplexBinding.dispose();
92
	}
93
80
}
94
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/model/PrintOptions.java (-258 / +301 lines)
Lines 11-16 Link Here
11
11
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.model;
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.model;
13
13
14
import java.util.List;
14
15
15
/**
16
/**
16
 * This class is used as part of the infrastructure required for data-bindings
17
 * This class is used as part of the infrastructure required for data-bindings
Lines 20-281 Link Here
20
 * @author James Bruck (jbruck)
21
 * @author James Bruck (jbruck)
21
 */
22
 */
22
public class PrintOptions extends PrintModelElement {
23
public class PrintOptions extends PrintModelElement {
23
    public static String PROPERTY_DESTINATION = "destination"; //$NON-NLS-1$
24
	public static String PROPERTY_DESTINATION = "destination"; //$NON-NLS-1$
24
    
25
25
    public static String PROPERTY_PERCENT_SCALING = "percentScaling"; //$NON-NLS-1$
26
	public static String PROPERTY_PERCENT_SCALING = "percentScaling"; //$NON-NLS-1$
26
    public static String PROPERTY_SCALE_FACTOR = "scaleFactor"; //$NON-NLS-1$
27
	public static String PROPERTY_SCALE_FACTOR = "scaleFactor"; //$NON-NLS-1$
27
    public static String PROPERTY_FIT_TO_WIDTH = "fitToPagesWidth"; //$NON-NLS-1$
28
	public static String PROPERTY_FIT_TO_WIDTH = "fitToPagesWidth"; //$NON-NLS-1$
28
    public static String PROPERTY_FIT_TO_HEIGHT = "fitToPagesHeight"; //$NON-NLS-1$
29
	public static String PROPERTY_FIT_TO_HEIGHT = "fitToPagesHeight"; //$NON-NLS-1$
29
    
30
30
    public static String PROPERTY_ALL_PAGES = "allPages"; //$NON-NLS-1$
31
	public static String PROPERTY_ALL_PAGES = "allPages"; //$NON-NLS-1$
31
    public static String PROPERTY_RANGE_FROM = "rangeFrom"; //$NON-NLS-1$
32
	public static String PROPERTY_RANGE_FROM = "rangeFrom"; //$NON-NLS-1$
32
    public static String PROPERTY_RANGE_TO = "rangeTo"; //$NON-NLS-1$
33
	public static String PROPERTY_RANGE_TO = "rangeTo"; //$NON-NLS-1$
33
    
34
34
    public static String PROPERTY_COPIES = "copies"; //$NON-NLS-1$
35
	public static String PROPERTY_COPIES = "copies"; //$NON-NLS-1$
35
    public static String PROPERTY_COLLATE = "collate"; //$NON-NLS-1$
36
	public static String PROPERTY_COLLATE = "collate"; //$NON-NLS-1$
36
        
37
37
    public static String PROPERTY_QUALITY_HIGH = "qualityHigh"; //$NON-NLS-1$
38
	public static String PROPERTY_QUALITY_HIGH = "qualityHigh"; //$NON-NLS-1$
38
    public static String PROPERTY_QUALITY_LOW = "qualityLow"; //$NON-NLS-1$
39
	public static String PROPERTY_QUALITY_LOW = "qualityLow"; //$NON-NLS-1$
39
    public static String PROPERTY_QUALITY_MED = "qualityMed"; //$NON-NLS-1$
40
	public static String PROPERTY_QUALITY_MED = "qualityMed"; //$NON-NLS-1$
40
    public static String PROPERTY_CHROMATICITY_MONO = "chromaticityMono"; //$NON-NLS-1$
41
	public static String PROPERTY_CHROMATICITY_MONO = "chromaticityMono"; //$NON-NLS-1$
41
    public static String PROPERTY_CHROMATICITY_COLOR = "chromaticityColor"; //$NON-NLS-1$
42
	public static String PROPERTY_CHROMATICITY_COLOR = "chromaticityColor"; //$NON-NLS-1$
42
    public static String PROPERTY_SIDES_ONESIDED = "sideOneSided"; //$NON-NLS-1$
43
	public static String PROPERTY_SIDES_ONESIDED = "sideOneSided"; //$NON-NLS-1$
43
    public static String PROPERTY_SIDES_TUMBLE = "sideTumble"; //$NON-NLS-1$
44
	public static String PROPERTY_SIDES_TUMBLE = "sideTumble"; //$NON-NLS-1$
44
    public static String PROPERTY_SIDES_DUPLEX = "sideDuplex"; //$NON-NLS-1$
45
	public static String PROPERTY_SIDES_DUPLEX = "sideDuplex"; //$NON-NLS-1$
45
 
46
46
    public static String PROPERTY_JOB_NAME = "jobName"; //$NON-NLS-1$
47
	public static String PROPERTY_JOB_NAME = "jobName"; //$NON-NLS-1$
47
    public static String PROPERTY_USER_NAME = "userName"; //$NON-NLS-1$
48
	public static String PROPERTY_USER_NAME = "userName"; //$NON-NLS-1$
48
49
49
    private PrintDestination destination;
50
	public static String PROPERTY_DIAGRAM_CURRENT = "diagramCurrent"; //$NON-NLS-1$
50
    
51
	public static String PROPERTY_DIAGRAM_SELECTION = "diagramSelection"; //$NON-NLS-1$
51
    private boolean percentScaling;
52
52
    private int scaleFactor;
53
	private PrintDestination destination;
53
    private int fitToPagesWidth;
54
54
    private int fitToPagesHeight;
55
	private boolean percentScaling;
55
    
56
	private int scaleFactor;
56
    private boolean allPages;
57
	private int fitToPagesWidth;
57
    private int rangeFrom;
58
	private int fitToPagesHeight;
58
    private int rangeTo;
59
59
    
60
	private boolean allPages;
60
    private int copies;
61
	private int rangeFrom;
61
    private boolean collate;
62
	private int rangeTo;
62
    
63
63
    private boolean qualityHigh;
64
	private int copies;
64
    private boolean qualityLow;
65
	private boolean collate;
65
    private boolean qualityMed;
66
66
        
67
	private boolean qualityHigh;
67
    private boolean chromaticityColor;
68
	private boolean qualityLow;
68
    private boolean chromaticityMono;
69
	private boolean qualityMed;
69
    
70
70
    private boolean sideOneSided;
71
	private boolean chromaticityColor;
71
    private boolean sideTumble;
72
	private boolean chromaticityMono;
72
    private boolean sideDuplex;
73
73
   
74
	private boolean sideOneSided;
74
    private String jobName;
75
	private boolean sideTumble;
75
    private String userName;
76
	private boolean sideDuplex;
76
    
77
77
    public PrintOptions() {
78
	private String jobName;
78
        super();
79
	private String userName;
79
    }
80
80
81
	private boolean diagramCurrent;
81
    public PrintDestination getDestination() {
82
	private boolean diagramSelection;
82
        return destination;
83
83
    }
84
	private List<String> diagramsToPrint;
84
    
85
85
    public void setDestination(PrintDestination destination) {
86
	public PrintOptions() {
86
        PrintDestination oldDestination = this.destination;
87
		super();
87
        this.destination = destination;
88
	}
88
        firePropertyChange(PROPERTY_DESTINATION, oldDestination, destination);
89
89
    }
90
	public PrintDestination getDestination() {
90
    
91
		return destination;
91
    public boolean isPercentScaling() {
92
	}
92
        return percentScaling;
93
93
    }
94
	public void setDestination(PrintDestination destination) {
94
    
95
		PrintDestination oldDestination = this.destination;
95
    public void setPercentScaling(boolean percentScaling) {
96
		this.destination = destination;
96
        boolean oldScaling = this.percentScaling;
97
		firePropertyChange(PROPERTY_DESTINATION, oldDestination, destination);
97
        this.percentScaling = percentScaling;
98
	}
98
        firePropertyChange(PROPERTY_PERCENT_SCALING, oldScaling, percentScaling);
99
99
    }
100
	public boolean isPercentScaling() {
100
    public String getJobName() {
101
		return percentScaling;
101
        return jobName;
102
	}
102
    }
103
103
    
104
	public void setPercentScaling(boolean percentScaling) {
104
    public void setJobName(String name) {
105
		boolean oldScaling = this.percentScaling;
105
        String oldName = this.jobName;
106
		this.percentScaling = percentScaling;
106
        this.jobName = name;
107
		firePropertyChange(PROPERTY_PERCENT_SCALING, oldScaling, percentScaling);
107
        firePropertyChange(PROPERTY_JOB_NAME, oldName, name);
108
	}
108
    }
109
109
    
110
	public String getJobName() {
110
    public String getUserName() {
111
		return jobName;
111
        return userName;
112
	}
112
    }
113
113
    
114
	public void setJobName(String name) {
114
    public void setUserName(String name) {
115
		String oldName = this.jobName;
115
        String oldName = this.userName;
116
		this.jobName = name;
116
        this.userName = name;
117
		firePropertyChange(PROPERTY_JOB_NAME, oldName, name);
117
        firePropertyChange(PROPERTY_USER_NAME, oldName, name);
118
	}
118
    }
119
119
    
120
	public String getUserName() {
120
    public boolean isQualityHigh() {
121
		return userName;
121
        return this.qualityHigh;
122
	}
122
    }
123
123
    
124
	public void setUserName(String name) {
124
    public void setQualityHigh(boolean qualityHigh) {
125
		String oldName = this.userName;
125
        boolean oldQualityHigh = this.qualityHigh;
126
		this.userName = name;
126
        this.qualityHigh = qualityHigh;
127
		firePropertyChange(PROPERTY_USER_NAME, oldName, name);
127
        firePropertyChange(PROPERTY_QUALITY_HIGH, oldQualityHigh, qualityHigh);
128
	}
128
    }
129
129
    
130
	public void setDiagramsToPrint(List<String> diagramsToPrint) {
130
    public boolean isQualityLow() {
131
		this.diagramsToPrint = diagramsToPrint;
131
        return this.qualityLow;
132
	}
132
    }
133
133
    
134
	public List<String> getDiagramsToPrint() {
134
    public void setQualityLow(boolean qualityLow) {
135
		return diagramsToPrint;
135
        boolean oldQualityLow = this.qualityLow;
136
	}
136
        this.qualityLow = qualityLow;
137
137
        firePropertyChange(PROPERTY_QUALITY_LOW, oldQualityLow, this.qualityLow);
138
	public boolean isDiagramCurrent() {
138
    }
139
		return this.diagramCurrent;
139
    
140
	}
140
    public boolean isQualityMed() {
141
141
        return this.qualityMed;
142
	public void setDiagramCurrent(boolean diagramCurrent) {
142
    }
143
		boolean oldDiagramCurrent = this.diagramCurrent;
143
    
144
		this.diagramCurrent = diagramCurrent;
144
    public void setQualityMed(boolean qualityMed) {
145
		firePropertyChange(PROPERTY_DIAGRAM_CURRENT, oldDiagramCurrent,
145
        boolean oldQualityMed = this.qualityMed;
146
				diagramCurrent);
146
        this.qualityMed = qualityMed;
147
	}
147
        firePropertyChange(PROPERTY_QUALITY_MED, oldQualityMed, this.qualityMed);
148
148
    }
149
	public boolean isDiagramSelection() {
149
    
150
		return this.diagramSelection;
150
    
151
	}
151
    public int getScaleFactor() {
152
152
        return scaleFactor;
153
	public void setDiagramSelection(boolean diagramSelection) {
153
    }
154
		boolean oldDiagramSelection = this.diagramSelection;
154
    
155
		this.diagramSelection = diagramSelection;
155
    public void setScaleFactor(int scaleFactor) {
156
		firePropertyChange(PROPERTY_DIAGRAM_SELECTION, oldDiagramSelection,
156
        int oldFactor = this.scaleFactor;
157
				diagramSelection);
157
        this.scaleFactor = scaleFactor;
158
	}
158
        firePropertyChange(PROPERTY_SCALE_FACTOR, oldFactor, scaleFactor);
159
159
    }
160
	public boolean isQualityHigh() {
160
    
161
		return this.qualityHigh;
161
    public int getFitToPagesWidth() {
162
	}
162
        return fitToPagesWidth;
163
163
    }
164
	public void setQualityHigh(boolean qualityHigh) {
164
    
165
		boolean oldQualityHigh = this.qualityHigh;
165
    public void setFitToPagesWidth(int fitToPagesWidth) {
166
		this.qualityHigh = qualityHigh;
166
        int oldWidth = this.fitToPagesWidth;
167
		firePropertyChange(PROPERTY_QUALITY_HIGH, oldQualityHigh, qualityHigh);
167
        this.fitToPagesWidth = fitToPagesWidth;
168
	}
168
        firePropertyChange(PROPERTY_FIT_TO_WIDTH, oldWidth, fitToPagesWidth);
169
169
    }
170
	public boolean isQualityLow() {
170
171
		return this.qualityLow;
171
    public int getFitToPagesHeight() {
172
	}
172
        return fitToPagesHeight;
173
173
    }
174
	public void setQualityLow(boolean qualityLow) {
174
    
175
		boolean oldQualityLow = this.qualityLow;
175
    public void setFitToPagesHeight(int fitToPagesHeight) {
176
		this.qualityLow = qualityLow;
176
        int oldHeight = this.fitToPagesHeight;
177
		firePropertyChange(PROPERTY_QUALITY_LOW, oldQualityLow, this.qualityLow);
177
        this.fitToPagesHeight = fitToPagesHeight;
178
	}
178
        firePropertyChange(PROPERTY_FIT_TO_HEIGHT, oldHeight, fitToPagesHeight);
179
179
    }
180
	public boolean isQualityMed() {
180
181
		return this.qualityMed;
181
    public boolean isAllPages() {
182
	}
182
        return allPages;
183
183
    }
184
	public void setQualityMed(boolean qualityMed) {
184
    
185
		boolean oldQualityMed = this.qualityMed;
185
    public void setAllPages(boolean allPages) {
186
		this.qualityMed = qualityMed;
186
        boolean oldAll = this.allPages;
187
		firePropertyChange(PROPERTY_QUALITY_MED, oldQualityMed, this.qualityMed);
187
        this.allPages = allPages;
188
	}
188
        firePropertyChange(PROPERTY_ALL_PAGES, oldAll, allPages);
189
189
    }
190
	public int getScaleFactor() {
190
191
		return scaleFactor;
191
    public int getRangeFrom() {
192
	}
192
        return rangeFrom;
193
193
    }
194
	public void setScaleFactor(int scaleFactor) {
194
    
195
		int oldFactor = this.scaleFactor;
195
    public void setRangeFrom(int rangeFrom) {
196
		this.scaleFactor = scaleFactor;
196
        int oldFrom = this.rangeFrom;
197
		firePropertyChange(PROPERTY_SCALE_FACTOR, oldFactor, scaleFactor);
197
        this.rangeFrom = rangeFrom;
198
	}
198
        firePropertyChange(PROPERTY_RANGE_FROM, oldFrom, rangeFrom);
199
199
    }
200
	public int getFitToPagesWidth() {
200
    
201
		return fitToPagesWidth;
201
    public int getRangeTo() {
202
	}
202
        return rangeTo;
203
203
    }
204
	public void setFitToPagesWidth(int fitToPagesWidth) {
204
    
205
		int oldWidth = this.fitToPagesWidth;
205
    public void setRangeTo(int rangeTo) {
206
		this.fitToPagesWidth = fitToPagesWidth;
206
        int oldTo = this.rangeTo;
207
		firePropertyChange(PROPERTY_FIT_TO_WIDTH, oldWidth, fitToPagesWidth);
207
        this.rangeTo = rangeTo;
208
	}
208
        firePropertyChange(PROPERTY_RANGE_TO, oldTo, rangeTo);
209
209
    }
210
	public int getFitToPagesHeight() {
210
    
211
		return fitToPagesHeight;
211
    public int getCopies() {
212
	}
212
        return copies;
213
213
    }
214
	public void setFitToPagesHeight(int fitToPagesHeight) {
214
    
215
		int oldHeight = this.fitToPagesHeight;
215
    public void setCopies(int copies) {
216
		this.fitToPagesHeight = fitToPagesHeight;
216
        int oldCopies = this.copies;
217
		firePropertyChange(PROPERTY_FIT_TO_HEIGHT, oldHeight, fitToPagesHeight);
217
        this.copies = copies;
218
	}
218
        firePropertyChange(PROPERTY_COPIES, oldCopies, copies);
219
219
    }
220
	public boolean isAllPages() {
220
    
221
		return allPages;
221
    public boolean isCollate() {
222
	}
222
        return collate;
223
223
    }
224
	public void setAllPages(boolean allPages) {
224
    
225
		boolean oldAll = this.allPages;
225
    public void setCollate(boolean collate) {
226
		this.allPages = allPages;
226
        boolean oldCollate = this.collate;
227
		firePropertyChange(PROPERTY_ALL_PAGES, oldAll, allPages);
227
        this.collate = collate;
228
	}
228
        firePropertyChange(PROPERTY_COLLATE, oldCollate, collate);
229
229
    }
230
	public int getRangeFrom() {
230
    
231
		return rangeFrom;
231
    
232
	}
232
    public boolean isChromaticityColor() {
233
233
        return this.chromaticityColor;
234
	public void setRangeFrom(int rangeFrom) {
234
    }
235
		int oldFrom = this.rangeFrom;
235
    
236
		this.rangeFrom = rangeFrom;
236
    public void setChromaticityColor(boolean chromaticityColor) {
237
		firePropertyChange(PROPERTY_RANGE_FROM, oldFrom, rangeFrom);
237
        boolean oldChromaticityColor = this.chromaticityColor;
238
	}
238
        this.chromaticityColor = chromaticityColor;
239
239
        firePropertyChange(PROPERTY_CHROMATICITY_COLOR, oldChromaticityColor, this.chromaticityColor);
240
	public int getRangeTo() {
240
    }
241
		return rangeTo;
241
    
242
	}
242
    public boolean isChromaticityMono() {
243
243
        return this.chromaticityMono;
244
	public void setRangeTo(int rangeTo) {
244
    }
245
		int oldTo = this.rangeTo;
245
    
246
		this.rangeTo = rangeTo;
246
    public void setChromaticityMono(boolean chromaticityMono) {
247
		firePropertyChange(PROPERTY_RANGE_TO, oldTo, rangeTo);
247
        boolean oldChromaticityMono = this.chromaticityMono;
248
	}
248
        this.chromaticityMono = chromaticityMono;
249
249
        firePropertyChange(PROPERTY_CHROMATICITY_MONO, oldChromaticityMono, this.chromaticityMono);
250
	public int getCopies() {
250
    }
251
		return copies;
251
    
252
	}
252
    public boolean isSideOneSided() {
253
253
        return this.sideOneSided;
254
	public void setCopies(int copies) {
254
    }
255
		int oldCopies = this.copies;
255
    
256
		this.copies = copies;
256
    public void setSideOneSided(boolean sideOneSided) {
257
		firePropertyChange(PROPERTY_COPIES, oldCopies, copies);
257
        boolean oldSideOneSided = this.sideOneSided;
258
	}
258
        this.sideOneSided = sideOneSided;
259
259
        firePropertyChange(PROPERTY_SIDES_ONESIDED, oldSideOneSided, this.sideOneSided);
260
	public boolean isCollate() {
260
    }
261
		return collate;
261
    
262
	}
262
    public boolean isSideTumble() {
263
263
        return this.sideTumble;
264
	public void setCollate(boolean collate) {
264
    }
265
		boolean oldCollate = this.collate;
265
    
266
		this.collate = collate;
266
    public void setSideTumble(boolean sideTumble) {
267
		firePropertyChange(PROPERTY_COLLATE, oldCollate, collate);
267
        boolean oldSideTumble = this.sideTumble;
268
	}
268
        this.sideTumble = sideTumble;
269
269
        firePropertyChange(PROPERTY_SIDES_TUMBLE, oldSideTumble, this.sideTumble);
270
	public boolean isChromaticityColor() {
270
    }
271
		return this.chromaticityColor;
271
    
272
	}
272
    public boolean isSideDuplex() {
273
273
        return this.sideDuplex;
274
	public void setChromaticityColor(boolean chromaticityColor) {
274
    }
275
		boolean oldChromaticityColor = this.chromaticityColor;
275
    
276
		this.chromaticityColor = chromaticityColor;
276
    public void setSideDuplex(boolean sideDuplex) {
277
		firePropertyChange(PROPERTY_CHROMATICITY_COLOR, oldChromaticityColor,
277
        boolean oldSideDuplex = this.sideDuplex;
278
				this.chromaticityColor);
278
        this.sideDuplex = sideDuplex;
279
	}
279
        firePropertyChange(PROPERTY_SIDES_DUPLEX, oldSideDuplex, this.sideDuplex);
280
280
    }
281
	public boolean isChromaticityMono() {
282
		return this.chromaticityMono;
283
	}
284
285
	public void setChromaticityMono(boolean chromaticityMono) {
286
		boolean oldChromaticityMono = this.chromaticityMono;
287
		this.chromaticityMono = chromaticityMono;
288
		firePropertyChange(PROPERTY_CHROMATICITY_MONO, oldChromaticityMono,
289
				this.chromaticityMono);
290
	}
291
292
	public boolean isSideOneSided() {
293
		return this.sideOneSided;
294
	}
295
296
	public void setSideOneSided(boolean sideOneSided) {
297
		boolean oldSideOneSided = this.sideOneSided;
298
		this.sideOneSided = sideOneSided;
299
		firePropertyChange(PROPERTY_SIDES_ONESIDED, oldSideOneSided,
300
				this.sideOneSided);
301
	}
302
303
	public boolean isSideTumble() {
304
		return this.sideTumble;
305
	}
306
307
	public void setSideTumble(boolean sideTumble) {
308
		boolean oldSideTumble = this.sideTumble;
309
		this.sideTumble = sideTumble;
310
		firePropertyChange(PROPERTY_SIDES_TUMBLE, oldSideTumble,
311
				this.sideTumble);
312
	}
313
314
	public boolean isSideDuplex() {
315
		return this.sideDuplex;
316
	}
317
318
	public void setSideDuplex(boolean sideDuplex) {
319
		boolean oldSideDuplex = this.sideDuplex;
320
		this.sideDuplex = sideDuplex;
321
		firePropertyChange(PROPERTY_SIDES_DUPLEX, oldSideDuplex,
322
				this.sideDuplex);
323
	}
281
}
324
}
(-)src/org/eclipse/gmf/runtime/diagram/ui/printing/render/dialogs/DiagramPrintRangeBlock.java (+173 lines)
Added Link Here
1
/******************************************************************************
2
 * Copyright (c) 2008 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *    IBM Corporation - initial API and implementation 
10
 ****************************************************************************/
11
12
package org.eclipse.gmf.runtime.diagram.ui.printing.render.dialogs;
13
14
import java.util.List;
15
16
import org.eclipse.core.databinding.DataBindingContext;
17
import org.eclipse.core.databinding.beans.BeansObservables;
18
import org.eclipse.core.databinding.observable.Realm;
19
import org.eclipse.gmf.runtime.diagram.ui.printing.internal.l10n.DiagramUIPrintingMessages;
20
import org.eclipse.gmf.runtime.diagram.ui.printing.render.model.PrintOptions;
21
import org.eclipse.jface.databinding.swt.SWTObservables;
22
import org.eclipse.jface.viewers.ISelectionChangedListener;
23
import org.eclipse.jface.viewers.IStructuredContentProvider;
24
import org.eclipse.jface.viewers.LabelProvider;
25
import org.eclipse.jface.viewers.ListViewer;
26
import org.eclipse.jface.viewers.SelectionChangedEvent;
27
import org.eclipse.jface.viewers.StructuredSelection;
28
import org.eclipse.jface.viewers.Viewer;
29
import org.eclipse.swt.events.SelectionEvent;
30
import org.eclipse.swt.events.SelectionListener;
31
import org.eclipse.swt.widgets.Button;
32
import org.eclipse.swt.widgets.Composite;
33
import org.eclipse.swt.widgets.Control;
34
35
/**
36
 * A section of the print dialog that handles selection of diagrams to print.
37
 * 
38
 * @author James Bruck (jbruck)
39
 */
40
public class DiagramPrintRangeBlock extends DialogBlock {
41
42
	private final DataBindingContext bindings;
43
44
	private final PrintOptions options;
45
46
	private ListViewer diagramList;
47
48
	private List<String> availableDiagrams;
49
50
	DiagramPrintRangeBlock(IDialogUnitConverter dluConverter,
51
			DataBindingContext bindings, PrintOptions options,
52
			List<String> availableDiagrams) {
53
54
		super(dluConverter);
55
56
		this.bindings = bindings;
57
		this.options = options;
58
		this.availableDiagrams = availableDiagrams;
59
	}
60
61
	/**
62
	 * Create the contents of the diagram selection block. It contains 2 radio
63
	 * buttons for current or multi-selection and a list box of diagram options.
64
	 */
65
	@Override
66
	public Control createContents(Composite parent) {
67
68
		final Realm realm = bindings.getValidationRealm();
69
70
		Composite result = group(parent,
71
				DiagramUIPrintingMessages.JPSOptionsDialog_DiagramPrintRange);
72
		layout(result, 3);
73
74
		Button currentDiagramRadio = radio(result,
75
				DiagramUIPrintingMessages.JPSOptionsDialog_DiagramPrintCurrent);
76
		layoutSpanHorizontal(currentDiagramRadio, 4);
77
78
		Button selectedDiagramsRadio = radio(result,
79
				DiagramUIPrintingMessages.JPSOptionsDialog_DiagramPrintSelected);
80
		layoutSpanHorizontal(selectedDiagramsRadio, 4);
81
82
		diagramList = list(result);
83
		layoutFillHorizontal(diagramList.getControl());
84
		diagramList.getControl().setEnabled(options.isDiagramSelection());
85
86
		currentDiagramRadio.addSelectionListener(new SelectionListener() {
87
88
			public void widgetDefaultSelected(SelectionEvent arg0) {
89
				//do nothing
90
			}
91
			public void widgetSelected(SelectionEvent event) {
92
				diagramList.getControl().setEnabled(
93
						options.isDiagramSelection());
94
			}
95
		});
96
97
		selectedDiagramsRadio.addSelectionListener(new SelectionListener() {
98
99
			public void widgetDefaultSelected(SelectionEvent arg0) {
100
				//do nothing
101
			}
102
			public void widgetSelected(SelectionEvent event) {
103
				diagramList.getControl()
104
						.setEnabled(!options.isDiagramCurrent());
105
			}
106
		});
107
108
		diagramList
109
				.addSelectionChangedListener(new ISelectionChangedListener() {
110
111
					@SuppressWarnings("unchecked")
112
					public void selectionChanged(SelectionChangedEvent event) {
113
						if (event != null) {
114
115
							StructuredSelection selection = (StructuredSelection) event
116
									.getSelection();
117
118
							options.setDiagramsToPrint(selection.toList());
119
120
						}
121
122
					}
123
				});
124
125
		diagramList.setContentProvider(new DiagramContentProvider());
126
		diagramList.setLabelProvider(new DiagramLabelProvider());
127
128
		diagramList.setInput(availableDiagrams);
129
130
		bindings.bindValue(
131
				SWTObservables.observeSelection(currentDiagramRadio),
132
				BeansObservables.observeValue(realm, options,
133
						PrintOptions.PROPERTY_DIAGRAM_CURRENT), null, null);
134
135
		bindings.bindValue(SWTObservables
136
				.observeSelection(selectedDiagramsRadio), BeansObservables
137
				.observeValue(realm, options,
138
						PrintOptions.PROPERTY_DIAGRAM_SELECTION), null, null);
139
140
		return result;
141
	}
142
143
	@Override
144
	public void dispose() {
145
		// nothing special to dispose currently
146
	}
147
148
	/**
149
	 * A helper class used to retrieve label text
150
	 * 
151
	 * @author James Bruck (jbruck)
152
	 */
153
	private class DiagramContentProvider implements IStructuredContentProvider {
154
		public Object[] getElements(Object inputElement) {
155
			return availableDiagrams.toArray();
156
		}
157
158
		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
159
			// input never changes
160
		}
161
162
		public void dispose() {
163
			// nothing to dispose
164
		}
165
	}
166
167
	private class DiagramLabelProvider extends LabelProvider {
168
		public String getText(Object element) {
169
			return (String) element;
170
		}
171
	}
172
173
}

Return to bug 225213