dmolony-DiskBrowser/src/com/bytezone/diskbrowser/applefile/AbstractFile.java

73 lines
1.6 KiB
Java
Raw Normal View History

2015-06-01 09:35:51 +00:00
package com.bytezone.diskbrowser.applefile;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JPanel;
import com.bytezone.diskbrowser.gui.DataSource;
2016-02-24 21:11:14 +00:00
import com.bytezone.diskbrowser.utilities.HexFormatter;
2015-06-01 09:35:51 +00:00
public abstract class AbstractFile implements DataSource
{
2016-03-23 23:37:59 +00:00
protected String name;
2015-06-01 09:35:51 +00:00
public byte[] buffer;
2016-03-23 23:37:59 +00:00
protected AssemblerProgram assembler;
2015-06-01 09:35:51 +00:00
protected BufferedImage image;
2016-12-31 09:34:15 +00:00
protected int loadAddress;
2015-06-01 09:35:51 +00:00
public AbstractFile (String name, byte[] buffer)
{
this.name = name;
this.buffer = buffer;
}
@Override
2016-02-05 07:18:23 +00:00
public String getText () // Override this to get a tailored text representation
2015-06-01 09:35:51 +00:00
{
return "Name : " + name + "\n\nNo text description";
}
2016-03-23 23:37:59 +00:00
public String getName ()
{
return name;
}
2015-06-01 09:35:51 +00:00
@Override
public String getAssembler ()
{
if (buffer == null)
return "No buffer";
2016-02-05 07:18:23 +00:00
2015-06-01 09:35:51 +00:00
if (assembler == null)
2016-12-31 09:34:15 +00:00
this.assembler = new AssemblerProgram (name, buffer, loadAddress);
2016-02-05 07:18:23 +00:00
2015-06-01 09:35:51 +00:00
return assembler.getText ();
}
@Override
public String getHexDump ()
{
if (buffer == null || buffer.length == 0)
return "No buffer";
2016-02-05 00:23:53 +00:00
2016-08-19 09:57:29 +00:00
if (buffer.length <= 999999)
2015-06-01 09:35:51 +00:00
return HexFormatter.format (buffer, 0, buffer.length);
2016-02-05 00:23:53 +00:00
2017-03-17 11:03:56 +00:00
System.out.println ("**** truncating hex dump");
2016-08-19 09:57:29 +00:00
return HexFormatter.format (buffer, 0, 999999);
2015-06-01 09:35:51 +00:00
}
@Override
public BufferedImage getImage ()
{
return image;
}
@Override
public JComponent getComponent ()
{
JPanel panel = new JPanel ();
return panel;
}
}