Revision 7811b9d1 src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java

b/src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java
35 35

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

  
38
import gr.grnet.pithos.web.client.Pithos;
39
import gr.grnet.pithos.web.client.foldertree.AccountResource;
40
import gr.grnet.pithos.web.client.foldertree.File;
41
import gr.grnet.pithos.web.client.foldertree.Folder;
42
import gr.grnet.pithos.web.client.rest.GetRequest;
43
import gr.grnet.pithos.web.client.rest.RestException;
44
import gr.grnet.pithos.web.client.tagtree.TagTreeView.Templates;
45

  
46
import java.util.Iterator;
47
import java.util.LinkedHashSet;
48
import java.util.List;
49
import java.util.Set;
50

  
38 51
import com.google.gwt.cell.client.AbstractCell;
39 52
import com.google.gwt.cell.client.Cell;
40 53
import com.google.gwt.cell.client.TextCell;
41 54
import com.google.gwt.core.client.GWT;
42 55
import com.google.gwt.core.client.Scheduler;
43
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
44 56
import com.google.gwt.event.dom.client.ContextMenuEvent;
45 57
import com.google.gwt.safehtml.shared.SafeHtml;
46 58
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
......
49 61
import com.google.gwt.view.client.ListDataProvider;
50 62
import com.google.gwt.view.client.SingleSelectionModel;
51 63
import com.google.gwt.view.client.TreeViewModel;
52
import gr.grnet.pithos.web.client.Pithos;
53
import gr.grnet.pithos.web.client.foldertree.AccountResource;
54
import gr.grnet.pithos.web.client.foldertree.File;
55
import gr.grnet.pithos.web.client.foldertree.Folder;
56
import gr.grnet.pithos.web.client.rest.GetRequest;
57
import gr.grnet.pithos.web.client.rest.RestException;
58
import gr.grnet.pithos.web.client.tagtree.TagTreeView.Templates;
59
import java.util.ArrayList;
60
import java.util.Arrays;
61
import java.util.Iterator;
62
import java.util.LinkedHashSet;
63
import java.util.List;
64
import java.util.Set;
65 64

  
66 65
public class TagTreeViewModel implements TreeViewModel {
67 66

  
68 67
    private Cell<Tag> tagCell = new AbstractCell<Tag>(ContextMenuEvent.getType().getName()) {
69 68

  
70 69
       @Override
71
        public void render(Context context, Tag tag, SafeHtmlBuilder safeHtmlBuilder) {
70
        public void render(@SuppressWarnings("unused") Context context, Tag tag, SafeHtmlBuilder safeHtmlBuilder) {
72 71
            String html = AbstractImagePrototype.create(TagTreeView.images.tag()).getHTML();
73 72
            safeHtmlBuilder.appendHtmlConstant(html);
74 73
            safeHtmlBuilder.append(Templates.INSTANCE.nameSpan(tag.getName()));
75 74
        }
76 75

  
77 76
        @Override
78
        public void onBrowserEvent(Context context, com.google.gwt.dom.client.Element parent, Tag tag, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater<Tag> valueUpdater) {
77
        public void onBrowserEvent(@SuppressWarnings("unused") Context context, @SuppressWarnings("unused") com.google.gwt.dom.client.Element parent, Tag tag, com.google.gwt.dom.client.NativeEvent event, @SuppressWarnings("unused") com.google.gwt.cell.client.ValueUpdater<Tag> valueUpdater) {
79 78
            if (event.getType().equals(com.google.gwt.event.dom.client.ContextMenuEvent.getType().getName())) {
80 79
                TagTreeViewModel.this.selectionModel.setSelected(tag, true);
81 80
            }
......
85 84
    private ListDataProvider<String> rootDataProvider = new ListDataProvider<String>();
86 85
    private ListDataProvider<Tag> tagDataProvider = new ListDataProvider<Tag>();
87 86

  
88
    private SingleSelectionModel<Tag> selectionModel;
87
    protected SingleSelectionModel<Tag> selectionModel;
89 88

  
90
    private Pithos app;
89
    protected Pithos app;
91 90

  
92 91
    public TagTreeViewModel(Pithos _app, SingleSelectionModel<Tag> selectionModel) {
93 92
        app = _app;
......
127 126
            return false;
128 127
        if (o instanceof String)
129 128
            return tagDataProvider.getList().isEmpty();
130
        else
131
            return true;
129
		return true;
132 130
    }
133 131

  
134
    private void fetchTags(final Iterator<Folder> iter) {
135
        if (iter.hasNext()) {
136
            final Folder f = iter.next();
137

  
138
            String path = app.getApiPath() + app.getUsername() + "/" + f.getUri() + "?format=json&delimiter=/&prefix=" + f.getPrefix();
139
//            GetRequest<Tag> getFolder = new GetRequest<Tag>(Tag.class, path, f) {
140
//                @Override
141
//                public void onSuccess(Tag result) {
142
//                    fetchFolder(iter, dataProvider, tags);
143
//                }
144
//
145
//                @Override
146
//                public void onError(Throwable t) {
147
//                    GWT.log("Error getting folder", t);
148
//                    if (t instanceof RestException)
149
//                        app.displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
150
//                    else
151
//                        app.displayError("System error fetching folder: " + t.getMessage());
152
//                }
153
//            };
154
//            getFolder.setHeader("X-Auth-Token", app.getToken());
155
//            Scheduler.get().scheduleDeferred(getFolder);
156
        }
157
    }
158
//
159
//    public void initialize(AccountResource account) {
160
//        Iterator<Tag> iter = account.getContainers().iterator();
161
//        fetchFolder(iter, rootDataProvider, account.getContainers());
162
//    }
163
//
164 132
    public Tag getSelection() {
165 133
        return selectionModel.getSelectedObject();
166 134
    }
......
175 143
        fetchTag(iter, t, new LinkedHashSet<File>());
176 144
    }
177 145

  
178
    private void fetchTag(final Iterator<Folder> iter, final Tag t, final Set<File> files) {
146
    protected void fetchTag(final Iterator<Folder> iter, final Tag t, final Set<File> files) {
179 147
        if (iter.hasNext()) {
180 148
            Folder f = iter.next();
181 149
            String path = f.getUri() + "?format=json&meta=" + t.getName();
182 150
            GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), app.getUsername(), path) {
183 151
                @Override
184
                public void onSuccess(Folder result) {
185
                    files.addAll(result.getFiles());
152
                public void onSuccess(Folder _result) {
153
                    files.addAll(_result.getFiles());
186 154
                    fetchTag(iter, t, files);
187 155
                }
188 156

  
189 157
                @Override
190
                public void onError(Throwable t) {
191
                    GWT.log("Error getting folder", t);
192
                    if (t instanceof RestException)
193
                        app.displayError("Error getting folder: " + ((RestException) t).getHttpStatusText());
158
                public void onError(Throwable th) {
159
                    GWT.log("Error getting folder", th);
160
                    if (th instanceof RestException)
161
                        app.displayError("Error getting folder: " + ((RestException) th).getHttpStatusText());
194 162
                    else
195
                        app.displayError("System error fetching folder: " + t.getMessage());
163
                        app.displayError("System error fetching folder: " + th.getMessage());
196 164
                }
197 165
            };
198 166
            getFolder.setHeader("X-Auth-Token", app.getToken());

Also available in: Unified diff