}\r
\r
public void updateFolder(final DnDTreeItem folderItem) {\r
- if (isFileItem(folderItem)) {\r
+ if (isFileItem(folderItem)){\r
folderSubtree.updateFolderAndSubfolders(folderItem);\r
myShareSubtree.updateFolderAndSubfolders((DnDTreeItem) getMySharesItem());\r
- } else if (isMySharedItem(folderItem)) {\r
+ }\r
+ else if (isMySharedItem(folderItem)){\r
myShareSubtree.updateFolderAndSubfolders(folderItem);\r
if (folderItem.getFolderResource() != null) {\r
DnDTreeItem fitem = (DnDTreeItem) getUserItem(getRootItem(), folderItem.getFolderResource().getUri());\r
if (fitem != null)\r
folderSubtree.updateFolderAndSubfolders(fitem);\r
- } else\r
- folderSubtree.updateFolderAndSubfolders((DnDTreeItem) getRootItem());\r
- } else if (isTrashItem(folderItem))\r
+ else\r
+ folderSubtree.updateFolderAndSubfolders((DnDTreeItem) getRootItem());\r
+ }\r
+\r
+ }\r
+ else if (isTrashItem(folderItem))\r
trashSubtree.update();\r
else if (isOthersSharedItem(folderItem))\r
othersSharesSubtree.updateFolderAndSubfolders(folderItem);\r
* along with GSS. If not, see <http://www.gnu.org/licenses/>.
*/
package gr.ebs.gss.client.dnd;
-
import gr.ebs.gss.client.Folders;
import gr.ebs.gss.client.GSS;
import gr.ebs.gss.client.PopupTree;
* @author kman
*
*/
-public class DnDTreeItem extends TreeItem implements HasAllMouseHandlers {
+public class DnDTreeItem extends TreeItem implements HasAllMouseHandlers {
public static final int FOLDER = 0;
public static final int SHARED = 1;
public static final int TRASH = 2;
private DnDFocusPanel focus;
private Widget content;
private DnDDropController drop;
- private List<DnDTreeItem> toRemove = new ArrayList();
+ private List<TreeItem> toRemove = new ArrayList();
private boolean draggable = false;
PopupTree tree;
-
+ public boolean lazy = false;
+ public DnDTreeItem(Widget widget, boolean _draggable, PopupTree atree, boolean _lazy){
+ this(widget,_draggable,atree);
+ lazy = _lazy;
+ if(lazy)
+ addItem(new TreeItem());
+ }
public DnDTreeItem(Widget widget, boolean _draggable, PopupTree atree) {
super();
tree=atree;
focus = new DnDFocusPanel(content,this);
focus.setTabIndex(-1);
setWidget(focus);
-
-
}
public void setFocus(){
}
-
/**
* Retrieve the drop.
*
public void removeItems() {
toRemove = new ArrayList();
removeItems(this);
- for(DnDTreeItem it : toRemove)
- if(it.getDrop() != null)
- GSS.get().getDragController().unregisterDropController(it.getDrop());
+ for(TreeItem it : toRemove)
+ if(it instanceof DnDTreeItem)
+ if(((DnDTreeItem)it).getDrop() != null)
+ GSS.get().getDragController().unregisterDropController(((DnDTreeItem)it).getDrop());
toRemove.clear();
super.removeItems();
GSS.get().getDragController().unregisterDropController(getDrop());
}
- protected void removeItems(DnDTreeItem item){
+ protected void removeItems(TreeItem item){
for(int i=0;i<item.getChildCount();i++) {
- DnDTreeItem it = (DnDTreeItem)item.getChild(i);
+ TreeItem it = item.getChild(i);
toRemove.add(it);
removeItems(it);
}
-
}
@Override
public void onComplete() {
FolderResource rootResource = getResult();
- rootItem = new DnDTreeItem(imageItemHTML(images.home(), rootResource.getName()), false,tree);
+ rootItem = new DnDTreeItem(imageItemHTML(images.home(), rootResource.getName()), false,tree,true);
rootItem.setUserObject(rootResource);
tree.clear();
tree.addItem(rootItem);
@Override
public void onComplete() {
- rootItem = new DnDTreeItem(imageItemHTML(images.myShared(), "My Shared"), false,tree);
+ rootItem = new DnDTreeItem(imageItemHTML(images.myShared(), "My Shared"), false,tree,true);
rootItem.setUserObject(getResult());
tree.addItem(rootItem);
- rootItem.removeItems();
+ //rootItem.removeItems();
rootItem.doDroppable();
- update(rootItem);
+ //update(rootItem);
}
@Override
@Override
public void onComplete() {
rootItem.setUserObject(getResult());
- rootItem.removeItems();
- update(rootItem);
+ if(rootItem.getState()){
+ rootItem.removeItems();
+ update(rootItem);
+ }
}
@Override
@Override
public void onComplete() {
- rootItem = new DnDTreeItem(imageItemHTML(images.othersShared(), "Other's Shared"), false,tree);
+ rootItem = new DnDTreeItem(imageItemHTML(images.othersShared(), "Other's Shared"), false,tree,true);
rootItem.setUserObject(getResult());
tree.addItem(rootItem);
- rootItem.removeItems();
- update(rootItem);
+ //rootItem.removeItems();
+ //update(rootItem);
GSS.get().removeGlassPanel();
}
r.getName(), images.folderYellow(), true);
child.setUserObject(r);
child.setState(false);
- if(folderItem.getState())
- update(child);
}
}
DnDTreeItem child = (DnDTreeItem) addImageItem(folderItem,
r.getName(), images.folderYellow(), true);
child.setUserObject(r);
- child.setState(false);
child.doDraggable();
- update(child);
updateFolderAndSubfolders(child);
}
}
};
DeferredCommand.addCommand(go);
} else if (folderItem.getFolderResource() != null) {
-
+ GWT.log("UPDATING :"+folderItem.getFolderResource().getName(), null);
MultipleGetCommand<FolderResource> go = new MultipleGetCommand<FolderResource>(FolderResource.class,
folderItem.getFolderResource().getSubfolderPaths().toArray(new String[] {}), folderItem.getFolderResource().getCache()) {
public void onComplete() {
List<FolderResource> res = getResult();
folderItem.removeItems();
+ GWT.log("UPDATING :"+folderItem.getFolderResource().getName()+" :"+res.size(), null);
for (FolderResource r : res) {
DnDTreeItem child = (DnDTreeItem) addImageItem(folderItem,
r.getName(), images.folderYellow(), true);
child.setUserObject(r);
- child.setState(false);
child.doDraggable();
- update(child);
}
}
folderItem.updateWidget(imageItemHTML(images.folderYellow(), rootResource.getName()));
folderItem.setUserObject(rootResource);
folderItem.doDraggable();
- update(folderItem);
}
@Override
* @return
*/
protected TreeItem addImageItem(final TreeItem parent, final String title, final ImageResource imageProto, boolean draggable) {
- final DnDTreeItem item = new DnDTreeItem(imageItemHTML(imageProto, title), draggable,tree);
+ final DnDTreeItem item = new DnDTreeItem(imageItemHTML(imageProto, title), draggable,tree,true);
parent.addItem(item);
return item;
}
public void updateSubFoldersLazily(DnDTreeItem folderItem, List<FolderResource> subfolders, ImageResource image, ImageResource sharedImage) {
for (int i = 0; i < folderItem.getChildCount(); i++) {
- DnDTreeItem c = (DnDTreeItem) folderItem.getChild(i);
- FolderResource f = (FolderResource) c.getUserObject();
- if (!listContainsFolder(f, subfolders)) {
- c.undoDraggable();
- folderItem.removeItem(c);
+ TreeItem initialItem = folderItem.getChild(i);
+ if(initialItem instanceof DnDTreeItem){
+ DnDTreeItem c = (DnDTreeItem)initialItem;
+ FolderResource f = (FolderResource) c.getUserObject();
+ if (!listContainsFolder(f, subfolders)) {
+ c.undoDraggable();
+ folderItem.removeItem(c);
+ }
}
+ else
+ folderItem.removeItem(initialItem);
}
LinkedList<DnDTreeItem> itemList = new LinkedList();