Search in sources :

Example 1 with FilePathField

use of com.mucommander.ui.text.FilePathField in project mucommander by mucommander.

the class SplitFileDialog method initialize.

/**
 * Initializes the dialog.
 */
protected void initialize() {
    Container content = getContentPane();
    content.setLayout(new BorderLayout(0, 5));
    XAlignedComponentPanel pnlMain = new XAlignedComponentPanel(10);
    pnlMain.addRow(Translator.get("split_file_dialog.file_to_split") + ":", new JLabel(file.getName()), 0);
    String size = SizeFormat.format(file.getSize(), SizeFormat.DIGITS_FULL | SizeFormat.UNIT_LONG | SizeFormat.INCLUDE_SPACE);
    pnlMain.addRow(Translator.get("size") + ":", new JLabel(size), 10);
    edtTargetDirectory = new FilePathField(destFolder.getAbsolutePath(), 40);
    pnlMain.addRow(Translator.get("split_file_dialog.target_directory") + ":", edtTargetDirectory, 5);
    XBoxPanel pnlSize = new XBoxPanel();
    String[] sizes = new String[] { MSG_AUTO, "10 " + Translator.get("unit.mb"), "100 " + Translator.get("unit.mb"), "250 " + Translator.get("unit.mb"), "650 " + Translator.get("unit.mb"), "700 " + Translator.get("unit.mb") };
    edtSize = new JTextField();
    EditableComboBox cbSize = new EditableComboBox(edtSize, sizes);
    cbSize.setComboSelectionUpdatesTextField(true);
    cbSize.setSelectedIndex(1);
    edtSize.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent e) {
            updatePartsNumber();
        }
    });
    cbSize.addComboBoxListener(new ComboBoxListener() {

        public void comboBoxSelectionChanged(SaneComboBox source) {
            updatePartsNumber();
        }
    });
    pnlSize.add(cbSize);
    pnlSize.addSpace(10);
    pnlSize.add(new JLabel(Translator.get("split_file_dialog.parts") + ":"));
    pnlSize.addSpace(5);
    spnParts = new JSpinner(new SpinnerNumberModel(1, 1, file.getSize(), 1));
    spnParts.addChangeListener(new ChangeListener() {

        public void stateChanged(ChangeEvent e) {
            if (!edtChange) {
                long parts = ((Number) spnParts.getValue()).longValue();
                long newsize = file.getSize() / parts;
                if (file.getSize() % parts != 0) {
                    newsize++;
                }
                if (getBytes() != newsize) {
                    edtSize.setText(Long.toString(newsize));
                }
            }
        }
    });
    pnlSize.add(spnParts);
    pnlMain.addRow(Translator.get("split_file_dialog.part_size") + ":", pnlSize, 0);
    cbGenerateCRC = new JCheckBox(Translator.get("split_file_dialog.generate_CRC"));
    cbGenerateCRC.setSelected(true);
    pnlMain.addRow("", cbGenerateCRC, 0);
    content.add(pnlMain, BorderLayout.CENTER);
    content.add(getPnlButtons(), BorderLayout.SOUTH);
    getRootPane().setDefaultButton(btnSplit);
    updatePartsNumber();
}
Also used : KeyAdapter(java.awt.event.KeyAdapter) JLabel(javax.swing.JLabel) FilePathField(com.mucommander.ui.text.FilePathField) SaneComboBox(com.mucommander.commons.util.ui.combobox.SaneComboBox) JTextField(javax.swing.JTextField) EditableComboBox(com.mucommander.commons.util.ui.combobox.EditableComboBox) KeyEvent(java.awt.event.KeyEvent) SpinnerNumberModel(javax.swing.SpinnerNumberModel) JCheckBox(javax.swing.JCheckBox) Container(java.awt.Container) XAlignedComponentPanel(com.mucommander.commons.util.ui.layout.XAlignedComponentPanel) XBoxPanel(com.mucommander.commons.util.ui.layout.XBoxPanel) BorderLayout(java.awt.BorderLayout) ChangeEvent(javax.swing.event.ChangeEvent) ComboBoxListener(com.mucommander.commons.util.ui.combobox.ComboBoxListener) JSpinner(javax.swing.JSpinner) ChangeListener(javax.swing.event.ChangeListener)

Example 2 with FilePathField

use of com.mucommander.ui.text.FilePathField in project mucommander by mucommander.

the class PackDialog method itemStateChanged.

// ////////////////////////
// ItemListener methods //
// ////////////////////////
public void itemStateChanged(ItemEvent e) {
    int newFormatIndex;
    FilePathField pathField = getPathField();
    // Updates the GUI if, and only if, the format selection has changed.
    if (lastFormatIndex != (newFormatIndex = formatsComboBox.getSelectedIndex())) {
        // Name of the destination archive file.
        String fileName = pathField.getText();
        // Old/current format's extension
        String oldFormatExtension = Archiver.getFormatExtension(formats[lastFormatIndex]);
        if (fileName.endsWith("." + oldFormatExtension)) {
            int selectionStart;
            int selectionEnd;
            // Saves the old selection.
            selectionStart = pathField.getSelectionStart();
            selectionEnd = pathField.getSelectionEnd();
            // Computes the new file name.
            fileName = fileName.substring(0, fileName.length() - oldFormatExtension.length()) + Archiver.getFormatExtension(formats[newFormatIndex]);
            // Makes sure that the selection stays somewhat coherent.
            if (selectionEnd == pathField.getText().length())
                selectionEnd = fileName.length();
            // Resets the file path field.
            pathField.setText(fileName);
            pathField.setSelectionStart(selectionStart);
            pathField.setSelectionEnd(selectionEnd);
        }
        commentArea.setEnabled(Archiver.formatSupportsComment(formats[formatsComboBox.getSelectedIndex()]));
        lastFormatIndex = newFormatIndex;
    }
    // Transfer focus back to the text field
    pathField.requestFocus();
}
Also used : FilePathField(com.mucommander.ui.text.FilePathField)

Aggregations

FilePathField (com.mucommander.ui.text.FilePathField)2 ComboBoxListener (com.mucommander.commons.util.ui.combobox.ComboBoxListener)1 EditableComboBox (com.mucommander.commons.util.ui.combobox.EditableComboBox)1 SaneComboBox (com.mucommander.commons.util.ui.combobox.SaneComboBox)1 XAlignedComponentPanel (com.mucommander.commons.util.ui.layout.XAlignedComponentPanel)1 XBoxPanel (com.mucommander.commons.util.ui.layout.XBoxPanel)1 BorderLayout (java.awt.BorderLayout)1 Container (java.awt.Container)1 KeyAdapter (java.awt.event.KeyAdapter)1 KeyEvent (java.awt.event.KeyEvent)1 JCheckBox (javax.swing.JCheckBox)1 JLabel (javax.swing.JLabel)1 JSpinner (javax.swing.JSpinner)1 JTextField (javax.swing.JTextField)1 SpinnerNumberModel (javax.swing.SpinnerNumberModel)1 ChangeEvent (javax.swing.event.ChangeEvent)1 ChangeListener (javax.swing.event.ChangeListener)1