blob: 1368a2703bf3f0362a7aac13eb96e0a6037b20ab [file] [log] [blame]
/*
* 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.
*/
package com.intellij.openapi.fileChooser.ex;
import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.fileChooser.FileElement;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.ui.SimpleTextAttributes;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class FileNodeDescriptor extends NodeDescriptor {
private FileElement myFileElement;
private final Icon myOriginalIcon;
private final String myComment;
public FileNodeDescriptor(Project project,
@NotNull FileElement element,
NodeDescriptor parentDescriptor,
Icon closedIcon,
String name,
String comment) {
super(project, parentDescriptor);
myOriginalIcon = closedIcon;
myComment = comment;
myFileElement = element;
myName = name;
}
public boolean update() {
boolean changed = false;
// special handling for roots with names (e.g. web roots)
if (myName == null || myComment == null) {
final String newName = myFileElement.toString();
if (!newName.equals(myName)) changed = true;
myName = newName;
}
VirtualFile file = myFileElement.getFile();
if (file == null) return true;
setIcon(myOriginalIcon);
if (myFileElement.isHidden()) {
setIcon(IconLoader.getTransparentIcon(getIcon()));
}
myColor = myFileElement.isHidden() ? SimpleTextAttributes.DARK_TEXT.getFgColor() : null;
return changed;
}
@NotNull
public final FileElement getElement() {
return myFileElement;
}
protected final void setElement(FileElement descriptor) {
myFileElement = descriptor;
}
public String getComment() {
return myComment;
}
}