package model;
import java.util.regex.*;
import javafx.scene.image.*;
import model.persistance.*;
import org.apache.log4j.*;
import utils.*;
import control.*;
public class IliasFile extends IliasTreeNode {
private static final long serialVersionUID = -6286982393008142116L;
private final int size;
private final String extension;
private final String sizeLabel;
private static final Logger LOGGER = Logger.getLogger(IliasFile.class);
public IliasFile(String name, String url, IliasFolder parentFolder, int size, String sizeLabel,
String extension) {
super(name, url, parentFolder);
this.size = size;
this.extension = extension;
this.sizeLabel = sizeLabel;
}
public int getSize() {
return size;
}
public boolean isIgnored() {
return Settings.getInstance().getFileStates().isIgnored(createStoreKey()) != -1;
}
public void setIgnored(boolean b) {
if (b) {
Settings.getInstance().getFileStates()
.storeIgnoredFileSize(createStoreKey(), getSize());
} else {
Settings.getInstance().getFileStates().removeIgnoredFileSize(createStoreKey());
}
}
private String createStoreKey() {
String url = super.getUrl();
Matcher matcher = Pattern.compile("(.*?)(\\d+)(.*)").matcher(url);
String digits = "";
if (matcher.find()) {
digits = matcher.group(2);
} else {
Logger.getLogger(getClass()).warn("StoreKey digits not found!");
}
return digits;
}
@Override
public final ImageView getGraphic() {
FileAppearanceManager appearanceManager = FileAppearanceManager.getInstance();
if (isIgnored()) {
return appearanceManager.getIgnoredPicture(getExtension());
} else if (!(LocalFileStorage.getInstance().contains(this))) {
return appearanceManager.getNotSynchronizedPicture(getExtension());
} else {
return appearanceManager.getNormalPicture(getExtension());
}
}
/**
* Returns the files {@link #extension}. e. g. "pdf" or "txt" <br>
* <b>NOT</b> .pdf !
*
* @return {@link #extension}
*/
public String getExtension() {
return extension;
}
public String getSizeLabel() {
return sizeLabel;
}
}