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(" "); |
|
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(" "); |
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(" "); |
|
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