...
 
Commits (4)
    https://gitcode.net/loovejava/gephi/-/commit/017cebd971f7f62eee117365e421d69d50271d42 Upgrade GH actions 2023-01-09T20:37:42+01:00 Mathieu Bastian mathieu.bastian@gmail.com https://gitcode.net/loovejava/gephi/-/commit/7135a18a5d653c0bfba2b48e27895242af203293 BUGFIX: Ensure save project task when closing via application close do... 2023-01-16T08:38:12+01:00 totetmatt matthieu.totet@gmail.com BUGFIX: Ensure save project task when closing via application close do finished before closing gephi https://gitcode.net/loovejava/gephi/-/commit/a39dfec644e341b264f1a5e2bd77eac721e4e73d Merge pull request #2737 from gephi/u/totetmatt/bug_fix_empty_gephi_file_on_save 2023-01-16T20:02:32+01:00 Mathieu Bastian mathieu.bastian@gmail.com #2736 Fix issue with empty gephi file when save on close https://gitcode.net/loovejava/gephi/-/commit/e91a689fcf78774364445c9bfa5485671164d3bf Merge branch 'master' of github.com:gephi/gephi 2023-01-16T20:03:36+01:00 Mathieu Bastian mathieu.bastian@gmail.com
......@@ -18,9 +18,9 @@ jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
......
......@@ -11,9 +11,9 @@ jobs:
staging-repository-id: ${{ steps.create-nexus-staging.outputs.staging-repository-id }}
project-version: ${{ steps.project.outputs.version }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Maven Central Repository
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
......@@ -103,9 +103,9 @@ jobs:
arch: aarch64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Maven Central Repository
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
......@@ -190,9 +190,9 @@ jobs:
needs: bundle
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
......
......@@ -356,24 +356,21 @@ public class DesktopImportControllerUI implements ImportControllerUI {
importer.getClass().getSimpleName()));
String taskName =
NbBundle.getMessage(DesktopImportControllerUI.class, "DesktopImportControllerUI.taskName", containerSource);
executor.execute(task, new Runnable() {
@Override
public void run() {
try {
Container container;
if (importer instanceof FileImporter.FileAware && file != null) {
container = controller.importFile(file, importer);
} else {
container = controller.importFile(reader, importer);
}
executor.execute(task, () -> {
try {
Container container;
if (importer instanceof FileImporter.FileAware && file != null) {
container = controller.importFile(file, importer);
} else {
container = controller.importFile(reader, importer);
}
if (container != null) {
container.setSource(containerSource);
results.add(container);
}
} catch (Exception ex) {
throw new RuntimeException(ex);
if (container != null) {
container.setSource(containerSource);
results.add(container);
}
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}, taskName, errorHandler.createHandler(containerSource));
}
......
......@@ -47,6 +47,10 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
......@@ -222,22 +226,28 @@ public class ProjectControllerUIImpl implements ProjectListener {
});
}
private void saveProject(Project project, File file) {
longTaskExecutor.execute(null, () -> {
controller.saveProject(project, file);
private Future<Void> saveProject(Project project, File file) {
return longTaskExecutor.execute(null, new Callable<Void>() {
@Override
public Void call() throws Exception {
controller.saveProject(project, file);
return null;
}
});
}
public void saveProject() {
public Future<Void> saveProject() {
Project project = controller.getCurrentProject();
if (project.hasFile()) {
saveProject(project, project.getFile());
return saveProject(project, project.getFile());
} else {
saveAsProject();
return saveAsProject();
}
}
public void saveAsProject() {
public Future<Void> saveAsProject() {
final String LAST_PATH = "SaveAsProject_Last_Path";
final String LAST_PATH_DEFAULT = "SaveAsProject_Last_Path_Default";
......@@ -281,8 +291,9 @@ public class ProjectControllerUIImpl implements ProjectListener {
NbPreferences.forModule(ProjectControllerUIImpl.class).put(LAST_PATH, file.getAbsolutePath());
// Save file
saveProject(controller.getCurrentProject(), file);
return saveProject(controller.getCurrentProject(), file);
}
return CompletableFuture.completedFuture(null);
}
private boolean canExport(JFileChooser chooser) {
......@@ -335,7 +346,14 @@ public class ProjectControllerUIImpl implements ProjectListener {
new Object[] {saveBundle, doNotSaveBundle, cancelBundle}, saveBundle);
Object result = DialogDisplayer.getDefault().notify(msg);
if (result == saveBundle) {
saveProject();
Future<Void> saveTask = saveProject();
if(saveTask !=null){
try {
saveTask.get();
} catch (InterruptedException | ExecutionException ex) {
Exceptions.printStackTrace(ex);
}
}
} else if (result == cancelBundle) {
return false;
}
......