home *** CD-ROM | disk | FTP | other *** search
- package com.sfs.iavazip.viewer;
-
- import com.sfs.debug.Debug;
- import java.awt.BorderLayout;
- import java.awt.Container;
- import java.awt.Font;
- import java.awt.Frame;
- import java.awt.Label;
- import java.awt.TextArea;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
-
- public class hexView extends Viewer implements Runnable {
- Frame parent;
- Thread thread;
- FileInputStream fis;
- TextArea content;
-
- public void setArgs(Frame var1, String var2) {
- this.thread = new Thread(this);
-
- try {
- this.fis = new FileInputStream(var2);
- ((Container)this).add("Center", this.content = new TextArea());
- this.content.setFont(new Font("DialogInput", 12, 0));
- this.thread.start();
- } catch (FileNotFoundException var3) {
- this.flush();
- ((Container)this).add("Center", new Label("file not found", 1));
- }
- }
-
- String parseBytes(int var1, byte[] var2, int var3) {
- StringBuffer var4 = new StringBuffer(80);
- var4.append(var1);
- int var5 = 5 - var4.length();
-
- for(int var6 = 0; var6 < var5; ++var6) {
- var4.append(" ");
- }
-
- for(int var10 = 0; var10 < var3; ++var10) {
- int var7 = var2[var10];
- if (var7 < 0) {
- var7 = 127 + -var7;
- }
-
- String var8 = Integer.toHexString(var7);
- var8 = var8.toUpperCase();
- if (var8.length() < 2) {
- var4.append("0");
- }
-
- var4.append(var8).append(" ");
- if (var10 == 7) {
- var4.append(" ");
- }
- }
-
- var5 = 55 - var4.length();
-
- for(int var11 = 0; var11 < var5; ++var11) {
- var4.append(" ");
- }
-
- for(int var12 = 0; var12 < var3; ++var12) {
- char var13 = (char)var2[var12];
- if (Character.isLetterOrDigit(var13)) {
- var4.append(var13);
- } else {
- var4.append(".");
- }
- }
-
- var4.append("\n");
- return var4.toString();
- }
-
- public void flush() {
- this.thread.stop();
- if (this.fis != null) {
- try {
- this.fis.close();
- return;
- } catch (IOException var3) {
- Debug.Info("hexView.flush() failed during " + ((Throwable)var3).getMessage());
- }
- }
-
- }
-
- public void run() {
- byte[] var1 = new byte[16];
- int var3 = 0;
-
- try {
- int var2;
- while((var2 = this.fis.read(var1)) != -1) {
- this.content.append(this.parseBytes(var3++, var1, var2));
-
- try {
- Thread.sleep(10L);
- } catch (InterruptedException var4) {
- }
- }
-
- this.thread.stop();
- } catch (IOException var5) {
- }
- }
-
- public hexView() {
- ((Container)this).setLayout(new BorderLayout());
- }
- }
-