pageattributes.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 483 行 · 第 1/2 页

JAVA
483
字号
      super(value, NAMES);
    }
  } // class OrientationRequestedType
  public static final class OriginType extends AttributeValue
  {
    private static final String[] NAMES = { "physical", "printable" };
    public static final OriginType PHYSICAL = new OriginType(0);
    public static final OriginType PRINTABLE = new OriginType(1);
    private OriginType(int value)
    {
      super(value, NAMES);
    }
  } // class OriginType
  public static final class PrintQualityType extends AttributeValue
  {
    private static final String[] NAMES = { "high", "normal", "draft" };
    public static final PrintQualityType HIGH = new PrintQualityType(0);
    public static final PrintQualityType NORMAL = new PrintQualityType(1);
    public static final PrintQualityType DRAFT = new PrintQualityType(2);
    private PrintQualityType(int value)
    {
      super(value, NAMES);
    }
  } // class PrintQualityType


  private ColorType color;
  private MediaType media;
  private OrientationRequestedType orientation;
  private OriginType origin;
  private PrintQualityType quality;
  private int resolutionX;
  private int resolutionY;
  private int resolutionScale;
  public PageAttributes()
  {
    color = ColorType.MONOCHROME;
    setMediaToDefault();
    orientation = OrientationRequestedType.PORTRAIT;
    origin = OriginType.PHYSICAL;
    quality = PrintQualityType.NORMAL;
    setPrinterResolutionToDefault();
  }

  public PageAttributes(PageAttributes attr)
  {
    set(attr);
  }

  public PageAttributes(ColorType color, MediaType media,
                        OrientationRequestedType orientation,
                        OriginType origin, PrintQualityType quality,
                        int[] resolution)
  {
    if (color == null || media == null || orientation == null
        || origin == null || quality == null)
      throw new IllegalArgumentException();
    setPrinterResolution(resolution);
    this.color = color;
    this.media = media;
    this.orientation = orientation;
    this.origin = origin;
    this.quality = quality;
  }

  public Object clone()
  {
    return new PageAttributes(this);
  }

  public void set(PageAttributes attr)
  {
    color = attr.color;
    media = attr.media;
    orientation = attr.orientation;
    origin = attr.origin;
    quality = attr.quality;
    resolutionX = attr.resolutionX;
    resolutionY = attr.resolutionY;
    resolutionScale = attr.resolutionScale;
  }

  public ColorType getColor()
  {
    return color;
  }

  public void setColor(ColorType color)
  {
    if (color == null)
      throw new IllegalArgumentException();
    this.color = color;
  }

  public MediaType getMedia()
  {
    return media;
  }

  public void setMedia(MediaType media)
  {
    if (media == null)
      throw new IllegalArgumentException();
    this.media = media;
  }

  public void setMediaToDefault()
  {
    String country = Locale.getDefault().getCountry();
    media = ("US".equals(country) || "CA".equals(country)) ? MediaType.LETTER
      : MediaType.A4;
  }

  public OrientationRequestedType getOrientationRequested()
  {
    return orientation;
  }

  public void setOrientationRequested(OrientationRequestedType orientation)
  {
    if (orientation == null)
      throw new IllegalArgumentException();
    this.orientation = orientation;
  }

  public void setOrientationRequested(int orientation)
  {
    if (orientation == 3)
      this.orientation = OrientationRequestedType.PORTRAIT;
    else if (orientation == 4)
      this.orientation = OrientationRequestedType.LANDSCAPE;
    else
      throw new IllegalArgumentException();
  }

  public void setOrientationRequestedToDefault()
  {
    orientation = OrientationRequestedType.PORTRAIT;
  }

  public OriginType getOrigin()
  {
    return origin;
  }

  public void setOrigin(OriginType origin)
  {
    if (origin == null)
      throw new IllegalArgumentException();
    this.origin = origin;
  }

  public PrintQualityType getPrintQuality()
  {
    return quality;
  }

  public void setPrintQuality(PrintQualityType quality)
  {
    if (quality == null)
      throw new IllegalArgumentException();
    this.quality = quality;
  }

  public void setPrintQuality(int quality)
  {
    if (quality == 3)
      this.quality = PrintQualityType.DRAFT;
    else if (quality == 4)
      this.quality = PrintQualityType.NORMAL;
    else if (quality == 5)
      this.quality = PrintQualityType.HIGH;
    else
      throw new IllegalArgumentException();
  }

  public void setPrintQualityToDefault()
  {
    quality = PrintQualityType.NORMAL;
  }

  public int[] getPrinterResolution()
  {
    return new int[] { resolutionX, resolutionY, resolutionScale };
  }

  public void setPrinterResolution(int[] resolution)
  {
    if (resolution == null || resolution.length != 3 || resolution[0] <= 0
        || resolution[1] <= 0 || resolution[2] < 3 || resolution[2] > 4)
      throw new IllegalArgumentException();
    resolutionX = resolution[0];
    resolutionY = resolution[1];
    resolutionScale = resolution[2];
  }

  public void setPrinterResolution(int resolution)
  {
    if (resolution <= 0)
      throw new IllegalArgumentException();
    resolutionX = resolution;
    resolutionY = resolution;
    resolutionScale = 3;
  }

  public void setPrinterResolutionToDefault()
  {
    resolutionX = 72;
    resolutionY = 72;
    resolutionScale = 3;
  }

  public boolean equals(Object o)
  {
    if (this == o)
      return true;
    if (! (o instanceof PageAttributes))
      return false;
    PageAttributes pa = (PageAttributes) o;
    return color == pa.color && media == pa.media
      && orientation == pa.orientation && origin == pa.origin
      && quality == pa.quality && resolutionX == pa.resolutionX
      && resolutionY == pa.resolutionY
      && resolutionScale == pa.resolutionScale;
  }
  public int hashCode()
  {
    return (color.value << 31) ^ (media.value << 24)
      ^ (orientation.value << 23) ^ (origin.value << 22)
      ^ (quality.value << 20) ^ (resolutionScale << 19)
      ^ (resolutionY << 10) ^ resolutionX;
  }
  public String toString()
  {
    return "color=" + color + ",media=" + media + ",orientation-requested="
      + orientation + ",origin=" + origin + ",print-quality=" + quality
      + ",printer-resolution=[" + resolutionX + ',' + resolutionY + ','
      + resolutionScale + ']';
  }
} // class PageAttributes

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?