private void createPageRangeFields(PrintRequestAttributeSet set) {
		PrintService service = getService();
		if (service.isAttributeCategorySupported(PageRanges.class)) {
			ButtonGroup group = new ButtonGroup();
			int start = 1;
			int end = 9999;
			PageRanges pageRanges = (PageRanges) set.get(PageRanges.class);
			if (pageRanges != null) {
				int[][] ranges = pageRanges.getMembers();
				if (ranges.length > 0 && ranges[0].length > 1) {
					start = ranges[0][0];
					end = ranges[0][1];
				} else {
					pageRanges = null;
				}
			}
			JLabel label = new JLabel(PAGE_RANGE, SwingConstants.CENTER);
			add(label, new PrecisionLayoutData().setEndHorizontalAlignment());
			JPanel wrapper = new JPanel(new PrecisionLayout().setMargins(0).setColumns(5));
			mPageRangeAll = new JRadioButton(ALL, pageRanges == null);
			wrapper.add(mPageRangeAll);
			mPageRangeSome = new JRadioButton(PAGES, pageRanges != null);
			wrapper.add(mPageRangeSome);
			mPageRangeStart = createPageRangeField(start, wrapper);
			wrapper.add(new JLabel(TO, SwingConstants.CENTER));
			mPageRangeEnd = createPageRangeField(end, wrapper);
			add(wrapper);
			group.add(mPageRangeAll);
			group.add(mPageRangeSome);
			adjustPageRanges();
			mPageRangeAll.addActionListener(this);
			mPageRangeSome.addActionListener(this);
		} else {
			mPageRangeAll = null;
			mPageRangeSome = null;
			mPageRangeStart = null;
			mPageRangeEnd = null;
		}
	}