From 13f80145e7b8f7e9061c37af70e8b1753269c821 Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Sat, 30 Jul 2016 16:12:01 +1000 Subject: [PATCH] suppress bxy.gz and bny.gz --- .../diskbrowser/disk/DiskFactory.java | 24 ++++++++++------- .../diskbrowser/gui/DiskLayoutImage.java | 26 ++++++------------- .../diskbrowser/gui/DiskLegendPanel.java | 19 +++----------- .../bytezone/diskbrowser/gui/TreeBuilder.java | 23 ++++++++-------- 4 files changed, 39 insertions(+), 53 deletions(-) diff --git a/src/com/bytezone/diskbrowser/disk/DiskFactory.java b/src/com/bytezone/diskbrowser/disk/DiskFactory.java index 9cc3b9c..a7fe6b0 100755 --- a/src/com/bytezone/diskbrowser/disk/DiskFactory.java +++ b/src/com/bytezone/diskbrowser/disk/DiskFactory.java @@ -1,6 +1,10 @@ package com.bytezone.diskbrowser.disk; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.nio.file.Path; import java.nio.file.Paths; import java.util.zip.GZIPInputStream; @@ -151,7 +155,8 @@ public class DiskFactory long length = file.length (); if (length != 143360 && length != 116480) { - System.out.printf ("%s: invalid file length : %,d%n", file.getName (), file.length ()); + System.out.printf ("%s: invalid file length : %,d%n", file.getName (), + file.length ()); return null; } @@ -162,9 +167,9 @@ public class DiskFactory long checksum = appleDisk.getBootChecksum (); if (checksum == 3176296590L || checksum == 108825457L || checksum == 1439356606L - || checksum == 1550012074L || checksum == 1614602459L || checksum == 940889336L - || checksum == 990032697 || checksum == 2936955085L || checksum == 1348415927L - || checksum == 3340889101L || checksum == 18315788L || checksum == 993895235L) + || checksum == 1550012074L || checksum == 1614602459L || checksum == 940889336L + || checksum == 990032697 || checksum == 2936955085L || checksum == 1348415927L + || checksum == 3340889101L || checksum == 18315788L || checksum == 993895235L) { disk = checkDos (file); disk2 = checkProdos (file); @@ -180,8 +185,8 @@ public class DiskFactory disk = new DualDosDisk (disk, disk2); } - else if (checksum == 2803644711L || checksum == 3317783349L || checksum == 1728863694L - || checksum == 198094178L) + else if (checksum == 2803644711L || checksum == 3317783349L + || checksum == 1728863694L || checksum == 198094178L) disk = checkPascalDisk (file); else if (checksum == 3028642627L || checksum == 2070151659L) @@ -244,7 +249,7 @@ public class DiskFactory if (debug) System.out.println ("Factory creating disk : " - + disk.getDisk ().getFile ().getAbsolutePath ()); + + disk.getDisk ().getFile ().getAbsolutePath ()); if (disk != null && compressed) disk.setOriginalPath (p); @@ -333,7 +338,8 @@ public class DiskFactory } catch (Exception e) { - e.printStackTrace (); + // e.printStackTrace (); + System.out.println (e); } if (debug) diff --git a/src/com/bytezone/diskbrowser/gui/DiskLayoutImage.java b/src/com/bytezone/diskbrowser/gui/DiskLayoutImage.java index 876b321..bdc57db 100644 --- a/src/com/bytezone/diskbrowser/gui/DiskLayoutImage.java +++ b/src/com/bytezone/diskbrowser/gui/DiskLayoutImage.java @@ -40,8 +40,6 @@ class DiskLayoutImage extends JPanel implements Scrollable, RedoListener private int gw = 8; private int gh = 35; - // private boolean retina; - public DiskLayoutImage () { setPreferredSize (new Dimension (240 + 1, 525 + 1)); @@ -50,7 +48,6 @@ class DiskLayoutImage extends JPanel implements Scrollable, RedoListener setOpaque (true); addKeyListener (new MyKeyListener ()); - // setFocusable (true); } public void setDisk (FormattedDisk disk, LayoutDetails details) @@ -84,12 +81,6 @@ class DiskLayoutImage extends JPanel implements Scrollable, RedoListener repaint (); } - // public void setRetina (boolean value) - // { - // retina = value; - // repaint (); - // } - void setSelection (List sectors) { selectionHandler.setSelection (sectors); @@ -147,24 +138,23 @@ class DiskLayoutImage extends JPanel implements Scrollable, RedoListener Rectangle rect = new Rectangle (x, y, bw, bh); + int width = rect.width - (retinaTest ? 2 : 3); + int height = rect.height - (retinaTest ? 2 : 3); + int offset2 = retinaTest ? 1 : 2; + // draw frame - if (true) // this needs to draw the outside rectangle, and show less white space - // between blocks + if (true) { g.setColor (Color.GRAY); - g.drawRect (rect.x, rect.y, rect.width, rect.height); + // g.drawRect (rect.x, rect.y, rect.width, rect.height); + g.draw (rect); } // draw coloured block if (type.colour != Color.WHITE) { g.setColor (type.colour); - // this is weird, the retina OSX screen needs the second fillRect - // see also DiskLegendPanel.paint() - if (retinaTest) - g.fillRect (rect.x + 1, rect.y + 1, rect.width - 2, rect.height - 2); - else - g.fillRect (rect.x + 2, rect.y + 2, rect.width - 3, rect.height - 3); + g.fillRect (rect.x + offset2, rect.y + offset2, width, height); } // draw an indicator in free blocks diff --git a/src/com/bytezone/diskbrowser/gui/DiskLegendPanel.java b/src/com/bytezone/diskbrowser/gui/DiskLegendPanel.java index 6a7f9c8..4d6cc1f 100644 --- a/src/com/bytezone/diskbrowser/gui/DiskLegendPanel.java +++ b/src/com/bytezone/diskbrowser/gui/DiskLegendPanel.java @@ -15,7 +15,6 @@ import com.bytezone.common.Platform.FontType; import com.bytezone.diskbrowser.disk.FormattedDisk; import com.bytezone.diskbrowser.disk.SectorType; import com.bytezone.diskbrowser.gui.DiskLayoutPanel.LayoutDetails; -import com.bytezone.diskbrowser.utilities.Utility; class DiskLegendPanel extends JPanel { @@ -25,7 +24,6 @@ class DiskLegendPanel extends JPanel private FormattedDisk disk; private LayoutDetails layoutDetails; private final Font font; - // private boolean retina; private boolean retinaTest; public DiskLegendPanel () @@ -46,12 +44,6 @@ class DiskLegendPanel extends JPanel repaint (); } - // public void setRetina (boolean value) - // { - // retina = value; - // repaint (); - // } - @Override public Dimension getPreferredSize () { @@ -70,7 +62,9 @@ class DiskLegendPanel extends JPanel int count = 0; int lineHeight = 20; - System.out.println (Utility.test ((Graphics2D) g)); + int width = layoutDetails.block.width - (retinaTest ? 2 : 3); + int height = layoutDetails.block.height - (retinaTest ? 2 : 3); + int offset = retinaTest ? 1 : 2; for (SectorType type : disk.getSectorTypeList ()) { @@ -83,12 +77,7 @@ class DiskLegendPanel extends JPanel // draw the colour g.setColor (type.colour); - if (retinaTest) - g.fillRect (x + 1, y + 1, layoutDetails.block.width - 2, - layoutDetails.block.height - 2); - else - g.fillRect (x + 2, y + 2, layoutDetails.block.width - 3, - layoutDetails.block.height - 3); + g.fillRect (x + offset, y + offset, width, height); // draw the text g.setColor (Color.BLACK); diff --git a/src/com/bytezone/diskbrowser/gui/TreeBuilder.java b/src/com/bytezone/diskbrowser/gui/TreeBuilder.java index 9e37ad5..c38f7ac 100755 --- a/src/com/bytezone/diskbrowser/gui/TreeBuilder.java +++ b/src/com/bytezone/diskbrowser/gui/TreeBuilder.java @@ -45,8 +45,6 @@ public class TreeBuilder assert (folder.exists ()); assert (folder.isDirectory ()); - // long start = System.currentTimeMillis (); - FileNode fn = new FileNode (folder); DefaultMutableTreeNode root = new DefaultMutableTreeNode (fn); fn.setTreeNode (root); @@ -54,14 +52,7 @@ public class TreeBuilder DefaultTreeModel treeModel = new DefaultTreeModel (root); tree = new JTree (treeModel); - // long duration = System.currentTimeMillis () - start; - // System.out.printf ( - // "Tree building took %,d milliseconds for " - // + "%,d disk%s and %,d folder%s%n", - // duration, totalDisks, (totalDisks == 1 ? "" : "s"), totalFolders, - // (totalFolders == 1 ? "" : "s")); - - treeModel.setAsksAllowsChildren (true);// allows empty nodes to appear as folders + treeModel.setAsksAllowsChildren (true); // allows empty nodes to appear as folders setDiskIcon ("/com/bytezone/diskbrowser/icons/disk.png"); ((FileNode) root.getUserObject ()).disks = totalDisks; @@ -104,7 +95,7 @@ public class TreeBuilder totalFolders++; if (FULL_TREE) - addFiles (newNode, file);// recursion! + addFiles (newNode, file); // recursion! continue; } @@ -144,6 +135,7 @@ public class TreeBuilder if (false) checkDuplicates (file); + totalDisks++; if (false) @@ -196,6 +188,15 @@ public class TreeBuilder return false; String suffix = filename.substring (dotPos + 1).toLowerCase (); + + int dotPos2 = filename.lastIndexOf ('.', dotPos - 1); + if (dotPos2 > 0) + { + String suffix2 = filename.substring (dotPos2 + 1, dotPos).toLowerCase (); + if (suffix.equals ("gz") && (suffix2.equals ("bxy") || suffix2.equals ("bny"))) + return false; + } + return suffixes.contains (suffix); }