MCPcopy Index your code
hub / github.com/processing/processing / promptForMode

Method promptForMode

app/src/processing/app/Base.java:1067–1107  ·  view source on GitHub ↗
(final File sketch, final ModeInfo preferredMode)

Source from the content-addressed store, hash-verified

1065
1066
1067 private Mode promptForMode(final File sketch, final ModeInfo preferredMode) {
1068 final String extension =
1069 sketch.getName().substring(sketch.getName().lastIndexOf('.') + 1);
1070 final List<Mode> possibleModes = new ArrayList<>();
1071 for (final Mode mode : getModeList()) {
1072 if (mode.canEdit(sketch)) {
1073 possibleModes.add(mode);
1074 }
1075 }
1076 if (possibleModes.size() == 1 &&
1077 possibleModes.get(0).getIdentifier().equals(getDefaultModeIdentifier())) {
1078 // If default mode can open it, then do so without prompting.
1079 return possibleModes.get(0);
1080 }
1081 if (possibleModes.size() == 0) {
1082 if (preferredMode == null) {
1083 final String msg =
1084 "I don't know how to open a sketch with the \"" + extension + "\"\n" +
1085 "file extension. You'll have to install a different\n" +
1086 "Mode for that.";
1087 Messages.showWarning("Modeless Dialog", msg);
1088 } else {
1089 Messages.showWarning("Modeless Dialog",
1090 "Install " + preferredMode.title + " Mode " +
1091 "to open this sketch.");
1092 }
1093 return null;
1094 }
1095 final Mode[] modes = possibleModes.toArray(new Mode[possibleModes.size()]);
1096 final String message = preferredMode == null ?
1097 (nextMode.getTitle() + " Mode can't open ." + extension + " files, " +
1098 "but you have one or more modes\ninstalled that can. " +
1099 "Would you like to try one?") :
1100 ("That's a " + preferredMode.title + " Mode sketch, " +
1101 "but you don't have " + preferredMode.title + " installed.\n" +
1102 "Would you like to try a different mode for opening a " +
1103 "." + extension + " sketch?");
1104 return (Mode) JOptionPane.showInputDialog(null, message, "Choose Wisely",
1105 JOptionPane.QUESTION_MESSAGE,
1106 null, modes, modes[0]);
1107 }
1108
1109
1110 private Mode selectMode(final File sketch) {

Callers 1

selectModeMethod · 0.95

Calls 11

getModeListMethod · 0.95
showWarningMethod · 0.95
canEditMethod · 0.80
getIdentifierMethod · 0.80
getMethod · 0.65
getNameMethod · 0.45
addMethod · 0.45
sizeMethod · 0.45
equalsMethod · 0.45
getTitleMethod · 0.45

Tested by

no test coverage detected