private File getOrGenerateAvatarFile(final Avatar avatar, final ImageSize size) throws IOException { final File file = getAvatarFile(avatar, size.getFilenameFlag()); //if this file doesn't exist and we requested something other than the largest size lets //try to generate a smaller image. if (!file.exists()) { File largeFile = getOrGenerateLargerAvatarFile(avatar, size); //generate a smaller image file for the avatar requested and return that! if (largeFile != null && largeFile.exists()) { return processImage(avatar, FileUtils.openInputStream(largeFile), null, size); } } return file; }
@Override public String tagAvatar(final long id, final String filename) throws IOException { final File base = getAvatarBaseDirectory(); for (AvatarManager.ImageSize size : AvatarManager.ImageSize.values()) { final String sizeFlag = size.getFilenameFlag(); final File avatarFileInstance = new File(base, id + "_" + sizeFlag + filename); if (avatarFileInstance.exists()) { tagSingleAvatarFile(avatarFileInstance, new File(toTaggedName(avatarFileInstance.getAbsolutePath()))); } } // Don't delete the old files until we're done, in case we can't tag all versions of the files try { for (AvatarManager.ImageSize size : AvatarManager.ImageSize.values()) { final String sizeFlag = size.getFilenameFlag(); final File oldAvatarFile = new File(base, id + "_" + sizeFlag + filename); if (oldAvatarFile.exists()) { oldAvatarFile.delete(); } } } catch (SecurityException ignored) { } return toTaggedName(filename); }
File file = createAvatarFile(avatar, imageSize.getFilenameFlag()); createFiles.add(file);
File avatarFile = getAvatarFile(avatar, imageSize.getFilenameFlag()); if (avatarFile.exists())
|| StringUtils.startsWithIgnoreCase(value.getFilenameFlag(), text))
public boolean delete(Long avatarId, boolean alsoDeleteAvatarFile) { Assertions.notNull("avatarId", avatarId); final Avatar avatar = store.getById(avatarId); if (avatar == null) { return false; } if (alsoDeleteAvatarFile) { final ImageSize[] imageSizes = ImageSize.values(); final File[] avatarFiles = new File[imageSizes.length]; for (int i = 0; i < imageSizes.length; i++) { avatarFiles[i] = getAvatarFile(avatar, imageSizes[i].getFilenameFlag()); deleteFile(avatarFiles[i]); } eventPublisher.publish(new JiraHomeChangeEvent(JiraHomeChangeEvent.Action.FILE_DELETED, JiraHomeChangeEvent.FileType.AVATAR, avatarFiles)); } return store.delete(avatarId); }
private String getAvatarPath(final Avatar avatar, final ImageSize size) { if (hasVectorIcon(avatar)) { return AVATAR_CLASSPATH_PREFIX + avatar.getFileName(); } else { return AVATAR_CLASSPATH_PREFIX + size.getFilenameFlag() + avatar.getFileName(); } }
File processImage(final Avatar created, final InputStream imageData, final Selection croppingSelection, final ImageSize size) throws IOException { RenderedImage image = scaler.getSelectedImageData(new Thumber().getImage(imageData), croppingSelection, size.getPixels()); File file = createAvatarFile(created, size.getFilenameFlag()); avatarTagger.saveTaggedAvatar(image, AVATAR_IMAGE_FORMAT_FULL.getName(), file); eventPublisher.publish(new JiraHomeChangeEvent(JiraHomeChangeEvent.Action.FILE_ADD, JiraHomeChangeEvent.FileType.AVATAR, file)); return file; }