Center the primary window. Created a "finished" panel which allows you to
go back and rip another CD or (soon) to edit/categorize the CD you just ripped. Cleaned up various other kibbles. git-svn-id: https://samskivert.googlecode.com/svn/trunk@106 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: CDDBLookupPanel.java,v 1.2 2001/03/18 06:58:55 mdb Exp $
|
// $Id: CDDBLookupPanel.java,v 1.3 2001/03/21 00:41:03 mdb Exp $
|
||||||
|
|
||||||
package robodj.importer;
|
package robodj.importer;
|
||||||
|
|
||||||
@@ -174,8 +174,7 @@ public class CDDBLookupPanel
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create the rip panel and pass the entry and info along
|
// create the rip panel and pass the entry and info along
|
||||||
RipPanel panel = new RipPanel(_info, entry);
|
_frame.setPanel(new RipPanel(_info, entry));
|
||||||
_frame.setPanel(panel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean validate (String value, String errmsg)
|
protected boolean validate (String value, String errmsg)
|
||||||
|
|||||||
@@ -0,0 +1,79 @@
|
|||||||
|
//
|
||||||
|
// $Id: FinishedPanel.java,v 1.1 2001/03/21 00:41:03 mdb Exp $
|
||||||
|
|
||||||
|
package robodj.importer;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.net.URL;
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
|
import com.samskivert.swing.*;
|
||||||
|
import robodj.repository.*;
|
||||||
|
|
||||||
|
public class FinishedPanel
|
||||||
|
extends ImporterPanel
|
||||||
|
implements ActionListener
|
||||||
|
{
|
||||||
|
public FinishedPanel (Entry entry)
|
||||||
|
{
|
||||||
|
GroupLayout gl = new HGroupLayout(GroupLayout.STRETCH);
|
||||||
|
gl.setOffAxisPolicy(GroupLayout.STRETCH);
|
||||||
|
setLayout(gl);
|
||||||
|
|
||||||
|
// create our label for the left hand side
|
||||||
|
JLabel cdlabel = new JLabel("Finished", JLabel.CENTER);
|
||||||
|
cdlabel.setFont(new Font("Helvetica", Font.BOLD, 24));
|
||||||
|
add(cdlabel, GroupLayout.FIXED);
|
||||||
|
|
||||||
|
// create a panel for the option buttons
|
||||||
|
GroupLayout vgl = new VGroupLayout(GroupLayout.NONE);
|
||||||
|
vgl.setOffAxisPolicy(GroupLayout.NONE);
|
||||||
|
vgl.setJustification(GroupLayout.CENTER);
|
||||||
|
JPanel ppanel = new JPanel(vgl);
|
||||||
|
|
||||||
|
// create our action buttons
|
||||||
|
String[] labels = new String[]
|
||||||
|
{ "Import another CD", "Edit/categorize CDs" };
|
||||||
|
String[] actions = new String[] { "import", "edit" };
|
||||||
|
|
||||||
|
for (int i = 0; i < labels.length; i++) {
|
||||||
|
JButton abutton = new JButton(labels[i]);
|
||||||
|
abutton.setActionCommand(actions[i]);
|
||||||
|
abutton.addActionListener(this);
|
||||||
|
ppanel.add(abutton);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add our panel to the main group
|
||||||
|
add(ppanel);
|
||||||
|
|
||||||
|
// save this guy for later
|
||||||
|
_entry = entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void wasAddedToFrame (ImporterFrame frame)
|
||||||
|
{
|
||||||
|
frame.addControlButton("Exit", "exit", this);
|
||||||
|
|
||||||
|
// keep a handle on this for later
|
||||||
|
_frame = frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void actionPerformed (ActionEvent e)
|
||||||
|
{
|
||||||
|
String cmd = e.getActionCommand();
|
||||||
|
if (cmd.equals("exit")) {
|
||||||
|
System.exit(0);
|
||||||
|
|
||||||
|
} else if (cmd.equals("import")) {
|
||||||
|
_frame.setPanel(new InsertCDPanel());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
System.out.println("Unknown action event: " + cmd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected ImporterFrame _frame;
|
||||||
|
protected Entry _entry;
|
||||||
|
}
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
//
|
//
|
||||||
// $Id: Importer.java,v 1.2 2001/03/18 06:58:55 mdb Exp $
|
// $Id: Importer.java,v 1.3 2001/03/21 00:41:03 mdb Exp $
|
||||||
|
|
||||||
package robodj.importer;
|
package robodj.importer;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Toolkit;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
@@ -51,9 +53,17 @@ public class Importer
|
|||||||
System.exit(-1);
|
System.exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create our frame and first panel
|
||||||
ImporterFrame frame = new ImporterFrame();
|
ImporterFrame frame = new ImporterFrame();
|
||||||
InsertCDPanel panel = new InsertCDPanel();
|
InsertCDPanel panel = new InsertCDPanel();
|
||||||
frame.setPanel(panel);
|
frame.setPanel(panel);
|
||||||
|
|
||||||
|
// center the frame in the screen and show it
|
||||||
|
Toolkit tk = frame.getToolkit();
|
||||||
|
Dimension ss = tk.getScreenSize();
|
||||||
|
int width = 550, height = 300;
|
||||||
|
frame.setBounds((ss.width-width)/2, (ss.height-height)/2,
|
||||||
|
width, height);
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: ImporterFrame.java,v 1.2 2001/03/18 06:58:55 mdb Exp $
|
// $Id: ImporterFrame.java,v 1.3 2001/03/21 00:41:03 mdb Exp $
|
||||||
|
|
||||||
package robodj.importer;
|
package robodj.importer;
|
||||||
|
|
||||||
@@ -38,13 +38,9 @@ public class ImporterFrame extends JFrame
|
|||||||
|
|
||||||
public void setPanel (ImporterPanel panel)
|
public void setPanel (ImporterPanel panel)
|
||||||
{
|
{
|
||||||
boolean repack = true;
|
|
||||||
|
|
||||||
// clear out any old panel
|
// clear out any old panel
|
||||||
if (_panel != null) {
|
if (_panel != null) {
|
||||||
_top.remove(_panel);
|
_top.remove(_panel);
|
||||||
// don't repack if there was an old panel
|
|
||||||
repack = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear out old control buttons
|
// clear out old control buttons
|
||||||
@@ -58,12 +54,8 @@ public class ImporterFrame extends JFrame
|
|||||||
_panel.wasAddedToFrame(this);
|
_panel.wasAddedToFrame(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// and possibly repack ourselves
|
// and lay out the new panel
|
||||||
if (repack) {
|
validate();
|
||||||
pack();
|
|
||||||
} else {
|
|
||||||
validate();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public JButton addControlButton (String label, String command,
|
public JButton addControlButton (String label, String command,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: InsertCDPanel.java,v 1.1 2000/12/10 07:02:09 mdb Exp $
|
// $Id: InsertCDPanel.java,v 1.2 2001/03/21 00:41:03 mdb Exp $
|
||||||
|
|
||||||
package robodj.importer;
|
package robodj.importer;
|
||||||
|
|
||||||
@@ -49,8 +49,7 @@ public class InsertCDPanel
|
|||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
|
||||||
} else if (cmd.equals("next")) {
|
} else if (cmd.equals("next")) {
|
||||||
CDDBLookupPanel panel = new CDDBLookupPanel();
|
_frame.setPanel(new CDDBLookupPanel());
|
||||||
_frame.setPanel(panel);
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Unknown action event: " + cmd);
|
System.out.println("Unknown action event: " + cmd);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: RipPanel.java,v 1.2 2001/03/18 06:58:55 mdb Exp $
|
// $Id: RipPanel.java,v 1.3 2001/03/21 00:41:03 mdb Exp $
|
||||||
|
|
||||||
package robodj.importer;
|
package robodj.importer;
|
||||||
|
|
||||||
@@ -248,7 +248,13 @@ public class RipPanel
|
|||||||
// insert the entry into the repository so that we get the
|
// insert the entry into the repository so that we get the
|
||||||
// proper entry id which we'll need to put the tracks in their
|
// proper entry id which we'll need to put the tracks in their
|
||||||
// proper place in the repository
|
// proper place in the repository
|
||||||
Importer.repository.insertEntry(_entry);
|
RetryableTask iop = new RetryableTask() {
|
||||||
|
public void invoke () throws Exception
|
||||||
|
{
|
||||||
|
Importer.repository.insertEntry(_entry);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
iop.invokeTask(_frame, DB_FAILURE_MSG);
|
||||||
// track this so that we can clean up in case of failure
|
// track this so that we can clean up in case of failure
|
||||||
entryid = _entry.entryid;
|
entryid = _entry.entryid;
|
||||||
|
|
||||||
@@ -284,7 +290,13 @@ public class RipPanel
|
|||||||
}
|
}
|
||||||
|
|
||||||
// finally update the entry in the database
|
// finally update the entry in the database
|
||||||
Importer.repository.updateEntry(_entry);
|
RetryableTask uop = new RetryableTask() {
|
||||||
|
public void invoke () throws Exception
|
||||||
|
{
|
||||||
|
Importer.repository.updateEntry(_entry);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
uop.invokeTask(_frame, DB_FAILURE_MSG);
|
||||||
// and clear out the entryid to indicate success
|
// and clear out the entryid to indicate success
|
||||||
entryid = -1;
|
entryid = -1;
|
||||||
|
|
||||||
@@ -335,7 +347,6 @@ public class RipPanel
|
|||||||
} else if (name.equals("commit")) {
|
} else if (name.equals("commit")) {
|
||||||
// we're all done. fix up the buttons and call it good
|
// we're all done. fix up the buttons and call it good
|
||||||
_cancel.setEnabled(false);
|
_cancel.setEnabled(false);
|
||||||
_next.setLabel("Exit");
|
|
||||||
_next.setEnabled(true);
|
_next.setEnabled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -359,7 +370,7 @@ public class RipPanel
|
|||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
|
||||||
} else if (cmd.equals("next")) {
|
} else if (cmd.equals("next")) {
|
||||||
System.exit(0);
|
_frame.setPanel(new FinishedPanel(_entry));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Unknown action event: " + cmd);
|
System.out.println("Unknown action event: " + cmd);
|
||||||
@@ -377,4 +388,10 @@ public class RipPanel
|
|||||||
|
|
||||||
protected Ripper.TrackInfo[] _info;
|
protected Ripper.TrackInfo[] _info;
|
||||||
protected Entry _entry;
|
protected Entry _entry;
|
||||||
|
|
||||||
|
protected static final String DB_FAILURE_MSG =
|
||||||
|
"An error occurred while communicating with the database. You " +
|
||||||
|
"may wish to examine the following error message, remedy the " +
|
||||||
|
"problem with the database and retry the operation. Or you can " +
|
||||||
|
"abort the operation and cancel the import process entirely.";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user