Skip to content

Commit 551c48f

Browse files
committed
Add a user warning when lib/ext Java3Ds are found
1 parent b14a99d commit 551c48f

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/main/java/org/scijava/java3d/DefaultJava3DService.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,14 @@
3434
import java.util.ArrayList;
3535
import java.util.List;
3636

37+
import org.scijava.event.EventHandler;
38+
import org.scijava.plugin.Parameter;
3739
import org.scijava.plugin.Plugin;
3840
import org.scijava.service.AbstractService;
3941
import org.scijava.service.Service;
42+
import org.scijava.ui.DialogPrompt.MessageType;
43+
import org.scijava.ui.UIService;
44+
import org.scijava.ui.event.UIShownEvent;
4045

4146
/**
4247
* Default service for working with Java 3D.
@@ -48,6 +53,9 @@ public class DefaultJava3DService extends AbstractService implements
4853
Java3DService
4954
{
5055

56+
@Parameter
57+
private UIService uiService;
58+
5159
@Override
5260
public List<File> getLibExtLocations() {
5361
final ArrayList<File> files = new ArrayList<File>();
@@ -59,6 +67,26 @@ public List<File> getLibExtLocations() {
5967
return files;
6068
}
6169

70+
// -- Event handlers --
71+
72+
/** Checks for obsolete Java 3D installations, warning when any are found. */
73+
@EventHandler
74+
protected void onEvent(@SuppressWarnings("unused") final UIShownEvent evt) {
75+
final List<File> libExtFiles = getLibExtLocations();
76+
if (libExtFiles.isEmpty()) return;
77+
78+
final StringBuilder sb = new StringBuilder();
79+
sb.append("There are obsolete Java 3D libraries installed as Java "
80+
+ "extensions.");
81+
sb.append("\nThe following files were detected:\n");
82+
for (final File libExtFile : libExtFiles) {
83+
sb.append("\n* " + libExtFile.getAbsolutePath());
84+
}
85+
sb.append("\n\nThese libraries will very likely cause problems with "
86+
+ "3D visualization.\nPlease delete them, then restart the program.");
87+
uiService.showDialog(sb.toString(), MessageType.WARNING_MESSAGE);
88+
}
89+
6290
// -- Helper methods --
6391

6492
private void checkLibExtDirectory(final ArrayList<File> files,

0 commit comments

Comments
 (0)