ingenias.editor.persistence.AutomaticBackupAction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sociaalmled Show documentation
Show all versions of sociaalmled Show documentation
A editor for modelling scenarios for PHAT simulator
/**
* Copyright (C) 2010 Jorge J. Gomez-Sanz
*
* This file is part of the INGENME tool. INGENME is an open source meta-editor
* which produces customized editors for user-defined modeling languages
*
* 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 version 3 of the License
*
* 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
**/
package ingenias.editor.persistence;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JWindow;
import ingenias.editor.GUIResources;
import ingenias.editor.IDE;
import ingenias.editor.IDEAbs;
import ingenias.editor.IDEState;
import ingenias.editor.utils.DialogWindows;
public class AutomaticBackupAction implements Runnable{
Thread backupthread=null;
boolean finish=false;
int backupFrequency=0;
IDEState ids;
GUIResources resources;
int counter=0;
public final static int MAXIMUM_BACKUPS=10;
public AutomaticBackupAction(IDEState ids, GUIResources resources, int backupFrequency){
this.backupFrequency=backupFrequency;
this.ids=ids;
this.resources=resources;
}
public void startBackup(){
this.backupthread=new Thread(this);
this.backupthread.start();
}
public boolean isStarted(){
return backupthread!=null;
}
private void moveFile(File orig, File target) throws IOException{
byte buffer[]=new byte[1000];
int bread=0;
FileInputStream fis=new FileInputStream(orig);
FileOutputStream fos=new FileOutputStream(target);
while (bread!=-1){
bread=fis.read(buffer);
if (bread!=-1)
fos.write(buffer,0,bread);
}
fis.close();
fos.close();
orig.delete();
}
public int copyBackupFiles(){
/*JFileChooser jfc = new JFileChooser();
File homedir = jfc.getCurrentDirectory();
File[] files=homedir.listFiles();
int lastBackupCopied=0;
String targetName ="backup/idbackup"+lastBackupCopied+".xml";
int copied=0;
File backup=new File(targetName);
while (backup.exists()){
lastBackupCopied++;
targetName ="backup/idbackup"+lastBackupCopied+".xml";
backup=new File(targetName);
}
for (int k=0;k