Revision 0393c0ed web_client/src/gr/grnet/pithos/web/client/foldertree/Folder.java

b/web_client/src/gr/grnet/pithos/web/client/foldertree/Folder.java
35 35

  
36 36
package gr.grnet.pithos.web.client.foldertree;
37 37

  
38
import gr.grnet.pithos.web.client.Pithos;
39

  
38 40
import java.util.Date;
39 41
import java.util.HashMap;
40 42
import java.util.Iterator;
......
77 79

  
78 80
    private Set<File> files = new LinkedHashSet<File>();
79 81

  
80
    private boolean inTrash = false;
81

  
82
    /*
83
     * Flag that indicates that this folder is the Trash
84
     */
85
    private boolean trash = false;
86

  
87 82
    private Set<String> tags = new LinkedHashSet<String>();
88 83

  
89 84
    private String owner;
......
167 162
        if (header != null)
168 163
            bytesUsed = Long.valueOf(header);
169 164

  
170
        header = response.getHeader("X-Object-Meta-Trash");
171
        if (header != null && header.equals("true"))
172
            inTrash = true;
173

  
174 165
        header = response.getHeader("X-Container-Object-Meta");
175 166
        if (header != null && header.length() > 0) {
176 167
            for (String t : header.split(",")) {
......
197 188
                        f.populate(this, o, _owner, container);
198 189
                        subfolders.add(f);
199 190
                    }
200
                    else if (!(o.containsKey("x_object_meta_trash") && o.get("x_object_meta_trash").isString().stringValue().equals("true"))) {
191
                    else {
201 192
                        File file = new File();
202 193
                        file.populate(this, o, _owner, container);
203 194
                        files.add(file);
204 195
                    }
205 196
                }
206 197
            }
207
            //This step is necessary to remove the trashed folders. Trashed folders are added initially because we need to
208
            //avoid having in the list the virtual folders of the form {"subdir":"folder1"} which have no indication of thrash
209
            Iterator<Folder> iter = subfolders.iterator();
210
            while (iter.hasNext()) {
211
                Folder f = iter.next();
212
                if (f.isInTrash())
213
                    iter.remove();
214
            }
215 198
        }
216 199
    }
217 200

  
......
240 223
            prefix = "";
241 224
        }
242 225
        this.owner = _owner;
243
        if (o.containsKey("x_object_meta_trash") && o.get("x_object_meta_trash").isString().stringValue().equals("true"))
244
            inTrash = true;
245 226

  
246 227
        inheritedPermissionsFrom = unmarshallString(o, "x_object_shared_by");
247 228
        String rawPermissions = unmarshallString(o, "x_object_sharing");
......
286 267
        return "/" + container + (prefix.length() == 0 ? "" : "/" + prefix);
287 268
    }
288 269

  
289
    public boolean isInTrash() {
290
        return inTrash;
291
    }
292

  
293 270
    public boolean isContainer() {
294 271
        return parent == null;
295 272
    }
296 273

  
297
    public boolean isTrash() {
298
        return trash;
299
    }
300

  
301
    public void setTrash(boolean trash) {
302
        this.trash = trash;
303
    }
304

  
305 274
    public void setContainer(String container) {
306 275
        this.container = container;
307 276
    }
......
336 305
	public boolean isShared() {
337 306
		return !permissions.isEmpty();
338 307
	}
308

  
309
	public boolean isTrash() {
310
		return isContainer() && name.equals(Pithos.TRASH_CONTAINER);
311
	}
312

  
313
	public boolean isHome() {
314
		return isContainer() && name.equals(Pithos.HOME_CONTAINER);
315
	}
339 316
}

Also available in: Unified diff