1 package be
.nikiroo
.fanfix
.reader
;
3 import java
.awt
.EventQueue
;
5 import java
.io
.IOException
;
7 import be
.nikiroo
.fanfix
.Instance
;
8 import be
.nikiroo
.fanfix
.Library
;
9 import be
.nikiroo
.fanfix
.bundles
.UiConfig
;
10 import be
.nikiroo
.fanfix
.data
.Story
;
11 import be
.nikiroo
.fanfix
.output
.BasicOutput
.OutputType
;
12 import be
.nikiroo
.utils
.ui
.Progress
;
14 class LocalReader
extends BasicReader
{
17 public LocalReader() throws IOException
{
18 File dir
= Instance
.getReaderDir();
21 throw new IOException(
22 "Cannote create cache directory for local reader: " + dir
);
25 // TODO: can throw an exception, manage that (convert to IOEx ?)
26 OutputType text
= OutputType
.valueOfNullOkUC(Instance
.getUiConfig()
27 .getString(UiConfig
.LOCAL_READER_NON_IMAGES_DOCUMENT_TYPE
));
29 text
= OutputType
.HTML
;
32 OutputType images
= OutputType
.valueOfNullOkUC(Instance
.getUiConfig()
33 .getString(UiConfig
.LOCAL_READER_IMAGES_DOCUMENT_TYPE
));
35 images
= OutputType
.CBZ
;
39 lib
= new Library(dir
, text
, images
);
43 public void read() throws IOException
{
47 public void read(int chapter
) {
51 * Import the story into the local reader library, and keep the same LUID.
56 * the optional progress reporter
59 * in case of I/O error
61 public void imprt(String luid
, Progress pg
) throws IOException
{
63 Story story
= Instance
.getLibrary().getStory(luid
, pg
);
65 story
= lib
.save(story
, luid
);
67 throw new IOException("Cannot find story in Library: " + luid
);
69 } catch (IOException e
) {
70 throw new IOException(
71 "Cannot import story from library to LocalReader library: "
77 * Get the target file related to this {@link Story}.
80 * the LUID of the {@link Story}
82 * the optional progress reporter
84 * @return the target file
87 * in case of I/O error
89 public File
getTarget(String luid
, Progress pg
) throws IOException
{
90 File file
= lib
.getFile(luid
);
93 file
= lib
.getFile(luid
);
100 public void start(String type
) {
101 final String typeFinal
= type
;
102 EventQueue
.invokeLater(new Runnable() {
104 new LocalReaderFrame(LocalReader
.this, typeFinal
)