FileDocCategorySizeDatePackage
TextModePanel.javaAPI DocExample2909Wed Feb 15 06:24:52 GMT 2006None

TextModePanel.java

import java.awt.*;
import javax.swing.*;
import java.nio.charset.*;
import java.util.*;

public class TextModePanel extends JPanel {

  JCheckBox bigEndian = new JCheckBox("Big Endian", true);
  JCheckBox deflated  = new JCheckBox("Deflated", false);
  JCheckBox gzipped   = new JCheckBox("GZipped", false);
  
  ButtonGroup dataTypes     = new ButtonGroup();
  JRadioButton asciiRadio   = new JRadioButton("Text");
  JRadioButton decimalRadio = new JRadioButton("Decimal");
  JRadioButton hexRadio     = new JRadioButton("Hexadecimal");
  JRadioButton shortRadio   = new JRadioButton("Short");
  JRadioButton intRadio     = new JRadioButton("Int");
  JRadioButton longRadio    = new JRadioButton("Long");
  JRadioButton floatRadio   = new JRadioButton("Float");
  JRadioButton doubleRadio  = new JRadioButton("Double");
  
  JTextField password = new JPasswordField();
  JList encodings = new JList();
  
  public TextModePanel() {

    Map charsets = Charset.availableCharsets();
    encodings.setListData(charsets.keySet().toArray());
    
    this.setLayout(new GridLayout(1, 2));
    
    JPanel left = new JPanel();
    JScrollPane right = new JScrollPane(encodings);
    left.setLayout(new GridLayout(13, 1));
    left.add(bigEndian);
    left.add(deflated);
    left.add(gzipped);
    
    left.add(asciiRadio);
    asciiRadio.setSelected(true);
    left.add(decimalRadio);
    left.add(hexRadio);
    left.add(shortRadio);
    left.add(intRadio);
    left.add(longRadio);
    left.add(floatRadio);
    left.add(doubleRadio);
    
    dataTypes.add(asciiRadio);
    dataTypes.add(decimalRadio);
    dataTypes.add(hexRadio);
    dataTypes.add(shortRadio);
    dataTypes.add(intRadio);
    dataTypes.add(longRadio);
    dataTypes.add(floatRadio);
    dataTypes.add(doubleRadio);
    
    left.add(password);
    this.add(left);
    this.add(right);
  }

  public boolean isBigEndian() {
    return bigEndian.isSelected();
  }
  
  public boolean isDeflated() {
    return deflated.isSelected();
  }
  
  public boolean isGZipped() {
    return gzipped.isSelected();
  }
  
  public boolean isText() {
    if (this.getMode() == FileDumper6.ASC) return true;
    return false;
  }
  
  public String getEncoding() {
    return (String) encodings.getSelectedValue();
  }
  
  public int getMode() {

    if (asciiRadio.isSelected()) return FileDumper6.ASC;
    else if (decimalRadio.isSelected()) return FileDumper6.DEC;
    else if (hexRadio.isSelected()) return FileDumper6.HEX;
    else if (shortRadio.isSelected()) return FileDumper6.SHORT;
    else if (intRadio.isSelected()) return FileDumper6.INT;
    else if (longRadio.isSelected()) return FileDumper6.LONG;
    else if (floatRadio.isSelected()) return FileDumper6.FLOAT;
    else if (doubleRadio.isSelected()) return FileDumper6.DOUBLE;
    else return FileDumper6.ASC;
  }
  
  public String getPassword() {
    return password.getText();
  }
}