Added rename book
This commit is contained in:
@@ -1060,6 +1060,15 @@ public class AudiobookRecorder extends JFrame {
|
||||
prefs.loadFromXML(fis);
|
||||
|
||||
buildBook(prefs);
|
||||
|
||||
File r = f.getParentFile();
|
||||
File cf = new File(r, "coverart.png");
|
||||
if (cf.exists()) {
|
||||
ImageIcon i = new ImageIcon(cf.getAbsolutePath());
|
||||
Image ri = Utils.getScaledImage(i.getImage(), 22, 22);
|
||||
book.setIcon(new ImageIcon(ri));
|
||||
bookTreeModel.reload(book);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -1242,6 +1251,7 @@ public class AudiobookRecorder extends JFrame {
|
||||
|
||||
toolBar.enableBook();
|
||||
statusLabel.setText("Noise floor: " + getNoiseFloor());
|
||||
book.setIcon(Icons.book);
|
||||
}
|
||||
|
||||
public void openBook() {
|
||||
|
||||
@@ -16,6 +16,8 @@ public class Book extends DefaultMutableTreeNode {
|
||||
String genre;
|
||||
String comment;
|
||||
|
||||
ImageIcon icon;
|
||||
|
||||
public Book(String bookname) {
|
||||
super(bookname);
|
||||
name = bookname;
|
||||
@@ -99,4 +101,39 @@ public class Book extends DefaultMutableTreeNode {
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public ImageIcon getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void setIcon(ImageIcon i) {
|
||||
icon = i;
|
||||
}
|
||||
|
||||
public void setUserObject(Object o) {
|
||||
if (o instanceof String) {
|
||||
String newName = (String)o;
|
||||
|
||||
File oldDir = new File(Options.get("path.storage"), name);
|
||||
File newDir = new File(Options.get("path.storage"), newName);
|
||||
|
||||
if (newDir.exists()) {
|
||||
JOptionPane.showMessageDialog(AudiobookRecorder.window, "Book already exists", "Error", JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (oldDir.exists() && oldDir.isDirectory()) {
|
||||
oldDir.renameTo(newDir);
|
||||
name = newName;
|
||||
AudiobookRecorder.window.saveBookStructure();
|
||||
AudiobookRecorder.window.bookTreeModel.reload(this);
|
||||
Options.set("path.last-book", name);
|
||||
Options.savePreferences();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class BookPanel extends JPanel {
|
||||
File icon = new File(root, "coverart.png");
|
||||
if (icon.exists()) {
|
||||
cover = new ImageIcon(icon.getAbsolutePath());
|
||||
resizedCover = getScaledImage(cover.getImage(), 75, 75);
|
||||
resizedCover = Utils.getScaledImage(cover.getImage(), 75, 75);
|
||||
iconLabel = new JLabel(new ImageIcon(resizedCover));
|
||||
} else {
|
||||
cover = null;
|
||||
@@ -80,18 +80,6 @@ public class BookPanel extends JPanel {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private Image getScaledImage(Image srcImg, int w, int h){
|
||||
BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
|
||||
Graphics2D g2 = resizedImg.createGraphics();
|
||||
|
||||
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
||||
g2.drawImage(srcImg, 0, 0, w, h, null);
|
||||
g2.dispose();
|
||||
|
||||
return resizedImg;
|
||||
}
|
||||
|
||||
public File getConfigFile() {
|
||||
return new File(root, "audiobook.abk");
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class BookTreeRenderer extends DefaultTreeCellRenderer {
|
||||
} else if (value instanceof Chapter) {
|
||||
ret.setIcon(Icons.chapter);
|
||||
} else if (value instanceof Book) {
|
||||
ret.setIcon(Icons.book);
|
||||
ret.setIcon(((Book)value).getIcon());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
23
src/uk/co/majenko/audiobookrecorder/Utils.java
Normal file
23
src/uk/co/majenko/audiobookrecorder/Utils.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package uk.co.majenko.audiobookrecorder;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.awt.image.*;
|
||||
import javax.swing.border.*;
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
|
||||
public class Utils {
|
||||
public static Image getScaledImage(Image srcImg, int w, int h){
|
||||
BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
|
||||
Graphics2D g2 = resizedImg.createGraphics();
|
||||
|
||||
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
|
||||
g2.drawImage(srcImg, 0, 0, w, h, null);
|
||||
g2.dispose();
|
||||
|
||||
return resizedImg;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user