init import, maven version of workspace portlet
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@69017 82a268e6-3cf1-43bd-a215-b396298e98cf
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="target/workspace-6.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry including="**/*.java" kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/resources"/>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||||
|
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
|
||||||
|
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
|
||||||
|
<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.0.0-SNAPSHOT/WEB-INF/classes"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>workspace</name>
|
||||||
|
<comment>workspace project</comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.maven.ide.eclipse.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
|
||||||
|
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||||
|
<nature>org.maven.ide.eclipse.maven2Nature</nature>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||||
|
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||||
|
<nature>com.google.gwt.eclipse.core.gwtNature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src/main/webapp" />
|
||||||
|
<classpathentry kind="con"
|
||||||
|
path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER" />
|
||||||
|
<classpathentry kind="con"
|
||||||
|
path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="hide" value="true" />
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con"
|
||||||
|
path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary" />
|
||||||
|
<classpathentry kind="output" path="" />
|
||||||
|
</classpath>
|
|
@ -0,0 +1,3 @@
|
||||||
|
#Thu Jun 16 10:18:26 CEST 2011
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
filesCopiedToWebInfLib=
|
|
@ -0,0 +1,5 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
jarsExcludedFromWebInfLib=
|
||||||
|
lastWarOutDir=/home/backup-old-home/francesco-mangiacrapa/workspace/workspace/target/workspace-6.0.0-SNAPSHOT
|
||||||
|
warSrcDir=src/main/webapp
|
||||||
|
warSrcDirIsOutput=false
|
|
@ -0,0 +1,5 @@
|
||||||
|
#Thu Jun 16 11:14:17 CEST 2011
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
entryPointModules=
|
||||||
|
filesCopiedToWebInfLib=gwt-servlet.jar
|
||||||
|
gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgc3JjL21haW4vd2ViYXBwXV0+PC9leHRyYS1hcmdzPjx2bS1hcmdzPjwhW0NEQVRBWy1YbXg1MTJtXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLmNvbXBhbnkuU29tZU1vZHVsZTwvZW50cnktcG9pbnQtbW9kdWxlPjwvZ3d0LWNvbXBpbGUtc2V0dGluZ3M+
|
|
@ -0,0 +1,6 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
encoding//src/main/java=UTF-8
|
||||||
|
encoding//src/main/resources=UTF-8
|
||||||
|
encoding//src/test/java=UTF-8
|
||||||
|
encoding//src/test/resources=UTF-8
|
||||||
|
encoding/<project>=UTF-8
|
|
@ -0,0 +1,8 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.6
|
|
@ -0,0 +1,4 @@
|
||||||
|
activeProfiles=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
resolveWorkspaceProjects=true
|
||||||
|
version=1
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
|
<wb-module deploy-name="${module}">
|
||||||
|
<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="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||||
|
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
|
||||||
|
<property name="context-root" value="workspace"/>
|
||||||
|
</wb-module>
|
||||||
|
</project-modules>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<faceted-project>
|
||||||
|
<fixed facet="wst.jsdt.web"/>
|
||||||
|
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||||
|
<installed facet="java" version="1.6"/>
|
||||||
|
<installed facet="jst.web" version="2.5"/>
|
||||||
|
</faceted-project>
|
|
@ -0,0 +1 @@
|
||||||
|
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
@ -0,0 +1,9 @@
|
||||||
|
#Thu Sep 02 10:42:12 CEST 2010
|
||||||
|
activeProfiles=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
fullBuildGoals=process-test-resources
|
||||||
|
includeModules=false
|
||||||
|
resolveWorkspaceProjects=true
|
||||||
|
resourceFilterGoals=process-resources resources\:testResources
|
||||||
|
skipCompilerPlugin=true
|
||||||
|
version=1
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="com.google.gwt.eclipse.core.launch.gwtJUnit">
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.LOG_LEVEL" value="INFO"/>
|
||||||
|
<booleanAttribute key="com.google.gwt.eclipse.core.NOT_HEADLESS" value="false"/>
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.OUT_DIR" value="www-test"/>
|
||||||
|
<booleanAttribute key="com.google.gwt.eclipse.core.STANDARDS_MODE" value="false"/>
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.STYLE" value="OBFUSCATED"/>
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.WEB_MODE" value="false"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/workspace/src/test/java/org/gcube/portlets/user/workspace/client/GwtTestWorkspacePortlet.java"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="1"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gdt.eclipse.maven.mavenClasspathProvider"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.gcube.portlets.user.workspace.client.GwtTestWorkspacePortlet"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="workspace"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<launchConfiguration type="com.google.gwt.eclipse.core.launch.gwtJUnit">
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.LOG_LEVEL" value="INFO"/>
|
||||||
|
<booleanAttribute key="com.google.gwt.eclipse.core.NOT_HEADLESS" value="false"/>
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.OUT_DIR" value="www-test"/>
|
||||||
|
<booleanAttribute key="com.google.gwt.eclipse.core.STANDARDS_MODE" value="false"/>
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.STYLE" value="OBFUSCATED"/>
|
||||||
|
<stringAttribute key="com.google.gwt.eclipse.core.WEB_MODE" value="true"/>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
|
<listEntry value="/workspace/src/test/java/org/gcube/portlets/user/workspace/client/GwtTestWorkspacePortlet.java"/>
|
||||||
|
</listAttribute>
|
||||||
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
|
<listEntry value="1"/>
|
||||||
|
</listAttribute>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||||
|
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gdt.eclipse.maven.mavenClasspathProvider"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.gcube.portlets.user.workspace.client.GwtTestWorkspacePortlet"/>
|
||||||
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="workspace"/>
|
||||||
|
</launchConfiguration>
|
|
@ -0,0 +1,279 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<artifactId>maven-parent</artifactId>
|
||||||
|
<groupId>org.gcube.tools</groupId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath />
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
<artifactId>workspace</artifactId>
|
||||||
|
<packaging>war</packaging>
|
||||||
|
<version>6.0.0-SNAPSHOT</version>
|
||||||
|
<name>gCube Workspace Portlet</name>
|
||||||
|
<description>
|
||||||
|
gcube Workspace Portlet is a portlet for users workspace management
|
||||||
|
</description>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:svn:http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId}</connection>
|
||||||
|
<developerConnection>scm:https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId}</developerConnection>
|
||||||
|
<url>http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/${project.artifactId}</url>
|
||||||
|
</scm>
|
||||||
|
<properties>
|
||||||
|
<!-- Convenience property to set the GWT version -->
|
||||||
|
<gwtVersion>2.4.0</gwtVersion>
|
||||||
|
<distroDirectory>distro</distroDirectory>
|
||||||
|
<!-- GWT needs at least java 1.6 -->
|
||||||
|
<maven.compiler.source>1.6</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.6</maven.compiler.target>
|
||||||
|
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
|
||||||
|
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!-- This dependency is needed and is need on TOP to use GWT UI BInder
|
||||||
|
without old Xerces version of gCore complaining -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>xerces</groupId>
|
||||||
|
<artifactId>xercesImpl</artifactId>
|
||||||
|
<version>2.9.1</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.gwt</groupId>
|
||||||
|
<artifactId>gwt-user</artifactId>
|
||||||
|
<version>${gwtVersion}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.gwt</groupId>
|
||||||
|
<artifactId>gwt-servlet</artifactId>
|
||||||
|
<version>${gwtVersion}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sencha.gxt</groupId>
|
||||||
|
<artifactId>gxt</artifactId>
|
||||||
|
<version>2.2.5</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.core</groupId>
|
||||||
|
<artifactId>gcf</artifactId>
|
||||||
|
<version>[1.4.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
<artifactId>gcube-widgets</artifactId>
|
||||||
|
<version>[1.4.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portal</groupId>
|
||||||
|
<artifactId>custom-portal-handler</artifactId>
|
||||||
|
<version>[1.2.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.applicationsupportlayer</groupId>
|
||||||
|
<artifactId>aslcore</artifactId>
|
||||||
|
<version>[3.2.0-SNAPSHOT, 4.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portal</groupId>
|
||||||
|
<artifactId>social-networking-library</artifactId>
|
||||||
|
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
<artifactId>workspace-tree-widget</artifactId>
|
||||||
|
<version>[6.0.0-SNAPSHOT, 7.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.contentmanagement</groupId>
|
||||||
|
<artifactId>storage-resource-link-plugin</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
<artifactId>wsmail-widget</artifactId>
|
||||||
|
<version>[1.1.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
<artifactId>home-library</artifactId>
|
||||||
|
<version>[4.3.0-SNAPSHOT, 5.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
|
<artifactId>home-library-jcr</artifactId>
|
||||||
|
<version>[1.3.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.dvos</groupId>
|
||||||
|
<artifactId>usermanagement-core</artifactId>
|
||||||
|
<version>[1.3.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.liferay.portal</groupId>
|
||||||
|
<artifactId>portal-service</artifactId>
|
||||||
|
<version>6.0.6</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.portlet</groupId>
|
||||||
|
<artifactId>portlet-api</artifactId>
|
||||||
|
<version>2.0</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
<version>1.6.4</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<version>1.6.4</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.7</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.validation</groupId>
|
||||||
|
<artifactId>validation-api</artifactId>
|
||||||
|
<version>1.0.0.GA</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.validation</groupId>
|
||||||
|
<artifactId>validation-api</artifactId>
|
||||||
|
<version>1.0.0.GA</version>
|
||||||
|
<classifier>sources</classifier>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<!-- Generate compiled stuff in the folder used for developing mode -->
|
||||||
|
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
|
||||||
|
<!-- GWT Maven Plugin -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>gwt-maven-plugin</artifactId>
|
||||||
|
<version>2.4.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>compile</goal>
|
||||||
|
<!-- <goal>test</goal> -->
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<!-- Plugin configuration. There are many available options, see gwt-maven-plugin
|
||||||
|
documentation at codehaus.org -->
|
||||||
|
<configuration>
|
||||||
|
<runTarget>Messages.html</runTarget>
|
||||||
|
<hostedWebapp>${webappDirectory}</hostedWebapp>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Copy static web files before executing gwt:run -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<version>2.1.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>compile</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>exploded</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<webappDirectory>${webappDirectory}</webappDirectory>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>2.3.2</version>
|
||||||
|
<configuration>
|
||||||
|
<source>1.6</source>
|
||||||
|
<target>1.6</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<!-- SA Plugin -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>${distroDirectory}/descriptor.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>servicearchive</id>
|
||||||
|
<phase>install</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<version>2.5</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-profile</id>
|
||||||
|
<phase>install</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>target</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${distroDirectory}</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
<includes>
|
||||||
|
<include>profile.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
||||||
|
|
|
@ -0,0 +1,826 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsExplorer.ViewSwitchType;
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsPortlet.ViewSwitchTypeInResult;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ActiveGroupingView;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ActiveGroupingViewHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.AddFolderEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.AddFolderEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.AddSmartFolderEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DeleteItemEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DeleteItemEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DeleteMessageEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DeleteMessageEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DoubleClickElementSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DoubleClickElementSelectedEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.FileDownloadEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.FileDownloadEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.FileUploadEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.FileUploadEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.FilterScopeEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.LoadAllScopeEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.LoadAllScopeEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenReportsEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.PreviewMessageEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.PreviewMessageEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.RenameItemEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.RenameItemEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SaveAttachmentsEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SaveAttachmentsEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SaveSmartFolderEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SaveSmartFolderEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ScopeChangeEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ScopeChangeEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SearchTextEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SearchTextEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SendMessageEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SendMessageEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.WebDavUrlEventHandler;
|
||||||
|
import org.gcube.portlets.user.workspace.client.interfaces.EventsTypeEnum;
|
||||||
|
import org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface;
|
||||||
|
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.FolderModel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.ScopeModel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.WorskpacePortlet;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.panels.GxtBorderLayoutPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.panels.GxtItemsPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
|
||||||
|
import org.gcube.portlets.user.wsmail.client.forms.MailForm;
|
||||||
|
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
|
import com.google.gwt.core.client.RunAsyncCallback;
|
||||||
|
import com.google.gwt.core.client.Scheduler;
|
||||||
|
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
|
||||||
|
import com.google.gwt.event.shared.HandlerManager;
|
||||||
|
import com.google.gwt.user.client.Cookies;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
import com.google.gwt.user.client.ui.HasWidgets;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class AppController implements SubscriberInterface {
|
||||||
|
private final static HandlerManager eventBus = new HandlerManager(null);
|
||||||
|
private WorskpacePortlet wsPortlet = null;
|
||||||
|
private AppControllerExplorer appContrExplorer = null;
|
||||||
|
private String rootIdentifier = null;
|
||||||
|
public static boolean isSearchActive = false;
|
||||||
|
|
||||||
|
public AppController(AppControllerExplorer appControllerExplorer) {
|
||||||
|
this.appContrExplorer = appControllerExplorer;
|
||||||
|
this.appContrExplorer.subscribe(this, new EventsTypeEnum[] {
|
||||||
|
EventsTypeEnum.RENAME_ITEM_EVENT,
|
||||||
|
EventsTypeEnum.SELECTED_ITEM_EVENT,
|
||||||
|
// EventsTypeEnum.EXPAND_FOLDER_EVENT,
|
||||||
|
EventsTypeEnum.ADDED_FOLDER_EVENT,
|
||||||
|
EventsTypeEnum.DELETE_ITEM_EVENT,
|
||||||
|
EventsTypeEnum.SUBTREE_LOAD_EVENT,
|
||||||
|
EventsTypeEnum.SMART_FOLDER_EVENT,
|
||||||
|
EventsTypeEnum.COMPLETED_FILE_UPLOAD_EVENT,
|
||||||
|
EventsTypeEnum.ADDED_FILE_EVENT,
|
||||||
|
EventsTypeEnum.MOVED_ITEM_EVENT,
|
||||||
|
EventsTypeEnum.LOAD_MESSAGES_EVENT,
|
||||||
|
EventsTypeEnum.SWITCH_VIEW_EVENT,
|
||||||
|
EventsTypeEnum.DELETED_MESSAGE,
|
||||||
|
EventsTypeEnum.MARK_MESSAGE_AS_READ,
|
||||||
|
EventsTypeEnum.REFRESH_FOLDER,
|
||||||
|
EventsTypeEnum.SELECTED_MESSAGE,
|
||||||
|
EventsTypeEnum.CREATE_NEW_MESSAGE,
|
||||||
|
EventsTypeEnum.REPLY_FORWARD_MESSAGE
|
||||||
|
});
|
||||||
|
bind();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerManager getEventBus() {
|
||||||
|
return eventBus;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void bind() {
|
||||||
|
// History.addValueChangeHandler(this);
|
||||||
|
|
||||||
|
//********EVENTS TO NOTIFY SUBSCRIBERS
|
||||||
|
eventBus.addHandler(ActiveGroupingView.TYPE, new ActiveGroupingViewHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActiveGroupingView(ActiveGroupingView activeGroupingView) {
|
||||||
|
|
||||||
|
if(activeGroupingView.isActiveGrouping()){
|
||||||
|
setCookieGridViewSetting("true");
|
||||||
|
wsPortlet.getGridGroupContainer().enableGrouping();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
setCookieGridViewSetting("false");
|
||||||
|
wsPortlet.getGridGroupContainer().disableGrouping();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(OpenReportsEvent.TYPE, new OpenReportsEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClickOpenReports(OpenReportsEvent openReportsEvent) {
|
||||||
|
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new OpenReportsEvent(openReportsEvent.getSourceFileModel()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(PreviewMessageEvent.TYPE, new PreviewMessageEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPreviewMessage(PreviewMessageEvent previewMessageEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new PreviewMessageEvent(previewMessageEvent.getMessageIdentifier(), previewMessageEvent.getMessageType()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(WebDavUrlEvent.TYPE, new WebDavUrlEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClickWebDavUrl(WebDavUrlEvent webDavUrlEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new WebDavUrlEvent(webDavUrlEvent.getItemIdentifier()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
eventBus.addHandler(OpenContextMenuTreeEvent.TYPE, new OpenContextMenuTreeEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOpenContextMenuTree(OpenContextMenuTreeEvent openContextMenuTreeEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(openContextMenuTreeEvent);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(ImagePreviewEvent.TYPE, new ImagePreviewEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClickPreview(ImagePreviewEvent imgPrevEvnt) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new ImagePreviewEvent(imgPrevEvnt.getSourceFileModel(), imgPrevEvnt.getClientX(), imgPrevEvnt.getClientY()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(FileDownloadEvent.TYPE, new FileDownloadEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFileDownloadEvent(FileDownloadEvent fileDownloadEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(fileDownloadEvent.getItemIdentifier(), fileDownloadEvent.getItemName(), fileDownloadEvent.getDownloadType()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(DeleteMessageEvent.TYPE, new DeleteMessageEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDeleteMessage(DeleteMessageEvent deleteMessageEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new DeleteMessageEvent(deleteMessageEvent.getMessageTarget()));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(SaveAttachmentsEvent.TYPE, new SaveAttachmentsEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSaveAttachments(SaveAttachmentsEvent saveAttachmentsEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new SaveAttachmentsEvent(saveAttachmentsEvent.getMessageIdentifier(), saveAttachmentsEvent.getMessageType()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(GridElementSelectedEvent.TYPE, new GridElementSelectedEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGridElementSelected(GridElementSelectedEvent event) {
|
||||||
|
|
||||||
|
doElementGridSelected(true, event.getSourceFile());
|
||||||
|
|
||||||
|
// setFileDetailsInView(event.getSourceFile().getIdentifier());
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(LoadAllScopeEvent.TYPE, new LoadAllScopeEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadScopes(LoadAllScopeEvent loadAllScopeEvent) {
|
||||||
|
doLoadAllScope();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doLoadAllScope() {
|
||||||
|
|
||||||
|
appContrExplorer.getRpcWorkspaceService().getAllScope(new AsyncCallback<List<ScopeModel>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting all scope." +ConstantsExplorer.TRY_AGAIN, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<ScopeModel> result) {
|
||||||
|
|
||||||
|
// for(ScopeModel scope: result)
|
||||||
|
// System.out.println("#############Scopde id " + scope.getId() + " name " + scope.getName());
|
||||||
|
|
||||||
|
if(result!=null && result.size()>0){
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setListScope(result);
|
||||||
|
wsPortlet.getSearchAndFilterContainer().selectScopeByIndex(0); //select first scope
|
||||||
|
}
|
||||||
|
else
|
||||||
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting all scope. No scope available. " +ConstantsExplorer.TRY_AGAIN, null);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(ScopeChangeEvent.TYPE, new ScopeChangeEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadScope(ScopeChangeEvent scopeChangeEvent) {
|
||||||
|
doLoadScope(scopeChangeEvent.getScopeId());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doLoadScope(String scopeId) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new FilterScopeEvent(scopeId));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(SaveSmartFolderEvent.TYPE, new SaveSmartFolderEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSaveSmartFolder(SaveSmartFolderEvent saveSmartFolderEvent) {
|
||||||
|
doSaveSmartFolder(saveSmartFolderEvent);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doSaveSmartFolder(SaveSmartFolderEvent event) {
|
||||||
|
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new AddSmartFolderEvent(event.getSearchText()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(DoubleClickElementSelectedEvent.TYPE, new DoubleClickElementSelectedEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDoubleClickElementGrid(DoubleClickElementSelectedEvent doubleClickElementSelectedEvent) {
|
||||||
|
|
||||||
|
doElementDoubleClick(doubleClickElementSelectedEvent.getSourceFile());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doElementDoubleClick(final FileGridModel fileModel) {
|
||||||
|
// appContrExplorer.expandFolder(event.getIdentifier());
|
||||||
|
|
||||||
|
//COMMENTED 01-02-2013
|
||||||
|
// appContrExplorer.expandFolder(event.getIdentifier());
|
||||||
|
|
||||||
|
FolderModel folder = new FolderModel(fileModel.getIdentifier(), fileModel.getName(), fileModel.getParentFileModel(), true, fileModel.isShared());
|
||||||
|
updateStoreByRpc(folder);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(SearchTextEvent.TYPE, new SearchTextEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSearchText(SearchTextEvent searchTextEvent) {
|
||||||
|
|
||||||
|
if(searchTextEvent.getTextSearch()==null){
|
||||||
|
appContrExplorer.searching(false);
|
||||||
|
wsPortlet.getGridGroupContainer().setBorderAsOnSearch(false);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setSearchActive(true); //ADDED 06-04-12
|
||||||
|
isSearchActive = true;
|
||||||
|
appContrExplorer.searching(true);
|
||||||
|
doSearchText(searchTextEvent.getTextSearch());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doSearchText(String textSearch) {
|
||||||
|
|
||||||
|
if(wsPortlet.getGxtCardLayoutResultPanel().getActivePanel() instanceof GxtItemsPanel){ //If active panel is panel with file items
|
||||||
|
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setVisibleButtonSave(true); //ADDED 24/04/2012
|
||||||
|
|
||||||
|
// wsPortlet.getGxtCardLayoutResultPanel().getToolBarItem().activeAllButtonWithoutGroupView(false); //ADDED 06/02/2013
|
||||||
|
|
||||||
|
wsPortlet.getGridGroupContainer().setBorderAsOnSearch(true);
|
||||||
|
|
||||||
|
wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE);
|
||||||
|
|
||||||
|
appContrExplorer.getRpcWorkspaceService().getItemsBySearchName(textSearch, new AsyncCallback<List<FileGridModel>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
System.out.println("Failure search RPC");
|
||||||
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " searching item. " +ConstantsExplorer.TRY_AGAIN, null);
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<FileGridModel> result) {
|
||||||
|
wsPortlet.getGridGroupContainer().updateStore(result);
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(PathElementSelectedEvent.TYPE, new PathElementSelectedEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPathElementSelected(PathElementSelectedEvent event) {
|
||||||
|
wsPortlet.getSearchAndFilterContainer().searchCancel(); //cancel search
|
||||||
|
|
||||||
|
if(wsPortlet.getGxtCardLayoutResultPanel().getActivePanel() instanceof GxtItemsPanel){ //If active panel is panel with file items
|
||||||
|
AppController.getEventBus().fireEvent(new SearchTextEvent(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
doPathElementSelected(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doPathElementSelected(PathElementSelectedEvent event) {
|
||||||
|
// appContrExplorer.selectItemInTree(event.getSourceFile().getIdentifier());
|
||||||
|
|
||||||
|
appContrExplorer.expandFolder(event.getSourceFile().getIdentifier());
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(GridElementUnSelectedEvent.TYPE, new GridElementUnSelectedEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGridElementUnSelected(GridElementUnSelectedEvent event) {
|
||||||
|
doElementGridSelected(false, null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
eventBus.addHandler(AddFolderEvent.TYPE, new AddFolderEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAddItem(AddFolderEvent event) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new AddFolderEvent(event.getFileSourceModel(),event.getParentFileModel()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(SendMessageEvent.TYPE, new SendMessageEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSendMessage(SendMessageEvent sendMessageEvent) {
|
||||||
|
doSendMessage(sendMessageEvent.getListFileModelSelected());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doSendMessage(List<FileModel> listFileModelSelected) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new SendMessageEvent(null));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
eventBus.addHandler(FileUploadEvent.TYPE, new FileUploadEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFileUploadEvent(FileUploadEvent fileUploadEvent) {
|
||||||
|
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new FileUploadEvent(null,fileUploadEvent.getUploadType()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
eventBus.addHandler(FileDownloadEvent.TYPE, new FileDownloadEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFileDownloadEvent(FileDownloadEvent fileDownloadEvent) {
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(fileDownloadEvent.getItemIdentifier(), fileDownloadEvent.getItemName(), fileDownloadEvent.getDownloadType()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
eventBus.addHandler(DeleteItemEvent.TYPE, new DeleteItemEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDeleteItem(DeleteItemEvent event) {
|
||||||
|
doDeleteItem(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doDeleteItem(final DeleteItemEvent event){
|
||||||
|
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new DeleteItemEvent(event.getFileTarget()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
eventBus.addHandler(RenameItemEvent.TYPE, new RenameItemEventHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRenameItem(RenameItemEvent event) {
|
||||||
|
doRenameItem(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void doRenameItem(final RenameItemEvent event) {
|
||||||
|
|
||||||
|
AppControllerExplorer.getEventBus().fireEvent(new RenameItemEvent(event.getFileTarget()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doElementGridSelected(boolean isSelected, FileModel target) {
|
||||||
|
|
||||||
|
// wsPortlet.getToolbarPanelContainer().activeButtonsOnSelect(itemSelected);
|
||||||
|
|
||||||
|
|
||||||
|
wsPortlet.getGxtCardLayoutResultPanel().getToolBarItem().activeButtonsOnSelect(target, isSelected);
|
||||||
|
|
||||||
|
|
||||||
|
if(isSelected){
|
||||||
|
ArrayList<FileModel> listParents = appContrExplorer.getListParentsByIdentifier(target.getIdentifier());
|
||||||
|
|
||||||
|
setPathInView(listParents); //Set file path in tab panel on current item selected
|
||||||
|
|
||||||
|
|
||||||
|
if(isSearchActive){ //COMMENTED 30-01-12 - syncronization only if search is active
|
||||||
|
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setSearchActive(true);
|
||||||
|
|
||||||
|
appContrExplorer.searching(true);
|
||||||
|
|
||||||
|
appContrExplorer.findItemAndSelectItemInTree(target.getIdentifier());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setPathInView(ArrayList<FileModel> parents){
|
||||||
|
|
||||||
|
//this.wsPortlet.getBasicTabContainer().setLabelPath(path); //Set path in tab view panel
|
||||||
|
|
||||||
|
this.wsPortlet.getToolBarPath().setPath(parents); //Set path in tab view panel
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* init method
|
||||||
|
* @param rootPanel
|
||||||
|
*/
|
||||||
|
public void go(final HasWidgets rootPanel) {
|
||||||
|
|
||||||
|
final String searchParameter = Window.Location.getParameter(ConstantsPortlet.GET_SEARCH_PARAMETER);
|
||||||
|
final boolean instanceWithGrouping = readCookieWorkspaceGridViewSetting();
|
||||||
|
|
||||||
|
System.out.println("Cookie "+ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING + " return "+instanceWithGrouping);
|
||||||
|
|
||||||
|
boolean isSearch = false;
|
||||||
|
// Log.trace("Start Workspace Portlet");
|
||||||
|
if (this.appContrExplorer == null){
|
||||||
|
this.wsPortlet = new WorskpacePortlet(instanceWithGrouping);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
|
||||||
|
if(searchParameter!=null && !searchParameter.isEmpty())
|
||||||
|
isSearch = true;
|
||||||
|
|
||||||
|
this.wsPortlet = new WorskpacePortlet(this.appContrExplorer.getPanel(true, false, !isSearch), instanceWithGrouping);
|
||||||
|
eventBus.fireEvent(new LoadAllScopeEvent()); //LOAD ALL SCOPE EVENT
|
||||||
|
}
|
||||||
|
|
||||||
|
rootPanel.add(wsPortlet.getBorderLayoutContainer());
|
||||||
|
|
||||||
|
//SET TOGGLE BUTTON GRID VIEW
|
||||||
|
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
wsPortlet.getGxtCardLayoutResultPanel().getToolBarItem().toggleGridViewButton(instanceWithGrouping);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//If is SEARCH - fire event search text
|
||||||
|
if(searchParameter!=null && !searchParameter.isEmpty())
|
||||||
|
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
// wsPortlet.getGxtCardLayoutResultPanel().getToolBarItem().activeAllButtonWithoutGroupView(false);
|
||||||
|
wsPortlet.getSearchAndFilterContainer().searchText(searchParameter);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return true if exists a cookie with msg as true value (or not exists the cookie), false otherwise
|
||||||
|
*/
|
||||||
|
private boolean readCookieWorkspaceGridViewSetting() {
|
||||||
|
|
||||||
|
//get the cookie with name GCBUEWorkspaceGridViewSetting
|
||||||
|
String msg = Cookies.getCookie(ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING);
|
||||||
|
|
||||||
|
//if null, there was no cookie
|
||||||
|
if(msg == null){
|
||||||
|
setCookieGridViewSetting("true");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(msg.compareTo("true")==0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setCookie(String name, String value, int days) {
|
||||||
|
|
||||||
|
if (value == null) {
|
||||||
|
Cookies.removeCookie(name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now
|
||||||
|
Date expiringDate = new Date();
|
||||||
|
// Now + days
|
||||||
|
expiringDate.setTime(expiringDate.getTime() + ConstantsPortlet.MILLISECS_PER_DAY * days);
|
||||||
|
Cookies.setCookie(name, value, expiringDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setCookieGridViewSetting(String value) {
|
||||||
|
|
||||||
|
setCookie(ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING, value, ConstantsPortlet.COOKIE_EXPIRE_DAYS);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtBorderLayoutPanel getMainPanel(){
|
||||||
|
return wsPortlet.getBorderLayoutContainer();
|
||||||
|
}
|
||||||
|
|
||||||
|
// public ExplorerPanel getExplorerPanel() {
|
||||||
|
// return wsPortlet.getExplorerPanel();
|
||||||
|
// }
|
||||||
|
|
||||||
|
public void setSizeAsyncTreePanel(int width, int height) {
|
||||||
|
wsPortlet.getExplorerPanel().getAsycTreePanel().setSizeTreePanel(width-17, height-55);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateStoreByRpc(final FileModel folder){
|
||||||
|
|
||||||
|
wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE);
|
||||||
|
|
||||||
|
System.out.println("In client new RPC getFolderChildrenForFileGrid "+folder.getName());
|
||||||
|
|
||||||
|
appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGrid(folder, new AsyncCallback<List<FileGridModel>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting items for grid. " +ConstantsExplorer.TRY_AGAIN, null);
|
||||||
|
// System.out.println(caught);
|
||||||
|
// caught.printStackTrace();
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<FileGridModel> result) {
|
||||||
|
wsPortlet.getGridGroupContainer().setCurrentFolderView(folder); //SET folder as current view
|
||||||
|
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
wsPortlet.getGridGroupContainer().updateStore(result);
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileModel getSelectedFolder(){
|
||||||
|
|
||||||
|
return this.appContrExplorer.getSelectedFolderInTree();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Following methods implements SubscriberInterface
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addedFolder(String itemIdentifier, FileModel parent) {
|
||||||
|
updateStoreByRpc(parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addedFile(String itemIdentifier, FileModel parent) {
|
||||||
|
updateStoreByRpc(parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selectedItem(FileModel item, ArrayList<FileModel> parents) {
|
||||||
|
|
||||||
|
FileModel currentFolder = wsPortlet.getGridGroupContainer().getCurrentFolderView();
|
||||||
|
|
||||||
|
if(currentFolder!=null){
|
||||||
|
|
||||||
|
setPathInView(parents); //set path
|
||||||
|
|
||||||
|
if(wsPortlet.getSearchAndFilterContainer().isSearchActive()){ //ADDED 12-04-12
|
||||||
|
wsPortlet.getSearchAndFilterContainer().searchCancel(); //TODO added in 05/04/2012
|
||||||
|
AppController.getEventBus().fireEvent(new SearchTextEvent(null));
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setSearchActive(false);
|
||||||
|
isSearchActive = false;
|
||||||
|
if(item.isDirectory())
|
||||||
|
updateStoreByRpc(item);
|
||||||
|
else
|
||||||
|
updateStoreByRpc(item.getParentFileModel());
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.isDirectory())
|
||||||
|
updateStoreByRpc(item); //View children of folder
|
||||||
|
else{
|
||||||
|
String currentIdentifier = currentFolder.getIdentifier(); //Actual id parent
|
||||||
|
|
||||||
|
if(!currentIdentifier.equals(item.getParentFileModel().getIdentifier())) {//Update store only if folder parent is differently
|
||||||
|
updateStoreByRpc(item.getParentFileModel()); //View contents of parent folder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
updateStoreByRpc(item); //View children of root
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void expandFolderItem(FolderModel folder) {
|
||||||
|
updateStoreByRpc(folder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean renameItem(String itemIdentifier, String newName, String extension) {
|
||||||
|
return wsPortlet.getGridGroupContainer().renameItem(itemIdentifier, newName, extension);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean deleteItem(String itemIdentifier) {
|
||||||
|
return wsPortlet.getGridGroupContainer().deleteItem(itemIdentifier);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rootLoaded(FileModel root) {
|
||||||
|
this.rootIdentifier = root.getIdentifier();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setParentItemSelected(ArrayList<FileModel> listParents){
|
||||||
|
setPathInView(listParents);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void smartFolderSelected(final String folderId, final String category) {
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("In client folderId: " + folderId);
|
||||||
|
System.out.println("In client category: " + category);
|
||||||
|
|
||||||
|
wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE);
|
||||||
|
|
||||||
|
wsPortlet.getGridGroupContainer().setBorderAsOnSearch(true);
|
||||||
|
|
||||||
|
if (folderId != null && !folderId.isEmpty()) {
|
||||||
|
|
||||||
|
appContrExplorer.getRpcWorkspaceService().getSmartFolderResultsById(folderId,new AsyncCallback<List<FileGridModel>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting smart folders. " +ConstantsExplorer.TRY_AGAIN, null);
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<FileGridModel> result) {
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setSearchActive(true);
|
||||||
|
isSearchActive = true;
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
wsPortlet.getGridGroupContainer().updateStore(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (category != null && !category.isEmpty()) {
|
||||||
|
|
||||||
|
appContrExplorer.getRpcWorkspaceService().getSmartFolderResultsByCategory(category, new AsyncCallback<List<FileGridModel>>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting smart folder results by category. " +ConstantsExplorer.TRY_AGAIN, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<FileGridModel> result) {
|
||||||
|
wsPortlet.getGridGroupContainer().unmask();
|
||||||
|
wsPortlet.getGridGroupContainer().updateStore(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void movedItems(String sourceParentIdentifier, FileModel targetParent) {
|
||||||
|
updateStoreByRpc(targetParent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void switchView(ViewSwitchType type){
|
||||||
|
|
||||||
|
if(type.equals(ViewSwitchType.Tree) || type.equals(ViewSwitchType.SmartFolder)){
|
||||||
|
wsPortlet.getGxtCardLayoutResultPanel().setActivePanel(ViewSwitchTypeInResult.Group);
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setEmptyText(ConstantsPortlet.SEARCHINWORSPACE);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
wsPortlet.getGxtCardLayoutResultPanel().setActivePanel(ViewSwitchTypeInResult.Messages);
|
||||||
|
wsPortlet.getSearchAndFilterContainer().setEmptyText(ConstantsPortlet.SEARCHINMESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
//***ADDED 24/04/2012
|
||||||
|
wsPortlet.getSearchAndFilterContainer().searchCancel();
|
||||||
|
eventBus.fireEvent(new SearchTextEvent(null));
|
||||||
|
// appContrExplorer.searching(false);
|
||||||
|
//**************
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void refreshFolder(FileModel folderTarget) {
|
||||||
|
updateStoreByRpc(folderTarget);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public void updatePrevieMessage(String fromLogin, String subject,
|
||||||
|
// String date, String body, List<FileModel> attachs) {
|
||||||
|
// wsPortlet.getMessagesPanelContainer().setBodyValue(subject, body);
|
||||||
|
// wsPortlet.getMessagesPanelContainer().setFromTitle(fromLogin, date);
|
||||||
|
// wsPortlet.getMessagesPanelContainer().setAttachs(attachs);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createNewMessage(final HashMap<String, String> hashAttachs) {
|
||||||
|
GWT.runAsync(MailForm.class, new RunAsyncCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess() {
|
||||||
|
if (hashAttachs.size() == 0) { //no attachments
|
||||||
|
new MailForm();
|
||||||
|
} else {
|
||||||
|
new MailForm(hashAttachs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void onFailure(Throwable reason) {
|
||||||
|
Window.alert("Could not load this component: " + reason.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ConstantsPortlet {
|
||||||
|
|
||||||
|
// ToolBar button
|
||||||
|
public static final String ADDFOLDER = "Add Folder";
|
||||||
|
public static final String REMOVEITEM = "Remove Item";
|
||||||
|
public static final String RENAMEITEM = "Rename Item";
|
||||||
|
public static final String UPLOADFILE = "Upload File";
|
||||||
|
public static final String DOWNLOADITEM = "Download Item";
|
||||||
|
public static final String UPLOADARCHIVE = "Upload Archive";
|
||||||
|
|
||||||
|
public static final String GET_SEARCH_PARAMETER ="search";
|
||||||
|
// Div Gwt
|
||||||
|
public static final String WORKSPACEDIV = "workspaceDiv";
|
||||||
|
|
||||||
|
// Panels Names
|
||||||
|
public static final String WORKSPACE = "Workspace";
|
||||||
|
public static final String EXPLORER = "Explorer";
|
||||||
|
public static final String DETAILS = "Details";
|
||||||
|
public static final String RESULT = "Result";
|
||||||
|
|
||||||
|
public enum ViewSwitchTypeInResult {
|
||||||
|
List, Icons, Group, Messages
|
||||||
|
};
|
||||||
|
|
||||||
|
// Messages
|
||||||
|
public static final String FIELDVALIDATEERROR = "The field must be alphanumeric";
|
||||||
|
|
||||||
|
// Filter Panel
|
||||||
|
public static final String SEARCH = "Search";
|
||||||
|
public static final String SAVE = "Save";
|
||||||
|
public static final String CANCEL = "Cancel";
|
||||||
|
public static final String SEARCHINWORSPACE = "Search in workspace";
|
||||||
|
public static final String SEARCHINMESSAGE = "Search in messages";
|
||||||
|
public static final String VIEWSPACE = "Filter by Space";
|
||||||
|
public static final String PREVIEW = "Preview";
|
||||||
|
public static final String OPEN = "Open";
|
||||||
|
|
||||||
|
public static final String TITLEACCESSWEBDAV = "Access from Desktop";
|
||||||
|
|
||||||
|
//COOKIE SETTINGS
|
||||||
|
public static final String GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING = "GCUBE-Cookie-WorkspaceGridViewSetting";
|
||||||
|
public static final int COOKIE_EXPIRE_DAYS = 30;
|
||||||
|
public static final long MILLISECS_PER_DAY = 1000L * 60L * 60L * 24L;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client;
|
||||||
|
|
||||||
|
import com.google.gwt.core.client.EntryPoint;
|
||||||
|
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||||
|
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class WorkspacePortlet implements EntryPoint {
|
||||||
|
/**
|
||||||
|
* This is the entry point method.
|
||||||
|
*/
|
||||||
|
|
||||||
|
AppController appController;
|
||||||
|
|
||||||
|
public void onModuleLoad() {
|
||||||
|
|
||||||
|
AppControllerExplorer appControllerExplorer = new AppControllerExplorer();
|
||||||
|
appController = new AppController(appControllerExplorer);
|
||||||
|
appController.go(RootPanel.get(ConstantsPortlet.WORKSPACEDIV));
|
||||||
|
|
||||||
|
Window.addResizeHandler(new ResizeHandler() {
|
||||||
|
@Override
|
||||||
|
public void onResize(ResizeEvent event) {
|
||||||
|
System.out.println("onWindowResized width: "+event.getWidth()+" height: "+event.getHeight());
|
||||||
|
updateSize();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
updateSize();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update window size
|
||||||
|
*/
|
||||||
|
public void updateSize(){
|
||||||
|
|
||||||
|
RootPanel workspace = RootPanel.get(ConstantsPortlet.WORKSPACEDIV);
|
||||||
|
|
||||||
|
int topBorder = workspace.getAbsoluteTop();
|
||||||
|
|
||||||
|
int leftBorder = workspace.getAbsoluteLeft();
|
||||||
|
|
||||||
|
|
||||||
|
int rootHeight = (Window.getClientHeight() - topBorder - 4) ;// - ((footer == null)?0:(footer.getOffsetHeight()-15));
|
||||||
|
|
||||||
|
if (rootHeight > 550)
|
||||||
|
rootHeight = 550;
|
||||||
|
|
||||||
|
int rootWidth = Window.getClientWidth() - 2* leftBorder; //- rightScrollBar;
|
||||||
|
|
||||||
|
System.out.println("New workspace dimension Height: "+rootHeight+" Width: "+rootWidth);
|
||||||
|
|
||||||
|
appController.getMainPanel().setHeight(rootHeight);
|
||||||
|
appController.getMainPanel().setWidth(rootWidth);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ActiveGroupingView extends GwtEvent<ActiveGroupingViewHandler> {
|
||||||
|
public static Type<ActiveGroupingViewHandler> TYPE = new Type<ActiveGroupingViewHandler>();
|
||||||
|
private boolean activeGrouping;
|
||||||
|
|
||||||
|
public boolean isActiveGrouping() {
|
||||||
|
return activeGrouping;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ActiveGroupingView(boolean active) {
|
||||||
|
this.activeGrouping = active;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<ActiveGroupingViewHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(ActiveGroupingViewHandler handler) {
|
||||||
|
handler.onActiveGroupingView(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
public interface ActiveGroupingViewHandler extends EventHandler {
|
||||||
|
void onActiveGroupingView(ActiveGroupingView activeGroupingView);
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.FileGridModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DoubleClickElementSelectedEvent extends GwtEvent<DoubleClickElementSelectedEventHandler> {
|
||||||
|
public static Type<DoubleClickElementSelectedEventHandler> TYPE = new Type<DoubleClickElementSelectedEventHandler>();
|
||||||
|
|
||||||
|
private FileGridModel targetFile = null;
|
||||||
|
|
||||||
|
public DoubleClickElementSelectedEvent(ModelData target) {
|
||||||
|
this.targetFile = (FileGridModel) target;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<DoubleClickElementSelectedEventHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(DoubleClickElementSelectedEventHandler handler) {
|
||||||
|
handler.onDoubleClickElementGrid(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getSourceFile() {
|
||||||
|
return targetFile;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface DoubleClickElementSelectedEventHandler extends EventHandler {
|
||||||
|
void onDoubleClickElementGrid(DoubleClickElementSelectedEvent doubleClickElementSelectedEvent);
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.FileGridModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GridElementSelectedEvent extends GwtEvent<GridElementSelectedEventHandler> {
|
||||||
|
public static Type<GridElementSelectedEventHandler> TYPE = new Type<GridElementSelectedEventHandler>();
|
||||||
|
|
||||||
|
private FileGridModel targetFile = null;
|
||||||
|
|
||||||
|
public GridElementSelectedEvent(ModelData target) {
|
||||||
|
this.targetFile = (FileGridModel) target;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<GridElementSelectedEventHandler> getAssociatedType() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(GridElementSelectedEventHandler handler) {
|
||||||
|
handler.onGridElementSelected(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getSourceFile() {
|
||||||
|
return targetFile;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface GridElementSelectedEventHandler extends EventHandler {
|
||||||
|
void onGridElementSelected(GridElementSelectedEvent event);
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GridElementUnSelectedEvent extends GwtEvent<GridElementUnSelectedEventHandler> {
|
||||||
|
public static Type<GridElementUnSelectedEventHandler> TYPE = new Type<GridElementUnSelectedEventHandler>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<GridElementUnSelectedEventHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(GridElementUnSelectedEventHandler handler) {
|
||||||
|
handler.onGridElementUnSelected(this);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface GridElementUnSelectedEventHandler extends EventHandler {
|
||||||
|
void onGridElementUnSelected(GridElementUnSelectedEvent event);
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.MessageModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GridMessageSelectedEvent extends GwtEvent<GridMessageSelectedEventHandler> {
|
||||||
|
public static Type<GridMessageSelectedEventHandler> TYPE = new Type<GridMessageSelectedEventHandler>();
|
||||||
|
|
||||||
|
private MessageModel targetMessage = null;
|
||||||
|
|
||||||
|
public GridMessageSelectedEvent(ModelData target) {
|
||||||
|
this.targetMessage = (MessageModel) target;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<GridMessageSelectedEventHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(GridMessageSelectedEventHandler handler) {
|
||||||
|
handler.onGridMessageSelected(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageModel getTargetMessage() {
|
||||||
|
return targetMessage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface GridMessageSelectedEventHandler extends EventHandler {
|
||||||
|
void onGridMessageSelected(GridMessageSelectedEvent gridMessageSelectedEvent);
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.MessageModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GridMessageUnSelectedEvent extends GwtEvent<GridMessageUnSelectedEventHandler> {
|
||||||
|
public static Type<GridMessageUnSelectedEventHandler> TYPE = new Type<GridMessageUnSelectedEventHandler>();
|
||||||
|
|
||||||
|
private MessageModel targetMessage = null;
|
||||||
|
|
||||||
|
public GridMessageUnSelectedEvent(ModelData target) {
|
||||||
|
this.targetMessage = (MessageModel) target;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<GridMessageUnSelectedEventHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(GridMessageUnSelectedEventHandler handler) {
|
||||||
|
handler.onGridMessageUnSelected(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageModel getTargetMessage() {
|
||||||
|
return targetMessage;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface GridMessageUnSelectedEventHandler extends EventHandler {
|
||||||
|
void onGridMessageUnSelected(GridMessageUnSelectedEvent gridMessageUnSelectedEvent);
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.FileGridModel;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GridRenameItemEvent extends GwtEvent<GridRenameItemEventHandler> {
|
||||||
|
public static Type<GridRenameItemEventHandler> TYPE = new Type<GridRenameItemEventHandler>();
|
||||||
|
|
||||||
|
private FileGridModel fileGridModel = null;
|
||||||
|
private String newName;
|
||||||
|
private String extension;
|
||||||
|
|
||||||
|
|
||||||
|
public GridRenameItemEvent(FileGridModel fileGridModel, String newName, String extension) {
|
||||||
|
this.fileGridModel = fileGridModel;
|
||||||
|
this.newName = newName;
|
||||||
|
this.extension = extension;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<GridRenameItemEventHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(GridRenameItemEventHandler handler) {
|
||||||
|
handler.onGridItemRename(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getFileGridModel() {
|
||||||
|
return fileGridModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNewName() {
|
||||||
|
return newName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExtension() {
|
||||||
|
return extension;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface GridRenameItemEventHandler extends EventHandler {
|
||||||
|
void onGridItemRename(GridRenameItemEvent event);
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class LoadAllScopeEvent extends GwtEvent<LoadAllScopeEventHandler> {
|
||||||
|
public static Type<LoadAllScopeEventHandler> TYPE = new Type<LoadAllScopeEventHandler>();
|
||||||
|
|
||||||
|
public LoadAllScopeEvent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<LoadAllScopeEventHandler> getAssociatedType() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(LoadAllScopeEventHandler handler) {
|
||||||
|
handler.onLoadScopes(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface LoadAllScopeEventHandler extends EventHandler {
|
||||||
|
void onLoadScopes(LoadAllScopeEvent loadAllScopeEvent);
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class PathElementSelectedEvent extends GwtEvent<PathElementSelectedEventHandler> {
|
||||||
|
public static Type<PathElementSelectedEventHandler> TYPE = new Type<PathElementSelectedEventHandler>();
|
||||||
|
|
||||||
|
private FileModel targetFile = null;
|
||||||
|
|
||||||
|
public PathElementSelectedEvent(FileModel target) {
|
||||||
|
this.targetFile = target;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<PathElementSelectedEventHandler> getAssociatedType() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(PathElementSelectedEventHandler handler) {
|
||||||
|
handler.onPathElementSelected(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileModel getSourceFile() {
|
||||||
|
return targetFile;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface PathElementSelectedEventHandler extends EventHandler {
|
||||||
|
void onPathElementSelected(PathElementSelectedEvent event);
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SaveSmartFolderEvent extends GwtEvent<SaveSmartFolderEventHandler>{
|
||||||
|
public static Type<SaveSmartFolderEventHandler> TYPE = new Type<SaveSmartFolderEventHandler>();
|
||||||
|
|
||||||
|
private String smartFolderName;
|
||||||
|
private String searchText;
|
||||||
|
private String workpaceFolderId;
|
||||||
|
|
||||||
|
public SaveSmartFolderEvent(String smartFolderName, String searchText, String workpaceFolderId) {
|
||||||
|
|
||||||
|
this.smartFolderName = smartFolderName;
|
||||||
|
this.searchText = searchText;
|
||||||
|
this.workpaceFolderId = workpaceFolderId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<SaveSmartFolderEventHandler> getAssociatedType() {
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(SaveSmartFolderEventHandler handler) {
|
||||||
|
handler.onSaveSmartFolder(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSmartFolderName() {
|
||||||
|
return smartFolderName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSearchText() {
|
||||||
|
return searchText;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkpaceFolderId() {
|
||||||
|
return workpaceFolderId;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface SaveSmartFolderEventHandler extends EventHandler {
|
||||||
|
void onSaveSmartFolder(SaveSmartFolderEvent saveSmartFolderEvent);
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ScopeChangeEvent extends GwtEvent<ScopeChangeEventHandler> {
|
||||||
|
public static Type<ScopeChangeEventHandler> TYPE = new Type<ScopeChangeEventHandler>();
|
||||||
|
|
||||||
|
private String scopeId;
|
||||||
|
|
||||||
|
|
||||||
|
public ScopeChangeEvent(String scopeId) {
|
||||||
|
this.scopeId = scopeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<ScopeChangeEventHandler> getAssociatedType() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(ScopeChangeEventHandler handler) {
|
||||||
|
handler.onLoadScope(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getScopeId() {
|
||||||
|
return scopeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface ScopeChangeEventHandler extends EventHandler {
|
||||||
|
void onLoadScope(ScopeChangeEvent scopeChangeEvent);
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SearchTextEvent extends GwtEvent<SearchTextEventHandler> {
|
||||||
|
public static Type<SearchTextEventHandler> TYPE = new Type<SearchTextEventHandler>();
|
||||||
|
|
||||||
|
private String textSearch = null;
|
||||||
|
|
||||||
|
public SearchTextEvent(String text) {
|
||||||
|
this.textSearch = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type<SearchTextEventHandler> getAssociatedType() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dispatch(SearchTextEventHandler handler) {
|
||||||
|
handler.onSearchText(this);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTextSearch() {
|
||||||
|
return textSearch;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.event;
|
||||||
|
|
||||||
|
import com.google.gwt.event.shared.EventHandler;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public interface SearchTextEventHandler extends EventHandler {
|
||||||
|
void onSearchText(SearchTextEvent searchTextEvent);
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.store.GroupingStore;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* This class is not used
|
||||||
|
*/
|
||||||
|
public class GroupingStoreModel implements StoreOperationsInterface{
|
||||||
|
|
||||||
|
public static GroupingStoreModel instance;
|
||||||
|
private GroupingStore<FileGridModel> store;
|
||||||
|
|
||||||
|
public static GroupingStoreModel getInstance()
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
instance = new GroupingStoreModel();
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GroupingStoreModel() {
|
||||||
|
setStore(new GroupingStore<FileGridModel>());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void setStore(GroupingStore<FileGridModel> store){
|
||||||
|
this.store = store;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GroupingStore<FileGridModel> getStore(){
|
||||||
|
return this.store;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FileGridModel> getListModel() {
|
||||||
|
return this.store.getModels();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setListModel(List<FileGridModel> listModel) {
|
||||||
|
this.store.removeAll();
|
||||||
|
this.store.add(listModel);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* This class is not used
|
||||||
|
*/
|
||||||
|
public class ListStoreModel implements StoreOperationsInterface{
|
||||||
|
|
||||||
|
public static ListStoreModel instance;
|
||||||
|
private ListStore<FileGridModel> store;
|
||||||
|
|
||||||
|
public static ListStoreModel getInstance()
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
instance = new ListStoreModel();
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListStoreModel() {
|
||||||
|
setStore(new ListStore<FileGridModel>());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setStore(ListStore<FileGridModel> store){
|
||||||
|
this.store = store;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListStore<FileGridModel> getStore(){
|
||||||
|
return this.store;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<FileGridModel> getListModel() {
|
||||||
|
return this.store.getModels();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setListModel(List<FileGridModel> listModel) {
|
||||||
|
this.store.removeAll();
|
||||||
|
this.store.add(listModel);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* This class is not used
|
||||||
|
*/
|
||||||
|
public interface StoreOperationsInterface {
|
||||||
|
|
||||||
|
List<FileGridModel> getListModel();
|
||||||
|
void setListModel(List<FileGridModel> listModel);
|
||||||
|
}
|
|
@ -0,0 +1,106 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.ScopeModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtComboBox {
|
||||||
|
|
||||||
|
ListStore<StringNameFilterModel> stringNameFilterModel = null;
|
||||||
|
ListStore<ScopeModel> scopeNameModels = null;
|
||||||
|
ComboBox<StringNameFilterModel> comboStringFilter = null;
|
||||||
|
ComboBox<ScopeModel> comboViewScope = null;
|
||||||
|
|
||||||
|
public GxtComboBox() {
|
||||||
|
|
||||||
|
this.createComboBox();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createComboBox() {
|
||||||
|
|
||||||
|
scopeNameModels = new ListStore<ScopeModel>();
|
||||||
|
|
||||||
|
comboViewScope = new ComboBox<ScopeModel>();
|
||||||
|
comboViewScope.setEmptyText("Select a Scope...");
|
||||||
|
comboViewScope.setDisplayField("name");
|
||||||
|
comboViewScope.setStore(scopeNameModels);
|
||||||
|
comboViewScope.setTypeAhead(true);
|
||||||
|
comboViewScope.setEditable(false);
|
||||||
|
comboViewScope.setTriggerAction(TriggerAction.ALL);
|
||||||
|
|
||||||
|
comboStringFilter = new ComboBox<StringNameFilterModel>();
|
||||||
|
comboStringFilter.setWidth(150);
|
||||||
|
comboStringFilter.setStore(stringNameFilterModel);
|
||||||
|
comboStringFilter.setDisplayField("name");
|
||||||
|
comboStringFilter.setTypeAhead(true);
|
||||||
|
comboStringFilter.setEditable(false);
|
||||||
|
comboStringFilter.setTriggerAction(TriggerAction.ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ComboBox<ScopeModel> getComboViewScope(){
|
||||||
|
|
||||||
|
return comboViewScope;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleComboBox<String> getComboStringFilter() {
|
||||||
|
|
||||||
|
List<String> ls = new ArrayList<String>();
|
||||||
|
ls.add("is");
|
||||||
|
ls.add("contains");
|
||||||
|
ls.add("begin with");
|
||||||
|
ls.add("end with");
|
||||||
|
|
||||||
|
SimpleComboBox<String> scb = new SimpleComboBox<String>();
|
||||||
|
scb.setEmptyText("Select filter on item name");
|
||||||
|
scb.setTypeAhead(true);
|
||||||
|
scb.setEditable(false);
|
||||||
|
scb.setTriggerAction(TriggerAction.ALL); //Open list items also after the selection
|
||||||
|
|
||||||
|
scb.add(ls);
|
||||||
|
|
||||||
|
return scb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListScope(List<ScopeModel> listScope){
|
||||||
|
|
||||||
|
this.scopeNameModels.add(listScope);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private List<StringNameFilterModel> getStringFilter() {
|
||||||
|
// List<StringNameFilterModel> stringNameFil = new ArrayList<StringNameFilterModel>();
|
||||||
|
// stringNameFil.add(new StringNameFilterModel("is"));
|
||||||
|
// stringNameFil.add(new StringNameFilterModel("contain"));
|
||||||
|
// stringNameFil.add(new StringNameFilterModel("begin"));
|
||||||
|
// stringNameFil.add(new StringNameFilterModel("end"));
|
||||||
|
// return stringNameFil;
|
||||||
|
// }
|
||||||
|
|
||||||
|
public SimpleComboBox<String> getComboNameFilter() {
|
||||||
|
|
||||||
|
List<String> ls = new ArrayList<String>();
|
||||||
|
ls.add("Common Name");
|
||||||
|
ls.add("Scientific Name");
|
||||||
|
ls.add("Common/Scientific Name");
|
||||||
|
|
||||||
|
SimpleComboBox<String> scb = new SimpleComboBox<String>();
|
||||||
|
scb.setEmptyText("Select Criteria");
|
||||||
|
scb.setTypeAhead(true);
|
||||||
|
scb.setEditable(false);
|
||||||
|
scb.setTriggerAction(TriggerAction.ALL);
|
||||||
|
|
||||||
|
scb.add(ls);
|
||||||
|
|
||||||
|
return scb;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,233 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.Style.LayoutRegion;
|
||||||
|
import com.extjs.gxt.ui.client.util.Margins;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.Text;
|
||||||
|
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.Viewport;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
|
||||||
|
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.BorderLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FormData;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtDetailsContainer extends Viewport{
|
||||||
|
|
||||||
|
private TextField<String> txfName = new TextField<String>();
|
||||||
|
private TextArea txtDescription = new TextArea();
|
||||||
|
private Text txtLabelOwner = new Text("Owner:");
|
||||||
|
private Text txtLabelCreationTime = new Text("Creation Time:");
|
||||||
|
private Text txtLabelDimension = new Text("Dimension:");
|
||||||
|
private Text txtOwner = new Text("Empty");
|
||||||
|
private Text txtCreationTime = new Text("Empty");
|
||||||
|
private Text txtDimension = new Text("Empty");
|
||||||
|
private ContentPanel west = new ContentPanel();
|
||||||
|
private ContentPanel center = new ContentPanel();
|
||||||
|
|
||||||
|
public GxtDetailsContainer(){
|
||||||
|
|
||||||
|
this.initBorderLayout();
|
||||||
|
this.initItemsPropertiesLayout();
|
||||||
|
this.initItemsDetailsLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initItemsDetailsLayout() {
|
||||||
|
|
||||||
|
LayoutContainer itemsDetails = new LayoutContainer();
|
||||||
|
itemsDetails.setLayout(new ColumnLayout());
|
||||||
|
|
||||||
|
VerticalPanel vp = new VerticalPanel();
|
||||||
|
vp.setStyleAttribute("padding", "5px");
|
||||||
|
vp.setLayout(new FitLayout());
|
||||||
|
Text txtTitle = new Text("Items-Details");
|
||||||
|
txtTitle.setStyleAttribute("font-weight", "bold");
|
||||||
|
vp.add(txtTitle);
|
||||||
|
|
||||||
|
LayoutContainer left = new LayoutContainer();
|
||||||
|
left.setStyleAttribute("paddingRight", "20px");
|
||||||
|
|
||||||
|
HorizontalPanel hpOwner = new HorizontalPanel();
|
||||||
|
hpOwner.setSpacing(5);
|
||||||
|
txtLabelOwner.setStyleAttribute("padding-left", "5px");
|
||||||
|
hpOwner.add(txtLabelOwner);
|
||||||
|
hpOwner.add(txtOwner);
|
||||||
|
|
||||||
|
HorizontalPanel hpCreationTime = new HorizontalPanel();
|
||||||
|
hpCreationTime.setSpacing(5);
|
||||||
|
txtLabelCreationTime.setStyleAttribute("padding-left", "5px");
|
||||||
|
hpCreationTime.add(txtLabelCreationTime);
|
||||||
|
hpCreationTime.add(txtCreationTime);
|
||||||
|
|
||||||
|
HorizontalPanel hpDimension = new HorizontalPanel();
|
||||||
|
hpDimension.setSpacing(5);
|
||||||
|
txtLabelDimension.setStyleAttribute("padding-left", "5px");
|
||||||
|
hpDimension.add(txtLabelDimension);
|
||||||
|
hpDimension.add(txtDimension);
|
||||||
|
|
||||||
|
LayoutContainer right = new LayoutContainer();
|
||||||
|
right.setStyleAttribute("paddingLeft", "20px");
|
||||||
|
|
||||||
|
itemsDetails.add(left, new ColumnData(.5));
|
||||||
|
itemsDetails.add(right, new ColumnData(.5));
|
||||||
|
|
||||||
|
|
||||||
|
vp.add(hpOwner);
|
||||||
|
vp.add(hpCreationTime);
|
||||||
|
vp.add(hpDimension);
|
||||||
|
vp.add(itemsDetails);
|
||||||
|
center.add(vp);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBorderLayout(){
|
||||||
|
|
||||||
|
BorderLayout bl = new BorderLayout();
|
||||||
|
setLayout(bl);
|
||||||
|
|
||||||
|
west.setHeaderVisible(false);
|
||||||
|
BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 400);
|
||||||
|
|
||||||
|
westData.setCollapsible(false);
|
||||||
|
westData.setFloatable(false);
|
||||||
|
westData.setSplit(false);
|
||||||
|
westData.setMargins(new Margins(3, 0, 3, 3));
|
||||||
|
|
||||||
|
center.setHeaderVisible(false);
|
||||||
|
BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER);
|
||||||
|
centerData.setMargins(new Margins(3));
|
||||||
|
centerData.setCollapsible(false);
|
||||||
|
centerData.setFloatable(true);
|
||||||
|
centerData.setSplit(true);
|
||||||
|
|
||||||
|
add(west, westData);
|
||||||
|
add(center, centerData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initItemsPropertiesLayout() {
|
||||||
|
|
||||||
|
LayoutContainer itemsDetails = new LayoutContainer();
|
||||||
|
itemsDetails.setLayout(new ColumnLayout());
|
||||||
|
|
||||||
|
VerticalPanel vp = new VerticalPanel();
|
||||||
|
vp.setStyleAttribute("padding", "5px");
|
||||||
|
vp.setLayout(new FitLayout());
|
||||||
|
Text txtTitle = new Text("Items-Properties");
|
||||||
|
txtTitle.setStyleAttribute("font-weight", "bold");
|
||||||
|
vp.add(txtTitle);
|
||||||
|
|
||||||
|
FormPanel formPanel = new FormPanel();
|
||||||
|
// formPanel.setFrame(true);
|
||||||
|
formPanel.setHeaderVisible(false);
|
||||||
|
formPanel.setBodyBorder(false);
|
||||||
|
FormData formData = new FormData("100%");
|
||||||
|
|
||||||
|
LayoutContainer left = new LayoutContainer();
|
||||||
|
left.setStyleAttribute("paddingRight", "20px");
|
||||||
|
FormLayout layout = new FormLayout();
|
||||||
|
layout.setLabelAlign(LabelAlign.TOP);
|
||||||
|
// layout.setLabelWidth(40);
|
||||||
|
left.setLayout(layout);
|
||||||
|
|
||||||
|
// txtName.setEnabled(false);
|
||||||
|
txfName.setReadOnly(true);
|
||||||
|
txfName.setFieldLabel("Name");
|
||||||
|
left.add(txfName, formData);
|
||||||
|
|
||||||
|
LayoutContainer right = new LayoutContainer();
|
||||||
|
right.setStyleAttribute("paddingLeft", "20px");
|
||||||
|
layout = new FormLayout();
|
||||||
|
// layout.setLabelWidth(40);
|
||||||
|
layout.setLabelAlign(LabelAlign.TOP);
|
||||||
|
right.setLayout(layout);
|
||||||
|
|
||||||
|
|
||||||
|
// txtDescription.setEnabled(false);
|
||||||
|
txtDescription.setReadOnly(true);
|
||||||
|
txtDescription.setHeight(50);
|
||||||
|
txtDescription.setFieldLabel("Description");
|
||||||
|
right.add(txtDescription, formData);
|
||||||
|
|
||||||
|
itemsDetails.add(left, new ColumnData(.5));
|
||||||
|
itemsDetails.add(right, new ColumnData(.5));
|
||||||
|
|
||||||
|
formPanel.add(itemsDetails,new FormData("100%"));
|
||||||
|
|
||||||
|
west.add(vp);
|
||||||
|
west.add(formPanel);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public TextField<String> getTxtName() {
|
||||||
|
return txfName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtName(TextField<String> txtName) {
|
||||||
|
this.txfName = txtName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TextArea getTxtDescription() {
|
||||||
|
return txtDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtDescription(TextArea txtDescription) {
|
||||||
|
this.txtDescription = txtDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Text getTxtOwner() {
|
||||||
|
return txtOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtOwner(Text txtOwner) {
|
||||||
|
this.txtOwner = txtOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Text getTxtCreationTime() {
|
||||||
|
return txtCreationTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtCreationTime(Text txtCreationTime) {
|
||||||
|
this.txtCreationTime = txtCreationTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Text getTxtDimension() {
|
||||||
|
return txtDimension;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTxtDimension(Text txtDimension) {
|
||||||
|
this.txtDimension = txtDimension;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void resetDetails(){
|
||||||
|
|
||||||
|
this.txtDimension.setText("");
|
||||||
|
this.txtCreationTime.setText("");
|
||||||
|
this.txfName.reset();
|
||||||
|
this.txtDescription.reset();
|
||||||
|
this.txtOwner.setText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDetails(String itemName, String description, String dimension, String creationTime, String owner){
|
||||||
|
|
||||||
|
this.resetDetails();
|
||||||
|
|
||||||
|
this.txtDimension.setText(dimension);
|
||||||
|
this.txtCreationTime.setText(creationTime);
|
||||||
|
this.txfName.setValue(itemName);
|
||||||
|
this.txtDescription.setValue(description);
|
||||||
|
this.txtOwner.setText(owner);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view;
|
||||||
|
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsPortlet;
|
||||||
|
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.ListStoreModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.event.Events;
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||||
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
|
import com.extjs.gxt.ui.client.util.Format;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ListView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtListView extends LayoutContainer {
|
||||||
|
|
||||||
|
private ContentPanel cp = new ContentPanel();
|
||||||
|
// private String headerTitle = ConstantsPortlet.RESULT;
|
||||||
|
private ListStore<FileGridModel> store = ListStoreModel.getInstance().getStore();
|
||||||
|
|
||||||
|
public GxtListView() {
|
||||||
|
|
||||||
|
cp.setBodyBorder(false);
|
||||||
|
cp.setHeading(ConstantsPortlet.RESULT);
|
||||||
|
cp.setHeaderVisible(true);
|
||||||
|
|
||||||
|
ListView<FileGridModel> view = new ListView<FileGridModel>() {
|
||||||
|
@Override
|
||||||
|
protected FileGridModel prepareData(FileGridModel model) {
|
||||||
|
String s = model.get(ConstantsExplorer.NAME);
|
||||||
|
model.set("shortName", Format.ellipse(s, 15));
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
view.setStore(store);
|
||||||
|
view.setItemSelector("div.thumb-wrap");
|
||||||
|
view.getSelectionModel().addListener(Events.SelectionChange, new Listener<SelectionChangedEvent<FileModel>>() {
|
||||||
|
|
||||||
|
public void handleEvent(SelectionChangedEvent<FileModel> be) {
|
||||||
|
cp.setHeading("Simple ListView (" + be.getSelection().size()
|
||||||
|
+ " items selected)");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
cp.add(view);
|
||||||
|
add(cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
private native String getTemplate() /*-{
|
||||||
|
return [ '<tpl for=".">', '<div class="thumb-wrap" id="{Name}">',
|
||||||
|
'<div class="thumb"><img src="{path}" title="{Name}"></div>',
|
||||||
|
'<span class="x-editable">{shortName}</span></div>', '</tpl>',
|
||||||
|
'<div class="x-clear"></div>' ].join("");
|
||||||
|
|
||||||
|
}-*/;
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.data.BaseModelData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class StringNameFilterModel extends BaseModelData {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public StringNameFilterModel() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public StringNameFilterModel(String name) {
|
||||||
|
setName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return get("name");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
set("name", name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.panels.GxtBasicTabPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.panels.GxtBorderLayoutPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.panels.GxtCardLayoutResultPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.panels.GxtSeachAndFilterPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.toolbars.GxtPathPanel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class WorskpacePortlet {
|
||||||
|
|
||||||
|
private GxtBorderLayoutPanel borderLayoutContainer = null;
|
||||||
|
private GxtBasicTabPanel basicTabContainer = null;
|
||||||
|
// private GxtToolBarFunctionsPanel toolbarPanelContainer = null;
|
||||||
|
private ExplorerPanel explorerPanel = null;
|
||||||
|
private GxtDetailsContainer detailsContainer;
|
||||||
|
private GxtListView listViewContainer;
|
||||||
|
private GxtPathPanel toolBarPathPanel;
|
||||||
|
private GxtGridFilterGroupPanel gridFilterGroupContainer;
|
||||||
|
private GxtSeachAndFilterPanel searchAndFilterContainer;
|
||||||
|
private GxtGridFilterGroupPanel gridFilterContainer;
|
||||||
|
private GxtCardLayoutResultPanel gxtCardLayoutResultPanel;
|
||||||
|
|
||||||
|
public WorskpacePortlet(boolean activeGroup) {
|
||||||
|
|
||||||
|
// Log.trace("Initializing WorskpacePortlet");
|
||||||
|
this.basicTabContainer = new GxtBasicTabPanel();
|
||||||
|
this.toolBarPathPanel = new GxtPathPanel();
|
||||||
|
this.searchAndFilterContainer = new GxtSeachAndFilterPanel(this.toolBarPathPanel.getToolBarPathPanel());
|
||||||
|
|
||||||
|
this.gridFilterContainer = new GxtGridFilterGroupPanel(false);
|
||||||
|
this.gridFilterGroupContainer = new GxtGridFilterGroupPanel(activeGroup);
|
||||||
|
this.listViewContainer = new GxtListView();
|
||||||
|
this.detailsContainer = new GxtDetailsContainer();
|
||||||
|
|
||||||
|
|
||||||
|
this.gxtCardLayoutResultPanel = new GxtCardLayoutResultPanel(gridFilterContainer, gridFilterGroupContainer, listViewContainer, detailsContainer);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorskpacePortlet(ExplorerPanel expPanel, boolean activeGroup) {
|
||||||
|
this(activeGroup);
|
||||||
|
this.explorerPanel = expPanel;
|
||||||
|
|
||||||
|
this.borderLayoutContainer = new GxtBorderLayoutPanel(this.searchAndFilterContainer, this.explorerPanel, this.gxtCardLayoutResultPanel, this.detailsContainer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtBorderLayoutPanel getBorderLayoutContainer() {
|
||||||
|
return borderLayoutContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtBasicTabPanel getBasicTabContainer() {
|
||||||
|
return basicTabContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtDetailsContainer getDetailsContainer() {
|
||||||
|
return detailsContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GxtSeachAndFilterPanel getSearchAndFilterContainer() {
|
||||||
|
return searchAndFilterContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GxtPathPanel getToolBarPath() {
|
||||||
|
return toolBarPathPanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GxtGridFilterGroupPanel getGridGroupContainer() {
|
||||||
|
return gridFilterGroupContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ExplorerPanel getExplorerPanel() {
|
||||||
|
return explorerPanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtGridFilterGroupPanel getGridFilterContainer() {
|
||||||
|
return gridFilterContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setGridFilterContainer(GxtGridFilterGroupPanel gridFilterContainer) {
|
||||||
|
this.gridFilterContainer = gridFilterContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtCardLayoutResultPanel getGxtCardLayoutResultPanel() {
|
||||||
|
return gxtCardLayoutResultPanel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,450 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.grids;
|
||||||
|
|
||||||
|
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.DoubleClickElementSelectedEvent;
|
||||||
|
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.GridElementSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
||||||
|
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 com.extjs.gxt.ui.client.Style.SelectionMode;
|
||||||
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
|
import com.extjs.gxt.ui.client.event.BaseEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.Events;
|
||||||
|
import com.extjs.gxt.ui.client.event.GridEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
||||||
|
import com.extjs.gxt.ui.client.store.GroupingStore;
|
||||||
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
|
import com.extjs.gxt.ui.client.store.Record;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.NumberField;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.GroupingView;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.filters.DateFilter;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.filters.GridFilters;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.filters.NumericFilter;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
import com.google.gwt.i18n.client.NumberFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
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 currenItemSelected = null;
|
||||||
|
private FileModel currentFolderView = null;
|
||||||
|
private final NumberFormat number = NumberFormat.getFormat("#,##0 KB;(#,##0 KB)");
|
||||||
|
private GroupingView view = new GroupingView();
|
||||||
|
private boolean groupingEnabled = false;
|
||||||
|
|
||||||
|
public GxtGridFilterGroupPanel(boolean group) {
|
||||||
|
setLayout(new FitLayout());
|
||||||
|
ColumnConfig icon = new ColumnConfig(ConstantsExplorer.ICON, "", 25);
|
||||||
|
ColumnConfig name = new ColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 300);
|
||||||
|
ColumnConfig type = new ColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 100);
|
||||||
|
ColumnConfig creationDate = new ColumnConfig(ConstantsExplorer.GRIDCOLUMNCREATIONDATE, ConstantsExplorer.GRIDCOLUMNCREATIONDATE, 100);
|
||||||
|
ColumnConfig category = new ColumnConfig(ConstantsExplorer.SHORTCUTCATEGORY, ConstantsExplorer.SHORTCUTCATEGORY, 100);
|
||||||
|
ColumnConfig size = new ColumnConfig(ConstantsExplorer.SIZE, ConstantsExplorer.SIZE, 50);
|
||||||
|
|
||||||
|
size.setEditor(new CellEditor(new NumberField()));
|
||||||
|
|
||||||
|
ColumnModel cm = null;
|
||||||
|
|
||||||
|
if(group)
|
||||||
|
cm = new ColumnModel(Arrays.asList(icon, name, type, creationDate, size, category));
|
||||||
|
else
|
||||||
|
cm = new ColumnModel(Arrays.asList(icon, name, type, creationDate, size));
|
||||||
|
|
||||||
|
final ColumnModel columnModel = cm;
|
||||||
|
|
||||||
|
cp.setBodyBorder(true);
|
||||||
|
// cp.setHeading(ConstantsPortlet.RESULT);
|
||||||
|
cp.setHeaderVisible(false);
|
||||||
|
cp.setLayout(new FitLayout());
|
||||||
|
|
||||||
|
final Grid<FileGridModel> grid = new Grid<FileGridModel>(store, columnModel);
|
||||||
|
grid.getView().setAutoFill(true);
|
||||||
|
grid.setBorders(true);
|
||||||
|
|
||||||
|
|
||||||
|
view.setShowGroupedColumn(false);
|
||||||
|
view.setForceFit(true);
|
||||||
|
grid.setView(view);
|
||||||
|
view.setEmptyText(ConstantsExplorer.EMPTY);
|
||||||
|
|
||||||
|
// view.setGroupRenderer(new GridGroupRenderer() {
|
||||||
|
// public String render(GroupColumnData data) {
|
||||||
|
// String f = columnModel.getColumnById(data.field).getHeader();
|
||||||
|
// String l = data.models.size() == 1 ? "Item" : "Items";
|
||||||
|
// return f + ": " + data.group + " (" + data.models.size() + " " + l + ")";
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
if(group){
|
||||||
|
store.groupBy(ConstantsExplorer.SHORTCUTCATEGORY);
|
||||||
|
groupingEnabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
String color = "black";
|
||||||
|
|
||||||
|
if(val != null && val.equals(GXTFolderItemTypeEnum.FOLDER.toString())){
|
||||||
|
// color = "#EEC900";
|
||||||
|
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='font-weight: bold;color:" + color + "'>" + val + "</span>";
|
||||||
|
}else{
|
||||||
|
if(val==null)
|
||||||
|
val = "";
|
||||||
|
return "<span qtitle='" + columnModel.getColumnById(property).getHeader() + "' qtip='" + val + "' style='color:" + color + "'>" + 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) {
|
||||||
|
|
||||||
|
long value = (Long) model.get(property);
|
||||||
|
|
||||||
|
if(value!=-1){
|
||||||
|
String color = "black";
|
||||||
|
// int val = Integer.parseInt(value);
|
||||||
|
// String style = (val/1024) < 2000000 ? "red" : "green";
|
||||||
|
double kb = value/1024;
|
||||||
|
if(kb<1)
|
||||||
|
kb=1;
|
||||||
|
return "<span style='color:"+color+"'>" + number.format(kb) + "</span>";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
size.setRenderer(kbRender);
|
||||||
|
type.setRenderer(folderRender);
|
||||||
|
|
||||||
|
//setAlphanumericStoreSorter(grid);
|
||||||
|
|
||||||
|
GridFilters filters = new GridFilters();
|
||||||
|
filters.setLocal(true);
|
||||||
|
|
||||||
|
StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME);
|
||||||
|
StringFilter authorFilter = new StringFilter(ConstantsExplorer.TYPE);
|
||||||
|
DateFilter dateFilter = new DateFilter(ConstantsExplorer.GRIDCOLUMNCREATIONDATE);
|
||||||
|
NumericFilter sizeFilter = new NumericFilter(ConstantsExplorer.SIZE);
|
||||||
|
|
||||||
|
|
||||||
|
filters.addFilter(nameFilter);
|
||||||
|
filters.addFilter(authorFilter);
|
||||||
|
filters.addFilter(dateFilter);
|
||||||
|
filters.addFilter(sizeFilter);
|
||||||
|
|
||||||
|
// grid.setStyleAttribute("borderTop", "none");
|
||||||
|
grid.setAutoExpandColumn(ConstantsExplorer.NAME);
|
||||||
|
grid.setBorders(false);
|
||||||
|
grid.setStripeRows(true);
|
||||||
|
grid.setColumnLines(true);
|
||||||
|
|
||||||
|
grid.getView().setShowDirtyCells(false);
|
||||||
|
|
||||||
|
// grid.setSize(500, 500);
|
||||||
|
grid.addPlugin(filters);
|
||||||
|
|
||||||
|
grid.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
|
||||||
|
|
||||||
|
grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileGridModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selectionChanged(SelectionChangedEvent<FileGridModel> se) {
|
||||||
|
System.out.println("selection grid change");
|
||||||
|
|
||||||
|
ModelData target = se.getSelectedItem();
|
||||||
|
|
||||||
|
if(target!=null){
|
||||||
|
currenItemSelected = (FileGridModel) target;
|
||||||
|
AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
currenItemSelected = null;
|
||||||
|
AppController.getEventBus().fireEvent(new GridElementUnSelectedEvent());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleEvent(BaseEvent be) {
|
||||||
|
|
||||||
|
FileGridModel fileModel = grid.getSelectionModel().getSelectedItem();
|
||||||
|
|
||||||
|
if(fileModel!=null)
|
||||||
|
fireEventByFileModelType(fileModel);
|
||||||
|
// if(fileModel.isDirectory())
|
||||||
|
// AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(fileModel));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
grid.setContextMenu(null); //add context menu null - ignore browse event right click
|
||||||
|
|
||||||
|
grid.addListener(Events.OnContextMenu, new Listener<GridEvent<FileGridModel>>(){
|
||||||
|
@Override
|
||||||
|
public void handleEvent(GridEvent<FileGridModel> be)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(be.isRightClick())
|
||||||
|
{
|
||||||
|
if(grid.getSelectionModel().getSelectedItem()!=null){
|
||||||
|
|
||||||
|
FileGridModel fileGridModel = grid.getSelectionModel().getSelectedItem();
|
||||||
|
AppController.getEventBus().fireEvent(new OpenContextMenuTreeEvent(fileGridModel, be.getClientX(), be.getClientY()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
cp.add(grid);
|
||||||
|
add(cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void disableGrouping() {
|
||||||
|
GroupingStore<FileGridModel> groupingStore = null;
|
||||||
|
if (this.getStore() instanceof GroupingStore) {
|
||||||
|
groupingStore = (GroupingStore<FileGridModel>) this.getStore();
|
||||||
|
if (groupingStore != null) {
|
||||||
|
groupingStore.clearGrouping();
|
||||||
|
}
|
||||||
|
this.groupingEnabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enableGrouping() {
|
||||||
|
GroupingStore<FileGridModel> groupingStore = null;
|
||||||
|
if (this.getStore() instanceof GroupingStore) {
|
||||||
|
groupingStore = (GroupingStore<FileGridModel>) this.getStore();
|
||||||
|
if (groupingStore != null) {
|
||||||
|
groupingStore.groupBy(ConstantsExplorer.SHORTCUTCATEGORY);
|
||||||
|
}
|
||||||
|
this.groupingEnabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fireEventByFileModelType(FileModel target){
|
||||||
|
|
||||||
|
if(target.isDirectory()){
|
||||||
|
AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(target));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch(target.getGXTFolderItemType()){
|
||||||
|
|
||||||
|
case EXTERNAL_IMAGE:
|
||||||
|
AppController.getEventBus().fireEvent(new ImagePreviewEvent(target, 0, 0));
|
||||||
|
break;
|
||||||
|
case EXTERNAL_FILE:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
case EXTERNAL_PDF_FILE:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
case EXTERNAL_URL:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
case REPORT_TEMPLATE:
|
||||||
|
AppController.getEventBus().fireEvent(new OpenReportsEvent(target));
|
||||||
|
break;
|
||||||
|
case REPORT:
|
||||||
|
AppController.getEventBus().fireEvent(new OpenReportsEvent(target));
|
||||||
|
break;
|
||||||
|
case QUERY:
|
||||||
|
break;
|
||||||
|
case TIME_SERIES:
|
||||||
|
break;
|
||||||
|
case PDF_DOCUMENT:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
case IMAGE_DOCUMENT:
|
||||||
|
AppController.getEventBus().fireEvent(new ImagePreviewEvent(target,0, 0));
|
||||||
|
break;
|
||||||
|
case DOCUMENT:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
case URL_DOCUMENT:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
case METADATA:
|
||||||
|
break;
|
||||||
|
case WORKFLOW_REPORT:
|
||||||
|
break;
|
||||||
|
case WORKFLOW_TEMPLATE:
|
||||||
|
break;
|
||||||
|
case EXTERNAL_RESOURCE_LINK:
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void resetStore(){
|
||||||
|
store.removeAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean updateStore(List<FileGridModel> result){
|
||||||
|
|
||||||
|
resetStore();
|
||||||
|
if(result!= null){
|
||||||
|
for(FileGridModel file: result)
|
||||||
|
file.setIcon();
|
||||||
|
store.add(result);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getSelectedItem(){
|
||||||
|
|
||||||
|
return currenItemSelected;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param identifier (MANDATORY)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean deleteItem(String identifier) {
|
||||||
|
|
||||||
|
FileGridModel fileTarget = getFileGridModelByIdentifier(identifier);
|
||||||
|
|
||||||
|
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" );
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param fileTarget (MANDATORY)
|
||||||
|
* @param newName (MANDATORY)
|
||||||
|
* @param extension OPTIONAL - string or null
|
||||||
|
*/
|
||||||
|
private boolean renameItem(FileGridModel fileTarget, String newName, String extension) {
|
||||||
|
|
||||||
|
if(fileTarget!=null){
|
||||||
|
Record record = store.getRecord(fileTarget);
|
||||||
|
if(record!=null){
|
||||||
|
if(extension!= null)
|
||||||
|
record.set(ConstantsExplorer.NAME, newName+extension);
|
||||||
|
else
|
||||||
|
record.set(ConstantsExplorer.NAME, newName);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
System.out.println("Record Error: file target with " + fileTarget.getIdentifier() + " identifier not exist in store" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
System.out.println("Rename Error: file target with is null" );
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public FileModel getCurrentFolderView() {
|
||||||
|
return currentFolderView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setCurrentFolderView(FileModel currentFolderView) {
|
||||||
|
this.currentFolderView = currentFolderView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean renameItem(String itemIdentifier, String newName, String extension) {
|
||||||
|
|
||||||
|
if(itemIdentifier!=null){
|
||||||
|
FileGridModel fileTarget = getFileGridModelByIdentifier(itemIdentifier);
|
||||||
|
if(fileTarget!=null){
|
||||||
|
Record record = store.getRecord(fileTarget);
|
||||||
|
if(record!=null){
|
||||||
|
if(extension!= null)
|
||||||
|
record.set(ConstantsExplorer.NAME, newName+extension);
|
||||||
|
else
|
||||||
|
record.set(ConstantsExplorer.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" );
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getFileGridModelByIdentifier(String id){
|
||||||
|
return (FileGridModel) store.findModel(ConstantsExplorer.IDENTIFIER, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GroupingStore<FileGridModel> getStore(){
|
||||||
|
return store;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBorderAsOnSearch(boolean bool){
|
||||||
|
|
||||||
|
if(this.cp.getElement("body")!=null){
|
||||||
|
|
||||||
|
if(bool){
|
||||||
|
this.cp.getElement("body").getStyle().setBorderColor("#32CD32");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
this.cp.getElement("body").getStyle().setBorderColor("#99BBE8");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,227 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.grids;
|
||||||
|
|
||||||
|
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.ConstantsPortlet;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent;
|
||||||
|
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.ListStoreModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.data.ModelData;
|
||||||
|
import com.extjs.gxt.ui.client.event.BaseEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.Events;
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
||||||
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
|
import com.extjs.gxt.ui.client.store.Record;
|
||||||
|
import com.extjs.gxt.ui.client.store.Store;
|
||||||
|
import com.extjs.gxt.ui.client.store.StoreSorter;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.filters.GridFilters;
|
||||||
|
import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is not used
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class GxtGridFilterPanel extends LayoutContainer {
|
||||||
|
|
||||||
|
private ContentPanel cp = new ContentPanel();
|
||||||
|
private ListStore<FileGridModel> store = ListStoreModel.getInstance().getStore();
|
||||||
|
private FileGridModel currenItemSelected = null;
|
||||||
|
private FileModel currentFolderView = null;
|
||||||
|
|
||||||
|
public GxtGridFilterPanel() {
|
||||||
|
setLayout(new FitLayout());
|
||||||
|
ColumnConfig name = new ColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 400);
|
||||||
|
ColumnConfig type = new ColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 100);
|
||||||
|
ColumnConfig creationDate = new ColumnConfig(ConstantsExplorer.GRIDCOLUMNCREATIONDATE, ConstantsExplorer.GRIDCOLUMNCREATIONDATE, 100);
|
||||||
|
ColumnConfig size = new ColumnConfig(ConstantsExplorer.SIZE, ConstantsExplorer.SIZE, 50);
|
||||||
|
|
||||||
|
ColumnModel cm = new ColumnModel(Arrays.asList(name, type, creationDate, size));
|
||||||
|
|
||||||
|
cp.setBodyBorder(false);
|
||||||
|
cp.setHeading(ConstantsPortlet.RESULT);
|
||||||
|
cp.setHeaderVisible(true);
|
||||||
|
cp.setLayout(new FitLayout());
|
||||||
|
|
||||||
|
GridFilters filters = new GridFilters();
|
||||||
|
filters.setLocal(true);
|
||||||
|
|
||||||
|
StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME);
|
||||||
|
StringFilter authorFilter = new StringFilter(ConstantsExplorer.TYPE);
|
||||||
|
StringFilter sizeFilter = new StringFilter(ConstantsExplorer.SIZE);
|
||||||
|
|
||||||
|
filters.addFilter(nameFilter);
|
||||||
|
filters.addFilter(authorFilter);
|
||||||
|
filters.addFilter(sizeFilter);
|
||||||
|
|
||||||
|
final Grid<FileGridModel> grid = new Grid<FileGridModel>(store, cm);
|
||||||
|
|
||||||
|
grid.getView().setAutoFill(true);
|
||||||
|
|
||||||
|
setAlphanumericStoreSorter(grid);
|
||||||
|
|
||||||
|
grid.setAutoExpandColumn(ConstantsExplorer.NAME);
|
||||||
|
grid.setBorders(false);
|
||||||
|
grid.setStripeRows(true);
|
||||||
|
grid.setColumnLines(true);
|
||||||
|
grid.addPlugin(filters);
|
||||||
|
|
||||||
|
|
||||||
|
grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener<FileGridModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selectionChanged(SelectionChangedEvent<FileGridModel> se) {
|
||||||
|
System.out.println("selection grid change");
|
||||||
|
|
||||||
|
ModelData target = se.getSelectedItem();
|
||||||
|
|
||||||
|
if(target!=null){
|
||||||
|
currenItemSelected = (FileGridModel) target;
|
||||||
|
AppController.getEventBus().fireEvent(new GridElementSelectedEvent(target));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
currenItemSelected = null;
|
||||||
|
AppController.getEventBus().fireEvent(new GridElementUnSelectedEvent());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
grid.addListener(Events.RowDoubleClick, new Listener<BaseEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleEvent(BaseEvent be) {
|
||||||
|
// FileGridModel fileModel = (FileGridModel) be.getSource();
|
||||||
|
// if(fileModel.isDirectory())
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
cp.add(grid);
|
||||||
|
add(cp);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetStore(){
|
||||||
|
store.removeAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean updateStore(List<FileGridModel> result){
|
||||||
|
|
||||||
|
resetStore();
|
||||||
|
if(result!= null){
|
||||||
|
store.add(result);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getSelectedItem(){
|
||||||
|
|
||||||
|
return currenItemSelected;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param identifier (MANDATORY)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean deleteItem(String identifier) {
|
||||||
|
|
||||||
|
// FileGridModel fileTarget = (FileGridModel) store.findModel("identifier", identifier);
|
||||||
|
FileGridModel fileTarget = getFileGridModelByIdentifier(identifier);
|
||||||
|
|
||||||
|
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" );
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public FileModel getCurrentFolderView() {
|
||||||
|
return currentFolderView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setCurrentFolderView(FileModel currentFolderView) {
|
||||||
|
this.currentFolderView = currentFolderView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean renameItem(String itemIdentifier, String newName, String extension) {
|
||||||
|
|
||||||
|
if(itemIdentifier!=null){
|
||||||
|
// FileGridModel fileTarget = (FileGridModel) store.findModel(ConstantsExplorer.IDENTIFIER, itemIdentifier);
|
||||||
|
FileGridModel fileTarget = getFileGridModelByIdentifier(itemIdentifier);
|
||||||
|
if(fileTarget!=null){
|
||||||
|
Record record = store.getRecord(fileTarget);
|
||||||
|
if(record!=null){
|
||||||
|
if(extension!= null)
|
||||||
|
record.set(ConstantsExplorer.NAME, newName+extension);
|
||||||
|
else
|
||||||
|
record.set(ConstantsExplorer.NAME, newName);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
System.out.println("Record Error: file target not exist in store" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
System.out.println("Rename Error: file target with is null" );
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setAlphanumericStoreSorter(Grid<FileGridModel> grid){
|
||||||
|
|
||||||
|
// Sorting files
|
||||||
|
grid.getStore().setStoreSorter(new StoreSorter<FileGridModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(Store<FileGridModel> store, FileGridModel m1, FileGridModel m2, String property) {
|
||||||
|
boolean m1Folder = m1.isDirectory();
|
||||||
|
boolean m2Folder = m2.isDirectory();
|
||||||
|
|
||||||
|
if (m1Folder && !m2Folder) {
|
||||||
|
return -1;
|
||||||
|
} else if (!m1Folder && m2Folder) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return m1.getName().compareTo(m2.getName());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public FileGridModel getFileGridModelByIdentifier(String id){
|
||||||
|
return (FileGridModel) store.findModel(ConstantsExplorer.IDENTIFIER, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListStore<FileGridModel> getStore(){
|
||||||
|
return store;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,290 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.panels;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.ScopeModel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.GxtComboBox;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||||
|
import com.extjs.gxt.ui.client.event.BaseEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.Events;
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||||
|
import com.extjs.gxt.ui.client.util.Margins;
|
||||||
|
import com.extjs.gxt.ui.client.util.Padding;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.Label;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.TabItem;
|
||||||
|
import com.extjs.gxt.ui.client.widget.TabPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.Text;
|
||||||
|
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.DateField;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.FormButtonBinding;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FormData;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.VBoxLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.VBoxLayout.VBoxLayoutAlign;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.VBoxLayoutData;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is not used
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtBasicTabPanel extends LayoutContainer {
|
||||||
|
|
||||||
|
//Tab View
|
||||||
|
private TabItem tabView = null;
|
||||||
|
private TabItem tabSearch = null;
|
||||||
|
private TabPanel tabPanel = null;
|
||||||
|
private Text txtPath = new Text("PATH:");
|
||||||
|
private Label labelPath = new Label("");
|
||||||
|
private GxtComboBox comboBoxGxt = null;
|
||||||
|
private ComboBox<ScopeModel> cbViewScope = null;
|
||||||
|
// private Text txtSwitch = new Text("Explorer View:");
|
||||||
|
private Text txtViewScope = new Text("View Scope:");
|
||||||
|
public enum viewSwitchType {TREE,SHORTCUT};
|
||||||
|
private final String EMPTY = "EMPTY";
|
||||||
|
|
||||||
|
//Tab Search
|
||||||
|
private final TextField<String> textSearch = new TextField<String>();
|
||||||
|
private Button bSearch = new Button("Search");
|
||||||
|
private Button bCancel = new Button("Cancel");
|
||||||
|
private TextField<String> textFull = new TextField<String>();
|
||||||
|
private DateField fromDate = new DateField();
|
||||||
|
private DateField toDate = new DateField();
|
||||||
|
private final String FIELDVALIDATEERROR = "The field must be alphanumeric";
|
||||||
|
private SimpleComboBox<String> cbNameFilter = null;
|
||||||
|
// TableData tdContentView = null;
|
||||||
|
|
||||||
|
public GxtBasicTabPanel() {
|
||||||
|
|
||||||
|
// Log.trace("Initializing GxtBasicTabPanel");
|
||||||
|
|
||||||
|
setLayout(new FitLayout());
|
||||||
|
setBorders(true);
|
||||||
|
setId("ContentPanelTab");
|
||||||
|
|
||||||
|
this.tabPanel = new TabPanel();
|
||||||
|
this.tabView = new TabItem("View");
|
||||||
|
this.tabSearch = new TabItem("Search");
|
||||||
|
this.comboBoxGxt = new GxtComboBox();
|
||||||
|
this.cbViewScope = this.comboBoxGxt.getComboViewScope();
|
||||||
|
this.cbNameFilter = this.comboBoxGxt.getComboStringFilter();
|
||||||
|
this.initTabView();
|
||||||
|
this.initTabSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initTabView() {
|
||||||
|
|
||||||
|
ContentPanel cp = new ContentPanel();
|
||||||
|
cp.setHeaderVisible(false);
|
||||||
|
cp.setLayout(new RowLayout());
|
||||||
|
cp.setBorders(false);
|
||||||
|
cp.setBodyBorder(false);
|
||||||
|
// cp.setStyleAttribute("margin-top", "20px");
|
||||||
|
|
||||||
|
tabPanel.setBorders(false);
|
||||||
|
tabPanel.setBodyBorder(false);
|
||||||
|
tabPanel.setStyleAttribute("margin-top", "10px");
|
||||||
|
tabPanel.setTabMargin(10);
|
||||||
|
tabPanel.setTabWidth(250);
|
||||||
|
tabPanel.setBorderStyle(false);
|
||||||
|
tabPanel.setPlain(true);
|
||||||
|
|
||||||
|
VBoxLayout vBoxLayout = new VBoxLayout();
|
||||||
|
vBoxLayout.setPadding(new Padding(5));
|
||||||
|
vBoxLayout.setVBoxLayoutAlign(VBoxLayoutAlign.LEFT);
|
||||||
|
VBoxLayoutData flex = new VBoxLayoutData(new Margins(30, 10, 10, 10));
|
||||||
|
|
||||||
|
txtPath.addStyleName("pad-text");
|
||||||
|
txtPath.setStyleAttribute("backgroundColor", "white");
|
||||||
|
txtPath.setAutoWidth(true);
|
||||||
|
|
||||||
|
// Radio radioTree = new Radio();
|
||||||
|
// radioTree.setBoxLabel("Tree");
|
||||||
|
// radioTree.setValue(true);
|
||||||
|
// radioTree.setValueAttribute(viewSwitchType.TREE.toString());
|
||||||
|
// Radio radioShortcut = new Radio();
|
||||||
|
// radioShortcut.setBoxLabel("Shortcut");
|
||||||
|
// radioShortcut.setValueAttribute(viewSwitchType.SHORTCUT.toString());
|
||||||
|
// RadioGroup radioGroup = new RadioGroup();
|
||||||
|
// radioGroup.setFieldLabel("Afecto");
|
||||||
|
// radioGroup.add(radioTree);
|
||||||
|
// radioGroup.add(radioShortcut);
|
||||||
|
// radioGroup.setStyleAttribute("margin-left", "20px");
|
||||||
|
|
||||||
|
HorizontalPanel hpPath = new HorizontalPanel();
|
||||||
|
hpPath.setLayout(new FitLayout());
|
||||||
|
hpPath.setBorders(true);
|
||||||
|
hpPath.add(txtPath);
|
||||||
|
this.labelPath.setEnabled(false);
|
||||||
|
this.setLabelPath("");
|
||||||
|
this.labelPath.setStyleAttribute("margin-left", "20px");
|
||||||
|
hpPath.add(this.labelPath);
|
||||||
|
|
||||||
|
HorizontalPanel hpScope = new HorizontalPanel();
|
||||||
|
hpScope.setLayout(new FitLayout());
|
||||||
|
hpScope.add(txtViewScope);
|
||||||
|
|
||||||
|
//Select in combo the first element of store
|
||||||
|
this.cbViewScope.addListener(Events.Attach, new Listener<BaseEvent>(){
|
||||||
|
public void handleEvent(BaseEvent be) {
|
||||||
|
cbViewScope.setValue(cbViewScope.getStore().getAt(0));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.cbViewScope.addSelectionChangedListener(new SelectionChangedListener<ScopeModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selectionChanged(SelectionChangedEvent<ScopeModel> se) {
|
||||||
|
|
||||||
|
// Window.alert("selected scope" + se.getSelectedItem().get("name"));
|
||||||
|
|
||||||
|
//TODO
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.cbViewScope.setStyleAttribute("margin-left", "20px");
|
||||||
|
hpScope.add(this.cbViewScope);
|
||||||
|
|
||||||
|
// HorizontalPanel hpRadio = new HorizontalPanel();
|
||||||
|
// hpRadio.setLayout(new FitLayout());
|
||||||
|
// hpRadio.add(txtSwitch);
|
||||||
|
// hpRadio.add(radioGroup);
|
||||||
|
|
||||||
|
cp.add(hpPath,flex);
|
||||||
|
cp.add(hpScope,flex);
|
||||||
|
// cp.add(hpRadio, flex);
|
||||||
|
|
||||||
|
this.tabView.add(cp);
|
||||||
|
|
||||||
|
tabPanel.add(tabView);
|
||||||
|
add(tabPanel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initTabSearch() {
|
||||||
|
|
||||||
|
ContentPanel cp = new ContentPanel();
|
||||||
|
cp.setHeaderVisible(false);
|
||||||
|
cp.setLayout(new RowLayout());
|
||||||
|
cp.setBorders(false);
|
||||||
|
cp.setBodyBorder(false);
|
||||||
|
|
||||||
|
|
||||||
|
FormPanel formPanel = new FormPanel();
|
||||||
|
formPanel.setHeaderVisible(false);
|
||||||
|
formPanel.setBodyBorder(false);
|
||||||
|
|
||||||
|
// formPanel.setFrame(true);
|
||||||
|
formPanel.setWidth(350);
|
||||||
|
|
||||||
|
FormData formData = new FormData("-20");
|
||||||
|
|
||||||
|
|
||||||
|
cbNameFilter.setFieldLabel("Name Filter");
|
||||||
|
// combo.setDisplayField("name");
|
||||||
|
formPanel.add(cbNameFilter, formData);
|
||||||
|
|
||||||
|
textSearch.setFieldLabel("Item Name");
|
||||||
|
textSearch.setAllowBlank(false);
|
||||||
|
textSearch.setRegex("^[ a-zA-Z0-9_-]*$");
|
||||||
|
// textSearch.getMessages().setRegexText(FIELDVALIDATEERROR);
|
||||||
|
formPanel.add(textSearch, formData);
|
||||||
|
|
||||||
|
fromDate.setName("date");
|
||||||
|
fromDate.setFieldLabel("From");
|
||||||
|
formPanel.add(fromDate);
|
||||||
|
|
||||||
|
toDate.setName("date");
|
||||||
|
toDate.setFieldLabel("To");
|
||||||
|
formPanel.add(toDate);
|
||||||
|
|
||||||
|
textFull.setFieldLabel("Full Text");
|
||||||
|
textFull.setAllowBlank(true);
|
||||||
|
formPanel.add(textFull, formData);
|
||||||
|
|
||||||
|
this.tabSearch.add(formPanel);
|
||||||
|
|
||||||
|
bSearch.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
if (textSearch.getValue() == null || textSearch.getValue() == "" || !textSearch.isValid()) {
|
||||||
|
// textSearch.fireEvent(Events.ValidateEdit);
|
||||||
|
textSearch.markInvalid(FIELDVALIDATEERROR);
|
||||||
|
// textSearch.forceInvalid("The field must be alphanumeric");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
Window.alert("submit"); //TODO aysnc ws
|
||||||
|
// HistoryExample.addItem("search");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
this.bCancel.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
resetFieldsInTabSearch();
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
formPanel.setButtonAlign(HorizontalAlignment.LEFT);
|
||||||
|
|
||||||
|
formPanel.addButton(this.bSearch);
|
||||||
|
formPanel.addButton(this.bCancel);
|
||||||
|
|
||||||
|
|
||||||
|
FormButtonBinding binding = new FormButtonBinding(formPanel);
|
||||||
|
binding.addButton(this.bSearch);
|
||||||
|
|
||||||
|
tabPanel.add(tabSearch);
|
||||||
|
add(tabPanel);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void resetFieldsInTabSearch(){
|
||||||
|
this.textSearch.reset();
|
||||||
|
this.textFull.reset();
|
||||||
|
this.fromDate.reset();
|
||||||
|
this.toDate.reset();
|
||||||
|
this.cbNameFilter.reset();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public LayoutContainer getTabs() {
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValueComboNameFilter(){
|
||||||
|
|
||||||
|
return this.cbViewScope.getRawValue();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLabelPath(String path){
|
||||||
|
|
||||||
|
if(path != null && (!path.isEmpty()))
|
||||||
|
this.labelPath.setText(path);
|
||||||
|
else
|
||||||
|
this.labelPath.setText(EMPTY);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,140 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.panels;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsPortlet;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.ExplorerPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.GxtDetailsContainer;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.Style.LayoutRegion;
|
||||||
|
import com.extjs.gxt.ui.client.Style.Scroll;
|
||||||
|
import com.extjs.gxt.ui.client.event.BoxComponentEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.Events;
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.util.Margins;
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtBorderLayoutPanel extends ContentPanel {
|
||||||
|
private ContentPanel north = new ContentPanel();
|
||||||
|
private ContentPanel west = new ContentPanel();
|
||||||
|
private ContentPanel center = new ContentPanel();
|
||||||
|
private ContentPanel east = new ContentPanel();
|
||||||
|
private ContentPanel south = new ContentPanel();
|
||||||
|
private GxtDetailsContainer detailsContainer = null;
|
||||||
|
private ExplorerPanel expPanel = null; //TODO change position
|
||||||
|
private GxtSeachAndFilterPanel searchAndFilterContainer;
|
||||||
|
private GxtCardLayoutResultPanel gxtCardLayoutResultPanel;
|
||||||
|
|
||||||
|
|
||||||
|
public GxtBorderLayoutPanel(
|
||||||
|
GxtSeachAndFilterPanel searchAndFilterContainer2,
|
||||||
|
ExplorerPanel explorerPanel,
|
||||||
|
GxtCardLayoutResultPanel gxtCardLayoutResultPanel,
|
||||||
|
GxtDetailsContainer detailsContainer2) {
|
||||||
|
|
||||||
|
this.searchAndFilterContainer = searchAndFilterContainer2;
|
||||||
|
this.expPanel = explorerPanel;
|
||||||
|
this.gxtCardLayoutResultPanel = gxtCardLayoutResultPanel;
|
||||||
|
this.detailsContainer = detailsContainer2;
|
||||||
|
|
||||||
|
this.initLayout();
|
||||||
|
this.createLayouts();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initLayout(){
|
||||||
|
|
||||||
|
north.setId("NorthPanel");
|
||||||
|
north.setLayout(new FitLayout());
|
||||||
|
west.setId("WestPanel");
|
||||||
|
west.setLayout(new FitLayout());
|
||||||
|
center.setId("CenterPanel");
|
||||||
|
center.setLayout(new FitLayout());
|
||||||
|
center.setHeaderVisible(false);
|
||||||
|
east.setId("EastPanel");
|
||||||
|
center.setScrollMode(Scroll.AUTOX);
|
||||||
|
center.setBorders(false);
|
||||||
|
|
||||||
|
north.setHeaderVisible(false);
|
||||||
|
west.setHeading(ConstantsPortlet.EXPLORER);
|
||||||
|
south.setHeading(ConstantsPortlet.DETAILS);
|
||||||
|
|
||||||
|
south.setLayout(new FitLayout());
|
||||||
|
|
||||||
|
east.setVisible(false);
|
||||||
|
south.setVisible(false);
|
||||||
|
|
||||||
|
this.createLayouts();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createLayouts(){
|
||||||
|
|
||||||
|
final BorderLayout borderLayout = new BorderLayout();
|
||||||
|
setLayout(borderLayout);
|
||||||
|
//setStyleAttribute("padding", "10px");
|
||||||
|
setHeaderVisible(false);
|
||||||
|
|
||||||
|
// center.add(this.gridFilter);
|
||||||
|
|
||||||
|
BorderLayoutData northData = new BorderLayoutData(LayoutRegion.NORTH, 55, 55, 70);
|
||||||
|
northData.setCollapsible(true);
|
||||||
|
|
||||||
|
northData.setSplit(true); //Split bar between regions
|
||||||
|
// northData.setFloatable(true);
|
||||||
|
northData.setCollapsible(true);
|
||||||
|
// northData.setHideCollapseTool(false);
|
||||||
|
// northData.setSplit(true);
|
||||||
|
northData.setMargins(new Margins(0, 0, 1, 0));
|
||||||
|
|
||||||
|
BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 330,330,400);
|
||||||
|
westData.setSplit(true);
|
||||||
|
westData.setCollapsible(true);
|
||||||
|
westData.setMargins(new Margins(0,1,0,0));
|
||||||
|
|
||||||
|
BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER);
|
||||||
|
centerData.setMargins(new Margins(0));
|
||||||
|
|
||||||
|
BorderLayoutData eastData = new BorderLayoutData(LayoutRegion.EAST, 150,50,150);
|
||||||
|
eastData.setSplit(true);
|
||||||
|
eastData.setCollapsible(true);
|
||||||
|
eastData.setMargins(new Margins(0,0,0,1));
|
||||||
|
|
||||||
|
BorderLayoutData southData = new BorderLayoutData(LayoutRegion.SOUTH, 140,140,140);
|
||||||
|
southData.setSplit(true);
|
||||||
|
southData.setCollapsible(true);
|
||||||
|
southData.setMargins(new Margins(1, 0, 0, 0));
|
||||||
|
|
||||||
|
north.add(this.searchAndFilterContainer);
|
||||||
|
west.add(this.expPanel);
|
||||||
|
|
||||||
|
// center.add(this.toolbarContainer);
|
||||||
|
|
||||||
|
center.add(this.gxtCardLayoutResultPanel);
|
||||||
|
|
||||||
|
south.add(this.detailsContainer);
|
||||||
|
|
||||||
|
west.addListener(Events.Resize, new Listener<BoxComponentEvent>(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleEvent(BoxComponentEvent be) {
|
||||||
|
|
||||||
|
expPanel.getAsycTreePanel().setSizeTreePanel(expPanel.getWidth()-13, expPanel.getHeight()-39);
|
||||||
|
|
||||||
|
if(expPanel.getSmartFolderPanel()!=null)
|
||||||
|
expPanel.getSmartFolderPanel().setSizeSmartPanel(expPanel.getWidth()-2, expPanel.getHeight()-29);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
add(north, northData);
|
||||||
|
add(west, westData);
|
||||||
|
add(center, centerData);
|
||||||
|
add(east, eastData);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.panels;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsPortlet.ViewSwitchTypeInResult;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.GxtDetailsContainer;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.GxtListView;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItem;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.CardLayout;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
import com.google.gwt.user.client.Element;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtCardLayoutResultPanel extends LayoutContainer{
|
||||||
|
|
||||||
|
private CardLayout cardLayout = new CardLayout();
|
||||||
|
private GxtItemsPanel itemPanel;
|
||||||
|
private GxtGridFilterGroupPanel gridFilterViewContainer;
|
||||||
|
private GxtListView iconsViewContainer;
|
||||||
|
private GxtGridFilterGroupPanel gridGroupViewContainer;
|
||||||
|
private ContentPanel activePanel = null;
|
||||||
|
private GxtToolBarItem toolBarItem;
|
||||||
|
|
||||||
|
public GxtCardLayoutResultPanel(
|
||||||
|
GxtGridFilterGroupPanel gridFilterContainer,
|
||||||
|
GxtGridFilterGroupPanel gridFilterGroupContainer,
|
||||||
|
GxtListView listViewContainer,
|
||||||
|
GxtDetailsContainer detailsContainer) {
|
||||||
|
|
||||||
|
this.gridFilterViewContainer = gridFilterContainer;
|
||||||
|
this.iconsViewContainer = listViewContainer;
|
||||||
|
this.gridGroupViewContainer = gridFilterGroupContainer;
|
||||||
|
|
||||||
|
|
||||||
|
instanceItemsPanel();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void instanceItemsPanel(){
|
||||||
|
this.toolBarItem = new GxtToolBarItem(gridGroupViewContainer); //instance toolbar
|
||||||
|
this.itemPanel = new GxtItemsPanel(gridFilterViewContainer, iconsViewContainer, gridGroupViewContainer, toolBarItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onRender(Element parent, int pos) {
|
||||||
|
super.onRender(parent, pos);
|
||||||
|
setLayout(new FitLayout());
|
||||||
|
|
||||||
|
ContentPanel cp = new ContentPanel();
|
||||||
|
cp.setHeaderVisible(false);
|
||||||
|
cp.setLayout(cardLayout);
|
||||||
|
|
||||||
|
cp.add(itemPanel);
|
||||||
|
|
||||||
|
cardLayout.setActiveItem(itemPanel);
|
||||||
|
activePanel = itemPanel;
|
||||||
|
|
||||||
|
add(cp);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
public void setActivePanel(ViewSwitchTypeInResult type){
|
||||||
|
|
||||||
|
|
||||||
|
if(type.equals(ViewSwitchTypeInResult.Group) ){
|
||||||
|
cardLayout.setActiveItem(itemPanel);
|
||||||
|
activePanel = itemPanel;
|
||||||
|
// toolBar.setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// public GxtGridMessagesFilterPanel getMessagesPanelContainer() {
|
||||||
|
// return messagesPanelContainer;
|
||||||
|
// }
|
||||||
|
|
||||||
|
public GxtItemsPanel getItemPanel() {
|
||||||
|
return itemPanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemPanel(GxtItemsPanel itemPanel) {
|
||||||
|
this.itemPanel = itemPanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GxtToolBarItem getToolBarItem() {
|
||||||
|
return toolBarItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContentPanel getActivePanel(){
|
||||||
|
return activePanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.panels;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.GxtListView;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItem;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtItemsPanel extends ContentPanel{
|
||||||
|
private GxtToolBarItem toolBarItem;
|
||||||
|
private GxtGridFilterGroupPanel gridFilterViewContainer;
|
||||||
|
private GxtListView iconsViewContainer;
|
||||||
|
private GxtGridFilterGroupPanel gridGroupViewContainer;
|
||||||
|
|
||||||
|
|
||||||
|
public GxtItemsPanel(GxtGridFilterGroupPanel gridFilterViewContainer,GxtListView iconsViewContainer, GxtGridFilterGroupPanel gridGroupViewContainer, GxtToolBarItem toolBarItem) {
|
||||||
|
this.gridFilterViewContainer = gridFilterViewContainer;
|
||||||
|
this.iconsViewContainer = iconsViewContainer;
|
||||||
|
this.gridGroupViewContainer = gridGroupViewContainer;
|
||||||
|
this.toolBarItem = toolBarItem;
|
||||||
|
setBorders(false);
|
||||||
|
setBodyBorder(false);
|
||||||
|
setHeaderVisible(false);
|
||||||
|
|
||||||
|
this.setLayout(new FitLayout());
|
||||||
|
setTopComponent(this.toolBarItem.getToolBar());
|
||||||
|
|
||||||
|
add(gridGroupViewContainer);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,268 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.panels;
|
||||||
|
|
||||||
|
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.ConstantsPortlet;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SaveSmartFolderEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ScopeChangeEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.SearchTextEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.ScopeModel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.GxtComboBox;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||||
|
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
||||||
|
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.KeyListener;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
||||||
|
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.DateField;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.SimpleComboBox;
|
||||||
|
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||||
|
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
import com.google.gwt.dom.client.Style.Unit;
|
||||||
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
|
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||||
|
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
|
import com.google.gwt.user.client.ui.Button;
|
||||||
|
import com.google.gwt.user.client.ui.HTML;
|
||||||
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* @author Massimiliano Assante ISTI-CNR
|
||||||
|
*
|
||||||
|
* @version 1.0 May 14th 2012
|
||||||
|
*/
|
||||||
|
public class GxtSeachAndFilterPanel extends LayoutContainer {
|
||||||
|
|
||||||
|
private GxtComboBox comboBoxGxt = null;
|
||||||
|
private ComboBox<ScopeModel> cbViewScope = null;
|
||||||
|
private HTML txtViewScope = new HTML("<nobr>"+ConstantsPortlet.VIEWSPACE+":</nobr>");
|
||||||
|
private final TextField<String> textSearch = new TextField<String>();
|
||||||
|
private Button bSearch = new Button(ConstantsPortlet.SEARCH);
|
||||||
|
private Button bCancel = new Button(ConstantsPortlet.CANCEL);
|
||||||
|
private Button bSave = new Button(ConstantsPortlet.SAVE);
|
||||||
|
private TextField<String> textFull = new TextField<String>();
|
||||||
|
private DateField fromDate = new DateField();
|
||||||
|
private DateField toDate = new DateField();
|
||||||
|
private SimpleComboBox<String> cbNameFilter = null;
|
||||||
|
private HorizontalPanel toolbarPathPanel = null;
|
||||||
|
private boolean isSearchActive = false;
|
||||||
|
private VerticalPanel cp = new VerticalPanel();
|
||||||
|
|
||||||
|
HorizontalPanel hp = new HorizontalPanel();
|
||||||
|
HorizontalPanel hp2 = new HorizontalPanel();
|
||||||
|
|
||||||
|
HorizontalPanel hpMain = new HorizontalPanel();
|
||||||
|
|
||||||
|
public GxtSeachAndFilterPanel(HorizontalPanel toolbarContainer) {
|
||||||
|
|
||||||
|
txtViewScope.getElement().getStyle().setColor("#15428B");
|
||||||
|
txtViewScope.getElement().getStyle().setFontSize(12, Unit.PX);
|
||||||
|
|
||||||
|
setLayout(new FitLayout());
|
||||||
|
setBorders(true);
|
||||||
|
setId("SearchAndFilter");
|
||||||
|
|
||||||
|
this.comboBoxGxt = new GxtComboBox();
|
||||||
|
this.cbViewScope = this.comboBoxGxt.getComboViewScope();
|
||||||
|
this.cbNameFilter = this.comboBoxGxt.getComboStringFilter();
|
||||||
|
|
||||||
|
this.cbViewScope.setWidth(300);
|
||||||
|
this.cbViewScope.setAutoWidth(true);
|
||||||
|
|
||||||
|
this.toolbarPathPanel = toolbarContainer;
|
||||||
|
cp.add(this.toolbarPathPanel);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hp.setStyleAttribute("padding", "2px");
|
||||||
|
|
||||||
|
this.cbViewScope.setStyleAttribute("margin-left", "5px");
|
||||||
|
this.cbViewScope.setStyleAttribute("margin-right", "100px");
|
||||||
|
|
||||||
|
seVisibleButtonsCancelSave(false);
|
||||||
|
|
||||||
|
textSearch.setAllowBlank(true);
|
||||||
|
textSearch.setEmptyText(ConstantsPortlet.SEARCHINWORSPACE);
|
||||||
|
textSearch.setWidth(325);
|
||||||
|
|
||||||
|
textSearch.setRegex("^[a-zA-Z0-9]+[ a-zA-Z0-9_().-]*"); //alphanumeric
|
||||||
|
textSearch.getMessages().setRegexText(ConstantsExplorer.MESSAGE_SEARCH_FORCE_APHANUMERIC);
|
||||||
|
textSearch.setAutoValidate(true);
|
||||||
|
hp.add(textSearch);
|
||||||
|
|
||||||
|
bSearch.setStyleName("wizardButton");
|
||||||
|
bSearch.getElement().getStyle().setMarginLeft(3, Unit.PX);
|
||||||
|
bCancel.setStyleName("wizardButton");
|
||||||
|
bCancel.getElement().getStyle().setMarginLeft(3, Unit.PX);
|
||||||
|
bSave.setStyleName("wizardButton");
|
||||||
|
bSave.getElement().getStyle().setMarginLeft(3, Unit.PX);
|
||||||
|
|
||||||
|
hp.add(bSearch);
|
||||||
|
// hp.add(bCancel);
|
||||||
|
hp.add(bSave);
|
||||||
|
|
||||||
|
bSearch.setWidth("70px");
|
||||||
|
bSave.setWidth("70px");
|
||||||
|
|
||||||
|
hp2.setHorizontalAlign(HorizontalAlignment.RIGHT);
|
||||||
|
hp2.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||||
|
hp2.add(txtViewScope);
|
||||||
|
hp2.add(cbViewScope);
|
||||||
|
|
||||||
|
cbViewScope.setStyleAttribute("margin-top", "2px");
|
||||||
|
|
||||||
|
|
||||||
|
hpMain.add(hp);
|
||||||
|
hpMain.add(hp2);
|
||||||
|
cp.add(hpMain);
|
||||||
|
|
||||||
|
this.addListeners();
|
||||||
|
|
||||||
|
add(cp);
|
||||||
|
|
||||||
|
updateSize();
|
||||||
|
Window.addResizeHandler(new ResizeHandler() {
|
||||||
|
@Override
|
||||||
|
public void onResize(ResizeEvent event) {
|
||||||
|
updateSize();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
layout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update window size
|
||||||
|
*/
|
||||||
|
public void updateSize() {
|
||||||
|
RootPanel workspace = RootPanel.get(ConstantsPortlet.WORKSPACEDIV);
|
||||||
|
int leftBorder = workspace.getAbsoluteLeft();
|
||||||
|
int rootWidth = Window.getClientWidth() - 2* leftBorder; //- rightScrollBar;
|
||||||
|
hp.setWidth(rootWidth - 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void searchText(String value){
|
||||||
|
textSearch.setValue(value);
|
||||||
|
seVisibleButtonsCancelSave(true);
|
||||||
|
AppController.getEventBus().fireEvent(new SearchTextEvent(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addListeners(){
|
||||||
|
|
||||||
|
bSearch.addClickHandler(new ClickHandler() {
|
||||||
|
@Override
|
||||||
|
public void onClick(ClickEvent event) {
|
||||||
|
if(textSearch.getValue()!=null && !textSearch.getValue().isEmpty() && textSearch.isValid()){
|
||||||
|
// seVisibleButtonsCancelSave(true);
|
||||||
|
// AppController.getEventBus().fireEvent(new SearchTextEvent(textSearch.getValue()));
|
||||||
|
searchText(textSearch.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
KeyListener keyListener = new KeyListener() {
|
||||||
|
public void componentKeyUp(ComponentEvent event) {
|
||||||
|
if (event.getKeyCode() == 13) { // KEY_ENTER
|
||||||
|
// seVisibleButtonsCancelSave(true);
|
||||||
|
// AppController.getEventBus().fireEvent(new SearchTextEvent(textSearch.getValue()));
|
||||||
|
searchText(textSearch.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
textSearch.addKeyListener(keyListener);
|
||||||
|
//
|
||||||
|
// bCancel.addClickHandler(new ClickHandler() {
|
||||||
|
// @Override
|
||||||
|
// public void onClick(ClickEvent event) {
|
||||||
|
// if(textSearch.getValue()!=null && !textSearch.getValue().isEmpty() && textSearch.isValid()){
|
||||||
|
// searchCancel();
|
||||||
|
// AppController.getEventBus().fireEvent(new SearchTextEvent(null));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
bSave.addClickHandler(new ClickHandler() {
|
||||||
|
@Override
|
||||||
|
public void onClick(ClickEvent event) {
|
||||||
|
if(textSearch.getValue()!=null && !textSearch.getValue().isEmpty() && textSearch.isValid()){
|
||||||
|
if (textSearch.getValue() != null && textSearch.getValue().length()>0) {
|
||||||
|
AppController.getEventBus().fireEvent(new SaveSmartFolderEvent(null, textSearch.getValue(), null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.cbViewScope.addSelectionChangedListener(new SelectionChangedListener<ScopeModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selectionChanged(SelectionChangedEvent<ScopeModel> se) {
|
||||||
|
|
||||||
|
ScopeModel scope = se.getSelectedItem();
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(new ScopeChangeEvent(scope.getId()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void resetFields(){
|
||||||
|
this.textSearch.reset();
|
||||||
|
this.textFull.reset();
|
||||||
|
this.fromDate.reset();
|
||||||
|
this.toDate.reset();
|
||||||
|
this.cbNameFilter.reset();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void seVisibleButtonsCancelSave(boolean flag){
|
||||||
|
|
||||||
|
this.bCancel.setVisible(flag);
|
||||||
|
this.bSave.setVisible(flag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void searchCancel(){
|
||||||
|
resetFields();
|
||||||
|
seVisibleButtonsCancelSave(false);
|
||||||
|
// AppController.getEventBus().fireEvent(new SearchTextEvent(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSearchActive(){
|
||||||
|
return this.isSearchActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListScope(List<ScopeModel> listScope){
|
||||||
|
|
||||||
|
this.comboBoxGxt.setListScope(listScope);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void selectScopeByIndex(int index){
|
||||||
|
|
||||||
|
this.cbViewScope.setValue(cbViewScope.getStore().getAt(index));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSearchActive(boolean isSearchActive) {
|
||||||
|
System.out.println("#################SET SEARCH ACTIVE in GRID " + isSearchActive);
|
||||||
|
this.isSearchActive = isSearchActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVisibleButtonSave(boolean bool){
|
||||||
|
this.bSave.setVisible(bool);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmptyText(String emptyText){
|
||||||
|
textSearch.setEmptyText(emptyText);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,125 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.toolbars;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.AppController;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
||||||
|
import org.gcube.portlets.user.workspace.client.resources.Resources;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.Events;
|
||||||
|
import com.extjs.gxt.ui.client.event.Listener;
|
||||||
|
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.Text;
|
||||||
|
import com.extjs.gxt.ui.client.widget.WidgetComponent;
|
||||||
|
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||||
|
import com.google.gwt.user.client.ui.Image;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtPathPanel {
|
||||||
|
|
||||||
|
private static final String ROOT_NAME = "Workspace";
|
||||||
|
|
||||||
|
private HorizontalPanel toolBar = new HorizontalPanel();
|
||||||
|
private Text txtPath = new Text("PATH ");
|
||||||
|
private LinkedHashMap<String, FileModel> hashFileModel; // Ordered-HashMap
|
||||||
|
boolean rootAdded = false;
|
||||||
|
WidgetComponent hardDiskIcon = new WidgetComponent(new Image (Resources.getImageHardDisk()));
|
||||||
|
|
||||||
|
public GxtPathPanel() {
|
||||||
|
toolBar = new HorizontalPanel();
|
||||||
|
toolBar.setHeight("25px");
|
||||||
|
initToolbar();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HorizontalPanel getToolBarPathPanel() {
|
||||||
|
return toolBar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPath(ArrayList<FileModel> parents) {
|
||||||
|
|
||||||
|
initToolbarWithoutFakeRoot();
|
||||||
|
|
||||||
|
if (parents != null && parents.size() > 0) {
|
||||||
|
|
||||||
|
ArrayList<Button> listButtons = new ArrayList<Button>();
|
||||||
|
|
||||||
|
hashFileModel = new LinkedHashMap<String, FileModel>();
|
||||||
|
|
||||||
|
// arrayFileModel = new ArrayList<FileModel>();
|
||||||
|
|
||||||
|
for (FileModel parent : parents) {
|
||||||
|
|
||||||
|
Button butt = new Button(parent.getName());
|
||||||
|
butt.setId(parent.getIdentifier());
|
||||||
|
butt.setStyleAttribute("top", "-4px");
|
||||||
|
butt.setStyleName("button-hyperlink");
|
||||||
|
// butt.setHeight(12);
|
||||||
|
|
||||||
|
hashFileModel.put(parent.getIdentifier(), parent);
|
||||||
|
|
||||||
|
// arrayFileModel.set(parent.getIdentifier(),parent);
|
||||||
|
|
||||||
|
butt.addListener(Events.OnClick, new Listener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleEvent(ButtonEvent be) {
|
||||||
|
|
||||||
|
// Window.alert("Name " + be.getButton().getText() +
|
||||||
|
// " ID: "+ be.getButton().getId());
|
||||||
|
|
||||||
|
FileModel target = hashFileModel.get(be.getButton()
|
||||||
|
.getId());
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new PathElementSelectedEvent(target));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
listButtons.add(butt);
|
||||||
|
}
|
||||||
|
|
||||||
|
int size = listButtons.size();
|
||||||
|
for (int i = 0; i < size - 1; i++) {
|
||||||
|
toolBar.add(listButtons.get(i));
|
||||||
|
toolBar.add(new WidgetComponent(new Image(Resources.getImagePathSeparator())));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
toolBar.add(listButtons.get(size - 1)); // Add last element
|
||||||
|
toolBar.layout(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initToolbar() {
|
||||||
|
toolBar.removeAll();
|
||||||
|
toolBar.setStyleName("myToolbar");
|
||||||
|
toolBar.setStyleAttribute("padding-top", "5px");
|
||||||
|
txtPath.setStyleAttribute("padding-right", "10px");
|
||||||
|
toolBar.add(new WidgetComponent(new Image(Resources.getImagePathSeparator())));
|
||||||
|
toolBar.layout(true);
|
||||||
|
|
||||||
|
Button butt = new Button(ROOT_NAME);
|
||||||
|
butt.setId("");
|
||||||
|
butt.setStyleAttribute("top", "-4px");
|
||||||
|
butt.setStyleName("button-hyperlink");
|
||||||
|
toolBar.add(butt);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initToolbarWithoutFakeRoot() {
|
||||||
|
toolBar.removeAll();
|
||||||
|
toolBar.setStyleName("myToolbar");
|
||||||
|
toolBar.setStyleAttribute("padding-top", "5px");
|
||||||
|
txtPath.setStyleAttribute("padding-right", "10px");
|
||||||
|
toolBar.add(new WidgetComponent(new Image(Resources.getImagePathSeparator())));
|
||||||
|
toolBar.layout(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,388 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.toolbars;
|
||||||
|
//
|
||||||
|
//import org.gcube.portlets.user.workspace.client.AppController;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.ConstantsPortlet;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.ConstantsPortlet.ViewSwitchTypeInResult;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.event.AddFolderEvent;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.event.DeleteItemEvent;
|
||||||
|
//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.FileUploadEvent;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.event.FileUploadEvent.UploadType;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.event.RenameItemEvent;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.model.FileGridModel;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.resources.Resources;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.view.GxtListView;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel;
|
||||||
|
//import org.gcube.portlets.user.workspace.client.view.grids.GxtGridMessagesFilterPanel;
|
||||||
|
//
|
||||||
|
//import com.extjs.gxt.ui.client.Style.ButtonArrowAlign;
|
||||||
|
//import com.extjs.gxt.ui.client.Style.ButtonScale;
|
||||||
|
//import com.extjs.gxt.ui.client.Style.IconAlign;
|
||||||
|
//import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
|
//import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
|
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.button.Button;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.button.ToggleButton;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.layout.CardLayout;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
||||||
|
//import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
||||||
|
//import com.google.gwt.user.client.Element;
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* THIS CLASS IS NOT USED
|
||||||
|
*/
|
||||||
|
public class GxtToolBarFunctionsPanel extends LayoutContainer {
|
||||||
|
//
|
||||||
|
//// private GxtGridFilterPanel gridFilterViewContainer = null;
|
||||||
|
// private Button btnAddFolder = null;
|
||||||
|
// private Button btnRemoveItem = null;
|
||||||
|
// private Button btnRenameItem = null;
|
||||||
|
// private Button btnUploadFile = null;
|
||||||
|
// private Button btnUploadArchive = null;
|
||||||
|
// private Button btnDownloadFile = null;
|
||||||
|
// private GxtListView iconsViewContainer = null;
|
||||||
|
// private ToggleButton toggleGroup = new ToggleButton();
|
||||||
|
// private ToggleButton toggleList = new ToggleButton();
|
||||||
|
// private ToggleButton toggleIcon = new ToggleButton();
|
||||||
|
// private GxtGridFilterGroupPanel gridGroupViewContainer;
|
||||||
|
// private GxtPathPanel toolBarPathContainer;
|
||||||
|
// private GxtGridMessagesFilterPanel messagesPanelContainer;
|
||||||
|
// private GxtGridFilterGroupPanel gridFilterViewContainer;
|
||||||
|
// private ToolBar toolBar = new ToolBar();
|
||||||
|
// private CardLayout cardLayout = new CardLayout();
|
||||||
|
// private Button btnAccessFromDesktop = null;
|
||||||
|
//
|
||||||
|
// public GxtToolBarFunctionsPanel(GxtPathPanel toolBarPath,
|
||||||
|
// GxtGridFilterGroupPanel gridFilterContainer,
|
||||||
|
// GxtGridFilterGroupPanel gridFilterGroupContainer,
|
||||||
|
// GxtListView listViewContainer,
|
||||||
|
// GxtGridMessagesFilterPanel messagesPanelContainer) {
|
||||||
|
//
|
||||||
|
// this.gridFilterViewContainer = gridFilterContainer;
|
||||||
|
// this.iconsViewContainer = listViewContainer;
|
||||||
|
// this.gridGroupViewContainer = gridFilterGroupContainer;
|
||||||
|
// this.toolBarPathContainer = toolBarPath;
|
||||||
|
// this.messagesPanelContainer = messagesPanelContainer;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// protected void onRender(Element parent, int pos) {
|
||||||
|
// super.onRender(parent, pos);
|
||||||
|
// setLayout(new FitLayout());
|
||||||
|
//
|
||||||
|
// ContentPanel cp = createStandardToolbarPanel(cardLayout);
|
||||||
|
// // ContentPanel cp = new ContentPanel();
|
||||||
|
//
|
||||||
|
// addSelectionListenersOnToolBar();
|
||||||
|
// cp.add(gridGroupViewContainer);
|
||||||
|
//// cp.add(gridFilterViewContainer);
|
||||||
|
//// cp.add(iconsViewContainer);
|
||||||
|
//
|
||||||
|
// cp.add(messagesPanelContainer);
|
||||||
|
//
|
||||||
|
// cardLayout.setActiveItem(gridGroupViewContainer);
|
||||||
|
//
|
||||||
|
// add(cp);
|
||||||
|
//
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// public void setActivePanel(ViewSwitchTypeInResult type){
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// if(type.equals(ViewSwitchTypeInResult.Group)){
|
||||||
|
// cardLayout.setActiveItem(gridGroupViewContainer);
|
||||||
|
// toolBar.setEnabled(true);
|
||||||
|
// }
|
||||||
|
// else if(type.equals(ViewSwitchTypeInResult.Icons)){
|
||||||
|
// cardLayout.setActiveItem(iconsViewContainer);
|
||||||
|
// toolBar.setEnabled(true);
|
||||||
|
// }
|
||||||
|
// else if(type.equals(ViewSwitchTypeInResult.Messages)){
|
||||||
|
// cardLayout.setActiveItem(messagesPanelContainer);
|
||||||
|
// toolBar.setEnabled(false);
|
||||||
|
// }
|
||||||
|
//// else if(type.equals(ViewSwitchTypeInResult.List))
|
||||||
|
//// cardLayout.setActiveItem(gridFilterViewContainer);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private ContentPanel createStandardToolbarPanel(CardLayout cardLayout) {
|
||||||
|
// ContentPanel panel = new ContentPanel();
|
||||||
|
// panel.setLayout(cardLayout);
|
||||||
|
//// panel.setLayout(new FitLayout());
|
||||||
|
// panel.setBodyStyle("padding: 1px");
|
||||||
|
// panel.setHeaderVisible(false);
|
||||||
|
//
|
||||||
|
// btnAddFolder = new Button(ConstantsPortlet.ADDFOLDER, Resources.getIconAddFolder());
|
||||||
|
//
|
||||||
|
// btnAddFolder.setScale(ButtonScale.SMALL);
|
||||||
|
// btnAddFolder.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnAddFolder.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
//
|
||||||
|
// toolBar.add(btnAddFolder);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
//
|
||||||
|
// btnRemoveItem = new Button(ConstantsPortlet.REMOVEITEM, Resources.getIconDeleteItem());
|
||||||
|
// btnRemoveItem.setScale(ButtonScale.SMALL);
|
||||||
|
// btnRemoveItem.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnRemoveItem.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
//
|
||||||
|
// toolBar.add(btnRemoveItem);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
//
|
||||||
|
// btnRenameItem = new Button(ConstantsPortlet.RENAMEITEM, Resources.getIconRenameItem());
|
||||||
|
// btnRenameItem.setScale(ButtonScale.SMALL);
|
||||||
|
// btnRenameItem.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnRenameItem.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
// toolBar.add(btnRenameItem);
|
||||||
|
//
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
//
|
||||||
|
// btnUploadFile = new Button(ConstantsPortlet.UPLOADFILE, Resources.getIconFileUpload());
|
||||||
|
// btnUploadFile.setScale(ButtonScale.SMALL);
|
||||||
|
// btnUploadFile.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnUploadFile.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
//
|
||||||
|
// toolBar.add(btnUploadFile);
|
||||||
|
//
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
//
|
||||||
|
// btnUploadArchive = new Button(ConstantsPortlet.UPLOADARCHIVE, Resources.getIconArchiveUpload());
|
||||||
|
// btnUploadArchive.setScale(ButtonScale.SMALL);
|
||||||
|
// btnUploadArchive.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnUploadArchive.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
//
|
||||||
|
// toolBar.add(btnUploadArchive);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
//
|
||||||
|
// btnDownloadFile = new Button(ConstantsPortlet.DOWNLOADITEM, Resources.getIconDownload());
|
||||||
|
// btnDownloadFile.setScale(ButtonScale.SMALL);
|
||||||
|
// btnDownloadFile.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnDownloadFile.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
//
|
||||||
|
// toolBar.add(btnDownloadFile);
|
||||||
|
//
|
||||||
|
// toolBar.add(new FillToolItem());
|
||||||
|
//
|
||||||
|
// btnAccessFromDesktop = new Button(ConstantsPortlet.TITLEACCESSWEBDAV, Resources.getIconWebDav());
|
||||||
|
// btnAccessFromDesktop.setScale(ButtonScale.SMALL);
|
||||||
|
// btnAccessFromDesktop.setIconAlign(IconAlign.TOP);
|
||||||
|
// btnAccessFromDesktop.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
//
|
||||||
|
// toolBar.add(btnAccessFromDesktop);
|
||||||
|
//
|
||||||
|
// toggleGroup = new ToggleButton();
|
||||||
|
// toggleGroup.setIcon(Resources.getIconToggleGroup());
|
||||||
|
// toggleGroup.setToggleGroup("viewgrid");
|
||||||
|
// toggleGroup.toggle(true);
|
||||||
|
//
|
||||||
|
// toggleIcon = new ToggleButton();
|
||||||
|
// toggleIcon.setIcon(Resources.getIconToggleIcon());
|
||||||
|
// toggleIcon.setToggleGroup("viewgrid");
|
||||||
|
//
|
||||||
|
// toggleList = new ToggleButton();
|
||||||
|
// toggleList.setIcon(Resources.getIconToggleList());
|
||||||
|
// toggleList.setToggleGroup("viewgrid");
|
||||||
|
//
|
||||||
|
// switchView(ViewSwitchTypeInResult.Group);
|
||||||
|
//
|
||||||
|
// this.activeButtonsOnSelect(false);
|
||||||
|
//
|
||||||
|
// panel.setTopComponent(toolBar); //Add toolBar
|
||||||
|
//
|
||||||
|
// return panel;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private void addSelectionListenersOnToolBar(){
|
||||||
|
//
|
||||||
|
// btnAddFolder.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//
|
||||||
|
//// final FileGridModel fileGridModel = gridFilterContainer.getSelectedItem();
|
||||||
|
//
|
||||||
|
// AppController.getEventBus().fireEvent(new AddFolderEvent(gridGroupViewContainer.getCurrentFolderView(),null));
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// btnRemoveItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//
|
||||||
|
// final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
//
|
||||||
|
// AppController.getEventBus().fireEvent(new DeleteItemEvent(fileGridModel));
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// btnRenameItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//
|
||||||
|
// final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
//
|
||||||
|
// AppController.getEventBus().fireEvent(new RenameItemEvent(fileGridModel));
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// btnUploadFile.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//// AppController.getEventBus().fireEvent(event)
|
||||||
|
//// new DialogUpload(ConstantsExplorer.FILEUPLOADHEADER, toolBarPathContainer.getLastParent().getName(), ConstantsExplorer.FILE);
|
||||||
|
// AppController.getEventBus().fireEvent(new FileUploadEvent(null, UploadType.FILE));
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// btnUploadArchive.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//// new DialogUpload(ConstantsExplorer.ARCHIVEUPLOADHEADER, , ConstantsExplorer.ARCHIVE);
|
||||||
|
// AppController.getEventBus().fireEvent(new FileUploadEvent(null, UploadType.ARCHIVE));
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// btnDownloadFile.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//
|
||||||
|
// final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
//
|
||||||
|
// AppController.getEventBus().fireEvent(new FileDownloadEvent(fileGridModel.getIdentifier(), fileGridModel.getName(), DownloadType.DOWNLOAD));
|
||||||
|
//
|
||||||
|
//// com.google.gwt.user.client.Window.open(GWT.getModuleBaseURL()+"DownloadService?id="+contextItem.getId(), "", "");
|
||||||
|
//// break;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// btnAccessFromDesktop.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
//
|
||||||
|
// AppController.getEventBus().fireEvent(new WebDavUrlEvent(null));
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// toggleGroup.addSelectionListener(new SelectionListener<ButtonEvent>(){
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
// if(toggleGroup.isPressed()){
|
||||||
|
// switchView(ViewSwitchTypeInResult.Group);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//// Window.alert("ViewSwitchTypeInResult.Group");
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// toggleList.addSelectionListener(new SelectionListener<ButtonEvent>(){
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
// if(toggleList.isPressed()){
|
||||||
|
// switchView(ViewSwitchTypeInResult.List);
|
||||||
|
// }
|
||||||
|
//// Window.alert("ViewSwitchTypeInResult.List");
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// toggleIcon.addSelectionListener(new SelectionListener<ButtonEvent>(){
|
||||||
|
// @Override
|
||||||
|
// public void componentSelected(ButtonEvent ce) {
|
||||||
|
// if(toggleIcon.isPressed()){
|
||||||
|
// switchView(ViewSwitchTypeInResult.Icons);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private void switchView(ViewSwitchTypeInResult type) {
|
||||||
|
//
|
||||||
|
// if (type.compareTo(ViewSwitchTypeInResult.Icons) == 0) {
|
||||||
|
// this.gridFilterViewContainer.setVisible(false);
|
||||||
|
// this.gridGroupViewContainer.setVisible(false);
|
||||||
|
// this.iconsViewContainer.setVisible(true);
|
||||||
|
//// toggleGroup.toggle(false);
|
||||||
|
//// toggleList.toggle(false);
|
||||||
|
//// toggleIcon.toggle(true);
|
||||||
|
//
|
||||||
|
// } else{
|
||||||
|
// if (type.compareTo(ViewSwitchTypeInResult.List) == 0) {
|
||||||
|
//
|
||||||
|
// this.iconsViewContainer.setVisible(false);
|
||||||
|
// this.gridGroupViewContainer.setVisible(false);
|
||||||
|
// this.gridFilterViewContainer.setVisible(true);
|
||||||
|
//// toggleGroup.toggle(false);
|
||||||
|
//// toggleList.toggle(true);
|
||||||
|
//// toggleIcon.toggle(false);
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// this.iconsViewContainer.setVisible(false);
|
||||||
|
// this.gridFilterViewContainer.setVisible(false);
|
||||||
|
// this.gridGroupViewContainer.setVisible(true);
|
||||||
|
//// toggleGroup.toggle(true);
|
||||||
|
//// toggleList.toggle(false);
|
||||||
|
//// toggleIcon.toggle(false);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void activeButtonsOnSelect(boolean active){
|
||||||
|
//
|
||||||
|
// if(!active){
|
||||||
|
//// this.btnAddFolder.disable();
|
||||||
|
// this.btnRemoveItem.disable();
|
||||||
|
// this.btnRenameItem.disable();
|
||||||
|
// this.btnDownloadFile.disable();
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
//// this.btnAddFolder.enable();
|
||||||
|
// this.btnRemoveItem.enable();
|
||||||
|
// this.btnRenameItem.enable();
|
||||||
|
// this.btnDownloadFile.enable();
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void activeAllButtons(boolean active){
|
||||||
|
//
|
||||||
|
// if(!active){
|
||||||
|
// this.btnAddFolder.disable();
|
||||||
|
// this.btnRemoveItem.disable();
|
||||||
|
// this.btnRenameItem.disable();
|
||||||
|
// this.btnDownloadFile.disable();
|
||||||
|
// this.btnUploadArchive.disable();
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// this.btnAddFolder.enable();
|
||||||
|
// this.btnRemoveItem.enable();
|
||||||
|
// this.btnRenameItem.enable();
|
||||||
|
// this.btnDownloadFile.enable();
|
||||||
|
// this.btnUploadArchive.enable();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//public GxtGridMessagesFilterPanel getMessagesPanelContainer() {
|
||||||
|
// return messagesPanelContainer;
|
||||||
|
//}
|
||||||
|
}
|
|
@ -0,0 +1,462 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.view.toolbars;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.AppController;
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsPortlet;
|
||||||
|
import org.gcube.portlets.user.workspace.client.ConstantsPortlet.ViewSwitchTypeInResult;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ActiveGroupingView;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.AddFolderEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DeleteItemEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.DoubleClickElementSelectedEvent;
|
||||||
|
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.FileUploadEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.FileUploadEvent.UploadType;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.RenameItemEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent;
|
||||||
|
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
||||||
|
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.resources.Resources;
|
||||||
|
import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.Style.ButtonArrowAlign;
|
||||||
|
import com.extjs.gxt.ui.client.Style.ButtonScale;
|
||||||
|
import com.extjs.gxt.ui.client.Style.IconAlign;
|
||||||
|
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
|
import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||||
|
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||||
|
import com.extjs.gxt.ui.client.widget.button.ToggleButton;
|
||||||
|
import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
|
||||||
|
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
|
||||||
|
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GxtToolBarItem {
|
||||||
|
|
||||||
|
private Button btnAddFolder = null;
|
||||||
|
private Button btnRemoveItem = null;
|
||||||
|
private Button btnRenameItem = null;
|
||||||
|
private Button btnUploadFile = null;
|
||||||
|
private Button btnUploadArchive = null;
|
||||||
|
private Button btnDownloadFile = null;
|
||||||
|
private Button btnOpen = null;
|
||||||
|
private Button btnAccessFromDesktop = null;
|
||||||
|
private ToggleButton toggleGroup = new ToggleButton();
|
||||||
|
private ToggleButton toggleList = new ToggleButton();
|
||||||
|
private ToggleButton toggleIcon = new ToggleButton();
|
||||||
|
private GxtGridFilterGroupPanel gridGroupViewContainer;
|
||||||
|
|
||||||
|
private ToolBar toolBar = new ToolBar();
|
||||||
|
private Button btnPreview;
|
||||||
|
private ToggleButton btnGridView;
|
||||||
|
|
||||||
|
public GxtToolBarItem() {
|
||||||
|
initToolBar();
|
||||||
|
addSelectionListenersOnToolBar();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GxtToolBarItem(GxtGridFilterGroupPanel gridFilterGroupContainer) {
|
||||||
|
this();
|
||||||
|
this.gridGroupViewContainer = gridFilterGroupContainer;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initToolBar() {
|
||||||
|
|
||||||
|
btnGridView = new ToggleButton("Category View", Resources.getIconGridView());
|
||||||
|
btnGridView.setScale(ButtonScale.SMALL);
|
||||||
|
btnGridView.setIconAlign(IconAlign.TOP);
|
||||||
|
btnGridView.toggle(true);
|
||||||
|
btnGridView.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
toolBar.add(btnGridView);
|
||||||
|
|
||||||
|
toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnAddFolder = new Button(ConstantsPortlet.ADDFOLDER,Resources.getIconAddFolder());
|
||||||
|
btnAddFolder.setScale(ButtonScale.SMALL);
|
||||||
|
btnAddFolder.setIconAlign(IconAlign.TOP);
|
||||||
|
btnAddFolder.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
|
||||||
|
toolBar.add(btnAddFolder);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnRemoveItem = new Button(ConstantsPortlet.REMOVEITEM,
|
||||||
|
Resources.getIconDeleteItem());
|
||||||
|
btnRemoveItem.setScale(ButtonScale.SMALL);
|
||||||
|
btnRemoveItem.setIconAlign(IconAlign.TOP);
|
||||||
|
btnRemoveItem.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
|
||||||
|
toolBar.add(btnRemoveItem);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnRenameItem = new Button(ConstantsPortlet.RENAMEITEM,
|
||||||
|
Resources.getIconRenameItem());
|
||||||
|
btnRenameItem.setScale(ButtonScale.SMALL);
|
||||||
|
btnRenameItem.setIconAlign(IconAlign.TOP);
|
||||||
|
btnRenameItem.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
toolBar.add(btnRenameItem);
|
||||||
|
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnDownloadFile = new Button(ConstantsPortlet.DOWNLOADITEM,Resources.getIconDownload());
|
||||||
|
btnDownloadFile.setScale(ButtonScale.SMALL);
|
||||||
|
btnDownloadFile.setIconAlign(IconAlign.TOP);
|
||||||
|
btnDownloadFile.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
|
||||||
|
toolBar.add(btnDownloadFile);
|
||||||
|
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnPreview = new Button(ConstantsPortlet.PREVIEW ,Resources.getIconPreview());
|
||||||
|
btnPreview.setScale(ButtonScale.SMALL);
|
||||||
|
btnPreview.setIconAlign(IconAlign.TOP);
|
||||||
|
btnPreview.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
toolBar.add(btnPreview);
|
||||||
|
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnOpen = new Button(ConstantsPortlet.OPEN ,Resources.getIconShow());
|
||||||
|
btnOpen.setScale(ButtonScale.SMALL);
|
||||||
|
btnOpen.setIconAlign(IconAlign.TOP);
|
||||||
|
btnOpen.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
toolBar.add(btnOpen);
|
||||||
|
|
||||||
|
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnAccessFromDesktop = new Button(ConstantsPortlet.TITLEACCESSWEBDAV, Resources.getIconWebDav());
|
||||||
|
btnAccessFromDesktop.setScale(ButtonScale.SMALL);
|
||||||
|
btnAccessFromDesktop.setIconAlign(IconAlign.TOP);
|
||||||
|
btnAccessFromDesktop.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
|
||||||
|
// btnAccessFromDesktop = new Button(ConstantsPortlet.TITLEACCESSWEBDAV);
|
||||||
|
// btnAccessFromDesktop.setScale(ButtonScale.SMALL);
|
||||||
|
// btnAccessFromDesktop.addStyleName("button-hyperlink");
|
||||||
|
|
||||||
|
toolBar.add(btnAccessFromDesktop);
|
||||||
|
|
||||||
|
toolBar.add(new FillToolItem());
|
||||||
|
|
||||||
|
btnUploadFile = new Button(ConstantsPortlet.UPLOADFILE,
|
||||||
|
Resources.getIconFileUpload());
|
||||||
|
btnUploadFile.setScale(ButtonScale.SMALL);
|
||||||
|
btnUploadFile.setIconAlign(IconAlign.TOP);
|
||||||
|
btnUploadFile.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
|
||||||
|
toolBar.add(btnUploadFile);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
btnUploadArchive = new Button(ConstantsPortlet.UPLOADARCHIVE,
|
||||||
|
Resources.getIconArchiveUpload());
|
||||||
|
btnUploadArchive.setScale(ButtonScale.SMALL);
|
||||||
|
btnUploadArchive.setIconAlign(IconAlign.TOP);
|
||||||
|
btnUploadArchive.setArrowAlign(ButtonArrowAlign.BOTTOM);
|
||||||
|
|
||||||
|
toolBar.add(btnUploadArchive);
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
// toolBar.add(new SeparatorToolItem());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//TODO OLD CODE
|
||||||
|
toggleGroup = new ToggleButton();
|
||||||
|
toggleGroup.setIcon(Resources.getIconToggleGroup());
|
||||||
|
toggleGroup.setToggleGroup("viewgrid");
|
||||||
|
toggleGroup.toggle(true);
|
||||||
|
|
||||||
|
toggleIcon = new ToggleButton();
|
||||||
|
toggleIcon.setIcon(Resources.getIconToggleIcon());
|
||||||
|
toggleIcon.setToggleGroup("viewgrid");
|
||||||
|
|
||||||
|
toggleList = new ToggleButton();
|
||||||
|
toggleList.setIcon(Resources.getIconToggleList());
|
||||||
|
toggleList.setToggleGroup("viewgrid");
|
||||||
|
|
||||||
|
switchView(ViewSwitchTypeInResult.Group);
|
||||||
|
|
||||||
|
// toolBar.add(new FillToolItem());
|
||||||
|
|
||||||
|
this.activeButtonsOnSelect(null, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void toggleGridViewButton(boolean toogle){
|
||||||
|
btnGridView.toggle(toogle);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addSelectionListenersOnToolBar() {
|
||||||
|
|
||||||
|
btnAddFolder.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new AddFolderEvent(gridGroupViewContainer
|
||||||
|
.getCurrentFolderView(), null));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnGridView.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(new ActiveGroupingView(btnGridView.isPressed()));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnRemoveItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new DeleteItemEvent(fileGridModel));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnRenameItem.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new RenameItemEvent(fileGridModel));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnUploadFile.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new FileUploadEvent(null, UploadType.FILE));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnUploadArchive.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new FileUploadEvent(null, UploadType.ARCHIVE));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnDownloadFile.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(
|
||||||
|
new FileDownloadEvent(fileGridModel
|
||||||
|
.getIdentifier(), fileGridModel
|
||||||
|
.getName(), DownloadType.DOWNLOAD));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnPreview.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(new ImagePreviewEvent(fileGridModel, ce.getClientX(), ce.getClientY()+100));
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnOpen.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
final FileGridModel fileGridModel = gridGroupViewContainer.getSelectedItem();
|
||||||
|
|
||||||
|
if(fileGridModel!=null){
|
||||||
|
if(fileGridModel.isDirectory())
|
||||||
|
AppController.getEventBus().fireEvent(new DoubleClickElementSelectedEvent(fileGridModel));
|
||||||
|
else if(fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.REPORT) || fileGridModel.getGXTFolderItemType().equals(GXTFolderItemTypeEnum.REPORT_TEMPLATE))
|
||||||
|
AppController.getEventBus().fireEvent(new OpenReportsEvent(fileGridModel));
|
||||||
|
else
|
||||||
|
AppController.getEventBus().fireEvent(new FileDownloadEvent(fileGridModel.getIdentifier(), fileGridModel.getName(), DownloadType.SHOW));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
btnAccessFromDesktop.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
|
||||||
|
AppController.getEventBus().fireEvent(new WebDavUrlEvent(null));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
toggleGroup.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
if (toggleGroup.isPressed()) {
|
||||||
|
switchView(ViewSwitchTypeInResult.Group);
|
||||||
|
|
||||||
|
}
|
||||||
|
// Window.alert("ViewSwitchTypeInResult.Group");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
toggleList.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
if (toggleList.isPressed()) {
|
||||||
|
switchView(ViewSwitchTypeInResult.List);
|
||||||
|
|
||||||
|
}
|
||||||
|
// Window.alert("ViewSwitchTypeInResult.List");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
toggleIcon.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||||
|
@Override
|
||||||
|
public void componentSelected(ButtonEvent ce) {
|
||||||
|
if (toggleIcon.isPressed()) {
|
||||||
|
switchView(ViewSwitchTypeInResult.Icons);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void switchView(ViewSwitchTypeInResult type) {
|
||||||
|
|
||||||
|
// if (type.compareTo(ViewSwitchTypeInResult.Icons) == 0) {
|
||||||
|
// this.gridFilterViewContainer.setVisible(false);
|
||||||
|
// this.gridGroupViewContainer.setVisible(false);
|
||||||
|
// this.iconsViewContainer.setVisible(true);
|
||||||
|
//
|
||||||
|
// } else{
|
||||||
|
// if (type.compareTo(ViewSwitchTypeInResult.List) == 0) {
|
||||||
|
//
|
||||||
|
// this.iconsViewContainer.setVisible(false);
|
||||||
|
// this.gridGroupViewContainer.setVisible(false);
|
||||||
|
// this.gridFilterViewContainer.setVisible(true);
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// this.iconsViewContainer.setVisible(false);
|
||||||
|
// this.gridFilterViewContainer.setVisible(false);
|
||||||
|
// this.gridGroupViewContainer.setVisible(true);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void activeButtonsOnSelect(FileModel target, boolean active) {
|
||||||
|
|
||||||
|
this.btnPreview.disable();
|
||||||
|
this.btnOpen.enable();
|
||||||
|
|
||||||
|
if(target!=null){
|
||||||
|
|
||||||
|
if(active & target.getGXTFolderItemType()!=null){
|
||||||
|
|
||||||
|
switch(target.getGXTFolderItemType()){
|
||||||
|
|
||||||
|
case EXTERNAL_IMAGE:
|
||||||
|
// contextMenu.getItemByItemId(ConstantsExplorer.PRW).setVisible(true);
|
||||||
|
this.btnPreview.enable();
|
||||||
|
break;
|
||||||
|
case EXTERNAL_FILE:
|
||||||
|
break;
|
||||||
|
case EXTERNAL_PDF_FILE:
|
||||||
|
break;
|
||||||
|
case EXTERNAL_URL:
|
||||||
|
// contextMenu.getItemByItemId(ConstantsExplorer.LNK).setVisible(true);
|
||||||
|
break;
|
||||||
|
case REPORT_TEMPLATE:
|
||||||
|
// contextMenu.getItemByItemId(ConstantsExplorer.ORT).setVisible(true);
|
||||||
|
break;
|
||||||
|
case REPORT:
|
||||||
|
break;
|
||||||
|
case QUERY:
|
||||||
|
break;
|
||||||
|
case TIME_SERIES:
|
||||||
|
break;
|
||||||
|
case PDF_DOCUMENT:
|
||||||
|
break;
|
||||||
|
case IMAGE_DOCUMENT:
|
||||||
|
this.btnPreview.enable();
|
||||||
|
break;
|
||||||
|
case DOCUMENT:
|
||||||
|
break;
|
||||||
|
case URL_DOCUMENT:
|
||||||
|
// contextMenu.getItemByItemId(ConstantsExplorer.LNK).setVisible(true);
|
||||||
|
break;
|
||||||
|
case METADATA:
|
||||||
|
break;
|
||||||
|
case WORKFLOW_REPORT:
|
||||||
|
break;
|
||||||
|
case WORKFLOW_TEMPLATE:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
activeButtons(active);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void activeButtons(boolean active){
|
||||||
|
|
||||||
|
if (!active) {
|
||||||
|
this.btnRemoveItem.disable();
|
||||||
|
this.btnRenameItem.disable();
|
||||||
|
this.btnDownloadFile.disable();
|
||||||
|
this.btnOpen.disable();
|
||||||
|
} else {
|
||||||
|
this.btnRemoveItem.enable();
|
||||||
|
this.btnRenameItem.enable();
|
||||||
|
this.btnDownloadFile.enable();
|
||||||
|
this.btnOpen.enable();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void activeAllButtonWithoutGroupView(boolean active){
|
||||||
|
|
||||||
|
btnRemoveItem.setEnabled(active);
|
||||||
|
btnRenameItem.setEnabled(active);
|
||||||
|
btnDownloadFile.setEnabled(active);
|
||||||
|
btnPreview.setEnabled(active);
|
||||||
|
btnOpen.setEnabled(active);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ToolBar getToolBar() {
|
||||||
|
return this.toolBar;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.gcube.portlets.user.workspace.portlet;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javax.portlet.GenericPortlet;
|
||||||
|
import javax.portlet.PortletException;
|
||||||
|
import javax.portlet.PortletRequestDispatcher;
|
||||||
|
import javax.portlet.RenderRequest;
|
||||||
|
import javax.portlet.RenderResponse;
|
||||||
|
|
||||||
|
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
||||||
|
import org.gcube.portlets.user.workspace.server.util.Util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Federico De Faveri defaveri@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class WorkspacePortlet extends GenericPortlet{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSP folder name
|
||||||
|
*/
|
||||||
|
public static final String JSP_FOLDER = "/WEB-INF/jsp/";
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static final String VIEW_JSP = JSP_FOLDER + "WorkspacePortlet_view.jsp";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param request .
|
||||||
|
* @param response .
|
||||||
|
* @throws IOException .
|
||||||
|
* @throws PortletException .
|
||||||
|
*/
|
||||||
|
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
|
||||||
|
|
||||||
|
System.out.println("LOADING ********* FROM "+VIEW_JSP);
|
||||||
|
|
||||||
|
ScopeHelper.setContext(request, Util.USERNAME_ATTRIBUTE);
|
||||||
|
|
||||||
|
// Invoke the JSP to render
|
||||||
|
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(VIEW_JSP);
|
||||||
|
rd.include(request,response);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package org.gcube.portlets.user.workspace.shared;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* FieldVerifier validates that the name the user enters is valid.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* This class is in the <code>shared</code> package because we use it in both
|
||||||
|
* the client code and on the server. On the client, we verify that the name is
|
||||||
|
* valid before sending an RPC request so the user doesn't have to wait for a
|
||||||
|
* network round trip to get feedback. On the server, we verify that the name is
|
||||||
|
* correct to ensure that the input is correct regardless of where the RPC
|
||||||
|
* originates.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* When creating a class that is used on both the client and the server, be sure
|
||||||
|
* that all code is translatable and does not use native JavaScript. Code that
|
||||||
|
* is not translatable (such as code that interacts with a database or the file
|
||||||
|
* system) cannot be compiled into client side JavaScript. Code that uses native
|
||||||
|
* JavaScript (such as Widgets) cannot be run on the server.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is not used
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class FieldVerifier {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that the specified name is valid for our service.
|
||||||
|
*
|
||||||
|
* In this example, we only require that the name is at least four
|
||||||
|
* characters. In your application, you can use more complex checks to ensure
|
||||||
|
* that usernames, passwords, email addresses, URLs, and other fields have the
|
||||||
|
* proper syntax.
|
||||||
|
*
|
||||||
|
* @param name the name to validate
|
||||||
|
* @return true if valid, false if invalid
|
||||||
|
*/
|
||||||
|
public static boolean isValidName(String name) {
|
||||||
|
if (name == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return name.length() > 3;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module rename-to='workspace'>
|
||||||
|
<!-- Inherit the core Web Toolkit stuff. -->
|
||||||
|
<inherits name='com.google.gwt.user.User' />
|
||||||
|
|
||||||
|
<!-- We need the JUnit module in the main module, -->
|
||||||
|
<!-- otherwise eclipse complains (Google plugin bug?) -->
|
||||||
|
<inherits name='com.google.gwt.junit.JUnit' />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Moduel GXT -->
|
||||||
|
<inherits name='com.extjs.gxt.ui.GXT' />
|
||||||
|
|
||||||
|
<!-- Other module inherits -->
|
||||||
|
<inherits name='org.gcube.portlets.user.workspace.WorkspaceTree' />
|
||||||
|
<inherits name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
|
||||||
|
<inherits name='org.gcube.portlets.user.workspace.lighttree.WorkspacePortletLightTree' />
|
||||||
|
<inherits name='org.gcube.portlets.user.wsmail.WsMail_Widget' />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Specify the app entry point class. -->
|
||||||
|
<entry-point
|
||||||
|
class='org.gcube.portlets.user.workspace.client.WorkspacePortlet' />
|
||||||
|
|
||||||
|
<!-- Specify the paths for translatable code -->
|
||||||
|
<source path='client' />
|
||||||
|
<source path='shared' />
|
||||||
|
|
||||||
|
</module>
|
|
@ -0,0 +1,21 @@
|
||||||
|
<%@page contentType="text/html"%>
|
||||||
|
<%@page pageEncoding="UTF-8"%>
|
||||||
|
|
||||||
|
<%-- Uncomment below lines to add portlet taglibs to jsp
|
||||||
|
<%@ page import="javax.portlet.*"%>
|
||||||
|
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
|
||||||
|
|
||||||
|
<portlet:defineObjects />
|
||||||
|
--%>
|
||||||
|
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="<%=request.getContextPath()%>/resources/css/gxt-all.css"
|
||||||
|
type="text/css">
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="<%=request.getContextPath()%>/WorkspacePortlet.css"
|
||||||
|
type="text/css">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" language="javascript"
|
||||||
|
src="<%=request.getContextPath()%>/workspace/workspace.nocache.js"></script>
|
||||||
|
<div id="workspaceDiv"></div>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<display>
|
||||||
|
<category name="gCube Applications">
|
||||||
|
<portlet id="WorkspacePortlet" />
|
||||||
|
</category>
|
||||||
|
</display>
|
|
@ -0,0 +1,9 @@
|
||||||
|
name=WorkspacePortlet
|
||||||
|
module-group-id=liferay
|
||||||
|
module-incremental-version=2
|
||||||
|
tags=
|
||||||
|
short-description=
|
||||||
|
change-log=
|
||||||
|
page-url=http://www.gcube-system.org
|
||||||
|
author=gCube
|
||||||
|
licenses=EUPL
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_5_2_0.dtd">
|
||||||
|
|
||||||
|
<liferay-portlet-app>
|
||||||
|
<portlet>
|
||||||
|
<portlet-name>WorkspacePortlet</portlet-name>
|
||||||
|
<layout-cacheable>false</layout-cacheable>
|
||||||
|
<instanceable>false</instanceable>
|
||||||
|
<ajaxable>false</ajaxable>
|
||||||
|
</portlet>
|
||||||
|
</liferay-portlet-app>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version='1.0' encoding='UTF-8' ?>
|
||||||
|
<portlet-app>
|
||||||
|
<portlet>
|
||||||
|
<description>Workspace Portlet</description>
|
||||||
|
<portlet-name>WorkspacePortlet</portlet-name>
|
||||||
|
<display-name>WorkspacePortlet</display-name>
|
||||||
|
<portlet-class>org.gcube.portlets.user.workspace.portlet.WorkspacePortlet</portlet-class>
|
||||||
|
<expiration-cache>0</expiration-cache>
|
||||||
|
<supports>
|
||||||
|
<mime-type>text/html</mime-type>
|
||||||
|
<portlet-mode>VIEW</portlet-mode>
|
||||||
|
</supports>
|
||||||
|
<portlet-info>
|
||||||
|
<title>WorkspacePortlet</title>
|
||||||
|
<short-title>WorkspacePortlet</short-title>
|
||||||
|
</portlet-info>
|
||||||
|
</portlet>
|
||||||
|
</portlet-app>
|
|
@ -0,0 +1,109 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
|
||||||
|
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
||||||
|
version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Default page to serve -->
|
||||||
|
<welcome-file-list>
|
||||||
|
<welcome-file>WorkspacePortlet.html</welcome-file>
|
||||||
|
</welcome-file-list>
|
||||||
|
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>UploadService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.workspace.server.UploadServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>UploadService</servlet-name>
|
||||||
|
<url-pattern>/workspace/UploadService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>DownloadService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.workspace.server.DownloadServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>DownloadService</servlet-name>
|
||||||
|
<url-pattern>/workspace/DownloadService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<!-- Servlets -->
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>WorkspaceService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.workspace.server.GWTWorkspaceServiceImpl</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>WorkspaceService</servlet-name>
|
||||||
|
<url-pattern>/workspace/WorkspaceService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>ImageService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.workspace.server.ImageServlet</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>ImageService</servlet-name>
|
||||||
|
<url-pattern>/workspace/ImageService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>mailWisdgetServlet</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.wsmail.server.WsMailServiceImpl</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>mailWisdgetServlet</servlet-name>
|
||||||
|
<url-pattern>/workspace/mailWisdgetServlet</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>WorkspaceLightService</servlet-name>
|
||||||
|
<servlet-class>org.gcube.portlets.user.workspace.lighttree.server.WorkspaceServiceImpl</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>WorkspaceLightService</servlet-name>
|
||||||
|
<url-pattern>/workspace/WorkspaceLightService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>jUnitHostImpl</servlet-name>
|
||||||
|
<servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
|
||||||
|
</servlet>
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>jUnitHostImpl</servlet-name>
|
||||||
|
<url-pattern>/org.gcube.portlets.user.workspace.WorkspacePortletJUnit/junithost/*</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>jUnitHostImpl</servlet-name>
|
||||||
|
<url-pattern>/workspace/junithost/*</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>DownloadService</servlet-name>
|
||||||
|
<url-pattern>/org.gcube.portlets.user.workspace.WorkspacePortletJUnit/DownloadService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>WorkspaceService</servlet-name>
|
||||||
|
<url-pattern>/org.gcube.portlets.user.workspace.WorkspacePortletJUnit/WorkspaceService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>ImageService</servlet-name>
|
||||||
|
<url-pattern>/org.gcube.portlets.user.workspace.WorkspacePortletJUnit/ImageService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>UploadService</servlet-name>
|
||||||
|
<url-pattern>/org.gcube.portlets.user.workspace.WorkspacePortletJUnit/UploadService</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
</web-app>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!-- The DOCTYPE declaration above will set the -->
|
||||||
|
<!-- browser's rendering engine into -->
|
||||||
|
<!-- "Standards Mode". Replacing this declaration -->
|
||||||
|
<!-- with a "Quirks Mode" doctype is not supported. -->
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- Consider inlining CSS to reduce the number of requested files -->
|
||||||
|
<!-- -->
|
||||||
|
<link type="text/css" rel="stylesheet" href="workspaceportlet.css">
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- Any title is fine -->
|
||||||
|
<!-- -->
|
||||||
|
<title>Web Application Starter Project</title>
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- This script loads your compiled module. -->
|
||||||
|
<!-- If you add any GWT meta tags, they must -->
|
||||||
|
<!-- be added before this line. -->
|
||||||
|
<!-- -->
|
||||||
|
<script type="text/javascript" language="javascript" src="workspace/workspace.nocache.js"></script>
|
||||||
|
|
||||||
|
<!-- GXT -->
|
||||||
|
<link rel='stylesheet' type='text/css' href='resources/css/gxt-all.css' />
|
||||||
|
<script language='javascript' src='resources/flash/swfobject.js'></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- The body can have arbitrary html, or -->
|
||||||
|
<!-- you can leave the body empty if you want -->
|
||||||
|
<!-- to create a completely dynamic UI. -->
|
||||||
|
<!-- -->
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- OPTIONAL: include this if you want history support -->
|
||||||
|
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
|
||||||
|
|
||||||
|
<!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
|
||||||
|
<noscript>
|
||||||
|
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
|
||||||
|
Your web browser must have JavaScript enabled
|
||||||
|
in order for this application to display correctly.
|
||||||
|
</div>
|
||||||
|
</noscript>
|
||||||
|
<div id="workspaceDiv"></div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,493 @@
|
||||||
|
.x-panel {
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #d0d0d0;
|
||||||
|
}
|
||||||
|
.x-panel-header {
|
||||||
|
color:#333;
|
||||||
|
border:1px solid #d0d0d0;
|
||||||
|
background-image:url(../images/gray/panel/white-top-bottom.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-body {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-bbar .x-toolbar {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-tbar .x-toolbar {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
.x-panel-body-noheader, .x-panel-mc .x-panel-body {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
.x-panel-tl .x-panel-header {
|
||||||
|
color:#333;
|
||||||
|
}
|
||||||
|
.x-panel-tc {
|
||||||
|
background-image:url(../images/gray/panel/top-bottom.gif);
|
||||||
|
}
|
||||||
|
.x-panel-tl {
|
||||||
|
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
.x-panel-tr {
|
||||||
|
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-panel-bc {
|
||||||
|
background-image:url(../images/gray/panel/top-bottom.gif);
|
||||||
|
}
|
||||||
|
.x-panel-bl {
|
||||||
|
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-panel-br {
|
||||||
|
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-panel-mc {
|
||||||
|
background:#f1f1f1;
|
||||||
|
}
|
||||||
|
.x-panel-mc .x-panel-body {
|
||||||
|
background:transparent;
|
||||||
|
border: 0 none;
|
||||||
|
}
|
||||||
|
.x-panel-ml {
|
||||||
|
background-image:url(../images/gray/panel/left-right.gif);
|
||||||
|
}
|
||||||
|
.x-panel-mr {
|
||||||
|
background-image:url(../images/gray/panel/left-right.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tools */
|
||||||
|
.x-tool {
|
||||||
|
background-image:url(../images/gray/panel/tool-sprites.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ghosting */
|
||||||
|
.x-panel-ghost {
|
||||||
|
background:#e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-ghost ul {
|
||||||
|
border-color:#b0b0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-grid-panel .x-panel-mc .x-panel-body {
|
||||||
|
border:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons */
|
||||||
|
|
||||||
|
.x-btn-left{
|
||||||
|
background-image:url(../images/gray/button/btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-btn-right{
|
||||||
|
background-image:url(../images/gray/button/btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-btn-center{
|
||||||
|
background-image:url(../images/gray/button/btn-sprite.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-btn-group-header {
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.x-btn-group-tc {
|
||||||
|
background-image: url(../images/gray/button/group-tb.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-tl {
|
||||||
|
background-image: url(../images/gray/button/group-cs.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-tr {
|
||||||
|
background-image: url(../images/gray/button/group-cs.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-bc {
|
||||||
|
background-image: url(../images/gray/button/group-tb.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-bl {
|
||||||
|
background-image: url(../images/gray/button/group-cs.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-br {
|
||||||
|
background-image: url(../images/gray/button/group-cs.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-ml {
|
||||||
|
background-image: url(../images/gray/button/group-lr.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-mr {
|
||||||
|
background-image: url(../images/gray/button/group-lr.gif);
|
||||||
|
}
|
||||||
|
.x-btn-group-notitle .x-btn-group-tc {
|
||||||
|
background-image: url(../images/gray/button/group-tb.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Layout classes */
|
||||||
|
|
||||||
|
.x-border-layout-ct {
|
||||||
|
background:#f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-accordion-hd {
|
||||||
|
background-image:url(../images/gray/panel/light-hd.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-layout-collapsed{
|
||||||
|
background-color:#eee;
|
||||||
|
border-color:#e0e0e0;
|
||||||
|
}
|
||||||
|
.x-layout-collapsed-over{
|
||||||
|
background-color:#fbfbfb;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* qtips */
|
||||||
|
.x-tip .x-tip-top {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-top-left {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-top-right {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-ft {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-ft-left {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-ft-right {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-bd-left {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tip .x-tip-bd-right {
|
||||||
|
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Toolbars */
|
||||||
|
|
||||||
|
.x-toolbar{
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
background:#f0f4f5 url(../images/gray/toolbar/bg.gif) repeat-x top left;
|
||||||
|
}
|
||||||
|
.x-toolbar button {
|
||||||
|
color:#444;
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button {
|
||||||
|
background-image:url(../images/gray/toolbar/btn-arrow.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button {
|
||||||
|
background-image:url(../images/gray/toolbar/btn-arrow.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-over .x-btn-left{
|
||||||
|
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-over .x-btn-right{
|
||||||
|
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-over .x-btn-center{
|
||||||
|
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-over button {
|
||||||
|
color:#111;
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{
|
||||||
|
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{
|
||||||
|
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{
|
||||||
|
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-toolbar .xtb-sep {
|
||||||
|
background-image: url(../images/gray/grid/grid-split.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tabs */
|
||||||
|
|
||||||
|
.x-tab-panel-header, .x-tab-panel-footer {
|
||||||
|
background: #EAEAEA;
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.x-tab-panel-header {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-footer {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.x-tab-strip-top{
|
||||||
|
background:#dbdbdb url(../images/gray/tabs/tab-strip-bg.gif) repeat-x left top;
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
padding-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.x-tab-strip-bottom{
|
||||||
|
background-image:url(../images/gray/tabs/tab-strip-btm-bg.gif);
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip span.x-tab-strip-text {
|
||||||
|
color:#333;
|
||||||
|
}
|
||||||
|
.x-tab-strip-over span.x-tab-strip-text {
|
||||||
|
color:#111;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-active span.x-tab-strip-text {
|
||||||
|
color:#333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-disabled .x-tabs-text {
|
||||||
|
color:#aaaaaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-top .x-tab-right {
|
||||||
|
background-image:url(../images/gray/tabs/tabs-sprite.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-top .x-tab-left {
|
||||||
|
background-image:url(../images/gray/tabs/tabs-sprite.gif);
|
||||||
|
}
|
||||||
|
.x-tab-strip-top .x-tab-strip-inner {
|
||||||
|
background-image:url(../images/gray/tabs/tabs-sprite.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-bottom .x-tab-right {
|
||||||
|
background-image:url(../images/gray/tabs/tab-btm-inactive-right-bg.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-bottom .x-tab-left {
|
||||||
|
background-image:url(../images/gray/tabs/tab-btm-inactive-left-bg.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
|
||||||
|
background-image:url(../images/gray/tabs/tab-btm-right-bg.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
|
||||||
|
background-image:url(../images/gray/tabs/tab-btm-left-bg.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
|
||||||
|
background-image:url(../images/gray/tabs/tab-close.gif);
|
||||||
|
}
|
||||||
|
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{
|
||||||
|
background-image:url(../images/gray/tabs/tab-close.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-body {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
background:#fff;
|
||||||
|
}
|
||||||
|
.x-tab-panel-bbar .x-toolbar {
|
||||||
|
border-color: #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-tbar .x-toolbar {
|
||||||
|
border-color: #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-header-plain .x-tab-strip-spacer {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
background: #eaeaea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-scroller-left {
|
||||||
|
background-image: url(../images/gray/tabs/scroll-left.gif);
|
||||||
|
border-color:#aeaeae;
|
||||||
|
}
|
||||||
|
.x-tab-scroller-right {
|
||||||
|
background-image: url(../images/gray/tabs/scroll-right.gif);
|
||||||
|
border-color:#aeaeae;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window */
|
||||||
|
|
||||||
|
.x-window-proxy {
|
||||||
|
background:#e0e0e0;
|
||||||
|
border-color:#b0b0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-tl .x-window-header {
|
||||||
|
color:#555;
|
||||||
|
}
|
||||||
|
.x-window-tc {
|
||||||
|
background-image:url(../images/gray/window/top-bottom.png);
|
||||||
|
}
|
||||||
|
.x-window-tl {
|
||||||
|
background-image:url(../images/gray/window/left-corners.png);
|
||||||
|
}
|
||||||
|
.x-window-tr {
|
||||||
|
background-image:url(../images/gray/window/right-corners.png);
|
||||||
|
}
|
||||||
|
.x-window-bc {
|
||||||
|
background-image:url(../images/gray/window/top-bottom.png);
|
||||||
|
}
|
||||||
|
.x-window-bl {
|
||||||
|
background-image:url(../images/gray/window/left-corners.png);
|
||||||
|
}
|
||||||
|
.x-window-br {
|
||||||
|
background-image:url(../images/gray/window/right-corners.png);
|
||||||
|
}
|
||||||
|
.x-window-mc {
|
||||||
|
border:1px solid #d0d0d0;
|
||||||
|
background:#e8e8e8;
|
||||||
|
}
|
||||||
|
.ext-ie .x-window-plain .x-window-mc {
|
||||||
|
background-color: #e3e3e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-ml {
|
||||||
|
background-image:url(../images/gray/window/left-right.png);
|
||||||
|
}
|
||||||
|
.x-window-mr {
|
||||||
|
background-image:url(../images/gray/window/left-right.png);
|
||||||
|
}
|
||||||
|
.x-panel-ghost .x-window-tl {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
.x-panel-collapsed .x-window-tl {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-plain .x-window-mc {
|
||||||
|
background: #e8e8e8;
|
||||||
|
border-right:1px solid #eee;
|
||||||
|
border-bottom:1px solid #eee;
|
||||||
|
border-top:1px solid #d0d0d0;
|
||||||
|
border-left:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-plain .x-window-body {
|
||||||
|
border-left:1px solid #eee;
|
||||||
|
border-top:1px solid #eee;
|
||||||
|
border-bottom:1px solid #d0d0d0;
|
||||||
|
border-right:1px solid #d0d0d0;
|
||||||
|
background:transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc {
|
||||||
|
background-color: #e4e4e4;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* misc */
|
||||||
|
.x-html-editor-wrap {
|
||||||
|
border-color:#d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Borders go last for specificity */
|
||||||
|
.x-panel-noborder .x-panel-body-noborder {
|
||||||
|
border-width:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-noborder .x-panel-header-noborder {
|
||||||
|
border-width:0;
|
||||||
|
border-bottom:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
|
||||||
|
border-width:0;
|
||||||
|
border-bottom:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
|
||||||
|
border-width:0;
|
||||||
|
border-top:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-noborder .x-window-mc {
|
||||||
|
border-width:0;
|
||||||
|
}
|
||||||
|
.x-window-plain .x-window-body-noborder {
|
||||||
|
border-width:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-noborder .x-tab-panel-body-noborder {
|
||||||
|
border-width:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-noborder .x-tab-panel-header-noborder {
|
||||||
|
border-top-width:0;
|
||||||
|
border-left-width:0;
|
||||||
|
border-right-width:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-noborder .x-tab-panel-footer-noborder {
|
||||||
|
border-bottom-width:0;
|
||||||
|
border-left-width:0;
|
||||||
|
border-right-width:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.x-tab-panel-bbar-noborder .x-toolbar {
|
||||||
|
border-width:0;
|
||||||
|
border-top:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-tab-panel-tbar-noborder .x-toolbar {
|
||||||
|
border-width:0;
|
||||||
|
border-bottom:1px solid #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-spinner-field .x-form-spinner-up {
|
||||||
|
background-image: url('../images/gray/form/spinner.gif');
|
||||||
|
}
|
||||||
|
.x-spinner-field .x-form-spinner-down {
|
||||||
|
background-image: url('../images/gray/form/spinner.gif');
|
||||||
|
}.x-accordion-hd {
|
||||||
|
background-color: #e5e5e5;
|
||||||
|
}.x-border {
|
||||||
|
border: 1px solid #D0D0D0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-layout-popup {
|
||||||
|
background-color: #F0F0F0;
|
||||||
|
border: 1px solid #D0D0D0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.my-list {
|
||||||
|
border: 1px solid #D0D0D0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-view {
|
||||||
|
border:1px solid #D0D0D0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-menubar {
|
||||||
|
border-color: #D0D0D0;
|
||||||
|
background-color: #F0F0F0;
|
||||||
|
background-image: url(../images/gray/toolbar/bg.gif);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-menubar-item-active {
|
||||||
|
background-color: #D9E8FB;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-menubar-item-active {
|
||||||
|
background-color: #D9E8FB;
|
||||||
|
}.x-date-right-icon {
|
||||||
|
background-image: url(../images/default/shared/right-btn.gif);
|
||||||
|
margin-right: 2px;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-date-left-icon {
|
||||||
|
background-image: url(../images/default/shared/left-btn.gif);
|
||||||
|
margin-right: 2px;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}.my-tbl {
|
||||||
|
border: 1px solid #C6C5C5;
|
||||||
|
}.my-treetbl {
|
||||||
|
border: 1px solid #C6C5C5;
|
||||||
|
}
|
|
@ -0,0 +1,638 @@
|
||||||
|
/*
|
||||||
|
* Ext JS Library 2.1
|
||||||
|
* Copyright(c) 2006-2008, Ext JS, LLC.
|
||||||
|
* licensing@extjs.com
|
||||||
|
*
|
||||||
|
* http://extjs.com/license
|
||||||
|
*/
|
||||||
|
html,body {
|
||||||
|
background: #3d71b8 url(../wallpapers/desktop.jpg) no-repeat left top;
|
||||||
|
font: normal 12px tahoma, arial, verdana, sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0 none;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.start {
|
||||||
|
background-image: url( ../images/taskbar/black/startbutton-icon.gif ) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bogus {
|
||||||
|
background-image: url( ../images/bogus.png ) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logout {
|
||||||
|
background-image: url( ../images/logout.gif ) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.settings {
|
||||||
|
background-image: url( ../images/gears.gif ) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dpanels {
|
||||||
|
width: 250px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dpanels .x-panel {
|
||||||
|
margin: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dpanels .x-date-picker {
|
||||||
|
border: 0 none;
|
||||||
|
border-top: 0 none;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dpanels .x-date-picker td.x-date-active {
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dpanels .x-date-picker {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#x-desktop {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border: 0 none;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn {
|
||||||
|
float: left;
|
||||||
|
margin: 1px 0 0 1px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar-start .x-btn {
|
||||||
|
float: left;
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar button { /* width: 150px;
|
||||||
|
overflow: hidden; */
|
||||||
|
text-align: left;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title-bar-wrapper {
|
||||||
|
height: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#title-bar {
|
||||||
|
color: #225599;
|
||||||
|
padding: 9px 7px;
|
||||||
|
font: bold 16px tahoma, arial, verdana, sans-serif;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#x-logout {
|
||||||
|
float: right;
|
||||||
|
padding: 6px 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-btn-text-icon .x-btn-center .logout {
|
||||||
|
background-position: 0pt 3px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding: 3px 0pt 3px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar {
|
||||||
|
background: transparent none;
|
||||||
|
height: 30px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
z-index: 12001;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-btn-icon .ux-taskbutton-center .x-btn-text {
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
height: 16px;
|
||||||
|
width: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-btn-icon .ux-taskbutton-center {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-startbutton-center .x-btn-text {
|
||||||
|
color: #000000 !important;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbutton-left,.ux-taskbutton-right {
|
||||||
|
font-size: 1px;
|
||||||
|
line-height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbutton-left {
|
||||||
|
width: 4px;
|
||||||
|
height: 28px;
|
||||||
|
background: url( ../images/taskbar/black/taskbutton.gif ) no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbutton-right {
|
||||||
|
width: 4px;
|
||||||
|
height: 28px;
|
||||||
|
background: url( ../images/taskbar/black/taskbutton.gif ) no-repeat 0 -28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbutton-left i,.ux-taskbutton-right i {
|
||||||
|
display: block;
|
||||||
|
width: 4px;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 1px;
|
||||||
|
line-height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbutton-center {
|
||||||
|
background: url( ../images/taskbar/black/taskbutton.gif ) repeat-x 0 -56px;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .ux-taskbutton-left {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .ux-taskbutton-right {
|
||||||
|
background-position: 0 -28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .ux-taskbutton-center {
|
||||||
|
background-position: 0 -56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-over .ux-taskbutton-left {
|
||||||
|
background-position: 0 -252px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-over .ux-taskbutton-right {
|
||||||
|
background-position: 0 -280px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-over .ux-taskbutton-center {
|
||||||
|
background-position: 0 -308px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-click .ux-taskbutton-left {
|
||||||
|
background-position: 0 -168px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-click .ux-taskbutton-right {
|
||||||
|
background-position: 0 -196px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-click .ux-taskbutton-center {
|
||||||
|
background-position: 0 -224px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-taskbutton-left {
|
||||||
|
background-position: 0 -84px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-taskbutton-right {
|
||||||
|
background: url( ../images/taskbar/black/taskbutton.gif ) no-repeat 0 -112px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-taskbutton-center {
|
||||||
|
background: url( ../images/taskbar/black/taskbutton.gif ) repeat-x 0 -140px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-taskbutton-center button {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#spacer {
|
||||||
|
height: 25px;
|
||||||
|
float: left;
|
||||||
|
width: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-body p,.x-panel-body p {
|
||||||
|
padding: 10px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-maximized .x-window-bc {
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add {
|
||||||
|
background-image: url(../images/add.gif) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.option {
|
||||||
|
background-image: url(../images/plugin.gif) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remove {
|
||||||
|
background-image: url(../images/delete.gif) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs {
|
||||||
|
background-image: url(../images/tabs.gif) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu {
|
||||||
|
background: transparent none;
|
||||||
|
border: 0px none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tl .x-window-header {
|
||||||
|
color: #f1f1f1;
|
||||||
|
font: bold 11px tahoma, arial, verdana, sans-serif;
|
||||||
|
padding: 5px 0 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-tl .x-panel-icon,.ux-start-menu-tl .x-panel-icon {
|
||||||
|
background-position: 0pt 4px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding-left: 20px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tl {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-left-corners.png ) no-repeat 0 0;
|
||||||
|
padding-left: 6px;
|
||||||
|
zoom: 1;
|
||||||
|
z-index: 1;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tr {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-right-corners.png ) no-repeat right
|
||||||
|
0;
|
||||||
|
padding-right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tc {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-top-bottom.png ) repeat-x 0 0;
|
||||||
|
overflow: hidden;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-ml {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-left-right.png ) repeat-y 0 0;
|
||||||
|
padding-left: 6px;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-bc {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-top-bottom.png ) repeat-x 0 bottom;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-bc .x-window-footer {
|
||||||
|
padding-bottom: 6px;
|
||||||
|
zoom: 1;
|
||||||
|
font-size: 0;
|
||||||
|
line-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-bl {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-left-corners.png ) no-repeat 0
|
||||||
|
bottom;
|
||||||
|
padding-left: 6px;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-br {
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-right-corners.png ) no-repeat right
|
||||||
|
bottom;
|
||||||
|
padding-right: 6px;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-panel-nofooter .ux-start-menu-bc {
|
||||||
|
height: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-splitbar-h {
|
||||||
|
background-color: #d0d0d0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-bwrap {
|
||||||
|
background: transparent none;
|
||||||
|
border: 0px none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-body {
|
||||||
|
background: transparent none;
|
||||||
|
border: 0px none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-apps-panel {
|
||||||
|
background: #ffffff none;
|
||||||
|
border: 1px solid #1e2124;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tools-panel {
|
||||||
|
border: 0px none;
|
||||||
|
background: transparent url( ../images/taskbar/black/start-menu-right.png ) repeat-y scroll right
|
||||||
|
0pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar-start {
|
||||||
|
background: #000000 url( ../images/taskbar/black/taskbar-start-panel-bg.gif ) repeat-x left top;
|
||||||
|
left: 0px;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar-start .x-toolbar {
|
||||||
|
background: none;
|
||||||
|
padding: 0px;
|
||||||
|
border: 0px none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbuttons-panel {
|
||||||
|
background: #000000 url( ../images/taskbar/black/taskbuttons-panel-bg.gif ) repeat-x left top;
|
||||||
|
padding-top: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-strip-wrap { /* overflow:hidden;
|
||||||
|
position:relative;
|
||||||
|
width:100%; */
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ux-taskbuttons-strip {
|
||||||
|
display: block;
|
||||||
|
width: 5000px;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ux-taskbuttons-strip li {
|
||||||
|
float: left;
|
||||||
|
margin-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.ux-taskbuttons-strip li.ux-taskbuttons-edge {
|
||||||
|
float: left;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
border: 0 none !important;
|
||||||
|
font-size: 1px !important;
|
||||||
|
line-height: 1px !important;
|
||||||
|
overflow: hidden;
|
||||||
|
zoom: 1;
|
||||||
|
background: transparent !important;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-clear {
|
||||||
|
clear: both;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
line-height: 0;
|
||||||
|
font-size: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-taskbuttons-scrolling {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-taskbuttons-scrolling .ux-taskbuttons-strip-wrap {
|
||||||
|
margin-left: 18px;
|
||||||
|
margin-right: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.ux-taskButtons-edge { /*float:left;*/
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
border: 0 none !important;
|
||||||
|
font-size: 1px !important;
|
||||||
|
line-height: 1px !important;
|
||||||
|
overflow: hidden;
|
||||||
|
zoom: 1;
|
||||||
|
background: transparent !important;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-scroller-left {
|
||||||
|
background: transparent url( ../images/taskbar/black/scroll-left.gif ) no-repeat -18px 0;
|
||||||
|
width: 18px;
|
||||||
|
position: absolute;
|
||||||
|
left: 1px;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 10;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-scroller-left-over {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-scroller-left-disabled {
|
||||||
|
background-position: -18px 0;
|
||||||
|
opacity: .5;
|
||||||
|
-moz-opacity: .5;
|
||||||
|
filter: alpha(opacity = 50);
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-scroller-right {
|
||||||
|
background: transparent url( ../images/taskbar/black/scroll-right.gif ) no-repeat 0 0;
|
||||||
|
width: 18px;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 10;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-scroller-right-over {
|
||||||
|
background-position: -18px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-taskbuttons-scroller-right-disabled {
|
||||||
|
background-position: 0 0;
|
||||||
|
opacity: .5;
|
||||||
|
-moz-opacity: .5;
|
||||||
|
filter: alpha(opacity = 50);
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-toolmenu-sep {
|
||||||
|
background-color: #18191a;
|
||||||
|
border-bottom: 1px solid #858789;
|
||||||
|
display: block;
|
||||||
|
font-size: 1px;
|
||||||
|
line-height: 1px;
|
||||||
|
margin: 2px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tools-panel ul.x-menu-list li.x-menu-list-item a.x-menu-item {
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tools-panel ul.x-menu-list li.x-menu-list-item .x-menu-item-active a.x-menu-item {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-start-menu-tools-panel .x-menu-item-active {
|
||||||
|
background: #525456 url( ../images/taskbar/black/item-over.gif ) repeat-x left bottom;
|
||||||
|
border: 1px solid #000000;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-splitbar-h {
|
||||||
|
background: #000000 url( ../images/taskbar/black/taskbar-split-h.gif ) no-repeat 0 0;
|
||||||
|
width: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-window-header-text {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Begin Start button
|
||||||
|
*/
|
||||||
|
.ux-startbutton-left,.ux-startbutton-right {
|
||||||
|
font-size: 1px;
|
||||||
|
line-height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-startbutton-left {
|
||||||
|
width: 10px;
|
||||||
|
height: 28px;
|
||||||
|
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-startbutton-right {
|
||||||
|
width: 10px;
|
||||||
|
height: 30px;
|
||||||
|
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 -28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-startbutton-left i,.ux-startbutton-right i {
|
||||||
|
display: block;
|
||||||
|
width: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 1px;
|
||||||
|
line-height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ux-startbutton-center {
|
||||||
|
background: url( ../images/taskbar/black/startbutton.gif ) repeat-x 0 -56px;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .ux-startbutton-left {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .ux-startbutton-right {
|
||||||
|
background-position: 0 -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .ux-startbutton-center {
|
||||||
|
background-position: 0 -60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-over .ux-startbutton-left {
|
||||||
|
background-position: 0 -270px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-over .ux-startbutton-right {
|
||||||
|
background-position: 0 -300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-over .ux-startbutton-center {
|
||||||
|
background-position: 0 -330px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-click .ux-startbutton-left {
|
||||||
|
background-position: 0 -180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-click .ux-startbutton-right {
|
||||||
|
background-position: 0 -210px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .x-btn-click .ux-startbutton-center {
|
||||||
|
background-position: 0 -240px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-startbutton-left {
|
||||||
|
background-position: 0 -90px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-startbutton-right {
|
||||||
|
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 -120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-startbutton-center {
|
||||||
|
background: url( ../images/taskbar/black/startbutton.gif ) repeat-x 0 -150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ux-taskbar .active-win .ux-startbutton-center button {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* End Start button
|
||||||
|
*/
|
||||||
|
.x-resizable-proxy {
|
||||||
|
background: #C7DFFC;
|
||||||
|
opacity: .5;
|
||||||
|
-moz-opacity: .5;
|
||||||
|
filter: alpha(opacity = 50);
|
||||||
|
border: 1px solid #3b5a82;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Desktop Shortcuts */
|
||||||
|
#x-shortcuts dt {
|
||||||
|
float: left;
|
||||||
|
margin: 15px 0 0 15px;
|
||||||
|
clear: left;
|
||||||
|
width: 64px;
|
||||||
|
font: normal 10px tahoma, arial, verdana, sans-serif;
|
||||||
|
text-align: center;
|
||||||
|
zoom: 1;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#x-shortcuts dt a {
|
||||||
|
width: 64px;
|
||||||
|
display: block;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#x-shortcuts dt div {
|
||||||
|
width: 100%;
|
||||||
|
color: white;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
#x-shortcuts dt a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
After Width: | Height: | Size: 994 B |
After Width: | Height: | Size: 989 B |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 996 B |
After Width: | Height: | Size: 967 B |
After Width: | Height: | Size: 513 B |
After Width: | Height: | Size: 842 B |
After Width: | Height: | Size: 992 B |
After Width: | Height: | Size: 808 B |
After Width: | Height: | Size: 400 B |
After Width: | Height: | Size: 191 B |
After Width: | Height: | Size: 944 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 920 B |
After Width: | Height: | Size: 505 B |
After Width: | Height: | Size: 972 B |
After Width: | Height: | Size: 832 B |
After Width: | Height: | Size: 988 B |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 43 B |
After Width: | Height: | Size: 917 B |
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 1.4 KiB |