diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java
index bd60f92..6d5049c 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java
@@ -378,5 +378,8 @@ public interface Icons extends ClientBundle {
@Source("icons/pencil16.png")
ImageResource pencil();
+
+ @Source("icons/edit16.png")
+ ImageResource edit();
}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java
index 2253829..3de1a50 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java
@@ -299,6 +299,11 @@ public class Resources {
return AbstractImagePrototype.create(ICONS.pencil());
}
+ public static AbstractImagePrototype getIconEdit(){
+
+ return AbstractImagePrototype.create(ICONS.edit());
+ }
+
public static AbstractImagePrototype getIconHistory(){
return AbstractImagePrototype.create(ICONS.history());
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/edit16.png b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/edit16.png
new file mode 100644
index 0000000..13be83b
Binary files /dev/null and b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/edit16.png differ
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogEditProperties.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogEditProperties.java
index ff4a5a7..f2fef3c 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogEditProperties.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogEditProperties.java
@@ -53,7 +53,7 @@ public class DialogEditProperties extends Dialog{
layout.setDefaultWidth(300);
setLayout(layout);
- setHeading("Set Properties: "+item.getName());
+ setHeading("Edit Properties: "+item.getName());
setButtonAlign(HorizontalAlignment.RIGHT);
setModal(true);
// setBodyBorder(true);
@@ -111,7 +111,7 @@ public class DialogEditProperties extends Dialog{
public void onSuccess(Void result) {
commad.execute();
if(closeOnSuccess)
- DialogEditProperties.this.hide();
+ DialogEditProperties.this.hide();
}
});
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java
index e315227..43a4846 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java
@@ -18,6 +18,7 @@ import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
import com.extjs.gxt.ui.client.widget.Html;
import com.extjs.gxt.ui.client.widget.Label;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.form.TextArea;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
@@ -110,10 +111,16 @@ public class DialogGetInfo extends Dialog {
hpGcubeProperties.add(labelProperties);
loadGcubeItemProperties(fileModel.getIdentifier());
htmlPropertiesWidget.setHeight(heightTextArea);
- htmlPropertiesWidget.setWidth("270px");
+ htmlPropertiesWidget.setWidth("275px");
- Image imgProperties = Resources.getIconPencil().createImage(); //EDIT PROPERTIES
- hpGcubeProperties.add(imgProperties);
+ LayoutContainer lc = new LayoutContainer();
+ lc.addStyleName("editPermissions");
+
+ Image imgProperties = Resources.getIconEdit().createImage(); //EDIT PROPERTIES
+ imgProperties.setTitle("Edit Properties");
+ lc.add(imgProperties);
+
+ hpGcubeProperties.add(lc);
final Command cmdReloadProperties = new Command() {
@@ -325,8 +332,7 @@ public class DialogGetInfo extends Dialog {
htmlPropertiesWidget.unmask();
GWT.log("an error occured in load properties by Id "+itemId + " "+caught.getMessage());
setVisibleGcubeProperties(true);
- htmlPropertiesWidget.setHtml("Error on recovering properties");
-
+ htmlPropertiesWidget.setHtml("Error on recovering properties");
}
@Override
diff --git a/src/main/java/org/gcube/portlets/user/workspace/public/workspacetree.css b/src/main/java/org/gcube/portlets/user/workspace/public/workspacetree.css
index f49ba88..63aaf9c 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/public/workspacetree.css
+++ b/src/main/java/org/gcube/portlets/user/workspace/public/workspacetree.css
@@ -163,4 +163,8 @@ table.userssuggest th {
height: 30px;
border-collapse: collapse;
border-spacing: 0px;
+}
+
+.editPermissions :hover{
+ cursor: pointer;
}
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java
index 5c8321f..9a5fa0b 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java
@@ -2604,7 +2604,7 @@ public class GWTWorkspaceBuilder {
for (String key : properties.keySet()) {
String value = properties.get(key);
-
+ logger.trace("Getting property: ["+key+","+properties.get(key)+"]");
html+=""+key+": ";
html+="";
html+=value;
@@ -2630,12 +2630,18 @@ public class GWTWorkspaceBuilder {
if(item instanceof GCubeItem){
GCubeItem gItem = (GCubeItem) item;
try {
- return gItem.getProperties().getProperties();
+ if(gItem.getProperties()!=null){
+ Map map = gItem.getProperties().getProperties();
+ HashMap properties = new HashMap(map.size()); //TO PREVENT GWT SERIALIZATION ERROR
+ for (String key : map.keySet())
+ properties.put(key, map.get(key));
+
+ return properties;
+ }
} catch (InternalErrorException e) {
logger.error("Error in server getItemProperties: ", e);
return null;
}
-
}
return null;
}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
index 0b35181..247cee9 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
@@ -3827,9 +3827,12 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
Workspace workspace = getWorkspace();
WorkspaceItem item = workspace.getItem(itemId);
if(item instanceof GCubeItem){
+ workspaceLogger.info("Adding "+properties.size()+" properties to GCubeItem: "+itemId);
GCubeItem gItem = (GCubeItem) item;
- for (String key : properties.keySet()) //ADD PROPERTIES
- gItem.getProperties().addProperty(key, properties.get(key));
+ for (String key : properties.keySet()) {//ADD PROPERTIES
+ workspaceLogger.trace("Adding property: ["+key+","+properties.get(key)+"]");
+ gItem.getProperties().addProperty(key, properties.get(key));
+ }
}else
throw new NoGcubeItemTypeException("The item is not a Gcube Item");