1 |
/* ImageWriter.java -- Encodes raster images. |
/* ImageWriter.java -- Encodes raster images. |
2 |
Copyright (C) 2004 Free Software Foundation, Inc. |
Copyright (C) 2004, 2005 Free Software Foundation, Inc. |
3 |
|
|
4 |
This file is part of GNU Classpath. |
This file is part of GNU Classpath. |
5 |
|
|
78 |
* All locales available for localization of warning messages, or |
* All locales available for localization of warning messages, or |
79 |
* null if localization is not supported. |
* null if localization is not supported. |
80 |
*/ |
*/ |
81 |
protected Locale[] availableLocales; |
protected Locale[] availableLocales = null; |
82 |
|
|
83 |
/** |
/** |
84 |
* The current locale used to localize warning messages, or null if |
* The current locale used to localize warning messages, or null if |
85 |
* no locale has been set. |
* no locale has been set. |
86 |
*/ |
*/ |
87 |
protected Locale locale; |
protected Locale locale = null; |
88 |
|
|
89 |
/** |
/** |
90 |
* The image writer SPI that instantiated this writer. |
* The image writer SPI that instantiated this writer. |
91 |
*/ |
*/ |
92 |
protected ImageWriterSpi originatingProvider; |
protected ImageWriterSpi originatingProvider = null; |
93 |
|
|
94 |
/** |
/** |
95 |
* An ImageInputStream to which image data is written. |
* An ImageInputStream to which image data is written. |
96 |
*/ |
*/ |
97 |
protected Object output; |
protected Object output = null; |
98 |
|
|
99 |
/** |
/** |
100 |
* A list of installed progress listeners. Initially null, meaning |
* A list of installed progress listeners. Initially null, meaning |
101 |
* no installed listeners. |
* no installed listeners. |
102 |
*/ |
*/ |
103 |
protected List progressListeners = new ArrayList(); |
protected List progressListeners = null; |
104 |
|
|
105 |
/** |
/** |
106 |
* A list of installed warning listeners. Initially null, meaning |
* A list of installed warning listeners. Initially null, meaning |
107 |
* no installed listeners. |
* no installed listeners. |
108 |
*/ |
*/ |
109 |
protected List warningListeners = new ArrayList(); |
protected List warningListeners = null; |
110 |
|
|
111 |
/** |
/** |
112 |
* A list of warning locales corresponding with the list of |
* A list of warning locales corresponding with the list of |
113 |
* installed warning listeners. Initially null, meaning no locales. |
* installed warning listeners. Initially null, meaning no locales. |
114 |
*/ |
*/ |
115 |
protected List warningLocales = new ArrayList(); |
protected List warningLocales = null; |
116 |
|
|
117 |
/** |
/** |
118 |
* Construct an image writer. |
* Construct an image writer. |
169 |
{ |
{ |
170 |
if (listener == null) |
if (listener == null) |
171 |
return; |
return; |
172 |
|
if (progressListeners == null) |
173 |
|
progressListeners = new ArrayList (); |
174 |
progressListeners.add(listener); |
progressListeners.add(listener); |
175 |
} |
} |
176 |
|
|
177 |
/** |
/** |
178 |
* Install a write warning listener. This method will return |
* Install a write warning listener. This method will return |
179 |
* immediately if listener is null. Warning messages sent to this |
* immediately if listener is null. Warning messages sent to this |
187 |
{ |
{ |
188 |
if (listener == null) |
if (listener == null) |
189 |
return; |
return; |
190 |
|
if (warningListeners == null) |
191 |
|
warningListeners = new ArrayList (); |
192 |
warningListeners.add(listener); |
warningListeners.add(listener); |
193 |
} |
} |
194 |
|
|
563 |
*/ |
*/ |
564 |
protected void processImageComplete() |
protected void processImageComplete() |
565 |
{ |
{ |
566 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
567 |
{ |
{ |
568 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
569 |
listener.imageComplete(this); |
|
570 |
|
while (it.hasNext()) |
571 |
|
{ |
572 |
|
IIOWriteProgressListener listener = |
573 |
|
(IIOWriteProgressListener) it.next(); |
574 |
|
listener.imageComplete(this); |
575 |
|
} |
576 |
} |
} |
577 |
} |
} |
578 |
|
|
586 |
*/ |
*/ |
587 |
protected void processImageProgress(float percentageDone) |
protected void processImageProgress(float percentageDone) |
588 |
{ |
{ |
589 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
590 |
{ |
{ |
591 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
592 |
listener.imageProgress(this, percentageDone); |
|
593 |
|
while (it.hasNext()) |
594 |
|
{ |
595 |
|
IIOWriteProgressListener listener = |
596 |
|
(IIOWriteProgressListener) it.next(); |
597 |
|
listener.imageProgress(this, percentageDone); |
598 |
|
} |
599 |
} |
} |
600 |
} |
} |
601 |
|
|
609 |
*/ |
*/ |
610 |
protected void processImageStarted(int imageIndex) |
protected void processImageStarted(int imageIndex) |
611 |
{ |
{ |
612 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
613 |
{ |
{ |
614 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
615 |
listener.imageStarted(this, imageIndex); |
|
616 |
|
while (it.hasNext()) |
617 |
|
{ |
618 |
|
IIOWriteProgressListener listener = |
619 |
|
(IIOWriteProgressListener) it.next(); |
620 |
|
listener.imageStarted(this, imageIndex); |
621 |
|
} |
622 |
} |
} |
623 |
} |
} |
624 |
|
|
629 |
*/ |
*/ |
630 |
protected void processThumbnailComplete() |
protected void processThumbnailComplete() |
631 |
{ |
{ |
632 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
633 |
{ |
{ |
634 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
635 |
listener.thumbnailComplete(this); |
|
636 |
|
while (it.hasNext()) |
637 |
|
{ |
638 |
|
IIOWriteProgressListener listener = |
639 |
|
(IIOWriteProgressListener) it.next(); |
640 |
|
listener.thumbnailComplete(this); |
641 |
|
} |
642 |
} |
} |
643 |
} |
} |
644 |
|
|
652 |
*/ |
*/ |
653 |
protected void processThumbnailProgress(float percentageDone) |
protected void processThumbnailProgress(float percentageDone) |
654 |
{ |
{ |
655 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
656 |
{ |
{ |
657 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
658 |
listener.thumbnailProgress(this, percentageDone); |
|
659 |
|
while (it.hasNext()) |
660 |
|
{ |
661 |
|
IIOWriteProgressListener listener = |
662 |
|
(IIOWriteProgressListener) it.next(); |
663 |
|
listener.thumbnailProgress(this, percentageDone); |
664 |
|
} |
665 |
} |
} |
666 |
} |
} |
667 |
|
|
677 |
*/ |
*/ |
678 |
protected void processThumbnailStarted(int imageIndex, int thumbnailIndex) |
protected void processThumbnailStarted(int imageIndex, int thumbnailIndex) |
679 |
{ |
{ |
680 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
681 |
{ |
{ |
682 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
683 |
listener.thumbnailStarted(this, imageIndex, thumbnailIndex); |
|
684 |
|
while (it.hasNext()) |
685 |
|
{ |
686 |
|
IIOWriteProgressListener listener = |
687 |
|
(IIOWriteProgressListener) it.next(); |
688 |
|
listener.thumbnailStarted(this, imageIndex, thumbnailIndex); |
689 |
|
} |
690 |
} |
} |
691 |
} |
} |
692 |
|
|
702 |
*/ |
*/ |
703 |
protected void processWarningOccurred(int imageIndex, String warning) |
protected void processWarningOccurred(int imageIndex, String warning) |
704 |
{ |
{ |
705 |
Iterator it = warningListeners.iterator(); |
if (warningListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
706 |
{ |
{ |
707 |
IIOWriteWarningListener listener = (IIOWriteWarningListener) it.next(); |
Iterator it = warningListeners.iterator(); |
708 |
listener.warningOccurred(this, imageIndex, warning); |
|
709 |
|
while (it.hasNext()) |
710 |
|
{ |
711 |
|
IIOWriteWarningListener listener = |
712 |
|
(IIOWriteWarningListener) it.next(); |
713 |
|
listener.warningOccurred(this, imageIndex, warning); |
714 |
|
} |
715 |
} |
} |
716 |
} |
} |
717 |
|
|
721 |
*/ |
*/ |
722 |
protected void processWriteAborted() |
protected void processWriteAborted() |
723 |
{ |
{ |
724 |
Iterator it = progressListeners.iterator(); |
if (progressListeners != null) |
|
|
|
|
while (it.hasNext()) |
|
725 |
{ |
{ |
726 |
IIOWriteProgressListener listener = (IIOWriteProgressListener) it.next(); |
Iterator it = progressListeners.iterator(); |
727 |
listener.writeAborted(this); |
|
728 |
|
while (it.hasNext()) |
729 |
|
{ |
730 |
|
IIOWriteProgressListener listener = |
731 |
|
(IIOWriteProgressListener) it.next(); |
732 |
|
listener.writeAborted(this); |
733 |
|
} |
734 |
} |
} |
735 |
} |
} |
736 |
|
|
739 |
*/ |
*/ |
740 |
public void removeAllIIOWriteProgressListeners() |
public void removeAllIIOWriteProgressListeners() |
741 |
{ |
{ |
742 |
progressListeners.clear(); |
if (progressListeners != null) |
743 |
|
{ |
744 |
|
progressListeners.clear(); |
745 |
|
} |
746 |
} |
} |
747 |
|
|
748 |
/** |
/** |
750 |
*/ |
*/ |
751 |
public void removeAllIIOWriteWarningListeners() |
public void removeAllIIOWriteWarningListeners() |
752 |
{ |
{ |
753 |
progressListeners.clear(); |
if (progressListeners != null) |
754 |
|
{ |
755 |
|
progressListeners.clear(); |
756 |
|
} |
757 |
} |
} |
758 |
|
|
759 |
/** |
/** |
760 |
* Uninstall the given write progress listener. |
* Uninstall the given write progress listener. |
761 |
* |
* |
762 |
* @param listener the listener to remove |
* @param listener the listener to remove |
763 |
*/ |
*/ |
764 |
public void removeIIOWriteProgressListener (IIOWriteProgressListener listener) |
public void removeIIOWriteProgressListener (IIOWriteProgressListener listener) |
765 |
{ |
{ |
766 |
if (listener == null) |
if (listener == null) |
767 |
return; |
return; |
768 |
|
if (progressListeners != null) |
769 |
progressListeners.remove(listener); |
{ |
770 |
|
progressListeners.remove(listener); |
771 |
|
} |
772 |
} |
} |
|
|
|
773 |
/** |
/** |
774 |
* Uninstall the given write warning listener. |
* Uninstall the given write warning listener. |
775 |
* |
* |
779 |
{ |
{ |
780 |
if (listener == null) |
if (listener == null) |
781 |
return; |
return; |
782 |
|
if (warningListeners != null) |
783 |
warningListeners.remove(listener); |
{ |
784 |
|
warningListeners.remove(listener); |
785 |
|
} |
786 |
} |
} |
|
|
|
787 |
/** |
/** |
788 |
* Reset this writer's internal state. |
* Reset this writer's internal state. |
789 |
*/ |
*/ |