38 |
38 |
import java.util.ArrayList;
|
39 |
39 |
import java.util.Arrays;
|
40 |
40 |
import java.util.Date;
|
|
41 |
import java.util.List;
|
41 |
42 |
import java.util.Locale;
|
42 |
43 |
import java.util.logging.Handler;
|
43 |
44 |
import java.util.logging.Level;
|
... | ... | |
57 |
58 |
import org.eclipse.jface.preference.IPreferenceNode;
|
58 |
59 |
import org.eclipse.jface.preference.PreferenceManager;
|
59 |
60 |
import org.eclipse.jface.util.Util;
|
|
61 |
import org.eclipse.jface.viewers.ArrayContentProvider;
|
|
62 |
import org.eclipse.jface.viewers.LabelProvider;
|
60 |
63 |
import org.eclipse.osgi.util.NLS;
|
61 |
64 |
import org.eclipse.swt.graphics.Color;
|
62 |
65 |
import org.eclipse.swt.widgets.Display;
|
... | ... | |
78 |
81 |
import org.eclipse.ui.console.IOConsole;
|
79 |
82 |
import org.eclipse.ui.console.IOConsoleInputStream;
|
80 |
83 |
import org.eclipse.ui.console.IOConsoleOutputStream;
|
|
84 |
import org.eclipse.ui.dialogs.ListSelectionDialog;
|
81 |
85 |
import org.eclipse.ui.handlers.IHandlerService;
|
82 |
86 |
import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode;
|
83 |
87 |
import org.eclipse.ui.statushandlers.StatusManager;
|
... | ... | |
864 |
868 |
|
865 |
869 |
File previousCorporaDirectory = new File(System.getProperty("user.home"), "TXM/corpora");
|
866 |
870 |
|
|
871 |
Version v = Activator.getDefault().getBundle().getVersion();
|
|
872 |
String vv = v.getMajor()+"."+v.getMinor()+"."+v.getMicro();
|
|
873 |
String SAMPLES = "1. "+TXMUIMessages.bind(TXMUIMessages.sampleCorporaOfCurrentTXMP0, vv);
|
|
874 |
String V080 = "2. "+TXMUIMessages.bind(TXMUIMessages.corporaOfPreviousTXMP0, vv);
|
|
875 |
String V079 = "3. "+TXMUIMessages.bind(TXMUIMessages.corporaOfPreviousTXMP0, "0.7.9");
|
867 |
876 |
|
868 |
877 |
|
|
878 |
final ArrayList<Object> corporaDirs = new ArrayList<Object>();
|
|
879 |
corporaDirs.add(SAMPLES);
|
|
880 |
corporaDirs.add(V080);
|
|
881 |
corporaDirs.add(V079);
|
|
882 |
|
|
883 |
|
|
884 |
Display.getDefault().syncExec(new Runnable() {
|
|
885 |
@Override
|
|
886 |
public void run() {
|
|
887 |
Display display = Display.getDefault();
|
|
888 |
Shell shell = display.getActiveShell();
|
|
889 |
ListSelectionDialog dialog = new ListSelectionDialog(shell, corporaDirs,
|
|
890 |
new ArrayContentProvider(), new LabelProvider(), TXMUIMessages.corporaWillBeRestoredInTheFollowingOrderCorporaAlreadyRestoredWillNotBeReplaced);
|
|
891 |
dialog.setTitle(TXMUIMessages.selectThecorporaSetsToRestore);
|
|
892 |
dialog.setInitialElementSelections(corporaDirs);
|
|
893 |
if (dialog.open() == ListSelectionDialog.OK) {
|
|
894 |
corporaDirs.clear();
|
|
895 |
List<Object> selection = Arrays.asList(dialog.getResult());
|
|
896 |
corporaDirs.addAll(selection);
|
|
897 |
} else {
|
|
898 |
corporaDirs.clear();
|
|
899 |
}
|
|
900 |
}
|
|
901 |
});
|
|
902 |
|
|
903 |
// load TXM-0.8.0 sample corpora (from the install directory)
|
|
904 |
if (corporaDirs.contains(SAMPLES) && sampleCorporaDirectory.exists()) {
|
|
905 |
|
|
906 |
Log.info(TXMUIMessages.installingSampleCorpus);
|
|
907 |
|
|
908 |
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(sampleCorporaDirectory, false, true, false);
|
|
909 |
try {
|
|
910 |
job.join();
|
|
911 |
} catch (InterruptedException e) {
|
|
912 |
// TODO Auto-generated catch block
|
|
913 |
e.printStackTrace();
|
|
914 |
}
|
|
915 |
}
|
|
916 |
|
869 |
917 |
// TXM-0.8.0 previous installation corpora
|
870 |
|
if (corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER).length > 0) { // not a new install, restore previous corpora
|
|
918 |
if (corporaDirs.contains(V080) && corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER).length > 0) { // not a new install, restore previous corpora
|
871 |
919 |
Log.info(NLS.bind(TXMUIMessages.installingPreviousCorpusFromP0, "0.8.0", corporaDir));
|
872 |
|
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(corporaDir, false, true, true);
|
|
920 |
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(corporaDir, false, false, true);
|
873 |
921 |
try {
|
874 |
922 |
job.join();
|
875 |
923 |
} catch (InterruptedException e) {
|
876 |
924 |
e.printStackTrace();
|
877 |
925 |
}
|
|
926 |
} else if (corporaDir.exists()) {
|
|
927 |
File backupDir = new File(corporaDir.getAbsolutePath()+"-previous");
|
|
928 |
backupDir.mkdirs();
|
|
929 |
for (File dir : corporaDir.listFiles(IOUtils.HIDDENFILE_FILTER)) {
|
|
930 |
File bdir = new File(backupDir, dir.getName());
|
|
931 |
DeleteDir.deleteDirectory(bdir);
|
|
932 |
dir.renameTo(bdir);
|
|
933 |
}
|
878 |
934 |
}
|
879 |
935 |
|
880 |
936 |
// TXM previous installation corpora
|
881 |
|
if (previousCorporaDirectory.exists()) { // new installation (empty corpora directory)
|
|
937 |
if (corporaDirs.contains(V079) && previousCorporaDirectory.exists()) { // new installation (empty corpora directory)
|
882 |
938 |
Log.info(NLS.bind(TXMUIMessages.installingPreviousCorpusFromP0, "0.7.9", previousCorporaDirectory));
|
883 |
939 |
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(previousCorporaDirectory, false, false, true);
|
884 |
940 |
try {
|
... | ... | |
888 |
944 |
}
|
889 |
945 |
}
|
890 |
946 |
|
891 |
|
// load TXM-0.8.0 sample corpora (from the install directory)
|
892 |
|
if (sampleCorporaDirectory.exists()) {
|
893 |
|
|
894 |
|
Log.info(TXMUIMessages.installingSampleCorpus);
|
895 |
|
|
896 |
|
JobHandler job = LoadBinaryCorporaDirectory.loadBinaryCorpusFromCorporaDirectory(sampleCorporaDirectory, false, true, false);
|
897 |
|
try {
|
898 |
|
job.join();
|
899 |
|
} catch (InterruptedException e) {
|
900 |
|
// TODO Auto-generated catch block
|
901 |
|
e.printStackTrace();
|
902 |
|
}
|
903 |
|
}
|
|
947 |
|
904 |
948 |
}
|
905 |
949 |
|
906 |
950 |
/**
|