moved debug to AbstractFile

This commit is contained in:
Denis Molony 2020-12-19 18:40:59 +10:00
parent 651674d1ed
commit e7c4423ebf
5 changed files with 47 additions and 57 deletions

View File

@ -12,6 +12,8 @@ import com.bytezone.diskbrowser.utilities.HexFormatter;
public abstract class AbstractFile implements DataSource public abstract class AbstractFile implements DataSource
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
{ {
static boolean debug;
protected String name; protected String name;
public byte[] buffer; public byte[] buffer;
protected AssemblerProgram assembler; protected AssemblerProgram assembler;
@ -34,6 +36,20 @@ public abstract class AbstractFile implements DataSource
return "Name : " + name + "\n\nNo text description"; return "Name : " + name + "\n\nNo text description";
} }
// ---------------------------------------------------------------------------------//
public static void setDefaultDebug (boolean value)
// ---------------------------------------------------------------------------------//
{
debug = value;
}
// ---------------------------------------------------------------------------------//
public static void setDebug (boolean value)
// ---------------------------------------------------------------------------------//
{
debug = value;
}
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
public String getName () public String getName ()
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//

View File

@ -26,8 +26,6 @@ public class ApplesoftBasicProgram extends BasicProgram
private static final byte TOKEN_THEN = (byte) 0xC4; private static final byte TOKEN_THEN = (byte) 0xC4;
private static final byte TOKEN_EQUALS = (byte) 0xD0; private static final byte TOKEN_EQUALS = (byte) 0xD0;
private static boolean debug;
private final List<SourceLine> sourceLines = new ArrayList<> (); private final List<SourceLine> sourceLines = new ArrayList<> ();
private final int endPtr; private final int endPtr;
private final Set<Integer> gotoLines = new HashSet<> (); private final Set<Integer> gotoLines = new HashSet<> ();
@ -57,20 +55,6 @@ public class ApplesoftBasicProgram extends BasicProgram
endPtr = ptr; endPtr = ptr;
} }
// ---------------------------------------------------------------------------------//
public static void setDefaultDebug (boolean value)
// ---------------------------------------------------------------------------------//
{
debug = value;
}
// ---------------------------------------------------------------------------------//
public static void setDebug (boolean value)
// ---------------------------------------------------------------------------------//
{
debug = value;
}
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
@Override @Override
public String getText () public String getText ()

View File

@ -6,7 +6,6 @@ import com.bytezone.diskbrowser.visicalc.Sheet;
public class VisicalcFile extends AbstractFile public class VisicalcFile extends AbstractFile
// -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------//
{ {
private static boolean debug;
private Sheet sheet; private Sheet sheet;
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
@ -32,20 +31,6 @@ public class VisicalcFile extends AbstractFile
return text.toString (); return text.toString ();
} }
// ---------------------------------------------------------------------------------//
public static void setDefaultDebug (boolean value)
// ---------------------------------------------------------------------------------//
{
debug = value;
}
// ---------------------------------------------------------------------------------//
public static void setDebug (boolean value)
// ---------------------------------------------------------------------------------//
{
debug = value;
}
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
public static boolean isVisicalcFile (byte[] buffer) public static boolean isVisicalcFile (byte[] buffer)
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//

View File

@ -25,6 +25,7 @@ import javax.swing.SwingWorker;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import com.bytezone.diskbrowser.applefile.AbstractFile;
import com.bytezone.diskbrowser.applefile.ApplesoftBasicProgram; import com.bytezone.diskbrowser.applefile.ApplesoftBasicProgram;
import com.bytezone.diskbrowser.applefile.AssemblerProgram; import com.bytezone.diskbrowser.applefile.AssemblerProgram;
import com.bytezone.diskbrowser.applefile.BasicTextFile; import com.bytezone.diskbrowser.applefile.BasicTextFile;
@ -33,7 +34,6 @@ import com.bytezone.diskbrowser.applefile.Palette;
import com.bytezone.diskbrowser.applefile.PaletteFactory.CycleDirection; import com.bytezone.diskbrowser.applefile.PaletteFactory.CycleDirection;
import com.bytezone.diskbrowser.applefile.QuickDrawFont; import com.bytezone.diskbrowser.applefile.QuickDrawFont;
import com.bytezone.diskbrowser.applefile.SHRPictureFile2; import com.bytezone.diskbrowser.applefile.SHRPictureFile2;
import com.bytezone.diskbrowser.applefile.VisicalcFile;
import com.bytezone.diskbrowser.disk.DiskAddress; import com.bytezone.diskbrowser.disk.DiskAddress;
import com.bytezone.diskbrowser.disk.SectorList; import com.bytezone.diskbrowser.disk.SectorList;
import com.bytezone.diskbrowser.gui.FontAction.FontChangeEvent; import com.bytezone.diskbrowser.gui.FontAction.FontChangeEvent;
@ -71,6 +71,11 @@ public class DataPanel extends JTabbedPane
final MenuHandler menuHandler; final MenuHandler menuHandler;
enum TabType
{
FORMATTED, HEX, DISASSEMBLED
}
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
public DataPanel (MenuHandler mh) public DataPanel (MenuHandler mh)
// ---------------------------------------------------------------------------------// // ---------------------------------------------------------------------------------//
@ -255,20 +260,23 @@ public class DataPanel extends JTabbedPane
{ {
debugMode = value; debugMode = value;
if (currentDataSource instanceof VisicalcFile) AbstractFile.setDebug (value);
{ setText (formattedText, currentDataSource.getText ());
VisicalcFile visicalcFile = (VisicalcFile) currentDataSource; // if (currentDataSource instanceof VisicalcFile)
VisicalcFile.setDebug (value); // {
setText (formattedText, visicalcFile.getText ()); // VisicalcFile visicalcFile = (VisicalcFile) currentDataSource;
} // VisicalcFile.setDebug (value);
else if (currentDataSource instanceof ApplesoftBasicProgram) // setText (formattedText, visicalcFile.getText ());
{ // }
ApplesoftBasicProgram basicProgram = (ApplesoftBasicProgram) currentDataSource; // else if (currentDataSource instanceof ApplesoftBasicProgram)
ApplesoftBasicProgram.setDebug (value); // {
setText (formattedText, basicProgram.getText ()); // ApplesoftBasicProgram basicProgram = (ApplesoftBasicProgram) currentDataSource;
} // ApplesoftBasicProgram.setDebug (value);
// should implement an interface for this // setText (formattedText, basicProgram.getText ());
else if (currentDataSource instanceof HiResImage // }
// // should implement an interface for this
// else
if (currentDataSource instanceof HiResImage
|| currentDataSource instanceof QuickDrawFont) || currentDataSource instanceof QuickDrawFont)
{ {
setDataSource (currentDataSource); // toggles text/image setDataSource (currentDataSource); // toggles text/image
@ -324,9 +332,9 @@ public class DataPanel extends JTabbedPane
return; return;
} }
switch (getSelectedIndex ()) switch (TabType.values ()[getSelectedIndex ()])
{ {
case 0: // Formatted/Image case FORMATTED:
try try
{ {
setText (formattedText, dataSource.getText ()); setText (formattedText, dataSource.getText ());
@ -340,20 +348,17 @@ public class DataPanel extends JTabbedPane
assemblerTextValid = false; assemblerTextValid = false;
break; break;
case 1: // Hex Dump case HEX:
setText (hexText, dataSource.getHexDump ()); setText (hexText, dataSource.getHexDump ());
formattedTextValid = false; formattedTextValid = false;
assemblerTextValid = false; assemblerTextValid = false;
break; break;
case 2: // Disassembly case DISASSEMBLED:
setText (disassemblyText, dataSource.getAssembler ()); setText (disassemblyText, dataSource.getAssembler ());
hexTextValid = false; hexTextValid = false;
formattedTextValid = false; formattedTextValid = false;
break; break;
default:
System.out.println ("Invalid index selected in DataPanel");
} }
BufferedImage image = dataSource.getImage (); BufferedImage image = dataSource.getImage ();

View File

@ -17,14 +17,13 @@ import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem; import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import com.bytezone.diskbrowser.applefile.ApplesoftBasicProgram; import com.bytezone.diskbrowser.applefile.AbstractFile;
import com.bytezone.diskbrowser.applefile.AssemblerProgram; import com.bytezone.diskbrowser.applefile.AssemblerProgram;
import com.bytezone.diskbrowser.applefile.BasicProgram; import com.bytezone.diskbrowser.applefile.BasicProgram;
import com.bytezone.diskbrowser.applefile.BasicTextFile; import com.bytezone.diskbrowser.applefile.BasicTextFile;
import com.bytezone.diskbrowser.applefile.HiResImage; import com.bytezone.diskbrowser.applefile.HiResImage;
import com.bytezone.diskbrowser.applefile.Palette; import com.bytezone.diskbrowser.applefile.Palette;
import com.bytezone.diskbrowser.applefile.PaletteFactory; import com.bytezone.diskbrowser.applefile.PaletteFactory;
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;
@ -570,8 +569,9 @@ class MenuHandler implements DiskSelectionListener, FileSelectionListener, QuitL
HiResImage.setDefaultColourQuirks (colourQuirksItem.isSelected ()); HiResImage.setDefaultColourQuirks (colourQuirksItem.isSelected ());
HiResImage.setDefaultMonochrome (monochromeItem.isSelected ()); HiResImage.setDefaultMonochrome (monochromeItem.isSelected ());
VisicalcFile.setDefaultDebug (debuggingItem.isSelected ()); // VisicalcFile.setDefaultDebug (debuggingItem.isSelected ());
ApplesoftBasicProgram.setDefaultDebug (debuggingItem.isSelected ()); // ApplesoftBasicProgram.setDefaultDebug (debuggingItem.isSelected ());
AbstractFile.setDefaultDebug (debuggingItem.isSelected ());
fontAction.restore (prefs); fontAction.restore (prefs);
} }