Added FileChooser + externalisation
This commit is contained in:
parent
f3fa3a8691
commit
e52c320b59
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Didier Clermonté <dclermonte@april.org>
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Didier Clermonté <dclermonte@april.org>
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Didier Clermonté <dclermonte@april.org>
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Didier Clermonté <dclermonte@april.org>
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
@ -21,6 +21,7 @@ package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Component;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.File;
|
||||
@ -29,9 +30,7 @@ import java.util.ResourceBundle;
|
||||
|
||||
import javax.swing.Box;
|
||||
import javax.swing.BoxLayout;
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
@ -48,10 +47,16 @@ import com.jgoodies.forms.layout.RowSpec;
|
||||
|
||||
public class BackupPanel extends JPanel
|
||||
{
|
||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 4714383090458639282L;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$
|
||||
private JTextField textField;
|
||||
public JTextField textField_1;
|
||||
private final ButtonGroup buttonGroup = new ButtonGroup();
|
||||
private JTextField textField_1;
|
||||
|
||||
/**
|
||||
* Create the panel.
|
||||
@ -59,6 +64,7 @@ public class BackupPanel extends JPanel
|
||||
|
||||
public BackupPanel()
|
||||
{
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
setLayout(new BorderLayout(0, 0));
|
||||
|
||||
JPanel panel_4 = new JPanel();
|
||||
@ -67,9 +73,6 @@ public class BackupPanel extends JPanel
|
||||
JLabel lblNewLabel_2 = new JLabel(BUNDLE.getString("BackupPanel.lblNewLabel_2.text")); //$NON-NLS-1$
|
||||
panel_4.add(lblNewLabel_2);
|
||||
|
||||
JLabel lblLeRepertoire = new JLabel(BUNDLE.getString("BackupPanel.lblLeRepertoire.text")); //$NON-NLS-1$
|
||||
panel_4.add(lblLeRepertoire);
|
||||
|
||||
JPanel panel = new JPanel();
|
||||
add(panel);
|
||||
panel.setLayout(new FormLayout(
|
||||
@ -90,20 +93,18 @@ public class BackupPanel extends JPanel
|
||||
this.textField.setColumns(10);
|
||||
|
||||
JButton btnNewButton = new JButton(BUNDLE.getString("BackupPanel.btnNewButton.text")); //$NON-NLS-1$
|
||||
btnNewButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
btnNewButton.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent e)
|
||||
{
|
||||
final JFileChooser fc = new JFileChooser();
|
||||
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
int returnVal = fc.showDialog(BackupPanel.this,
|
||||
BUNDLE.getString("BackupPanel.sourceFileChooserButton.text"));
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||
File file = SourceDirectorySelector.showSelectorDialog(null, null);
|
||||
if (file == null)
|
||||
{
|
||||
File file = fc.getSelectedFile();
|
||||
BackupPanel.this.textField.setText(file.getPath());
|
||||
return;
|
||||
}
|
||||
BackupPanel.this.textField.setText(file.getPath());
|
||||
}
|
||||
});
|
||||
panel.add(btnNewButton, "6, 2");
|
||||
@ -118,20 +119,20 @@ public class BackupPanel extends JPanel
|
||||
this.textField_1.setColumns(10);
|
||||
|
||||
JButton btnNewButton_1 = new JButton(BUNDLE.getString("BackupPanel.btnNewButton_1.text")); //$NON-NLS-1$
|
||||
btnNewButton_1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
btnNewButton_1.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent e)
|
||||
{
|
||||
final JFileChooser fc1 = new JFileChooser();
|
||||
fc1.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
int returnVal = fc1.showDialog(BackupPanel.this,
|
||||
BUNDLE.getString("BackupPanel.targetFileChooserButton.text"));
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||
|
||||
File file = TargetDirectorySelector.showSelectorDialog(null, null);
|
||||
if (file == null)
|
||||
{
|
||||
File file = fc1.getSelectedFile();
|
||||
BackupPanel.this.textField_1.setText(file.getPath());
|
||||
return;
|
||||
}
|
||||
BackupPanel.this.textField_1.setText(file.getPath());
|
||||
|
||||
}
|
||||
});
|
||||
panel.add(btnNewButton_1, "6, 4");
|
||||
@ -139,6 +140,7 @@ public class BackupPanel extends JPanel
|
||||
btnNewButton_1.setHorizontalAlignment(SwingConstants.RIGHT);
|
||||
|
||||
JPanel panel_2 = new JPanel();
|
||||
|
||||
add(panel_2, BorderLayout.SOUTH);
|
||||
panel_2.setLayout(new BoxLayout(panel_2, BoxLayout.Y_AXIS));
|
||||
|
||||
@ -153,6 +155,7 @@ public class BackupPanel extends JPanel
|
||||
panel_1.add(horizontalGlue);
|
||||
|
||||
JButton btnNewButton_2 = new JButton(BUNDLE.getString("BackupPanel.btnNewButton_2.text")); //$NON-NLS-1$
|
||||
btnNewButton_2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
panel_1.add(btnNewButton_2);
|
||||
|
||||
Component horizontalGlue_1 = Box.createHorizontalGlue();
|
||||
@ -169,8 +172,13 @@ public class BackupPanel extends JPanel
|
||||
{
|
||||
File output1 = SibaManager.backup(new File(BackupPanel.this.textField.getText()),
|
||||
BackupPanel.this.textField_1.getText());
|
||||
String message = "Votre répertoire a été sauvegardé \n dans le fichier :\n " + output1.getName();
|
||||
JOptionPane.showMessageDialog(null, message, "Sauvegarde faite", JOptionPane.INFORMATION_MESSAGE);
|
||||
if (output1 == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
String message = BUNDLE.getString("BackupPanel.confirmDialogMessage.text") + output1.getName();
|
||||
String titre = BUNDLE.getString("BackupPanel.confirmDialogTitle.text");
|
||||
JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE);
|
||||
}
|
||||
catch (ArchiveException | IOException e1)
|
||||
{
|
||||
|
@ -1,99 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
* Siba is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero 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 Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
|
||||
public class CheckDialog extends JDialog
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5266741894791360568L;
|
||||
public static Object lblNewLabel;
|
||||
public static String message;
|
||||
|
||||
/**
|
||||
* Launch the application.
|
||||
*/
|
||||
public static void main(final String string)
|
||||
{
|
||||
message = string;
|
||||
try
|
||||
{
|
||||
CheckDialog dialog = new CheckDialog();
|
||||
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
||||
dialog.setVisible(true);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private final JPanel contentPanel = new JPanel();
|
||||
|
||||
/**
|
||||
* Create the dialog.
|
||||
*/
|
||||
public CheckDialog()
|
||||
{
|
||||
setBounds(100, 100, 450, 300);
|
||||
getContentPane().setLayout(new BorderLayout());
|
||||
this.contentPanel.setLayout(new FlowLayout());
|
||||
this.contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
|
||||
getContentPane().add(this.contentPanel, BorderLayout.CENTER);
|
||||
{
|
||||
JLabel lblNewLabel = new JLabel(message);
|
||||
this.contentPanel.add(lblNewLabel);
|
||||
}
|
||||
{
|
||||
JPanel buttonPane = new JPanel();
|
||||
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
|
||||
getContentPane().add(buttonPane, BorderLayout.SOUTH);
|
||||
{
|
||||
JButton okButton = new JButton("OK");
|
||||
okButton.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
public void actionPerformed(final ActionEvent e)
|
||||
{
|
||||
setVisible(false);
|
||||
dispose();
|
||||
}
|
||||
});
|
||||
okButton.setActionCommand("OK");
|
||||
buttonPane.add(okButton);
|
||||
getRootPane().setDefaultButton(okButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
138
src/org/dclermonte/siba/gui/CheckDirectorySelector.java
Normal file
138
src/org/dclermonte/siba/gui/CheckDirectorySelector.java
Normal file
@ -0,0 +1,138 @@
|
||||
package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.io.File;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
public class CheckDirectorySelector extends JFileChooser
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
|
||||
*/
|
||||
{
|
||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$
|
||||
private static final long serialVersionUID = 3782597353602048214L;
|
||||
|
||||
/**
|
||||
* This method is the main one of the selector.
|
||||
*
|
||||
* @param parent
|
||||
* @return
|
||||
*/
|
||||
public static File showSelectorDialog(final Component parent, final File targetFile)
|
||||
{
|
||||
File result;
|
||||
|
||||
//
|
||||
CheckDirectorySelector selector = new CheckDirectorySelector(targetFile);
|
||||
|
||||
//
|
||||
if (selector.showDialog(parent, null) == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
//
|
||||
result = selector.getSelectedFile();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
result = null;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public CheckDirectorySelector(final File targetFile)
|
||||
{
|
||||
super();
|
||||
setBackground(new Color(152, 251, 152));
|
||||
|
||||
//
|
||||
File file;
|
||||
if ((targetFile == null) || (StringUtils.isBlank(targetFile.getAbsolutePath())))
|
||||
{
|
||||
file = null;
|
||||
|
||||
}
|
||||
else if (targetFile.isFile())
|
||||
{
|
||||
file = targetFile.getParentFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
file = targetFile;
|
||||
}
|
||||
|
||||
//
|
||||
setSelectedFile(file);
|
||||
setDialogTitle(BUNDLE.getString("CheckDirectorySelector.this.dialogTitle")); //$NON-NLS-1$
|
||||
setFileSelectionMode(JFileChooser.FILES_ONLY);
|
||||
FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichiers md5", "md5");
|
||||
setAcceptAllFileFilterUsed(false);
|
||||
addChoosableFileFilter(filter);
|
||||
setApproveButtonText(BackupPanel.BUNDLE.getString("BackupPanel.checkFileChooserButton.text"));
|
||||
setDialogType(CUSTOM_DIALOG);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void approveSelection()
|
||||
{
|
||||
//
|
||||
// File targetFile = getSelectedFile();
|
||||
|
||||
super.approveSelection();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void cancelSelection()
|
||||
{
|
||||
//
|
||||
super.cancelSelection();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void setSelectedFile(final File file)
|
||||
{
|
||||
//
|
||||
super.setSelectedFile(file);
|
||||
|
||||
System.out.println("==== SET SELECTED FILE=================");
|
||||
System.out.println("SELECED FILE " + file);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void setVisible(final boolean visible)
|
||||
{
|
||||
//
|
||||
super.setVisible(visible);
|
||||
|
||||
if (!visible)
|
||||
{
|
||||
//
|
||||
resetChoosableFileFilters();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Didier Clermonté <dclermonte@april.org>
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
@ -19,6 +19,7 @@
|
||||
*/
|
||||
package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.Cursor;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.File;
|
||||
@ -27,20 +28,19 @@ import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
|
||||
import com.jgoodies.forms.layout.ColumnSpec;
|
||||
import com.jgoodies.forms.layout.FormLayout;
|
||||
import com.jgoodies.forms.layout.FormSpecs;
|
||||
import com.jgoodies.forms.layout.RowSpec;
|
||||
import com.jgoodies.forms.layout.Sizes;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -76,6 +76,7 @@ public class CheckPanel extends JPanel
|
||||
add(lblNewLabel, "2, 2, left, center");
|
||||
|
||||
JButton btnNewButton = new JButton(BUNDLE.getString("CheckPanel.btnNewButton.text")); //$NON-NLS-1$
|
||||
btnNewButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
btnNewButton.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
@ -104,6 +105,7 @@ public class CheckPanel extends JPanel
|
||||
add(btnNewButton, "4, 2, left, top");
|
||||
|
||||
JButton btnNewButton_1 = new JButton(BUNDLE.getString("CheckPanel.btnNewButton_1.text")); //$NON-NLS-1$
|
||||
btnNewButton_1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
btnNewButton_1.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
@ -176,15 +178,20 @@ public class CheckPanel extends JPanel
|
||||
hashString.append(hex.substring(hex.length() - 2));
|
||||
}
|
||||
}
|
||||
|
||||
String titre = BUNDLE.getString("CheckPanel.confirmDialogTitle.text");
|
||||
String yourFile = BUNDLE.getString("CheckPanel.confirmDialogYourString.text");
|
||||
if (md5String.equals(hashString.toString()))
|
||||
{
|
||||
CheckDialog.main("Vérification OK");
|
||||
String message = yourFile + fileToCheck1.getName() + " "
|
||||
+ BUNDLE.getString("CheckPanel.confirmDialogGood.text");
|
||||
JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckDialog.main("Il y a une erreur");
|
||||
String message = yourFile + fileToCheck1.getName() + " "
|
||||
+ BUNDLE.getString("CheckPanel.confirmDialogBad.text");
|
||||
JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -195,19 +202,14 @@ public class CheckPanel extends JPanel
|
||||
*/
|
||||
final void choosenDirectory() throws IOException, NoSuchAlgorithmException
|
||||
{
|
||||
final JFileChooser fc = new JFileChooser();
|
||||
FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichiers md5", "md5");
|
||||
fc.setAcceptAllFileFilterUsed(false);
|
||||
fc.addChoosableFileFilter(filter);
|
||||
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
|
||||
|
||||
int returnVal = fc.showDialog(CheckPanel.this, "Sauvegarde à vérifier");
|
||||
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION)
|
||||
this.choosenFile = CheckDirectorySelector.showSelectorDialog(null, null);
|
||||
if (this.choosenFile == null)
|
||||
{
|
||||
this.choosenFile = fc.getSelectedFile();
|
||||
this.textField.setText(this.choosenFile.getName());
|
||||
return;
|
||||
}
|
||||
this.textField.setText(this.choosenFile.getName());
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,9 +22,11 @@ package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Font;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.Locale;
|
||||
@ -37,13 +39,36 @@ import javax.swing.JMenuItem;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTabbedPane;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.UnsupportedLookAndFeelException;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dclermonte.siba.gui.utils.GUIToolBox;
|
||||
|
||||
public class SibaGUI
|
||||
{
|
||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$
|
||||
|
||||
public static void main(final String[] args)
|
||||
{
|
||||
EventQueue.invokeLater(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
SibaGUI window = new SibaGUI();
|
||||
window.frmSimpleBackup.setVisible(true);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Launch the application.
|
||||
@ -54,8 +79,14 @@ public class SibaGUI
|
||||
|
||||
/**
|
||||
* Create the application.
|
||||
*
|
||||
* @throws UnsupportedLookAndFeelException
|
||||
* @throws IllegalAccessException
|
||||
* @throws InstantiationException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public SibaGUI()
|
||||
public SibaGUI() throws ClassNotFoundException, InstantiationException, IllegalAccessException,
|
||||
UnsupportedLookAndFeelException
|
||||
{
|
||||
// Set default GUI catch.
|
||||
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler()
|
||||
@ -69,9 +100,7 @@ public class SibaGUI
|
||||
String message;
|
||||
if (exception instanceof OutOfMemoryError)
|
||||
{
|
||||
message = "Java ran out of memory!\n\n To fix this problem, run GeneaQuilts from the command "
|
||||
+ "line:\njava -jar -Xms256m geneaquilt-x.x.x.jar\n\nIf you still "
|
||||
+ "get the same error, increase the value 256 above.";
|
||||
message = "Java ran out of memory!\n\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -116,6 +145,7 @@ public class SibaGUI
|
||||
System.out.println("Failed to set the system LookAndFeel.");
|
||||
}
|
||||
}
|
||||
/* UIManager.setLookAndFeel("com.sun.java.swing.plaf.metal.MetalLookAndFeel"); */
|
||||
System.out.println("Activated lookAndFeel: " + UIManager.getLookAndFeel().getName());
|
||||
|
||||
// Set default locale.
|
||||
@ -132,19 +162,24 @@ public class SibaGUI
|
||||
private void initialize()
|
||||
{
|
||||
this.frmSimpleBackup = new JFrame();
|
||||
this.frmSimpleBackup.getContentPane().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
this.frmSimpleBackup.setMinimumSize(new Dimension(600, 400));
|
||||
this.frmSimpleBackup.getContentPane().setBackground(new Color(173, 255, 47));
|
||||
|
||||
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
|
||||
tabbedPane.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
this.frmSimpleBackup.getContentPane().add(tabbedPane, BorderLayout.CENTER);
|
||||
|
||||
JPanel panel = new BackupPanel();
|
||||
panel.setBackground(new Color(152, 251, 152));
|
||||
tabbedPane.addTab("BackUp", null, panel, null);
|
||||
panel.setBackground(new Color(0, 255, 0));
|
||||
String backup = BackupPanel.BUNDLE.getString("BackupPanel.TitleBackupPanel.text");
|
||||
tabbedPane.addTab(backup, null, panel, null);
|
||||
|
||||
JPanel panel_1 = new CheckPanel();
|
||||
panel_1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
panel_1.setBackground(new Color(144, 238, 144));
|
||||
tabbedPane.addTab("Check", null, panel_1, null);
|
||||
String check = BackupPanel.BUNDLE.getString("BackupPanel.TitleCheckPanel.text");
|
||||
tabbedPane.addTab(check, null, panel_1, null);
|
||||
this.frmSimpleBackup.setFont(new Font("DejaVu Sans", Font.BOLD, 12));
|
||||
this.frmSimpleBackup.setForeground(new Color(0, 100, 0));
|
||||
this.frmSimpleBackup.setBackground(new Color(102, 205, 170));
|
||||
@ -153,9 +188,14 @@ public class SibaGUI
|
||||
this.frmSimpleBackup.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
JMenuBar menuBar = new JMenuBar();
|
||||
menuBar.setBackground(new Color(152, 251, 152));
|
||||
this.frmSimpleBackup.setJMenuBar(menuBar);
|
||||
|
||||
JMenuItem mntmNewMenuItem_1 = new JMenuItem("Sortir");
|
||||
JMenuItem mntmNewMenuItem_1 = new JMenuItem(BUNDLE.getString("SibaGUI.mntmNewMenuItem_1.text")); //$NON-NLS-1$
|
||||
mntmNewMenuItem_1.setMaximumSize(new Dimension(100, 32767));
|
||||
mntmNewMenuItem_1.setHorizontalTextPosition(SwingConstants.LEFT);
|
||||
mntmNewMenuItem_1.setHorizontalAlignment(SwingConstants.LEFT);
|
||||
mntmNewMenuItem_1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
mntmNewMenuItem_1.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
@ -166,12 +206,18 @@ public class SibaGUI
|
||||
});
|
||||
menuBar.add(mntmNewMenuItem_1);
|
||||
|
||||
JMenu mnNewMenu = new JMenu("Help");
|
||||
JMenu mnNewMenu = new JMenu(BUNDLE.getString("SibaGUI.mnNewMenu.text")); //$NON-NLS-1$
|
||||
mnNewMenu.setLocation(new Point(500, 0));
|
||||
mnNewMenu.setHorizontalTextPosition(SwingConstants.RIGHT);
|
||||
mnNewMenu.setHorizontalAlignment(SwingConstants.RIGHT);
|
||||
mnNewMenu.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
mnNewMenu.setForeground(new Color(0, 0, 0));
|
||||
mnNewMenu.setBackground(new Color(127, 255, 212));
|
||||
mnNewMenu.setOpaque(true);
|
||||
menuBar.add(mnNewMenu);
|
||||
|
||||
JMenuItem mntmNewMenuItem_2 = new JMenuItem("About");
|
||||
JMenuItem mntmNewMenuItem_2 = new JMenuItem(BUNDLE.getString("SibaGUI.mntmNewMenuItem_2.text")); //$NON-NLS-1$
|
||||
mntmNewMenuItem_2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
mntmNewMenuItem_2.addActionListener(new ActionListener()
|
||||
{
|
||||
@Override
|
||||
@ -201,24 +247,4 @@ public class SibaGUI
|
||||
ResourceBundle.clearCache();
|
||||
}
|
||||
|
||||
public static void main(final String[] args)
|
||||
{
|
||||
EventQueue.invokeLater(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
SibaGUI window = new SibaGUI();
|
||||
window.frmSimpleBackup.setVisible(true);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,11 +1,13 @@
|
||||
package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.io.File;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -13,14 +15,46 @@ import org.apache.commons.lang3.StringUtils;
|
||||
*/
|
||||
public class SourceDirectorySelector extends JFileChooser
|
||||
{
|
||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$
|
||||
private static final long serialVersionUID = 3782597353602048214L;
|
||||
|
||||
/**
|
||||
* This method is the main one of the selector.
|
||||
*
|
||||
* @param parent
|
||||
* @return
|
||||
*/
|
||||
public static File showSelectorDialog(final Component parent, final File targetFile)
|
||||
{
|
||||
File result;
|
||||
|
||||
//
|
||||
SourceDirectorySelector selector = new SourceDirectorySelector(targetFile);
|
||||
|
||||
//
|
||||
if (selector.showDialog(parent, null) == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
//
|
||||
result = selector.getSelectedFile();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
result = null;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public SourceDirectorySelector(final File targetFile)
|
||||
{
|
||||
super();
|
||||
setBackground(new Color(152, 251, 152));
|
||||
|
||||
//
|
||||
File file;
|
||||
@ -40,10 +74,10 @@ public class SourceDirectorySelector extends JFileChooser
|
||||
|
||||
//
|
||||
setSelectedFile(file);
|
||||
setDialogTitle("Database directory");
|
||||
setDialogTitle(BUNDLE.getString("SourceDirectorySelector.this.dialogTitle")); //$NON-NLS-1$
|
||||
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
setAcceptAllFileFilterUsed(false);
|
||||
setApproveButtonText("Select");
|
||||
setApproveButtonText(BackupPanel.BUNDLE.getString("BackupPanel.sourceFileChooserButton.text"));
|
||||
setDialogType(CUSTOM_DIALOG);
|
||||
}
|
||||
|
||||
@ -97,34 +131,4 @@ public class SourceDirectorySelector extends JFileChooser
|
||||
resetChoosableFileFilters();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is the main one of the selector.
|
||||
*
|
||||
* @param parent
|
||||
* @return
|
||||
*/
|
||||
public static File showSelectorDialog(final Component parent, final File targetFile)
|
||||
{
|
||||
File result;
|
||||
|
||||
//
|
||||
SourceDirectorySelector selector = new SourceDirectorySelector(targetFile);
|
||||
|
||||
//
|
||||
if (selector.showDialog(parent, null) == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
//
|
||||
result = selector.getSelectedFile();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
result = null;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
}
|
134
src/org/dclermonte/siba/gui/TargetDirectorySelector.java
Normal file
134
src/org/dclermonte/siba/gui/TargetDirectorySelector.java
Normal file
@ -0,0 +1,134 @@
|
||||
package org.dclermonte.siba.gui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Component;
|
||||
import java.io.File;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Christian Pierre MOMON (christian.momon@devinsy.fr)
|
||||
*/
|
||||
public class TargetDirectorySelector extends JFileChooser
|
||||
{
|
||||
private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$
|
||||
private static final long serialVersionUID = 3782597353602048214L;
|
||||
|
||||
/**
|
||||
* This method is the main one of the selector.
|
||||
*
|
||||
* @param parent
|
||||
* @return
|
||||
*/
|
||||
public static File showSelectorDialog(final Component parent, final File targetFile)
|
||||
{
|
||||
File result;
|
||||
|
||||
//
|
||||
TargetDirectorySelector selector = new TargetDirectorySelector(targetFile);
|
||||
|
||||
//
|
||||
if (selector.showDialog(parent, null) == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
//
|
||||
result = selector.getSelectedFile();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
result = null;
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public TargetDirectorySelector(final File targetFile)
|
||||
{
|
||||
super();
|
||||
setBackground(new Color(152, 251, 152));
|
||||
|
||||
//
|
||||
File file;
|
||||
if ((targetFile == null) || (StringUtils.isBlank(targetFile.getAbsolutePath())))
|
||||
{
|
||||
file = null;
|
||||
|
||||
}
|
||||
else if (targetFile.isFile())
|
||||
{
|
||||
file = targetFile.getParentFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
file = targetFile;
|
||||
}
|
||||
|
||||
//
|
||||
setSelectedFile(file);
|
||||
setDialogTitle(BUNDLE.getString("TargetDirectorySelector.this.dialogTitle")); //$NON-NLS-1$
|
||||
setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||
setAcceptAllFileFilterUsed(false);
|
||||
setApproveButtonText(BackupPanel.BUNDLE.getString("BackupPanel.targetFileChooserButton.text"));
|
||||
setDialogType(CUSTOM_DIALOG);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void approveSelection()
|
||||
{
|
||||
//
|
||||
// File targetFile = getSelectedFile();
|
||||
|
||||
super.approveSelection();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void cancelSelection()
|
||||
{
|
||||
//
|
||||
super.cancelSelection();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void setSelectedFile(final File file)
|
||||
{
|
||||
//
|
||||
super.setSelectedFile(file);
|
||||
|
||||
System.out.println("==== SET SELECTED FILE=================");
|
||||
System.out.println("SELECED FILE " + file);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void setVisible(final boolean visible)
|
||||
{
|
||||
//
|
||||
super.setVisible(visible);
|
||||
|
||||
if (!visible)
|
||||
{
|
||||
//
|
||||
resetChoosableFileFilters();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,17 +1,28 @@
|
||||
#Field ResourceBundle: BUNDLE
|
||||
#Thu Apr 21 22:53:27 CEST 2016
|
||||
#Tue Apr 26 16:39:35 CEST 2016
|
||||
BackupPanel.TitleBackupPanel.text=Backup
|
||||
BackupPanel.TitleCheckPanel.text=Check
|
||||
BackupPanel.btnNewButton.text=\u2026
|
||||
BackupPanel.btnNewButton_1.text=\u2026
|
||||
BackupPanel.btnNewButton_2.text=Backup
|
||||
BackupPanel.lblLeRepertoire.text=- le repertoire \u00E0 compresser
|
||||
BackupPanel.lblNewLabel_1.text=Date Format
|
||||
BackupPanel.lblNewLabel_2.text=<html><p style\="margin-bottom\: 0cm; line-height\: 100%">Choisissez \:</p><p style\="margin-bottom\: 0cm; line-height\: 100%">- 1 \: le r\u00E9pertoire que vous souhaitez sauvegarder</p><p style\="margin-bottom\: 0cm; line-height\: 100%">- 2 \: le r\u00E9pertoire dans lequel vous souhaitez placer la sauvegarde</p><p style\="margin-bottom\: 0cm; line-height\: 100%">- 3 \: Cliquez sur Backup</p></html>
|
||||
BackupPanel.lblSourceDirectory.text=Source Directory
|
||||
BackupPanel.lblTargetDirectory.text=Target Directory
|
||||
BackupPanel.rdbtnNewRadioButton.text=(iso8601) YYYY-MM-dd
|
||||
BackupPanel.rdbtnNewRadioButton_1.text=Human
|
||||
BackupPanel.lblNewLabel_2.text=<html><p style\="margin-bottom\: 0cm; line-height\: 100%">Choose \:</p><p style\="margin-bottom\: 0cm; line-height\: 100%">- 1 \: The directory to backup</p><p style\="margin-bottom\: 0cm; line-height\: 100%">- 2 \: The directory where you want to put the backup</p><p style\="margin-bottom\: 0cm; line-height\: 100%">- 3 \: Click Backup</p></html>
|
||||
BackupPanel.lblSourceDirectory.text=Source Directory :
|
||||
BackupPanel.lblTargetDirectory.text=Target Directory :
|
||||
BackupPanel.sourceFileChooserButton.text=Source Directory
|
||||
BackupPanel.targetFileChooserButton.text=Target Directory
|
||||
CheckPanel.btnNewButton.text=...
|
||||
CheckDirectorySelector.this.dialogTitle=Directory where is the backup
|
||||
CheckPanel.btnNewButton.text=\u2026
|
||||
CheckPanel.btnNewButton_1.text=Check
|
||||
CheckPanel.lblNewLabel.text=Sauvegarde \u00E0 v\u00E9rifier
|
||||
CheckPanel.lblNewLabel.text=File to be Checked
|
||||
SibaGUI.mnNewMenu.text=Help
|
||||
SibaGUI.mntmNewMenuItem_1.text=End
|
||||
SibaGUI.mntmNewMenuItem_2.text=About
|
||||
SourceDirectorySelector.this.dialogTitle=Directory to backup
|
||||
TargetDirectorySelector.this.dialogTitle=Directory for the backup
|
||||
BackupPanel.checkFileChooserButton.text= File to check
|
||||
BackupPanel.confirmDialogTitle.text = Backup done
|
||||
BackupPanel.confirmDialogMessage.text = Your directory has been backup \n in the file :\n
|
||||
CheckPanel.confirmDialogTitle.text = Check done
|
||||
CheckPanel.confirmDialogYourString.text = Your File
|
||||
CheckPanel.confirmDialogGood.text = has been check and is good
|
||||
CheckPanel.confirmDialogBad.text = is corrupted
|
@ -2,17 +2,27 @@
|
||||
#Tue Apr 19 12:21:42 CEST 2016
|
||||
BackupPanel.btnNewButton.text=\u2026
|
||||
BackupPanel.btnNewButton_1.text=\u2026
|
||||
BackupPanel.btnNewButton_2.text=Backup
|
||||
BackupPanel.lblLeRepertoire.text=- le repertoire \u00E0 compresser
|
||||
BackupPanel.lblSourceDirectory.text=Répertoire origine
|
||||
BackupPanel.lblNewLabel_1.text=Date Format
|
||||
BackupPanel.lblNewLabel_2.text=<html><p style="margin-bottom: 0cm; line-height: 100%">Choisissez :</p><p style="margin-bottom: 0cm; line-height: 100%">- 1 : le répertoire que vous souhaitez sauvegarder</p><p style="margin-bottom: 0cm; line-height: 100%">- 2 : le répertoire dans lequel vous souhaitez placer la sauvegarde</p><p style="margin-bottom: 0cm; line-height: 100%">- 3 : Cliquez sur Backup</p></html>
|
||||
BackupPanel.lblSourceDirectory.text=Répertoire origine
|
||||
BackupPanel.lblTargetDirectory.text=Répertoire de destination
|
||||
BackupPanel.rdbtnNewRadioButton.text=(iso8601) YYYY-MM-dd
|
||||
BackupPanel.rdbtnNewRadioButton_1.text=Human
|
||||
BackupPanel.sourceFileChooserButton.text=Source Directory
|
||||
BackupPanel.targetFileChooserButton.text=Target Directory
|
||||
CheckPanel.btnNewButton.text=...
|
||||
BackupPanel.btnNewButton_2.text=Sauvegarde
|
||||
BackupPanel.lblNewLabel_2.text=<html><p style="margin-bottom: 0cm; line-height: 100%">Choisissez :</p><p style="margin-bottom: 0cm; line-height: 100%">- 1 : le répertoire que vous souhaitez sauvegarder</p><p style="margin-bottom: 0cm; line-height: 100%">- 2 : le répertoire dans lequel vous souhaitez placer la sauvegarde</p><p style="margin-bottom: 0cm; line-height: 100%">- 3 : Cliquez sur Sauvegarde</p></html>
|
||||
BackupPanel.lblSourceDirectory.text=Répertoire \u00E0 sauvegarder :
|
||||
BackupPanel.lblTargetDirectory.text=Répertoire de destination :
|
||||
BackupPanel.sourceFileChooserButton.text= Répertoire à sauvegarder
|
||||
BackupPanel.targetFileChooserButton.text=Répertoire destination
|
||||
BackupPanel.TitleCheckPanel.text = Vérification
|
||||
BackupPanel.TitleBackupPanel.text = Sauvegarde
|
||||
CheckDirectorySelector.this.dialogTitle=Emplacement de la sauvegarde
|
||||
CheckPanel.btnNewButton.text=\u2026
|
||||
CheckPanel.btnNewButton_1.text=Vérifier
|
||||
CheckPanel.lblNewLabel.text=Sauvegarde \u00E0 v\u00E9rifier
|
||||
SibaGUI.mnNewMenu.text=Aide
|
||||
SibaGUI.mntmNewMenuItem_1.text=Sortir
|
||||
SibaGUI.mntmNewMenuItem_2.text=A propos
|
||||
SourceDirectorySelector.this.dialogTitle=Choix du répertoire à sauvegarder
|
||||
TargetDirectorySelector.this.dialogTitle=Choix du répertoire de destination
|
||||
BackupPanel.checkFileChooserButton.text= Fichier à vérifier
|
||||
BackupPanel.confirmDialogTitle.text = Sauvegarde faite
|
||||
BackupPanel.confirmDialogMessage.text = Votre répertoire a été sauvegardé \n dans le fichier :\n
|
||||
CheckPanel.confirmDialogTitle.text = Vérification faite
|
||||
CheckPanel.confirmDialogYourString.text = Votre fichier
|
||||
CheckPanel.confirmDialogGood.text = a été vérifié et ne comporte pas d'erreurs
|
||||
CheckPanel.confirmDialogBad.text = comporte des erreurs
|
@ -1 +0,0 @@
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2016 Didier Clermonté <dclermonte@april.org>
|
||||
* Copyright (C) 2016 Christian Pierre Momon <christian.momon@devinsy.fr>
|
||||
* Didier Clermonté <dclermonte@april.org>
|
||||
*
|
||||
* This file is part of Siba.
|
||||
*
|
||||
@ -19,6 +19,7 @@
|
||||
*/
|
||||
package org.dclermonte.siba.model;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
@ -35,10 +36,10 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.compress.archivers.ArchiveException;
|
||||
import org.apache.commons.compress.archivers.ArchiveOutputStream;
|
||||
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
|
||||
import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
|
||||
import org.apache.commons.compress.utils.IOUtils;
|
||||
|
||||
@ -46,40 +47,37 @@ public class SibaManager
|
||||
{
|
||||
public static int pathLength;
|
||||
|
||||
public static File backup(final File toto, final String target) throws ArchiveException, IOException
|
||||
public static File backup(final File fileToSave, final String target) throws ArchiveException, IOException
|
||||
{
|
||||
File result;
|
||||
|
||||
pathLength = toto.getParentFile().getAbsolutePath().length();
|
||||
if ((fileToSave == null) || (new File(target) == null))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
pathLength = fileToSave.getParentFile().getAbsolutePath().length();
|
||||
|
||||
/* String outputFileNameWithoutExtension = toto.getName()+"-"+ LocalDateTime.now(); */
|
||||
LocalDateTime date = LocalDateTime.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'H'h'm'mn's's'");
|
||||
String text = date.format(formatter);
|
||||
String outputFileNameWithoutExtension = toto.getName() + "-" + text;
|
||||
String outputFileName = outputFileNameWithoutExtension + ".tar";
|
||||
File output = new File(target + "/" + outputFileName);
|
||||
String outputFileNameWithoutExtension = fileToSave.getName() + "-" + text;
|
||||
|
||||
result = new File(target + "/" + outputFileNameWithoutExtension + ".tgz");
|
||||
|
||||
final OutputStream out = new FileOutputStream(target + "/" + outputFileName);
|
||||
ArchiveOutputStream os = new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.TAR, out);
|
||||
directoryToSave(toto, os);
|
||||
os.close();
|
||||
final OutputStream out1 = new FileOutputStream(target + "/" + outputFileNameWithoutExtension + ".tgz");
|
||||
final GzipCompressorOutputStream gzCompress = new GzipCompressorOutputStream(out1);
|
||||
byte[] fileTar = new byte[(int) output.length()];
|
||||
FileInputStream fileReader = new FileInputStream(output);
|
||||
fileReader.read(fileTar);
|
||||
gzCompress.write(fileTar);
|
||||
gzCompress.close();
|
||||
output.delete();
|
||||
OutputStream gzipOutputStream = new GzipCompressorOutputStream(
|
||||
new BufferedOutputStream(new FileOutputStream(result)));
|
||||
TarArchiveOutputStream out = new TarArchiveOutputStream(gzipOutputStream);
|
||||
directoryToSave(fileToSave, out);
|
||||
out.close();
|
||||
md5(result, target + "/" + outputFileNameWithoutExtension + ".tgz.md5");
|
||||
|
||||
//
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void directoryToSave(final File directory, final ArchiveOutputStream outputStream) throws IOException
|
||||
public static void directoryToSave(final File directory, final TarArchiveOutputStream outputStream)
|
||||
throws IOException
|
||||
{
|
||||
for (File file : directory.listFiles())
|
||||
{
|
||||
@ -90,13 +88,13 @@ public class SibaManager
|
||||
}
|
||||
else
|
||||
{
|
||||
TarArchiveEntry tae = new TarArchiveEntry(file);
|
||||
TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file);
|
||||
String pathPartiel = file.getPath().substring(pathLength);
|
||||
tae.setName(pathPartiel);
|
||||
/* outputStream.putArchiveEntry(new TarArchiveEntry(file)); */
|
||||
outputStream.putArchiveEntry(tae);
|
||||
tarArchiveEntry.setName(pathPartiel);
|
||||
outputStream.putArchiveEntry(tarArchiveEntry);
|
||||
IOUtils.copy(new FileInputStream(file), outputStream);
|
||||
outputStream.closeArchiveEntry();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -193,4 +191,6 @@ public class SibaManager
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public GzipCompressorOutputStream gzCompress;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user