private static void launchOtherOsFile(String filepath) throws IOException { String commandStr; if (MediaType.getVideoMediaType().isFilenameOf(filepath)) { commandStr = SystemToolsPrefs.OpenVideoCmdOtherOS.get(); } else if (MediaType.getImageMediaType().isFilenameOf(filepath)) { commandStr = SystemToolsPrefs.OpenImageCmdOtherOS.get(); } else if (MediaType.getAudioMediaType().isFilenameOf(filepath)) { commandStr = SystemToolsPrefs.OpenAudioCmdOtherOS.get(); } else { commandStr = SystemToolsPrefs.OpenBrowserCmdOtherOS.get(); } // Define a pattern which will split on spaces but respect quotes Pattern p = Pattern.compile("(\".*?\"|\\S+)", Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(commandStr); List tokens = new LinkedList(); while (m.find()) { tokens.add(m.group(1)); } String[] result = new String[tokens.size()]; tokens.toArray(result); StringBuffer replacedCmd = new StringBuffer(); for (int i = 0; i < result.length; i++) { result[i] = StringUtils.replace(result[i], "%filepath%", filepath, -1); replacedCmd.append(result[i]); replacedCmd.append(" "); } NLogger.debug(SystemShellExecute.class, "Executing " + replacedCmd); Runtime.getRuntime().exec(result); }
@Override public void setValue(Object value) { if (value instanceof MediaType) { MediaType mediaType = (MediaType) value; setText(Localizer.getString(mediaType.getName())); setToolTipText(mediaType.getFileTypesUIText()); } }
public MediaTypeModel() { conditionTypes = new Object[MediaType.getAllMediaTypes().length][2]; MediaType[] mediaTypes = MediaType.getAllMediaTypes(); Set types = condition.getTypes(); for (int i = 0; i < mediaTypes.length; i++) { if (types.contains(mediaTypes[i])) { conditionTypes[i][0] = Boolean.TRUE; } else { conditionTypes[i][0] = Boolean.FALSE; } conditionTypes[i][1] = mediaTypes[i]; } }