+ bookPane.validate();
+ bookPane.repaint();
+ }
+
+ private JMenuBar createMenu() {
+ JMenuBar bar = new JMenuBar();
+
+ JMenu file = new JMenu("File");
+
+ JMenuItem imprt = new JMenuItem("Import", KeyEvent.VK_I);
+ imprt.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ String url = JOptionPane.showInputDialog(LocalReaderFrame.this,
+ "url of the story to import?\n" + "\n"
+ + "Note: it will currently make the UI \n"
+ + "unresponsive until it is downloaded...",
+ "Importing from URL", JOptionPane.QUESTION_MESSAGE);
+ if (url != null && !url.isEmpty()) {
+ if (Main.imprt(url) != 0) {
+ JOptionPane.showMessageDialog(LocalReaderFrame.this,
+ "Cannot import: " + url, "Imort error",
+ JOptionPane.ERROR_MESSAGE);
+ } else {
+ refreshBooks(type);
+ }
+ }
+ }
+ });
+ JMenu types = new JMenu("Type");
+ List<String> tt = Instance.getLibrary().getTypes();
+ tt.add(0, null);
+ for (final String type : tt) {
+ JMenuItem item = new JMenuItem(type == null ? "[all]" : type);
+ item.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ refreshBooks(type);
+ }
+ });
+ types.add(item);
+ }
+ 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(imprt);
+ file.add(types);
+ file.addSeparator();
+ file.add(exit);
+
+ bar.add(file);
+
+ return bar;