workspace-tree-widget/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfoBootstrap.java

174 lines
4.8 KiB
Java

package org.gcube.portlets.user.workspace.client.view.windows;
import java.util.List;
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
import org.gcube.portlets.user.workspace.client.model.FileModel;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.TextArea;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
public class DialogGetInfoBootstrap extends Composite {
private static DialogGetInfoBootstrapUiBinder uiBinder = GWT.create(DialogGetInfoBootstrapUiBinder.class);
interface DialogGetInfoBootstrapUiBinder extends UiBinder<Widget, DialogGetInfoBootstrap> {
}
public DialogGetInfoBootstrap() {
initWidget(uiBinder.createAndBindUi(this));
}
public static final String UNKNOWN = "unknown";
@UiField
TextBox txtName;
@UiField
TextBox txtId;
@UiField
TextBox txtLocation;
@UiField
ControlGroup cgTxtIsPublic;
@UiField
TextBox txtIsPublic;
@UiField
TextArea txtAreaDescription;
/*
* TextField<String> txtType = new TextField<String>(); private
* TextField<String> txtCategory = new TextField<String>(); private
* TextField<String> txtOwner = new TextField<String>(); private
* TextField<String> txtLastMofication = new TextField<String>(); private
* TextField<String> txtCreated = new TextField<String>(); private
* TextField<String> txtSize = new TextField<String>(); private
* TextField<String> txtLocation = new TextField<String>(); private
* TextField<String> txtIsPublic = new TextField<String>(); private
* TextField<String> txtThreddsSynched = new TextField<String>(); private
* TextField<String> txtShared = new TextField<String>(); // private TextArea
* textAreaSharedWith = new TextArea(); private Html htmlUsersWidget = new
* Html(); private Html htmlPropertiesWidget = new Html(); private final
* NumberFormat number = ConstantsExplorer.numberFormatterKB; // private
* TextField<String> txtGcubeItemProperties; private HorizontalPanel
* hpGcubeProperties; private DialogEditProperties editProperties = null;
*/
public DialogGetInfoBootstrap(final FileModel fileModel) {
initWidget(uiBinder.createAndBindUi(this));
// Setting name
textFieldSetValue(txtName, fileModel.getName());
textFieldSetValue(txtId, fileModel.getIdentifier());
if (fileModel.isRoot())
txtLocation.setValue("/");
else
loadLocation(fileModel.getIdentifier());
if (fileModel.isDirectory()) {
cgTxtIsPublic.setVisible(true);
txtIsPublic.setValue(fileModel.isPublic() + "");
/*
* if (fileModel.getSynchedThreddsStatus() != null) { txtThreddsSynched = new
* TextField<String>(); txtThreddsSynched.setFieldLabel("Thredds Sync");
* txtThreddsSynched.setReadOnly(true);
* txtThreddsSynched.setValue(fileModel.getSynchedThreddsStatus() + "");
* add(txtThreddsSynched);
*
* }
*/
}
if (fileModel.isDirectory()) {
txtAreaDescription.setValue(fileModel.getDescription());
// add(txtAreaDescription);
} else
loadDescription(fileModel.getIdentifier());
}
private void textFieldSetValue(TextBox field, String value) {
if (value == null || value.isEmpty())
field.setValue(UNKNOWN);
else
field.setValue(value);
}
private void loadLocation(String itemId) {
txtLocation.setEnabled(false);
AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(itemId, false,
new AsyncCallback<List<FileModel>>() {
@Override
public void onFailure(Throwable caught) {
GWT.log("failure get list parents by item identifier " + caught);
txtLocation.setValue(UNKNOWN);
txtLocation.setEnabled(false);
}
@Override
public void onSuccess(List<FileModel> result) {
String location = "";
if (result != null) {
for (FileModel fileModel : result) {
if (fileModel != null)
location += "/" + fileModel.getName();
}
}
if (location.isEmpty())
location = "/";
txtLocation.setValue(location);
txtLocation.setEnabled(true);
}
});
}
/**
* @param identifier
*/
private void loadDescription(String identifier) {
txtAreaDescription.setEnabled(false);
AppControllerExplorer.rpcWorkspaceService.getItemDescriptionById(identifier, new AsyncCallback<String>() {
@Override
public void onFailure(Throwable arg0) {
txtAreaDescription.setEnabled(false);
}
@Override
public void onSuccess(String result) {
if (result != null)
txtAreaDescription.setValue(result);
else
txtAreaDescription.setValue("");
txtAreaDescription.setEnabled(true);
}
});
}
}