/*-
* Copyright (C) 2007 Erik Larsson
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.catacombae.hfsexplorer.gui;
import org.catacombae.hfs.types.hfsplus.JournalInfoBlock;
import org.catacombae.util.Util;
/**
* @author <a href="http://www.catacombae.org/" target="_top">Erik Larsson</a>
*/
public class JournalInfoBlockPanel extends javax.swing.JPanel {
/** Creates new form JournalInfoBlockPanel */
public JournalInfoBlockPanel() {
initComponents();
}
public void setFields(JournalInfoBlock jib) {
journalInFSBox.setSelected(jib.getFlagJournalInFS());
journalOnOtherDeviceBox.setSelected(jib.getFlagJournalOnOtherDevice());
journalNeedInitBox.setSelected(jib.getFlagJournalNeedInit());
int[] deviceSignature = jib.getDeviceSignature();
deviceSignatureField0.setText(Util.toHexStringBE(deviceSignature[0]) +
" " + Util.toHexStringBE(deviceSignature[1]));
deviceSignatureField1.setText(Util.toHexStringBE(deviceSignature[2]) +
" " + Util.toHexStringBE(deviceSignature[3]));
deviceSignatureField2.setText(Util.toHexStringBE(deviceSignature[4]) +
" " + Util.toHexStringBE(deviceSignature[5]));
deviceSignatureField3.setText(Util.toHexStringBE(deviceSignature[6]) +
" " + Util.toHexStringBE(deviceSignature[7]));
journalOffsetField.setText(jib.getOffset() + " bytes");
journalSizeField.setText(jib.getSize() + " bytes");
int[] reserved = jib.getReserved();
reservedField0.setText(Util.toHexStringBE(reserved[0]) + " " +
Util.toHexStringBE(reserved[1]));
reservedField1.setText(Util.toHexStringBE(reserved[2]) + " " +
Util.toHexStringBE(reserved[3]));
reservedField2.setText(Util.toHexStringBE(reserved[4]) + " " +
Util.toHexStringBE(reserved[5]));
reservedField3.setText(Util.toHexStringBE(reserved[6]) + " " +
Util.toHexStringBE(reserved[7]));
reservedField4.setText(Util.toHexStringBE(reserved[8]) + " " +
Util.toHexStringBE(reserved[9]));
reservedField5.setText(Util.toHexStringBE(reserved[10]) + " " +
Util.toHexStringBE(reserved[11]));
reservedField6.setText(Util.toHexStringBE(reserved[12]) + " " +
Util.toHexStringBE(reserved[13]));
reservedField7.setText(Util.toHexStringBE(reserved[14]) + " " +
Util.toHexStringBE(reserved[15]));
reservedField8.setText(Util.toHexStringBE(reserved[16]) + " " +
Util.toHexStringBE(reserved[17]));
reservedField9.setText(Util.toHexStringBE(reserved[18]) + " " +
Util.toHexStringBE(reserved[19]));
reservedField10.setText(Util.toHexStringBE(reserved[20]) + " " +
Util.toHexStringBE(reserved[21]));
reservedField11.setText(Util.toHexStringBE(reserved[22]) + " " +
Util.toHexStringBE(reserved[23]));
reservedField12.setText(Util.toHexStringBE(reserved[24]) + " " +
Util.toHexStringBE(reserved[25]));
reservedField13.setText(Util.toHexStringBE(reserved[26]) + " " +
Util.toHexStringBE(reserved[27]));
reservedField14.setText(Util.toHexStringBE(reserved[28]) + " " +
Util.toHexStringBE(reserved[29]));
reservedField15.setText(Util.toHexStringBE(reserved[30]) + " " +
Util.toHexStringBE(reserved[31]));
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
flagsLabel = new javax.swing.JLabel();
journalInFSBox = new javax.swing.JCheckBox();
journalOnOtherDeviceBox = new javax.swing.JCheckBox();
journalNeedInitBox = new javax.swing.JCheckBox();
journalInFSLabel = new javax.swing.JLabel();
journalOnOtherDeviceLabel = new javax.swing.JLabel();
journalNeedInitLabel = new javax.swing.JLabel();
deviceSignatureLabel = new javax.swing.JLabel();
journalOffsetLabel = new javax.swing.JLabel();
journalSizeLabel = new javax.swing.JLabel();
reservedLabel = new javax.swing.JLabel();
deviceSignatureField0 = new javax.swing.JLabel();
journalOffsetField = new javax.swing.JLabel();
journalSizeField = new javax.swing.JLabel();
reservedField0 = new javax.swing.JLabel();
deviceSignatureField1 = new javax.swing.JLabel();
deviceSignatureField2 = new javax.swing.JLabel();
deviceSignatureField3 = new javax.swing.JLabel();
reservedField1 = new javax.swing.JLabel();
reservedField2 = new javax.swing.JLabel();
reservedField3 = new javax.swing.JLabel();
reservedField4 = new javax.swing.JLabel();
reservedField5 = new javax.swing.JLabel();
reservedField6 = new javax.swing.JLabel();
reservedField7 = new javax.swing.JLabel();
reservedField8 = new javax.swing.JLabel();
reservedField9 = new javax.swing.JLabel();
reservedField10 = new javax.swing.JLabel();
reservedField11 = new javax.swing.JLabel();
reservedField12 = new javax.swing.JLabel();
reservedField13 = new javax.swing.JLabel();
reservedField14 = new javax.swing.JLabel();
reservedField15 = new javax.swing.JLabel();
flagsLabel.setText("Flags:");
journalInFSBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
journalInFSBox.setEnabled(false);
journalInFSBox.setMargin(new java.awt.Insets(0, 0, 0, 0));
journalOnOtherDeviceBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
journalOnOtherDeviceBox.setEnabled(false);
journalOnOtherDeviceBox.setMargin(new java.awt.Insets(0, 0, 0, 0));
journalNeedInitBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
journalNeedInitBox.setEnabled(false);
journalNeedInitBox.setMargin(new java.awt.Insets(0, 0, 0, 0));
journalInFSLabel.setText("Journal is located in file system");
journalOnOtherDeviceLabel.setText("Journal is located on other device");
journalNeedInitLabel.setText("Journal needs to be initialized");
deviceSignatureLabel.setText("Device signature:");
journalOffsetLabel.setText("Journal offset:");
journalSizeLabel.setText("Journal size:");
reservedLabel.setText("Reserved:");
deviceSignatureField0.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
journalOffsetField.setText("0 bytes");
journalSizeField.setText("0 bytes");
reservedField0.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
deviceSignatureField1.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
deviceSignatureField2.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
deviceSignatureField3.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField1.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField2.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField3.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField4.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField5.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField6.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField7.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField8.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField9.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField10.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField11.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField12.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField13.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField14.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
reservedField15.setText("\u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6 \u00d6\u00d6");
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(flagsLabel)
.add(layout.createSequentialGroup()
.add(21, 21, 21)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(journalOnOtherDeviceBox)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(journalOnOtherDeviceLabel))
.add(layout.createSequentialGroup()
.add(journalInFSBox)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(journalInFSLabel))
.add(layout.createSequentialGroup()
.add(journalNeedInitBox)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(journalNeedInitLabel))))
.add(layout.createSequentialGroup()
.add(journalOffsetLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(journalOffsetField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE))
.add(layout.createSequentialGroup()
.add(journalSizeLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(journalSizeField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE))
.add(layout.createSequentialGroup()
.add(deviceSignatureLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(deviceSignatureField3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
.add(deviceSignatureField0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
.add(deviceSignatureField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)
.add(deviceSignatureField2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 288, Short.MAX_VALUE)))
.add(layout.createSequentialGroup()
.add(reservedLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(reservedField0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField10, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField11, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField12, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField13, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField14, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
.add(reservedField15, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(flagsLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(journalInFSBox)
.add(journalInFSLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(journalOnOtherDeviceBox)
.add(journalOnOtherDeviceLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(journalNeedInitBox)
.add(journalNeedInitLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(deviceSignatureLabel)
.add(deviceSignatureField0))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(deviceSignatureField1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(deviceSignatureField2)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(deviceSignatureField3)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(journalOffsetLabel)
.add(journalOffsetField))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(journalSizeLabel)
.add(journalSizeField))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(reservedLabel)
.add(reservedField0))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField2)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField3)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField4)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField5)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField6)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField7)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField8)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField9)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField10)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField11)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField12)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField13)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField14)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(reservedField15)
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel deviceSignatureField0;
private javax.swing.JLabel deviceSignatureField1;
private javax.swing.JLabel deviceSignatureField2;
private javax.swing.JLabel deviceSignatureField3;
private javax.swing.JLabel deviceSignatureLabel;
private javax.swing.JLabel flagsLabel;
private javax.swing.JCheckBox journalInFSBox;
private javax.swing.JLabel journalInFSLabel;
private javax.swing.JCheckBox journalNeedInitBox;
private javax.swing.JLabel journalNeedInitLabel;
private javax.swing.JLabel journalOffsetField;
private javax.swing.JLabel journalOffsetLabel;
private javax.swing.JCheckBox journalOnOtherDeviceBox;
private javax.swing.JLabel journalOnOtherDeviceLabel;
private javax.swing.JLabel journalSizeField;
private javax.swing.JLabel journalSizeLabel;
private javax.swing.JLabel reservedField0;
private javax.swing.JLabel reservedField1;
private javax.swing.JLabel reservedField10;
private javax.swing.JLabel reservedField11;
private javax.swing.JLabel reservedField12;
private javax.swing.JLabel reservedField13;
private javax.swing.JLabel reservedField14;
private javax.swing.JLabel reservedField15;
private javax.swing.JLabel reservedField2;
private javax.swing.JLabel reservedField3;
private javax.swing.JLabel reservedField4;
private javax.swing.JLabel reservedField5;
private javax.swing.JLabel reservedField6;
private javax.swing.JLabel reservedField7;
private javax.swing.JLabel reservedField8;
private javax.swing.JLabel reservedField9;
private javax.swing.JLabel reservedLabel;
// End of variables declaration//GEN-END:variables
}