Enhancement on ws-thredds integration: https://support.d4science.org/issues/11127
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@164667 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
c4aaa46519
commit
2e17cc86b8
|
@ -151,6 +151,8 @@ import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.mul
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload;
|
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload;
|
||||||
|
import org.gcube.portlets.widgtes.wsthreddssync.client.WsThreddsWidget;
|
||||||
|
import org.gcube.portlets.widgtes.wsthreddssync.shared.WsFolder;
|
||||||
|
|
||||||
import com.extjs.gxt.ui.client.Registry;
|
import com.extjs.gxt.ui.client.Registry;
|
||||||
import com.extjs.gxt.ui.client.event.BaseEvent;
|
import com.extjs.gxt.ui.client.event.BaseEvent;
|
||||||
|
@ -278,7 +280,16 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
||||||
final FileModel folder = publishEvent.getFolderToPublish();
|
final FileModel folder = publishEvent.getFolderToPublish();
|
||||||
|
|
||||||
if(folder!=null){
|
if(folder!=null){
|
||||||
|
|
||||||
|
WsThreddsWidget myWidget = new WsThreddsWidget();
|
||||||
|
|
||||||
|
|
||||||
|
WsFolder wsFolder = new WsFolder(folder.getIdentifier(), folder.getName());
|
||||||
|
try {
|
||||||
|
myWidget.showSyncFolderInfo(wsFolder);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Window.alert(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
|
|
||||||
//Thredds Synch status
|
//Thredds Synch status
|
||||||
private Sync_Status synchedThreddsStatus;
|
private Sync_Status synchedThreddsStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new file model.
|
* Instantiates a new file model.
|
||||||
*/
|
*/
|
||||||
|
@ -189,9 +189,9 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
|
|
||||||
Image icon = (Image) get(ICON);
|
Image icon = (Image) get(ICON);
|
||||||
AbstractImagePrototype iconAbs;
|
AbstractImagePrototype iconAbs;
|
||||||
if(icon==null)
|
if(icon==null){
|
||||||
iconAbs = getAbstractPrototypeIcon();
|
iconAbs = getAbstractPrototypeIcon();
|
||||||
else
|
}else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
set(ICON, iconAbs.createImage());
|
set(ICON, iconAbs.createImage());
|
||||||
|
@ -293,6 +293,8 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
*/
|
*/
|
||||||
public AbstractImagePrototype getAbstractPrototypeIcon() {
|
public AbstractImagePrototype getAbstractPrototypeIcon() {
|
||||||
|
|
||||||
|
//GWT.log("My prop: "+this.toString());
|
||||||
|
|
||||||
AbstractImagePrototype absImgPr = Resources.getIconTable();
|
AbstractImagePrototype absImgPr = Resources.getIconTable();
|
||||||
|
|
||||||
if (!this.isDirectory()) { //IS FILE
|
if (!this.isDirectory()) { //IS FILE
|
||||||
|
@ -344,8 +346,8 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
absImgPr = Resources.getIconSynched();
|
absImgPr = Resources.getIconSynched();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}else
|
||||||
absImgPr = Resources.getIconFolder();
|
absImgPr = Resources.getIconFolder();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -569,11 +571,11 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
public boolean isPublic(){
|
public boolean isPublic(){
|
||||||
return isPublic;
|
return isPublic;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSyncThreddsStatus(Sync_Status status) {
|
public void setSyncThreddsStatus(Sync_Status status) {
|
||||||
this.synchedThreddsStatus = status;
|
this.synchedThreddsStatus = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Sync_Status getSynchedThreddsStatus() {
|
public Sync_Status getSynchedThreddsStatus() {
|
||||||
return synchedThreddsStatus;
|
return synchedThreddsStatus;
|
||||||
}
|
}
|
||||||
|
@ -613,5 +615,5 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,8 +216,19 @@ public class AsyncTreePanel extends LayoutContainer {
|
||||||
if(model.isDirectory()){
|
if(model.isDirectory()){
|
||||||
if(model.isPublic()) //IS PLUBIC
|
if(model.isPublic()) //IS PLUBIC
|
||||||
return Resources.getIconFolderPublic();
|
return Resources.getIconFolderPublic();
|
||||||
else
|
else{
|
||||||
|
if(model.getSynchedThreddsStatus()!=null) {
|
||||||
|
switch(model.getSynchedThreddsStatus()) {
|
||||||
|
case OUTDATED_REMOTE:
|
||||||
|
return Resources.getIconSyncTo();
|
||||||
|
case OUTDATED_WS:
|
||||||
|
return Resources.getIconSyncFrom();
|
||||||
|
case UP_TO_DATE:
|
||||||
|
return Resources.getIconSynched();
|
||||||
|
}
|
||||||
|
}
|
||||||
return Resources.getIconFolder();
|
return Resources.getIconFolder();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null; //Set default folder icon
|
return null; //Set default folder icon
|
||||||
|
|
|
@ -53,6 +53,7 @@ public class DialogGetInfo extends Dialog {
|
||||||
private TextField<String> txtSize = new TextField<String>();
|
private TextField<String> txtSize = new TextField<String>();
|
||||||
private TextField<String> txtLocation = new TextField<String>();
|
private TextField<String> txtLocation = new TextField<String>();
|
||||||
private TextField<String> txtIsPublic = 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 TextField<String> txtShared = new TextField<String>();
|
||||||
// private TextArea textAreaSharedWith = new TextArea();
|
// private TextArea textAreaSharedWith = new TextArea();
|
||||||
private Html htmlUsersWidget = new Html();
|
private Html htmlUsersWidget = new Html();
|
||||||
|
@ -103,8 +104,19 @@ public class DialogGetInfo extends Dialog {
|
||||||
txtIsPublic.setReadOnly(true);
|
txtIsPublic.setReadOnly(true);
|
||||||
txtIsPublic.setValue(fileModel.isPublic()+"");
|
txtIsPublic.setValue(fileModel.isPublic()+"");
|
||||||
add(txtIsPublic);
|
add(txtIsPublic);
|
||||||
|
|
||||||
|
if(fileModel.getSynchedThreddsStatus()!=null){
|
||||||
|
txtThreddsSynched = new TextField<String>();
|
||||||
|
txtThreddsSynched.setFieldLabel("Thredds Sync");
|
||||||
|
txtThreddsSynched.setReadOnly(true);
|
||||||
|
txtThreddsSynched.setValue(fileModel.getSynchedThreddsStatus()+"");
|
||||||
|
add(txtThreddsSynched);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
txtAreaDescription.setFieldLabel("Description");
|
txtAreaDescription.setFieldLabel("Description");
|
||||||
txtAreaDescription.setHeight(30);
|
txtAreaDescription.setHeight(30);
|
||||||
txtAreaDescription.setReadOnly(true);
|
txtAreaDescription.setReadOnly(true);
|
||||||
|
|
|
@ -0,0 +1,242 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.portlets.user.workspace;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
import org.gcube.common.homelibrary.home.HomeLibrary;
|
||||||
|
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.homelibrary.home.exceptions.UserNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.common.scope.impl.ScopeBean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* @Jan 29, 2014
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ItemCreate {
|
||||||
|
|
||||||
|
|
||||||
|
// public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps"; //PRODUCTION
|
||||||
|
public static String DEFAULT_SCOPE = "/gcube/devsec"; //DEV
|
||||||
|
public static String TEST_USER = "costantino.perciante";
|
||||||
|
// public static String ITEMID = "63832213-098d-42d1-8774-89b6349764c0"; //Activity T3.4 working drafts/T2-EC-IMAR-HO-14-015 iMarine Sustainability WP - Business Model tools.pdf
|
||||||
|
public static String ITEMID = "ce4866ee-8079-4acf-bcd6-1c9dd786eb73";
|
||||||
|
// d81d3a64-603f-4907-ae74-be8353211807
|
||||||
|
protected static Logger logger = Logger.getLogger(ItemCreate.class);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
ScopeBean scope = new ScopeBean(DEFAULT_SCOPE);
|
||||||
|
ScopeProvider.instance.set(scope.toString());
|
||||||
|
|
||||||
|
System.out.println("init HL");
|
||||||
|
try {
|
||||||
|
Workspace ws = getWorkspace();
|
||||||
|
|
||||||
|
String rootId = ws.getRoot().getId();
|
||||||
|
System.out.println("Root ID: "+rootId);
|
||||||
|
|
||||||
|
//[]/\
|
||||||
|
|
||||||
|
//CREATO ^<>?*%$:*$
|
||||||
|
// //String folderNameSpecialChars = "[^.]<>|?*%$:*$\\/";
|
||||||
|
String folderNameSpecialChars = "‘";
|
||||||
|
|
||||||
|
|
||||||
|
WorkspaceFolder folder = null;
|
||||||
|
String folderName = null;
|
||||||
|
for (int i = 1; i < folderNameSpecialChars.length(); i++) {
|
||||||
|
folderName = folderNameSpecialChars.substring(0,i);
|
||||||
|
try{
|
||||||
|
folder = ws.createFolder(folderName, "", rootId);
|
||||||
|
System.out.println("Created folder: "+folder.getName() +" with id: "+folder.getId());
|
||||||
|
}catch(Exception e){
|
||||||
|
System.err.println("Folder with name: "+folderName +" not created");
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
if (folder!=null){
|
||||||
|
ws.renameItem(folder.getId(), folder.getName()+"_renamed");
|
||||||
|
System.out.println("Renamed folder: "+folder.getName() +" with id: "+folder.getId());
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
System.err.println("Folder with name: "+folderName +" not renamed");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
if (folder!=null){
|
||||||
|
ws.removeItem(folder.getId());
|
||||||
|
System.out.println("Removed folder: "+folder.getName() +" with id: "+folder.getId());
|
||||||
|
try{
|
||||||
|
ws.getItem(folder.getId());
|
||||||
|
}catch(ItemNotFoundException e){
|
||||||
|
System.out.println("Folder Id folder: "+folder.getId() +" removed correctly");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
System.err.println("Folder with name: "+folderName +" not removed");
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
retrieveFirstLevel(ws, null);
|
||||||
|
//
|
||||||
|
// retrieveFirstLevel(ws, ITEMID);
|
||||||
|
//
|
||||||
|
// System.out.println("get workspace -> OK");
|
||||||
|
//WorkspaceItem item = ws.getItem(ITEMID);
|
||||||
|
//System.out.println("get item id: "+item.getId()+", name: "+item.getName() +", parent: "+item.getParent().getId() +", parent name: "+item.getParent().getName()+", path :"+item.getPath());
|
||||||
|
//System.out.println(item);
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
// } catch (WorkspaceFolderNotFoundException e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } catch (InternalErrorException e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } catch (HomeNotFoundException e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } catch (UserNotFoundException e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Workspace getWorkspace() throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException, UserNotFoundException
|
||||||
|
{
|
||||||
|
|
||||||
|
logger.trace("Get Workspace scope: "+DEFAULT_SCOPE + " username: "+TEST_USER);
|
||||||
|
ScopeProvider.instance.set(DEFAULT_SCOPE);
|
||||||
|
logger.trace("Scope provider instancied");
|
||||||
|
|
||||||
|
// return HomeLibrary.getUserWorkspace(TEST_USER);
|
||||||
|
return HomeLibrary.getHomeManagerFactory().getHomeManager().getHome(TEST_USER).getWorkspace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void retrieveFirstLevel(Workspace ws, String foundFolder){
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//TEST TIME
|
||||||
|
Long startTime = System.currentTimeMillis();
|
||||||
|
Long endTime = System.currentTimeMillis() - startTime;
|
||||||
|
String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime));
|
||||||
|
|
||||||
|
startTime = System.currentTimeMillis();
|
||||||
|
System.out.println("Start foundFolder at time: "+startTime);
|
||||||
|
// WorkspaceItem root = ws.getItem(ITEMID);
|
||||||
|
WorkspaceItem fd;
|
||||||
|
if(foundFolder!=null){
|
||||||
|
fd = ws.getItem(foundFolder);
|
||||||
|
System.out.println("foundFolder id: "+foundFolder);
|
||||||
|
System.out.println("start get children");
|
||||||
|
}else
|
||||||
|
fd = ws.getRoot();
|
||||||
|
|
||||||
|
List<? extends WorkspaceItem> children = fd.getChildren();
|
||||||
|
System.out.println("tree getChildren() returning "+children.size()+" elements in " + time);
|
||||||
|
|
||||||
|
System.out.println("children size: "+children.size());
|
||||||
|
|
||||||
|
int i=0;
|
||||||
|
int foldersCounter = 0;
|
||||||
|
int sharedFoldersCounter = 0;
|
||||||
|
int folderItemCounter = 0;
|
||||||
|
int othersCounter = 0;
|
||||||
|
for (WorkspaceItem workspaceItem : children) {
|
||||||
|
try{
|
||||||
|
|
||||||
|
/*if(foundFolder!=null && !foundFolder.isEmpty()){
|
||||||
|
if(workspaceItem.getId().compareTo(foundFolder)==0){
|
||||||
|
System.out.println("ITEM FOUND id: "+workspaceItem.getId()+", name: "+workspaceItem.getName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
switch (workspaceItem.getType()) {
|
||||||
|
|
||||||
|
case FOLDER:
|
||||||
|
|
||||||
|
WorkspaceFolder folder = (WorkspaceFolder) workspaceItem;
|
||||||
|
|
||||||
|
// System.out.println(++i+") "+folder.getId() +" folder name: "+folder.getName() + " owner "+folder.getOwner() +" path: "+folder.getPath());
|
||||||
|
System.out.println(++i+") "+folder.getId() +" folder name: "+folder.getName() + " owner "+folder.getOwner());
|
||||||
|
foldersCounter++;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHARED_FOLDER:
|
||||||
|
|
||||||
|
WorkspaceSharedFolder shared = (WorkspaceSharedFolder) workspaceItem;
|
||||||
|
|
||||||
|
// System.out.println(++i+") "+shared.getId() +" shared folder name: "+shared.getName() + " owner "+shared.getOwner()+" isVRE "+shared.isVreFolder() +" ACLOwner: "+shared.getACLOwner()+" AclUser: "+shared.getACLUser() +" path: "+shared.getPath());
|
||||||
|
System.out.println(++i+") "+shared.getId() +" shared folder name: "+shared.getName());
|
||||||
|
|
||||||
|
// System.out.println(++i+") shared folder name: "+shared.getName() + " owner "+shared.getOwner().getPortalLogin());
|
||||||
|
sharedFoldersCounter++;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FOLDER_ITEM:
|
||||||
|
|
||||||
|
FolderItem folderItem = (FolderItem) workspaceItem;
|
||||||
|
|
||||||
|
// System.out.println(++i+") folderItem id: "+folderItem.getId() +", name: "+folderItem.getName() + ", own: "+folderItem.getOwner() +" path: "+folderItem.getPath());
|
||||||
|
System.out.println(++i+") folderItem id: "+folderItem.getId() +", name: "+folderItem.getName() + ", own: "+folderItem.getOwner());
|
||||||
|
folderItemCounter++;
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// System.out.println(++i+") DEFAULT - item id: "+workspaceItem.getId() +", name: "+workspaceItem.getName() + ", own: "+workspaceItem.getOwner());
|
||||||
|
// othersCounter++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
// TODO: handle exception
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//TEST TIME
|
||||||
|
endTime = System.currentTimeMillis();
|
||||||
|
long difference = endTime - startTime;
|
||||||
|
time = String.format("%d msc %d sec", difference, TimeUnit.MILLISECONDS.toSeconds(difference));
|
||||||
|
System.out.println("End time is "+endTime+ " difference is "+time);
|
||||||
|
System.out.println("Folders are: "+foldersCounter);
|
||||||
|
System.out.println("Shared Folders are: "+sharedFoldersCounter);
|
||||||
|
System.out.println("Folder Item are: "+folderItemCounter);
|
||||||
|
System.out.println("Others are: "+othersCounter);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue