| /* |
| * Copyright 2000-2009 JetBrains s.r.o. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /** $Id$ */ |
| |
| package org.intellij.images.ui; |
| |
| import com.intellij.openapi.util.text.StringUtil; |
| import org.jetbrains.annotations.NonNls; |
| |
| import javax.swing.*; |
| |
| /** |
| * Thumbnail component. |
| * |
| * @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a> |
| */ |
| public class ThumbnailComponent extends JComponent { |
| @NonNls |
| private static final String FORMAT_PROP = "format"; |
| @NonNls |
| private static final String FILE_SIZE_PROP = "fileSize"; |
| @NonNls |
| private static final String FILE_NAME_PROP = "fileName"; |
| @NonNls |
| private static final String DIRECTORY_PROP = "directory"; |
| @NonNls |
| private static final String IMAGES_COUNT_PROP = "imagesCount"; |
| |
| /** |
| * @see #getUIClassID |
| * @see #readObject |
| */ |
| @NonNls |
| private static final String uiClassID = "ThumbnailComponentUI"; |
| |
| static { |
| UIManager.getDefaults().put(uiClassID, ThumbnailComponentUI.class.getName()); |
| } |
| |
| /** |
| * Image component for rendering thumbnail image. |
| */ |
| private final ImageComponent imageComponent = new ImageComponent(); |
| |
| private String format; |
| private long fileSize; |
| private String fileName; |
| private boolean directory; |
| private int imagesCount; |
| |
| public ThumbnailComponent() { |
| updateUI(); |
| } |
| |
| public ImageComponent getImageComponent() { |
| return imageComponent; |
| } |
| |
| public String getFormat() { |
| return format; |
| } |
| |
| public void setFormat(String format) { |
| String oldValue = this.format; |
| if (oldValue != null && !oldValue.equals(format) || oldValue == null && format != null) { |
| this.format = format; |
| firePropertyChange(FORMAT_PROP, oldValue, this.format); |
| } |
| } |
| |
| public long getFileSize() { |
| return fileSize; |
| } |
| |
| public void setFileSize(long fileSize) { |
| long oldValue = this.fileSize; |
| if (oldValue != fileSize) { |
| this.fileSize = fileSize; |
| firePropertyChange(FILE_SIZE_PROP, new Long(oldValue), new Long(this.fileSize)); |
| } |
| } |
| |
| public String getFileName() { |
| return fileName; |
| } |
| |
| public void setFileName(String fileName) { |
| String oldValue = this.fileName; |
| if (oldValue != null && !oldValue.equals(fileName) || oldValue == null && fileName != null) { |
| this.fileName = fileName; |
| firePropertyChange(FILE_NAME_PROP, oldValue, this.fileName); |
| } |
| } |
| |
| public boolean isDirectory() { |
| return directory; |
| } |
| |
| public void setDirectory(boolean directory) { |
| boolean oldValue = this.directory; |
| if (oldValue != directory) { |
| this.directory = directory; |
| firePropertyChange(DIRECTORY_PROP, oldValue, this.directory); |
| } |
| } |
| |
| public int getImagesCount() { |
| return imagesCount; |
| } |
| |
| public void setImagesCount(int imagesCount) { |
| int oldValue = this.imagesCount; |
| if (oldValue != imagesCount) { |
| this.imagesCount = imagesCount; |
| firePropertyChange(IMAGES_COUNT_PROP, oldValue, this.imagesCount); |
| } |
| } |
| |
| public String getFileSizeText() { |
| return StringUtil.formatFileSize(fileSize); |
| } |
| |
| public void updateUI() { |
| setUI(UIManager.getUI(this)); |
| } |
| |
| public String getUIClassID() { |
| return uiClassID; |
| } |
| } |