building the GUI
This commit is contained in:
parent
af8d2525b9
commit
2ff9cbaf35
|
@ -118,7 +118,6 @@ import org.gcube.portlets.user.workspace.client.view.tree.AsyncTreePanel;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart.AddType;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart.AddType;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddUrl;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddUrl;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfo;
|
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfoBootstrap;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfoBootstrap;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink.Link_Type;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink.Link_Type;
|
||||||
|
|
|
@ -19,7 +19,6 @@ import com.extjs.gxt.ui.client.event.Listener;
|
||||||
import com.extjs.gxt.ui.client.widget.Dialog;
|
import com.extjs.gxt.ui.client.widget.Dialog;
|
||||||
import com.extjs.gxt.ui.client.widget.form.TextField;
|
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||||
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
||||||
import com.google.gwt.core.client.GWT;
|
|
||||||
import com.google.gwt.user.client.Command;
|
import com.google.gwt.user.client.Command;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
|
||||||
|
@ -82,7 +81,7 @@ public class DialogEditProperties extends Dialog {
|
||||||
@Override
|
@Override
|
||||||
public void show() {
|
public void show() {
|
||||||
resetForm();
|
resetForm();
|
||||||
loadGcubeItemProperties();
|
//loadGcubeItemProperties();
|
||||||
super.show();
|
super.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,26 +120,26 @@ public class DialogEditProperties extends Dialog {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadGcubeItemProperties() {
|
// private void loadGcubeItemProperties() {
|
||||||
// mask("Loading properties...");
|
// // mask("Loading properties...");
|
||||||
AppControllerExplorer.rpcWorkspaceService.loadGcubeItemProperties(item.getIdentifier(),
|
// AppControllerExplorer.rpcWorkspaceService.loadGcubeItemProperties(item.getIdentifier(),
|
||||||
new AsyncCallback<Map<String, String>>() {
|
// new AsyncCallback<Map<String, String>>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onSuccess(Map<String, String> result) {
|
||||||
|
// // unmask();
|
||||||
|
// setProperties(result);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onFailure(Throwable caught) {
|
||||||
|
// // unmask();
|
||||||
|
// GWT.log("an error occured in loadGcubeItemProperties " + item + " " + caught.getMessage());
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
@Override
|
public void setProperties(Map<String, String> result) {
|
||||||
public void onSuccess(Map<String, String> result) {
|
|
||||||
// unmask();
|
|
||||||
setProperties(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Throwable caught) {
|
|
||||||
// unmask();
|
|
||||||
GWT.log("an error occured in loadGcubeItemProperties " + item + " " + caught.getMessage());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setProperties(Map<String, String> result) {
|
|
||||||
fields = new ArrayList<TextField<String>>(result.size());
|
fields = new ArrayList<TextField<String>>(result.size());
|
||||||
for (String key : result.keySet()) {
|
for (String key : result.keySet()) {
|
||||||
TextField<String> field = new TextField<String>();
|
TextField<String> field = new TextField<String>();
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package org.gcube.portlets.user.workspace.client.view.windows;
|
package org.gcube.portlets.user.workspace.client.view.windows;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
||||||
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
||||||
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
||||||
|
|
||||||
|
import com.github.gwtbootstrap.client.ui.Button;
|
||||||
import com.github.gwtbootstrap.client.ui.ControlGroup;
|
import com.github.gwtbootstrap.client.ui.ControlGroup;
|
||||||
import com.github.gwtbootstrap.client.ui.Label;
|
import com.github.gwtbootstrap.client.ui.Label;
|
||||||
import com.github.gwtbootstrap.client.ui.TextArea;
|
import com.github.gwtbootstrap.client.ui.TextArea;
|
||||||
|
@ -14,8 +16,12 @@ import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.dom.client.Style.Unit;
|
import com.google.gwt.dom.client.Style.Unit;
|
||||||
import com.google.gwt.event.dom.client.ClickEvent;
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
import com.google.gwt.event.dom.client.ClickHandler;
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
|
import com.google.gwt.event.dom.client.KeyPressEvent;
|
||||||
|
import com.google.gwt.event.dom.client.KeyPressHandler;
|
||||||
import com.google.gwt.uibinder.client.UiBinder;
|
import com.google.gwt.uibinder.client.UiBinder;
|
||||||
import com.google.gwt.uibinder.client.UiField;
|
import com.google.gwt.uibinder.client.UiField;
|
||||||
|
import com.google.gwt.user.client.Command;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.Composite;
|
import com.google.gwt.user.client.ui.Composite;
|
||||||
import com.google.gwt.user.client.ui.HTML;
|
import com.google.gwt.user.client.ui.HTML;
|
||||||
|
@ -34,10 +40,12 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String UNKNOWN = "unknown";
|
public static final String UNKNOWN = "unknown";
|
||||||
|
|
||||||
|
private Map<String, String> gCubeProperties;
|
||||||
|
|
||||||
@UiField
|
@UiField
|
||||||
HorizontalPanel hpItemType;
|
HorizontalPanel hpItemType;
|
||||||
|
|
||||||
@UiField
|
@UiField
|
||||||
HTML txtName;
|
HTML txtName;
|
||||||
|
|
||||||
|
@ -53,8 +61,28 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
@UiField
|
@UiField
|
||||||
HTML txtIsPublic;
|
HTML txtIsPublic;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
ControlGroup cgThreddsSynched;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
HTML txtThreddsSynched;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
ControlGroup cgGcubeProperties;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
TextArea txtAreaGcubeProperties;
|
||||||
|
|
||||||
@UiField
|
@UiField
|
||||||
TextArea txtAreaDescription;
|
TextArea txtAreaDescription;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
Button buttonUpdateDescription;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
Button buttonUpdateGcubeProperties;
|
||||||
|
|
||||||
|
private FileModel fileModel;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TextField<String> txtType = new TextField<String>(); private
|
* TextField<String> txtType = new TextField<String>(); private
|
||||||
|
@ -76,21 +104,27 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
|
|
||||||
public DialogGetInfoBootstrap(final FileModel fileModel) {
|
public DialogGetInfoBootstrap(final FileModel fileModel) {
|
||||||
initWidget(uiBinder.createAndBindUi(this));
|
initWidget(uiBinder.createAndBindUi(this));
|
||||||
|
this.fileModel = fileModel;
|
||||||
|
|
||||||
hpItemType.add(fileModel.getIcon());
|
hpItemType.add(fileModel.getIcon());
|
||||||
Label labelItemType = new Label();
|
Label labelItemType = new Label();
|
||||||
labelItemType.setType(LabelType.INFO);
|
labelItemType.setType(LabelType.INFO);
|
||||||
labelItemType.getElement().getStyle().setMarginLeft(10, Unit.PX);
|
labelItemType.getElement().getStyle().setMarginLeft(10, Unit.PX);
|
||||||
String label = null;
|
String label = null;
|
||||||
|
|
||||||
GXTFolderItemTypeEnum typeEnum = fileModel.getGXTFolderItemType();
|
GXTFolderItemTypeEnum typeEnum = fileModel.getGXTFolderItemType();
|
||||||
if(typeEnum!=null) {
|
if (typeEnum != null) {
|
||||||
label = typeEnum.getLabel();
|
label = typeEnum.getLabel();
|
||||||
label = label.replace("External ", "");
|
label = label.replace("External ", "");
|
||||||
}else {
|
|
||||||
|
//loading gcube properties
|
||||||
|
if(typeEnum.equals(GXTFolderItemTypeEnum.GCUBE_ITEM))
|
||||||
|
loadGcubeItemProperties();
|
||||||
|
|
||||||
|
} else {
|
||||||
label = fileModel.getType();
|
label = fileModel.getType();
|
||||||
}
|
}
|
||||||
|
|
||||||
labelItemType.setText(label);
|
labelItemType.setText(label);
|
||||||
|
|
||||||
hpItemType.add(labelItemType);
|
hpItemType.add(labelItemType);
|
||||||
|
@ -106,17 +140,14 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
|
|
||||||
if (fileModel.isDirectory()) {
|
if (fileModel.isDirectory()) {
|
||||||
cgTxtIsPublic.setVisible(true);
|
cgTxtIsPublic.setVisible(true);
|
||||||
txtIsPublic.setHTML(fileModel.isPublic() + "");
|
htmlSetValue(txtIsPublic, fileModel.isPublic() + "");
|
||||||
|
|
||||||
/*
|
if (fileModel.getSynchedThreddsStatus() != null) {
|
||||||
* if (fileModel.getSynchedThreddsStatus() != null) { txtThreddsSynched = new
|
txtThreddsSynched.setVisible(true);
|
||||||
* TextField<String>(); txtThreddsSynched.setFieldLabel("Thredds Sync");
|
htmlSetValue(txtThreddsSynched, fileModel.getSynchedThreddsStatus() + "");
|
||||||
* txtThreddsSynched.setReadOnly(true);
|
txtThreddsSynched.setHTML(fileModel.getSynchedThreddsStatus() + "");
|
||||||
* txtThreddsSynched.setValue(fileModel.getSynchedThreddsStatus() + "");
|
|
||||||
* add(txtThreddsSynched);
|
}
|
||||||
*
|
|
||||||
* }
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,15 +156,54 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
// add(txtAreaDescription);
|
// add(txtAreaDescription);
|
||||||
} else
|
} else
|
||||||
loadDescription(fileModel.getIdentifier());
|
loadDescription(fileModel.getIdentifier());
|
||||||
|
|
||||||
addHandlers();
|
addHandlers();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addHandlers() {
|
private void addHandlers() {
|
||||||
txtAreaDescription.addClickHandler(new ClickHandler() {
|
|
||||||
|
txtAreaDescription.addKeyPressHandler(new KeyPressHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onKeyPress(KeyPressEvent event) {
|
||||||
|
|
||||||
|
GWT.log(event.getUnicodeCharCode()+"");
|
||||||
|
|
||||||
|
if(event.getUnicodeCharCode()==13) {
|
||||||
|
txtAreaDescription.setReadOnly(true);
|
||||||
|
Window.alert("Updating description");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
buttonUpdateDescription.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
|
txtAreaDescription.setReadOnly(false);
|
||||||
|
txtAreaDescription.setFocus(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
final Command cmdReloadProperties = new Command() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
loadGcubeItemProperties();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
buttonUpdateGcubeProperties.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(ClickEvent event) {
|
||||||
|
|
||||||
|
DialogEditProperties editProperties = new DialogEditProperties(fileModel, cmdReloadProperties);
|
||||||
|
editProperties.setProperties(gCubeProperties);
|
||||||
|
editProperties.setZIndex(99999);
|
||||||
|
editProperties.show();
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -157,13 +227,13 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
GWT.log("failure get list parents by item identifier " + caught);
|
GWT.log("failure get list parents by item identifier " + caught);
|
||||||
removePlaceHolder(txtLocation);
|
removePlaceHolder(txtLocation);
|
||||||
txtLocation.setHTML(UNKNOWN);
|
txtLocation.setHTML(UNKNOWN);
|
||||||
//txtLocation.set(false);
|
// txtLocation.set(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<FileModel> result) {
|
public void onSuccess(List<FileModel> result) {
|
||||||
removePlaceHolder(txtLocation);
|
removePlaceHolder(txtLocation);
|
||||||
|
|
||||||
String location = "";
|
String location = "";
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
for (FileModel fileModel : result) {
|
for (FileModel fileModel : result) {
|
||||||
|
@ -179,7 +249,7 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param identifier
|
* @param identifier
|
||||||
*/
|
*/
|
||||||
|
@ -207,17 +277,46 @@ public class DialogGetInfoBootstrap extends Composite {
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void loadGcubeItemProperties() {
|
||||||
|
// mask("Loading properties...");
|
||||||
|
AppControllerExplorer.rpcWorkspaceService.loadGcubeItemProperties(fileModel.getIdentifier(),
|
||||||
|
new AsyncCallback<Map<String, String>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Map<String, String> result) {
|
||||||
|
txtAreaGcubeProperties.setText("");
|
||||||
|
GWT.log("Gcube Item Properties: "+result);
|
||||||
|
gCubeProperties = result;
|
||||||
|
// unmask();
|
||||||
|
if(result!=null && result.size()>0) {
|
||||||
|
for (String key : result.keySet()) {
|
||||||
|
String text = txtAreaGcubeProperties.getText();
|
||||||
|
text+=key+"="+result.get(key)+";\n";
|
||||||
|
txtAreaGcubeProperties.setText(text);
|
||||||
|
}
|
||||||
|
cgGcubeProperties.setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
// unmask();
|
||||||
|
cgGcubeProperties.setVisible(false);
|
||||||
|
GWT.log("an error occured in loadGcubeItemProperties " + fileModel.getIdentifier() + " " + caught.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setPlaceholder(HTML html, String placeholder) {
|
private void setPlaceholder(HTML html, String placeholder) {
|
||||||
html.setHTML(placeholder);
|
html.setHTML(placeholder);
|
||||||
html.getElement().getStyle().setColor("#E8E8E8");
|
html.getElement().getStyle().setColor("#E8E8E8");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removePlaceHolder(HTML html) {
|
private void removePlaceHolder(HTML html) {
|
||||||
html.setHTML("");
|
html.setHTML("");
|
||||||
html.getElement().getStyle().setColor("#000");
|
html.getElement().getStyle().setColor("#000");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,6 +56,15 @@
|
||||||
</g:HTML>
|
</g:HTML>
|
||||||
</b:Controls>
|
</b:Controls>
|
||||||
</b:ControlGroup>
|
</b:ControlGroup>
|
||||||
|
<b:ControlGroup
|
||||||
|
addStyleNames="my-control-group-get-info"
|
||||||
|
ui:field="cgThreddsSynched" visible="false">
|
||||||
|
<b:ControlLabel>Thredds Sync</b:ControlLabel>
|
||||||
|
<b:Controls>
|
||||||
|
<g:HTML ui:field="txtThreddsSynched">
|
||||||
|
</g:HTML>
|
||||||
|
</b:Controls>
|
||||||
|
</b:ControlGroup>
|
||||||
<b:ControlGroup
|
<b:ControlGroup
|
||||||
addStyleNames="my-control-group-get-info">
|
addStyleNames="my-control-group-get-info">
|
||||||
<b:ControlLabel>Description</b:ControlLabel>
|
<b:ControlLabel>Description</b:ControlLabel>
|
||||||
|
@ -63,15 +72,31 @@
|
||||||
<b:TextArea ui:field="txtAreaDescription"
|
<b:TextArea ui:field="txtAreaDescription"
|
||||||
readOnly="true">
|
readOnly="true">
|
||||||
</b:TextArea>
|
</b:TextArea>
|
||||||
<b:Tooltip text='Update description' trigger="MANUAL">
|
<b:Tooltip trigger="MANUAL" text="Update description">
|
||||||
<b:Button icon="PENCIL"
|
<b:Button icon="PENCIL"
|
||||||
ui:field="buttonUpdateDescription" type="PRIMARY"></b:Button>
|
ui:field="buttonUpdateDescription" type="PRIMARY"></b:Button>
|
||||||
</b:Tooltip>
|
</b:Tooltip>
|
||||||
</b:Controls>
|
</b:Controls>
|
||||||
</b:ControlGroup>
|
</b:ControlGroup>
|
||||||
|
<b:ControlGroup
|
||||||
|
addStyleNames="my-control-group-get-info"
|
||||||
|
ui:field="cgGcubeProperties" visible="false">
|
||||||
|
<b:ControlLabel>Gcube Properties</b:ControlLabel>
|
||||||
|
<b:Controls>
|
||||||
|
<b:TextArea ui:field="txtAreaGcubeProperties"
|
||||||
|
readOnly="true">
|
||||||
|
</b:TextArea>
|
||||||
|
<b:Tooltip trigger="MANUAL"
|
||||||
|
text="Update Gcube Properties">
|
||||||
|
<b:Button icon="PENCIL"
|
||||||
|
ui:field="buttonUpdateGcubeProperties" type="PRIMARY"></b:Button>
|
||||||
|
</b:Tooltip>
|
||||||
|
</b:Controls>
|
||||||
|
</b:ControlGroup>
|
||||||
|
|
||||||
|
<b:Alert close="false" ui:field="errorAlert" type="ERROR"
|
||||||
|
visible="false"></b:Alert>
|
||||||
</b:Fieldset>
|
</b:Fieldset>
|
||||||
<b:Alert close="false" ui:field="errorAlert" type="ERROR"
|
|
||||||
visible="false"></b:Alert>
|
|
||||||
</b:Form>
|
</b:Form>
|
||||||
</g:HTMLPanel>
|
</g:HTMLPanel>
|
||||||
</ui:UiBinder>
|
</ui:UiBinder>
|
|
@ -13,7 +13,6 @@ import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel
|
||||||
|
|
||||||
import com.extjs.gxt.ui.client.Style.ButtonScale;
|
import com.extjs.gxt.ui.client.Style.ButtonScale;
|
||||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||||
import com.extjs.gxt.ui.client.data.BaseModel;
|
|
||||||
import com.extjs.gxt.ui.client.data.BaseModelData;
|
import com.extjs.gxt.ui.client.data.BaseModelData;
|
||||||
import com.extjs.gxt.ui.client.data.ModelData;
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
|
|
Loading…
Reference in New Issue