- final String url = JOptionPane.showInputDialog(
- LocalReaderFrame.this, "url of the story to import?",
- "Importing from URL", JOptionPane.QUESTION_MESSAGE);
- if (url != null && !url.isEmpty()) {
- final Progress pg = new Progress("Importing " + url);
- outOfUi(pg, new Runnable() {
- public void run() {
- Exception ex = null;
- try {
- Instance.getLibrary().imprt(
- BasicReader.getUrl(url), pg);
- } catch (IOException e) {
- ex = e;
- }
+ imprt(true);
+ }
+ });
+ JMenuItem imprtF = new JMenuItem("Import File", KeyEvent.VK_F);
+ imprtF.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ imprt(false);
+ }
+ });
+ JMenuItem exit = new JMenuItem("Exit", KeyEvent.VK_X);
+ exit.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ LocalReaderFrame.this.dispatchEvent(new WindowEvent(
+ LocalReaderFrame.this, WindowEvent.WINDOW_CLOSING));
+ }
+ });
+
+ file.add(createMenuItemOpenBook());
+ file.add(createMenuItemExport());
+ file.addSeparator();
+ file.add(imprt);
+ file.add(imprtF);
+ file.addSeparator();
+ file.add(exit);
+
+ bar.add(file);
+
+ JMenu edit = new JMenu("Edit");
+ edit.setMnemonic(KeyEvent.VK_E);
+
+ edit.add(createMenuItemRefresh());
+ edit.addSeparator();
+ edit.add(createMenuItemDelete());
+
+ bar.add(edit);
+
+ JMenu view = new JMenu("View");
+ view.setMnemonic(KeyEvent.VK_V);
+
+ List<String> tt = Instance.getLibrary().getTypes();
+ tt.add(0, null);
+ for (final String type : tt) {
+
+ JMenuItem item = new JMenuItem(type == null ? "All books" : type);
+ item.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ refreshBooks(type);
+ }
+ });
+ view.add(item);
+
+ if (type == null) {
+ view.addSeparator();
+ }
+ }
+
+ bar.add(view);
+
+ return bar;
+ }
+
+ private JMenuItem createMenuItemExport() {
+ // TODO
+ final String notYet = "[TODO] not ready yet, but you can do it on command line, see: fanfix --help";
+
+ JMenuItem export = new JMenuItem("Save as...", KeyEvent.VK_E);
+ export.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ JOptionPane.showMessageDialog(LocalReaderFrame.this, notYet);
+ }
+ });