Revision 7e8e9ff0

b/src/gr/grnet/pithos/web/client/PithosDisclosurePanel.css
36 36
.disclosurePanel {
37 37
	padding-left: 10px;
38 38
}
39

  
40
.content {
41
	padding: 4px 0px 4px 8px;
42
	margin-left: 6px;
43
}
b/src/gr/grnet/pithos/web/client/PithosDisclosurePanel.java
58 58

  
59 59
	public interface Style extends CssResource {
60 60
		String disclosurePanel();
61
		
62
		String content();
61 63
	}
62 64
	
63 65
	public interface Resources extends ClientBundle {
......
76 78
	
77 79
	DisclosurePanel panel;
78 80
	
79
	public PithosDisclosurePanel(final Resources resources, final String title, boolean open) {
81
	Resources resources;
82
	
83
	public PithosDisclosurePanel(final Resources _resources, final String title, boolean open) {
84
		resources = _resources;
80 85
		resources.pithosDisclosurePanelCss().ensureInjected();
81 86
		panel = new DisclosurePanel();
82 87
		panel.addStyleName(resources.pithosDisclosurePanelCss().disclosurePanel());
......
97 102
				panel.setHeader(createHeader(resources, title, false));
98 103
			}
99 104
		});
105
		
100 106
		initWidget(panel);
101 107
	}
102 108
	
103 109
	HTML createHeader(Resources resources, String title, boolean open) {
104 110
        SafeHtmlBuilder sb = new SafeHtmlBuilder();
105
        sb.appendHtmlConstant(AbstractImagePrototype.create(resources.icon()).getHTML()).appendHtmlConstant(" ");
111
        sb.appendHtmlConstant(AbstractImagePrototype.create(resources.icon()).getHTML());
106 112
        sb.append(Templates.INSTANCE.nameSpan(title));
107
        sb.appendHtmlConstant(AbstractImagePrototype.create(open ? resources.open() : resources.closed()).getHTML());
113
       	sb.appendHtmlConstant(AbstractImagePrototype.create(open ? resources.open() : resources.closed()).getHTML());
108 114
        return new HTML(sb.toSafeHtml());
109 115
	}
110 116
	
111 117
	public void add(IsWidget widget) {
112 118
		panel.add(widget);
119
		panel.getContent().removeStyleName("content");
120
		panel.getContent().addStyleName(resources.pithosDisclosurePanelCss().content());
113 121
	}
114 122
}
b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeView.java
38 38
import gr.grnet.pithos.web.client.FolderContextMenu;
39 39
import gr.grnet.pithos.web.client.PithosDisclosurePanel;
40 40
import gr.grnet.pithos.web.client.TreeView;
41
import gr.grnet.pithos.web.client.grouptree.GroupTreeView.Templates;
41 42

  
42 43
import com.google.gwt.core.client.GWT;
43 44
import com.google.gwt.resources.client.ImageResource;
......
45 46
import com.google.gwt.resources.client.ImageResource.RepeatStyle;
46 47
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
47 48
import com.google.gwt.safehtml.shared.SafeHtml;
49
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
48 50
import com.google.gwt.user.cellview.client.CellTree;
49 51
import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
50 52
import com.google.gwt.user.cellview.client.TreeNode;
51 53
import com.google.gwt.user.client.Command;
54
import com.google.gwt.user.client.ui.AbstractImagePrototype;
52 55
import com.google.gwt.user.client.ui.Composite;
56
import com.google.gwt.user.client.ui.HTML;
53 57
import com.google.gwt.user.client.ui.Tree;
58
import com.google.gwt.user.client.ui.VerticalPanel;
54 59

  
55 60
public class FolderTreeView extends Composite implements TreeView {
56 61

  
......
123 128
        @Source("gr/grnet/pithos/resources/home22.png")
124 129
        ImageResource home();
125 130

  
126
        @Source("gr/grnet/pithos/resources/folder22.png")
131
        @Source("gr/grnet/pithos/resources/2folder22.png")
127 132
        public ImageResource folderYellow();
128 133

  
129 134
        @Source("gr/grnet/pithos/resources/mimetypes/document.png")
130 135
        ImageResource document();
131 136

  
132
        @Source("gr/grnet/pithos/resources/othersshared.png")
133
        ImageResource othersShared();
134

  
135 137
        @Source("gr/grnet/pithos/resources/myshared22.png")
136 138
        ImageResource myShared();
137 139

  
......
167 169
    public FolderTreeView(FolderTreeViewModel viewModel) {
168 170
        this.model = viewModel;
169 171

  
170
        PithosDisclosurePanel panel = new PithosDisclosurePanel((Resources) GWT.create(Resources.class), "My Files", true);
172
        VerticalPanel panel = new VerticalPanel();
173
        panel.addStyleName("pithos-folderTreeSection");
174
        Resources resources = GWT.create(Resources.class);
175
        SafeHtmlBuilder sb = new SafeHtmlBuilder();
176
        sb.appendHtmlConstant(AbstractImagePrototype.create(resources.icon()).getHTML());
177
        sb.append(Templates.INSTANCE.nameSpan("My Files"));
178
        panel.add(new HTML(sb.toSafeHtml()));
179

  
171 180

  
172 181
        /*
173 182
         * Create the tree using the model. We use <code>null</code> as the default
......
177 186
        CellTree.Resources res = GWT.create(BasicResources.class);
178 187
        tree = new CellTree(model, null, res);
179 188
        tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
180

  
189
        tree.addStyleName("pithos-folderTreeSectionContent");
181 190
        panel.add(tree);
191
        
182 192
        initWidget(panel);
183 193
    }
184 194

  
b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java
72 72
            String html;
73 73
            SafeHtml name;
74 74
        	if (folder.isHome()) {
75
        		html = AbstractImagePrototype.create(FolderTreeView.images.home()).getHTML();
75
        		html = AbstractImagePrototype.create(FolderTreeView.images.folderYellow()).getHTML();
76 76
        		name = Templates.INSTANCE.nameSpan("Pithos");
77 77
        	}
78 78
        	else if (folder.isTrash()) {
b/src/gr/grnet/pithos/web/client/grouptree/GroupTreeView.java
131 131
    public static interface Templates extends SafeHtmlTemplates {
132 132
        public Templates INSTANCE = GWT.create(Templates.class);
133 133

  
134
        @Template("<span>{0}</span>")
134
        @Template("<span style='margin-left:5px;'>{0}</span>")
135 135
        public SafeHtml nameSpan(String name);
136 136
      }
137 137

  
b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java
55 55
public class MysharedTreeView extends Composite implements TreeView {
56 56

  
57 57
    public void updateChildren(Folder folder) {
58
        TreeNode root = ((CellTree) getWidget()).getRootTreeNode();
58
        TreeNode root = tree.getRootTreeNode();
59 59
        updateChildren(root, folder);
60 60
    }
61 61

  
......
105 105
        @Source("gr/grnet/pithos/resources/home22.png")
106 106
        ImageResource home();
107 107

  
108
        @Source("gr/grnet/pithos/resources/folder22.png")
108
        @Source("gr/grnet/pithos/resources/2folder22.png")
109 109
        public ImageResource folderYellow();
110 110

  
111 111
        @Source("gr/grnet/pithos/resources/mimetypes/document.png")
112 112
        ImageResource document();
113 113

  
114
        @Source("gr/grnet/pithos/resources/othersshared.png")
115
        ImageResource othersShared();
116

  
117 114
        @Source("gr/grnet/pithos/resources/myshared22.png")
118 115
        ImageResource myShared();
119 116

  
117
        @Source("gr/grnet/pithos/resources/sharedbyme22.png")
118
        ImageResource sharedByMe();
119

  
120 120
        @Source("gr/grnet/pithos/resources/folder_user.png")
121 121
        ImageResource sharedFolder();
122 122
    }
......
132 132

  
133 133
    interface Resources extends gr.grnet.pithos.web.client.PithosDisclosurePanel.Resources {
134 134
    	@Override
135
		@Source("gr/grnet/pithos/resources/myshared22.png")
135
		@Source("gr/grnet/pithos/resources/sharedbyme22.png")
136 136
    	ImageResource icon();
137 137
    }
138 138

  
139 139
    private MysharedTreeViewModel model;
140 140

  
141
    private CellTree tree;
142
    
141 143
    public MysharedTreeView(MysharedTreeViewModel viewModel) {
142 144
        this.model = viewModel;
143 145
        
......
148 150
         * CustomTreeModel#getNodeInfo();
149 151
         */
150 152
        CellTree.Resources res = GWT.create(BasicResources.class);
151
        CellTree tree = new CellTree(model, null, res);
153
        tree = new CellTree(model, null, res);
152 154
        tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
153 155

  
154 156
        panel.add(tree);
b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java
119 119
    @Override
120 120
    public <T> NodeInfo<?> getNodeInfo(T value) {
121 121
        if (value == null) {
122
            ListDataProvider<String> rootDataProvider = new ListDataProvider<String>();
123
            rootDataProvider.getList().add("Shared by me");
124
            return new DefaultNodeInfo<String>(rootDataProvider, new TextCell(new SafeHtmlRenderer<String>() {
125
                @Override
126
                public SafeHtml render(String object) {
127
                    SafeHtmlBuilder builder = new SafeHtmlBuilder();
128
                    render(object, builder);
129
                    return builder.toSafeHtml();
130
                }
131

  
132
                @Override
133
                public void render(String object, SafeHtmlBuilder builder) {
134
                    String html = AbstractImagePrototype.create(MysharedTreeView.images.myShared()).getHTML();
135
                    builder.appendHtmlConstant(html).appendHtmlConstant("&nbsp;");
136
                    builder.append(MysharedTreeView.Templates.INSTANCE.nameSpan(object));
137
                }
138
            }),  null, null);
139
        }
140
        else if (value instanceof String) {
141 122
        	fetchSharedContainers(null);
142 123
            return new DefaultNodeInfo<Folder>(firstLevelDataProvider, folderCell, selectionModel, null);
143 124
        }
144
        else {
145
            final Folder f = (Folder) value;
146
            if (dataProviderMap.get(f) == null) {
147
                dataProviderMap.put(f, new ListDataProvider<Folder>());
148
            }
149
            final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f);
150
            fetchFolder(f, dataProvider, false);
151
            return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
125
        final Folder f = (Folder) value;
126
        if (dataProviderMap.get(f) == null) {
127
            dataProviderMap.put(f, new ListDataProvider<Folder>());
152 128
        }
129
        final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f);
130
        fetchFolder(f, dataProvider, false);
131
        return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
153 132
    }
154 133

  
155 134
	private void fetchSharedContainers(final Command callback) {
b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeView.java
56 56
public class OtherSharedTreeView extends Composite implements TreeView {
57 57

  
58 58
    public void updateChildren(Folder folder) {
59
        TreeNode root = ((CellTree) getWidget()).getRootTreeNode();
59
        TreeNode root = tree.getRootTreeNode();
60 60
        updateChildren(root, folder);
61 61
    }
62 62

  
......
106 106
        @Source("gr/grnet/pithos/resources/home22.png")
107 107
        ImageResource home();
108 108

  
109
        @Source("gr/grnet/pithos/resources/folder22.png")
109
        @Source("gr/grnet/pithos/resources/2folder22.png")
110 110
        public ImageResource folderYellow();
111 111

  
112 112
        @Source("gr/grnet/pithos/resources/mimetypes/document.png")
113 113
        ImageResource document();
114 114

  
115
        @Source("gr/grnet/pithos/resources/othersshared.png")
115
        @Source("gr/grnet/pithos/resources/sharedtome22.png")
116 116
        ImageResource othersShared();
117 117

  
118 118
        @Source("gr/grnet/pithos/resources/myshared22.png")
......
136 136

  
137 137
    interface Resources extends gr.grnet.pithos.web.client.PithosDisclosurePanel.Resources {
138 138
    	@Override
139
		@Source("gr/grnet/pithos/resources/othersshared.png")
139
		@Source("gr/grnet/pithos/resources/sharedtome22.png")
140 140
    	ImageResource icon();
141 141
    }
142 142

  
143 143
    private OtherSharedTreeViewModel model;
144 144

  
145
    private CellTree tree;
146
    
145 147
    public OtherSharedTreeView(OtherSharedTreeViewModel viewModel) {
146 148
        this.model = viewModel;
147 149
        
......
152 154
         * CustomTreeModel#getNodeInfo();
153 155
         */
154 156
        CellTree.Resources res = GWT.create(BasicResources.class);
155
        CellTree tree = new CellTree(model, null, res);
157
        tree = new CellTree(model, null, res);
156 158
        tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
157 159

  
158 160
        panel.add(tree);
b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java
121 121
    @Override
122 122
    public <T> NodeInfo<?> getNodeInfo(T value) {
123 123
        if (value == null) {
124
            rootDataProvider.getList().add(treeTitle);
125
            return new DefaultNodeInfo<String>(rootDataProvider, new TextCell(new SafeHtmlRenderer<String>() {
126
                @Override
127
                public SafeHtml render(String object) {
124
        	fetchSharingUsers(null);
125
            return new DefaultNodeInfo<String>(userLevelDataProvider, new TextCell(new SafeHtmlRenderer<String>() {
126

  
127
				@Override
128
				public SafeHtml render(String object) {
128 129
                    SafeHtmlBuilder builder = new SafeHtmlBuilder();
129 130
                    render(object, builder);
130 131
                    return builder.toSafeHtml();
131
                }
132
				}
132 133

  
133
                @Override
134
                public void render(String object, SafeHtmlBuilder builder) {
135
                    String html = AbstractImagePrototype.create(OtherSharedTreeView.images.othersShared()).getHTML();
134
				@Override
135
				public void render(String object, SafeHtmlBuilder builder) {
136
                    String html = AbstractImagePrototype.create(OtherSharedTreeView.images.myShared()).getHTML();
136 137
                    builder.appendHtmlConstant(html).appendHtmlConstant("&nbsp;");
137 138
                    builder.append(OtherSharedTreeView.Templates.INSTANCE.nameSpan(object));
138
                }
139
            }),  null, null);
139
				}
140
			}), null, null);
140 141
        }
141 142
        else if (value instanceof String) {
142
        	if (value.equals(treeTitle)) {
143
	        	fetchSharingUsers(null);
144
	            return new DefaultNodeInfo<String>(userLevelDataProvider, new TextCell(new SafeHtmlRenderer<String>() {
145

  
146
					@Override
147
					public SafeHtml render(String object) {
148
	                    SafeHtmlBuilder builder = new SafeHtmlBuilder();
149
	                    render(object, builder);
150
	                    return builder.toSafeHtml();
151
					}
152

  
153
					@Override
154
					public void render(String object, SafeHtmlBuilder builder) {
155
	                    String html = AbstractImagePrototype.create(OtherSharedTreeView.images.user()).getHTML();
156
	                    builder.appendHtmlConstant(html).appendHtmlConstant("&nbsp;");
157
	                    builder.append(OtherSharedTreeView.Templates.INSTANCE.nameSpan(object));
158
					}
159
				}), null, null);
160
        	}
161 143
			String username = (String) value;
162 144
			if (userDataProviderMap.get(username) == null) {
163 145
				userDataProviderMap.put(username, new ListDataProvider<Folder>());
b/src/gr/grnet/pithos/web/public/pithos.css
377 377
    text-align: center;
378 378
    height: auto;
379 379
    padding: 8px;
380
    width: 146px;
381
    border: none;
380
    width: 127px;
381
    border: 0px;
382 382
}
383 383

  
384 384
.pithos-uploadButton-loading {
......
733 733
.pithos-versionList {
734 734
	padding-right: 5px;
735 735
}
736

  
737
.pithos-folderTreeSection {
738
	padding-left: 10px;
739
}
740

  
741
.pithos-folderTreeSectionContent {
742
	padding: 4px 0px 4px 8px;
743
	margin-left: 6px;
744
}

Also available in: Unified diff