X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Freader%2Fui%2FGuiReaderSearchAction.java;h=6d91a0ce7e120d10bc32525447d2326d6f827966;hb=d66deb8d8b30cff6b54db352eef34a3508939f84;hp=dbce52f1b713fb995d29021f6209106ba85a7fb9;hpb=eb665fbd51f57c9ea0070bc345ba9827b250c8bb;p=nikiroo-utils.git diff --git a/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearchAction.java b/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearchAction.java index dbce52f..6d91a0c 100644 --- a/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearchAction.java +++ b/src/be/nikiroo/fanfix/reader/ui/GuiReaderSearchAction.java @@ -1,32 +1,91 @@ package be.nikiroo.fanfix.reader.ui; import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.IOException; +import java.net.URL; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; +import be.nikiroo.fanfix.Instance; import be.nikiroo.fanfix.library.BasicLibrary; +import be.nikiroo.utils.Progress; +import be.nikiroo.utils.ui.ProgressBar; public class GuiReaderSearchAction extends JFrame { private static final long serialVersionUID = 1L; private GuiReaderBookInfo info; + private ProgressBar pgBar; public GuiReaderSearchAction(BasicLibrary lib, GuiReaderBookInfo info) { - // TODO i18n - super("TODO: " + info.getMainInfo()); + super(info.getMainInfo()); this.setSize(800, 600); this.info = info; setLayout(new BorderLayout()); + JPanel main = new JPanel(new BorderLayout()); JPanel props = new GuiReaderPropertiesPane(lib, info.getMeta()); - add(props, BorderLayout.NORTH); - add(new GuiReaderViewerPanel(info.getMeta(), info.getMeta() + main.add(props, BorderLayout.NORTH); + main.add(new GuiReaderViewerPanel(info.getMeta(), info.getMeta() .isImageDocument()), BorderLayout.CENTER); - add(new JButton("TODO: Download"), BorderLayout.SOUTH); - // TODO --^ + main.add(createImportButton(lib), BorderLayout.SOUTH); + + add(main, BorderLayout.CENTER); + + pgBar = new ProgressBar(); + pgBar.setVisible(false); + add(pgBar, BorderLayout.SOUTH); + + pgBar.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + pgBar.invalidate(); + pgBar.setProgress(null); + setEnabled(true); + validate(); + } + }); + + pgBar.addUpdateListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + pgBar.invalidate(); + validate(); + repaint(); + } + }); + } + + private Component createImportButton(final BasicLibrary lib) { + JButton imprt = new JButton("Import into library"); + imprt.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent ae) { + final Progress pg = new Progress(); + pgBar.setProgress(pg); + + new Thread(new Runnable() { + @Override + public void run() { + try { + lib.imprt(new URL(info.getMeta().getUrl()), null); + } catch (IOException e) { + Instance.getInstance().getTraceHandler().error(e); + } + + pg.done(); + } + }).start(); + } + }); + + return imprt; } }