19 package org.turro.file.zul.repository;
22 import java.io.IOException;
23 import java.util.ArrayList;
24 import java.util.Collection;
25 import org.turro.string.Strings;
26 import org.turro.collections.CollectionUtil;
27 import org.turro.command.Command;
28 import org.turro.command.Context;
29 import org.turro.elephant.context.ElephantContext;
30 import org.turro.elephant.impl.util.StringParser;
31 import org.turro.entities.Entities;
32 import org.turro.file.Document;
33 import org.turro.file.Folder;
34 import org.turro.file.zul.control.FileResults;
35 import org.turro.i18n.I_;
36 import org.turro.path.Path;
37 import org.turro.upload.Medias;
38 import org.turro.zkoss.dialog.InputDialog;
39 import org.turro.zkoss.dialog.InputField;
40 import org.turro.zkoss.text.RepositoriesTree;
41 import org.turro.zkoss.text.RepositoryFilter;
42 import org.zkoss.util.media.Media;
43 import org.zkoss.zk.ui.HtmlBasedComponent;
44 import org.zkoss.zul.Textbox;
45 import org.zkoss.zul.Treechildren;
46 import org.zkoss.zul.Treeitem;
54 private final File file;
55 private final String path;
61 if(doProcessors(file)) {
68 return new File(file, path);
81 Treechildren children = getTreechildren();
82 return children !=
null ? CollectionUtil.from(children.getChildren()).<Collection<RepositoryItem>>cast() :
new ArrayList<>();
86 Treechildren children = getTreechildren();
87 if(children !=
null) {
88 children.getChildren().clear();
104 if(!folder.exists()) {
125 public void addMedias(Media[] medias)
throws InterruptedException, IOException {
126 if(medias ==
null || medias.length == 0)
return;
129 for(Media media : medias) {
140 new InputField(
"Name",
"", null, 0) {
142 protected HtmlBasedComponent createEditor() {
143 return new Textbox();
148 public Object execute(Context context) {
150 if(fields.length > 0) {
152 if(
"Name".equals(f.getLabel())) {
155 for(String s : ((String) f.getValue()).split(
"\\/")) {
156 if(!Strings.isBlank(s)) {
170 File folder =
new File(file, path);
173 checkChildren().appendChild(af);
177 private void fillFolder() {
178 if(!Strings.isBlank(path)) {
179 File repositoryFile = getRepositoryFile();
180 if(repositoryFile.exists()) {
182 checkChildren().appendChild(
new RepositoryItem(child, child.getName(),
""));
187 for(File child : file.listFiles(
new RepositoryFilter(path))) {
188 checkChildren().appendChild(
new RepositoryItem(child, child.getName(), path));
193 private boolean doProcessors(File file) {
194 if(RepositoriesTree.isPublishable(file)) {
195 if(Folder.from(file).removeEmpties()) {
196 RepositoryItem.this.detach();
199 Path p =
new Path(RepositoriesTree.getEntityPath(file));
200 if(p.getSize() > 0 && p.getSize() < 3) {
201 String str = Entities.getController(p.getPath()).getTreeLabel();
203 setLabel(StringParser.cutString(str, 50));
205 }
else if(p.getSize() == 2) {
206 Document.from(file).delete();
207 RepositoryItem.this.detach();
216 private Treechildren checkChildren() {
217 Treechildren children = getTreechildren();
218 if(children ==
null) {
219 children =
new Treechildren();
220 appendChild(children);
static String getRelativePath(String path)
Collection< File > getFiles(File folder)
Collection< File > getFileList(File folder)
File getRealFolder(boolean create)
Collection< File > getFiles()
void addMedias(Media[] medias)
boolean isFolder(String folder)
Collection< RepositoryItem > getFileFolders()
RepositoryItem(File file, String name, String path)
RepositoryItem addFolder(String label, String path)
RepositoryItem getParentFolder()
Collection< File > getFilesFrom(File folder)
static String get(String msg)