001/* ===================================================================== 002 * JFreePDF : a fast, light-weight PDF library for the Java(tm) platform 003 * ===================================================================== 004 * 005 * (C)opyright 2013-2022, by David Gilbert. All rights reserved. 006 * 007 * https://github.com/jfree/orsonpdf 008 * 009 * This program is free software: you can redistribute it and/or modify 010 * it under the terms of the GNU General Public License as published by 011 * the Free Software Foundation, either version 3 of the License, or 012 * (at your option) any later version. 013 * 014 * This program is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 017 * GNU General Public License for more details. 018 * 019 * You should have received a copy of the GNU General Public License 020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 021 * 022 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 023 * Other names may be trademarks of their respective owners.] 024 * 025 * If you do not wish to be bound by the terms of the GPL, an alternative 026 * runtime license is available to JFree sponsors: 027 * 028 * https://github.com/sponsors/jfree 029 * 030 */ 031 032package org.jfree.pdf; 033 034import java.awt.GraphicsConfiguration; 035import java.awt.GraphicsDevice; 036 037/** 038 * A graphics device for use in the {@link PDFGraphicsConfiguration} class. 039 */ 040public class PDFGraphicsDevice extends GraphicsDevice { 041 042 private final String id; 043 044 GraphicsConfiguration defaultConfig; 045 046 /** 047 * Creates a new instance. 048 * 049 * @param id the id. 050 * @param defaultConfig the default configuration. 051 */ 052 public PDFGraphicsDevice(String id, GraphicsConfiguration defaultConfig) { 053 this.id = id; 054 this.defaultConfig = defaultConfig; 055 } 056 057 /** 058 * Returns the device type. 059 * 060 * @return The device type. 061 */ 062 @Override 063 public int getType() { 064 return GraphicsDevice.TYPE_PRINTER; 065 } 066 067 /** 068 * Returns the id string. 069 * 070 * @return The id string. 071 */ 072 @Override 073 public String getIDstring() { 074 return this.id; 075 } 076 077 /** 078 * Returns all configurations for this device. 079 * 080 * @return All configurations for this device. 081 */ 082 @Override 083 public GraphicsConfiguration[] getConfigurations() { 084 return new GraphicsConfiguration[] { getDefaultConfiguration() }; 085 } 086 087 /** 088 * Returns the default configuration for this device. 089 * 090 * @return The default configuration for this device. 091 */ 092 @Override 093 public GraphicsConfiguration getDefaultConfiguration() { 094 return this.defaultConfig; 095 } 096 097} 098