Revision 904447e4 src/gr/grnet/pithos/web/client/FilePropertiesDialog.java

b/src/gr/grnet/pithos/web/client/FilePropertiesDialog.java
47 47
import java.util.List;
48 48
import java.util.Map;
49 49

  
50
import org.apache.commons.collections.map.HashedMap;
51

  
52 50
import com.google.gwt.core.client.GWT;
53 51
import com.google.gwt.core.client.Scheduler;
54 52
import com.google.gwt.event.dom.client.ClickEvent;
......
111 109

  
112 110
    Images images = GWT.create(Images.class);
113 111

  
114
    private FlexTable metaTable;
112
    FlexTable metaTable;
115 113
	/**
116 114
	 * The widget's constructor.
117 115
	 */
......
124 122
		close.addClickHandler(new ClickHandler() {
125 123
			
126 124
			@Override
127
			public void onClick(ClickEvent event) {
125
			public void onClick(@SuppressWarnings("unused") ClickEvent event) {
128 126
				hide();
129 127
			}
130 128
		});
......
193 191
			}
194 192

  
195 193
			@Override
196
			protected void onUnauthorized(Response response) {
194
			protected void onUnauthorized(@SuppressWarnings("unused") Response response) {
197 195
				app.sessionExpired();
198 196
			}
199 197
		};
......
234 232

  
235 233
        generalPanel.add(generalTable);
236 234

  
235
        HorizontalPanel metaTitlePanel = new HorizontalPanel();
236
        metaTitlePanel.setSpacing(5);
237 237
        Label meta = new Label("Meta data");
238
        generalPanel.add(meta);
238
        meta.addStyleName("pithos-metaTitle");
239
        metaTitlePanel.add(meta);
240
        
239 241
		Image plus = new Image("images/plus.png");
240
		plus.addStyleName("pithos-addInvitationImg");
241
		generalPanel.add(plus);
242
		plus.addStyleName("pithos-addMetaImg");
243
		metaTitlePanel.add(plus);
244
		
245
		generalPanel.add(metaTitlePanel);
242 246
		
243 247
		metaTable = new FlexTable();
244 248
		metaTable.setCellSpacing(0);
......
250 254
		for (String metaKey : file.getMeta().keySet()) {
251 255
			addFormLine(metaTable, rows++, metaKey, file.getMeta().get(metaKey));
252 256
		}
257
		if (rows == 1) //If no meta add an empty line
258
			addFormLine(metaTable, rows++, "", "");
253 259
		
254 260
		plus.addClickHandler(new ClickHandler() {
255 261
			
256 262
			@Override
257
			public void onClick(ClickEvent event) {
263
			public void onClick(@SuppressWarnings("unused") ClickEvent event) {
258 264
				addFormLine(metaTable, metaTable.getRowCount(), "", "");
259 265
			}
260 266
		});
......
264 270
        return generalPanel;
265 271
    }
266 272

  
267
	private void addFormLine(final FlexTable table, int row, String name, String value) {
273
	void addFormLine(final FlexTable table, int row, String _name, String _value) {
268 274
		TextBox nameBox = new TextBox();
269
		nameBox.setText(name);
275
		nameBox.setText(_name);
276
		nameBox.addStyleName("pithos-metaName");
270 277
		table.setWidget(row, 0, nameBox);
271 278
		table.getFlexCellFormatter().setStyleName(1, 0, "props-values");
272 279

  
273 280
		TextBox valueBox = new TextBox();
274
		valueBox.setText(value);
281
		valueBox.setText(_value);
282
		valueBox.addStyleName("pithos-metaValue");
275 283
		table.setWidget(row, 1, valueBox);
276 284
		table.getFlexCellFormatter().setStyleName(1, 1, "props-values");
277 285
		
278 286
		Image delete = new Image("images/delete.png");
279
		delete.addStyleName("pithos-invitationDeleteImg");
287
		delete.addStyleName("pithos-metaDeleteImg");
280 288
		delete.addClickHandler(new ClickHandler() {
281 289
			
282 290
			@Override
......
412 420
        for (int row = 1; row < metaTable.getRowCount(); row++) {
413 421
        	String key = ((TextBox) metaTable.getWidget(row, 0)).getText().trim();
414 422
        	String value = ((TextBox) metaTable.getWidget(row, 1)).getText().trim();
415
        	newMeta.put(key, value);
423
        	if (key.length() > 0 && value.length() > 0)
424
        		newMeta.put(key, value);
416 425
        }
417 426

  
418 427
        if (newFilename != null) {
......
430 439
                }
431 440

  
432 441
				@Override
433
				protected void onUnauthorized(Response response) {
442
				protected void onUnauthorized(@SuppressWarnings("unused") Response response) {
434 443
					app.sessionExpired();
435 444
				}
436 445
            };
......
458 467
                }
459 468

  
460 469
				@Override
461
				protected void onUnauthorized(Response response) {
470
				protected void onUnauthorized(@SuppressWarnings("unused") Response response) {
462 471
					app.sessionExpired();
463 472
				}
464 473
            };
465 474
            updateFile.setHeader("X-Auth-Token", app.getToken());
466
            for (String t : file.getMeta().keySet()) {
467
        		updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(t.trim()), "~");
475
            
476
            if (newMeta != null) {
477
	            for (String t : file.getMeta().keySet()) {
478
	        		updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(t.trim()), "~");
479
	            }
480
	            
481
	            for (String key : newMeta.keySet())
482
	                updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(key.trim()), URL.encodePathSegment(newMeta.get(key)));
468 483
            }
469
            for (String key : newMeta.keySet())
470
                updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(key.trim()), URL.encodePathSegment(newMeta.get(key)));
471 484
            
472 485
            if (published != null)
473 486
                updateFile.setHeader("X-Object-Public", published.toString());

Also available in: Unified diff