提交 eb3fc0c5 编写于 作者: M Mathieu Bastian

Fix issue when loading projects and increase reliability of project/workspace events #2717

上级 58414604
......@@ -63,6 +63,7 @@ import org.gephi.project.io.DuplicateTask;
import org.gephi.project.io.LoadTask;
import org.gephi.project.io.SaveTask;
import org.gephi.utils.longtask.api.LongTaskExecutor;
import org.openide.util.Exceptions;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
import org.openide.util.lookup.ServiceProvider;
......@@ -453,7 +454,13 @@ public class ProjectControllerImpl implements ProjectController {
listeners = new ArrayList<>(projectListeners);
listeners.addAll(Lookup.getDefault().lookupAll(ProjectListener.class));
}
listeners.forEach(consumer);
for (ProjectListener listener : listeners) {
try {
consumer.accept(listener);
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
}
}
}
private void fireWorkspaceEvent(EventType event, Workspace workspace) {
......@@ -463,22 +470,26 @@ public class ProjectControllerImpl implements ProjectController {
listeners.addAll(Lookup.getDefault().lookupAll(WorkspaceListener.class));
}
for (WorkspaceListener wl : listeners) {
switch (event) {
case INITIALIZE:
wl.initialize(workspace);
break;
case SELECT:
wl.select(workspace);
break;
case UNSELECT:
wl.unselect(workspace);
break;
case CLOSE:
wl.close(workspace);
break;
case DISABLE:
wl.disable();
break;
try {
switch (event) {
case INITIALIZE:
wl.initialize(workspace);
break;
case SELECT:
wl.select(workspace);
break;
case UNSELECT:
wl.unselect(workspace);
break;
case CLOSE:
wl.close(workspace);
break;
case DISABLE:
wl.disable();
break;
}
} catch (Exception e) {
Exceptions.printStackTrace(e);
}
}
}
......
......@@ -42,6 +42,7 @@ Portions Copyrighted 2011 Gephi Consortium.
package org.gephi.ui.tools.plugin.edit;
import javax.swing.SwingUtilities;
import org.gephi.graph.api.Edge;
import org.gephi.graph.api.Node;
import org.gephi.project.api.ProjectController;
......@@ -81,7 +82,9 @@ public final class EditToolTopComponent extends TopComponent {
@Override
public void select(Workspace workspace) {
propertySheet.setEnabled(true);
SwingUtilities.invokeLater(() -> {
propertySheet.setEnabled(true);
});
}
@Override
......@@ -95,8 +98,10 @@ public final class EditToolTopComponent extends TopComponent {
@Override
public void disable() {
propertySheet.setEnabled(false);
EditToolTopComponent.this.close();
SwingUtilities.invokeLater(() -> {
propertySheet.setEnabled(false);
EditToolTopComponent.this.close();
});
}
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册