Revision 6e522e4f web_client/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java
b/web_client/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java | ||
---|---|---|
37 | 37 |
import com.google.gwt.core.client.Scheduler; |
38 | 38 |
import com.google.gwt.event.dom.client.KeyDownEvent; |
39 | 39 |
import com.google.gwt.user.client.Command; |
40 |
import gr.grnet.pithos.web.client.FilePropertiesDialog.Images; |
|
40 | 41 |
import gr.grnet.pithos.web.client.foldertree.File; |
41 | 42 |
import gr.grnet.pithos.web.client.foldertree.Folder; |
42 | 43 |
import gr.grnet.pithos.web.client.foldertree.Resource; |
... | ... | |
82 | 83 |
*/ |
83 | 84 |
private final boolean create; |
84 | 85 |
|
86 |
private PermissionsList permList; |
|
87 |
|
|
85 | 88 |
final Folder folder; |
86 | 89 |
|
87 | 90 |
final TabPanel inner; |
... | ... | |
89 | 92 |
/** |
90 | 93 |
* The widget's constructor. |
91 | 94 |
*/ |
92 |
public FolderPropertiesDialog(Pithos app, boolean _create, Folder selected) { |
|
95 |
public FolderPropertiesDialog(final Pithos app, boolean _create, Folder selected) {
|
|
93 | 96 |
this.app = app; |
94 | 97 |
setAnimationEnabled(true); |
95 | 98 |
|
... | ... | |
111 | 114 |
// Inner contains generalPanel and permPanel |
112 | 115 |
inner = new DecoratedTabPanel(); |
113 | 116 |
inner.setAnimationEnabled(true); |
117 |
|
|
114 | 118 |
VerticalPanel generalPanel = new VerticalPanel(); |
115 |
VerticalPanel permPanel = new VerticalPanel(); |
|
116 |
final HorizontalPanel permForAll = new HorizontalPanel(); |
|
117 |
final HorizontalPanel pathPanel = new HorizontalPanel(); |
|
118 |
HorizontalPanel buttons = new HorizontalPanel(); |
|
119 |
HorizontalPanel permButtons = new HorizontalPanel(); |
|
120 |
|
|
121 |
inner.add(generalPanel, "General"); |
|
122 |
if (!create) |
|
123 |
inner.add(permPanel, "Sharing"); |
|
124 |
inner.selectTab(0); |
|
125 |
|
|
126 |
FlexTable generalTable = new FlexTable(); |
|
127 |
generalTable.setText(0, 0, "Name"); |
|
128 |
generalTable.setText(1, 0, "Parent"); |
|
129 |
generalTable.setText(2, 0, "Creator"); |
|
130 |
generalTable.setText(3, 0, "Last modified"); |
|
131 |
folderName.setText(create ? "" : folder.getName()); |
|
119 |
FlexTable generalTable = new FlexTable(); |
|
120 |
generalTable.setText(0, 0, "Name"); |
|
121 |
generalTable.setText(1, 0, "Parent"); |
|
122 |
generalTable.setText(2, 0, "Creator"); |
|
123 |
generalTable.setText(3, 0, "Last modified"); |
|
124 |
folderName.setText(create ? "" : folder.getName()); |
|
132 | 125 |
folderName.setReadOnly(folder.isContainer() && !create); |
133 |
generalTable.setWidget(0, 1, folderName); |
|
126 |
generalTable.setWidget(0, 1, folderName); |
|
127 |
|
|
128 |
if (create) |
|
129 |
generalTable.setText(1, 1, folder.getName()); |
|
130 |
else |
|
131 |
generalTable.setText(1, 1, folder.getPrefix()); |
|
132 |
generalTable.setText(2, 1, ""); |
|
133 |
DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a"); |
|
134 |
if(folder.getLastModified() != null) |
|
135 |
generalTable.setText(3, 1, formatter.format(folder.getLastModified())); |
|
136 |
generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels"); |
|
137 |
generalTable.getFlexCellFormatter().setStyleName(1, 0, "props-labels"); |
|
138 |
generalTable.getFlexCellFormatter().setStyleName(2, 0, "props-labels"); |
|
139 |
generalTable.getFlexCellFormatter().setStyleName(3, 0, "props-labels"); |
|
140 |
generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values"); |
|
141 |
generalTable.getFlexCellFormatter().setStyleName(1, 1, "props-values"); |
|
142 |
generalTable.getFlexCellFormatter().setStyleName(2, 1, "props-values"); |
|
143 |
generalTable.getFlexCellFormatter().setStyleName(3, 1, "props-values"); |
|
144 |
generalTable.setCellSpacing(4); |
|
145 |
generalPanel.add(generalTable); |
|
146 |
inner.add(generalPanel, "General"); |
|
147 |
|
|
148 |
VerticalPanel permPanel = new VerticalPanel(); |
|
149 |
FilePropertiesDialog.Images images = GWT.create(FilePropertiesDialog.Images.class); |
|
150 |
boolean permsReadonly = folder.getInheritedPermissionsFrom() != null || folder.existChildrenPermissions(); |
|
151 |
permList = new PermissionsList(images, folder.getPermissions(), folder.getOwner(), permsReadonly); |
|
152 |
permPanel.add(permList); |
|
153 |
final HorizontalPanel permForAll = new HorizontalPanel(); |
|
154 |
final HorizontalPanel pathPanel = new HorizontalPanel(); |
|
155 |
|
|
156 |
if (!permsReadonly) { |
|
157 |
HorizontalPanel permButtons = new HorizontalPanel(); |
|
158 |
Button add = new Button("Add Group", new ClickHandler() { |
|
159 |
@Override |
|
160 |
public void onClick(ClickEvent event) { |
|
161 |
PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false); |
|
162 |
dlg.center(); |
|
163 |
} |
|
164 |
}); |
|
165 |
permButtons.add(add); |
|
166 |
permButtons.setCellHorizontalAlignment(add, HasHorizontalAlignment.ALIGN_CENTER); |
|
134 | 167 |
|
135 |
if (create) |
|
136 |
generalTable.setText(1, 1, folder.getName()); |
|
137 |
else |
|
138 |
generalTable.setText(1, 1, folder.getPrefix()); |
|
139 |
generalTable.setText(2, 1, ""); |
|
140 |
DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a"); |
|
141 |
if(folder.getLastModified() != null) |
|
142 |
generalTable.setText(3, 1, formatter.format(folder.getLastModified())); |
|
143 |
generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels"); |
|
144 |
generalTable.getFlexCellFormatter().setStyleName(1, 0, "props-labels"); |
|
145 |
generalTable.getFlexCellFormatter().setStyleName(2, 0, "props-labels"); |
|
146 |
generalTable.getFlexCellFormatter().setStyleName(3, 0, "props-labels"); |
|
147 |
generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values"); |
|
148 |
generalTable.getFlexCellFormatter().setStyleName(1, 1, "props-values"); |
|
149 |
generalTable.getFlexCellFormatter().setStyleName(2, 1, "props-values"); |
|
150 |
generalTable.getFlexCellFormatter().setStyleName(3, 1, "props-values"); |
|
151 |
generalTable.setCellSpacing(4); |
|
168 |
Button addUser = new Button("Add User", new ClickHandler() { |
|
169 |
@Override |
|
170 |
public void onClick(ClickEvent event) { |
|
171 |
PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, true); |
|
172 |
dlg.center(); |
|
173 |
} |
|
174 |
}); |
|
175 |
addUser.getElement().setId("folderPropertiesDialog.button.addUser"); |
|
176 |
permButtons.add(addUser); |
|
177 |
permButtons.setCellHorizontalAlignment(addUser, HasHorizontalAlignment.ALIGN_CENTER); |
|
178 |
permButtons.setSpacing(8); |
|
179 |
permButtons.addStyleName("gss-TabPanelBottom"); |
|
180 |
permPanel.add(permButtons); |
|
181 |
} |
|
152 | 182 |
|
183 |
if (!create) |
|
184 |
inner.add(permPanel, "Sharing"); |
|
185 |
inner.selectTab(0); |
|
186 |
|
|
187 |
outer.add(inner); |
|
188 |
|
|
189 |
HorizontalPanel buttons = new HorizontalPanel(); |
|
153 | 190 |
// Create the 'Create/Update' button, along with a listener that hides the dialog |
154 | 191 |
// when the button is clicked and quits the application. |
155 | 192 |
String okLabel; |
... | ... | |
179 | 216 |
buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER); |
180 | 217 |
buttons.setSpacing(8); |
181 | 218 |
buttons.addStyleName("pithos-TabPanelBottom"); |
219 |
outer.add(buttons); |
|
220 |
outer.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER); |
|
221 |
outer.addStyleName("pithos-TabPanelBottom"); |
|
182 | 222 |
|
183 |
generalPanel.add(generalTable); |
|
184 |
|
|
185 |
|
|
186 |
outer.add(inner); |
|
187 |
outer.add(buttons); |
|
188 |
outer.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER); |
|
189 |
outer.addStyleName("pithos-TabPanelBottom"); |
|
190 |
|
|
191 |
setWidget(outer); |
|
192 |
|
|
193 |
/*if (create) |
|
194 |
folderName.setFocus(true); |
|
195 |
else |
|
196 |
ok.setFocus(true);*/ |
|
223 |
setWidget(outer); |
|
197 | 224 |
} |
198 | 225 |
|
199 | 226 |
@Override |
... | ... | |
212 | 239 |
// enter or escape is pressed. |
213 | 240 |
switch (evt.getKeyCode()) { |
214 | 241 |
case KeyCodes.KEY_ENTER: |
215 |
closeDialog(); |
|
216 | 242 |
createOrUpdateFolder(); |
243 |
closeDialog(); |
|
217 | 244 |
break; |
218 | 245 |
case KeyCodes.KEY_ESCAPE: |
219 | 246 |
closeDialog(); |
Also available in: Unified diff