Compare commits

...

70 Commits

Author SHA1 Message Date
Francesco Mangiacrapa 500986d455 added exclusion to `javax.ws.rs-api` due to #27083#note-27 2024-04-24 16:35:13 +02:00
Francesco Mangiacrapa 19b0582660 removed -SNAPSHOT to be released 2024-04-23 09:47:48 +02:00
Francesco Mangiacrapa 451ef36018 required SNAPSHOT version to test in DEV 2024-04-23 09:45:12 +02:00
Francesco Mangiacrapa 133fc063ab reverted to 6.30.0 to be released 2024-04-23 09:35:24 +02:00
Francesco Mangiacrapa cca398c124 Creating snapshot to check #27083#note-17 2024-04-23 09:33:29 +02:00
Francesco Mangiacrapa 00e5cea868 replaced social dependencies, see #27083#note-16 2024-04-22 16:40:03 +02:00
Francesco Mangiacrapa cca8c84f6d removed -SNAPSHOT to be released 2024-03-19 10:49:02 +01:00
Francesco Mangiacrapa 2c59016219 Merge pull request 'edit_facility_26115' (!3) from edit_facility_26115 into master
Reviewed-on: #3
2024-03-19 10:38:23 +01:00
Francesco Mangiacrapa 1824c9a7fd Fixing Incident [#26678] 2024-03-01 12:05:43 +01:00
Francesco Mangiacrapa 257a258ff2 commented profiles 2024-02-28 11:10:21 +01:00
Francesco Mangiacrapa 7367f5d1f8 commented profiles 2024-02-28 11:06:29 +01:00
Francesco Mangiacrapa bd6705efcd Enabled maven profile 2024-02-26 11:39:48 +01:00
Francesco Mangiacrapa 01075df11f Added exclusion `org.codehaus.woodstox:stax2-api:jar` version
stax2-api🫙4.1, see #26825#note-6
2024-02-26 10:47:41 +01:00
Francesco Mangiacrapa bd21f9460c commented profiles 2024-02-23 17:29:14 +01:00
Francesco Mangiacrapa 54cc49e012 added maven profiles 2024-02-20 17:50:17 +01:00
Francesco Mangiacrapa eb12960ecc - Moved to maven parent 1.2.0
- Equipped with the new Catalogue Publishing Widget [#26825]
2024-02-20 15:26:27 +01:00
Francesco Mangiacrapa 291eb8a0db Updated README 2023-07-10 10:37:40 +02:00
Francesco Mangiacrapa 30d5d7ca62 Updated README 2023-07-10 09:52:29 +02:00
Francesco Mangiacrapa e772a6a7e1 Updated README 2023-07-10 09:31:09 +02:00
Francesco Mangiacrapa d29fe99b3a Updated Readme 2023-07-08 16:43:36 +02:00
Francesco Mangiacrapa df70bc732f Update 'README.md' 2023-07-05 23:26:36 +02:00
Francesco Mangiacrapa 1de24c97ab Update 'README.md' 2023-07-05 12:50:38 +02:00
Francesco Mangiacrapa aea8982509 Update 'README.md' 2023-07-05 12:49:03 +02:00
Francesco Mangiacrapa 1ccd0d29d1 Update 'README.md' 2023-06-21 10:23:20 +02:00
Francesco Mangiacrapa 59fb473c17 Update 'README.md' 2023-06-21 10:19:20 +02:00
Francesco Mangiacrapa 17143b7822 Removed -SNAPSHOT to be released. 2023-04-04 12:22:37 +02:00
Francesco Mangiacrapa b881b7ba79 Moved to v6.29.0-SNAPSHOT. Using maven-portal-bom v3.8.0-SNAPSHOT 2023-04-03 17:10:29 +02:00
Francesco Mangiacrapa 0c6228d632 Merge branch 'master' of https://code-repo.d4science.org/gCubeSystem/workspace.git 2023-04-03 16:49:41 +02:00
Francesco Mangiacrapa d5bcd53ed4 New version 6.28.7-SNAPSHOT. Due to #24929 2023-04-03 16:22:15 +02:00
Roberto Cirillo 838c0c4072 restored old pom 2022-09-21 14:14:34 +02:00
Roberto Cirillo 422b78ce93 add toolchain plugin to the pom 2022-09-21 12:19:06 +02:00
Francesco Mangiacrapa 0348121802 Removed -SNAPSHOT to be released. Passed to maven-portal-bom.3.6.4 2022-09-05 14:56:17 +02:00
Francesco Mangiacrapa 9c113f2c9c Including fixes #23676, #23789 implemented in the ws-tree 2022-09-05 14:10:34 +02:00
Francesco Mangiacrapa 9e29ec6c00 removed -SNAPSHOT to be released 2022-06-27 15:05:18 +02:00
Francesco Mangiacrapa c6b662fe8f #23523 Updated to maven-portal-bom 3.6.4 2022-06-27 14:55:39 +02:00
Francesco Mangiacrapa b920c891f0 removed -SNAPSHOT to be released. Moved to maven-portal-bom v3.6.3 2022-06-14 17:00:33 +02:00
Francesco Mangiacrapa 7b29a35a18 moved to maven-portal-bom 3.7.0-SNAPSHOT 2022-06-14 14:13:36 +02:00
Francesco Mangiacrapa 9ab9a57537 Just to release the Publishing Widget enhancement #23491 2022-06-14 14:01:20 +02:00
Francesco Mangiacrapa ca30bd4e65 Removed -SNAPSHOT to be released. Passed to maven-portal-bom v3.6.3 2022-05-03 16:06:02 +02:00
Francesco Mangiacrapa 8156e78575 passed to maven-portal-bom v3.7.0-SNAPSHOT 2022-04-28 11:54:55 +02:00
Francesco Mangiacrapa d90785abe6 Just including the enhancement #23225 2022-04-28 11:48:20 +02:00
Francesco Mangiacrapa a729d84156 removed -SNAPSHOT to be released. Used the maven-portal-bom 3.6.3 2022-03-24 10:53:58 +01:00
Francesco Mangiacrapa 6ae881e9ef #22923 Migrate to maven-portal-bom 3.7.0[-SNAPSHOT] 2022-03-08 11:57:08 +01:00
Francesco Mangiacrapa 51cd46d50e removed -SNAPSHOT to be released 2021-12-20 15:03:26 +01:00
Francesco Mangiacrapa 27d393a0f3 Moved to 6.28.1-SNAPSHOT to include ws-tree fix #22578 2021-12-20 14:45:53 +01:00
Francesco Mangiacrapa b614f368b0 raplaced * with - 2021-11-10 15:00:42 +01:00
Francesco Mangiacrapa b3562c6e0e removed -SNAPSHOT to be released 2021-11-10 10:27:00 +01:00
Francesco Mangiacrapa e1cda838c4 Feature #22251 implemented - Make workspace file size field smart 2021-11-05 12:06:46 +01:00
Francesco Mangiacrapa 778e0a807e Moved to maven-portal-bom 3.6.3 2021-06-24 15:08:27 +02:00
Francesco Mangiacrapa e2fa61e5b1 removed -SNAPSHOT to be released 2021-06-22 10:27:22 +02:00
Francesco Mangiacrapa 4728abe412 moved to 6.27.1-SNAPSHOT. Including ws-tree bug fix #21575 2021-06-22 10:24:37 +02:00
Francesco Mangiacrapa 2e162c4314 removed -SNAPSHOT to be released 2021-05-27 18:00:04 +02:00
Francesco Mangiacrapa 3a54c585b5 added -SNAPSHOT to rebuild the Portelt needed to check oidc dependencies
imported
2021-05-27 16:13:01 +02:00
Francesco Mangiacrapa 9f98ada991 removed -SNAPSHOT to be released 2021-05-25 11:11:33 +02:00
Francesco Mangiacrapa 5405040040 [#21444] Moved to maven-portal-bom >= 3.6.2-SNAPSHOT 2021-05-20 11:09:26 +02:00
Francesco Mangiacrapa 90ba85c5bb removed comment to AppControllerExplorer.getEventBus().fireEvent(
CheckItemLockedBySyncEvent
2021-05-18 15:59:37 +02:00
Francesco Mangiacrapa d32869c6d0 settinng synched with thredds into parent folder 2021-05-18 11:05:56 +02:00
Francesco Mangiacrapa e7cc55efe3 merged with branch fix-jackson 2021-05-11 16:00:48 +02:00
Francesco Mangiacrapa 5a4081b7e7 removed -SNAPSHOT to be released 2021-04-16 17:45:42 +02:00
Francesco Mangiacrapa e2f989e494 #21153 Upgrade the maven-portal-bom to 3.6.1 version 2021-04-12 15:53:23 +02:00
Francesco Mangiacrapa bbd50dbce1 merged with "task_20762" 2021-04-09 15:28:34 +02:00
Francesco Mangiacrapa f344366790 Declared the workspace-tree-widget to get the exactly version
[6.31.3-SNAPSHOT, 6.31.3]
2021-03-25 15:29:58 +01:00
Francesco Mangiacrapa 0d98045f30 Updated ws-tree-widget range at [6.31.3-SNAPSHOT, 7.0.0-SNAPSHOT) 2021-03-25 15:10:12 +01:00
Roberto Cirillo b46d615f44 Update 'pom.xml'
update workspace-tree-widget to version 6.31.3-SNAPSHOT
2021-03-25 13:18:43 +01:00
Francesco Mangiacrapa 940b056170 removed the twice declaration of ckan-metadata-publisher-widget 2021-03-25 11:00:21 +01:00
Francesco Mangiacrapa f3beb0f73f removed -SNAPSHOT to be released 2021-03-24 18:21:14 +01:00
Francesco Mangiacrapa 2c62b30ae5 added -SNAPHOT to check and test the ws-thredds.0.2.4-SNAPSHOT on DEV 2021-03-24 18:09:51 +01:00
Francesco Mangiacrapa 6293a1913b removed -SNAPSHOT to be released 2021-03-17 13:01:20 +01:00
Francesco Mangiacrapa e7c758551d added -SNAPSHOT to update DEV 2021-03-16 10:50:12 +01:00
Francesco Mangiacrapa a9c33aad57 Just to release the facility ws-thredds-sync [#20847] 2021-03-10 12:02:09 +01:00
14 changed files with 1086 additions and 227 deletions

View File

@ -1,16 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/workspace-6.25.0/WEB-INF/classes" path="src/main/java">
<classpathentry kind="src" output="target/workspace-6.30.0/WEB-INF/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/workspace-6.25.0/WEB-INF/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="test" value="true"/>
@ -24,16 +19,21 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/workspace-6.25.0/WEB-INF/classes"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/workspace-6.30.0/WEB-INF/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/workspace-6.30.0/WEB-INF/classes"/>
</classpath>

View File

@ -1,4 +1,4 @@
eclipse.preferences.version=1
lastWarOutDir=/home/francesco/git/workspace/target/workspace-6.25.0-SNAPSHOT
lastWarOutDir=/home/francescomangiacrapa/git/workspace/target/workspace-6.30.0
warSrcDir=src/main/webapp
warSrcDirIsOutput=false

View File

@ -1,11 +1,689 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="workspace-6.25.0-SNAPSHOT">
<wb-module deploy-name="workspace-6.30.0">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
<dependent-module archiveName="ckan-metadata-publisher-widget-2.2.1.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/ckan-metadata-publisher-widget/ckan-metadata-publisher-widget">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="uri-resolver-manager-1.8.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/uri-resolver-manager/uri-resolver-manager">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
<property name="context-root" value="workspace"/>
</wb-module>
</wb-module>
</project-modules>

View File

@ -4,6 +4,71 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v6.30.0] - 2024-02-20
- Moved to maven parent 1.2.0
- Equipped with the new Catalogue Publishing Widget [#26825]
- Fixed Incident [#26678]
## [v6.29.0] - 2023-04-04
- Just to release the patch #24929 in the 'storagehub-client-wrapper'
## [v6.28.6] - 2022-09-05
- Just to release the fixes #23676, #23789 implemented in the ws-tree
## [v6.28.5] - 2022-06-27
- [#23523] Updated to maven-portal-bom 3.6.4
- [#23491] Just to release the Publishing Widget enhancement #23491
## [v6.28.3] - 2022-05-02
- [#23225] Just including the enhancement #23225
## [v6.28.2] - 2022-03-24
#### Enhancements
- [#23020] Just including the enhancement #23020
## [v6.28.1] - 2021-12-20
#### Fixes
- [#22578] Including workspace-tree-widget bug fixing
## [v6.28.0] - 2021-11-05
#### Enhancements
- [#22251] Make workspace file size field smart
## [v6.27.1] - 2021-06-22
[#21575] Including workspace-tree-widget bug fixing
Moved to maven-portal-bom 3.6.3
## [v6.27.0] - 2021-05-10
[#21387] Harmonized version of jackson libs to 2.8.11 to resolve conflict
[#21346] Applying new workflow to manage the "Sync with Tredds" facility
[#21444] Moved to maven-portal-bom >= 3.6.2-SNAPSHOT
## [v6.26.0] - 2021-04-12
#### Enhancements
[#21153] Upgrade the maven-portal-bom to 3.6.1 version
[#20762] Moved to ckan-metadata-publisher-widget 2.X
## [v6.25.4] - 2021-03-10
#### Enhancements
[#20847] Just to release the facility ws-thredds-sync
## [v6.25.3] - 2021-02-02
Just to include new SHUB model
@ -20,31 +85,31 @@ Just to include new SHUB model
[#19952] Fixed incident
## [v6.25.0] [r4.25.0] - 2020-08-25
## [v6.25.0] - 2020-08-25
#### Enhancements
[#19600] revisit the "Get Info" Dialog in a modern view
## [v6.24.1] [r4.24.0] - 2020-06-22
## [v6.24.1] - 2020-06-22
[#19493] Just to include the ckan-util-library patched
## [v6.24.0] [r4.23.0] - 2020-05-18
## [v6.24.0] - 2020-05-18
**New Features**
[#19058] Restore operation: the user has to select the destination folder
## [v6.23.2] [r4.22.0] - 2020-04-21
## [v6.23.2] - 2020-04-21
Just to include the new shub-client released
## [v6.23.1] [r4.21.0] - 2020-03-27
## [v6.23.1] - 2020-03-27
Ported to git/jenkins

View File

@ -1,6 +1,6 @@
# gCube Workspace Portlet
# gCube Workspace
The gCube Workspace Portlet is a web-gui to manage the gCube workspace, a collaborative area where users can exchange and organize information objects (workspace items) according to their specific needs.
The gCube Workspace is a web-system (made from many components) that built a web-gui to manage the Workspace in the D4Science infrastructure. The Workspace is a collaborative area where users can exchange and organize information objects (workspace items) according to their specific needs.
Every user of any Virtual Research Environment is provided with this area for the exchange of workspace objects (share) with other users. Such an area is further organized in workspaces as to resemble a classic folder-based file system.
## Built With
@ -8,6 +8,42 @@ Every user of any Virtual Research Environment is provided with this area for th
* [OpenJDK](https://openjdk.java.net/) - The JDK used
* [Maven](https://maven.apache.org/) - Dependency Management
**Uses**
* GWT v.2.7.0. [GWT](http://www.gwtproject.org) is licensed under [Apache License 2.0](http://www.gwtproject.org/terms.html)
* GWT-Bootstrap v.2.3.2.0. [GWT-Bootstrap](https://github.com/gwtbootstrap) is licensed under [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
* GXT v2.2.5 is licensed under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html)
**Related Components**
* [Workpsace Tree Widget](https://code-repo.d4science.org/gCubeSystem/workspace-tree-widget)
* [Workpsace Sharing Widget](https://code-repo.d4science.org/gCubeSystem/workspace-sharing-widget)
* [Task Executor Widget](https://code-repo.d4science.org/gCubeSystem/ws-task-executor-widget)
* [Catalogue Metadata Publisher Widget](https://code-repo.d4science.org/gCubeSystem/ckan-metadata-publisher-widget)
* [StorageHub Client Wrapper](https://code-repo.d4science.org/gCubeSystem/storagehub-client-wrapper)
and others. You can discovery all dependencies via dependency hierarchy (e.g. use [dependency:tree](https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html))
## Showcase
**Workspace Home**
<img src="https://gcube.wiki.gcube-system.org/images_gcube/c/cf/Showcase_Workspace.png" style="max-width:800px;" alt="Workspace Home" />
**Workspace 'Context Menu' facility**
<img src="https://gcube.wiki.gcube-system.org/images_gcube/2/2d/Workspace_Context_Menu.png" style="max-width:800px;" alt="Workspace Context Menu" />
**Workspace 'Get Info' facility**
<img src="https://gcube.wiki.gcube-system.org/images_gcube/2/27/Showcase_Workspace_Get_Info.png" style="max-width:800px;" alt="Workspace Get Info" />
<br />
<img src="https://gcube.wiki.gcube-system.org/images_gcube/8/83/Showcase_Workspace_GetInfo3.png" style="max-width:800px;" alt="Workspace Get Info 3" />
**Workspace 'Get Shareable Link' facility**
<img src="https://gcube.wiki.gcube-system.org/images_gcube/7/72/Showcase_Workspace_GetShareableLink.png" style="max-width:800px;" alt="Workspace Get Shareable Link" />
## Documentation
You can find the Workspace documentation at [Wiki gCube Workpsace](https://wiki.gcube-system.org/workspace)

130
pom.xml
View File

@ -6,14 +6,14 @@
<parent>
<artifactId>maven-parent</artifactId>
<groupId>org.gcube.tools</groupId>
<version>1.1.0</version>
<version>1.2.0</version>
<relativePath />
</parent>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>workspace</artifactId>
<packaging>war</packaging>
<version>6.25.3</version>
<version>6.30.0</version>
<name>gCube Workspace Portlet</name>
<description>
gCube Workspace Portlet is a web-gui to manage the gCube workspace, a collaborative area where users can exchange and organize information objects (workspace items) according to their specific needs.
@ -29,6 +29,9 @@
<maven.compiler.target>1.8</maven.compiler.target>
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<additionalparam>-Xdoclint:none</additionalparam>
<jackson.version>2.8.11</jackson.version>
<gcube-portal-bom-version>3.7.0</gcube-portal-bom-version>
<gxt2.2.5-gwt2.X-version>2.7.0</gxt2.2.5-gwt2.X-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -40,31 +43,48 @@
<url>https://code-repo.d4science.org/gCubeSystem/${project.artifactId}</url>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.gcube.distribution</groupId>
<artifactId>maven-portal-bom</artifactId>
<version>3.6.0</version>
<version>${gcube-portal-bom-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<!-- PROD profile -->
<!-- <profile> -->
<!-- <id>workspace-release-profile</id> -->
<!-- <activation> -->
<!-- <property> -->
<!-- <name>Release</name> -->
<!-- </property> -->
<!-- </activation> -->
<!-- <properties> -->
<!-- <gcube-portal-bom-version>3.7.0</gcube-portal-bom-version> -->
<!-- </properties> -->
<!-- </profile> -->
<!-- DEV profile -->
<!-- <profile> -->
<!-- <id>workspace-snapshot-profile</id> -->
<!-- <activation> -->
<!-- <property> -->
<!-- <name>!Release</name> -->
<!-- </property> -->
<!-- </activation> -->
<!-- <properties> -->
<!-- <gcube-portal-bom-version>3.8.0-SNAPSHOT</gcube-portal-bom-version> -->
<!-- </properties> -->
<!-- </profile> -->
</profiles>
<dependencies>
<!-- UNCOMMENT THIS TO RUN IN DEVO MODE -->
<!-- <dependency> -->
<!-- <groupId>xerces</groupId> -->
<!-- <artifactId>xerces</artifactId> -->
<!-- <version>2.4.0</version> -->
<!-- </dependency> -->
<!-- This dependency is needed and is need on TOP to use GWT UI BInder
without old Xerces version of gCore complaining -->
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
@ -91,6 +111,7 @@
<version>2.9.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>authorization-client</artifactId>
@ -118,13 +139,6 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gcube.portlets.widgets</groupId>
<artifactId>ckan-metadata-publisher-widget</artifactId>
<version>[1.0.0, 2.0.0-SNAPSHOT)</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.gwtbootstrap</groupId>
<artifactId>gwt-bootstrap</artifactId>
@ -138,15 +152,22 @@
<dependency>
<groupId>org.gcube.contentmanagement</groupId>
<artifactId>storage-manager-wrapper</artifactId>
<!-- Resolving conflict (NoSuchMethodError stax2/ri/EmptyIterator) with
version stax2-api:jar:4.1 see https://support.d4science.org/issues/26825#note-5 -->
<exclusions>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</exclusion>
</exclusions>
<scope>provided</scope>
</dependency>
<!-- Metadata publisher widget -->
<dependency>
<groupId>org.gcube.portlets.widgets</groupId>
<artifactId>ckan-metadata-publisher-widget</artifactId>
<version>[1.0.0,2.0.0-SNAPSHOT)</version>
<scope>compile</scope>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
<dependency>
@ -156,16 +177,13 @@
<scope>compile</scope>
</dependency>
<!-- WebSocket dep (does not work on Jetty) <dependency> <groupId>org.realityforge.gwt.websockets</groupId>
<artifactId>gwt-websockets</artifactId> <version>1.1.2</version> <scope>provided</scope>
</dependency> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId>
<version>1.1</version> <scope>provided</scope> </dependency> -->
<!-- FWS -->
<dependency>
<groupId>org.gcube.resources.discovery</groupId>
<artifactId>ic-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gcube.core</groupId>
<artifactId>common-scope-maps</artifactId>
@ -173,6 +191,22 @@
</dependency>
<!-- END FWS -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.gcube.portlets.widgets</groupId>
<artifactId>session-checker</artifactId>
@ -192,9 +226,26 @@
<dependency>
<groupId>org.gcube.portal</groupId>
<artifactId>social-networking-library</artifactId>
<artifactId>social-library-stubs</artifactId>
<version>[1.0.0-SNAPSHOT, 2.0.0)</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gcube.social-networking</groupId>
<artifactId>social-service-client</artifactId>
<version>[2.0.0-SNAPSHOT, 3.0.0)</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.gcube.portal</groupId>
<artifactId>social-networking-library</artifactId>
</exclusion>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.gcube.applicationsupportlayer</groupId>
@ -205,8 +256,14 @@
<dependency>
<groupId>org.gcube.portlets.user</groupId>
<artifactId>workspace-tree-widget</artifactId>
<version>[6.31.2-SNAPSHOT, 7.0.0-SNAPSHOT)</version>
<version>[6.31.3-SNAPSHOT, 7.0.0-SNAPSHOT)</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- User Management Core -->
@ -222,12 +279,6 @@
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
</dependency>
<!-- Force jackson-annotation dependency to 2.7 version -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>javax.portlet</groupId>
@ -249,6 +300,7 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
</dependency>
<dependency>
@ -380,4 +432,4 @@
</plugins>
</build>
</project>
</project>

View File

@ -33,11 +33,12 @@
<inherits
name='org.gcube.portlets.widgets.openlayerbasicwidgets.olbasicwidgets' />
<inherits
name='org.gcube.portlets.widgets.mpformbuilder.MetadataProfileFormBuilder' />
<inherits
name='org.gcube.portlets.widgets.ckandatapublisherwidget.CKanMetadataPublisher' />
<!--<inherits name="org.realityforge.gwt.websockets.WebSockets" />-->
<!--<inherits name="org.realityforge.gwt.websockets.WebSockets" /> -->
<!-- Specify the app entry point class. -->
<entry-point

View File

@ -102,7 +102,6 @@ import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBreadcrumbPathP
import org.gcube.portlets.user.workspace.client.view.trash.WindowTrash;
import org.gcube.portlets.user.workspace.client.view.versioning.WindowVersioning;
import org.gcube.portlets.user.workspace.client.view.windows.DialogConfirm;
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.InfoDisplay;
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
@ -136,7 +135,6 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.CommandCanceledException;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
@ -589,6 +587,9 @@ public class AppController implements SubscriberInterface {
new MessageBoxAlert("Error", caught.getMessage(), null);
wsPortlet.getGridGroupContainer().unmask();
//Reload the tree and select the root. Fixing Incident [#26678]
AppControllerExplorer.getEventBus().fireEvent(new LoadTreeEvent(true));
}
@ -1417,6 +1418,7 @@ public class AppController implements SubscriberInterface {
//CREATING FOLDER PARENT FOR RPC
final FileModel parent = new FolderModel(folder.getIdentifier(), folder.getName(), folder.getParentFileModel(), true, folder.isShared(), folder.isVreFolder(), folder.isPublic());
parent.setSynchedWithWsThredds(folder.getSynchedWithWsThredds());
wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE);
appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGrid(parent, new AsyncCallback<List<FileGridModel>>() {

View File

@ -0,0 +1,42 @@
package org.gcube.portlets.user.workspace.client.view;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.NumberFormat;
/**
* The Class SizeUtil.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Nov 5, 2021
*/
public class SizeUtil {
public static final NumberFormat numberFormat = NumberFormat.getFormat("#,##0.#");
/**
* Readable file size.
*
* @param size the size
* @return the string
*/
public static String readableFileSize(long size) {
GWT.log("Converting size: "+size);
// -1 should be the size of a folder
if (size == -1)
return "";
// in some cases the size returned by SHUB is negative,
// so reporting as 1B to user
if (size < 0)
return "1 byte";
if (size == 0)
return "0 byte";
final String[] units = new String[] { "bytes", "kB", "MB", "GB", "TB" };
int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
return numberFormat.format(size / Math.pow(1024, digitGroups)) +" " +units[digitGroups];
}
}

View File

@ -5,7 +5,6 @@ import java.util.Arrays;
import java.util.List;
import org.gcube.portlets.user.workspace.client.AppController;
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent;
import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent.DownloadType;
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent;
@ -18,6 +17,7 @@ import org.gcube.portlets.user.workspace.client.gridevent.StoreGridChangedEvent;
import org.gcube.portlets.user.workspace.client.model.FileGridModel;
import org.gcube.portlets.user.workspace.client.model.FileModel;
import org.gcube.portlets.user.workspace.client.model.GroupingStoreModel;
import org.gcube.portlets.user.workspace.client.view.SizeUtil;
import com.extjs.gxt.ui.client.Style.SelectionMode;
import com.extjs.gxt.ui.client.data.ModelData;
@ -50,28 +50,24 @@ import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.NumberFormat;
import com.google.gwt.user.client.Random;
/**
* The Class GxtGridFilterGroupPanel.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it
* Nov 17, 2015
* Nov 17, 2015
*/
public class GxtGridFilterGroupPanel extends LayoutContainer {
private ContentPanel cp = new ContentPanel();
// private ListStore<FileModel> store = ListStoreModel.getInstance().getStore();
private GroupingStore<FileGridModel> store = GroupingStoreModel.getInstance().getStore();
private FileGridModel currentItemSelected = null;
private FileModel currentFolderView = null;
private GroupingView view = new GroupingView();
private boolean groupingEnabled = false;
private NumberFormat number = ConstantsExplorer.numberFormatterKB;
private final Grid<FileGridModel> grid;
private ColumnModel cm = null;
private final Grid<FileGridModel> grid;
private ColumnModel cm = null;
/**
* Instantiates a new gxt grid filter group panel.
@ -80,23 +76,21 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*/
public GxtGridFilterGroupPanel(boolean group) {
// setLayout(new FitLayout());
setId("GxtGridFilterGroupPanel "+Random.nextInt());
setId("GxtGridFilterGroupPanel " + Random.nextInt());
ColumnConfig icon = new ColumnConfig(FileModel.ICON, "", 60);
icon.setSortable(false);
ColumnConfig name = new ColumnConfig(FileGridModel.NAME, FileGridModel.NAME, 280);
ColumnConfig type = new ColumnConfig(FileGridModel.TYPE, FileGridModel.TYPE, 60);
ColumnConfig lastUpdate = new ColumnConfig(FileGridModel.LASTMODIFIED, "Last Update", 90);
lastUpdate.setDateTimeFormat(DateTimeFormat.getFormat("dd MMM hh:mm aaa yyyy"));
ColumnConfig category = new ColumnConfig(FileModel.HUMAN_REDABLE_CATEGORY, FileModel.HUMAN_REDABLE_CATEGORY, 100);
ColumnConfig category = new ColumnConfig(FileModel.HUMAN_REDABLE_CATEGORY, FileModel.HUMAN_REDABLE_CATEGORY,
100);
ColumnConfig size = new ColumnConfig(FileGridModel.SIZE, FileGridModel.SIZE, 45);
ColumnConfig ownerFullName = new ColumnConfig(FileGridModel.OWNERFULLNAME, FileGridModel.OWNER, 90);
size.setEditor(new CellEditor(new NumberField()));
if(group)
if (group)
cm = new ColumnModel(Arrays.asList(icon, name, ownerFullName, type, lastUpdate, size, category));
else
cm = new ColumnModel(Arrays.asList(icon, name, ownerFullName, type, lastUpdate, size));
@ -110,50 +104,46 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
grid = new Grid<FileGridModel>(store, columnModel);
grid.getView().setAutoFill(true);
view.setShowGroupedColumn(false);
view.setForceFit(true);
grid.setView(view);
view.setEmptyText(FileGridModel.EMPTY);
view.setShowGroupedColumn(false);
view.setForceFit(true);
grid.setView(view);
view.setEmptyText(FileGridModel.EMPTY);
if(group){
store.groupBy(FileGridModel.HUMAN_REDABLE_CATEGORY);
groupingEnabled = true;
}
if (group) {
store.groupBy(FileGridModel.HUMAN_REDABLE_CATEGORY);
groupingEnabled = true;
}
GridCellRenderer<FileGridModel> folderRender = new GridCellRenderer<FileGridModel>() {
GridCellRenderer<FileGridModel> folderRender = new GridCellRenderer<FileGridModel>() {
@Override
public String render(FileGridModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileGridModel> store, Grid<FileGridModel> grid) {
String val = model.get(property);
if(val==null || val.isEmpty())
return "";
public String render(FileGridModel model, String property, ColumnData config, int rowIndex, int colIndex,
ListStore<FileGridModel> store, Grid<FileGridModel> grid) {
String val = model.get(property);
if (val == null || val.isEmpty())
return "";
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' >" + val + "</span>";
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' >"
+ val + "</span>";
}
};
};
GridCellRenderer<FileGridModel> kbRender = new GridCellRenderer<FileGridModel>() {
@Override
public String render(FileGridModel model, String property, ColumnData config,
int rowIndex, int colIndex, ListStore<FileGridModel> store, Grid<FileGridModel> grid) {
GridCellRenderer<FileGridModel> kbRender = new GridCellRenderer<FileGridModel>() {
@Override
public String render(FileGridModel model, String property, ColumnData config, int rowIndex, int colIndex,
ListStore<FileGridModel> store, Grid<FileGridModel> grid) {
long value = (Long) model.get(property);
long value = (Long) model.get(property);
//
if (value != -1) {
String theSize = SizeUtil.readableFileSize(value);
return "<span>" + theSize + "</span>";
}
return "";
}
};
if(value!=-1){
double kb = value/1024;
if(kb<1)
kb=1;
return "<span>" + number.format(kb) + "</span>";
}
return "";
}
};
size.setRenderer(kbRender);
type.setRenderer(folderRender);
//setAlphanumericStoreSorter(grid);
size.setRenderer(kbRender);
type.setRenderer(folderRender);
GridFilters filters = new GridFilters();
filters.setLocal(true);
@ -186,17 +176,16 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
ModelData target = se.getSelectedItem();
if(target!=null){
if (target != null) {
currentItemSelected = (FileGridModel) target;
boolean isMultiselection = false;
if(se.getSelection()!=null && se.getSelection().size()>1)
if (se.getSelection() != null && se.getSelection().size() > 1)
isMultiselection = true;
AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target, isMultiselection));
}
else{
} else {
currentItemSelected = null;
AppController.getEventBus().fireEvent(new GridElementUnSelectedEvent());
}
@ -204,7 +193,6 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
}
});
grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() {
@Override
@ -212,39 +200,40 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
FileGridModel fileModel = grid.getSelectionModel().getSelectedItem();
if(fileModel!=null)
if (fileModel != null)
fireEventByFileModelType(fileModel);
// if(fileModel.isDirectory())
// AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(fileModel));
// if(fileModel.isDirectory())
// AppController.getEventBus().fireEvent(new
// DoubleClickElementSelectedEvent(fileModel));
}
});
});
grid.setContextMenu(null); // add context menu null - ignore browse event right click
grid.setContextMenu(null); //add context menu null - ignore browse event right click
grid.addListener(Events.OnContextMenu, new Listener<GridEvent<FileGridModel>>(){
grid.addListener(Events.OnContextMenu, new Listener<GridEvent<FileGridModel>>() {
@Override
public void handleEvent(GridEvent<FileGridModel> be)
{
public void handleEvent(GridEvent<FileGridModel> be) {
if(be.isRightClick()){
if (be.isRightClick()) {
List<FileGridModel> selection = grid.getSelectionModel().getSelection();
if(selection!=null && selection.size()>0){
List<FileGridModel> selection = grid.getSelectionModel().getSelection();
if (selection != null && selection.size() > 0) {
// if(grid.getSelectionModel().getSelection().size()>1){
// new InfoDisplay("Info", "The context menu is not available if multi-select is active");
// return;
// }
List<FileModel> selected = new ArrayList<FileModel>(selection.size());
for (FileGridModel fileGridModel : selection) {
selected.add(fileGridModel);
List<FileModel> selected = new ArrayList<FileModel>(selection.size());
for (FileGridModel fileGridModel : selection) {
selected.add(fileGridModel);
}
//List<FileGridModel> selectedItems = grid.getSelectionModel().getSelectedItems();
AppController.getEventBus().fireEvent(new OpenContextMenuTreeEvent(selected, be.getClientX(), be.getClientY()));
}
}
// List<FileGridModel> selectedItems =
// grid.getSelectionModel().getSelectedItems();
AppController.getEventBus()
.fireEvent(new OpenContextMenuTreeEvent(selected, be.getClientX(), be.getClientY()));
}
}
}
});
@ -281,7 +270,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
if (groupingStore != null) {
groupingStore.groupBy(FileGridModel.HUMAN_REDABLE_CATEGORY);
}
this.groupingEnabled = true;
this.groupingEnabled = true;
}
}
@ -290,19 +279,18 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*
* @param target the target
*/
private void fireEventByFileModelType(FileModel target){
private void fireEventByFileModelType(FileModel target) {
if(target.isDirectory()){
if (target.isDirectory()) {
AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(target));
return;
}
switch(target.getGXTFolderItemType()){
switch (target.getGXTFolderItemType()) {
case EXTERNAL_IMAGE:
case IMAGE_DOCUMENT:
AppController.getEventBus().fireEvent(new ImagePreviewEvent(target,0, 0));
AppController.getEventBus().fireEvent(new ImagePreviewEvent(target, 0, 0));
break;
case EXTERNAL_FILE:
case EXTERNAL_PDF_FILE:
@ -311,7 +299,8 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
case URL_DOCUMENT:
case EXTERNAL_RESOURCE_LINK:
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW, target.isDirectory() || target.isVreFolder(), null));
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(),
DownloadType.SHOW, target.isDirectory() || target.isVreFolder(), null));
break;
case EXTERNAL_URL:
AppController.getEventBus().fireEvent(new ShowUrlEvent(target));
@ -327,27 +316,26 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
}
/**
* Reset store.
*/
private void resetStore(){
private void resetStore() {
store.removeAll();
}
/**
* Update store.
*
* @param result the result
* @return true, if successful
*/
public boolean updateStore(List<FileGridModel> result){
public boolean updateStore(List<FileGridModel> result) {
resetStore();
if(result!= null && result.size()>0){
for(FileGridModel file: result){
//GWT.log("File: "+file.getName() + " has sync: "+file.getSynchedThreddsStatus());
if (result != null && result.size() > 0) {
for (FileGridModel file : result) {
// GWT.log("File: "+file.getName() + " has sync:
// "+file.getSynchedThreddsStatus());
file.setIcon();
}
store.add(result);
@ -356,16 +344,15 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
return false;
}
/**
* Adds the to store.
*
* @param result the result
* @return true, if successful
*/
public boolean addToStore(FileGridModel result){
public boolean addToStore(FileGridModel result) {
if(result!= null){
if (result != null) {
result.setIcon();
store.add(result);
return true;
@ -378,7 +365,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*
* @return the selected item
*/
public FileGridModel getSelectedItem(){
public FileGridModel getSelectedItem() {
return currentItemSelected;
}
@ -388,7 +375,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*
* @return the selected items
*/
public List<FileGridModel> getSelectedItems(){
public List<FileGridModel> getSelectedItems() {
return grid.getSelectionModel().getSelection();
}
@ -398,9 +385,9 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*
* @return the ids selected items
*/
public List<String> getIdsSelectedItems(){
public List<String> getIdsSelectedItems() {
if(grid.getSelectionModel().getSelection()!=null){
if (grid.getSelectionModel().getSelection() != null) {
List<String> ids = new ArrayList<String>();
for (FileModel file : grid.getSelectionModel().getSelection()) {
@ -421,22 +408,18 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*/
public boolean deleteItem(String identifier) {
FileGridModel fileTarget = getFileGridModelByIdentifier(identifier);
FileGridModel fileTarget = getFileGridModelByIdentifier(identifier);
if(fileTarget!=null){
if (fileTarget != null) {
Record record = store.getRecord(fileTarget);
store.remove((FileGridModel) record.getModel());
return true;
}
else
System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store" );
} else
System.out.println("Delete Error: file target with " + identifier + " identifier not exist in store");
return false;
}
/**
* Gets the current folder view.
*
@ -446,7 +429,6 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
return currentFolderView;
}
/**
* Sets the current folder view.
*
@ -456,35 +438,32 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
this.currentFolderView = currentFolderView;
}
/**
* Rename item.//
*
* @param itemIdentifier the item identifier
* @param newName the new name
* @param extension the extension
* @param newName the new name
* @param extension the extension
* @return true, if successful
*/
public boolean renameItem(String itemIdentifier, String newName, String extension) {
if(itemIdentifier!=null){
FileGridModel fileTarget = getFileGridModelByIdentifier(itemIdentifier);
if(fileTarget!=null){
if (itemIdentifier != null) {
FileGridModel fileTarget = getFileGridModelByIdentifier(itemIdentifier);
if (fileTarget != null) {
Record record = store.getRecord(fileTarget);
if(record!=null){
if(extension!= null)
record.set(FileGridModel.NAME, newName+extension);
if (record != null) {
if (extension != null)
record.set(FileGridModel.NAME, newName + extension);
else
record.set(FileGridModel.NAME, newName);
return true;
}
}
else
System.out.println("Record Error: file target not exist in store" );
}
else
System.out.println("Rename Error: file target is null" );
} else
System.out.println("Record Error: file target not exist in store");
} else
System.out.println("Rename Error: file target is null");
return false;
@ -496,7 +475,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @param id the id
* @return the file grid model by identifier
*/
public FileGridModel getFileGridModelByIdentifier(String id){
public FileGridModel getFileGridModelByIdentifier(String id) {
return store.findModel(FileGridModel.IDENTIFIER, id);
}
@ -506,13 +485,13 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
* @param id the id
* @return true, if successful
*/
public boolean selectItemByFileModelId(String id){
public boolean selectItemByFileModelId(String id) {
if(id!=null && !id.isEmpty()){
if (id != null && !id.isEmpty()) {
FileGridModel fileModel = getFileGridModelByIdentifier(id);
if(fileModel!=null){
if (fileModel != null) {
grid.getSelectionModel().select(fileModel, true);
return true;
}
@ -521,29 +500,27 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
return false;
}
/**
* Gets the store.
*
* @return the store
*/
public GroupingStore<FileGridModel> getStore(){
public GroupingStore<FileGridModel> getStore() {
return store;
}
/**
* Sets the border as on search.
*percentulae in java
* Sets the border as on search. percentulae in java
*
* @param bool the new border as on search
*/
public void setBorderAsOnSearch(boolean bool){
public void setBorderAsOnSearch(boolean bool) {
if(this.cp.getElement("body")!=null){
if (this.cp.getElement("body") != null) {
if(bool){
if (bool) {
this.cp.getElement("body").getStyle().setBorderColor("#32CD32");
}
else
} else
this.cp.getElement("body").getStyle().setBorderColor("#99BBE8");
}
@ -552,9 +529,9 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
/**
* Adds the data changed store listener.
*/
private void addDataChangedStoreListener(){
private void addDataChangedStoreListener() {
store.addListener(Store.Add, new Listener<StoreEvent<ModelData>>(){
store.addListener(Store.Add, new Listener<StoreEvent<ModelData>>() {
@Override
public void handleEvent(StoreEvent<ModelData> be) {
@ -563,7 +540,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
}
});
store.addListener(Store.Remove, new Listener<StoreEvent<ModelData>>(){
store.addListener(Store.Remove, new Listener<StoreEvent<ModelData>>() {
@Override
public void handleEvent(StoreEvent<ModelData> be) {
@ -572,7 +549,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
}
});
store.addListener(Store.Clear, new Listener<StoreEvent<ModelData>>(){
store.addListener(Store.Clear, new Listener<StoreEvent<ModelData>>() {
@Override
public void handleEvent(StoreEvent<ModelData> be) {
@ -588,9 +565,9 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
*
* @return -1 if store is null. The size otherwise
*/
private int storeSize(){
private int storeSize() {
if(store!=null && store.getModels()!=null){
if (store != null && store.getModels() != null) {
return store.getModels().size();
}
@ -600,40 +577,34 @@ public class GxtGridFilterGroupPanel extends LayoutContainer {
/**
* Refresh size.
*
* @param width the width
* @param width the width
* @param height the height
*/
public void refreshSize(String width, String height) {
// if(this.isRendered()){
// GWT.log("refresh size grid "+height);
// this.setHeight(height);
// }
GWT.log("refresh size grid "+width +"; heigth: "+height);
GWT.log("refresh size grid " + width + "; heigth: " + height);
this.setSize(width, height);
cp.setSize(width, height);
grid.setWidth(width);
int theWidth = Integer.parseInt(width.replace("px", ""));
GWT.log("theWidth is "+theWidth);
for (int i=1; i<cm.getColumnCount(); i++) {
GWT.log("theWidth is " + theWidth);
for (int i = 1; i < cm.getColumnCount(); i++) {
ColumnConfig col = cm.getColumn(i);
int percent;
if(i==1) {
percent = theWidth*30/100;
//GWT.log("i is: "+i+" percent is "+percent);
if (i == 1) {
percent = theWidth * 30 / 100;
// GWT.log("i is: "+i+" percent is "+percent);
col.setWidth(percent);
}else if (i==cm.getColumnCount()-1){
percent = theWidth*10/100;
//GWT.log("i is last column: "+i+" percent is "+percent);
} else if (i == cm.getColumnCount() - 1) {
percent = theWidth * 10 / 100;
// GWT.log("i is last column: "+i+" percent is "+percent);
col.setWidth(percent);
}else {
percent = theWidth*20/100;
//GWT.log("i is: "+i+" percent is "+percent);
} else {
percent = theWidth * 20 / 100;
// GWT.log("i is: "+i+" percent is "+percent);
col.setWidth(percent);
}
}
//cp.layout(true);
//this.layout(true);
}
}

View File

@ -18,7 +18,6 @@ import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.dom.client.Style.Overflow;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.Random;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;

View File

@ -4857,7 +4857,7 @@ button.btn.btn-mini, input[type="submit"].btn.btn-mini { *
.modal-body {
position: relative;
max-height: 500px !important;
max-height: 500px;
padding: 15px;
overflow-y: auto
}

1
src/test/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/resources/

View File

@ -4,3 +4,15 @@
/log4j.properties
/pred4s.gcubekey
/preprod.gcubekey
/devVRE.gcubekey
/CNR.it.gcubekey
/D4OS.gcubekey
/D4Research.gcubekey
/FARM.gcubekey
/ISTI.gcubekey
/OpenAIRE.gcubekey
/ParthenosVO.gcubekey
/SmartArea.gcubekey
/SoBigData.gcubekey
/d4science.research-infrastructures.eu.gcubekey
/gCubeApps.gcubekey