mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2024-06-01 03:41:29 +00:00
moving common functions inhouse
This commit is contained in:
parent
39bdb3d00a
commit
59f794906e
|
@ -7,7 +7,7 @@ import javax.swing.Action;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// this is not being used
|
// this is not being used
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class CreateDatabaseAction extends DefaultAction
|
class CreateDatabaseAction extends DefaultAction
|
||||||
|
|
|
@ -9,9 +9,9 @@ import javax.swing.Action;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
|
||||||
import com.bytezone.diskbrowser.duplicates.DiskDetails;
|
import com.bytezone.diskbrowser.duplicates.DiskDetails;
|
||||||
import com.bytezone.diskbrowser.duplicates.RootFolderData;
|
import com.bytezone.diskbrowser.duplicates.RootFolderData;
|
||||||
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
public class DuplicateAction extends DefaultAction implements RootDirectoryChangeListener
|
public class DuplicateAction extends DefaultAction implements RootDirectoryChangeListener
|
||||||
|
|
|
@ -5,8 +5,8 @@ import java.awt.event.ActionEvent;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
|
||||||
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
||||||
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class InterleaveAction extends DefaultAction
|
class InterleaveAction extends DefaultAction
|
||||||
|
|
|
@ -17,7 +17,6 @@ import javax.swing.JMenuItem;
|
||||||
import javax.swing.JRadioButtonMenuItem;
|
import javax.swing.JRadioButtonMenuItem;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.EnvironmentAction;
|
|
||||||
import com.bytezone.common.FontAction;
|
import com.bytezone.common.FontAction;
|
||||||
import com.bytezone.diskbrowser.applefile.AssemblerProgram;
|
import com.bytezone.diskbrowser.applefile.AssemblerProgram;
|
||||||
import com.bytezone.diskbrowser.applefile.BasicProgram;
|
import com.bytezone.diskbrowser.applefile.BasicProgram;
|
||||||
|
@ -28,6 +27,7 @@ import com.bytezone.diskbrowser.applefile.VisicalcFile;
|
||||||
import com.bytezone.diskbrowser.disk.DataDisk;
|
import com.bytezone.diskbrowser.disk.DataDisk;
|
||||||
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
||||||
import com.bytezone.diskbrowser.prodos.ProdosDisk;
|
import com.bytezone.diskbrowser.prodos.ProdosDisk;
|
||||||
|
import com.bytezone.diskbrowser.utilities.EnvironmentAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class MenuHandler implements DiskSelectionListener, FileSelectionListener, QuitListener,
|
class MenuHandler implements DiskSelectionListener, FileSelectionListener, QuitListener,
|
||||||
|
|
|
@ -8,7 +8,7 @@ import javax.swing.Action;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// ********** not currently used ***********
|
// ********** not currently used ***********
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import java.awt.print.PrinterJob;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class PrintAction extends DefaultAction
|
class PrintAction extends DefaultAction
|
||||||
|
|
|
@ -6,7 +6,7 @@ import java.awt.event.KeyEvent;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class RefreshTreeAction extends DefaultAction
|
class RefreshTreeAction extends DefaultAction
|
||||||
|
|
|
@ -11,8 +11,7 @@ import javax.swing.Action;
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
import javax.swing.KeyStroke;
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
import com.bytezone.common.Platform;
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class RootDirectoryAction extends DefaultAction implements QuitListener
|
class RootDirectoryAction extends DefaultAction implements QuitListener
|
||||||
|
@ -40,7 +39,7 @@ class RootDirectoryAction extends DefaultAction implements QuitListener
|
||||||
public void actionPerformed (ActionEvent e)
|
public void actionPerformed (ActionEvent e)
|
||||||
// ---------------------------------------------------------------------------------//
|
// ---------------------------------------------------------------------------------//
|
||||||
{
|
{
|
||||||
JFileChooser chooser = new JFileChooser (Platform.userHome);
|
JFileChooser chooser = new JFileChooser (System.getProperty ("user.home"));
|
||||||
chooser.setDialogTitle ("Select FOLDER containing disk images");
|
chooser.setDialogTitle ("Select FOLDER containing disk images");
|
||||||
chooser.setFileSelectionMode (JFileChooser.DIRECTORIES_ONLY);
|
chooser.setFileSelectionMode (JFileChooser.DIRECTORIES_ONLY);
|
||||||
if (rootFolder != null)
|
if (rootFolder != null)
|
||||||
|
|
|
@ -9,7 +9,7 @@ import java.nio.file.StandardOpenOption;
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class SaveSectorsAction extends DefaultAction implements SectorSelectionListener
|
class SaveSectorsAction extends DefaultAction implements SectorSelectionListener
|
||||||
|
@ -35,8 +35,7 @@ class SaveSectorsAction extends DefaultAction implements SectorSelectionListener
|
||||||
System.out.println ("No sectors");
|
System.out.println ("No sectors");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
byte[] buffer =
|
byte[] buffer = event.getFormattedDisk ().getDisk ().readBlocks (event.getSectors ());
|
||||||
event.getFormattedDisk ().getDisk ().readBlocks (event.getSectors ());
|
|
||||||
|
|
||||||
JFileChooser fileChooser = new JFileChooser ();
|
JFileChooser fileChooser = new JFileChooser ();
|
||||||
fileChooser.setDialogTitle ("Save sectors");
|
fileChooser.setDialogTitle ("Save sectors");
|
||||||
|
|
|
@ -8,8 +8,8 @@ import java.nio.file.Files;
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
import com.bytezone.common.DefaultAction;
|
|
||||||
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
import com.bytezone.diskbrowser.disk.FormattedDisk;
|
||||||
|
import com.bytezone.diskbrowser.utilities.DefaultAction;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------//
|
// -----------------------------------------------------------------------------------//
|
||||||
class SaveTempFileAction extends DefaultAction
|
class SaveTempFileAction extends DefaultAction
|
||||||
|
|
46
src/com/bytezone/diskbrowser/utilities/DefaultAction.java
Normal file
46
src/com/bytezone/diskbrowser/utilities/DefaultAction.java
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
package com.bytezone.diskbrowser.utilities;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
|
import javax.swing.AbstractAction;
|
||||||
|
import javax.swing.Action;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------//
|
||||||
|
public abstract class DefaultAction extends AbstractAction
|
||||||
|
// -----------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
final String baseURL;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
public DefaultAction (String text, String tip)
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
super (text);
|
||||||
|
this.baseURL = null;
|
||||||
|
putValue (Action.SHORT_DESCRIPTION, tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
public DefaultAction (String text, String tip, String baseURL)
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
super (text);
|
||||||
|
this.baseURL = baseURL;
|
||||||
|
putValue (Action.SHORT_DESCRIPTION, tip);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
protected void setIcon (String iconType, String iconName)
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
if (baseURL == null)
|
||||||
|
{
|
||||||
|
System.out.println ("Base URL not set");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
URL url = this.getClass ().getResource (baseURL + iconName);
|
||||||
|
if (url != null)
|
||||||
|
putValue (iconType, new ImageIcon (url));
|
||||||
|
}
|
||||||
|
}
|
85
src/com/bytezone/diskbrowser/utilities/EnvironmentAction.java
Executable file
85
src/com/bytezone/diskbrowser/utilities/EnvironmentAction.java
Executable file
|
@ -0,0 +1,85 @@
|
||||||
|
package com.bytezone.diskbrowser.utilities;
|
||||||
|
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.Toolkit;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.swing.AbstractAction;
|
||||||
|
import javax.swing.Action;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
|
import javax.swing.KeyStroke;
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------//
|
||||||
|
public class EnvironmentAction extends AbstractAction
|
||||||
|
// -----------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
public EnvironmentAction ()
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
super ("Environment...");
|
||||||
|
|
||||||
|
putValue (Action.SHORT_DESCRIPTION, "Display java details");
|
||||||
|
int mask = Toolkit.getDefaultToolkit ().getMenuShortcutKeyMaskEx ();
|
||||||
|
putValue (Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke (KeyEvent.VK_E, mask));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
@Override
|
||||||
|
public void actionPerformed (ActionEvent e)
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
TextFormatter textFormatter = new TextFormatter ();
|
||||||
|
textFormatter.addLine ("Java version", System.getProperty ("java.runtime.version"));
|
||||||
|
textFormatter.addLine ();
|
||||||
|
|
||||||
|
String path = System.getProperty ("java.class.path");
|
||||||
|
for (String s : path.split (File.pathSeparator))
|
||||||
|
textFormatter.addLine ("Classpath", s);
|
||||||
|
|
||||||
|
JOptionPane.showMessageDialog (null, textFormatter.toLabel (), "Java Environment",
|
||||||
|
JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
class TextFormatter
|
||||||
|
// ---------------------------------------------------------------------------------//
|
||||||
|
{
|
||||||
|
List<String> titles = new ArrayList<> ();
|
||||||
|
List<String> texts = new ArrayList<> ();
|
||||||
|
|
||||||
|
void addLine (String title, String text)
|
||||||
|
{
|
||||||
|
titles.add (title);
|
||||||
|
texts.add (text);
|
||||||
|
}
|
||||||
|
|
||||||
|
void addLine ()
|
||||||
|
{
|
||||||
|
addLine ("", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
JLabel toLabel ()
|
||||||
|
{
|
||||||
|
StringBuilder text = new StringBuilder ("<html>");
|
||||||
|
for (int i = 0; i < texts.size (); i++)
|
||||||
|
{
|
||||||
|
String title = titles.get (i);
|
||||||
|
if (title.length () == 0)
|
||||||
|
text.append ("<br>");
|
||||||
|
else
|
||||||
|
text.append (String.format ("%s : %s<br>", title, texts.get (i)));
|
||||||
|
}
|
||||||
|
text.append ("</html>");
|
||||||
|
|
||||||
|
JLabel label = new JLabel (text.toString ());
|
||||||
|
label.setFont (new Font ("Monospaced", Font.PLAIN, 13));
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user